<?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.902</version>
    <mincmsversion>2.2.10</mincmsversion>
	<help><![CDATA[PGRpdiBpZD0iY2RfaGVscCI+CjxhIGlkPSJ0b3AiPjwvYT4KCjxzdHlsZT4KYS5uYXYgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDMwJTsKfQo8L3N0eWxlPgo8c2NyaXB0PgokKGZ1bmN0aW9uKCl7CiAgICAkKCcjY2RfaGVscCBhLm5hdicpLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCkKICAgICAgIGxldCB0YXJnZXQgPSAkKHRoaXMpLnByb3AoJ2hyZWYnKQogICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnN1YnN0cmluZyh0YXJnZXQuaW5kZXhPZignIycpKTsKICAgICAgICQoJ2h0bWwsYm9keScpLmFuaW1hdGUoe3Njcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcH0sJ3Nsb3cnKQogICAgfSkKfSkKPC9zY3JpcHQ+Cgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjZmVhdHVyZXMiPkZlYXR1cmVzPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjaG93dG91c2UiPkhvdyBkbyBJIHVzZSBpdDwvYT4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI2NhbGxpbmdhY3Rpb25zIj5DYWxsaW5nIGFjdGlvbnM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNhY3Rpb25zIj5BY3Rpb25zPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjcGFyYW1ldGVycyI+UGFyYW1ldGVyczwvYT4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI2Fib3V0X3RlbXBsYXRlcyI+QWJvdXQgdGVtcGxhdGVzPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjYWJvdXRfZW1haWxzIj5BYm91dCBlbWFpbHM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNvYmpzY3RzIj5PYmplY3RzPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjc21hcnR5X3BsdWdpbnMiPlNtYXJ0eSBwbHVnaW5zPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjYWxidW1zIj5BbGJ1bXM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNjZGxhbmciPlRoZSBjZGxhbmcgcXVlcnkgbGFuZ3VhZ2U8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNjb25maWdfZW50cmllcyI+Q29uZmlnIGVudHJpZXM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNob29rcyI+SG9va3M8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNzZWN1cml0eSI+U2VjdXJpdHk8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNzdXBwb3J0Ij5TdXBwb3J0PC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjY29weXJpZ2h0Ij5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2E+Cjxoci8+Cgo8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHdheSB0byBjb2xsZWN0LCBvcmdhbml6ZSwgc2VhcmNoLCBmaWx0ZXIsIGFuZCBkaXNwbGF5IGEgZGlyZWN0b3J5IG9mIGluZm9ybWF0aW9uIGFib3V0IG5hbWVzIGFuZCBhZGRyZXNzZXMgYW5kIGFzc29jaWF0ZWQgZGF0YSBpbmNsdWRpbmcgaW1hZ2VzLCBsb2dvcywgbG9jYXRpb24gaW5mb3JtYXRpb24sIGZpbGVzIGFuZCBhIHBob3RvIGFsYnVtLjwvcD4KPHA+VGhpcyBtb2R1bGUgY291bGQgYmUgdXNlZCBmb3IgYSB2YXJpZXR5IG9mIHB1cnBvc2VzLiBJbmNsdWRpbmcgYSByZWdpb25hbCB0b3VyaXNtIHNpdGUsIGEgc3VwcGxpZXJzIGxpc3QsIG9yIGEgY29udGFjdCBsaXN0LiAgSXQgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgcmUtdXNlZCBmb3IgbWFueSBkaWZmZXJlbnQgcHVycG9zZXMuPC9wPgoKPGgzIGlkPSJmZWF0dXJlcyI+RmVhdHVyZXM6PC9oMz4KPHVsPgogICAgPGxpPkN1c3RvbSBGaWVsZHMKICAgICAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBleHRlbmQgdGhlIGJhc2ljIGRhdGFiYXNlIG1vZGVsIGJ5IGFkaW5nIGN1c3RvbSBmaWVsZHMgdG8gdGhlIHN0cnVjdHVyZS4gIFRoZXJlIGFyZSBudW1lcm91cyBkaWZmZXJlbnQgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcywgYW5kIHNvbWUgbW9kdWxlcyBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIHR5cGVzLiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYXJrIGN1c3RvbWYgaWVsZHMgYXMgZWRpdGFibGUgYnkgYWRtaW5pc3RyYXRvcnMgb25seS4KICAgIDwvbGk+CiAgICA8bGk+R2VvQ29kaW5nCiAgICAgICAgPHA+SWYgYSBjb21wYXRpYmxlIGdlb2NvZGluZyBtb2R1bGUgaXMgaW5zdGFsbGVkLCB0aGVuIHRoaXMgbW9kdWxlIGNhbiBjb252ZXJ0IGFkZHJlc3NlcyB0byBjb29yZGluYXRlcyB0aGF0IGFyZSBzdWl0YWJsZSBmb3IgdXNlIGluIG1hcHBpbmcgYW5kIHJhZGl1cyBzZWFyY2hlcy48cD4KICAgIDwvbGk+CiAgICA8bGk+S01MIEltcG9ydAogICAgICAgIDxwPlRoaXMgbW9kdWxlIGNhbiBpbXBvcnQgYmFzaWMgY29tcGFueSBkYXRhIGZyb20gS01MIGZvcm1hdC48L3A+CiAgICA8L2xpPgogICAgPGxpPkZsZXhpYmxlIEFTQ0lJIEltcG9ydCBhbmQgRXhwb3J0CiAgICAgICAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gaW1wb3J0IGNvbXBhbmllcywgZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBjYXRlZ29yaWVzIGZyb20gYSBmbGV4aWJsZSAoc2VtaS11c2VyLWRlZmluYWJsZSkgQVNDSUkgZm9ybWF0LjwvcD4KICAgIDwvbGk+CiAgICA8bGk+RmxleGlibGUgQ2F0ZWdvcml6YXRpb24KICAgICAgICA8cD5UaGUgc2l0ZSBhZG1pbmlzdHJhdG9yIGNhbiBjcmVhdGUgYSBoaWVyYXJjaGljYWwgZGF0YSBzdHJ1Y3R1cmUuICBFYWNoIENvbXBhbnkgcmVjb3JkIGNhbiBiZSBhc3NvY2lhdGVkIHRvIGEgcGxhY2UgaW5zaWRlIHRoYXQgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlIHRvIGFsbG93IGZvciBmaWx0ZXJpbmcsIG9yIGRyaWxsIGRvd24gc2VhcmNlcy48L3A+CiAgICAgICAgPHA+QWRkaXRpb25hbGx5LCB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIGNhbiBjcmVhdGUgYSBsaXN0IG9mICZxdW90O2NhdGVnb3JpZXMmcXVvdDsuICBFYWNoIGNvbXBhbnkgbG9jYXRpb24gY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBjYXRlZ29yaWVzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHNlYXJjaGluZyBhbmQgZmlsdGVyaW5nIGZ1bmN0aW9uYWxpdHkuICBGb3IgZGlzcGxheSBwdXJwb3NlcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBjYXRlZ29yeSAodGhyZWUgdXNlciBkZWZpbmVkIGFyZWFzKS4gIEFuZCB3aGVuIGVkaXRpbmcgYSBjb21wYW55IHJlY29yZCwgY2F0ZWdvcnkgaW5mb3JtYXRpb24gY2FuIGJlIG92ZXJyaWRlbiBmb3IgZWFjaCByZWNvcmQuPC9wPgogICAgPC9saT4KICAgIDxsaT5GbGV4aWJsZSBVUkwgbWVjaGFuaXNtczwvbGk+CiAgICAgICAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGZvciB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIHRvIHNwZWNpZnkgYSB1bmlxdWUgU0VPIGZyaWVuZGx5IFVSTCBmb3IgdGhlIGRldGFpbCB2aWV3IG9mIGVhY2ggY29tcGFueSByZWNvcmQuICBUaGlzIFVSTCB3b3JrcyBpbiBhZGRpdGlvbiB0byB0aGUgb3RoZXIgU0VPIGZyaWVuZGx5IG1lY2hhbmlzbXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgYSBjb21wYW55IGRldGFpbCByZWNvcmQuPC9wPgogICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gV2hlbiB1c2luZyBTRU8gZnJpZW5kbHkgVVJMUyBpdCBpcyBpbXBvcnRhbnQgdG8gdXNlIGNhbm9uaWNhbCBVUkxTLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+RnJvbnRlbmQgRWRpdGluZwogICAgICAgIDxwPlRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSBpcyBjYXBhYmxlIG9mIGFsbG93aW5nIGF1dGhvcml6ZWQgZnJvbnRlbmQgdXNlcnMgPGVtPihzZWUgdGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlKTwvZW0+IHRvIGFkZCBhbmQgbWFuYWdlIChldmVuIGltcG9ydCBmcm9tIENTVikgQ29tcGFueSByZWNvcmRzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGJ1aWxkaW5nIGEgZGlyZWN0b3J5IHNpdGUsIGZvciBleGFtcGxlIGZvciBhIHJlZ2lvbmFsIHRvdXJpc20gYm9hcmQgd2hlcmUgaW5kaXZpZHVhbCBzdWJzY3JpYmVycyBtYXkgbWFuYWdlIHRoZSB2aXNpYmxlIHB1YmxpYyBpbmZvcm1hdGlvbiBmb3Igb25lIG9yIG1vcmUgY29tcGFuaWVzLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+TnVtZXJvdXMgZGlzcGxheSBtZWNoYW5pc21zPC9saT4KICAgIDxsaT5BZHZhbmNlZCBTZWFyY2ggYW5kIEZpbHRlcmluZyBDYXBhYmlsaXRpZXMKICAgICAgICA8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIGZsZXhpYmxlIHF1ZXJ5aW5nICdsYW5ndWFnZScgdGhhdCBhbGxvd3MgZm9yIGZsZXhpYmxlIHNlYXJjaCBhbmQgZmlsdGVyaW5nIGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIGxvY2F0aW9uIGF3YXJlIHNlYXJjaGVzLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+RmxleGlibGUgVGVtcGxhdGluZyBDYXBhYmlsaXRpZXM8L2xpPgogICAgPGxpPkV4dGVuc2l2ZSBjYWNoaW5nPC9saT4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+Cgo8aDMgaWQ9Imhvd3RvdXNlIj5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5BZnRlciBpbnN0YWxsaW5nIHRoZSBtb2R1bGUgeW91IHNob3VsZCBjcmVhdGUgYSBmZXcgY29tcGFuaWVzLiAgQnkgZGVmYXVsdCwgdGhlcmUgaXMgb25seSBvbmUgcmVxdWlyZWQgZmllbGQgZm9yIGVhY2ggY29tcGFueSwgYSBuYW1lLiAgWW91IGNhbiBhbHNvIGVudGVyIGFuIGFkZHJlc3MsIHdlYnNpdGUgKHVybCksIGVtYWlsIGFkZHJlc3MsIGxhdGl0dWRlLCBsb25naXR1ZGUgYW5kIHBob25lIG51bWJlci4gICBPbmNlIHlvdSBoYXZlIGEgZmV3IGNvbXBhbmllcyBjcmVhdGVkLCBhdCBsZWFzdCBvbmUgb2YgdGhlbSBwdWJsaXNoZWQsICB5b3UgY2FuIGRpc3BsYXkgdGhlbSBvbiB0aGUgZnJvbnRlbmQgb2YgeW91ciB3ZWJzaXRlIGJ5IGNyZWF0aW5nIGEgbmV3IGNvbnRlbnQgcGFnZSwgYW5kIGFkZGluZyB0aGUgPGNvZGU+e0NvbXBhbnlEaXJlY3Rvcnl9PC9jb2RlPiB0YWcgaW50byBpdC4gICBTYXZlIHRoaXMgcGFnZSwgYW5kIGRpc3BsYXkgaXQgaW4geW91ciBicm93c2VyLiAgWW91IHNob3VsZCB0aGVuIHNlZSBhIGxpc3Qgb2YgeW91ciBwdWJsaXNoZWQgY29tcGFuaWVzLiAgIFRoaXMgaXMgYSBzdW1tYXJ5IHZpZXcuICBGb3IgZWFjaCBjb21wYW55IHJlY29yZCB5b3Ugc2hvdWxkIHNlZSBhIGxpbmsgdGhhdCwgd2hlbiBjbGlja2VkIHdpbGwgZGlzcGxheSBvbmx5IHRoYXQgY29tcGFueS4gIFRoaXMgaXMgYSBkZXRhaWwgdmlldy48L3A+CjxwPk5leHQgeW91IGNhbiBjcmVhdGUgc29tZSBjYXRlZ29yaWVzIGFuZCBhIGhpZXJhcmNoeSB0cmVlIHRvIGFsbG93IG9yZ2FuaXppbmcgeW91ciBjb21wYW5pZXMuICBUaGVuIGVkaXQgdGhlIGNvbXBhbmllcyBhbmQgYXNzaWduIHRoZW0gdG8gYSBsb2NhdGlvbiBpbiB0aGUgaGllcmFyY2h5IHRyZWUsIGFuZCBvbmUgb3IgbW9yZSBsb2NhdGlvbnMgaW4gdGhlIGNhdGdvcnkgdHJlZS48L3A+CjxwPkFmdGVyIHRoYXQsIHlvdSBjYW4gY3JlYXRlIGFzc29jaWF0ZWQgZGF0YSBmaWVsZHMgKGN1c3RvbSBmaWVsZHMpIHRvIGZ1cnRoZXIgZXhwYW5kIG9uIHRoZSBkYXRhIHlvdSBtYW5hZ2UgZm9yIGVhY2ggY29tcGFueS48L3A+CjxwPk9uY2UgeW91IGhhdmUgc29tZSBkYXRhIGluIHlvdXIgc3lzdGVtIGFuZCB5b3UgY2FuIGRpc3BsYXkgdGhhdCBkYXRhLi4uIHlvdSBtYXkgd2FudCB0byBnbyBhYm91dCBjdXN0b21pemluZyB5b3VyIGRpc3BsYXkgb2YgdGhhdCBkYXRhIGJ5OjwvcD4KPHVsPgogICAgPGxpPkN1c3RvbWl6aW5nIHRoZSBhcHBlYXJhbmNlIG9mIHlvdXIgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLiAgUGVyaGFwcyBpbmNsdWRpbmcgZGlzcGxheWluZyBsb2NhdGlvbnMgb24gYSBtYXAuPC9saT4KICAgIDxsaT5DcmVhdGluZyBhIGNhdGVnb3J5IHRyZWUgb3IgaGllcmFyY2h5IG5hdmlnYXRpb24gdG8gYWxsb3cgYSBjb252ZW5pZW50IHdheSBmb3IgdmlzaXRvcnMgdG8gZmluZCBjb21wYW5pZXMuPC9saT4KICAgIDxsaT5DcmVhdGluZyBhbiBhYmNsaXN0IHZpZXcgYXMgYW4gYWx0ZXJuYXRlIHdheSBvZiBmaW5kaW5nIGNvbXBhbmllcy48L2xpPgogICAgPGxpPkNyZWF0aW5nIGFuIGFkdmFuY2VkIHNlYXJjaCB2aWV3LjwvbGk+CiAgICA8bGk+QWxsb3dpbmcgYXV0aG9yaXplZCB1c2VycyB0byBhZGQgYW5kIG1hbmFnZSB0aGVpciBvd24gY29tcGFueSBlbnRyaWVzIGZyb20gdGhlIGZyb250ZW5kIG9mIHlvdXIgd2Vic2l0ZS48L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0iY2FsbGluZ2FjdGlvbnMiPkNhbGxsaW5nIGFjdGlvbnM8L2gzPgo8cD5JbiBtb3N0IGNpcmN1bXN0YW5jZXMgaXQgaXMgYmVzdCB0byBoYXZlIGRlZGljYXRlZCBjb250ZW50IHBhZ2VzIGZvciBpbmRpdmlkdWFsIGZ1bmN0aW9ucyBvZiB0aGUgQ29tcGFueURpcmVjdG9yeSBtb2R1bGUsIHN1Y2ggYXM6PC9wCjx1bD4KICAgIDxsaT5PbmUgb3IgbW9yZSBzdW1tYXJ5IHBhZ2VzIHdpdGggZGlmZmVyZW50IHF1ZXJpZXMuICBBIHN1bW1hcnkgcGFnZSBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgZGVzdGluYXRpb24gZnJvbSBhIGhpZXJhcmNoeSBvciBjYXRlZ29yeSBsaXN0IHZpZXcuIDwvbGk+CiAgICA8bGk+QSBkZWRpY2F0ZWQgcGFnZSB0byBkaXNwbGF5IGRldGFpbCB2aWV3cyBmb3IgY29tcGFuaWVzLiAgVGhvdWdoIHRoaXMgaXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSB3aGVuIG5vdCB1c2luZyB1cmwgc2x1Z3MuPC9saT4KICAgIDxsaT5BIHBhZ2UgcHJvdmlkaW5nIGEgY2F0ZWdvcnkgb3IgaGllcmFyY2h5IGxpc3Qgdmlldy48L2xpPgogICAgPGxpPkEgcGFnZSBwcm92aWRpbmcgYW4gQUJDIGxpc3Qgdmlldy48L3A+CiAgICA8bGk+QSBwYWdlIHByb3ZpZGluZyBhZHZhbmNlZCBzZWFyY2g8L3A+CiAgICA8bGk+QSBwcm90ZWN0ZWQgcGFnZSBwcm92aWRpbmcgZnJvbnRlbmQgZWRpdGluZyBmdW5jdGlvbmFsaXR5PC9saT4KPC91bD4KPHA+V2hlbiBjYWxsaW5nIHRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSwgdXN1YWxseSB0aGUgb25seSBwYXJhbWV0ZXIgdGhhdCBpcyByZWNvbW1lbmRlZCBpcyB0aGUgJ2FjdGlvbicgcGFyYW1ldGVyLiAgTW9zdCBvdGhlciBmaWx0ZXIgY3JpdGVyaWEgYW5kIGRpc3BsYXkgcGFyYW1ldGVycyBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IHRoZSBwYWdlIGxldmVsIHVzaW5nIHRoZSB7Y21zX21vZHVsZV9oaW50fSBmdW5jdGlvbmFsaXR5IGJlZm9yZSB0aGUgbW9kdWxlIGlzIGNhbGxlZC48L3A+CjxwPkR1ZSB0byByZXN0cmljdGlvbnMgb24gcHJldHR5IFVSTFMsIHRoZSBsaW5rcyBnZW5lcmF0ZWQgYnkgdGhlIGNhdGVnb3J5IGFuZCBoaWVyYXJjaHkgbGlzdCB2aWV3cyB3aWxsIE5PVCBwYXNzIHBhcmFtZXRlcnMgc3VjaCBhcyBzdW1tYXJ5dGVtcGxhdGUsIG9yIHBhZ2VsaW1pdCB0byB0aGUgc3VtbWFyeSB2aWV3LiAgVGhlcmVmb3JlLCBhcyBhYm92ZSwgdGhlIGZpbHRlciBjcml0ZXJpYSBhbmQgZGlzcGxheSBwYXJhbWV0ZXJzIGZvciB0aGUgc3VtbWFyeSB2aWV3IG11c3QgYmUgc3BlY2lmaWVkIHVzaW5nIHtjbXNfbW9kdWxlX2hpbnR9IGJlZm9yZSB0aGUgbW9kdWxlIGlzIGNhbGxlZCwgT04gdGhlIHBhZ2UgdGhhdCB0aGUgc3VtbWFyeSB2aWV3IHdpbGwgYmUgcmVuZGVyZWQgdXBvbi48L3A+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJhY3Rpb25zIj5BY3Rpb25zPC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgc2V2ZXJhbCBmcm9udGVuZCAnYWN0aW9ucycgdG8gaW50ZXJhY3Qgd2l0aCBjb21wYW55IGRhdGEgaW4gbXVsdGlwbGUgd2F5cy4gIEVhY2ggc2VwYXJhdGUgYWN0aW9uIHNlcnZlcyBkaWZmZXJlbnQgcHVycG9zZXMsIGFuZCBjYW4gYWNjZXB0IGRpZmZlcmVudCBwYXJhbWV0ZXJzIGZvciBjdXN0b21pemF0aW9uLiAgSGVyZSBhcmUgdGhlIHByaW1hcnkgYWN0aW9ucyB0aGF0IHdpbGwgYmUgdXNlZCBtb3N0IG9mdGVuLjwvcD4KPHVsPgogICAgPGxpPlRoZSAiZGVmYXVsdCIgYWN0aW9uLgogICAgICAgIDxwPlRoaXMgYWN0aW9uIGRpc3BsYXlzIGEgc3VtbWFyeSByZXBvcnQgb2YgemVybyBvciBtb3JlIGNvbXBhbmllcyB0aGF0IG1hdGNoIHRoZSBjcml0ZXJpYSBwcm92aWRlZC4gIElmIG5vIGNkbGFuZyBkYXRhIGlzIHNwZWNpZmllZCwgdGhpcyBtb2R1bGUgd2lsbCBkaXNwbGF5IGFsbCBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gb3JkZXIgb2YgY29tcGFueSBuYW1lLCBhc2NlbmRpbmcuICAgVGhpcyB2aWV3IHN1cHBvcnRzIHBhZ2luYXRpb24sIGN1c3RvbSB0ZW1wbGF0ZXMsIGFuZCBhZHZhbmNlZCBmaWx0ZXJpbmcgYnkgc3BlY2lmeWluZyBhIGNkbGFuZyBzY3JpcHQuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiA8Y29kZT5vcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsPC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+VGhlICJkZXRhaWxzIiBhY3Rpb24KICAgICAgICA8cD5UaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBkaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGNvbXBhbnkuICBJdCBtYXkgZGlzcGxheSBpbWFnZXMgaW4gYSBsYXJnZXIgc2l6ZSwgZGlzcGxheSBhIGdhbGxlcnkgb2YgaW1hZ2VzIGZvciBhIGNvbXBhbnkuLi4gb3IgbW9yZS48cD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogPGNvZGU+b3JpZ19kZXRhaWxfdGVtcGxhdGUudHBsPC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+VGhlICJicm93c2VoaWVyIiBhY3Rpb24KICAgICAgICA8cD5UaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBkaXNwbGF5IGEgbmF2aWdhdGlvbiBhbGxvd2luZyB1c2VycyB0byBlYXNpbHkgY2xpY2sgb24gYSBsaW5rIHRvIGRpc3BsYXkgYSBzdW1tYXJ5IHZpZXcgb2YgY29tcGFuaWVzIHRoYXQgYmVsb25nIHRvIHRoYXQgaGllcmFyY2h5LjwvcD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogPGNvZGU+b3JpZ19oaWVybGlzdF90ZW1wbGF0ZS50cGw8L2NvZGU+PC9wPgogICAgPC9saT4KICAgIDxsaT5UaGUgImNhdGVnb3J5bGlzdCIgYWN0aW9uCiAgICAgICAgPHA+U2ltaWxhciB0byB0aGUgYnJvd3NlaGllciBhY3Rpb24sIHRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGRpc3BsYXkgYSBuYXZpZ2F0aW9uIG9mIGNhdGVnb3JpZXMsIGFsbG93aW5nIHVzZXJzIHRvIGVhc2lseSBjbGljayBvbiBhIGxpbmsgdG8gYSBzdW1tYXJ5IHZpZXcgb2YgY29tcGFuaWVzIHRoYXQgYmVsb25nIHRvIHRoYXQgY2F0ZWdvcnkuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiA8Y29kZT5vcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGw8L2NvZGU+PC9wPgogICAgPC9saT4KICAgIDxsaT5UaGUgImFiY2xpc3QiIGFjdGlvbgogICAgICAgIDxwPlRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGRpc3BsYXkgYW4gYWxwaGFudW1lcmljIG5hdmlnYXRpb24gd2hlcmUgZWFjaCBsZXR0ZXIgb3IgbnVtYmVyIGlzIGEgbGluayB0byBhIHN1bW1hcnkgdmlldyBvZiBjb21wYW5pZXMgd2hvcyBuYW1lIGJlZ2lucyB3aXRoIHRoYXQgY2hhcmFjdGVyLiAgVGhpcyBhY3Rpb24gZGlzcGxheXMgdGhlIHJlc3VsdGluZyBzdW1tYXJ5IHZpZXcgZGlyZWN0bHkgYmVsb3cgdGhlIHByaW1hcnkgbmF2aWdhdGlvbi4gIFRoZSBkZWZhdWx0IGxldHRlciBzZWxlY3RlZCwgaWYgbm90IHNwZWNpZmllZCBpcyAiQSIuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiA8Y29kZT5vcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsPC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+VGhlICJhZHZzZWFyY2giIGFjdGlvbgogICAgICAgIDxwPlRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGFsbG93IGRldmVsb3BlcnMgdG8gY3JlYXRlIGEgZm9ybSBmb3IgYWR2YW5jZWQgc2VhcmNoaW5nIG9mIGRhdGEgaW4gdGhlIGNvbXBhbnlEaXJlY3RvcnkgbW9kdWxlLiAgT24gc3VibWlzc2lvbiB0aGUgZGF0YSBmcm9tIHRoZSBmb3JtIHN1Ym1pc3Npb24gaXMgcGFzc2VkIHRocm91Z2ggYSAnc2VhcmNoX3F1ZXJ5JyB0ZW1wbGF0ZSB3aGljaCBnbmVyYXRlcyBhIGNkbGFuZyBzY3JpcHQsICB3aGljaCBpbiB0dXJuIGlzIHVzZWQgdG8gcXVlcnkgdGhlIGRhdGFiYXNlLjwvcD4KCTxwPk9uY2UgZGF0YWJhc2UgcXVlcnlpbmcgaXMgY29tcGxldGUsIHRoaXMgYWN0aW9uIGdlbmVyYXRlcyBhIHN1bW1hcnkgdmlldyBvZiB0aGUgcmVzdWx0cy48cD4KCTxwPmZvcm0gcmVzdWx0cyBhcmUgc3RvcmVkIGluIHRoZSBzZXNzaW9uIHRvIHN1cHBvcnQgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXcgYW5kIHRoZSBhYmlsaXR5IHRvIHJldHVybiB0byB0aGUgcGFnZSB0byBicm93c2UgYW5vdGhlciBjb21wYW55IHVzaW5nIHRoZSBzYW1lIHF1ZXJ5LjwvcD4KICAgIDwvbGk+CjwvdWw+CjxwPkFkZGl0aW9uYWxseSwgdGhlcmUgYXJlIHNldmVyYWwgYWN0aW9ucyB1c2VmdWwgdmlhIGFqYXg6PC9wPgo8dWw+CiAgICA8bGk+YWpheF9jYXRlZ29yeV9hdXRvY29tcGxldGUKICAgICAgICA8cD50aGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byB3b3JrIHdpdGggdGhlIGF1dG9jb21wbGV0ZSBwbHVnaW4gZnJvbSBKUXVlcnktVUkuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiBuL2E8L3A+Cgk8cD5SZXF1ZXN0IG1ldGhvZDogPGNvZGU+R0VUPC9jb2RlPjwvcD4KCTxwPlBhcmFtZXRlcnM6PC9wPgoJPHVsPgoJICAgIDxsaT50ZXJtIChzdHJpbmcpIC0gVGhlIHRlcm0gdG8gc2VhcmNoIGZvci48L2xpPgoJPC91bD4KCTxwPk91dHB1dCBGb3JtYXQ6IDxjb2RlPkpTT048L2NvZGU+PC9wPgoJPHA+QW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIGxhYmVsIGFuZCB2YWx1ZSBtZW1iZXJzIGRlc2NyaWJpbmcgdGhlIG1hdGNoZWQgaXRlbXMuICBUaGUgbGFiZWwgaXMgdGhlIGxvbmcgbmFtZSB0byBhIG1hdGNoZWQgY2F0ZWdvcnksIGFuZCB0aGUgdmFsdWUgaXMgaXRzIHVuaXF1ZSBpbnRlZ2VyIGlkLjwvcD4KCTxwcmU+PGNvZGU+WwogICAgewogICAgICAgICJsYWJlbCI6ICJwYXJlbnQgPiBjaGlsZDEiLAoJInZhbHVlIjogMTIKICAgIH0sCiAgICB7CiAgICAgICAgInZhbHVlIiAgInBhcmVudCA+IGNoaWxkMiIsCgkidmFsdWUiOiAxNAogICAgfQpdPC9jb2RlPjwvcHJlPgogICAgPC9saT4KICAgIDxsaT5hamF4X2NoZWNrX3VybAogICAgICAgIDxwPlRoaXMgbWV0aG9kIGlzIGludGVuZGVkIHRvIGdlbmVyYXRlIG9yIHZhbGlkYXRlIGEgdXJsIHNsdWcgZm9yIGEgY29tcGFueS48L3A+Cgk8cD5GYWN0b3J5IGRlZmF1bHQgdGVtcGxhdGU6IG4vYTwvcD4KCTxwPlJlcXVlc3QgbWV0aG9kOiA8Y29kZT5QT1NUOjwvY29kZT48L3A+Cgk8cD5QYXJhbWV0ZXJzOjwvcD4KCTx1bD4KCSAgICA8bGk+bmFtZSAoc3RyaW5nKSAtIEEgY29tcGFueSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgVVJMIGZvci48L2xpPgoJICAgIDxsaT51cmwgKHN0cmluZywgb3B0aW9uYWwpIC0gQW4gZXhpc3RpbmcgVVJMIHRvIHZhbGlkYXRlLjwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5hamF4X2NvbXBhbnlfYXV0b2NvbXBsZXRlCiAgICAgICAgPHA+VGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgdG8gd29yayB3aXRoIHRoZSBhdXRvY29tcGxldGUgcGx1Z2luIGZyb20gSlF1ZXJ5LVVJLjwvcD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogbi9hPC9wPgoJPHA+UmVxdWVzdCBtZXRob2Q6IDxjb2RlPkdFVC9QT1NUPC9jb2RlPjwvcD4KCTxwPlBhcmFtZXRlcnM6PC9wPgoJPHVsPgoJICAgIDxsaT50ZXJtIChzdHJpbmcpIC0gVGhlIHRlcm0gdG8gc2VhcmNoIGZvci48L2xpPgoJICAgIDxsaT5tb2RlIChzdHJpbmcpIC0gVGhlIHNlYXJjaCBtb2RlLgoJICAgICAgICA8cD5Qb3NzaWJsZSB2YWx1ZXMgYXJlOiAgbGlrZSwgc3RhcnRzd2l0aCwgZW5kc3dpdGg8L3A+CgkgICAgPC9saT4KCTwvdWw+Cgk8cD5PdXRwdXQgRm9ybWF0OiA8Y29kZT5KU09OPC9jb2RlPjwvcD4KCTxwPkFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBsYWJlbCBhbmQgdmFsdWUgbWVtYmVycyBkZXNjcmliaW5nIHRoZSBtYXRjaGVkIGl0ZW1zLiAgVGhlIGxhYmVsIGlzIHRoZSBjb21wYW55IG5hbWUgdG8gYSBtYXRjaGVkIGNhdGVnb3J5LCBhbmQgdGhlIHZhbHVlIGlzIGl0cyB1bmlxdWUgaW50ZWdlciBpZC48L3A+Cgk8cHJlPjxjb2RlPlsKICAgIHsKICAgICAgICAibGFiZWwiOiAiY29tcGFueTEiLAoJInZhbHVlIjogMjEKICAgIH0sCiAgICB7CiAgICAgICAgInZhbHVlIiAgImNvbXBhbnkyIiwKCSJ2YWx1ZSI6IDI0CiAgICB9Cl08L2NvZGU+PC9wcmU+CiAgICA8L2xpPgogICAgPGxpPmFqYXhfZ2VvbG9jYXRlCiAgICAgICAgPHA+SWYgZ2VvY29kaW5nL2dlb2xvY2F0aW9uIHNlcnZpY2VzIGFyZSBhdmFpbGFibGUsIGFuZCBhIGNvbXBhdGlibGUgbW9kdWxlIGlzIHJlZ2lzdGVyZWQgdGhlbiB0aGlzIGFjdGlvbiBwcm92aWRlcyBnZW9jb2RpbmcgZnVuY3Rpb25hbGl0eSBmb3IgYWRkcmVzc2VzLjwvcD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogbi9hPC9wPgoJPHA+UmVxdWVzdCBtZXRob2Q6IDxjb2RlPlBPU1Q8L2NvZGU+PC9wPgoJPHA+UGFyYW1ldGVyczo8L3A+Cgk8dWw+CgkgICAgPGxpPmFkZHJlc3MgKHN0cmluZykgLSBBIGZ1bGx5IHF1YWxpZmllZCBhZGRyZXNzLjwvbGk+Cgk8L3VsPgoJPHA+T3V0cHV0IEZvcm1hdDogPGNvZGU+SlNPTjwvY29kZT48L3A+Cgk8cD5JZiBzdWNjZXNzZnVsLCBhIHZhbGlkIEdlb0NvZGluZ1Jlc3VsdCBvYmplY3QuIDxlbT4odmFsdWVzIGxpc3RlZCBiZWxvdyBhcmUgbm90IHRydWUpPC9lbT48L3A+Cgk8cHJlPjxjb2RlPnsKICAgICJpbnB1dF9hZGRyZXNzIjogIkxvbmRvbiwgVUsiLAogICAgImxhdGl0dWRlIjogMjMuMjMxMjM0LAogICAgImxvbmdpdHVkZSI6IC0xMjEuMjQyMzk3LAogICAgImNvbmZpZGVuY2UiOiAiMC4xMjM0Igp9PC9jb2RlPjwvcHJlPgogICAgPC9saT4KPC91bD4KPHA+TGFzdGx5LCB0aGVyZSBhcmUgc2V2ZXJhbCBhY3Rpb25zIGF2YWlsYWJsZSB3aGVuIHN1cHBvcnRpbmcgdGhlIGFiaWxpdHkgZm9yIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzOjwvcD4KPHVsPgogICAgPGxpPmZyb250ZW5kbGlzdAogICAgICAgIDxwPldoZW4gZW5hYmxlZCwgdGhpcyBhY3Rpb24gd2lsbCBkaXNwbGF5IGEgcmVwb3J0IG9mIHRoZSBjb21wYW5pZXMgdGhhdCBhcmUgb3duZWQgYnkgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gKEZFVSkgdXNlci4gIEZvciBlYWNoIGNvbXBhbnkgb3duZWQgYnkgdGhlIGN1cnJlbnQgdXNlciB0aGVyZSB3aWxsIGJlIGxpbmtzIHRvIGRlbGV0ZSB0aGUgY29tcGFueSAoaWYgcGVybWl0dGVkKSwgZWRpdCB0aGUgY29tcGFueSwgYW5kIGlmIGFuIGFsYnVtIGZpZWxkIGV4aXN0cywgZWRpdCBhbiBhbGJ1bSBmb3IgdGhlIGNvbXBhbnkuPHA+Cgk8cD5BZGRpdGlvbmFsbHksIGRlcGVuZGluZyB1cG9uIGNvbmZpZ3VyYXRpb24sIHRoaXMgcmVwb3J0IHByb3ZpZGVzIGxpbmtzIHRvIGltcG9ydCBjb21wYW5pZXMgZnJvbSBDU1YsIGFuZCB0byBjcmVhdGUgbmV3IGNvbXBhbmllcy48L2xpPgoJPHA+VGhpcyBhY3Rpb24gYWNjZXB0cyBubyBwYXJhbWV0ZXJzLiAgSXQgd2lsbCB0aHJvdyBleGNlcHRpb25zIHVuZGVyIHZhcmlvdXMgY2lyY3Vtc3RhbmNlcywgcGFydGljdWxhcmx5IGlmIHRoZSBjb25maWd1cmF0aW9uIGRvZXMgbm90IGFsbG93IHRoZSB1c2VyIHRvIGRpc3BsYXkgdGhlIGZvcm0uPC9wPgogICAgPC9saT4KICAgIDxsaT5mZV9lZGl0CiAgICAgICAgPHA+d2hlbiBlbmFibGVkLCB0aGlzIGFjdGlvbiB3aWxsIGRpc3BsYXkgYSBmb3JtIHRoYXQgYWxsb3dzIGxvZ2dlZCBpbiBGRVUgdXNlcnMgdG8gYWRkIGEgbmV3IGNvbXBhbnksIG9yIGVkaXQgYSBjb21wYW55IHRoYXQgdGhleSBoYXZlIHByZXZpb3VzbHkgY3JlYXRlZC4gIFRoZSBhY2Nlc3MgdG8gdGhpcyBhY3Rpb24gaXMgbm9ybWFsbHkgcHJvdmlkZWQgYnkgdGhlIGZyb250ZW5kbGlzdCBhY3Rpb24uPC9wPgogICAgPC9saT4KICAgIDxsaT5mZV9lZGl0X2FsYnVtCiAgICAgICAgPHA+V2hlbiBlbmFibGVkLCBhbmQgd2hlbiBhbiBhbGJ1bSBmaWVsZCBleGlzdHMgKG9ubHkgb25lIGlzIHBlcm1pdHRlZCksIHRoaXMgYWN0aW9uIHdpbGwgZGlzcGxheSBhIGZvcm0gdGhhdCBhbGxvd3MgYSBsb2dnZWQgaW4gRkVVIHVzZXIgdG8gdXBsb2FkIGFuZCBtYW5hZ2UgaW1hZ2VzIGZvciBhIGNvbXBhbnkgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGluIGFuICdhbGJ1bScuICBUaGUgYWNjZXNzIHRvIHRoaXMgYWN0aW9uIGlzIG5vcm1hbGx5IHByb3ZpZGVkIGluIHRoZSBmcm9udGVuZCBsaXN0LCBvciB0aGUgZmVfZWRpdCBhY3Rpb25zLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+ZmVfZGVsZXRlCiAgICAgICAgPHA+V2hlbiBlbmFibGVkLCB0aGlzIGFjdGlvbiwgd2hlbiBhY3RpdmF0ZWQsIHdpbGwgZGVsZXRlIHRoZSBzcGVjaWZpZWQgY29tcGFueSB0aGF0IGlzIG93bmVkIGJ5IHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIEZFVSB1c2VyLiAgVGhlIGFjY2VzcyB0byB0aGlzIGFjdGlvbiBpcyBub3JtYWxseSBwcm92aWRlZCBvbiB0aGUgZnJvbnRlbmQgbGlzdCByZXBvcnQuPC9wPgogICAgPC9saT4KICAgIDxsaT5mZV9pbXBvcnQKICAgICAgICA8cD53aGVuIGVuYWJsZWQsIHRoaXMgYWN0aW9uIHByb3ZpZGVzIGEgZm9ybSB0byBhbGxvdyBsb2dnZWQgaW4gRkVVIHVzZXJzIHRvIGltcG9ydCBjb21wYW55IHJlY29yZHMgZnJvbSBhIGZpeGVkIENTViBmb3JtYXQuPC9wPgogICAgPC9saT4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+CgoKPGgzIGlkPSJwYXJhbWV0ZXJzIj5QYXJhbXRlcnM8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEl0IGlzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0IGluIG1vc3QgY2lyY3Vtc3RhbmNlcyB0aGUgcGFyYW1ldGVycyB0byB0aGUgbW9kdWxlIGFjdGlvbiBzaG91bGQgbm90IGJlIHNwZWNpZmllZCBhcyBhcmd1bWVudHMgdG8gdGhlIHRhZyBpdHNlbGYuICBJdCBpcyBiZXR0ZXIgdG8gdXNlIDxwPntjbXNfbW9kdWxlX2hpbnR9PC9wPiBUbyBzZXQgdGhlIHBhcmFtZXRlcnMgdG8gdGhlIG1vZHVsZSBjYWxsIGJlZm9yZSBpdCBpcyBjYWxsZWQuIGkuZTogaW4gdGhlIGZpZWxkIHRoYXQgY29udGFpbnMgc21hcnR5IGxvZ2ljIHNwZWNpZmljIHRvIHRoZSBjb250ZW50IHBhZ2UuPC9wPgo8dWw+CiAgICA8bGk+YWJjbGlzdHRlbXBsYXRlCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gYWJjbGlzdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIGFiY2xpc3Qgdmlldy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIG9yaWdfYWJjbGlzdF90ZW1wbGF0ZS50cGw8L3A+CiAgICA8L2xpPgogICAgPGxpPmNhdGVnb3J5CiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gY2F0ZWdvcnlsaXN0PC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhlIG5hbWUgb3IgaWQgb2YgYSBjYXRlZ29yeSB0byBiZWdpbiBkaXNwbGF5aW5nIGEgbmF2aWdhdGlvbiBmcm9tLiAgSWYgYSBzdHJpbmcgaXMgcHJvdmlkZWQsIHRoZSBmaXJzdCBjYXRlZ29yeSB3aXRoIGEgbWF0Y2hpbmcgbmFtZSB3aWxsIGJlIHVzZWQuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIGludHxzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gbi9hPC9wPgogICAgPC9saT4KICAgIDxsaT5jYXRlZ29yeWlkCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gZGVmYXVsdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBpZCBvZiBhIGNhdGVnb3J5IHRvIHVzZSBpbiBhIGNkbGFuZyBzdGF0ZW1lbnQgdG8gZmlsdGVyIHRoZSBvdXRwdXQgdG8gY29tcGFuaWVzIHRoYXQgYmVsb25nIHdpdGggdGhhdCBjYXRlZ29yeS4gIFRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgYnkgdGhlICJjYXRlZ29yeWxpc3QiIGFjdGlvbi48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gbi9hPC9wPgoJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAtIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvIG5vdCBjYWxsIGEgc3VtbWFyeSB2aWV3IHVzaW5nIHRoaXMgYXJndW1lbnQsIGluc3RlYWQgYnVpbGQgYSBjZGxhbmcgc2NyaXB0IHVzaW5nIHRoZSAicXVlcnkiIGZvcm1hdCBkZXNjcmliZWQgYmVsb3cuPC9wPgogICAgPC9saT4KICAgIDxsaT5jb21wYW55aWQKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBkZXRhaWxzPC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhlIGlkIG9mIGEgY29tcGFueSB0byBkaXNwbGF5IGluIGEgZGV0YWlsIHZpZXcuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIGludC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIG4vYTwvcD4KICAgIDwvbGk+CiAgICA8bGk+Y2F0ZWdvcnlsaXN0dGVtcGxhdGUKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBjYXRlZ29yeWxpc3Q8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgbmFtZS9zbWFydHkgcmVzb3VyY2UgdG8gZm9ybWF0IHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIG9yaWdfY2F0ZWdvcnlsaXN0X3RlbXBsYXRlLnRwbDwvcD4KICAgIDwvbGk+CiAgICA8bGk+ZGV0YWlsdGVtcGxhdGUKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBkZXRhaWxzPC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhlIG5hbWUvc21hcnR5IHJlc291cmNlIHRvIGZvcm1hdCB0aGUgZGV0YWlsIHZpZXcuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIHN0cmluZzwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gLSBvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGw8L3A+CiAgICA8L2xpPgogICAgPGxpPmhpZXIKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBicm93c2VoaWVyPC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSW4gdGhlIGJyb3dzZWhpZXIgYWN0aW9uIHRoaXMgaXMgVGhlIG5hbWUgb3IgaWQgb2YgYSBoaWVyYXJjaHkgdG8gYmVnaW4gZGlzcGxheWluZyBhIG5hdmlnYXRpb24gZnJvbS4gIElmIGEgc3RyaW5nIGlzIHByb3ZpZGVkLCB0aGUgZmlyc3QgaGllcmFyY2h5IHdpdGggYSBtYXRjaGluZyBuYW1lIHdpbGwgYmUgdXNlZC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50fHN0cmluZzwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gLSBuL2E8L3A+CiAgICA8L2xpPgogICAgPGxpPmhpZXJpZAogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIHN1bW1hcnk8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBJbiB0aGUgc3VtbWFyeSB2aWV3IHRoaXMgaXMgdGhlIGludGVnZXIgaWQgb2YgYSBoaWVyYXJjaHkgdG8gdXNlIGluIGEgY2RsYW5nIHN0YXRlbWVudCB0byBmaWx0ZXIgdGhlIG91dHB1dCB0byBjb21wYW5pZXMgdGhhdCBiZWxvbmcgdG8gdGhhdCBoaWVyYXJjaHkuICBUaGlzIHBhcmFtZXRlciBpcyBvdXRwdXQgYnkgdGhlIGJyb3dzZWhpZXIgYWN0aW9uLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBpbnQ8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gbi9hPC9wPgoJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAtIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvIG5vdCBjYWxsIGEgc3VtbWFyeSB2aWV3IHVzaW5nIHRoaXMgYXJndW1lbnQsIGluc3RlYWQgYnVpbGQgYSBjZGxhbmcgc2NyaXB0IHVzaW5nIHRoZSAicXVlcnkiIGZvcm1hdCBkZXNjcmliZWQgYmVsb3cuPC9wPgogICAgPC9saT4KICAgIDxsaT5oaWVybGlzdHRlbXBsYXRlCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gYnJvd3NlaGllcjwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIGhpZXJhcmNoeSB2aWV3LjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gb3JpZ19oaWVybGlzdF90ZW1wbGF0ZS50cGw8L3A+CiAgICA8L2xpPgogICAgPGxpPnJlc3QKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBzdW1tYXJ5PC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBhY3Rpb24gc2hvdWxkIGFzc3VtZSB0aGF0IHRoaXMgaXMgYSBSRVNUIHJlcXVlc3QsIGFuZCBvdXRwdXQgYW55IG1hdGNoaW5nIHJlc3VsdHMgYXMgSlNPTiB3aXRoIGFuIGFwcGxpY2F0aW9uL2pzb24gY29udGVudCB0eXBlLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBib29sZWFuPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIGZhbHNlPC9wPgogICAgPC9saT4KICAgIDxsaT5saW1pdAogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIHN1bW1hcnksIGFiY2xpc3QsIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gbGltaXQgdGhlIG51bWJlciBvZiBtYXRjaGluZyByZWNvcmRzIHRoYXQgYXJlIG91dHB1dC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50PC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIDEwMDA8L3A+Cgk8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IGl0IGlzIG9mdGVuIGFkdmlzYWJsZSB0byB1c2UgY2RsYW5nIHN0YXRlbWVudHMgdG8gbGltaXQgdGhlIG91dHB1dCBpbnN0ZWFkIG9mIHRoaXMgcGFyYW1ldGVyLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+bmFtZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFiY2xpc3Q8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSBjaGFyYWN0ZXIgdG8gdXNlIHdoZW4gZmlsdGVyaW5nIGJ5IGNvbXBhbnkgbmFtZS4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmcgKG9uZSBjaGFyYWN0ZXI8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gQTwvcD4KICAgIDwvbGk+CiAgICA8bGk+cGFnZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFiY2xpc3QsIHN1bW1hcnksIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEluIGNvbmp1bmN0aW9uIHdpdGggYSBxdWVyeSBsaW1pdCB0aGlzIGlzIHVzZWQgdG8gZnVydGhlciBmaWx0ZXIgdGhlIG91dHB1dCBvZiBhIGNkbGFuZyBzY3JpcHQgYnkgYSBzdGFydGluZyBpbmRleC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50PC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIDE8L3A+CiAgICA8L2xpPgogICAgPGxpPnF1ZXJ5CiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gc3VtbWFyeTwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEFuIGFycmF5IG9mIGNkbGFuZyBzdGF0ZW1lbnRzIHRvIGJ1aWxkIGEgc3VtbWFyeSB2aWV3IGZyb20uPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIHN0cmluZ1tdIC0gYW4gYXJyYXkgb2Ygc3RyaW5nczwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gIFsgJ2FuZDpzdGF0dXM6cHVibGlzaGVkJywgJ3NvcnRieTpjb21wYW55X25hbWUnLCAnc29ydG9yZGVyOkFTQycsICdsaW1pdDoxMDAwJyBdPC9wPgoJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBVc2UgZWl0aGVyIHRoaXMgYXJndW1lbnQsIG9yIHRoZSBxdWVyeV8xLCBxdWVyeV8yLCBxdWVyeV8zLi4uIGZvcm1hdCwgYnV0IG5vdCBib3RoLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+cXVlcnlfMSwgcXVlcnlfMiwgcXVlcnlfMywgLi4uCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gc3VtbWFyeTwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEEgc2VyaWVzIG9mIHN0cmluZyBhcmd1bWVudHMgdGhhdCBjYW4gYmUgdXNlZCB0byBidWlsZCBhIGNkbGFuZyBzY3JpcHQuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIHN0cmluZzwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gIG4vYTwvcD4KCTxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVXNlIGVpdGhlciB0aGlzIGFyZ3VtZW50IGZvcm1hdCBvciB0aGUgcXVlcnkgcGFyYW1ldGVyLCBidXQgbm90IGJvdGguPC9wPgogICAgPC9saT4KICAgIDxsaT5zZWFyY2hfbmFtZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lIHRvIHVzZSB0byB0ZW1wb3JhcmlseSBzYXZlIHRoZSBhcmd1bWVudHMgb2YgYSBzZWFyY2gsIHNvIHRoYXQgbXVsdGlwbGUgc2VhcmNoIGZvcm1zIGNhbiBleGlzdC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAgbi9hPC9wPgogICAgPC9saT4KICAgIDxsaT5zZWFyY2hfcXVlcnkKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBhZHZzZWFyY2g8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgbmFtZSBvZiBhIHNtYXJ0eSB0ZW1wbGF0ZSB0aGF0IGlzIHVzZWQgdG8gYnVpbGQgYSBjZGxhbmcgcXVlcnkgZm9yIGFkdmFuY2VkIHNlYXJjaGluZy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAgb3JpZ19zZWFyY2gtcXVlcnkudHBsPC9wPgogICAgPC9saT4KICAgIDxsaT5zZWFyY2h0ZW1wbGF0ZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIGFkdmFuY2VkIHNlYXJjaCBmb3JtLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gb3JpZ19hZHZzZWFyY2hfdGVtcGxhdGUudHBsPC9wPgogICAgPC9saT4KICAgIDxsaT5zdW1tYXJ5cGFnZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFiY2xpc3QsIGJyb3dzZWhpZXIsIGNhdGVnb3J5bGlzdCwgZGVmYXVsdCwgZGV0YWlsczwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBwYWdlIGFsaWFzIG9yIGlkIG9mIGEgcGFnZSB0byB1c2UgZm9yIGEgc3VtbWFyeSB2aWV3LiAgVGhpcyB2YWx1ZSBpcyBwcm92aWRlZCB0byB0aGUgdmlldyB0ZW1wbGF0ZSBmb3IgdXNlIGluIGdlbmVyYXRpbmcgc3Vic2VxdWVudCBsaW5rcy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nfGludDwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gLSBUaGUgY3VycmVudCBwYWdlIGlkLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+c3VtbWFyeXRlbXBsYXRlCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gZGVmYXVsdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIHN1bW1hcnkgdmlldzwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gb3JpZ19zdW1tYXJ5X3RlbXBsYXRlLnRwbDwvcD4KICAgIDwvbGk+CiAgICA8bGk+d2l0aGNoaWxkcmVuCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gZGVmYXVsdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIElmIHNwZWNpZmllZCwgYW5kIGEgaGllcmlkIG9yIGNhdGVnb3J5aWQgYXJndW1lbnQgaXMgYWxzbyBzcGVjaWZpZWQsIHRoZW4gdGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgY2hpbGRyZW4gb2YgdGhlIHNwZWNpZmllZCBoaWVyYXJjaHkgaWQgb3IgY2F0ZWdvcnkgaWQgc2hvdWxkIGFsc28gYmUgZGlzcGxheWVkLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBib29sPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIGZhbHNlPC9wPgogICAgPC9saT4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+CgoKPGgzIGlkPSJhYm91dF90ZW1wbGF0ZXMiPkFib3V0IHRlbXBsYXRlczwvaDM+CjxwPjxzdHJvbmc+UmVtaW5kZXI6PC9zdHJvbmc+IEl0IGlzIG5ldmVyIGEgZ29vZCBpZGVhIHRvIG1vZGlmeSB0aGUgdGVtcGxhdGVzIHdpdGhpbiB0aGUgbW9kdWxlJ3Mgc291cmNlIGRpcmVjdG9yeS4gIFRoZXkgc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgL2Fzc2V0cy9tb2R1bGVfY3VzdG9tL0NvbXBhbnlEaXJlY3RvcnkvdGVtcGxhdGVzIGRpcmVjdG9yeSwgaW50byBhIHRoZW1lIChDTVNNUyAyLjMrKSBvciBpbnRvIERlc2lnbk1hbmFnZXIgZm9yIGVkaXRpbmcuPC9wPgo8dWw+CiAgICA8bGk+VGhlIHN1bW1hcnkgdGVtcGxhdGUKICAgICAgICA8cD5BY3Rpb25zIHVzaW5nIHRoaXM6ICBkZWZhdWx0LCBhYmNsaXN0LCBhZHZzZWFyY2g8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsPC9wPgoJPHA+VmFyaWFibGVzOjwvcD4KCTx1bD4KCSAgICA8bGk+JGl0ZW1zIC0gQ29tcGFueVNldAoJICAgICAgICA8cD50aGlzIG9iamVjdCBjb250YWlucyB0aGUgY29tcGFueSBvYmplY3RzIHRoYXQgbWF0Y2ggdGhlIHF1ZXJ5IHNwZWNpZmllZC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JHN1bW1hcnlwYWdlIC0gaW50CgkgICAgICAgIDxwPldoZW4gY2FsbGVkIGRpcmVjdGx5LCB0aGlzIHZhcmlhYmxlIG9ubHkgY29udGFpbnMgdGhlIGN1cnJlbnQgcGFnZSBpZC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JGNhdGVnb3J5X2lkIC0gaW50fG51bGwKCSAgICAgICAgPHA+SWYgb25lIGNhbiBiZSBkZXRlY3RlZCBpbiB0aGUgY2RsYW5nIHF1ZXJ5LCB0aGlzIHdpbGwgYmUgdGhlIGlkIGZyb20gdGhlIGxhc3QgY2F0ZWdvcnkgZXhwcmVzc2lvbiBpbiB0aGUgY2RsYW5nIHNjcmlwdC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JGhpZXJfaWQgLSBpbnR8bnVsbAoJICAgICAgICA8cD5JZiBvbmUgY2FuIGJlIGRldGVjdGVkIGluIHRoZSBjZGxhbmcgcXVlcnksIHRoaXMgd2lsbCBiZSB0aGUgaWQgZnJvbSB0aGUgbGFzdCBoaWVyYXJjaHkgZXhwcmVzc2lvbiBpbiB0aGUgY2RsYW5nIHNjcmlwdC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JGVuY29kZWQgLSBzdHJpbmcKCSAgICAgICAgPHA+dGhpcyBpcyBhbiBlbmNvZGVkIGFuZCBzaWduZWQgY29weSBvZiB0aGUgY2RsYW5nIHNjcmlwdC4gIEl0IGlzIHVzZWQgYnkgdGhlIHBhZ2luYXRpb24gZm9ybSBzbyB0aGF0IHRoZSBxdWVyeSBjYW4gYmUgcmVtZW1iZXJlZCBiZXR3ZWVuIHBhZ2luYXRpb24gcmVxdWVzdHMuPC9wPgoJICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5UaGUgZGV0YWlsIHRlbXBsYXRlCiAgICAgICAgPHA+QWN0aW9ucyB1c2luZyB0aGlzOiAgZGVmYXVsdCwgZGV0YWlscywgYWJjbGlzdDwvcD4KCTxwPkRlZmF1bHQgdGVtcGxhdGUgbmFtZTogIG9yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbDwvcD4KCTxwPlZhcmlhYmxlczo8L3A+Cgk8dWw+CgkgICAgPGxpPiRlbnRyeSAtIENvbXBhbnkKCSAgICAgICAgPHA+QSBzaW5nbGUgY29tcGFueSBvYmplY3QgdG8gZGlzcGxheS48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JHN1bW1hcnlwYWdlIC0gaW50CgkgICAgICAgIDxwPlRoZSBmYWN0b3J5IGRldGFpbCB0ZW1wbGF0ZSB1c2VzIHRoaXMgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgbGlua3MgdG8gaGllcmFyY2h5IG9yIGNhdGVnb3J5IHN1bW1hcnkgdmlld3MuPC9wPgoJICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5UaGUgYWJjbGlzdCB0ZW1wbGF0ZQogICAgICAgIDxwPkFjdGlvbnMgdXNpbmcgdGhpczogIGFiY2xpc3Q8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsPC9wPgoJPHA+VmFyaWFibGVzOjwvcD4KCTx1bD4KCSAgICA8bGk+YWJjbGlzdCAtIGFzc29jaWF0aXZlIGFycmF5CgkgICAgICAgIDxwPkFuIGFycmF5IG9mIGxldHRlcnMvbnVtYmVycyB0byBjb3VudHMgdG8gZGlzcGxheSB0aGUgbnVtYmVyIG9mIGNvbXBhbmllcyBhdmFpbGFibGUgaW4gZWFjaCBzZWN0aW9uLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT5jdXJyZW50IC0gc3RyaW5nCgkgICAgICAgIDxwPlRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGxldHRlci9udW1iZXIuICBGb3IgdXNlIGluIGJ1aWxkaW5nIHRoZSBuYXZpZ2F0aW9uLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT5pdGVtcyAtIENvbXBhbnlTZXQKCSAgICAgICAgPHA+QSBsaXN0IG9mIHRoZSBjb21wYW5pZXMgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT5zdW1tYXJ5cGFnZSAtIGludAoJICAgICAgICA8cD5BIHBhZ2VpZCB0byB1c2UgZm9yIHN1YnNlcXVlbnQgc3VtbWFyeSB2aWV3cy4gIFRoaXMgcGFyYW1ldGVyIG1heSBiZSB1c2VkIGluIGxpbmtzLjwvcD4KCSAgICA8L2xpPgoJPC91bD4KICAgIDwvbGk+CiAgICA8bGk+VGhlIGNhdGVnb3J5bGlzdCB0ZW1wbGF0ZQogICAgICAgIDxwPkFjdGlvbnMgdXNpbmcgdGhpczogIGFiY2xpc3Q8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsPC9wPgoJPHA+VmFyaWFibGVzOjwvcD4KCTx1bD4KCSAgICA8bGk+JGNhdGVnb3J5bGlzdCAtIENhdGVnb3J5VHJlZU5vZGVbXQoJICAgICAgICA8cD5BIHRyZWUgc3RydWN0dXJlIG9mIGNhdGVnb3JpZXMgdG8gZGlzcGxheS48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+c3VtbWFyeXBhZ2UgLSBpbnQKCSAgICAgICAgPHA+QSBwYWdlaWQgdG8gdXNlIGZvciBzdWJzZXF1ZW50IHN1bW1hcnkgdmlld3MuICBUaGlzIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIHVybHMgdG8gdXNlIGluIGxpbmtzPC9wPgoJICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+VGhlIGhpZXJhY2h5bGlzdCB0ZW1wbGF0ZQogICAgICAgIDxwPkFjdGlvbnMgdXNpbmcgdGhpczogIGJyb3dzZWhpZXI8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX2hpZXJsaXN0X3RlbXBsYXRlLnRwbDwvcD4KCTxwPlZhcmlhYmxlczo8L3A+Cgk8dWw+CgkgICAgPGxpPiRoaWVyZGF0YSAtIEhpZXJhcmNoeVRyZWVOb2RlW10KCSAgICAgICAgPHA+QSB0cmVlIHN0cnVjdHVyZSBvZiBjYXRlZ29yaWVzIHRvIGRpc3BsYXkuPC9wPgoJICAgIDwvbGk+CgkgICAgPGxpPnN1bW1hcnlwYWdlIC0gaW50CgkgICAgICAgIDxwPkEgcGFnZWlkIHRvIHVzZSBmb3Igc3Vic2VxdWVudCBzdW1tYXJ5IHZpZXdzLiAgVGhpcyBwYXJhbWV0ZXIgbWF5IGJlIHVzZWQgd2hlbiBjcmVhdGluZyB1cmxzIHRvIHVzZSBpbiBsaW5rczwvcD4KCSAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0iYWJvdXRfZW1haWxzIj5BYm91dCBlbWFpbHM8L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBjYXBhYmxlIG9mIG5vdGlmeWluZyBtZW1iZXJzIG9mIGFuIGFkbWluIGdyb3VwIHZpYSBlbWFpbCB3aGVuIGEgY29tcGFueSByZWNvcmQgaXMgYWRkZWQgb3IgZWRpdGVkIHZpYSB0aGUgZnJvbnRlbmQgaW50ZXJmYWNlLiAgVGhlcmUgaXMgYSBzaW5nbGUgdGVtcGxhdGUgZm9yIHRoaXMgbmFtZWQ6IDxjb2RlPmZyb250ZW5kX2VkaXQuZW1sPC9jb2RlPi48L3A+CjxwPlRoZSBmYWN0b3J5IGRlZmF1bHQgbG9jYXRpb24gZm9yIHRoaXMgdGVtcGxhdGVzIGlzIGluIDxjb2RlPm1vZHVsZXMvQ29tcGFueURpcmVjdG9yeS9lbWFpbHMvZnJvbnRlbmRfZWRpdC5lbWw8L2NvZGU+LiAgSG93ZXZlciB5b3Ugc2hvdWxkIG5ldmVyIG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkgYXMgaXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB1cGdyYWRlLiAgSW5zdGVhZCB5b3Ugc2hvdWxkIGNvcHkgdGhlIGZpbGUgdG8gPGNvZGU+L2Fzc2V0cy9tb2R1bGVfY3VzdG9tL0NvbXBhbnlEaXJlY3RvcnkvZW1haWxzL2Zyb250ZW5kX2VkaXQuZW1sPC9jb2RlPiBhbmQgbWFrZSB5b3VyIG1vZGlmaWNhdGlvbnMgdGhlcmUuPC9wPgo8cD5TZWUgdGhlIGhlbHAgYWJvdXQgZW1haWxzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIGZvciBvcHRpb25zIGFuZCB0aGUgZm9ybWF0IG9mIHRoaXMgZmlsZS4gIFBsZWFzZSBub3RlIHRoYXQgc2luY2UgdGhpcyBlbWFpbCBpcyBzZW50IGZyb20gYSBmcm9udGVuZCByZXF1ZXN0IHRvIGFkbWluaXN0cmF0b3JzLCBkZXRlcm1pbmluZyB0aGUgJ2N1cnJlbnQgbGFuZ3VhZ2UnIGlzIGRpZmZpY3VsdCwgc28gaXQgaXMgcHJvYmFibHkgYmVzdCB0byBoYXJkY29kZSBhbnkgc3RyaW5ncy48L3A+CjxwPkFsc28gc2VlIHRoZSBzZWN0aW9uIGJlbG93IGFib3V0IGNvbmZpZ3VyaW5nIHRoaXMgZW1haWwgZnVuY3Rpb25hbGl0eSwgYW5kIGVuc3VyZSB0aGF0IHRoZSBtZW1iZXJzIG9mIHRoZSBzZWxlY3RlZCBhZG1pbiBncm91cCBoYXZlIHRoZWlyIGVtYWlsIGFkZHJlc3MgZmllbGQgZmlsbGVkIGluIGluc2lkZSB0aGVpciB1c2VycHJvZmlsZS48L3A+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJvYmplY3RzIj5PYmplY3RzPC9oMz4KPHA+VGhpcyBzZWN0aW9uIGRlZmluZXMgdGhlIHZhcmlvdXMgb2JqZWN0cyB0aGF0IGFyZSB1c2VkIGluIHZhcmlvdXMgdGVtcGxhdGVzLiAgVW5sZXNzIG90aGVyd2lzZSBzdGF0ZWQgeW91IGNhbiBhc3N1bWUgdGhhdCB0aGUgZGF0YSBhdmFpbGFibGUgdG8gYSBzbWFydHkgdGVtcGxhdGUgaXMgcmVhZCBvbmx5IGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQuPC9wPgo8dWw+CiAgICA8bGk+Q29tcGFueSBvYmplY3QKICAgICAgICA8cD5BIGNvbXBhbnkgb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGNvbXBhbnkuICBJdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXR0YWNoZWQgaGllcmFyY2h5LCB0aGUgY2F0ZWdvcmllcyB0aGF0IHRoZSBjb21wYW55IGJlbG9uZ3MgdG8sICBhbmQgdmFsdWVzIGZvciBhbGwgZmllbGQgZGVmaW5pdGlvbnMuPC9wPgogICAgICAgIDxwPlB1YmxpYyBtZW1iZXJzPC9wPgoJPHVsPgoJICAgICA8bGk+PGNvZGU+aWQ8L2NvZGU+IC0gKGludCkgLSBUaGUgdW5pcXVlIGludGVnZXIgaWRlbnRpZmllciBmb3IgdGhpcyBjb21wYW55LjwvbGk+CgkgICAgIDxsaT48Y29kZT5jb21wYW55X25hbWU8L2NvZGU+IC0gKHN0cmluZykgLSBUaGUgY29tcGFueSBuYW1lLjwvbGk+CgkgICAgIDxsaT48Y29kZT5hZGRyZXNzPC9jb2RlPiAtIChzdHJpbmcpIC0gVGhlIGNvbXBhbnkgYWRkcmVzcy4gIFRoaXMgbWF5IGNvbnRhaW4gc3RyZWV0IGFkZHJlc3MgYXMgd2VsbCBhcyBjaXR5LCBzdGF0ZSwgcG9zdGFsIGFuZCBjb3VudHJ5IGNvZGVzLiAgSXQgbWF5IGJlIGZvcm1hdHRlZCB3aXRoIG5ld2xpbmUgc2VwYXJhdG9ycy48L2xpPgoJICAgICA8bGk+PGNvZGU+dGVsZXBob25lPC9jb2RlPiAtIChzdHJpbmcpIC0gQW4gb3B0aW9uYWwgdGVsZXBob25lIG51bWJlci48L2xpPgoJICAgICA8bGk+PGNvZGU+ZmF4PC9jb2RlPiAtIChzdHJpbmcpIC0gQW4gb3B0aW9uYWwgZmF4IG51bWJlci48L2xpPgoJICAgICA8bGk+PGNvZGU+Y29udGFjdF9lbWFpbDwvY29kZT4gLSAoc3RyaW5nKSAtIEFuIG9wdGlvbmFsIGVtYWlsIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wYW55PC9saT4KCSAgICAgPGxpPjxjb2RlPndlYnNpdGU8L2NvZGU+IC0gKHN0cmluZykgLSBBbiBvcHRpb25hbCB3ZWJzaXRlIFVSTC4gIE5vdGUgaW4gb2xkIHZlcnNpb25zIG9mIHRoaXMgc29mdHdhcmUgaXQgd2FzIG5vdCByZXF1aXJlZCBmb3IgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmllbGQgdG8gaGF2ZSBhIHNjaGVtYSBwcmVmaXguPC9saT4KCSAgICAgPGxpPjxjb2RlPmRldGFpbHM8L2NvZGU+IC0gKEhUTUwgc3RyaW5nKSAtIERldGFpbHMgb3IgZGVzY3JpcHRpb24gb2YgdGhlIGNvbXBhbnkuPC9saT4KCSAgICAgPGxpPjxjb2RlPnBpY3R1cmVfbG9jYXRpb248L2NvZGU+IC0gKHN0cmluZykgLSBUaGUgbmFtZSBvZiBhbiBvcHRpb25hbCBwaWN0dXJlIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcGFueS4gIFBpY3R1cmVzIGFyZSBjb250YWluZWQgd2l0aGluIGEgdW5pcXVlIGRpcmVjdG9yeSBmb3IgZWFjaCBjb21wYW55LCBhbmQgdGhpcyBzdHJpbmcgd2lsbCBvbmx5IGNvbnRhaW4gdGhlIGZpbGUgbmFtZS48L2xpPgoJICAgICA8bGk+PGNvZGU+bG9nb19sb2NhdGlvbjwvY29kZT4gLSAoc3RyaW5nKSAtIFRoZSBuYW1lIG9mIGFuIG9wdGlvbmFsIGxvZ28gZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb21wYW55LiAgUGljdHVyZXMgYXJlIGNvbnRhaW5lZCB3aXRoaW4gYSB1bmlxdWUgZGlyZWN0b3J5IGZvciBlYWNoIGNvbXBhbnksIGFuZCB0aGlzIHN0cmluZyB3aWxsIG9ubHkgY29udGFpbiB0aGUgZmlsZSBuYW1lLjwvbGk+CgkgICAgIDxsaT48Y29kZT5sYXRpdHVkZTwvY29kZT4gLSAoZmxvYXQpIC0gQ29vcmRpbmF0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgY29tcGFueS48L2xpPgoJICAgICA8bGk+PGNvZGU+bG9uZ2l0dWRlPC9jb2RlPiAtIChmbG9hdCkgLSBDb29yZGluYXRlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb21wYW55LjwvbGk+CgkgICAgIDxsaT48Y29kZT5oaWVyX2lkPC9jb2RlPiAtIChpbnQpIC0gT3B0aW9uYWwsIHRoZSBpZCBvZiB0aGUgbG9jYXRpb24gd2l0aGluIHRoZSBoaWVyYXJjaHkgd2hlcmUgdGhpcyBjb21wYW55IHJlc2lkZXMuPC9saT4KCSAgICAgPGxpPjxjb2RlPnN0YXR1czwvY29kZT4gLSAoc3RyaW5nKSBUaGUgc3RhdHVzIG9mIHRoaXMgY29tcGFueSBlbnRyeSwgd2hpY2ggY29udHJvbHMgd2hldGhlciBvciBub3QgaXQgY2FuIGJlIGRpc3BsYXllZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgJ2RyYWZ0JywgJ3B1Ymxpc2hlZCcsIG9yICdkaXNhYmxlZCcuPC9saT4KCSAgICAgPGxpPjxjb2RlPnVybDwvY29kZT4gLSAoc3RyaW5nKSBBbiBvcHRpb25hbCAoZGVwZW5kaW5nIHVwb24gc2V0dGluZ3MpIHVybCBzbHVnIGZvciB0aGlzIGNvbXBhbnkuPC9saT4KCSAgICAgPGxpPjxjb2RlPm93bmVyX2lkPC9jb2RlPiAtIChpbnQpIEFueSBwb3NpdGl2ZSBpbnRlZ2VyIHJlcHJlc2VudHMgdGhlIEZFVSB1c2VyIGlkIG9mIHRoZSBvd25lciBvZiB0aGlzIHJlY29yZC48L2xpPgoJICAgICA8bGk+PGNvZGU+Y3JlYXRlX2RhdGU8L2NvZGU+IC0gKHN0cmluZykgVGhlIGRhdGUgKGluIGRhdGFiYXNlIHRpbWUgZm9ybWF0KSB0aGF0IHRoaXMgZW50cnkgd2FzIGluaXRpYWxseSBzYXZlZCB0byB0aGUgZGF0YWJhc2UuPC9saT4KCSAgICAgPGxpPjxjb2RlPm1vZGlmaWVkX2RhdGU8L2NvZGU+IC0gKHN0cmluZykgVGhlIGRhdGUgKGluIGRhdGFiYXNlIHRpbWUgZm9ybWF0KSB0aGF0IHRoaXMgZW50cnkgd2FzIGxhc3Qgc2F2ZWQgdG8gdGhlIGRhdGFiYXNlLjwvbGk+CgkgICAgIDxsaT48Y29kZT5jYXRlZ29yaWVzPC9jb2RlPiAtIChhcnJheXxudWxsKSBBbiBhcnJheSBvZiBjYXRlZ29yaWVzIHRoYXQgdGhpcyBjb21wYW55IGlzIGFzc29jaWF0ZWQgd2l0aC4gIFRoZXkga2V5cyBvZiB0aGlzIGFycmF5IGFyZSBjYXRlZ29yeSBpZCdzIGFuZCB0aGUgdmFsdWVzIGNvbnRhaW4gYW4gYXJyYXkgb2YgZXh0cmExLCBleHRyYTIsIGV4dHJhMyB3aGljaCBjb250YWluIGFueSBvcHRpb25hbCBkYXRhIHRoYXQgaXMgYXNzb2NhaXRlZCB3aXRoIHRoZSBjYXRlZ29yeSBhbmQgY29tcGFueS48L2xpPgoJICAgICA8bGk+PGNvZGU+ZmllbGRzPC9jb2RlPiAtIChhcnJheXxudWxsKSBBbiBhcnJheSBvZiBmaWVsZCB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcGFueS4gIFRoZSBrZXlzIG9mIHRoaXMgYXJyYXkgYXJlIGZpZWxkIGRlZmluaXRpb24gaWRzLCBhbmQgdGhlIHZhbHVlcyBhcmUgZWl0aGVyIHN0cmluZ3MsIG9yIGFycmF5cy4gICBJZiB0aGUgZmllbGQgKHJlcHJlc2VudGVkIGJ5IHRoZSBpZCBpcyBhIG11bHRpc2VsZWN0IGZpZWxkIG9yIGFsYnVtIGZpZWxkIG9yIG90aGVyICB0aGF0IGFsbG93cyBtdWx0aXBsZSB2YWx1ZXMsIHRoZW4gdGhlIHZhbHVlIG1heSBiZSBhbiBhcnJheSBvZiBzdHJpbmdzLgoJICAgICAgICAgIDxwPmkuZTogYXNzdW1pbmcgdGhhdCBmaWVsZGRlZiB3aXRoIGlkICczJyBpcyBhIG11bHRpc2VsZWN0IGZpZWxkLCBhbmQgdGhlcmUgYXJlIHZhbHVlcyBhdHRhY2hlZCB0byB0aGF0IGZpZWxkIGZvciB0aGUgY29tcGFueS4uLiB0aGVuIHRoZSB2YWx1ZSBmb3Iga2V5IDMgb2YgdGhlIGZpZWxkcyBhcnJheSB3b3VsZCBjb250YWluIGFuIGFycmF5IG9mIHN0cmluZ3MgcmVwcmVzZW50aW5nIHRoZSBzZWxlY3RlZCB2YWx1ZXMgZm9yIHRoYXQgZHJvcGRvd24uPC9wPgoJICAgICAgICAgIDxwPmkuZTogYXNzdW1pbmcgdGhhdCBmaWVsZGRlZiBpZCAnNScgaXMgYW4gYWxidW0gZmllbGQsIGFuZCB0aGVyZSBhcmUgcGhvdG9zIGF0dGFjaGVkIHRvIHRoZSBjb21wYW55J3MgYWRkcmVzcy4uLiB0aGVuIHRoZSB2YWx1ZSBmb3Iga2V5IDUgb2YgdGhlIGZpZWxkcyBhcnJheSB3b3VsZCBjb250YWluIGFuIGFycmF5IG9mIGZpbGVuYW1lcy48L3A+CgkgICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5Db21wYW55U2V0IG9iamVjdAogICAgCTxwPkEgQ29tcGFueVNldCBvYmplY3QgY29udGFpbnMgYSBzZXQgb2YgY29tcGFuaWVzIHRoYXQgbWF0Y2ggYSBxdWVyeS4gIERldmVsb3BlcnMgY2FuIGl0ZXJhdGUgdGhyb3VnaCB0aGUgY29tcGFuaWVzIGluIHRoZSBzZXQsIGFuZCBnZXQgaW5mb3JtYXRpb24gYXMgdG8gdGhlIGxpbWl0LCBvZmZzZXQgYW5kIHRvdGFsIG1hdGNoZXMgaW4gdGhlIGRhdGFiYXNlIGZvciB0aGUgcXVlcnksIGJ1dCBub3QgdGhlIHF1ZXJ5IGl0c2VsZi48L3A+CiAgICAgICAgPHA+UHVibGljIG1lbWJlcnM8L3A+Cgk8dWw+CgkgICAgPGxpPjxjb2RlPm9mZnNldDwvY29kZT4gLSAoaW50KSBUaGUgb2Zmc2V0IHByb3ZpZGVkIGluIHRoZSBzcWwgcXVlcnksIGlmIGFueS4gIG9yIDAuPC9saT4KCSAgICA8bGk+PGNvZGU+bGltaXQ8L2NvZGU+IC0gKGludCkgVGhlIGxpbWl0IG9mIGl0ZW1zIHRvIHJldHVybiBhcyBwcm92aWRlZCBpbiB0aGUgU1FMIHF1ZXJ5LiAgVGhpcyBpcyB1c2VkIGluIHBhZ2luYXRpb24uPC9saT4KCSAgICA8bGk+PGNvZGU+dG90YWw8L2NvZGU+IC0gKGludCkgVGhlIHRvdGFsIG51bWJlciBvZiBjb21wYW5pZXMgdGhhdCBtYXRjaCB0aGUgcXVlcnksIGluZGVwZW5kYW50IG9mIGxpbWl0LjwvbGk+KQoJICAgIDxsaT48Y29kZT5wYWdlY291bnQ8L2NvZGU+IC0gKGludCkgR2l2ZW4gdGhlIHRvdGFsLCBhbmQgdGhlIGxpbWl0IHRoaXMgaXMgdGhlIG51bWJlciBvZiBkaXNwbGF5YWJsZSBwYWdlcyBvZiBjb21wYW5pZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LjwvbGk+CgkgICAgPGxpPjxjb2RlPnBhZ2U8L2NvZGU+IC0gKGludCkgR2l2ZW4gdGhlIG9mZnNldCBhbmQgdGhlIGxpbWl0LCB0aGlzIGlzIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIGluIHRoZSByZXN1bHQgc2V0LjwvbGk+Cgk8L3VsPgogICAgICAgIDxwPlB1YmxpYyBtZXRob2RzPC9wPgoJPHVsPgoJICAgIDxsaT48Y29kZT5wYWdlTGlzdChpbnQgJHN1cnJvdW5kID0gNSkgOiBhcnJheXxudWxsPC9jb2RlPgoJICAgICAgICA8cD5BIG1ldGhvZCB0aGF0IGNhbiBiZSB1c2VkIGluIHBhZ2luYXRpb24sIGdpdmVuIGEgbnVtYmVyIG9mIGl0ZW1zIHRvICdzdXJyb3VuZCcgdGhlIGN1cnJlbnQgcGFnZSB3aXRoIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBhbiBhcnJheSBvZiBwYWdlIG51bWJlcnMgdGhhdCBpcyBvcHRpbWl6ZWQgbm90IHRvIGJlIHRvbyBsb25nLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT48Y29kZT5wYWdlQXJyYXkoaW50ICRzdXJyb3VuZCA9IDUpIDogYXJyYXl8bnVsbDwvY29kZT4KCSAgICAgICAgPHA+QSBtZXRob2QgdGhhdCBjYW4gYmUgdXNlZCBpbiBwYWdpbmF0aW9uLCBnaXZlbiBhIG51bWJlciBvZiBpdGVtcyB0byAnc3Vycm91bmQnIHRoZSBjdXJyZW50IHBhZ2Ugd2l0aCB0aGlzIGZ1bmN0aW9uIG91dHB1dHMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgb2YgcGFnZSBudW1iZXJzIHRoYXQgaXMgb3B0aW1pemVkIG5vdCB0byBiZSB0b28gbG9uZy4gIFRoaXMgbWV0aG9kIGlzIHVzdWFsbHkgdXNlZCBpbiAmbHQ7c2VsZWN0Jmd0OyBpbnB1dCBmaWVsZHMuPC9wPgoJICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5DYXRlZ29yeSBvYmplY3QKICAgICAgICA8cD5BIENhdGVnb3J5IG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBub2RlIGluIHRoZSBjYXRlZ29yeSB0cmVlLiAgQ2F0ZWdvcmllcyBjYW4gaGF2ZSBhbiBhdHRhY2hlZCBpbWFnZSwgYSBkZXNjcmlwdGlvbiBhbmQgb3RoZXIgZGF0YS48L3A+CiAgICAgICAgPHA+UHVibGljIG1lbWJlcnM8L3A+Cgk8dWw+CgkgICAgPGxpPjxjb2RlPmlkPC9jb2RlPiAtIChpbnQpIC0gVGhlIHVuaXF1ZSBpZCBmb3IgYSBjYXRlZ29yeSBvbmNlIHNhdmVkIHRvIHRoZSBkYXRhYmFzZS48L2xpPgoJICAgIDxsaT48Y29kZT5uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gVGhlIG5hbWUgZm9yIHRoaXMgY2F0ZWdvcnkuPC9saT4KCSAgICA8bGk+PGNvZGU+aW1hZ2U8L2NvZGU+IC0gKHN0cmluZykgLSBJZiBub3QgZW1wdHksIHRoaXMgaXMgdGhlIGZpbGVuYW1lIG9mIGEgZmlsZSBhdHRhY2hlZCB0byB0aGlzIGNhdGVnb3J5LiAgT25seSBvbmUgaXMgcGVybWl0dGVkLjwvbGk+CgkgICAgPGxpPjxjb2RlPnN0cmluZzwvY29kZT4gLSAoSFRNTCBzdHJpbmcpIC0gQW4gb3B0aW9uYWwgZGVzY3JpcHRpb24gZm9yIHRoaXMgY2F0ZWdvcnkuPC9saT4KCSAgICA8bGk+PGNvZGU+ZXh0cmExPC9jb2RlPiAtIChzdHJpbmcpIC0gRXh0cmEgZGF0YSBhYm91dCB0aGlzIGNhdGVnb3J5LjwvbGk+CgkgICAgPGxpPjxjb2RlPmV4dHJhMjwvY29kZT4gLSAoc3RyaW5nKSAtIEV4dHJhIGRhdGEgYWJvdXQgdGhpcyBjYXRlZ29yeS48L2xpPgoJICAgIDxsaT48Y29kZT5leHRyYTM8L2NvZGU+IC0gKHN0cmluZykgLSBFeHRyYSBkYXRhIGFib3V0IHRoaXMgY2F0ZWdvcnkuPC9saT4KCSAgICA8bGk+PGNvZGU+cGFyZW50X2lkPC9jb2RlPiAtIChpbnQpIC0gVGhlIGludGVnZXIgaWQgb2YgdGhlIHBhcmVudCBvZiB0aGlzIGNhdGVnb3J5IG5vZGUuICBJZiBsZXNzIHRoYW4gMSBpdCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGl0ZW0gaGFzIG5vIHBhcmVudC48L2xpPgoJICAgIDxsaT48Y29kZT5pdGVtX29yZGVyPC9jb2RlPiAtIChpbnQpIC0gVGhlIHNvcnRpbmcgb2YgdGhpcyBpdGVtIGFtb25nc3QgaXRzIHBlZXJzLjwvbGk+CgkgICAgPGxpPjxjb2RlPmhpZXJhcmNoeTwvY29kZT4gLSAoc3RyaW5nKSAtIHRoaXMgaXMgbWV0YWRhdGEgdGhhdCByZXByZXNlbnRzIHRoZSBwYXRoIHRvIHRoaXMgY2F0ZWdvcnkgaXRlbSBieSB1c2luZyBpdHMgaXRlbSBvcmRlciBhbmQgdGhlIGl0ZW0gb3JkZXIgb2YgYWxsIHBhcmVudHMuICBJdCBpcyB1c2VkIGluIHNvcnRpbmcuPC9saT4KCSAgICA8bGk+PGNvZGU+bG9uZ19uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gdGhpcyBpcyBtZXRhZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHBhdGggdG8gdGhpcyBjYXRlZ29yeSBpdGVtIGJ5IHVzaW5nIGl0cyBuYW1lLCBhbmQgdGhlIG5hbWVzIG9mIGFsbCBwYXJlbnRzLjwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5GaWVsZERlZmluaXRpb24gb2JqZWN0CiAgICAgICAgPHA+QSBGaWVsZERlZmluaXRpb24gb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGZpZWxkIGRlZmluaXRpb24uPC9wPgogICAgICAgIDxwPlB1YmxpYyBtZW1iZXJzPC9wPgoJPHVsPgoJICAgIDxsaT48Y29kZT5pZDwvY29kZT4gLSAoaW50KSAtIFRoZSB1bmlxdWUgaW50ZWdlciBpZCBmb3IgdGhpcyBmaWVsZGRlZmluaXRpb24gb25jZSBpdCBpcyBzYXZlZC48L2xpPgoJICAgIDxsaT48Y29kZT5uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gQSB1bmlxdWUgVVJMIHNhZmUgbmFtZSBmb3IgdGhlIGZpZWxkIGRlZmluaXRpb24uPC9saT4KCSAgICA8bGk+PGNvZGU+dHlwZTwvY29kZT4gLSAoc3RyaW5nKSAtIFRoZSB0eXBlIG9mIHRoZSBmaWVsZCBkZWZpbml0aW9uLjwvbGk+CgkgICAgPGxpPjxjb2RlPm1heF9sZW5ndGg8L2NvZGU+IC0gKGludCkgLSBBbiBvcHRpb25hbCBtYXhpbXVtIGxlbmd0aCBmb3IgdGhlIGNvbnRlbnQgZmllbGQgb2YgdGhpcyBmaWVsZC4gIFNvbWUgZmllbGRzIG1heSBub3QgdXNlIHRoaXMuPC9saT4KCSAgICA8bGk+PGNvZGU+aXRlbV9vcmRlcjwvY29kZT4gLSAoaW50KSAtIFRoZSBzb3J0aW5nIG9mIHRoaXMgaXRlbSBhbW9uZ3N0IGl0cyBwZWVycy48L2xpPgoJICAgIDxsaT48Y29kZT5hZG1pbl9vbmx5PC9jb2RlPiAtIChib29sKSAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoYXQgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGRlZmluaXRpb24gc2hvdWxkIG9ubHkgYmUgZWRpdGFibGUgYnkgYXV0aG9yaXplZCBhZG1pbmlzdHJhdG9ycy48L2xpPgoJICAgIDxsaT48Y29kZT5kcm9wZG93bl9kYXRhPC9jb2RlPiAtIChzdHJpbmcpIC0gRm9yIGZpZWxkcyB0aGF0IHByb3ZpZGUgdGhlIHVzZXIgd2l0aCBtdWx0aXBsZSBvcHRpb25zLCB0aGlzIGZpZWxkIGNvbnRhaW5zIGVuY29kZWQgdGV4dCByZXByZXNlbnRpbmcgdGhlIG9wdGlvbnMuPC9saT4KCTwvdWw+CiAgICA8L2xpPgogICAgPGxpPkhpZXJhcmNoeSBvYmplY3QKICAgICAgICA8cD5BIENhdGVnb3J5IG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBub2RlIGluIHRoZSBoaWVyYXJjaHkgdHJlZS48L3A+CiAgICAgICAgPHA+UHVibGljIG1lbWJlcnM8L3A+Cgk8dWw+CgkgICAgPGxpPjxjb2RlPmlkPC9jb2RlPiAtIChpbnQpIC0gVGhlIHVuaXF1ZSBpZCBmb3IgYSBoaWVyYXJjaHkgbm9kZSBvbmNlIHNhdmVkIHRvIHRoZSBkYXRhYmFzZS48L2xpPgoJICAgIDxsaT48Y29kZT5uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gVGhlIG5hbWUgZm9yIHRoaXMgaGllcmFyY2h5LjwvbGk+CgkgICAgPGxpPjxjb2RlPnBhcmVudF9pZDwvY29kZT4gLSAoaW50KSAtIFRoZSBpbnRlZ2VyIGlkIG9mIHRoZSBwYXJlbnQgb2YgdGhpcyBoaWVyYXJjaHkgbm9kZS4gIElmIGxlc3MgdGhhbiAxIGl0IGluZGljYXRlcyB0aGF0IHRoaXMgaXRlbSBoYXMgbm8gcGFyZW50LjwvbGk+CgkgICAgPGxpPjxjb2RlPml0ZW1fb3JkZXI8L2NvZGU+IC0gKGludCkgLSBUaGUgc29ydGluZyBvZiB0aGlzIGl0ZW0gYW1vbmdzdCBpdHMgcGVlcnMuPC9saT4KCSAgICA8bGk+PGNvZGU+aGllcmFyY2h5PC9jb2RlPiAtIChzdHJpbmcpIC0gdGhpcyBpcyBtZXRhZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHBhdGggdG8gdGhpcyBoaWVyYXJjaHkgaXRlbSBieSB1c2luZyBpdHMgaXRlbSBvcmRlciBhbmQgdGhlIGl0ZW0gb3JkZXIgb2YgYWxsIHBhcmVudHMuICBJdCBpcyB1c2VkIGluIHNvcnRpbmcuPC9saT4KCSAgICA8bGk+PGNvZGU+bG9uZ19uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gdGhpcyBpcyBtZXRhZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHBhdGggdG8gdGhpcyBoaWVyYXJjaHkgaXRlbSBieSB1c2luZyBpdHMgbmFtZSwgYW5kIHRoZSBuYW1lcyBvZiBhbGwgcGFyZW50cy48L2xpCTwvdWw+CiAgICA8L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0ic21hcnR5X3BsdWdpbnMiPlNtYXJ0eSBQbHVnaW5zPC9oMz4KPHA+VGhpcyBtb2R1bGUgc2hhcmVzIG51bWVyb3VzIHNtYXJ0eSBwbHVnaW5zIHRvIG1ha2UgdGVtcGxhdGUgZGVzaWduIGFuZCBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBzaW1wbGVyOjwvcD4KPHVsPgogICAgPGxpPjxzdHJvbmc+e2NkX2hpZXJicmVhZGNydW1iIGhpZXI9aW50IFtvcHRpb25zXX08L3N0cm9uZz4gLSBDcmVhdGUgYSBzZXJpZXMgb2YgbGlua3MgcmVwcmVzZW50aW5nIHRoZSBicmVhZGNydW1iIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQuICBFYWNoIGxpbmsgd2lsbCBnZW5lcmF0ZSBhIHN1bW1hcnkgdmlldyBvZiBjb21wYW5pZXMgaW4gdGhhdCBoaWVyYXJjaHkuPGJyLz5PcHRpb25zOgogICAgICAgIDx1bD4KCSAgICA8bGk+aGllcj1pbnRlZ2VyIC0gPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPiAtIFRoZSBDb21wYW55RGlyZWN0b3J5IGhpZXJhcmNoeSBpZCB0byBidWlsZCBhIGJyZWFkY3J1bWIgdG8uPC9saT4KICAgIAkgICAgPGxpPnBhZ2U9c3RyaW5nIC0gQSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSBmb3IgdGhlIHN1bW1hcnkgdmlldy4gIElmIG5vbmUgaXMgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBwYWdlIGlzIHVzZWQuPC9saT4KICAgIAkgICAgPGxpPmRlbGltPXN0cmluZyAtIFRoZSBkZWxpbWl0ZXIgYmV0d2VlbiBlYWNoIHN0cmluZy4gIEJ5IGRlZmF1bHQgYSBwaXBlIGNoYXJhY3RlciBzdXJyb3VuZGVkIGJ5IHNwYWNlcyBpcyB1c2VkLjwvbGk+CiAgICAJICAgIDxsaT5jbGFzcz1zdHJpbmcgLSBBbiBvcHRpb25hbCBjbGFzcyAob3Igc2VyaWVzIG9mIGNsYXNzZXMpIHRvIGFzc2lnbiB0byBlYWNoIGxpbmsuPC9saT4KICAgIAkgICAgPGxpPnJhdz1ib29sZWFuIC0gSWYgZW5hYmxlZCwgYW4gYXJyYXkgb2YgaGllcmFyY2h5IGRhdGEgcmVwcmVzZW50aW5nIHRoZSBwYXRoIHRvIHRoZSBoaWVyYXJjaHkgc3BlY2lmaWVkIHdpbGwgYmUgcmV0dXJuZWQuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGFsbG93IGJ1aWxkaW5nIHlvdXIgb3duIGxpbmtzLiAgSWYgdGhpcyBpcyBzcGVjaWZpZWQsIHRoZSBkZWxpbSBhbmQgY2xhc3MgYXJndW1lbnRzIGFyZSBpZ25vcmVkIGFzIGxpbmtzIHdpbGwgbm90IGJlIHJldHVybmVkLjwvbGk+CiAgICAJICAgIDxsaT5hc3NpZ249c3RyaW5nIC0gVGhlIG5hbWUgb2YgYSBzbWFydHkgdmFyaWFibGUgdG8gYXNzaWduIHRoZSBvdXRwdXQgdG8uPC9saT4KICAgICAgICA8L3VsPgogICAgCTxwPkFkZGl0aW9uYWxseSwgdGhpcyB0YWcgYWNjZXB0cyBhbnkgcGFyYW1ldGVycyB0aGF0IHRoZSBkZWZhdWx0IHN1bW1hcnkgdmlldyB3aWxsIGFjY2VwdCAoaS5lOiBzb3J0aW5nIG9wdGlvbnMsIHBhZ2UgbGltaXQpIGFuZCB0aGV5IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSB1cmwgYnVpbGRpbmcgcHJvY2Vzcy48L3A+CiAgICAJPHA+RXhhbXBsZSA8ZW0+KHN1aXRhYmxlIGZvciBhIGRldGFpbCB0ZW1wbGF0ZSk8L2VtPjoge2NkX2hpZXJicmVhZGNydW1iIGhpZXI9JGVudHJ5LT5oaWVyX2lkIGhpZXJfY2hpbGRyZW49MSBwYWdlbGltaXQ9NTB9PC9jb2RlPjwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2dldGNvbXBhbnkgaWQ9aW50ZWdlciBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+IC0gUmV0dXJuIGFuIG9iamVjdCBmaWxsZWQgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBjb21wYW55PGJyLz5PcHRpb25zOgogICAgICAgPHVsPgogICAgICAgICAgIDxsaT48c3Ryb25nPmlkPWludGVnZXI8L3N0cm9uZz4gLSBUaGUgY29tcGFueSBpZCAocmVxdWlyZWQpLjwvbGk+CiAgCSAgIDxsaT5hc3NpZ249c3RyaW5nIC0gKG9wdGlvbmFsKSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogICAgICAgPC91bD4KICAgICAgIDxwPkV4YW1wbGU6IHtjZF9nZXRjb21wYW55IGlkPSRjb21wYW55X2lkIGFzc2lnbj0ndG1wJ30mbHQ7cHJlJmd0O3skdG1wfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2dldGNhdGVnb3J5IGNhdGVnb3J5PWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGNhdGVnb3J5IGlkLiAgVXNlZnVsIGluIHN1bW1hcnkgdmlld3MgZm9yIGEgc3BlY2lmaWMgY2F0ZWdvcnkuPC9wPgogICAgICAgPHA+VXNhZ2U6PC9wPgogICAgICAgPHByZT48Y29kZT57Y2RfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnk9JGNhdGVnb3J5aWQgYXNzaWduPSdjYXQnfSZsdDtoNCZndDtUaGUgY2F0ZWdvcnkgbmFtZSBpczogeyRjYXQtPm5hbWV9Jmx0Oy9oNCZndDt7L2lmfTwvY29kZT48L3ByZT4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2NhdGVnb3J5X2ltYWdlIGNhdGVnb3J5PWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIFVSTCBpZiBhbnksIHRvIHRoZSBpbWFnZSBhc3NvY2lhdGVkIHdpdGggYSBjYXRlZ29yeS48L3A+CiAgICAgICA8cD5Vc2FnZTo8L3A+CiAgICAgICA8cHJlPjxjb2RlPiZsdDtpbWcgc3JjPSJ7Y2RfY2F0ZWdvcnlfaW1hZ2UgY2F0ZWdvcnk9JGNhdGVnb3J5aWR9IiBhbHQ9InskY2F0ZWdvcnktPmltYWdlfSIvJmd0OzwvY29kZT48L3ByZT4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2dldGhpZXJhcmNoeSBoaWVyPWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICAgPHA+VGhpcyBwbHVnaW4gcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBoaWVyYXJjaHkgaWQuICBVc2VmdWwgaW4gc3VtbWFyeSBvciBkZXRhaWwgdmlld3MuPC9wPgoJPHA+VXNhZ2U6PC9wPgoJPHByZT48Y29kZT57Y2RfZ2V0aGllcmFyY2h5IGhpZXI9JGNvbXBhbnktPmhpZXJfaWQgYXNzaWduPSdoaWVyJ317JGhpZXItPm5hbWV8ZGVmYXVsdDonJ308L2NvZGU+PC9wcmU+CiAgICA8L2xpPgoKICAgIDxsaT48c3Ryb25nPntjZF9nZXRmaWVsZGRlZiBmaWVsZD1pbnR8ZmllbGRuYW1lPXN0cmluZyBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICAgPHA+VGhpcyBwbHVnaW4gcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZCBkZWZpbml0aW9uLiAgVXNlZnVsIGluIGZvcm1zLCBzdW1tYXJ5IG9yIGRldGFpbCB2aWV3cy48L3A+Cgk8cD5Vc2FnZTo8L3A+Cgk8cHJlPjxjb2RlPntjZF9nZXRmaWVsZGRlZiBmaWVsZD0kZmRpZCBhc3NpZ249J2ZpZWxkJ317JGZpZWxkLT5uYW1lfGRlZmF1bHQ6Jyd9PC9jb2RlPjwvcHJlPgogICAgPC9saT4KCiAgICA8bGk+PHN0cm9uZz57Y2RfZ2V0ZmlsZXVybCBjb21waWQ9aW50IFthc3NpZ249c3RyaW5nXX08L3N0cm9uZz4KICAgICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHJpZXZlIHRoZSBVUkwgcHJlZml4IGZvciBhbGwgZmlsZXMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBjb21wYW55LjwvcD4KCTxwPlVzYWdlOjwvcD4KCTxwcmU+PGNvZGU+e2NkX2dldGZpbGV1cmwgY29tcGlkPSRjb21wYW55LT5pZCBhc3NpZ249J3VybGJhc2UnfSZsdDtpbWcgc3JjPSJ7JHVybGJhc2V9L3skY29tcGFueS0+ZmllbGRzWzVdfSIgYWx0PSIiLyZndDs8L2NvZGU+PC9wcmU+CiAgICA8L2xpPgoKICAgIDxsaT48c3Ryb25nPntjZF9nZXRmaWxlcGF0aH08L3N0cm9uZz4KICAgICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHJpZXZlIHRoZSBwYXRoIHByZWZpeCBmb3IgYWxsIGZpbGVzIHRoYXQgYXJlIGF0dGFjaGVkIHRvIGEgY29tcGFueS48L3A+Cgk8cD5Vc2FnZTo8L3A+Cgk8cHJlPjxjb2RlPntjZF9nZXRmaWxlcGF0aCBjb21waWQ9JGNvbXBhbnktPmlkIGFzc2lnbj0nZmlsZWJhc2UnfQombHQ7YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgbW9kdWxlPUNHRXh0ZW5zaW9ucyBhY3Rpb249Z2V0ZmlsZSBmaWxlPSJ7JGZpbGViYXNlfS97JGNvbXBhbnktPmZpZWxkc1s0XX0ifSImZ3Q7RG93bmxvYWQmbHQ7L2EmZ3Q7PC9jb2RlPjwvcHJlPgogICAgPC9saT4KCiAgICA8bGk+PHN0cm9uZz57Y2RfZmllbGRfb3B0aW9ucyBmaWVsZD1pbnQgW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPgogICAgICAgIDxwPlRoaXMgcGx1Z2luIGlzIHVzZWZ1bCBmb3IgZmllbGQgZGVmaW5pdGlvbnMgd2l0aCBtdWx0aXBsZSBvcHRpb25zLCBzdWNoIGFzIGRyb3Bkb3duIGFuZCBtdWx0aXNlbGVjdCBmaWVsZHMuICBJdCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZSBvcHRpb25zIHRoYXQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiB0aGUgZHJvcGRvd24uPC9wPgoJPHA+VXNhZ2U6PC9wPgoJPHByZT48Y29kZT57Y2RfZmllbGRfb3B0aW9ucyBmaWVsZD0zIGFzc2lnbj1vcHRzfSZsdDtzZWxlY3QgbmFtZT0iZmllbGRfMyImZ3Q7e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzfSZsdDsvc2VsZWN0Jmd0OzwvY29kZT48L3ByZT4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2hpZXJfb3B0aW9ucyBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICAgPHA+VGhpcyBwbHVnaW4gcmV0dXJucyBhbiBhcnJheSBzdWl0YWJsZSBmb3IgdXNlIGluIGJ1aWxkaW5nIGEgaGllcmFyY2h5IGRyb3Bkb3duLjwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2NhdGVnb3J5X29wdGlvbnMgW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPgogICAgICAgIDxwPlRoaXMgcGx1Z2luIHJldHVybiBhbiBhcnJheSBzdWl0YWJsZSBmb3IgdXNlIGluIGJ1aWxkaW5nIGEgY2F0ZWdvcnkgaW50ZXJmYWNlLjwvcD4KICAgIDwvbGk+CjwvdWw+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJhbGJ1bXMiPkFsYnVtczwvaDM+CiAgPHA+VGhlIGFsYnVtIGZpZWxkIHR5cGUgYWxsb3dzIGFzc29jaWF0aW5nIG11bHRpcGxlIGltYWdlcyB3aXRoIGEgc2luZ2xlIGNvbXBhbnkgZW50cnkuICBUaGV5IGFyZSByZXByZXNlbnRlZCBpbiB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHRlbXBsYXRlcyBhcyBhIHNpbXBsZSBhcnJheSBvZiBmaWxlbmFtZXMuICBZb3UgbWF5IGJ1aWxkIHlvdXIgb3duIGRpc3BsYXkgbWVjaGFuaXNtIGZyb20gdGhpcy48L3A+CiAgPHA+VGhlIGFsYnVtIGZpZWxkIHR5cGUgZG9lcyBub3QgcHJvdmlkZSBhbnkgaW1hZ2UgcHJvY2Vzc2luZyBjYXBhYmlsaXRpZXMuICBJbWFnZSBwcm9jZXNzaW5nIHN1Y2ggYXMgd2F0ZXJtYXJraW5nIG9yIHRodW1ibmFpbGluZyBjYW4gYmUgZG9uZSBhdCB0aGUgdGllbSBvZiBkaXNwbGF5IHdpdGggYW4gYWRkb24gbW9kdWxlIGxpa2UgQ0dTbWFydEltYWdlLjwvcD4KPGg0PlNhbXBsZSBHYWxsZXJ5PC9oND4KICA8cD5UaGUgY29kZSBiZWxvdyBpbGx1c3RyYXRlcyBob3cgYSBzaW1wbGUgYWxidW0gY2FuIGJlIGNyZWF0ZWQgZnJvbSB3aXRoaW4gdGhlIENvbXBhbnlEaXJlY3Rvcnkgc3VtbWFyeSBvciBkZXRhaWwgdGVtcGxhdGUuICBUaGlzIGV4YW1wbGUgdXNlcyBDR1NtYXJ0SW1hZ2UgdG8gc2l6ZSB0aGUgdGh1bWJuYWlscywgYW5kIHRhcmdldCBpbWFnZXMsIGFuZCBnaXZlcyBlYWNoIGxpbmsgYSBjbGFzcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgamF2YXNjcmlwdCBwb3B1cCB3aW5kb3cuPC9wPgo8cHJlPjxjb2RlPgp7aWYgaXNzZXQoPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4kZW50cnktPmZpZWxkcy5BbGJ1bTwvc3Bhbj4pfQogIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57SlF1ZXJ5VG9vbHMgYWN0aW9uPXJlcXVpcmUgbGliPWZhbmN5Ym94fTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57KiBzZWUgdGhlIGhlbHAgZm9yIHRoZSBKUXVlcnlUb29scyBtb2R1bGUgZm9yIG1vcmUgaW5mb3JtYXRpb24gKn08L3NwYW4+CiAgJmx0O2gzJmd0O0dhbGxlcnkmbHQ7L2gzJmd0OwogICZsdDtkaXYgY2xhc3M9ImdhbGxlcnkiJmd0OwogIHtmb3JlYWNoIGZyb209PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4kZW50cnktPmZpZWxkcy5BbGJ1bS0+dmFsdWU8L3NwYW4+IGl0ZW09J2ltZyd9CiZsdDthIGNsYXNzPSJmYW5jeWJveCIgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTEwcHg7IiBocmVmPSI8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+e0NHU21hcnRJbWFnZSBzcmMxPSRlbnRyeS0+ZmllbGRzLkFsYnVtLT5waWN0dXJlX3BhdGggc3JjMj0kaW1nIHdpZHRoPTUwMCBoZWlnaHQ9NTAwIG5vdGFnPTEgbm9lbWJlZD0xfTwvc3Bhbj4iLyZndDs8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+e0NHU21hcnRJbWFnZSBzcmMxPSRlbnRyeS0+ZmllbGRzLkFsYnVtLT5waWN0dXJlX3BhdGggc3JjMj0kaW1nIHdpZHRoPTEwMCBoZWlnaHQ9MTAwfTwvc3Bhbj4mbHQ7L2EmZ3Q7CiAgey9mb3JlYWNofQogICZsdDtkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyImZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgJmx0Oy9kaXYmZ3Q7CnsvaWZ9CjwvY29kZT48L3ByZT4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+Cgo8aDMgaWQ9InByZXR0eV91cmxzIj5QcmV0dHkgVVJMUzwvaDM+CjxwPldoZW4gQ01TTVMgaXMgY29uZmlndXJlZCBmb3IgcHJldHR5IFVSTFMsIGFuZCBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZyBlbnRyaWVzIGRlc2NyaWJlZCBhYm92ZSwgRWFjaCBjb21wYW55IGNhbiBoYXZlIGEgJ3VybCBzbHVnJyB3aGljaCBpcyB0aGUgdW5pcXVlIHVybCBzdWZmaXggKGZyb20gdGhlIHdlYnNpdGUgcm91dGUpIHRvIHRoZSBkZXRhaWwgdmlldyBmb3IgdGhhdCBjb21wYW55LiAgVGhpcyBkZWZpbmVzIHRoZSBjYW5vbmljYWwgVVJMIGZvciBlYWNoIHByb2R1Y3QuPC9wPgo8cD5TdW1tcnkgdmlld3MgYnkgY2F0ZWdvcnkgb3IgYnkgaGllcmFyY2h5IGNhbiBoYXZlIGFuIGF1dG9tYXRpYyBwc2V1ZG8tcHJldHR5IHVybCBzbHVnIGNvbnNpc3RpbmcgdGhhdCBjb250YWlucyBhIHByZWZpeCwgdGhlIGhpZXJhcmNoeSBuYW1lLCBpdCdzIGlkLCBhbmQgdGhlIGRpc3BsYXkgcGFnZSBpZC4gICBpLmU6ICBBIHN1bW1hcnkgdmlldyBmb3IgY2F0ZWdvcnkgNSBvbiBwYWdlIDIzIG1heSBsb29rIGxpa2U6ICAiY29tcGFuaWVzLzUvMjMvY2F0ZWdvcnktbmFtZSIuICBPbiB0aGF0IHBhZ2UgeW91IGNhbiBzdGlsbCBzcGVjaWZ5IG90aGVyIGZpbHRlcmluZyBhbmQgZGlzcGxheSBjcml0ZXJpYSBzdWNoIGFzIHBhZ2VsaW1pdCBhbmQgc29ydCBvcmRlci48L3A+CjxwPkl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgZGV2ZWxvcGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBjYW5vbmljYWwgbGluayBtZXRhIHRhZyBpcyBnZW5lcmF0ZWQgZm9yIGVhY2ggZGV0YWlsIG9yIGFwcHJvcHJpYXRlIHN1bW1hcnkgdmlldy4gIFRoZSBkZWZhdWx0IGRldGFpbCB0ZW1wbGF0ZSBoZWxwcyB3aXRoIHRoaXMgcHJvY2Vzcy48L3A+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJjZGxhbmciPlRoZSAiY2RMYW5nIiBRdWVyeSBsYW5ndWFnZS48L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNvcnQgb2YgbGFuZ3VhZ2UgdG8gYWxsb3cgZmlsdGVyaW5nIHRoZSBkYXRhIGZyb20gdGhlIENvbXBhbnlEaXJlY3RvcnkgZGF0YWJhc2VzLiAgVGhpcyBpcyBhIGZsZXhpYmxlLCBleHRlbmRhYmxlIGxhbmd1YWdlIGNvbnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUgc3RhdGVtZW1lbnRzIHRoYXQgYXJlIGNvbWJpbmVkIGluIHRoZSBwcm9wZXIgb3JkZXIgdG8gY3JlYXRlIGEgcXVlcnkgb2YgdGhlIGRhdGFiYXNlLiAgQSBDRExhbmcgc2NyaXB0IGNvbnNpc3RzIG9mIG11bHRpcGxlIHN0YXRlbWVudHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkIGVpdGhlciBpbiBhbiBhcnJheSwgb3IgYXMgYSBzaW5nbGUgc3RyaW5nIHNlcGFyYXRlZCBieSBhICJ8IiBwaXBlIGNoYXJhY3Rlci48L3A+CjxwPkNETGFuZyBzdGF0ZW1lbnRzIGFyZSBvZiB0d28gdHlwZXM6PC9wPgo8dWw+CiAgICAgPGxpPjxzdHJvbmc+RXhwcmVzc2lvbnM8L3N0cm9uZz4gLSBhcmUgY29uZGl0aW9ucyB0byBhcHBseSB0byB0aGUgZGF0YWJhc2UuCiAgICAgICAgIDxwPkV4cHJlc3Npb25zIGNvbnNpc3Qgb2YgYW4gb3BlcmF0aW9uIGFuZCBhbiBleHByZXNzaW9uIG5hbWUgYW5kIGF0IGxlYXN0IG9uZSBvcHRpb24sIGV2ZXJ5IHNldHRpbmcgc2VwYXJhdGVkIGJ5IDogY2hhcmFjdGVycy48L3A+CgkgPHA+RXhhbXBsZTogPGNvZGU+YW5kOnN0YXR1czplcTpwdWJsaWM8L2NvZGU+IG9yIDxjb2RlPm9yOm93bmVyOmd0OjA8L2NvZGU+PC9wPgoJIDxwPjx1PlZhbGlkIG9wZXJhdGlvbnMgYXJlOjwvdT48L3A+CgkgPHVsPgoJICAgICA8bGk+YW5kIC0gc3BlY2lmeSBhIHJlcXVpcmVkIChhbmQpIGNvbmRpdGlvbi4gIEFsbCBvdXRwdXQgbXVzdCBtYXRjaCB0aGlzIGNyaXRlcmlhLjwvbGk+CgkgICAgIDxsaT5vciAtIHNwZWNpZnkgYW4gb3B0aW9uYWwgKG9yKSBjb25kaXRpb24uICBBbGwgb3V0cHV0IG11c3QgbWF0Y2ggYXQgbGVhc3Qgb25lIG9mIHRoZSBPUiBvcHRpb25zLgoJICAgICAgICAgPHA+Tm90ZTogdG8gcHJvcGVybHkgdXNlIG9yIG9wZXJhdGlvbnMsIGF0IGxlYXN0IHR3byBvciBleHByZXNzaW9ucyBhcmUgcmVxdWlyZWQuPC9wPgoJICAgICA8L2xpPgoJIDwvdWw+CgkgPHA+PHU+UHJpbWFyeSBleHByZXNzaW9uczo8L3U+PC9wPgoJIDxwPlByaW1hcnkgZXhwcmVzc2lvbnMgaGF2ZSB0aGUgZm9ybWF0IG9mIDxjb2RlPm9wZXJhdGlvbjpleHByZXNzaW9uX25hbWU6b3BlcmF0b3I6dmFsdWU8L2NvZGU+LiAgaS5lOiBpbiB0aGUgc3RhdGVtZW50IDxjb2RlPmFuZDpzdGF0dXM6ZXE6cHVibGlzaGVkPC9jb2RlPiB0aGUgb3BlcmF0aW9uIGlzICdhbmQnLCB0aGUgZXhwcmVzc2lvbiBuYW1lIGlzICdzdGF0dXMnLCB0aGUgb3BlcmF0b3IgaXMgJ2VxJywgYW5kIHRoZSB2YWx1ZSB0byBjb21wYXJlIGFnYWluc3QgaXMgJ3B1Ymxpc2hlZCcuICBWYWxpZCBleHByZXNpb24gbmFtZXMgYXJlOjwvcD4KCSA8dWw+CgkgICAgIDxsaT48Y29kZT5uYW1lfGNvbXBhbnlfbmFtZTwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgY29tcGFueSBuYW1lLjwvbGk+CgkgICAgIDxsaT48Y29kZT5hZGRyZXNzPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSBhZGRyZXNzLjwvbGk+CgkgICAgIDxsaT48Y29kZT50ZWxlcGhvbmU8L2NvZGU+IC0gVG8gZmlsdGVyIHdpdGggdGhlIHRlbGVwaG9uZSBudW1iZXIuPC9saT4KCSAgICAgPGxpPjxjb2RlPmZheDwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgZmF4IG51bWJlci48L2xpPgoJICAgICA8bGk+PGNvZGU+Y29udGFjdF9lbWFpbDwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgY29udGFjdF9lbWFpbDwvbGk+CgkgICAgIDxsaT48Y29kZT53ZWJzaXRlPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSBjb21wYW55IHdlYnNpdGUgdXJsIChub3QgdGhlIHVybCBzbHVnKTwvbGk+CgkgICAgIDxsaT48Y29kZT5waWN0dXJlPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgcGljdHVyZSBmaWVsZC48L2xpPgoJICAgICA8bGk+PGNvZGU+bG9nbzwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIGxvZ28gZmllbGQuPC9saT4KCSAgICAgPGxpPjxjb2RlPnN0YXR1czwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgdGhlIHN0YXR1cy48L2xpPgoJICAgICA8bGk+PGNvZGU+dXJsPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSB0aGUgdXJsIHNsdWcuPC9saT4KCSAgICAgPGxpPjxjb2RlPm93bmVyfG93bmVyX2lkPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSB0aGUgb3duZXI8L2xpPgoJICAgICA8bGk+PGNvZGU+aWQ8L2NvZGU+IC0gVG8gZmlsdGVyIHdpdGggdGhlIGNvbXBhbnkgaWQ8L2xpPgoJICAgICA8bGk+PGNvZGU+bW9kaWlmaWVkX2RhdGU8L2NvZGU+IC0gVG8gZmlsdGVyIHdpdGggdGhlIHRoZSBkYXRlIHRoZSBjb21wYW55IHdhcyBsYXN0IHNhdmVkLjwvbGk+CgkgICAgIDxsaT48Y29kZT5jcmVhdGVfZGF0ZTwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgdGhlIGRhdGUgdGhlIGNvbXBhbnkgd2FzIGZpcnN0IHNhdmVkLjwvbGk+CgkgPC91bD4KCSA8cD48dT5BZHZhbmNlZCBleHByZXNzaW9uczo8L3U+PC9wPgoJIDx1bD4KCSAgICAgPGxpPjxjb2RlPmhpZXI8L2NvZGU+IC0gVG8gZmlsdGVyIGJ5IGNvbXBhbmllcyBhc3NvY2lhdGVkIHdpdGggYSBoaWVyYXJjaHkuCgkgICAgICAgICA8cD5mb3JtYXQ6ICA8Y29kZT5vcGVyYXRpb246aGllcjppZFs6ZmxhZ108L2NvZGU+IC0gVGhlIGlkIGlzIHRoZSBpZCBvZiBhIHZhbGlkIGhpZXJhcmNoeS4gIFRoZSBvcHRpb25hbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgb3IgdG8gaW5jbHVkZSBjaGlsZCBoaWVyYXJjaGllcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5jYXRlZ29yeTwvY29kZT4gLSBUbyBmaWx0ZXIgYnkgY29tcGFuaWVzIGFzc29jaWF0ZWQgd2l0aCBhIGNhdGVnb3J5CgkgICAgICAgICA8cD5mb3JtYXQ6ICA8Y29kZT5vcGVyYXRpb246Y2F0ZWdvcnk6aWRbOmZsYWddPC9jb2RlPiAtIFRoZSBpZCBpcyB0aGUgaWQgb2YgYSB2YWxpZCBjYXRlZ29yeS4gIFRoZSBvcHRpb25hbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgb3IgdG8gaW5jbHVkZSBjaGlsZCBoaWVyYXJjaGllcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5maWVsZDwvY29kZT4gLSBUbyBmaWx0ZXIgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMgYXNzb2NpYXRlZCB3aXRoIGNvbXBhbmllcy4KCSAgICAgICAgIDxwPmZvcm1hdDogIDxjb2RlPm9wZXJhdGlvbjpmaWVsZDpuYW1lOm9wZXJhdG9yOnZhbHVlWzp0eXBlXTwvY29kZT48cD4KCQkgPHA+VGhlIGZpZWxkIGV4cHJlc3Npb24gaXMgc2ltaWxhciB0byB0aGUgcHJpbWFyeSBmaWVsZCBleHByZXNzaW9ucyBleGNlcHQgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgZmllbGQ6IGV4cHJlc3Npb24gbmFtZSwgZm9sbG93ZWQgYnkgdGhlIGZpZWxkIG5hbWUsIGFuIG9wZXJhdG9yIGFuZCBhIHZhbHVlLiAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBhIHR5cGUgbW9kaWZpZXIgKGVpdGhlciBTIG9yIEkpIHRvIGZvcmNlIHRoZSBmaWVsZCB2YWx1ZSB0byBiZSB0cmVhdGVkIGFzIGEgc3RyaW5nIG9yIGFuIGludGVnZXIuPC9wPgoJCSA8cD5BbGwgZmllbGQgdmFsdWVzIGFyZSBzdG9yZWQgYXMgc3RyaW5ncyBpbiB0aGUgZGF0YWJhc2UuICBTbyBpZiB5b3VyIGZpZWxkIGlzIGEgJ251bWJlcicgZmllbGQgKGZvciBleGFtcGxlIGEgcHJpb3JpdHkpIGFuZCB5b3Ugd2FudCB0byB0cmVhdCBpdCBhcyBhIG51bWJlciBmb3Igc29ydGluZyB5b3UgbWF5IG5lZWQgdG8gc3BlY2lmeSB0aGUgOkkgdHlwZSBtb2RpZmllci48L3A+CgkJIDxwPmkuZTogIDxjb2RlPmFuZDpmaWVsZDpmaXJzdF9uYW1lOmNvbnRhaW5zOlJvYmVydDwvY29kZT48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5waHJhc2U8L2NvZGU+IC0gVG8gZmlsdGVyIHVzaW5nIGEgZnVsbCB0ZXh0IHNlYXJjaCAoaW4gYmluYXJ5IG1vZGUpCgkgICAgICAgICA8cD5mb3JtYXQ6IDxjb2RlPm9wZXJhdGlvbjpwaHJhc2U6IlsrLV13b3JkMSBbKy1dd29yZDIuLi4iPC9jb2RlPjwvcD4KCQkgPHA+aS5lOiA8Y29kZT5hbmQ6cGhyYXNlOiIrdG9yb250byAtY2FsZ2FyeSI8L2NvZGU+PC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+aWRsaXN0PC9jb2RlPiAtIFRvIGZpbHRlciB1c2luZyBhIHByZWRldGVybWluZWQgc2V0IG9mIGlkcwoJICAgICAgICAgPHA+Zm9ybWF0OiA8Y29kZT5vcGVyYXRpb246aWRsaXN0OmlkMSxpZDIsaWQzLi4uPC9jb2RlPjwvcD4KCQkgPHA+aS5lOiA8Y29kZT5hbmQ6aWRsaXN0OjEsMiwzLDQ8L2NvZGU+PC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+cmFkaXVzX2ttPC9jb2RlPiAtIFVzZXMgY29vcmRpbmF0ZSBpbmZvcm1hdGlvbiB0byBsaXN0IG9ubHkgY291bnRyaWVzIHdpdGhpbiBhIHJhZGl1cyAoa20pIG9mIGEgc3BlY2lmaWVkIGxvY2F0aW9uLgoJICAgICAgICAgPHA+Zm9ybWF0OiA8Y29kZT5vcGVyYXRpb246cmFkaXVzX2ttOmRpc3RhbmNlOmxhdGl0dWRlOmxvbmdpdHVkZTwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+YW5kOnJhZGl1c19rbToxMDA6LTMwLjEyMzQ1Oi0xMjMuNDU2Nzg5PC9jb2RlPjwvcD4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPnJhZGl1c19taWxlczwvY29kZT4gLSBVc2VzIGNvb3JkaW5hdGUgaW5mb3JtYXRpb24gdG8gbGlzdCBvbmx5IGNvdW50cmllcyB3aXRoaW4gYSByYWRpdXMgKG1pbGVzKSBvZiBhIHNwZWNpZmllZCBsb2NhdGlvbi4KCSAgICAgICAgIDxwPmZvcm1hdDogPGNvZGU+b3BlcmF0aW9uOnJhZGl1c19taWxlczpkaXN0YW5jZTpsYXRpdHVkZTpsb25naXR1ZGU8L2NvZGU+PC9wPgoJCSA8cD5pLmU6IDxjb2RlPmFuZDpyYWRpdXNfbWlsZXM6MTAwOi0zMC4xMjM0NTotMTIzLjQ1Njc4OTwvY29kZT48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT53aXRoaW48L2NvZGU+IC0gVXNlcyBjb29yZGluYXRlIGluZm9ybWF0aW9uIHRvIGxpc3Qgb25seSBjb3VudHJpZXMgdGhhdCBhcmUgd2l0aGluIHRoZSBzcGVjaWZpZWQgYm91bmRpbmcgYm94LgoJICAgICAgICAgPHA+Zm9ybWF0OiA8Y29kZT5vcGVyYXRpb246d2l0aGluOm5vcnRoOndlc3Q6c291dGg6ZWFzdDwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+YW5kOndpdGhpbjo5OS4xMjotMzAuMjM6OTguMzQ6LTI5LjQ1PC9jb2RlPjwvcD4KCSAgICAgPC9saT4KICAgICAgICAgPC91bD4KCSA8cD48dT5WYWxpZCBPcGVyYXRvcnMgKGNhc2UgaW5zZW5zaXRpdmUpOjwvdT48L3A+CgkgPHVsPgoJICAgICA8bGk+PGNvZGU+RVE8L2NvZGU+IC0gZXF1YWwgdG8KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCB3b3JrIHdpdGggbnVtYmVyIGZpZWxkcyBhbmQgc3RyaW5nIGZpZWxkcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5ORTwvY29kZT4gLSBub3QgZXF1YWwgdG8KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCB3b3JrIHdpdGggbnVtYmVyIGZpZWxkcyBhbmQgc3RyaW5nIGZpZWxkcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5MVDwvY29kZT4gLSBsZXNzIHRoYW4KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCBvbmx5IHdvcmsgd2l0aCBudW1iZXIgZmllbGRzLiAgaS5lOiAgPGNvZGU+YW5kOmNvbXBhbnlfbmFtZTpMVDoyNTwvY29kZT4gd2lsbCBoYXZlIHN0cmFuZ2UgZWZmZWN0cy4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPkxFPC9jb2RlPiAtIGxlc3MgdGhhbiwgb3IgZXF1YWwgdG8KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCBvbmx5IHdvcmsgd2l0aCBudW1iZXIgZmllbGRzLiAgaS5lOiAgPGNvZGU+YW5kOmNvbXBhbnlfbmFtZTpMRToyNTwvY29kZT4gd2lsbCBoYXZlIHN0cmFuZ2UgZWZmZWN0cy4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPkdUPC9jb2RlPiAtIGdyZWF0ZXIgdGhhbgoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3aWxsIG9ubHkgd29yayB3aXRoIG51bWJlciBmaWVsZHMuICBpLmU6ICA8Y29kZT5hbmQ6Y29tcGFueV9uYW1lOkdUOjI1PC9jb2RlPiB3aWxsIGhhdmUgc3RyYW5nZSBlZmZlY3RzLgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+R0U8L2NvZGU+IC0gZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0bwoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3aWxsIG9ubHkgd29yayB3aXRoIG51bWJlciBmaWVsZHMuICBpLmU6ICA8Y29kZT5hbmQ6Y29tcGFueV9uYW1lOkdFOjI1PC9jb2RlPiB3aWxsIGhhdmUgc3RyYW5nZSBlZmZlY3RzLgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+TElLRTwvY29kZT4gLSBzdHJpbmcgaXMgTElLRQoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3b3JrcyBiZXN0IHdpdGggc3RyaW5nIGZpZWxkcy4gIEl0IGFsbG93cyBmb3Igd2lsZGNhcmQgc3RyaW5nIG1hdGNoaW5nLCB3aGVyZSBhICogaXMgYSB3aWxkY2FyZCBjaGFyYWN0ZXIuCgkJICAgIGkuZTogPGNvZGU+YW5kOmFkZHJlc3M6TElLRToqdG9yb250byo8L2NvZGU+LgoJCSA8L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5TV3xTVEFSVFNXSVRIPC9jb2RlPiAtIHN0cmluZyBzdGFydHMgd2l0aAoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3b3JrcyBiZXN0IHdpdGggc3RyaW5nIGZpZWxkcy4gIEl0IGlzIHRoZSBzYW1lIGFzIHVzaW5nIExJS0Ugd2l0aCBvbmx5IGEgd2lsZGNhcmQgc3VmZml4LjwvcD4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPkVXfEVORFNXSVRIPC9jb2RlPiAtIHN0cmluZyBlbmRzIHdpdGgKCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd29ya3MgYmVzdCB3aXRoIHN0cmluZyBmaWVsZHMuICBJdCBpcyB0aGUgc2FtZSBhcyB1c2luZyBMSUtFIHdpdGggb25seSBhIHdpbGRjYXJkIHByZWZpeC48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5DT05UQUlOUzwvY29kZT4gLSBzdHJpbmcgY29udGFpbnMKCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd29ya3MgYmVzdCB3aXRoIHN0cmluZyBmaWVsZHMuICBUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nIExJS0Ugd2l0aCBib3RoIGEgd2lsZGNhcmQgc3VmZml4IGFuZCBwcmVmaXguPC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+UkVHRVhQPC9jb2RlPiAtIHN0cmluZyBtYXRjaGVzIHJlZ3VsYXIgZXhwcmVzc2lvbgoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3b3JrcyBiZXN0IHdpdGggc3RyaW5nIGZpZWxkcy4gIEl0IGFsbG93cyB1c2luZyBhIG15c3FsIGNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9uIGluIGEgc3RhdGVtZW50LjwvcD4KCSAgICAgPC9saT4KCSA8L3VsPgogCSA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEl0IGlzIHRoZSBkZXZlbG9wZXJzIHJlc3BvbnNpYmlsaXR5IHRvIGNvbnRyb2wgdGhlIGV4cHJlc3Npb25zIG9mIGEgc2NyaXB0LiAgSXQgaXMgcG9zc2libGUgdG8gYnVpbGQgYW4gaW1wb3NzaWJsZSBzZXQgb2YgY29uZGl0aW9ucyB0aGF0IHdpbGwgbmV2ZXIgcmV0dXJuIHZhbGlkIHJlc3VsdHMsIG9yIHRvIGJ1aWxkIGEgc2NyaXB0IHRoYXQgd2lsbCBhbHdheXMgcmV0dXJuIGludmFsaWQgcmVzdWx0cy48L3A+CiAgICAgPC9saT4KCiAgICAgPGxpPjxzdHJvbmc+Rm9ybWF0dGVyczwvc3Ryb25nPiAtIHRoZSBzdGF0ZW1lbnRzIGFyZSB1c2VkIHRvIHNvcnQsIGFuZCBsaW1pdCB0aGUgb3V0cHV0IG9mIHRoZSByZXN1bHRpbmcgcXVlcnkuCiAgICAgICAgIDxwPmkuZTogdG8gcmV0dXJuIGEgc3BlY2lmaWVkIG51bWJlciBvZiBpdGVtcyBzdGFydGluZyBhdCBhIHNwZWNpZmllZCBvZmZzZXQuPC9wPgoJIDxwPlZhbGlkIGZvcm1hdHRlcnM6PC9wPgoJIDx1bD4KCSAgICAgPGxpPjxjb2RlPnNvcnRieTwvY29kZT4gLSBUbyBzcGVjaWZ5IGhvdyB0aGUgb3V0cHV0IHNob3VsZCBiZSBzb3J0ZWQuCgkgICAgICAgICA8cD5Gb3JtYXQ6IDxjb2RlPnNvcnRieTpjb2x1bW48L2NvZGU+PC9wPgoJCSA8cD5pLmU6IDxjb2RlPnNvcnRieTpjb21wYW55X25hbWU8L2NvZGU+CgkJIDxwPkFjY2VwdGFibGUgdmFsdWVzOiBuYW1lfGNvbXBhbnlfbmFtZSwgZGlzdGFuY2UsIGlkLCBhZGRyZXNzLCBwaG9uZSwgcGhheCwgd2Vic2l0ZSwgb3duZXJ8b3duZXJfaWQsIGVtYWlsfGNvbnRhY3RfZW1haWwsIGNyZWF0ZWR8Y3JlYXRlX2RhdGUsIG1vZGlmaWVkfG1vZGlmaWVkX2RhdGU8L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5zb3J0b3JkZXI8L2NvZGU+IC0gVG8gc3BlY2lmeSBob3cgdGhlIG91dHB1dCBzaG91bGQgYmUgc29ydGVkLgoJICAgICAgICAgPHA+Rm9ybWF0OiA8Y29kZT5zb3J0b3JkZXI6W2FzY3xkZXNjXTwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+c29ydG9yZGVyOmRlc2M8L2NvZGU+PC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+bGltaXQ8L2NvZGU+IC0gVG8gY29udHJvbCB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgdGhhdCBhcmUgcmV0dXJuZWQgaW4gb25lIENvbXBhbnlTZXQuCgkgICAgICAgICA8cD5Gb3JtYXQ6IDxjb2RlPmxpbWl0Om51bWJlcjwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+bGltaXQ6MTAwPC9jb2RlPjwvcD4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPm9mZnNldDwvY29kZT4gLSBUbyBzdGFydCB0aGUgb3V0cHV0IGF0IGEgc3BlY2lmaWVkIGxvY2F0aW9uIGluIHRoZSByZXN1bHRzZXQuICBUaGlzIGlzIHVzZWQgaW4gcGFnaW5hdGlvbi4KCSAgICAgICAgIDxwPkZvcm1hdDogPGNvZGU+b2Zmc2V0Om51bWJlcjwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+b2Zmc2V0OjEwMDwvY29kZT48L3A+CgkgICAgIDwvbGk+CgkgICAgIDwvbGk+CgkgPC91bD4KICAgICA8L2xpPgo8L3VsPgo8aDU+U2FtcGxlIFF1ZXJpZXM8L2g1Pgo8dWw+CiAgICAgPGxpPkZpbHRlciBhbGwgY29tcGFuaWVzIHdpdGggdGhlIHdvcmQgInRvcm9udG8iIGluIHRoZSBuYW1lLCB0aGF0IGFyZSBpbiBjYXRlZ29yeSAzIG9yIGl0cyBjaGlsZHJlbi4KICAgICAgICAgPHA+PGNvZGU+YW5kOmFkZHJlc3M6Q09OVEFJTlM6dG9yb250b3xhbmQ6Y2F0ZWdvcnk6MzoxPC9jb2RlPjwvcD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgYWxsIGNvbXBhbmllcyB3aXRoIHRoZSB3b3JkICJ0b3JvbnRvIiBvciAiY2FsZ2FyeSIgaW4gdGhlIG5hbWUsIHRoYXQgYXJlIGluIGNhdGVnb3J5IDMsIGJ1dCBub3QgaXQncyBjaGlsZHJlbi4KICAgICAgICAgPHA+PGNvZGU+b3I6YWRkcmVzczpDT05UQUlOUzp0b3JvbnRvfG9yOmFkZHJlc3M6Q09OVEFJTlM6Y2FsZ2FyeXxhbmQ6Y2F0ZWdvcnk6MzoxPC9jb2RlPjwvcD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgYWxsIGNvbXBhbmllcyBvd25lZCBieSB1c2VyIDUgdGhhdCBhcmUgbm90IHB1Ymxpc2hlZAogICAgICAgICA8cD48Y29kZT5hbmQ6b3duZXJfaWQ6NXxhbmQ6c3RhdHVzOk5FOnB1Ymxpc2hlZDwvY29kZT48cD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgYWxsIHB1Ymxpc2hlZCBjb21wYW5pZXMgdGhhdCBoYXZlIGEgbm9uIGVtcHR5IHZhbHVlIGZvciB0aGUgJ2JyYW5jaF9udW1iZXInIHByaW1hcnkgZmllbGQuCiAgICAgICAgIDxwPjxjb2RlPmFuZDpmaWVsZDpicmFuY2hfbnVtYmVyOm5lOnxhbmQ6c3RhdHVzOkVROnB1Ymxpc2hlZDwvY29kZT48cD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgdGhlIG1vc3QgcmVjZW50IDI1IHB1Ymxpc2hlZCBjb21wYW5pZXMgdGhhdCBhcmUgcHVibGlzaGVkLCBhbmQgaGF2ZSBhIHZhbHVlIGNvbnRhaW5pbmcgJ3RveXMnIG9yICdlbGVjdHJvbmljcycgaW4gdGhlIHByb2R1Y3RfdHlwZSBmaWVsZAogICAgICAgICA8cD48Y29kZT5hbmQ6c3RhdHVzOmVxOnB1Ymxpc2hlZHxvcjpmaWVsZDpwcm9kdWN0X3R5cGU6Y29udGFpbnM6dG95c3xvcjpmaWVsZDpwcm9kdWN0X3R5cGU6Y29udGFpbnM6ZWxlY3Ryb25pY3N8c29ydGJ5Om1vZGlmaWVkfHNvcnRvcmRlcjpkZXNjfGxpbWl0OjI1PC9jb2RlPjxwPgogICAgIDwvbGk+CiAgICAgPGxpPkdldCB0aGUgbGF0ZXN0IDIwIGNvbXBhbmllcyBpbiBoaWVyYXJjaHkgNSBhbmQgaXQncyBjaGlsZHJlbiBPUiBjYXRlZ29yeSAzIGFuZCBpdCdzIGNoaWxkcmVuIHRoYXQgYXJlIG5vdCBwdWJsaXNoZWQuCiAgICAgICAgIDxwPjxjb2RlPm9yOmhpZXI6NToxfG9yOmNhdGVnb3J5OjM6MXxhbmQ6c3RhdHVzOk5FOnB1Ymxpc2hlZHxsaW1pdDoyNXxzb3J0Ynk6bW9kaWZpZWRfZGF0ZXxzb3J0b3JkZXI6ZGVzYzwvY29kZT48L3A+CiAgICAgPC9saT4KPC91bD4KPGg1Pk91dHB1dCBncmFtbWFyPC9oNT4KPHA+VGhpcyBtb2R1bGUgd2lsbCBwYXJzZSBhbmQgb3JnYW5pemUgYWxsIG9mIHRoZSBzdGF0ZW1lbnRzIGFuZCBnZW5lcmF0ZSBhbiBTUUwgcXVlcnkgd2l0aCBncmFtbWFyeSBsaWtlIHRoaXM6PC9wPgo8cHJlPjxjb2RlPlNFTEVDVCAqIEZST00gdGhlX3RhYmxlIFtqb2luX2V4cHJdIFtXSEVSRSBbYW5kX29wdHMgQU5EXSAob3Jfb3B0cyldIFtIQVZJTkcgaGF2aW5nXSBPUkRFUiBCWSBzb3J0Ynkgc29ydG9yZGVyIExJTUlUIGxpbWl0IE9GRlNFVCBvZmZzZXQ8L2NvZGU+PC9wcmU+Cjx1bD4KICAgIDx1bD48Y29kZT50aGVfdGFibGU8L2NvZGU+IC0gVGhlIGNvbXBhbnkgZGlyZWN0b3J5IGNvbXBhbmllcyB0YWJsZS48L3VsPgogICAgPHVsPjxjb2RlPmpvaW5fZXhwcjwvY29kZT4gLSBBbnkgam9pbnMgdG8gb3RoZXIgdGFibGVzIGFzIHJlcXVpcmVkIGJ5IHRoZSBzdGF0ZW1lbnRzIHlvdSBoYXZlIGFkZGVkIGFuZCBoZSBleHByZXNzaW9uIHBhcnNlci48L3VsPgogICAgPHVsPjxjb2RlPmFuZF9vcHRzPC9jb2RlPiAtIFRoZSBsaXN0IG9mIGFuZCBjb25kaXRpb25zIGFzIHBhcnNlZCBmcm9tIGFuZCBzdGF0ZW1lbnRzIGluIHRoZSBxdWVyeSBzZXBhcmF0ZWQgYnkgQU5EIDwvdWw+CiAgICA8dWw+PGNvZGU+b3Jfb3B0czwvY29kZT4gLSBUaGUgbGlzdCBvZiBvciBjb25kaXRpb25zIGFzIHBhcnNlZCBmcm9tIGFuZCBzdGF0ZW1lbnRzIGluIHRoZSBxdWVyeSBzZXBhcmF0ZWQgYnkgT1IuICBUaGVyZSBzaG91bGQgYmUgbW9yZSB0aGFuIDEgT1Igc3RhdGVtZW50LjwvdWw+CiAgICA8dWw+PGNvZGU+c29ydGJ5PC9jb2RlPiAtIEEgc29ydGluZyBjb2x1bW4sIHdoaWNoIG1heSBiZSBhIG1ldGEgY29sdW1uLjwvdWw+CiAgICA8dWw+PGNvZGU+c29ydG9yZGVyPC9jb2RlPiAtIEEgc29ydCBvcmRlciAoZWl0aGVyIEFTQyBvciBERVNDLjwvdWw+CiAgICA8dWw+PGNvZGU+bGltaXQ8L2NvZGU+IC0gQSBsaW1pdCB0byB0aGUgYW1vdW50IG9mIGl0ZW1zIHRvIHJldHVybiBpbiBvbmUgcXVlcnkuPC91bD4KICAgIDx1bD48Y29kZT5vZmZzZXQ8L2NvZGU+IC0gQSBzdGFydGluZyBpbmRleCB0byB0aGUgcmV0dXJuIHJlc3VsdHMgZnJvbS4uPC91bD4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+Cgo8aDMgaWQ9ImFkdmFuY2Vkc2VhcmNoIj5BZHZhbmNlZCBzZWFyY2g8L2gzPgo8cD5UaGUgYWR2YW5jZWQgc2VhcmNoIGZ1bmN0aW9uYWxpdHkgaXMgYW4gYWR2YW5jZWQgdG9vbCB0aGF0IGFsbG93cyBxdWVyeWluZyB0aGUgZGF0YWJhc2Ugb24gYW55dGhpbmcgdGhhdCBjYW4gYmUgcXVlcmllZCB1c2luZyBjZGxhbmcuICBJdCBjb21iaW5lcyBhIHVzZXIgZGVmaW5lZCBmb3JtIHdpdGggYSBzbWFydHkgdGVtcGxhdGUgdGhhdCBjcmVhdGVzIGEgY2RsYW5nIHNjcmlwdC4gIEZvcm0gZGF0YSBpcyBzYXZlZCB0byB0aGUgc2Vzc2lvbiwgYW5kIHN1YnNlcXVlbnQgdmlzaXRzIHRvIHRoZSBwYWdlIHJlbWVtYmVyIHRoZSBmb3JtIHJlc3VsdHMgdW50aWwgdGhlIGZvcm0gaXMgcmVzZXQgb3IgdGhlIHNlc3Npb24gZXhwaXJlcy48L3A+CjxwPlRoZXJlIGFyZSB0aHJlZSBzdGVwcyB0byBjcmVhdGluZyBhbiBhZHZhbmNlZCBzZWFyY2ggZm9ybTwvcD4KPG9sPgogICAgIDxsaT5DcmVhdGUgYSBmb3JtIHRlbXBsYXRlCiAgICAgICAgIDxwPlRoZSBhZHZhbmNlZCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSBpcyBhIHVzZXIgZGVmaW5lZCB0ZW1wbGF0ZSB3aXRoIGxpdHRsZSBkZXBlbmRlbmNpZXMuICBZb3UgY2FuIHByb3ZpZGUgamF2YXNjcmlwdCBmdW5jdGlvbmFsaXR5IHRvIGdldCB1c2VyIGNvb3JkaW5hdGVzLCB1c2UgY3VzdG9tIGZvcm0gdmFsaWRhdGlvbiByb3V0aW5lcywgeW91ciBvd24gbGF5b3V0LCBjbGFzc2VzIGV0Yy4gIFRoZXJlIGFyZSBmZXcgcmVxdWlyZW1lbnRzOjwvcD4KCSA8dWw+CgkgICAgIDxsaT5Zb3VyIGZvcm0gc2hvdWxkIHVzZSB0aGUgPGNvZGU+e2Zvcm1fc3RhcnR9PC9jb2RlPiBhbmQgPGNvZGU+e2Zvcm1fZW5kfTwvY29kZT4gcGx1Z2lucyBzbyB0aGF0IHRoZSBwcm9wZXIgYWN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC48L2xpPgogICAgICAgICA8L3VsPgoJIDxwPkxldHMgcGxhY2UgdGhpcyB0ZW1wbGF0ZSBpbiAvYXNzZXRzL3RlbXBsYXRlcy9teV9hZHZzZWFyY2hfZm9ybS50cGw8L3A+CiAgICAgPC9paT4KCiAgICAgPGxpPkNyZWF0ZSBhIHF1ZXJ5IHRlbXBsYXRlCiAgICAgICAgIDxwPlRoaXMgdGVtcGxhdGUgc2hvdWxkIGFjY2VwdCBhcyBpbnB1dCBhIHZhcmlhYmxlIG5hbWVkICRzYXZlZCB0aGF0IGlzIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIG91dHB1dCBmcm9tIHlvdXIgZm9ybSwgYW5kIG91dHB1dCBhIGNkbGFuZyBzY3JpcHQuPC9wPgoJIDxwPkxldHMgcGxhY2UgdGhpcyBxdWVyeSBpbiAvYXNzZXRzL3RlbXBsYXRlcy9teV9hZHZzZWFyY2hfcXVlcnkudHBsPC9wPgogICAgIDwvbGk+CgogICAgIDxsaT5DYWxsIHRoZSBhZHZhbmNlZCBzZWFyY2ggYWN0aW9uLgogICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5DcmVhdGUgYSBuZXcgY29udGVudCBwYWdlIGFuZCBkaXNhYmxlIHRoZSBXWVNJV1lHIGVkaXRvciBvbiB0aGF0IHBhZ2UuPC9wPgoJICAgIDxsaT5JbiB0aGUgcHJpbWFyeSBjb250ZW50IGJsb2NrIGZvciB0aGlzIG5ldyBwYWdlIGFkZCA8Y29kZT57Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWR2c2VhcmNofTwvY29kZT48L2xpPgoJICAgIDxsaT5TcGVjaWZ5IHlvdXIgbW9kdWxlIGhpbnRzCgkgICAgICAgIDxwPkluIHRoZSAiU21hcnR5IGxvZ2ljIHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhpcyBwYWdlIiBmaWVsZCBvbiB0aGUgbG9naWMgdGFiLCBzcGVjaWZ5IHRoZSBhcHByb3ByaWF0ZSBtb2R1bGUgaGludHMgdG8gYWN0aXZhdGUgdGhlIHNlYXJjaC4gaS5lOjwvcD4KCSAgICAgICAgPHByZT48Y29kZT57Y21zX21vZHVsZV9oaW50IG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IHNlYXJjaF9xdWVyeT0nZmlsZTpteV9hZHZzZWFyY2hfcXVlcnkudHBsJyBzZWFyY2h0ZW1wbGF0ZT0nZmlsZTpteV9hZHZzZWFyY2hfZm9ybS50cGwnfTwvY29kZT48L3ByZT4KCSAgICA8L2xpPgoJICAgIDxsaT5TYXZlIHlvdXIgcGFnZTwvbGk+CgkgPC91bD4KICAgICA8L2xpPgo8L29sPgoKPGgzIGlkPSJjb25maWdfZW50cmllcyI+Q29uZmlnIGVudHJpZXM8L2gzPgo8dWw+CiAgICA8bGk+PGNvZGU+ZGV0YWlscGFnZTwvY29kZT4gLSAoc3RyaW5nfGludCA9IG51bGwpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBFaXRoZXIgYSBwYWdlIGFsaWFzIG9yIGlkIG9mIHRoZSBjb250ZW50IHBhZ2UgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IGRldGFpbCB2aWV3cyBvZiBjb21wYW5pZXMgdGhhdCBhcmUgYWNjZXNzZWQgdmlhIGEgdXJsIHNsdWcuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5hbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzPC9jb2RlPiAoYm9vbCA9IGZhbHNlKSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIElmIGVuYWJsZWQsIHRoZW4gbXVsdGlwbGUgcmVjb3JkcyB3aXRoIHRoZSBzYW1lIGNvbXBhbnkgbmFtZSB3aWxsIGJlIHBlcm1pdHRlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmFsbG93X2V4cGlyZWRfb3duZXJzPC9jb2RlPiAoYm9vbCA9IHRydWUpKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSWYgZW5hYmxlZCwgdGhlbiBjb21wYW55IHJlY29yZHMgb3duZWQgYnkgRkVVIHVzZXJzIHRoYXQgYXJlIGRpc2FibGVkIG9yIGV4cGlyZWQgY2FuIGJlIHNob3duLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+YWRtaW53eXNpd3lnPC9jb2RlPiAoYm9vbCA9IHRydWUpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBJZiBlbmFibGVkIGFuZCBhIFdZU0lXWUcgZWRpdG9yIGlzIGF2YWlsYWJsZSBmb3IgdGhlIGFkbWluaXN0cmF0b3IsIGEgV1lTSVdZRyB0ZXh0IGVkaXRvciB3aWxsIGJlIHByb3ZpZGVkIGZvciBhbGwgdGV4dCBhcmVhIGZpZWxkcyB3aGVuIGVkaXRpbmcgYSBjb21wYW55LjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+ZnJvbnRlbmRfY3JlYXRlPC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBhbiBGRVUgdXNlciBpcyBwZXJtaXR0ZWQgdG8gY3JlYXRlIG5ldyBjb21wYW55IHJlY29yZHMgKHVwIHRvIHRoZSBtYXhfcmVjb3JkcyBpZiBjb25maWd1cmVkKS48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmZyb250ZW5kX2RlbGV0ZTwvY29kZT4gKGJvb2wgPSBmYWxzZSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoaXMgb3B0aW9uIGRldGVybWluZXMgd2hldGhlciBvciBub3QgYW4gRkVVIHVzZXIgaXMgcGVybWl0dGVkIHRvIGRlbGV0ZSBjb21wYW55IGVudHJpZXMgdGhhdCB0aGUgdXNlciBvd25zLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+ZnJvbnRlbmRfbWF4cmVjb3JkczwvY29kZT4gKGludCA9IDApCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29tcGFueSBlbnRyaWVzIHRoYXQgZWFjaCB1c2VyIGNhbiBvd24uICBpZiAwIHRoZW4gbm8gZnJvbnRlbmQgZWRpdGluZyBmdW5jdGlvbmFsaXR5IGlzIHBlcm1pdHRlZC4gIElmIGxlc3MgdGhhbiB6ZXJvIHRoYW4gdGhlcmUgaXMgbm8gbGltaXQuICBPdGhlcndpc2UsIHRoZSBpbnRlZ2VyIHZhbHVlIGlzIHVzZWQgYXMgYSBsaW1pdC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmZyb250ZW5kX2NoYW5nZXN0YXR1czwvY29kZT4gKGJvb2wgPSBmYWxzZSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoaXMgb3B0aW9uIGRldGVybWluZXMgd2hldGhlciBvciBub3QgYW4gRkVVIHVzZXIgY2FuIGNoYW5nZSB0aGUgc3RhdHVzIChkcmFmdC9wdWJsaXNoZWQpIG9mIGNvbXBhbnkgZW50cmllcyB0aGF0IHRoZSB1c2VyIG93bnMuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5mcm9udGVuZF9pbXBvcnQ8L2NvZGU+IChib29sID0gZmFsc2UpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBmcm9udGVuZCBBU0NJSSBpbXBvcnQgZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGUuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5mcm9udGVuZF9lbWFpbG9uYWRkPC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSWYgZW5hYmxlZCwgYW4gZW1haWwgd2lsbCBiZSBzZW50IHdoZW4gYSBGRVUgdXNlciBjcmVhdGVzIGEgbmV3IHJlY29yZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmZyb250ZW5kX2VtYWlsb25lZGl0PC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSWYgZW5hYmxlZCwgYW4gZW1haWwgd2lsbCBiZSBzZW50IHdoZW4gYW4gRkVVIHVzZXIgdXBkYXRlcyBhbiBleGlzdGluZyByZWNvcmQuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5mcm9udGVuZF9lbWFpbGdyb3VwPC9jb2RlPiAoc3RyaW5nfGludCA9IG51bGwpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgYWRtaW4gZ3JvdXAgbmFtZSBvciBpZCB0byBzZW5kIGVtYWlscyB0byBvbiBmcm9udGVuZCBhY3Rpdml0eS48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPnVybF9yZXF1aXJlZDwvY29kZT4gKGJvb2wgPSBmYWxzZSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEZvciB0aGUgYWRtaW4gaW50ZXJmYWNlIG9ubHkgdGhpcyBvcHRpb24gZGV0ZXJtaW5zIHdoZXRoZXIgdXJsIHNsdWdzIGFyZSByZXF1aXJlZCB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGNvbXBhbnkgcmVjb3Jkcy48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPnVybF9hdXRvY3JlYXRlPC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHVybCBzbHVncyBzaG91bGQgYmUgYXV0b2NyZWF0ZWQgKHdoZW4gbm90IGFscmVhZHkgc3BlY2lmaWVkKSB1cG9uIGFkZGluZyBvciBlZGl0aW5nIGNvbXBhbmllcyA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPnVybHByZWZpeDwvY29kZT4gKHN0cmluZyA9ICdjb21wYW5pZXMnKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgc3RyaW5nIHRvIHByZXBlbmQgdG8gYWxsIHByZXR0eSB1cmxzIChleGNlcHQgdXJsIHNsdWdzKSB3aGVuIGJ1aWxkaW5nIHByZXR0eSB1cmxzLjwvcD4KICAgIDwvbGk+CjwvdWw+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJob29rcyI+SG9va3M8L2gzPgo8dWw+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlU2F2ZUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGJlZm9yZSBhIGNvbXBhbnkgaXMgc2F2ZWQgdG8gdGhlIGRhdGFiYXNlLiAgSWYgaXQgaXMgYW4gaW5pdGlhbCBpbnNlcnQgb3BlcmF0aW9uIHRoZSBjb21wYW55IHdpbGwgaGF2ZSBubyBpZC48L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5Db21wYW55PC9jb2RlPiAtIFRoZSBjb21wYW55IG9iamVjdCBvZiB0aGUgY29tcGFueSB0byBiZSBzYXZlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyU2F2ZUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGFmdGVyIGEgY29tcGFueSBoYXMgYmVlbiBzYXZlZCB0byB0aGUgZGF0YWJhc2UuICBBdCB0aGlzIHBvaW50LCBhbGwgY29tcGFuaWVzIHdpbGwgaGF2ZSBhbiBpZC4gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gPGNvZGU+Q29tcGFueTwvY29kZT4gLSBUaGUgY29tcGFueSBvYmplY3Qgb2YgdGhlIGNvbXBhbnkgdGhhdCBoYXMgYmVlbiBzYXZlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGJlZm9yZSBhIGNvbXBhbnkgaXMgdG8gYmUgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5Db21wYW55PC9jb2RlPiAtIFRoZSBjb21wYW55IG9iamVjdCB0byBiZSBkZWxldGVkLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QWZ0ZXJEZWxldGVDb21wYW55PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBhZnRlciBhIGNvbXBhbnkgYW5kIGFsbCByZWxhdGVkIGZpbGVzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIGRhdGFiYXNlLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNvbXBhbnk8L2NvZGU+IC0gVGhlIGNvbXBhbnkgb2JqZWN0IHRoYXQgd2FzIGRlbGV0ZWQuICBJdCB3aWxsIG5vIGxvbmdlciBoYXZlIGFuIGlkLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlQ29weUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGJlZm9yZSBhIGNvbXBhbnkgaXMgY29waWVkIHRvIGEgbmV3IGlkLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNvbXBhbnk8L2NvZGU+IC0gVGhlIGNvbXBhbnkgb2JqZWN0IHRvIGJlIGNvcGllZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyQ29weUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGFmdGVyIGEgY29tcGFueSBoYXMgYmVlbiBjb3BpZWQ8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5Db21wYW55PC9jb2RlPiAtIFRoZSBjb21wYW55IG9iamVjdCBhZnRlciBpdCBoYXMgYmVlbiBjb3BpZWQuPC9wPgogICAgPC9saT4KCiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlU2F2ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBiZWZvcmUgYSBjYXRlZ29yeSBvYmplY3QgaXMgc2F2ZWQgdG8gdGhlIGRhdGFiYXNlLiAgSWYgdGhpcyBpcyBhbiBpbml0aWFsIGluc2VydCBvcGVyYXRpb24gdGhlIGNhdGVnb3J5IG9iamVjdCB3aWxsIG5vdCBoYXZlIGFuIGlkLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNhdGVnb3J5PC9jb2RlPiAtIFRoZSBjYXRlZ29yeSBvYmplY3QgdG8gc2F2ZS48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyU2F2ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBhZnRlciBhIGNhdGVnb3J5IG9iamVjdCBoYXMgYmVlbiBzYXZlZCB0byB0aGUgZGF0YWJhc2UgYW5kIGFsbCBoaWVyYXJjaHkgcG9zaXRpb25zIHVwZGF0ZWQuPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gPGNvZGU+Q2F0ZWdvcnk8L2NvZGU+IC0gVGhlIGNhdGVnb3J5IG9iamVjdCB0aGF0IHdhcyBzYXZlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBiZWZvcmUgYSBjYXRlZ29yeSBvYmplY3QgaXMgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5DYXRlZ29yeTwvY29kZT4gLSBUaGUgY2F0ZWdvcnkgb2JqZWN0IHRvIGJlIGRlbGV0ZWQuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpBZnRlckRlbGV0ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBhZnRlciBhIGNhdGVnb3J5IG9iamVjdCBoYXMgYmVlbiBkZWxldGVkIGZyb20gdGhlIGRhdGFiYXNlIGFuZCBhbGwgaGllcmFyY2h5IHBvc2l0aW9ucyB1cGRhdGVkLiAgVGhlIGNhdGVnb3J5IG9iamVjdCB3aWxsIG5vIGxvbmdlciBoYXZlIGFuIGlkLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNhdGVnb3J5PC9jb2RlPiAtIFRoZSBjYXRlZ29yeSBvYmplY3QgYWZ0ZXIgZGVsZXRpb24uPC9wPgogICAgPC9saT4KCiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlU2F2ZUZpZWxkRGVmPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyU2F2ZUZpZWxkRGVmPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUZpZWxkRGVmPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyRGVsZXRlRmllbGREZWY8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZVNhdmVIaWVyYXJjaHk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QWZ0ZXJTYXZlSGllcmFyY2h5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUhpZXJhcmNoeTwvY29kZT4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpBZnRlckRlbGV0ZUhpZXJhcmNoeTwvY29kZT4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KCiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6UHJvY2Vzc0tNTENvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlJldHVybnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpTZWFyY2hJbnB1dFByZVByb2Nlc3M8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlJldHVybnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpPbkZyb250ZW5kVXBkYXRlPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5SZXR1cm5zOjwvc3Ryb25nPiAtIDwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6Z2V0X2NvbXBhbnlfZGV0YWlscGFnZTwvY29kZT4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UmV0dXJuczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0ic2VjdXJpdHkiPlNlY3VyaXR5PC9oMz4KPHA+SW4gb3JkZXIgdG8gbWFuYWdlIHRoZSBjb21wYW5pZXMgaW5zaWRlIHRoaXMgbW9kdWxlLCB0aGUgYWRtaW5pc3RyYXRvciBtdXN0IGhhdmUgdGhlICc8ZW0+TW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5PC9lbT4nIHBlcm1pc3Npb24uPC9wPgo8cD5CeSBkZWZhdWx0LCB0aGUgYWJpbGl0eSBmb3IgZnJvbnRlbmQgZWRpdGluZyBpcyBkaXNhYmxlZCBmb3Igc2VjdXJpdHkgcHVycG9zZXMuICBUbyBlbmFibGUgaXQgeW91IHNob3VsZCBzZXQgKGF0IGEgbWluaW11bSkgdGhlIGNkX2Zyb250ZW5kX2NyZWF0ZSwgYW5kIGNkX2Zyb250ZW5kX21heHJlY29yZHMgZW50cmllcyBpbiB0aGUgY29uZmlnLnBocCBmaWxlLjwvcD4KPHA+Tm90ZTogaWYgeW91IGFyZSBhbGxvd2luZyB1bnRydXN0ZWQgZnJvbnRlbmQgdXNlcnMgdG8gbWFuYWdlIGNvbXBhbnlkaXJlY3RvcnkgcmVjb3JkcywgdGhlbiB5b3Ugc2hvdWxkIGNvbnNpZGVyIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGVkaXRvcnMgY291bGQgZW50ZXIgc21hcnR5IHRhZ3MgaW4gdGhlIGNvbnRlbnQgYW5kIHRodXMgZ2VuZXJhdGUgZXJyb3JzLiAgaS5lOiAgeW91IHNob3VsZCBuZXZlciB1c2Ugc21hcnR5J3MgZXZhbCB0YWcgb24gY29udGVudCBzdWJtaXR0ZWQgYnkgdW50dXN0ZWQgdXNlcnMuICBBbmQgeW91IHNob3VsZCBhbHNvIGNvbnNpZGVyIHRoZSBwb3NzaWJpbGl0eSB0aGF0IHRoZXkgbWF5IHVwbG9hZCBtYWxpY2lvdXMgZmlsZXMsIGVtYmVkIHNjcmlwdHMsIG9yIGRvIG90aGVyIG1hbGljaW91cyB0aGluZ3MuPC9wPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0ic3VwcG9ydCI+U3VwcG9ydDwvaDM+CjxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uICBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+QSBidWcgdHJhY2tpbmcgYW5kIGZlYXR1cmUgcmVxdWVzdCBzeXN0ZW0gaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBtb2R1bGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb21wYW55ZGlyIj5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTIsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+CjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuNjQ8L2xpPjxsaT5DR1NpbXBsZVNtYXJ0eSA9Jmd0OyAxLjk8L2xpPjxsaT5KUXVlcnlUb29scyA9Jmd0OyAxLjQ8L2xpPjxsaT5DR1NtYXJ0SW1hZ2UgPSZndDsgMS4yMTwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuOTAyPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgogICAgPGxpPnYyLjAKICAgICAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdmVyc2lvbiBpcyBhIGNvbXBsZXRlIHJld3JpdGUgb2YgYWxsIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIENvbXBhbnlEaXJlY3RvcnkuICBBbHRob3VnaCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGhhdmUgbm90IGRyYW1hdGljYWxseSBjaGFuZ2VkLCBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIGRhdGEgbG9zcywgYWxsIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gcmV3cml0dGVuLiAgVGhlcmUgd2lsbCBiZSBmdW5jdGlvbmFsaXR5IGJyZWFrYWdlIGFuZCB5b3UgV0lMTCBoYXZlIHRvIHJlZG8gYWxsIHRlbXBsYXRlcy4gIEl0IGlzIGNyaXRpY2FsIHRoYXQgeW91IGRvIG5vdCB1cGdyYWRlIGEgbGl2ZSBzaXRlLiAgSW5zdGVhZCB5b3Ugc2hvdWxkIGRvIHRoZSB1cGdyYWRlIG9uIGEgZGV2ZWxvcG1lbnQgc2VydmVyLCBhbmQgb25seSB3aGVuIGFsbCBmdW5jdGlvbmFsaXR5IGlzIHdvcmtpbmcgc2hvdWxkIHlvdSBzeW5jaHJvbmlzZSB5b3VyIHRlbXBsYXRlcyBhbmQgbW9kdWxlcyB3aXRoIHRoZSBsaXZlIHNpdGUuPC9kaXY+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPldBUk5JTkc6PC9zdHJvbmc+IFRoZSB1cGdyYWRlIHJvdXRpbmUgY29udmVycyBhbGwgdGFibGVzIHRvIHVzZSB0aGUgSW5ub0RCIGVuZ2luZSwgYW5kIGFkZHMgc29tZSBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzLiAgVG8gZG8gdGhhdCwgaXQgbXVzdCBlbnN1cmUgdGhhdCB0aGUgZGF0YWJhc2UgaXMgYXQgbGVhc3QgbWluaW1hbGx5IGNsZWFuLiAgSXQgd2lsbCBkZWxldGUgc29tZSByb3dzIGZyb20gdGhlIGZpZWxkdmFscyBhbmQgY29tcGFueV9jYXRlZ29yaWVzIHRhYmxlcyBJRiB0aGUgY29tcGFueSBpZCwgZmllbGRkZWYgaWRzLCBvciBjYXRlZ29yeSBpZHMgZG8gbm90IGV4aXN0LiAgSXQgd2lsbCBlcmFzZSBhbnkgaW52YWxpZCBoaWVyYXJjaHkgc2V0dGluZ3MgZnJvbSB0aGUgY29tcGFuaWVzIHRhYmxlLCAgYW5kIEFkZGl0aW9uYWxseSwgdGhlIHVwZ3JhZGUgcm91dGluZSBhZGp1c3RzIGJvdGggdGhlIHNpemUgYW5kIHN0YXR1cyBvZiBzb21lIGZpZWxkcywgYW5kIGhpZXJhcmNoaWVzLCAgYW5kIGVuZm9yY2VzIGRhdGEgY29uc3RyYWludHMuICBZb3Ugc2hvdWxkIGVuc3VyZSB5b3UgaGF2ZSBrbm93bi1nb29kIGJhY2t1cHMsIGFuZCBiZSBzdXJlIHRvIHRob3Vyb3VnbHkgdmFsaWRhdGUgeW91ciBkYXRhLiAgU29tZSBhZGp1c3RtZW50IG1heSBiZSBuZWVkZWQgdG8gYWRqdXN0IGZvciBiYWQgZGF0YSBpbiB0aGUgcHJldmlvdXMgZGF0YWJhc2UuPC9kaXY+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3RyaW5nPk5vdGU6PC9zdHJvbmc+IEFmdGVyIHVwZ3JhZGUsIGlmIHlvdSBhcmUgdXNpbmcgY3VzdG9tIHRlbXBsYXRlcyB0aGUgbW9kdWxlIHdpbGwgbm90IGJlIGFibGUgdG8gZmluZCB0aGVtIGFuZCB3aWxsIGdlbmVyYXRlIGVycm9ycy4gIEhvd2V2ZXIsIHlvdXIgdGVtcGxhdGUgd29yayBpcyBub3QgbG9zdC4gQWxsIGN1c3RvbSB0ZW1wbGF0ZXMgZnJvbSB0aGlzIG1vZHVsZSBzaG91bGQgYmUgbG9jYXRlZCBpbiB0aGUgPGNvZGU+L2Fzc2V0cy9tb2R1bGVfY3VzdG9tL0NvbXBhbnlEaXJlY3RvcnkvdGVtcGxhdGVzPC9jb2RlPiBmb2xkZXIuICBJZiB5b3Ugd291bGQgbGlrZSB0byB0ZWxsIENvbXBhbnlEaXJlY3RvcnkgdG8gdXNlIHRoZXNlIHRlbXBsYXRlcyB0aGVuIGNoYW5nZSB0aGUgY2FsbHMgdG8gQ29tcGFueURpcmVjdG9yeSB0byBzZXBjaWZ5IHRoZSB0ZW1wbGF0ZSBmaWxlICh3aXRoIGEgLnRwbCBleHRlbnNpb24pLiAgPGVtPnRpcDo8L2VtPiB1c2UgPGNvZGU+e2Ntc19tb2R1bGVfaGludH08L2NvZGU+LjwvcD4KCTxwPlNvbWUgb2YgdGhlIGNoYW5nZXMgaW5jbHVkZTo8L3A+Cgk8dWw+Cgk8bGk+UmVtb3ZpbmcgYWxsIHRlbXBsYXRlIGZ1bmN0aW9uYWxpdHkgYW5kIG5vdyB1c2UgZmlsZSBiYXNlZCB0ZW1wbGF0ZXMuICBZb3UgY2FuIHN0aWxsIHVzZSBkZXNpZ24gbWFuYWdlciBmb3IgdGVtcGxhdGVzIGlmIHlvdSB3aXNoLCBidXQgY3JlYXRpbmcgbmV3IHRlbXBsYXRlcyBpbiBEZXNpZ25NYW5hZ2VyIHdpbGwgYmUgYSBjb3B5L3Bhc3RlIHByb2Nlc3MuPC9saT4KCTxsaT5SZW1vdmUgdGhlIHNldHRpbmdzIHBhbmVsIGluIGZhdm9yIG9mIGVudHJpZXMgaW4gdGhlIGNvbmZpZy5waHAgZmlsZS48L2xpPgoJPGxpPlJld3JpdGUgdGhlIHdheSB0aGF0IEdlb2NvZGluZyB3b3Jrcy4gIFRoZSBDR0dvb2dsZU1hcHMoMikgbW9kdWxlcyB3aWxsIG5vIGxvbmdlciBwcm92aWRlIGdlb2NvZGluZyBmdW5jdGlvbmFsaXR5IGZvciB0aGlzIG1vZHVsZS4gIEEgcmVwbGFjZW1lbnQgaXMgYXZhaWxhYmxlLjwvbGk+Cgk8bGk+VGhlIGVtYWlsIGZ1bmN0aW9uYWxpdHkgZm9yIG5vdGlmaWNhdGlvbiBvbiBmcm9udGVuZCBlZGl0cy9hZGRzIG5vdyB1c2VzIGEgLmVtbCBmaWxlIGZvcm1hdC4gIFNlZSB0aGUgaGVscC4gIFRoZSBmb3JtYXQgb2YgdGhpcyBtZXNzYWdlIGlzIG5vdCBjb252ZXJ0ZWQgb24gdXBncmFkZS48L2xpPgoJPGxpPlJlbW92ZSB0aGUgc2VhcmNoIHN0YXRzIGZ1bmN0aW9uYWxpdHkuPC9saT4KCTxsaT5SZW1vdmUgdGhlIGFiaWxpdHkgdG8gYXNzb2NpYXRlIGFuICdpY29uJyB3aXRoIGNvbXBhbmllcyBpZiBDR0dvb2dsZU1hcHMyIGlzIGF2YWlsYWJsZS48L2xpPgoJPGxpPkFkZHMgYSBmbGV4aWJsZSBuZXcgcXVlcnkgbGFuZ3VhZ2Ugd2l0aCByYWRpdXMgc2VhcmNoIGFuZCBmdWxsIHRleHQgc2VhcmNoaW5nIGFuZCBtb3JlLi4uPC9saT4KCTxsaT5SZXdyaXRlIGFsbCBhY3Rpb25zLCBwbHVnaW5zIGFuZCB0ZW1wbGF0ZXMuICBUaG91Z2ggdGhlIGZhY3RvcnkgdGVtcGxhdGUgbmFtZXMgaGF2ZSBub3QgY2hhbmdlZCwgdGhlIGNvbnRlbnRzIGFuZCBmdW5jdGlvbmFsaXR5IG9mIHRoZW0gaGFzLjwvbGk+Cgk8bGk+QWRkcyBleHRlbnNpdmUgdXNlIG9mIGNhY2hpbmc8L2xpPgoJPGxpPkFkZHMgbW9yZSBjdXN0b20gZmllbGQgdHlwZXM8L2xpPgoJPGxpPlJlbW92ZXMgdGhlICdwdWJsaWMnIGZsYWcgZm9yIGN1c3RvbSBmaWVsZHMuICBJZiBmaWVsZHMgYXJlIG5vdCB0byBiZSBzaG93biBvbiB0aGUgZnJvbnRlbmQgdGhlbiB5b3VyIHRlbXBsYXRlcyBzaG91bGQgaGFuZGxlIHRoaXMuPC9saT4KCTxsaT5UaGUgYWRtaW4gc2lkZSBDU1YgaW1wb3J0IGZ1bmN0aW9uYWxpdHkgbm93IG9ubHkgaGFuZGxlcyBjb21wYW55IHJlY29yZHMsIGFuZCBpcyBpbmZpbml0ZWx5IG1vcmUgY2xlYXIgYW5kIGZsZXhpYmxlLCB0aG91Z2ggaXQgZG9lcyBub3QgYWxsb3cgb3ZlcndyaXRpbmcgZXhpc3RpbmcgcmVjb3Jkcy48L2xpPgoJPGxpPlRoZSBmcm9udGVuZCBzaWRlIENTViBpbXBvcnQgZnVuY3Rpb25hbGl0eSBpcyBub3cgc2ltcGxlciBhbmQgdXNlcyBhIHNlbWktZml4ZWQgZm9ybWF0LjwvbGk+Cgk8bGk+dGhlIGFkdmFuY2VkIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGlzIG5vdyBjb21wbGV0ZWx5IGZsZXhpYmxlLiAgWW91IGJ1aWxkIHRoZSBmb3JtIHRoZSB3YXkgeW91IHdhbnQsIGFuZCBwYXNzIHRoZSBmb3JtIHJlc3VsdHMgdG8gYW5vdGhlciB0ZW1wbGF0ZSB0aGF0IGJ1aWxkcyBhIGNkbGFuZyBxdWVyeS4gIFRoZSBxdWVyeSBmcm9tIHRoZSBhZHZhbmNlZCBzZWFyY2ggZm9ybSwgYW5kIHRoZSBjdXJyZW50IHBhZ2UgYXJlICdzdGlja3knIGFuZCBzYXZlZCBpbiB0aGUgc2Vzc2lvbi48L2xpPgoJPGxpPlJlbW92ZWQgYWxsIGV2ZW50cywgbm93IHVzZSBob29rcy48L2xpPgogICAgICAgIDxsaT5UaGVyZSBpcyBubyBsb25nZXIgZnVuY3Rpb25hbGl0eSB0byBleHBvcnQgYW5kIGltcG9ydCBmaWVsZCBkZWZpbml0aW9ucywgaGllcmFyY2hpZXMgb3IgY2F0ZWdvcmllcy4gIHRob3VnaCBzb21lIG9mIHRoaXMgZnVuY3Rpb25hbGl0eSBjYW4gYmUgYWRkcmVzc2VkIGFzIG5lZWRlZCBhdCBhIGxhdGVyIGRhdGUuPC9saT4KCTxsaT5BZGRzIGJldHRlciBhdWRpdGluZzwvbGk+Cgk8bGk+Q29tcGF0aWJsZSB3aXRoIENNU01TIHYyLjM8L2xpPgoJPGxpPk5vdyB1c2VzIHRoZSBJbm5vREIgZGF0YWJhc2UgZW5naW5lLCBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzIGZvciBkYXRhYmFzZSBpbnRlZ3JpdHksIGFuZCB0cmFuc2FjdGlvbnMgaW4gbWFueSBwbGFjZXMgZm9yIHBlcmZvcm1hbmNlLjwvbGk+Cgk8bGk+bXVjaCwgbXVjaCBtb3JlLi4uPC9saT4KCTwvdWw+CiAgICA8L2xpPgo8L3VsPgo8YnIgLz4=]]></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.64</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.9</requiredversion>
	</requires>
	<requires>
	  <requiredname>JQueryTools</requiredname>
	  <requiredversion>1.4</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSmartImage</requiredname>
	  <requiredversion>1.21</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.abclist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJHRoZXRlbXBsYXRlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2FiY2xpc3R0ZW1wbGF0ZScsICdvcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsJyk7CiRzdW1tYXJ5cGFnZSA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzdW1tYXJ5cGFnZScpLCRyZXR1cm5pZCk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKCnRyeSB7CiAgICAkYWJjbGlzdCA9ICR0aGlzLT5nZXRfbWV0YXF1ZXJ5X21hbmFnZXIoKS0+Z2V0X2FscGhhYmV0aWNfY291bnRzKCk7CiAgICAkYWxwaGEgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbmFtZScsJ0EnKTsKICAgICRhbHBoYSA9ICRhbHBoYVswXTsgLy8gb25lIGNoYXJhY3RlciBvbmx5IGZvciB0aGlzIGFjdGlvbi4KCiAgICAvLyB1c2UgdGhlICRxdWVyeSBhbmQgcXVlcnlfMSwgcXVlcnlfMiwgLi4uLiAgIHN0dWZmIHRvIGFsbG93IGZ1cnRoZXIgZmlsdGVyaW5nCiAgICAkZmFjdG9yeSA9ICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpOwogICAgJHF1ZXJ5ID0gJGZhY3RvcnktPmNyZWF0ZV9mcm9udGVuZF9xdWVyeV9mcm9tX3BhcmFtcygkcGFyYW1zKTsKICAgICRxdWVyeSA9ICRxdWVyeS0+YXBwZW5kX3N0YXRlbWVudCgnYW5kOmNvbXBhbnlfbmFtZTpTVEFSVFNXSVRIOicuJGFscGhhKTsKICAgICRzcWwgPSAkZmFjdG9yeS0+Z2VuZXJhdGVfcXVlcnkoJHF1ZXJ5KTsKICAgICRyZXN1bHRzID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKS0+bG9hZF9ieV9xdWVyeSgkc3FsKTsKCiAgICAvLyBmcm9tIGhlcmUsIHdlIGFyZSBqdXN0IGdlbmVyYXRpbmcgYSBzdW1tYXJ5IHZpZXcuCiAgICAkdHBsLT5hc3NpZ24oJ2N1cnJlbnQnLCAkYWxwaGEpOwogICAgJHRwbC0+YXNzaWduKCdhYmNsaXN0JywgJGFiY2xpc3QpOwogICAgJHRwbC0+YXNzaWduKCdpdGVtcycsICRyZXN1bHRzKTsKICAgICR0cGwtPmFzc2lnbignc3VtbWFyeXBhZ2UnLCAkc3VtbWFyeXBhZ2UpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgJHRwbC0+YXNzaWduKCdlcnJvcicsJGUtPkdldE1lc3NhZ2UoKSk7Cn0KJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_categoryorder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CmlmKCAhaXNzZXQoJHBhcmFtc1snY2F0J10pICkgZXhpdDsKCi8vIGZpcnN0IHBhc3MuLi4gY2hhbmdlIGFsbCB0aGUgJ3Jvb3QnIHZhbHVlcyB0byAtMSBhbmQgY29udmVydCB2YWx1ZXMgdG8gYSBoYXNoCiRoaWVyID0gW107CnsKICAgICR0bXAgPSAkcGFyYW1zWydjYXQnXTsKICAgIGZvcmVhY2goICR0bXAgYXMgJHJpZCA9PiAkcGFyZW50X2lkICkgewogICAgICAgIGlmKCAkcGFyZW50X2lkIDwgMSApICRwYXJlbnRfaWQgPSAtMTsKICAgICAgICAkaGllclskcmlkXSA9IFsncGFyZW50X2lkJz0+JHBhcmVudF9pZF07CiAgICB9Cn0KCi8vIHNlY29uZCBwYXNzLi4uIGNhbGN1bGF0ZSBpdGVtX29yZGVyIHZhbHVlcyBmb3IgYWxsIGl0ZW1zLgokY2FsY19pb3JkZXIgPSBmdW5jdGlvbigmJGhpZXIsJHBhcmVudF9pZCA9IC0xKSB1c2UgKCYkY2FsY19pb3JkZXIpIHsKICAgICRpb3JkZXIgPSAxOwogICAgZm9yZWFjaCggJGhpZXIgYXMgJHJpZCA9PiAmJHJvdyApIHsKICAgICAgICBpZiggJHJvd1sncGFyZW50X2lkJ10gPT0gJHBhcmVudF9pZCApIHsKICAgICAgICAgICAgJHJvd1snaXRlbV9vcmRlciddID0gJGlvcmRlcisrOwogICAgICAgICAgICAkY2FsY19pb3JkZXIoJGhpZXIsJHJpZCk7CiAgICAgICAgfQogICAgfQp9OwokY2FsY19pb3JkZXIoJGhpZXIpOwoKJHRoaXMtPmdldF9jYXRlZ29yeV9tYW5hZ2VyKCktPmJ1bGtfcmVvcmRlcigkaGllcik7CmV4aXQ7CiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_get_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7CiAgICBmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKICAgIGlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHsKICAgICAgICB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwogICAgfQoKICAgICRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJyk7CiAgICAkZmRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdmZGlkJyk7CiAgICBpZiggJGNvbXBpZCA8IDEgfHwgJGZkaWQgPCAxICkgewogICAgICAgIGhlYWRlcignSFRUUC8xLjEgNDAwIE1pc3NpbmcgcGFyYW0nKTsKICAgICAgICBleGl0KCk7CiAgICB9CiAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY29tcGlkKTsKICAgICRmaWVsZGRlZiA9ICR0aGlzLT5nZXRfZmllbGRkZWZfbWFuYWdlcigpLT5sb2FkX2J5X2lkKCRmZGlkKTsKICAgIGlmKCAkZmllbGRkZWYtPnR5cGUgIT0gJ2FsYnVtJyApIHsKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMCBGaWVsZCBpcyBub3QgYW4gYWxidW0nKTsKICAgICAgICBleGl0KCk7CiAgICB9CgogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fYWpheF9nZXRfYWxidW0udHBsJyk7CiAgICAkZGF0YSA9IGlzc2V0KCRjb21wYW55LT5maWVsZHNbJGZkaWRdKSA/ICRjb21wYW55LT5maWVsZHNbJGZkaWRdIDogbnVsbDsKICAgICR0cGwtPmFzc2lnbigndXJsX2Jhc2UnLCAkY29tcGFueV9tYW5hZ2VyLT5nZXRfY29tcGFueV9maWxlX3VybCgkY29tcGlkKS4nL2FsYnVtXycuJGZkaWQpOwogICAgJHRwbC0+YXNzaWduKCdjb21wYW55JywkY29tcGFueSk7CiAgICAkdHBsLT5hc3NpZ24oJ2ZpZWxkZGVmJywkZmllbGRkZWYpOwogICAgJHRwbC0+YXNzaWduKCdkYXRhJywgJGRhdGEpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CmNhdGNoKCBcQ21zRXJyb3I0MDNFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMyAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uICRlICkgewogICAgaGVhZGVyKCdIVFRQLzEuMSA0MDQgJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDUwMCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_update_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICAkaGFuZGxlcnMgPSBvYl9saXN0X2hhbmRsZXJzKCk7CiAgICBmb3IgKCRjbnQgPSAwOyAkY250IDwgc2l6ZW9mKCRoYW5kbGVycyk7ICRjbnQrKykgeyBvYl9lbmRfY2xlYW4oKTsgfQoKICAgIGlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHsKICAgICAgICB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwogICAgfQoKICAgICRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJyk7CiAgICAkZmRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdmZGlkJyk7CiAgICBpZiggJGNvbXBpZCA8IDEgfHwgJGZkaWQgPCAxICkgewogICAgICAgIGhlYWRlcignSFRUUC8xLjEgNDAwIE1pc3NpbmcgcGFyYW0nKTsKICAgICAgICBleGl0KCk7CiAgICB9CiAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY29tcGlkKTsKICAgICRmaWVsZGRlZiA9ICR0aGlzLT5nZXRfZmllbGRkZWZfbWFuYWdlcigpLT5sb2FkX2J5X2lkKCRmZGlkKTsKICAgIGlmKCAkZmllbGRkZWYtPnR5cGUgIT0gJ2FsYnVtJyApIHsKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMCBGaWVsZCBpcyBub3QgYW4gYWxidW0nKTsKICAgICAgICBleGl0KCk7CiAgICB9CiAgICBpZiggIWNnZV9wYXJhbTo6ZXhpc3RzKCRfUE9TVCwnaXRlbXMnKSAmJiAhY2dlX3BhcmFtOjpleGlzdHMoJF9QT1NULCdub3RoaW5nJykpIHsKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMCBGaWVsZCAtIG5vIG9yZGVyIGRhdGEnKTsKICAgICAgICBleGl0KCk7CiAgICB9CgogICAgJHBhdGggPSAkY29tcGFueV9tYW5hZ2VyLT5nZXRfY29tcGFueV9maWxlX3BhdGgoJGNvbXBpZCkuJy9hbGJ1bV8nLiRmZGlkOwogICAgaWYoIGNnZV9wYXJhbTo6ZXhpc3RzKCRfUE9TVCwnbm90aGluZycpICkgewogICAgICAgIC8vIGNsZWFuIHRoZSB3aG9sZSB3b3JrcwogICAgICAgIEByZWN1cnNpdmVfZGVsZXRlKCRwYXRoKTsKICAgICAgICAkbmV3X3ZhbCA9IG51bGw7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiggIWlzX2RpcigkcGF0aCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhbiBhbGJ1bSBwYXRoLi4uIHNob3VsZCBub3QgZ2V0IGhlcmUnKTsKICAgICAgICAkb2xkX3ZhbCA9IGlzc2V0KCRjb21wYW55LT5maWVsZHNbJGZkaWRdKSA/ICRjb21wYW55LT5maWVsZHNbJGZkaWRdIDogW107CiAgICAgICAgJG5ld192YWwgPSBbXTsKICAgICAgICBpZiggY291bnQoJF9QT1NUWydpdGVtcyddKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJF9QT1NUWydpdGVtcyddIGFzICRuYW1lICkgewogICAgICAgICAgICAgICAgaWYoICFpc19maWxlKCRwYXRoLicvJy4kbmFtZSkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRuZXdfdmFsW10gPSAkbmFtZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkZGVsZXRlZCA9IGFycmF5X2RpZmYoJG9sZF92YWwsICRuZXdfdmFsKTsKICAgICAgICBpZiggIWVtcHR5KCRkZWxldGVkKSApIHsKICAgICAgICAgICAgZm9yZWFjaCgkZGVsZXRlZCBhcyAkb25lKSB7CiAgICAgICAgICAgICAgICBAdW5saW5rKCRwYXRoLicvJy4kb25lKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoRmllbGQoJGZkaWQsICRuZXdfdmFsKTsKICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+c2F2ZSgkY29tcGFueSk7Cn0KY2F0Y2goIFxDbXNFcnJvcjQwM0V4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAzICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGhlYWRlcignSFRUUC8xLjEgNTAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_upload_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICBpZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSB7CiAgICAgICAgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignUGVybWlzc2lvbiBkZW5pZWQnKTsKICAgIH0KCiAgICAkY29tcGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRfUE9TVCwnY29tcGlkJyk7CiAgICAkZmRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkX1BPU1QsJ2ZkaWQnKTsKICAgIGlmKCAkY29tcGlkIDwgMSB8fCAkZmRpZCA8IDEgKSB7CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDAgTWlzc2luZyBwYXJhbScpOwogICAgICAgIGV4aXQoKTsKICAgIH0KICAgICRjb21wYW55X21hbmFnZXIgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpOwogICAgJGNvbXBhbnkgPSAkY29tcGFueV9tYW5hZ2VyLT5sb2FkX2J5X2lkKCRjb21waWQpOwogICAgJGZpZWxkZGVmID0gJHRoaXMtPmdldF9maWVsZGRlZl9tYW5hZ2VyKCktPmxvYWRfYnlfaWQoJGZkaWQpOwogICAgaWYoICRmaWVsZGRlZi0+dHlwZSAhPSAnYWxidW0nICkgewogICAgICAgIGhlYWRlcignSFRUUC8xLjEgNDAwIEZpZWxkIGlzIG5vdCBhbiBhbGJ1bScpOwogICAgICAgIGV4aXQoKTsKICAgIH0KCiAgICAkb3B0aW9ucyA9IGFycmF5KCdwYXJhbV9uYW1lJz0+J2ltYWdlX3VwbG9hZCcpOwogICAgJG9wdGlvbnNbJ2NvbXBpZCddID0gJGNvbXBpZDsKICAgICRvcHRpb25zWydmZGlkJ10gPSAkZmRpZDsKICAgICRvcHRpb25zWyd1cGxvYWRfZGlyJ10gPSAkY29tcGFueV9tYW5hZ2VyLT5nZXRfY29tcGFueV9maWxlX3BhdGgoJGNvbXBpZCkuIi9hbGJ1bV8kZmRpZC8iOwogICAgJG9wdGlvbnNbJ3VwbG9hZF91cmwnXSA9ICRjb21wYW55X21hbmFnZXItPmdldF9jb21wYW55X2ZpbGVfdXJsKCRjb21waWQpLiIvYWxidW1fJGZkaWQiOwogICAgJHVwbG9hZF9oYW5kbGVyID0gJHRoaXMtPmNyZWF0ZV9hbGJ1bV91cGxvYWRfaGFuZGxlcigkY29tcGFueSwgJGZpZWxkZGVmLCAkb3B0aW9ucyk7CgogICAgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUsIG5vLWNhY2hlJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9ImZpbGVzLmpzb24iJyk7CiAgICBoZWFkZXIoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmYnKTsKICAgIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luOiAqJyk7CiAgICBoZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHM6IE9QVElPTlMsIEhFQUQsIEdFVCwgUE9TVCwgUFVULCBERUxFVEUnKTsKICAgIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyczogWC1GaWxlLU5hbWUsIFgtRmlsZS1UeXBlLCBYLUZpbGUtU2l6ZScpOwoKICAgIHN3aXRjaCAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10pIHsKICAgIGNhc2UgJ09QVElPTlMnOgogICAgICAgIGJyZWFrOwogICAgY2FzZSAnSEVBRCc6CiAgICBjYXNlICdHRVQnOgogICAgICAgICR1cGxvYWRfaGFuZGxlci0+Z2V0KCk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdQT1NUJzoKICAgICAgICAkdXBsb2FkX2hhbmRsZXItPnBvc3QoKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ0RFTEVURSc6CiAgICAgICAgJHVwbG9hZF9oYW5kbGVyLT5kZWxldGUoKTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDUgTWV0aG9kIE5vdCBBbGxvd2VkJyk7CiAgICB9Cn0KY2F0Y2goIFxDbXNFcnJvcjQwM0V4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAzICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGhlYWRlcignSFRUUC8xLjEgNTAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KZXhpdDsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulk.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3V0aWxzOwp1c2UgY2dlX3BhcmFtOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykgKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKCnRyeSB7CiAgICAkYnVsa19hY3Rpb24gPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCdidWxrYWN0aW9uJyk7CiAgICAkYnVsa19pdGVtcyA9IGNnZV91dGlsczo6Z2V0X3BhcmFtKCRfUE9TVCwnYnVsaycpOwogICAgaWYoICEkYnVsa19hY3Rpb24gfHwgZW1wdHkoJGJ1bGtfaXRlbXMpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJGJ1bGtfaXRlbXMgPSBhcnJheV9tYXAoZnVuY3Rpb24oJGl0ZW0pewogICAgICAgICAgICAkaXRlbSA9IChpbnQpICRpdGVtOwogICAgICAgICAgICBpZiggJGl0ZW0gPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgICAgICAgICByZXR1cm4gJGl0ZW07CiAgICAgICAgfSwgJGJ1bGtfaXRlbXMpOwoKICAgIC8vIGJ1aWxkIGEgcXV1ZXJ5IHdpdGggdGhpcyBpdGVtIGxpc3QuCiAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKICAgICRmYWN0b3J5ID0gJHRoaXMtPmdldF9xdWVyeV9mYWN0b3J5KCk7CiAgICAkcXVlcnkgPSAkZmFjdG9yeS0+Y3JlYXRlX3F1ZXJ5X2Zyb21fc3RhdGVtZW50cyhbJ2FuZDppZGxpc3Q6Jy5pbXBsb2RlKCcsJywkYnVsa19pdGVtcyldKTsKICAgICRzcWwgPSAkZmFjdG9yeS0+Z2VuZXJhdGVfcXVlcnkoJHF1ZXJ5KTsKICAgICRyZXMgPSAkY29tcGFueV9tYW5hZ2VyLT5sb2FkX2J5X3F1ZXJ5KCRzcWwpOwoKICAgIHN3aXRjaCgkYnVsa19hY3Rpb24pIHsKICAgIGNhc2UgJ2RlbGV0ZSc6CiAgICAgICAgJG5kZWwgPSAwOwogICAgICAgIGZvcmVhY2goICRyZXMgYXMgJG9uZSApIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICRjb21wYW55X21hbmFnZXItPmRlbGV0ZSgkb25lKTsKICAgICAgICAgICAgICAgICRuZGVsKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICBjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfYnVsa2RlbCcsJG5kZWwpKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICdwdWJsaXNoJzoKICAgICAgICBmb3JlYWNoKCAkcmVzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRvbmUgPSAkb25lLT53aXRoKCdzdGF0dXMnLCdwdWJsaXNoZWQnKTsKICAgICAgICAgICAgJGNvbXBhbnlfbWFuYWdlci0+c2F2ZSgkb25lKTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnZGlzYWJsZSc6CiAgICAgICAgZm9yZWFjaCggJHJlcyBhcyAkb25lICkgewogICAgICAgICAgICAkb25lID0gJG9uZS0+d2l0aCgnc3RhdHVzJywnZGlzYWJsZWQnKTsKICAgICAgICAgICAgJGNvbXBhbnlfbWFuYWdlci0+c2F2ZSgkb25lKTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnY3JlYXRldXJscyc6CiAgICAgICAgJGhlbHBlciA9ICR0aGlzLT5nZXRfdXJsc2x1Z19oZWxwZXIoKTsKICAgICAgICAkbl9jcmVhdGVkID0gMDsKICAgICAgICBmb3JlYWNoKCAkcmVzIGFzICRjb21wYW55ICkgewogICAgICAgICAgICBpZiggJGNvbXBhbnktPnVybCApIGNvbnRpbnVlOwogICAgICAgICAgICAkbmV3X3VybCA9ICRoZWxwZXItPmdlbmVyYXRlX3VybCgkY29tcGFueS0+Y29tcGFueV9uYW1lKTsKICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgndXJsJywgJG5ld191cmwpOwogICAgICAgICAgICAkY29tcGFueV9tYW5hZ2VyLT5zYXZlKCRjb21wYW55KTsKICAgICAgICAgICAgJG5fY3JlYXRlZCsrOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2J1bGtfdXJsc2NyZWF0ZWQnLCRuX2NyZWF0ZWQpKTsKICAgICAgICBicmVhazsKCiAgICBkZWZhdWx0OgogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICAgIH0KICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwp9CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgokY2F0ZWdvcmllcyA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpLT5nZXRfdHJlZSgpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXMnLCRjYXRlZ29yaWVzKTsKCi8vIERpc3BsYXkgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9jYXRlZ29yaWVzX3RhYi50cGwnKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_copy_company.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NvbXBhbmllcycpOwoKdHJ5IHsKICAgICRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJyk7CiAgICBpZiggJGNvbXBpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CgogICAgJGNvbXBhbnlfbWFuYWdlciA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCk7CiAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPmxvYWRfYnlfaWQoJGNvbXBpZCk7CiAgICAkbmV3X2NvbXBhbnkgPSAkY29tcGFueV9tYW5hZ2VyLT5jb3B5X2NvbXBhbnkoJGNvbXBhbnkpOwoKICAgIC8vIGFuZCByZWRpcmVjdCBzb21ld2hlcmUuCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2NvbXBhbnljb3BpZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9lZGl0X2NvbXBhbnknLCcnLFsnY29tcGlkJz0+JG5ld19jb21wYW55LT5pZF0pOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICR0aGlzLT5TZXRFcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKfQoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_company.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKCnRyeSB7CiAgICAkY29tcGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBpZCcpOwogICAgaWYoICRjb21waWQgPCAxICkgewogICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgIH0KCiAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY29tcGlkKTsKICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+ZGVsZXRlKCRjb21wYW55KTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdjb21wYW55ZGVsZXRlZCcpKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7Cn0KJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_del_category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCnRyeSB7CiAgICAkY2F0ZWdvcnlfbWFuYWdlciA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpOwogICAgJGNhdGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NhdGlkJyk7CiAgICBpZiggJGNhdGlkIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkY2F0ZWdvcnkgPSAkY2F0ZWdvcnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY2F0aWQpOwogICAgJGNhdGVnb3J5X21hbmFnZXItPmRlbGV0ZSgkY2F0ZWdvcnkpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2RlbGV0ZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCcnLCcnLCdhZG1pbl9zZXR0aW5ncycpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICR0aGlzLT5TZXRFcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoJycsJycsJ2FkbWluX3NldHRpbmdzJyk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.admin_del_fielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIGV4aXQ7CiR0aGlzLT5zZXRDdXJyZW50VGFiKCdmaWVsZGRlZnMnKTsKCnRyeSB7CiAgICAkZmllbGRkZWZfbWFuYWdlciA9ICR0aGlzLT5nZXRfZmllbGRkZWZfbWFuYWdlcigpOwoKICAgICRmZGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2ZkaWQnKTsKICAgIGlmKCAkZmRpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkZGVmID0gJGZpZWxkZGVmX21hbmFnZXItPmxvYWRfYnlfaWQoJGZkaWQpOwogICAgJGZpZWxkZGVmX21hbmFnZXItPmRlbGV0ZSgkZGVmKTsKCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnZmllbGRkZWZkZWxldGVkJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYignJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkZS0+R2V0TWVzc2FnZSgpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoJycsJycsJ2FkbWluX3NldHRpbmdzJyk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.admin_del_hier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3V0aWxzOwp1c2UgY2dlX3BhcmFtOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7Cgp0cnkgewoKICAgICRoaWVyYXJjaHlfbWFuYWdlciA9ICR0aGlzLT5nZXRfaGllcmFyY2h5X21hbmFnZXIoKTsKICAgICRoaWVyX2lkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2hpZXJpZCcpOwogICAgaWYoICRoaWVyX2lkIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkaGllcmFyY2h5ID0gJGhpZXJhcmNoeV9tYW5hZ2VyLT5sb2FkX2J5X2lkKCRoaWVyX2lkKTsKICAgICRoaWVyYXJjaHlfbWFuYWdlci0+ZGVsZXRlKCRoaWVyYXJjaHkpOwogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ21zZ19oaWVyZGVsZXRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoJycsJycsJ2FkbWluX3NldHRpbmdzJyk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYignJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3NldHVwOwp1c2UgY2dlX2RpcjsKdXNlIGNnX2ZpbGV1cGxvYWQ7CmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKdHJ5IHsKCiAgICBpZiggY2dlX3BhcmFtOjpleGlzdHMoJF9QT1NULCdjYW5jZWwnKSApIHsKICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnb3BfY2FuY2VsbGVkJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CiAgICB9CgogICAgJGNhdGVnb3J5X21hbmFnZXIgPSAkdGhpcy0+Z2V0X2NhdGVnb3J5X21hbmFnZXIoKTsKICAgICRjYXRlZ29yeSA9ICRjYXRlZ29yeV9tYW5hZ2VyLT5jcmVhdGVfY2F0ZWdvcnkoKTsKICAgIGlmKCAoJGNhdGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NhdGlkJykpID4gMCApIHsKICAgICAgICAkY2F0ZWdvcnkgPSAkY2F0ZWdvcnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY2F0aWQpOwogICAgfQoKICAgIGlmKCAhZW1wdHkoJF9QT1NUKSApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkY2F0ZWdvcnkgPSAkY2F0ZWdvcnktPndpdGgoJ25hbWUnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ25hbWUnKSkpOwogICAgICAgICAgICAkY2F0ZWdvcnkgPSAkY2F0ZWdvcnktPndpdGgoJ3BhcmVudF9pZCcsIGNnZV9wYXJhbTo6Z2V0X2ludCgkX1BPU1QsJ3BhcmVudF9pZCcpKTsKICAgICAgICAgICAgJGNhdGVnb3J5ID0gJGNhdGVnb3J5LT53aXRoKCdkZXNjcmlwdGlvbicsIGNnZV9wYXJhbTo6Z2V0X2h0bWwoJF9QT1NULCdkZXNjcmlwdGlvbicpKTsKICAgICAgICAgICAgJGNhdGVnb3J5ID0gJGNhdGVnb3J5LT53aXRoKCdleHRyYTEnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ2V4dHJhMScpKSk7CiAgICAgICAgICAgICRjYXRlZ29yeSA9ICRjYXRlZ29yeS0+d2l0aCgnZXh0cmEyJywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCdleHRyYTInKSkpOwogICAgICAgICAgICAkY2F0ZWdvcnkgPSAkY2F0ZWdvcnktPndpdGgoJ2V4dHJhMycsIGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwnZXh0cmEzJykpKTsKCiAgICAgICAgICAgIGlmKCAkY2F0ZWdvcnktPmlkID4gMCAmJiBjZ2VfcGFyYW06OmdldF9pbnQoJF9QT1NULCdkZWxpbWFnZScpICYmICRjYXRlZ29yeS0+aW1hZ2UgKSB7CiAgICAgICAgICAgICAgICAkcGF0aCA9ICRjYXRlZ29yeV9tYW5hZ2VyLT5nZXRfY2F0ZWdvcnlfcGF0aCgkY2F0ZWdvcnktPmlkKS4nLycuJGNhdGVnb3J5LT5pbWFnZTsKICAgICAgICAgICAgICAgICRyZXMgPSB1bmxpbmsoJHBhdGgpOwogICAgICAgICAgICAgICAgaWYoICRyZXMgKSAkY2F0ZWdvcnkgPSAkY2F0ZWdvcnktPndpdGgoJ2ltYWdlJywgbnVsbCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHNhdmUgaXQgc28gd2UgaGF2ZSBhbiBpZC4KICAgICAgICAgICAgJGNhdGVnb3J5ID0gJGNhdGVnb3J5X21hbmFnZXItPnNhdmUoJGNhdGVnb3J5KTsKICAgICAgICAgICAgJGRlc3RkaXIgPSAkY2F0ZWdvcnlfbWFuYWdlci0+Z2V0X2NhdGVnb3J5X3BhdGgoJGNhdGVnb3J5KTsKICAgICAgICAgICAgJHVwbG9hZGVyID0gY2dlX3NldHVwOjpnZXRfdXBsb2FkZXIoJycsICRkZXN0ZGlyKTsKICAgICAgICAgICAgJHRtcCA9ICR1cGxvYWRlci0+Y2hlY2tfdXBsb2FkKCdpbWFnZScsbnVsbCwgZmFsc2UpOwogICAgICAgICAgICBpZiggISR0bXAgJiYgJHVwbG9hZGVyLT5nZXRfZXJyb3IoKSAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkdXBsb2FkZXItPmdldF9lcnJvcigpKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKICAgICAgICAgICAgJGltYWdlID0gJHVwbG9hZGVyLT5oYW5kbGVfdXBsb2FkKCdpbWFnZScpOwogICAgICAgICAgICBpZiggISRpbWFnZSAmJiAkdXBsb2FkZXItPmdldF9lcnJvcigpICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbiggJHRoaXMtPkdldFVwbG9hZEVycm9yTWVzc2FnZSgkdXBsb2FkZXItPmdldF9lcnJvcigpKSApOwogICAgICAgICAgICBpZiggJGltYWdlICkgewogICAgICAgICAgICAgICAgJGNhdGVnb3J5ID0gJGNhdGVnb3J5LT53aXRoKCdpbWFnZScsJGltYWdlKTsKICAgICAgICAgICAgICAgICRjYXRlZ29yeV9tYW5hZ2VyLT5zYXZlKCRjYXRlZ29yeSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY2F0ZWdvcnlzYXZlZCcpKTsKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYignJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CgogICAgJGFsbF9jYXRlZ29yaWVzID0gJGNhdGVnb3J5X21hbmFnZXItPmdldF9saXN0KCk7CiAgICBpZiggISRhbGxfY2F0ZWdvcmllcyApICRhbGxfY2F0ZWdvcmllcyA9IFtdOwogICAgJGNhdGVnb3J5X2xpc3QgPSBbLTE9PiR0aGlzLT5MYW5nKCdub25lJyldICsgJGFsbF9jYXRlZ29yaWVzOwogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9jYXRlZ29yeS50cGwnKTsKICAgICR0cGwtPmFzc2lnbignY2F0ZWdvcnknLCRjYXRlZ29yeSk7CiAgICAkdHBsLT5hc3NpZ24oJ2NhdGVnb3J5X2xpc3QnLCAkY2F0ZWdvcnlfbGlzdCk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgJHRoaXMtPlNldEVycm9yKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYignJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_company.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwp1c2UgY2RfdXRpbHM7CgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ29tcGFueSBEaXJlY3RvcnknKSkgcmV0dXJuOwoKdHJ5IHsKICAgICRoYXZlX2FsYnVtX2ZpZWxkID0gbnVsbDsKICAgICRjb21wYW55X21hbmFnZXIgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpOwogICAgaWYoIGNnZV9wYXJhbTo6ZXhpc3RzKCRfUE9TVCwnY2FuY2VsJykgKSB7CiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wX2NhbmNlbGxlZCcpKTsKICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICB9CiAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPmNyZWF0ZV9uZXdfY29tcGFueSgpOwogICAgaWYoICgkY29tcGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBpZCcpKSApIHsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPmxvYWRfYnlfaWQoJGNvbXBpZCk7CiAgICB9CiAgICAkZmllbGRkZWZzID0gJHRoaXMtPmdldF9maWVsZGRlZl9tYW5hZ2VyKCktPmxvYWRfYWxsKCk7CiAgICAkY2F0ZWdvcmllcyA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpLT5nZXRfdHJlZSgpOwogICAgJGhpZXJhcmNoeV9saXN0ID0gJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpLT5nZXRfbGlzdCgpID86IFtdOwoKICAgIGlmKCAhZW1wdHkoJF9QT1NUKSApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyB0b2RvOiBjaGVjayBjc3JmCgogICAgICAgICAgICAvLyBmaWxsIGluIHRoZSB0aGUgY29tcGFueQogICAgICAgICAgICAkZ3VpZCA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnZ3VpZCcpOwogICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdjb21wYW55X25hbWUnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ2NvbXBhbnlfbmFtZScpKSk7CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2FkZHJlc3MnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsICdhZGRyZXNzJykpKTsKICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgndGVsZXBob25lJywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCAndGVsZXBob25lJykpKTsKICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnZmF4JywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCAnZmF4JykpKTsKICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnY29udGFjdF9lbWFpbCcsIGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwnY29udGFjdF9lbWFpbCcpKSk7CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ3dlYnNpdGUnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ3dlYnNpdGUnKSkpOwogICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdkZXRhaWxzJywgY2dlX3BhcmFtOjpnZXRfaHRtbCgkX1BPU1QsJ2RldGFpbHMnKSk7CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2xhdGl0dWRlJywgY2dlX3BhcmFtOjpnZXRfZmxvYXQoJF9QT1NULCAnbGF0aXR1ZGUnKSk7CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2xvbmdpdHVkZScsIGNnZV9wYXJhbTo6Z2V0X2Zsb2F0KCRfUE9TVCwgJ2xvbmdpdHVkZScpKTsKICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnaGllcl9pZCcsIGNnZV9wYXJhbTo6Z2V0X2ludCgkX1BPU1QsICdoaWVyX2lkJykpOwogICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdzdGF0dXMnLCBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCdzdGF0dXMnKSk7CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ3VybCcsIGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwgJ3VybCcpKSk7CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ293bmVyX2lkJywgY2dlX3BhcmFtOjpnZXRfaW50KCRfUE9TVCwnb3duZXJfaWQnKSk7CgogICAgICAgICAgICAvLyBmaWVsZHMgKHRoYXQgYXJlIG5vdCBmaWxlIGZpZWxkcykKICAgICAgICAgICAgJG9sZGZpZWxkcyA9ICRjb21wYW55LT5maWVsZHM7ICAvLyBwcmVzZXJ2ZSB0aGlzIGZvciBjb21wYXJpc29uIGxhdGVyLgogICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT5jbGVhckZpZWxkcygpOwogICAgICAgICAgICBpZiggIWVtcHR5KCRmaWVsZGRlZnMpICkgewogICAgICAgICAgICAgICAgYXJyYXlfd2FsaygkZmllbGRkZWZzLCBmdW5jdGlvbigkZGVmKSB1c2UgKCYkY29tcGFueSkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYW5kbGUgaW1hZ2UgYW5kIGZpbGUgZmllbGRzIGJlbG93bgogICAgICAgICAgICAgICAgICAgICAgICBpZiggJGRlZi0+dHlwZSA9PSAnZmlsZScgfHwgJGRlZi0+dHlwZSA9PSAnaW1hZ2UnICkgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAka2V5ID0gJ2ZpZWxkXycuJGRlZi0+aWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsICRrZXkpICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9IGNnZV91dGlsczo6Z2V0X3BhcmFtKCRfUE9TVCwgJGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHZhbCkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9IGFycmF5X21hcChmdW5jdGlvbigkaXRlbSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkaXRlbSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiggJGRlZi0+dHlwZSA9PSAndGV4dGFyZWEnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSBjZ2VfcGFyYW06OmdldF9odG1sKCRfUE9TVCwgJGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhZW1wdHkoJHZhbCkgKSAkY29tcGFueSA9ICRjb21wYW55LT53aXRoRmllbGQoJGRlZi0+aWQsICR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBjYXRlZ29yaWVzCiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPmNsZWFyQ2F0ZWdvcmllcygpOwogICAgICAgICAgICBhcnJheV93YWxrKCRfUE9TVCwgZnVuY3Rpb24oJHZhbCwgJGtleSkgdXNlICgmJGNvbXBhbnkpIHsKICAgICAgICAgICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgka2V5LCAnY2F0XycpICYmICFzdGFydHN3aXRoKCRrZXksJ2NhdF9leHRyYScpICkgewogICAgICAgICAgICAgICAgICAgICAgICAkY2F0aWQgPSAoaW50KSBzdWJzdHIoJGtleSw0KTsKICAgICAgICAgICAgICAgICAgICAgICAgJGV4dHJhMSA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwgJ2NhdF9leHRyYTFfJy4kY2F0aWQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGV4dHJhMiA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwgJ2NhdF9leHRyYTJfJy4kY2F0aWQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGV4dHJhMyA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwgJ2NhdF9leHRyYTNfJy4kY2F0aWQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aENhdGVnb3J5KCRjYXRpZCwgJGV4dHJhMSwgJGV4dHJhMiwgJGV4dHJhMyApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gdmFsaWRhdGlvbgoKICAgICAgICAgICAgLy8gaGFuZGxlIGZpbGUvaW1hZ2UgYmFzZWQgZmllbGRzLgogICAgICAgICAgICAkbmV3X2ZpbGVzID0gJHRvX2RlbGV0ZSA9IG51bGw7CiAgICAgICAgICAgIGlmKCAoJHRtcF9sb2dvID0gY2dlX3BhcmFtOjpnZXRfZW1wdHlfc3RyaW5nKCRfUE9TVCwnbG9nb19sb2NhdGlvbicpKSApIHsKICAgICAgICAgICAgICAgIC8vIGhhdmUgYSBuZXcgdmFsdWUKICAgICAgICAgICAgICAgIC8vIGNoZWNrIGl0cyB0eXBlIGFuZCBleHRlbnNpb25zCiAgICAgICAgICAgICAgICBpZiggJHRtcF9sb2dvICE9ICRjb21wYW55LT5sb2dvX2xvY2F0aW9uICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAkY29tcGFueS0+bG9nb19sb2NhdGlvbiApICR0b19kZWxldGVbXSA9ICRjb21wYW55LT5sb2dvX2xvY2F0aW9uOwogICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2xvZ29fbG9jYXRpb24nLCBiYXNlbmFtZSgkdG1wX2xvZ28pKTsKICAgICAgICAgICAgICAgICAgICAkbmV3X2ZpbGVzW10gPSAkdG1wX2xvZ287CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiggJGNvbXBhbnktPmxvZ29fbG9jYXRpb24gKSB7CiAgICAgICAgICAgICAgICAvLyBoYXZlIG5vIHZhbHVlLCBidXQgaGF2ZSBhbiBvbGQgdmFsdWUKICAgICAgICAgICAgICAgICR0b19kZWxldGVbXSA9ICRjb21wYW55LT5sb2dvX2xvY2F0aW9uOwogICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnbG9nb19sb2NhdGlvbicsIG51bGwpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggKCR0bXBfcGljdHVyZSA9IGNnZV9wYXJhbTo6Z2V0X2VtcHR5X3N0cmluZygkX1BPU1QsJ3BpY3R1cmVfbG9jYXRpb24nKSkgKSB7CiAgICAgICAgICAgICAgICAvLyBoYXZlIGEgbmV3IHZhbHVlCgogICAgICAgICAgICAgICAgLy8gY2hlY2sgaXRzIHR5cGUgYW5kIGV4dGVuc2lvbnMKICAgICAgICAgICAgICAgIGlmKCAkdG1wX3BpY3R1cmUgIT0gJGNvbXBhbnktPnBpY3R1cmVfbG9jYXRpb24gKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRjb21wYW55LT5waWN0dXJlX2xvY2F0aW9uICkgJHRvX2RlbGV0ZVtdID0gJGNvbXBhbnktPnBpY3R1cmVfbG9jYXRpb247CiAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgncGljdHVyZV9sb2NhdGlvbicsIGJhc2VuYW1lKCR0bXBfcGljdHVyZSkpOwogICAgICAgICAgICAgICAgICAgICRuZXdfZmlsZXNbXSA9ICR0bXBfcGljdHVyZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmKCAkY29tcGFueS0+cGljdHVyZV9sb2NhdGlvbiApIHsKICAgICAgICAgICAgICAgIC8vIGhhdmUgbm8gdmFsdWUsIGJ1dCBoYXZlIGFuIG9sZCB2YWx1ZQogICAgICAgICAgICAgICAgJHRvX2RlbGV0ZVtdID0gJGNvbXBhbnktPnBpY3R1cmVfbG9jYXRpb247CiAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdwaWN0dXJlX2xvY2F0aW9uJywgbnVsbCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZmllbGRkZWZzKSApIHsKICAgICAgICAgICAgICAgIGFycmF5X3dhbGsoJGZpZWxkZGVmcyxmdW5jdGlvbigkZGVmKSB1c2UgKCYkY29tcGFueSwgJiRuZXdfZmlsZXMsICYkdG9fZGVsZXRlLCAkb2xkZmllbGRzKXsKICAgICAgICAgICAgICAgICAgICAgICAgJG9sZF92YWx1ZSA9IChpc3NldCgkb2xkZmllbGRzWyRkZWYtPmlkXSkpID8gJG9sZGZpZWxkc1skZGVmLT5pZF0gOiBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJGRlZi0+dHlwZSA9PSAnYWxidW0nICYmICRvbGRfdmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3ZSByZXN0b3JlIHRoZSBhbGJ1bSBmaWVsZCB2YWx1ZSBiZWNhdXNlIGFsYnVtcyBhcmUgZWRpdGVkIGluIGEgZGlmZmVyZW50IGFjdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHRoZSB2YWx1ZSBoYXMgYmVlbiBjbGVhcmVkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aEZpZWxkKCRkZWYtPmlkLCAkb2xkX3ZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiggJGRlZi0+dHlwZSAhPSAnaW1hZ2UnICYmICRkZWYtPnR5cGUgIT0gJ2ZpbGUnICkgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICAka2V5ID0gJ2ZpZWxkXycuJGRlZi0+aWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAoJG5ld192YWwgPSBjZ2VfcGFyYW06OmdldF9lbXB0eV9zdHJpbmcoJF9QT1NULCRrZXkpKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYSBuZXcgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNoZWNrIGl0cyB0eXBlIGFuZCBleHRlbnNpb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9sZF92YWx1ZSAhPSAkbmV3X3ZhbCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJG9sZF92YWx1ZSApICR0b19kZWxldGVbXSA9ICRvbGRfdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aEZpZWxkKCRkZWYtPmlkLCBiYXNlbmFtZSgkbmV3X3ZhbCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfZmlsZXNbXSA9ICRuZXdfdmFsOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIHRvIHJlc2V0IHRoZSBvbGQgdmFsdWUsIGJlY2F1c2Ugd2UgaGF2ZSBjbGVhcmVkIGZpZWxkcy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoRmllbGQoJGRlZi0+aWQsICRvbGRfdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRvbGRfdmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIG5vIHZhbHVlLCBidXQgaGF2ZSBhbiBvbGQgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0b19kZWxldGVbXSA9ICRvbGRfdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoRmllbGQoJGRlZi0+aWQsIG51bGwpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIHNhdmUgaXQgb25jZSwgc28gd2UgaGF2ZSBhbiBpZC4KICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueV9tYW5hZ2VyLT5zYXZlKCRjb21wYW55KTsKCiAgICAgICAgICAgIC8vIGNsZWFyIHRoZSBvcmlnX3VwbG9hZHMKICAgICAgICAgICAgaWYoICFlbXB0eSgkdG9fZGVsZXRlKSkgJGNvbXBhbnlfbWFuYWdlci0+ZGVsZXRlX2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICR0b19kZWxldGUpOwoKICAgICAgICAgICAgLy8gY29weSB0aGUgdG1wL25ldyBmaWxlcyB0byB0aGVpciBkZXN0aW5hdGlvbnMKICAgICAgICAgICAgaWYoICFlbXB0eSgkbmV3X2ZpbGVzKSkgJGNvbXBhbnlfbWFuYWdlci0+Y29weV9jb21wYW55X2ZpbGVzKCRjb21wYW55LCAkbmV3X2ZpbGVzKTsKCiAgICAgICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY29tcGFueXNhdmVkJykpOwogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KCiAgICBpZiggIWVtcHR5KCRmaWVsZGRlZnMpICkgewogICAgICAgIGZvcmVhY2goJGZpZWxkZGVmcyBhcyAkZGVmKSB7CiAgICAgICAgICAgIGlmKCAkZGVmLT50eXBlID09ICdhbGJ1bScgKSB7CiAgICAgICAgICAgICAgICAkaGF2ZV9hbGJ1bV9maWVsZCA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfY29tcGFueS50cGwnKTsKICAgICR0cGwtPmFzc2lnbignY2FuX2dlb2NvZGUnLCAkdGhpcy0+aGF2ZV9nZW9jb2RlcigpKTsKICAgICR0cGwtPmFzc2lnbigncmVxX2d1aWQnLCBjZ2VfdXRpbHM6OmNyZWF0ZV9ndWlkKCkpOwogICAgJHRwbC0+YXNzaWduKCdjb21wYW55JywgJGNvbXBhbnkpOwogICAgJHRwbC0+YXNzaWduKCdmaWVsZGRlZnMnLCAgJGZpZWxkZGVmcyk7CiAgICAkdHBsLT5hc3NpZ24oJ2NhdGVnb3JpZXMnLCAkY2F0ZWdvcmllcyk7CiAgICAkdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeV9saXN0JywgWycnID0+ICR0aGlzLT5MYW5nKCdub25lJyldICsgJGhpZXJhcmNoeV9saXN0KTsKICAgICR0cGwtPmFzc2lnbignaGF2ZV9hbGJ1bV9maWVsZCcsICRoYXZlX2FsYnVtX2ZpZWxkKTsKICAgICR0cGwtPmFzc2lnbignc3RhdHVzX2xpc3QnLCBbJ2RyYWZ0Jz0+JHRoaXMtPkxhbmcoJ2RyYWZ0JyksICdwdWJsaXNoZWQnPT4kdGhpcy0+TGFuZygncHVibGlzaGVkJyksICdkaXNhYmxlZCc9PiR0aGlzLT5MYW5nKCdkaXNhYmxlZCcpXSApOwogICAgJHRwbC0+YXNzaWduKCd1cmxfcmVxdWlyZWQnLCAkdGhpcy0+Z2V0X3NldHRpbmdzKCktPnVybF9yZXF1aXJlZCk7CiAgICAkdHBsLT5hc3NpZ24oJ3VzZXJzJywgWycnPT4kdGhpcy0+TGFuZygnbm9uZScpXSArIGNkX3V0aWxzOjpnZXRfZmV1X3VzZXJzKCkpOwogICAgJHRwbC0+YXNzaWduKCd1c2Vfd3lzaXd5ZycsICR0aGlzLT5nZXRfc2V0dGluZ3MoKS0+YWRtaW53eXNpd3lnKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_company_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIHJldHVybjsKCnRyeSB7CiAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKICAgICRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJyk7CiAgICBpZiggJGNvbXBpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdtaXNzaW5nIHBhcmFtJyk7CiAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPmxvYWRfYnlfaWQoJGNvbXBpZCk7CiAgICAkZmllbGRkZWZzID0gJHRoaXMtPmdldF9maWVsZGRlZl9tYW5hZ2VyKCktPmxvYWRfYWxsKCk7CiAgICBpZiggZW1wdHkoJGZpZWxkZGVmcykgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBmaWVsZCBkZWZpbml0aW9ucycpOwogICAgJGZkaWQgPSAkZmxkZGVmID0gbnVsbDsKICAgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGRlZiApIHsKICAgICAgICBpZiggJGRlZi0+dHlwZSA9PSAnYWxidW0nICkgewogICAgICAgICAgICAkZmRpZCA9ICRkZWYtPmlkOwogICAgICAgICAgICAkZmxkZGVmID0gJGRlZjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgaWYoICRmZGlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ05vIGFsYnVtIGZvdW5kJyk7CiAgICAkYWxidW1kaXIgPSAkY29tcGFueV9tYW5hZ2VyLT5nZXRfY29tcGFueV9maWxlX3BhdGgoJGNvbXBhbnktPmlkKS4nL2FsYnVtXycuJGZkaWQ7CgogICAgLy8gZGlzcGxheSB0aGUgdGVtcGxhdGUKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfY29tcGFueV9hbGJ1bS50cGwnKTsKICAgICR0cGwtPmFzc2lnbignY29tcGFueScsICRjb21wYW55KTsKICAgICR0cGwtPmFzc2lnbignZmllbGRkZWYnLCAkZmxkZGVmKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYigpOwp9]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_fielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIGV4aXQ7CiR0aGlzLT5zZXRDdXJyZW50VGFiKCdmaWVsZGRlZnMnKTsKCnRyeSB7CiAgICAkZmllbGRkZWZfbWFuYWdlciA9ICR0aGlzLT5nZXRfZmllbGRkZWZfbWFuYWdlcigpOwogICAgJGRlZiA9ICRmaWVsZGRlZl9tYW5hZ2VyLT5jcmVhdGVfZmllbGRkZWYoKTsKICAgIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJ2NhbmNlbCcpICkgewogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcF9jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYignJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKICAgIH0KCiAgICBpZiggKCRmZGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2ZkaWQnKSkgPiAwICkgewogICAgICAgICRkZWYgPSAkZmllbGRkZWZfbWFuYWdlci0+bG9hZF9ieV9pZCgkZmRpZCk7CiAgICB9CgogICAgaWYoICFlbXB0eSgkX1BPU1QpICkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRkZWYgPSAkZGVmLT53aXRoKCduYW1lJywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCduYW1lJykpKTsKICAgICAgICAgICAgJGRlZiA9ICRkZWYtPndpdGgoJ3R5cGUnLCBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCd0eXBlJykpOwogICAgICAgICAgICAkZGVmID0gJGRlZi0+d2l0aCgnbWF4X2xlbmd0aCcsIGNnZV9wYXJhbTo6Z2V0X2ludCgkX1BPU1QsJ21heF9sZW5ndGgnKSk7CiAgICAgICAgICAgICRkZWYgPSAkZGVmLT53aXRoKCdhZG1pbl9vbmx5JywgY2dlX3BhcmFtOjpnZXRfYm9vbCgkX1BPU1QsJ2FkbWluX29ubHknKSk7CiAgICAgICAgICAgICRkZWYgPSAkZGVmLT53aXRoKCdkYXRhJywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCdkYXRhJykpKTsKICAgICAgICAgICAgJGRlZiA9ICRkZWYtPndpdGgoJ2Ryb3Bkb3duX2RhdGEnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ2Ryb3Bkb3duX2RhdGEnKSkpOwoKICAgICAgICAgICAgaWYoICRkZWYtPnR5cGUgPT0gJ2FsYnVtJyApIHsKICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSBvbmx5IGhhdmUgb25lIGFsYnVtIGZpZWxkCiAgICAgICAgICAgICAgICAkZmxkID0gJGZpZWxkZGVmX21hbmFnZXItPmdldF9maXJzdF9maWVsZF9vZl90eXBlKCdhbGJ1bScpOwogICAgICAgICAgICAgICAgaWYoICRmbGQgJiYgJGZsZC0+aWQgIT0gJGRlZi0+aWQgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRmaWVsZGRlZl9tYW5hZ2VyLT5zYXZlKCRkZWYpOwogICAgICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2ZpZWxkX3NhdmVkJykpOwogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3RUb2FkbWluVGFiKCcnLCcnLCdhZG1pbl9zZXR0aW5ncycpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CgogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZWRpdF9maWVsZGRlZi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignZmllbGRkZWYnLCAkZGVmKTsKICAgICR0cGwtPmFzc2lnbignZmllbGR0eXBlcycsICRmaWVsZGRlZl9tYW5hZ2VyLT5nZXRfZmllbGR0eXBlc19saXN0KCkpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICR0aGlzLT5TZXRNZXNzYWdlKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYignJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKfQ==]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_hier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3V0aWxzOwp1c2UgY2dlX3BhcmFtOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7Cgp0cnkgewoKICAgIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJ2NhbmNlbCcpICkgewogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcF9jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9BZG1pblRhYignJywnJywnYWRtaW5fc2V0dGluZ3MnKTsKICAgIH0KCiAgICAkaGllcl9tYW5hZ2VyID0gJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpOwogICAgJGhpZXJhcmNoeSA9ICRoaWVyX21hbmFnZXItPmNyZWF0ZV9oaWVyYXJjaHkoKTsKICAgIGlmKCAoJGhpZXJpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdoaWVyaWQnKSkgPiAwICkgewogICAgICAgICRoaWVyYXJjaHkgPSAkaGllcl9tYW5hZ2VyLT5sb2FkX2J5X2lkKCRoaWVyaWQpOwogICAgfQoKICAgIGlmKCAhZW1wdHkoJF9QT1NUKSApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkaGllcmFyY2h5ID0gJGhpZXJhcmNoeS0+d2l0aCgnbmFtZScsIGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwnbmFtZScpKSk7CiAgICAgICAgICAgICRoaWVyYXJjaHkgPSAkaGllcmFyY2h5LT53aXRoKCdwYXJlbnRfaWQnLCBjZ2VfcGFyYW06OmdldF9pbnQoJF9QT1NULCdwYXJlbnRfaWQnKSk7CiAgICAgICAgICAgICRoaWVyYXJjaHkgPSAkaGllcl9tYW5hZ2VyLT5zYXZlKCRoaWVyYXJjaHkpOwogICAgICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2hpZXJfc2F2ZWQnKSk7CiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoJycsJycsJ2FkbWluX3NldHRpbmdzJyk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH0KCiAgICAkYWxsX2hpZXIgPSAkaGllcl9tYW5hZ2VyLT5nZXRfbGlzdCgpOwogICAgaWYoICEkYWxsX2hpZXIgKSAkYWxsX2hpZXIgPSBbXTsKICAgICRoaWVyX2xpc3QgPSBbIC0xID0+ICR0aGlzLT5MYW5nKCdub25lJykgXSArICRhbGxfaGllcjsKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2VkaXRfaGllci50cGwnKTsKICAgICR0cGwtPmFzc2lnbignaGllcmFyY2h5JywgJGhpZXJhcmNoeSk7CiAgICAkdHBsLT5hc3NpZ24oJ2hpZXJfbGlzdCcsICRoaWVyX2xpc3QpOwogICAgJHRwbC0+ZGlzcGxheSgpOwoKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCcnLCcnLCdhZG1pbl9zZXR0aW5ncycpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_export_csv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcSG9va01hbmFnZXI7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZ2VfdXRpbHM7CnVzZSBjZF91dGlsczsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKCnRyeSB7CiAgICAkc3RyX3B1dGNzdiA9IGZ1bmN0aW9uKGFycmF5ICRkYXRhKSA6IHN0cmluZyB7CiAgICAgICAgIyBHZW5lcmF0ZSBDU1YgZGF0YSBmcm9tIGFycmF5CiAgICAgICAgJGZoID0gZm9wZW4oJ3BocDovL3RlbXAnLCAncncnKTsgIyBkb24ndCBjcmVhdGUgYSBmaWxlLCBhdHRlbXB0CiAgICAgICAgIyB0byB1c2UgbWVtb3J5IGluc3RlYWQKCiAgICAgICAgIyB3cml0ZSBvdXQgdGhlIGRhdGEKICAgICAgICBmcHV0Y3N2KCRmaCwgJGRhdGEpOwogICAgICAgIHJld2luZCgkZmgpOwogICAgICAgICRjc3YgPSBzdHJlYW1fZ2V0X2NvbnRlbnRzKCRmaCk7CiAgICAgICAgZmNsb3NlKCRmaCk7CgogICAgICAgIHJldHVybiAkY3N2OwogICAgfTsKCiAgICAkY3JlYXRlX2NvbXBhbnlfcXVlcnkgPSBmdW5jdGlvbihhcnJheSAkaW4pIDogU3FsUXVlcnkgewogICAgICAgICRzY3JpcHQgPSBbXTsKCiAgICAgICAgLy8gdGhpcyB0cmFuc2xhdGVzIGZsdGVyIGFyZ3VtZW50cyAod2hpY2ggbWF5IGhhdmUgY29tZSBmcm9tIHRoZSBmb3JtKSBpbnRvIGNkcXVlcnkgc3RhdHdlbWVudHMuCiAgICAgICAgLy8gdGhlbiBidWlsZHMgdGhlIHF1ZXJ5IGFuZCBwcm9jZXNzZXMgaXQgaW50byBhbiBTcWxRdWVyeQogICAgICAgIGZvcmVhY2goICRpbiBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIGlmKCBlbXB0eSgkdmFsKSApIGNvbnRpbnVlOwogICAgICAgICAgICAkZXhwciA9IG51bGw7CiAgICAgICAgICAgICRwYXJ0cyA9IGV4cGxvZGUoJzonLCRrZXkpOwogICAgICAgICAgICAkb3BlcmFuZCA9ICRwYXJ0c1swXTsKICAgICAgICAgICAgc3dpdGNoKCAkb3BlcmFuZCApIHsKICAgICAgICAgICAgY2FzZSAnYW5kJzoKICAgICAgICAgICAgY2FzZSAnb3InOgogICAgICAgICAgICAgICAgLy8gaWYgd2UgYXJlIHByb2Nlc3NpbmcgYSBjYXRlb2dyeSBvciBoaWVyYXJjaHkgc3RhdGVtZW50LCBhdXRvbWF0aWNhbGx5IGluY2x1ZGUgY2hpZGxyZW4KICAgICAgICAgICAgICAgIGlmKCBwcmVnX21hdGNoKCcvXihhbmR8b3IpXDooaGllcnxjYXRlZ29yeSlcOi8nLCAka2V5KSApIHsKICAgICAgICAgICAgICAgICAgICAkZXhwciA9ICRrZXkgLiAkdmFsIC4gJzoxJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYoIHByZWdfbWF0Y2goJy9eKGFuZHxvcilcOnN0YXR1c1w6KEVRfGVxKVw6LycsICRrZXkpICkgewogICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZS4uLiBzdGF0dXMgb2YgLTEgb3IgZW1wdHkgc3RhdHVzIG1lYW5zICdhbnknIGluIHRoaXMgZm9ybS4KICAgICAgICAgICAgICAgICAgICBpZiggZW1wdHkoJHZhbCkgfHwgKGludCkkdmFsIDwgMCApIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICRleHByID0gJGtleSAuICR2YWw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkZXhwciA9ICRrZXkgLiAkdmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3NvcnRieSc6CiAgICAgICAgICAgIGNhc2UgJ3NvcnRvcmRlcic6CiAgICAgICAgICAgICAgICAkZXhwciA9ICRrZXkgLiAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdvZmZzZXQnOgogICAgICAgICAgICBjYXNlICdsaW1pdCc6CiAgICAgICAgICAgICAgICAkZXhwciA9ICRrZXkgLiAoaW50KSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmKCAkZXhwciApICRzY3JpcHRbXSA9ICRleHByOwogICAgICAgIH07CgogICAgICAgICRmYWN0b3J5ID0gJHRoaXMtPmdldF9xdWVyeV9mYWN0b3J5KCk7CiAgICAgICAgJHF1ZXJ5ID0gJGZhY3RvcnktPmNyZWF0ZV9xdWVyeV9mcm9tX3N0YXRlbWVudHMoJHNjcmlwdCk7CiAgICAgICAgcmV0dXJuICRmYWN0b3J5LT5nZW5lcmF0ZV9xdWVyeSgkcXVlcnkpOwogICAgfTsKCiAgICAkbWFwID0gWwogICAgICAgICdjb21wYW55X25hbWUnLCAnYWRkcmVzcycsICd0ZWxlcGhvbmUnLCAnZmF4JywgJ2NvbnRhY3RfZW1haWwnLCAnd2Vic2l0ZScsICdkZXRhaWxzJywKICAgICAgICAnbGF0aXR1ZGUnLCAnbG9uZ2l0dWRlJywgJ3N0YXR1cycsICd1cmwnCiAgICAgICAgXTsKICAgICRmaWVsZHMgPSBudWxsOwogICAgewogICAgICAgICR0bXAgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+Z2V0X2xpc3QoKTsKICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkZmRpZCA9PiAkbmFtZSApIHsKICAgICAgICAgICAgICAgICRtYXBbXSA9ICdmOicuJG5hbWU7CiAgICAgICAgICAgICAgICAkZmllbGRzWyRuYW1lXSA9ICRmZGlkOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIG1hcDogIGNvbXBhbnlfbmFtZSwgYWRkcmVzcywgdGVsZXBob25lLCBmYXgsIGNvbnRhY3RfZW1haWwsIHdlYnNpdGUsIGRldGFpbHMsCiAgICAvLyAgICAgICBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBoaWVyX2lkLCBzdGF0dXMsIHVybCwgZjpuYW1lMSwgZjpuYW1lMiwgZjpuYW1lMywgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUKCiAgICAkdG9fYXJyYXkgPSBmdW5jdGlvbihDb21wYW55ICRjb21wYW55LCBhcnJheSAkbWFwKSB1c2UgKCRmaWVsZHMpIDogYXJyYXkgewogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGZvcmVhY2goICRtYXAgYXMgJGtleSApIHsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnZjonKSApIHsKICAgICAgICAgICAgICAgIC8vIGZpZWxkCiAgICAgICAgICAgICAgICAvLyBub3RlOiB2YWx1ZSBjYW4gYmUgYW4gYXJyYXkKICAgICAgICAgICAgICAgICRvdXRbJGtleV0gPSBudWxsOwogICAgICAgICAgICAgICAgJGZpZWxkX25hbWUgPSBzdWJzdHIoJGtleSwyKTsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkZmllbGRzWyRmaWVsZF9uYW1lXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJGZkaWQgPSAkZmllbGRzWyRmaWVsZF9uYW1lXTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJGNvbXBhbnktPmZpZWxkc1skZmRpZF0pICkgJG91dFska2V5XSA9ICRjb21wYW55LT5maWVsZHNbJGZkaWRdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJG91dFska2V5XSA9ICRjb21wYW55LT4ka2V5OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRvdXQgPSBhcnJheV92YWx1ZXMoJG91dCk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9OwogICAgJGNvbXBhbnlfdG9fY3N2ID0gZnVuY3Rpb24oQ29tcGFueSAkY29tcGFueSkgdXNlICgkbWFwLCYkc3RyX3B1dGNzdiwmJHRvX2FycmF5KSA6IHN0cmluZyB7CiAgICAgICAgJGFyciA9ICR0b19hcnJheSgkY29tcGFueSwkbWFwKTsKICAgICAgICByZXR1cm4gJHN0cl9wdXRjc3YoJGFycik7CiAgICB9OwoKICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydzYXZlZF9maWx0ZXInXSkgfHwgIWlzX2FycmF5KCRfU0VTU0lPTlsnc2F2ZWRfZmlsdGVyJ10pIHx8ICFjb3VudCgkX1NFU1NJT05bJ3NhdmVkX2ZpbHRlciddKSApIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGZpbHRlciBvZiBkYXRhIHRvIGV4cG9ydCcpOwogICAgfQoKICAgICRmaWx0ZXIgPSAkX1NFU1NJT05bJ3NhdmVkX2ZpbHRlciddOwogICAgJGZpbHRlclsnbGltaXQ6J10gPSAxMDAwOwoKICAgICRzcWwgPSAkY3JlYXRlX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CiAgICAkcmVzdWx0cyA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCktPmxvYWRfYnlfcXVlcnkoJHNxbCk7CiAgICBpZiggIWNvdW50KCRyZXN1bHRzKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ05vIHJlc3VsdHMgdG8gZXhwb3J0Jyk7CiAgICAvLyBvdXRwdXQgdGhlIGhlYWRlciBsaW5lLgogICAgJGFsbF9vdXRwdXQgPSAkc3RyX3B1dGNzdigkbWFwKTsKCiAgICAvLyB3ZSdyZSBvbmx5IGdvaW5nIHRvIGV4cG9ydCBjb21wYW5pZXMsIG5vdCBoaWVyYXJjaGllcyBvciBjYXRlZ29yaWVzLgogICAgJGZpbGVfaWR4ID0gMTsKICAgIHdoaWxlKCAkcmVzdWx0cy0+b2Zmc2V0IDwgJHJlc3VsdHMtPnRvdGFsICkgewogICAgICAgIGZvcmVhY2goICRyZXN1bHRzIGFzICRyZXN1bHQgKSB7CiAgICAgICAgICAgICRsaW5lID0gJGNvbXBhbnlfdG9fY3N2KCRyZXN1bHQpOwogICAgICAgICAgICBpZiggJGxpbmUgKSAkYWxsX291dHB1dCAuPSAkbGluZTsKICAgICAgICB9CgogICAgICAgIC8vIGdldCB0aGUgbmV4dCByZXN1bHRzCiAgICAgICAgJGZpbHRlclsnb2Zmc2V0OiddID0gJHJlc3VsdHMtPm9mZnNldCArICRyZXN1bHRzLT5saW1pdDsKICAgICAgICAkcXVlcnkgPSAkY3JlYXRlX2NvbXBhbnlfcXVlcnkoJGZpbHRlcik7CiAgICAgICAgJHJlc3VsdHMgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpLT5sb2FkX2J5X3F1ZXJ5KCRxdWVyeSk7CiAgICB9CiAgICAkZmlsZW5hbWUgPSAnY29tcGFueV9kaXJlY3RvcnlfZXhwb3J0Xycuc3RyZnRpbWUoJyVZLSVtLSVkLSVILSVNJykuJy5jc3YnOwogICAgY2dlX3V0aWxzOjpzZW5kX2RhdGFfYW5kX2V4aXQoJGFsbF9vdXRwdXQsJ3RleHQvY3N2JywgJGZpbGVuYW1lKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.admin_hier_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApIGV4aXQ7CgojUHV0IHRvZ2V0aGVyIGEgbGlzdCBvZiBjdXJyZW50IGNhdGVnb3JpZXMuLi4KJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5faGllcl90YWIudHBsJyk7CiRhbGxfaGllciA9ICR0aGlzLT5nZXRfaGllcmFyY2h5X21hbmFnZXIoKS0+Z2V0X3RyZWUoKTsKJHRwbC0+YXNzaWduKCdoaWVyJywkYWxsX2hpZXIpOwokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_csv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZ2VfdXRpbHM7Cgp0cnkgewogICAgJHByZWZzID0gJHRoaXMtPmdldF91c2VyX3ByZWZlcmVuY2VzKCk7CiAgICBpZiggY2dlX3BhcmFtOjpleGlzdHMoJF9QT1NULCdjYW5jZWwnKSApIHsKICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnb3BfY2FuY2VsbGVkJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgIH0KCiAgICAkc2V0dGluZ3MgPSAkcHJlZnMtPmdldCgnaW1wb3J0X3NldHRpbmdzJyk7CiAgICBpZiggISRzZXR0aW5ncyApICRzZXR0aW5ncyA9IChvYmplY3QpIFsKICAgICAgICAnZGVsaW1ldGVyJz0+JywnLCAnZW5jbG9zdXJlJz0+JyInLCAnc3RhdHVzJz0+J2RyYWZ0JywKICAgICAgICAnaGllcmFyY2h5Jz0+bnVsbCwgJ2NhdGVnb3J5Jz0+bnVsbCwgJ2dlb2NvZGUnPT5mYWxzZQogICAgXTsKCiAgICBpZiggY2dlX3BhcmFtOjpleGlzdHMoJF9QT1NULCdzY2FuJykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHNldHRpbmdzLT5kZWxpbWl0ZXIgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCAnZGVsaW1ldGVyJyk7CiAgICAgICAgICAgICRzZXR0aW5ncy0+ZW5jbG9zdXJlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwgJ2VuY2xvc3VyZScpOwogICAgICAgICAgICAkc2V0dGluZ3MtPnN0YXR1cyAgICA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsICdzdGF0dXMnKTsKICAgICAgICAgICAgJHNldHRpbmdzLT5oaWVyYXJjaHkgPSBjZ2VfcGFyYW06OmdldF9pbnQoJF9QT1NULCAnaGllcmFyY2h5Jyk7CiAgICAgICAgICAgICRzZXR0aW5ncy0+Y2F0ZWdvcnkgID0gY2dlX3BhcmFtOjpnZXRfaW50KCRfUE9TVCwgJ2NhdGVnb3J5Jyk7CiAgICAgICAgICAgICRzZXR0aW5ncy0+Z2VvY29kZSAgID0gJHRoaXMtPmhhdmVfZ2VvY29kZXIoKSAmJiBjZ2VfcGFyYW06OmdldF9ib29sKCRfUE9TVCwgJ2dlb2NvZGUnKTsKICAgICAgICAgICAgJHByZWZzLT5zZXQoJ2ltcG9ydF9zZXR0aW5ncycsICRzZXR0aW5ncyk7CgogICAgICAgICAgICBpZiggIWlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkgfHwgJF9GSUxFU1snZmlsZSddWydzaXplJ10gPT0gMCB8fCAkX0ZJTEVTWydmaWxlJ11bJ2Vycm9yJ10gIT0gMCApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXBsb2FkJykpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkX0ZJTEVTWydmaWxlJ11bJ3R5cGUnXSAhPSAndGV4dC9jc3YnICYmICRfRklMRVNbJ2ZpbGUnXVsndHlwZSddICE9ICd0ZXh0L3BsYWluJyApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfdXBsb2FkX2ZpbGV0eXBlJywgJF9GSUxFU1snZmlsZSddWyd0eXBlJ10pKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gY29weSB0aGUgZmlsZSB0byBhIHRlbXBvcmFyeSBsb2NhdGlvbgogICAgICAgICAgICAkZm4gPSB0ZW1wbmFtKFRNUF9DQUNIRV9MT0NBVElPTiwnY2RpJyk7CiAgICAgICAgICAgIEBjb3B5KCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSwgJGZuKTsKCiAgICAgICAgICAgIC8vIHJlZGlyZWN0IHRvIGFkbWluX2ltcG9ydF9jc3YyCiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2FkbWluX2ltcG9ydF9jc3YyJywkcmV0dXJuaWQsIFsnZmlsZSc9PmJhc2VuYW1lKCRmbildICk7CgogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICB9CgogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5faW1wb3J0X2Nzdi50cGwnKTsKICAgICR0cGwtPmFzc2lnbignc2V0dGluZ3MnLCAkc2V0dGluZ3MpOwogICAgJHRwbC0+YXNzaWduKCdzdGF0dXNlcycsIFsKICAgICAgICAgICAgICAgICAgICAgJ2RyYWZ0Jz0+JHRoaXMtPkxhbmcoJ2RyYWZ0JyksCiAgICAgICAgICAgICAgICAgICAgICdwdWJsaXNoZWQnPT4kdGhpcy0+TGFuZygncHVibGlzaGVkJyksCiAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlZCc9PiR0aGlzLT5MYW5nKCdkaXNhYmxlZCcpXSApOwogICAgJHRwbC0+YXNzaWduKCdoaWVyYXJjaHlfbGlzdCcsIFsnJyA9PiAkdGhpcy0+TGFuZygnbm9uZScpXSArICR0aGlzLT5nZXRfaGllcmFyY2h5X21hbmFnZXIoKS0+Z2V0X2xpc3QoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2NhdGVnb3J5X2xpc3QnLCBbJycgPT4gJHRoaXMtPkxhbmcoJ25vbmUnKV0gKyAkdGhpcy0+Z2V0X2NhdGVnb3J5X21hbmFnZXIoKS0+Z2V0X2xpc3QoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2hhdmVfZ2VvY29kZXInLCAkdGhpcy0+aGF2ZV9nZW9jb2RlcigpICk7CiAgICAkdHBsLT5hc3NpZ24oJ2R1cGxpY2F0ZV9uYW1lc19hbGxvd2VkJywgJHRoaXMtPmdldF9zZXR0aW5ncygpLT5hbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_csv2.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZ2VfdXRpbHM7Cgp0cnkgewogICAgJHByZWZzID0gJHRoaXMtPmdldF91c2VyX3ByZWZlcmVuY2VzKCk7CiAgICBpZiggY2dlX3BhcmFtOjpleGlzdHMoJF9QT1NULCdjYW5jZWwnKSApIHsKICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnb3BfY2FuY2VsbGVkJykpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdFRvQWRtaW5UYWIoKTsKICAgIH0KICAgICRzZXR0aW5ncyA9ICRwcmVmcy0+Z2V0KCdpbXBvcnRfc2V0dGluZ3MnKTsKICAgIGlmKCAhJHNldHRpbmdzICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ291bGQgbm90IHJlYWQgaW1wb3J0IHNldHRpbmdzIGZyb20gY2FjaGUnKTsKCiAgICAkc3RhcnRfcmVjb3JkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRfU0VTU0lPTiwnaW1wb3J0X3N0YXJ0X2luZGV4JywyKTsKICAgICRtYXAgPSBudWxsOwogICAgJGNvbXBhbnlfbWFuYWdlciA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCk7CiAgICAkZmlsZW5hbWUgPSAkZmlsZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnZmlsZScpOwogICAgaWYoICEkZmlsZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ01pc3NpbmcgZmlsZSBwYXJhbScpOwogICAgJGZpbGUgPSBUTVBfQ0FDSEVfTE9DQVRJT04uJy8nLiRmaWxlOwogICAgaWYoICFpc19maWxlKCRmaWxlKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGltcG9ydCBmaWxlJyk7CgogICAgaWYoIGNnZV9wYXJhbTo6ZXhpc3RzKCRfUE9TVCwnaW1wb3J0JykgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHN0YXJ0X3JlY29yZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkX1BPU1QsJ3N0YXJ0X3JlY29yZCcpOwogICAgICAgICAgICBpZiggIWlzc2V0KCRfUE9TVFsnbWFwJ10pIHx8ICFpc19hcnJheSgkX1BPU1RbJ21hcCddKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ01pc3NpbmcgbWFwJyk7CgogICAgICAgICAgICAvLyBub3cgZW5zdXJlIHdlIGhhdmUgYXQgbGVhc3QgYSBjb21wYW55IG5hbWUgZmllbGQgaW4gdGhlIG1hcC4KICAgICAgICAgICAgJG1hcCA9ICRfUE9TVFsnbWFwJ107CiAgICAgICAgICAgIGlmKCAhaW5fYXJyYXkoJ2NvbXBhbnlfbmFtZScsICRtYXApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJfaW1wb3J0X25vY29tcGFueW5hbWVfZmllbGQnKSk7CgogICAgICAgICAgICAvLyBzY2FuIGZvciBkdXBsaWNhdGUsIG5vbiBlbXB0eSB2YWx1ZXMKICAgICAgICAgICAgJHRtcCA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkbWFwIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgICAgIGlmKCAhJHZhbCApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoICR2YWwgIT0gJ2FkZHJlc3MnICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggaW5fYXJyYXkoJHZhbCwgJHRtcCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVfZmllbGQnLCR2YWwpKTsKICAgICAgICAgICAgfQoKCiAgICAgICAgICAgIC8vIGlmIHdlIHdhbnQgdG8gZG8gcHJvZ3Jlc3Mgc3R1ZmYgd2Ugd291bGQgaGF2ZSB0byBkaXNwbGF5IHNvbWV0aGluZyBoZXJlCgogICAgICAgICAgICAvLyBnZXQgdGhlIGxhcmdlc3Qgbm9uIGVtcHR5IGluZGV4IGluIHRoZSBtYXAKICAgICAgICAgICAgJGxuZSA9IG51bGw7CiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRtYXApOyAkaSsrICkgewogICAgICAgICAgICAgICAgaWYoICRtYXBbJGldICkgJGxuZSA9ICRpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZmggPSAkdGhpcy0+cmVhZF90ZXh0X2ZpbGUoJGZpbGUpOwogICAgICAgICAgICAkbGluZV9udW0gPSAwOwogICAgICAgICAgICAkZ2V0X2NzdiA9IGZ1bmN0aW9uKCRmaCwgJGRlbGltID0gJywnLCAkZW5jbCA9ICciJykgdXNlICgmJGxpbmVfbnVtKSB7CiAgICAgICAgICAgICAgICB3aGlsZSghZmVvZigkZmgpKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dCA9IGZnZXRjc3YoJGZoKTsKICAgICAgICAgICAgICAgICAgICAkbGluZV9udW0rKzsKICAgICAgICAgICAgICAgICAgICBpZiggY291bnQoJG91dCkgPT0gMSAmJiBpc3NldCgkb3V0WzBdKSAmJiBlbXB0eSgkb3V0WzBdKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIHlpZWxkICRvdXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CgogICAgICAgICAgICAkY3JlYXRlX2NvbXBhbnkgPSBmdW5jdGlvbihhcnJheSAkaW4pIHVzZSAoJiRsaW5lX251bSwgJG1hcCwgJGNvbXBhbnlfbWFuYWdlciwgJHNldHRpbmdzKSB7CiAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPmNyZWF0ZV9uZXdfY29tcGFueSgpOwogICAgICAgICAgICAgICAgaWYoICRzZXR0aW5ncy0+c3RhdHVzICkgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnc3RhdHVzJywgJHNldHRpbmdzLT5zdGF0dXMpOwogICAgICAgICAgICAgICAgaWYoICRzZXR0aW5ncy0+aGllcmFyY2h5ID4gMCApICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2hpZXJfaWQnLCAkc2V0dGluZ3MtPmhpZXJhcmNoeSk7CiAgICAgICAgICAgICAgICBpZiggJHNldHRpbmdzLT5jYXRlZ29yeSA+IDAgKSAkY29tcGFueSA9ICRjb21wYW55LT53aXRoQ2F0ZWdvcnkoJHNldHRpbmdzLT5jYXRlZ29yeSk7CiAgICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkbWFwKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICAgICAkZmllbGQgPSAkbWFwWyRpXTsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gJGluWyRpXSA/OiBudWxsOwogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJGZpZWxkICkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBhbnlfbmFtZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2NvbXBhbnlfbmFtZScsICR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdhZGRyZXNzJzoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UgYXBwcGVuZCB0aGVzZSB0aGluZ3MuCiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSB0cmltKCRjb21wYW55LT5hZGRyZXNzLiJcbiIuJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2FkZHJlc3MnLCAkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGVsZXBob25lJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgndGVsZXBob25lJywgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ZheCc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2ZheCcsICR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250YWN0X2VtYWlsJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnY29udGFjdF9lbWFpbCcsICR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICd3ZWJzaXRlJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnd2Vic2l0ZScsICR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdkZXRhaWxzJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnZGV0YWlscycsICR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICd1cmwnOgogICAgICAgICAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCd1cmwnLCAkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnc3RhdHVzJywgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2xhdGl0dWRlJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnbGF0aXR1ZGUnLCAkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbG9uZ2l0dWRlJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnbG9uZ2l0dWRlJywgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRmaWVsZCwnZjonKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmZGlkID0gKGludCkgc3Vic3RyKCRmaWVsZCwyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGhGaWVsZCgkZmRpZCwgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoICEkY29tcGFueS0+bGF0aXR1ZGUgJiYgISRjb21wYW55LT5sb25naXR1ZGUgJiYgJGNvbXBhbnktPmFkZHJlc3MgJiYgJHNldHRpbmdzLT5nZW9jb2RlICYmICR0aGlzLT5oYXZlX2dlb2NvZGVyKCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5nZXRfZ2VvY29kZXIoKS0+bG9jYXRlX2J5X3N0cmluZygkY29tcGFueS0+YWRkcmVzcyk7CiAgICAgICAgICAgICAgICAgICAgaWYoICRyZXMgJiYgJHJlcy0+Y29uZmlkZW5jZSA+IDAuNCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnbGF0aXR1ZGUnLCAkcmVzLT5sYXRpdHVkZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2xvbmdpdHVkZScsICRyZXMtPmxvbmdpdHVkZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuICRjb21wYW55OwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgQHNldF90aW1lX2xpbWl0KDkwMCk7IC8vIDE1IG1pbnV0ZXMKICAgICAgICAgICAgJHN0YXJ0X3RpbWUgPSB0aW1lKCk7CiAgICAgICAgICAgICRudW1fc2F2ZWQgPSAkcmVjb3JkX2luZGV4ID0gMDsKICAgICAgICAgICAgJGVycm9ycyA9IG51bGw7CiAgICAgICAgICAgIGZvcmVhY2goICRnZXRfY3N2KCRmaCwgJHNldHRpbmdzLT5kZWxpbWV0ZXIsICRzZXR0aW5ncy0+ZW5jbG9zdXJlKSBhcyAkcmVjb3JkICkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAkcmVjb3JkX2luZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgaWYoICRzdGFydF9yZWNvcmQgPiAwICYmICRzdGFydF9yZWNvcmQgPiAkcmVjb3JkX2luZGV4ICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY3JlYXRlX2NvbXBhbnkoJHJlY29yZCk7CiAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnlfbWFuYWdlci0+c2F2ZSgkY29tcGFueSk7CiAgICAgICAgICAgICAgICAgICAgJG51bV9zYXZlZCsrOwogICAgICAgICAgICAgICAgICAgIGlmKCB0aW1lKCkgLSAkc3RhcnRfdGltZSA+PSAxODAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRvIHRoaXMgdG8gdHJ5IHRvIGF2b2lkIGdhdGV3YXkgdGltZW91dHMgdGhhdCBkb24ndCBwcm92aWRlIGFueSBpbmZvcm1hdGlvbiBhcyB0byAnd2hlcmUnIGl0IHN0b3BwZWQKICAgICAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWydpbXBvcnRfc3RhcnRfcmVjb3JkJ10gPSAkcmVjb3JkX2luZGV4ICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxPdXRPZkJvdW5kc0V4Y2VwdGlvbignT3V0IG9mIHRpbWUsIGltcG9ydCBzdG9wcGVkLiAgTGFzdCBjb21wYW55IGltcG9ydGVkIHdhcyAnLiRjb21wYW55LT5jb21wYW55X25hbWUuJyByZWNvcmQgJy4kcmVjb3JkX2luZGV4KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCggXE91dE9mQm91bmRzRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9ICRlLT5HZXRNZXNzYWdlKCkuJyBhdCBsaW5lICcuJGxpbmVfbnVtOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yc1tdID0gJGUtPkdldE1lc3NhZ2UoKS4nIGF0IGxpbmUgJy4kbGluZV9udW07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmNsb3NlKCRmaCk7CgogICAgICAgICAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdhZG1pbl9pbXBvcnRfY3N2My50cGwnKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdlcnJvcnMnLCRlcnJvcnMpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ251bV9zYXZlZCcsICRudW1fc2F2ZWQpOwogICAgICAgICAgICAkdHBsLT5kaXNwbGF5KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIG5vdyByZWFkIHRoZSBmaXJzdCAxMCBsaW5lcy4KICAgICRmaCA9IGZvcGVuKCRmaWxlLCdydCcpOwogICAgc3RyZWFtX2ZpbHRlcl9hcHBlbmQoJGZoLCAnY2RfZml4X25ld2xpbmVzJyk7CiAgICAkbGluZXMgPSBudWxsOwogICAgJGxpbmVfbnVtID0gMDsKICAgIHdoaWxlKCAkbGluZV9udW0gPCA4ICkgewogICAgICAgICRsaW5lc1tdID0gZmdldGNzdigkZmgpOwogICAgICAgICRsaW5lX251bSsrOwogICAgfQogICAgZmNsb3NlKCRmaCk7CgogICAgLy8gY2hlY2sgbGluZSAwIC4uLiBzZWUgaWYgaXQgaXMgYSBtYXAuCiAgICAkZmllbGRkZWZzID0gJHRoaXMtPmdldF9maWVsZGRlZl9tYW5hZ2VyKCktPmdldF9saXN0KCk7CiAgICAkbGluZV8wID0gJGxpbmVzWzBdOwogICAgaWYoIGluX2FycmF5KCdjb21wYW55X25hbWUnLCRsaW5lXzApICYmIGluX2FycmF5KCdhZGRyZXNzJywkbGluZV8wKSAmJiBpbl9hcnJheSgnZGV0YWlscycsICRsaW5lXzApICkgewogICAgICAgIC8vIHllcCwgaXQncyBhIG1hcC4uLiBoYXZlIHRvIHRyYW5zbGF0ZSBmOm5hbWUgaW50byBmOmlkIHRob3VnaC4KICAgICAgICAkbWFwID0gbnVsbDsKICAgICAgICAkZmllbGRzX2J5X25hbWUgPSBbXTsKICAgICAgICBpZiggIWVtcHR5KCRmaWVsZGRlZnMpICkgewogICAgICAgICAgICAkZmllbGRzX2J5X25hbWUgPSBhcnJheV9mbGlwKCRmaWVsZGRlZnMpOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoKCAkbGluZV8wIGFzICRjb2wgKSB7CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRjb2wsJ2Y6JykgKSB7CiAgICAgICAgICAgICAgICBsaXN0KCwkZm5hbWUpID0gc3RyX2dldGNzdigkY29sLCc6JywnIicpOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRmaWVsZHNfYnlfbmFtZVskZm5hbWVdKSApICRtYXBbXSA9ICdmOicuJGZpZWxkc19ieV9uYW1lWyRmbmFtZV07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkbWFwW10gPSAkY29sOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICRjb2xzID0gWwogICAgICAgICcnID0+ICR0aGlzLT5MYW5nKCdpZ25vcmUnKSwKICAgICAgICAnY29tcGFueV9uYW1lJyA9PiAkdGhpcy0+TGFuZygnY29tcGFueW5hbWUnKS4nIConLAogICAgICAgICdhZGRyZXNzJyA9PiAkdGhpcy0+TGFuZygnYWRkcmVzcycpLicgKycsCiAgICAgICAgJ3RlbGVwaG9uZScgPT4gJHRoaXMtPkxhbmcoJ3RlbGVwaG9uZScpLAogICAgICAgICdmYXgnID0+ICR0aGlzLT5MYW5nKCdmYXgnKSwKICAgICAgICAnY29udGFjdF9lbWFpbCcgPT4gJHRoaXMtPkxhbmcoJ2VtYWlsdGV4dCcpLAogICAgICAgICd3ZWJzaXRlJyA9PiAkdGhpcy0+TGFuZygnd2Vic2l0ZScpLAogICAgICAgICdkZXRhaWxzJyA9PiAkdGhpcy0+TGFuZygnZGV0YWlscycpLAogICAgICAgICd1cmwnID0+ICR0aGlzLT5MYW5nKCd1cmwnKSwKICAgICAgICAnc3RhdHVzJyA9PiAkdGhpcy0+TGFuZygnc3RhdHVzJyksCiAgICAgICAgJ2xhdGl0dWRlJyA9PiAkdGhpcy0+TGFuZygnbGF0aXR1ZGUnKSwKICAgICAgICAnbG9uZ2l0dWRlJyA9PiAkdGhpcy0+TGFuZygnbG9uZ2l0dWRlJykKICAgICAgICBdOwogICAgZm9yZWFjaCgkZmllbGRkZWZzIGFzICRpZCA9PiAkbmFtZSkgewogICAgICAgICRjb2xzWydmOicuJGlkXSA9ICdGaWVsZDogJy4kbmFtZTsKICAgIH0KICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2ltcG9ydF9jc3YyLnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdmaWxlbmFtZScsICRmaWxlbmFtZSk7CiAgICAkdHBsLT5hc3NpZ24oJ2xpbmVzJywgJGxpbmVzKTsKICAgICR0cGwtPmFzc2lnbignY29sdW1ucycsICRjb2xzKTsKICAgICR0cGwtPmFzc2lnbignbmNvbHMnLCBjb3VudCgkbGluZXNbMF0pKTsKICAgICR0cGwtPmFzc2lnbignbmxpbmVzJywgY291bnQoJGxpbmVzKSk7CiAgICAkdHBsLT5hc3NpZ24oJ21hcCcsICRtYXApOwogICAgJHRwbC0+YXNzaWduKCdzdGFydF9yZWNvcmQnLCAkc3RhcnRfcmVjb3JkKTsKICAgICR0cGwtPmRpc3BsYXkoKTsKICAgIHJldHVybjsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.admin_import_kml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcSG9va01hbmFnZXI7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZ2VfdXRpbHM7CnVzZSBjZF91dGlsczsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjb21wYW5pZXMnKTsKCnRyeSB7CiAgICAvLwogICAgLy8gZnVuY3Rpb25zCiAgICAvLwogICAgZnVuY3Rpb24gX2dldF9jaGlsZG5vZGUoJiRwYXJlbnQsJG5vZGVuYW1lKQogICAgewogICAgICAgICRjaGlsZHJlbiA9ICRwYXJlbnQtPmNoaWxkTm9kZXM7CiAgICAgICAgZm9yZWFjaCggJGNoaWxkcmVuIGFzICRjaGlsZG5vZGUgKSB7CiAgICAgICAgICAgIGlmKCAkY2hpbGRub2RlLT5ub2RlTmFtZSA9PSAkbm9kZW5hbWUgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGNoaWxkbm9kZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gTlVMTDsKICAgIH0KCiAgICBmdW5jdGlvbiBfZ2V0X2NoaWxkbm9kZV92YWx1ZSgmJHBhcmVudCwkbm9kZW5hbWUpCiAgICB7CiAgICAgICAgJG9iID0gX2dldF9jaGlsZG5vZGUoJHBhcmVudCwkbm9kZW5hbWUpOwogICAgICAgIGlmKCBpc19vYmplY3QoJG9iKSApIHJldHVybiAkb2ItPm5vZGVWYWx1ZTsKICAgIH0KCiAgICAvLwogICAgLy8gaGFuZGxlIGZvcm0gZGF0YQogICAgLy8KICAgIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJ2NhbmNlbCcpICkgewogICAgICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcF9jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KICAgIGVsc2UgaWYoICFlbXB0eSgkX1BPU1QpICkgewogICAgICAgIHNldF90aW1lX2xpbWl0KDApOwoKICAgICAgICAkc3RhdHVzID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwnc3RhdHVzJyk7CiAgICAgICAgJHJlcXVpcmVfYWRkcmVzcyA9IGNnZV9wYXJhbTo6Z2V0X2Jvb2woJF9QT1NULCdyZXF1aXJlX2FkZHJlc3MnKTsKICAgICAgICAkY2hlY2tfZHVwbGljYXRlX25hbWUgPSBjZ2VfcGFyYW06OmdldF9ib29sKCRfUE9TVCwnY2hlY2tfZHVwbGljYXRlX25hbWUnKTsKICAgICAgICAkY2F0ZWdvcnkgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY2F0ZWdvcnknKTsKICAgICAgICAkaGllcmFyY2h5ID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2hpZXJhcmNoeScpOwogICAgICAgICRpbXBvcnRlZCA9IG51bGw7CgogICAgICAgICRuYW1lID0gJ2ttbGZpbGUnOwogICAgICAgIGlmKCAhaXNzZXQoJF9GSUxFUykgfHwKICAgICAgICAgICAgIWlzc2V0KCRfRklMRVNbJG5hbWVdKSB8fAogICAgICAgICAgICAkX0ZJTEVTWyRuYW1lXVsnZXJyb3InXSA+IDAgfHwKICAgICAgICAgICAgJF9GSUxFU1skbmFtZV1bJ3NpemUnXSA9PSAwICkgewogICAgICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX3VwbG9hZCcpKTsKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKICAgICAgICB9CgogICAgICAgICRkb2MgPSBuZXcgXERvbURvY3VtZW50KCk7CiAgICAgICAgJGRvYy0+bG9hZCgkX0ZJTEVTWyRuYW1lXVsndG1wX25hbWUnXSk7CiAgICAgICAgJHBsYWNlcyA9ICRkb2MtPmdldEVsZW1lbnRzQnlUYWdOYW1lKCdQbGFjZW1hcmsnKTsKICAgICAgICBpZiggJHBsYWNlcy0+bGVuZ3RoID09IDAgKSB7CiAgICAgICAgICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3Jfa21sX25vcGxhY2VtYXJrcycpKTsKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKICAgICAgICB9CgogICAgICAgICRjb21wYW55X21hbmFnZXIgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpOwogICAgICAgIGZvciggJGlkeCA9IDA7ICRpZHggPCAkcGxhY2VzLT5sZW5ndGg7ICRpZHgrKyApIHsKICAgICAgICAgICAgJG5vZGUgPSAkcGxhY2VzLT5pdGVtKCRpZHgpOwogICAgICAgICAgICBpZiggISRub2RlICkgY29udGludWU7CgogICAgICAgICAgICAkbmFtZSA9ICRhZGRyZXNzID0gJGRlc2NyaXB0aW9uID0gJGxhdGl0dWRlID0gJGxvbmdpdHVkZSA9ICRwaG9uZSA9IG51bGw7CiAgICAgICAgICAgICRuYW1lICAgICAgICA9IF9nZXRfY2hpbGRub2RlX3ZhbHVlKCRub2RlLCduYW1lJyk7CiAgICAgICAgICAgICRkZXNjcmlwdGlvbiA9IF9nZXRfY2hpbGRub2RlX3ZhbHVlKCRub2RlLCdkZXNjcmlwdGlvbicpOwogICAgICAgICAgICAkcGhvbmUgICAgICAgPSBfZ2V0X2NoaWxkbm9kZV92YWx1ZSgkbm9kZSwncGhvbmVudW1iZXInKTsKICAgICAgICAgICAgJGFkZHJlc3MgICAgID0gX2dldF9jaGlsZG5vZGUoJG5vZGUsJ2FkZHJlc3MnKTsKICAgICAgICAgICAgaWYoICRyZXF1aXJlX2FkZHJlc3MgJiYgISRhZGRyZXNzICkgewogICAgICAgICAgICAgICAgJGVycm9yc1tdID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ttbGltcG9ydF9ub2FkZHJlc3MnLCRpZHgpOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGdldCB0aGUgY29vcmRpbmF0ZXMuCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRfcG9pbnRfTiAgPSBfZ2V0X2NoaWxkbm9kZSgkbm9kZSwnUG9pbnQnKTsKICAgICAgICAgICAgICAgIGlmKCAhJF9wb2ludF9OICkgewogICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9rbWxpbXBvcnRfbm9wb2ludCcsJGlkeCk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkX2Nvb3Jkc19OICA9IF9nZXRfY2hpbGRub2RlKCRfcG9pbnRfTiwnY29vcmRpbmF0ZXMnKTsKICAgICAgICAgICAgICAgIGlmKCAhJF9jb29yZHNfTiApIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3Jfa21saW1wb3J0X25vcG9pbnQnLCRpZHgpOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGNvb3JkcyA9ICRfY29vcmRzX04tPm5vZGVWYWx1ZTsKICAgICAgICAgICAgICAgIGxpc3QoJGxvbmdpdHVkZSwkbGF0aXR1ZGUpID0gZXhwbG9kZSgnLCcsJGNvb3Jkcyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIGdvdCBlbm91Z2ggaW5mb3JtYXRpb24gdG8gYWRkIGEgbm9kZS4KICAgICAgICAgICAgaWYoICRuYW1lICYmICgkYWRkcmVzcyB8fCAoJGxhdGl0dWRlICYmICRsb25naXR1ZGUpKSApIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueV9tYW5hZ2VyLT5jcmVhdGVfbmV3X2NvbXBhbnkoKTsKICAgICAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdjb21wYW55X25hbWUnLCAkbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnYWRkcmVzcycsICRhZGRyZXNzKTsKICAgICAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdsYXRpdHVkZScsICRsYXRpdHVkZSk7CiAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnbG9uZ2l0dWRlJywgJGxvbmdpdHVkZSk7CiAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnaGllcl9pZCcsICRoaWVyYXJjaHkpOwogICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2RldGFpbHMnLCAkZGVzY3JpcHRpb24pOwogICAgICAgICAgICAgICAgICAgIGlmKCAkY2F0ZWdvcnkgPiAwICkgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aENhdGVnb3J5KCRjYXRlZ29yeSk7CiAgICAgICAgICAgICAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OlByb2Nlc3NLTUxDb21wYW55JywgWydjb21wYW55Jz0+JiRjb21wYW55XSApOwogICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+c2F2ZSgkY29tcGFueSk7CiAgICAgICAgICAgICAgICAgICAgJGltcG9ydGVkKys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSAkdGhpcy0+TGFuZygnZXJyb3Jfa21saW1wb3J0X2RiZXJyb3InLCRpZHgpLic6ICcuJGUtPkdldE1lc3NhZ2UoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gd29vdCwgZG9uZQogICAgICAgIGF1ZGl0KCcnLCR0aGlzLT5HZXROYW1lKCksJ0ltcG9ydGVkICcuJGltcG9ydGVkLicgY29tcGFuaWVzIGZyb20gS01MJyk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdmaW5pc2hlZCcsMSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdpbXBvcnRlZCcsJGltcG9ydGVkKTsKICAgICAgICBpZiggY291bnQoJGVycm9ycykgKSAkc21hcnR5LT5hc3NpZ24oJ2ltcG9ydF9lcnJvcnMnLCRlcnJvcnMpOwogICAgfQoKICAgIC8vCiAgICAvLyBidWlsZCB0aGUgZm9ybQogICAgLy8KICAgICRzbWFydHktPmFzc2lnbignYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcycsICR0aGlzLT5nZXRfc2V0dGluZ3MoKS0+YWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcyk7CiAgICAkc3RhdHVzZXMgPSBbCiAgICAgICAgJ3B1Ymxpc2hlZCc9PiR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKSwKICAgICAgICAnZHJhZnQnPT4kdGhpcy0+TGFuZygnZHJhZnQnKSwKICAgICAgICAnZGlzYWJsZWQnPT4kdGhpcy0+TGFuZygnZGlzYWJsZWQnKQogICAgICAgIF07CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N0YXR1c2VzJywgJHN0YXR1c2VzKTsKICAgICRzbWFydHktPmFzc2lnbignY2FuX2RvX2xvb2t1cHMnLDApOwogICAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeWxpc3QnLCBbJyc9PiR0aGlzLT5MYW5nKCdub25lJyldICsgJHRoaXMtPmdldF9jYXRlZ29yeV9tYW5hZ2VyKCktPmdldF9saXN0KCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdoaWVyYXJjaHlsaXN0JywgJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpLT5nZXRfbGlzdCgpKTsKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5faW1wb3J0X2ttbC50cGwnKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb0FkbWluVGFiKCk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/action.admin_order_fields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIGV4aXQ7CiR0aGlzLT5zZXRDdXJyZW50VGFiKCdmaWVsZGRlZnMnKTsKCnRyeSB7CiAgICAkZmllbGRkZWZfbWFuYWdlciA9ICR0aGlzLT5nZXRfZmllbGRkZWZfbWFuYWdlcigpOwogICAgaWYoIGVtcHR5KCRfUE9TVCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkb3JkZXIgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkX1BPU1QsJ29yZGVyJyk7CiAgICBpZiggZW1wdHkoJG9yZGVyKSB8fCAhaXNzZXQoJG9yZGVyWzBdKSB8fCAhc3RhcnRzd2l0aCgkb3JkZXJbMF0sJ2ZpZWxkXycpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJGZkbGlzdCA9ICRmaWVsZGRlZl9tYW5hZ2VyLT5sb2FkX2FsbCgpOwoKICAgICR0bXAgPSBudWxsOwogICAgZm9yKCAkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCRvcmRlcik7ICRpZHgrKyApIHsKICAgICAgICAkdG1wW10gPSAoaW50KSBzdWJzdHIoJG9yZGVyWyRpZHhdLHN0cmxlbignZmllbGRfJykpOwogICAgfQogICAgJGZpZWxkZGVmX21hbmFnZXItPnVwZGF0ZV9maWVsZF9vcmRlcigkZmRsaXN0LCAkdG1wKTsKICAgIGV4aXQ7ICAvLyBhbmQgZG9uZS4KfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICBoZWFkZXIoIkhUVFAvMS4wIDUwMCAiLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgaGVhZGVyKCJTdGF0dXM6IDUwMCAiLiRlLT5HZXRNZXNzYWdlKCkpOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_order_hier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JykpIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdoaWVyJyk7Cgp0cnkgewogICAgaWYoICFpc3NldCgkX1BPU1RbJ2hpZXInXSkgKSBleGl0OwoKICAgIC8vIGZpcnN0IHBhc3MuLi4gY2hhbmdlIGFsbCB0aGUgJ3Jvb3QnIHZhbHVlcyB0byAtMSBhbmQgY29udmVydCB2YWx1ZXMgdG8gYSBoYXNoCiAgICAkaGllciA9IFtdOwogICAgewogICAgICAgICR0bXAgPSAkX1BPU1RbJ2hpZXInXTsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRyaWQgPT4gJHBhcmVudF9pZCApIHsKICAgICAgICAgICAgJHJpZCA9IChpbnQpICRyaWQ7CiAgICAgICAgICAgICRwYXJlbnRfaWQgPSAoaW50KSAkcGFyZW50X2lkOwogICAgICAgICAgICBpZiggJHBhcmVudF9pZCA8IDEgKSAkcGFyZW50X2lkID0gLTE7CiAgICAgICAgICAgICRoaWVyWyRyaWRdID0gWyAncGFyZW50X2lkJz0+JHBhcmVudF9pZCBdOwogICAgICAgIH0KICAgIH0KCiAgICAvLyBzZWNvbmQgcGFzcy4uLiBjYWxjdWxhdGUgaXRlbV9vcmRlciB2YWx1ZXMgZm9yIGFsbCBpdGVtcy4KICAgICRjYWxjX2lvcmRlciA9IGZ1bmN0aW9uKCYkaGllciwkcGFyZW50X2lkID0gLTEpIHVzZSAoJiRjYWxjX2lvcmRlcikgewogICAgICAgICRpb3JkZXIgPSAxOwogICAgICAgIGZvcmVhY2goICRoaWVyIGFzICRyaWQgPT4gJiRyb3cgKSB7CiAgICAgICAgICAgIGlmKCAkcm93WydwYXJlbnRfaWQnXSA9PSAkcGFyZW50X2lkICkgewogICAgICAgICAgICAgICAgJHJvd1snaW9yZGVyJ10gPSAkaW9yZGVyKys7CiAgICAgICAgICAgICAgICAkY2FsY19pb3JkZXIoJGhpZXIsJHJpZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9OwogICAgJGNhbGNfaW9yZGVyKCRoaWVyKTsKCiAgICAkdGhpcy0+Z2V0X2hpZXJhcmNoeV9tYW5hZ2VyKCktPmJ1bGtfcmVvcmRlcigkaGllcik7CiAgICAvKgogICAgLy8gdG9kbzogdHJhbnNhY3Rpb24KICAgIC8vIHRoaXJkIHBhc3MuLi4gdXBkYXRlIHBhcmVudCBpZCwgYW5kIGlvcmRlciBpZAogICAgJHNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2hpZXIgU0VUIHBhcmVudF9pZCA9ID8sIGlvcmRlciA9ID8gV0hFUkUgaWQgPSA/JzsKICAgIGZvcmVhY2goICRoaWVyIGFzICRyaWQgPT4gJHJvdyApIHsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHJvd1sncGFyZW50X2lkJ10sJHJvd1snaW9yZGVyJ10sJHJpZCkpOwogICAgfQogICAgLy8gdGhpcyB3aWxsIGZvcmNlIHVwZGF0aW5nIGhpZXJhcmNoeSBwb3NpdGlvbnMKICAgICRoaWVyID0gJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpLT5sb2FkX2J5X2lkKCRyaWQpOwogICAgJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpLT5zYXZlKCRoaWVyKTsKICAgICovCiAgICBleGl0Owp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGhlYWRlcigiSFRUUC8xLjAgNTAwICIuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICBoZWFkZXIoIlN0YXR1czogNTAwICIuJGUtPkdldE1lc3NhZ2UoKSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/action.admin_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgZXhpdDsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkZGVmcycsJHRoaXMtPkxhbmcoJ2ZpZWxkZGVmcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdjYXRlZ29yaWVzJywkdGhpcy0+TGFuZygnY2F0ZWdvcmllcycpKTsKZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdoaWVyJywkdGhpcy0+TGFuZygnaGllcmFyY2h5JykpOwplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmaWVsZGRlZnMnLCAkcGFyYW1zKTsKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZzdGFiLnBocCcpOwplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yaWVzJywgJHBhcmFtcyk7CmluY2x1ZGUoX19ESVJfXy4nL2FjdGlvbi5hZG1pbl9jYXRlZ29yaWVzX3RhYi5waHAnKTsKZWNobyAkdGhpcy0+RW5kVGFiKCk7CgojIEhpZXJhcmNoeSBUYWIKZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2hpZXInLCRwYXJhbXMpOwppbmNsdWRlKF9fRElSX18uJy9hY3Rpb24uYWRtaW5faGllcl90YWIucGhwJyk7CmVjaG8gJHRoaXMtPkVuZFRhYigpOwoKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.advsearch.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xIb29rTWFuYWdlcjsKdXNlIGNnZV9wYXJhbTsKdXNlIGNnZV91dGlsczsKCi8vIHRoZSBwcm9jZXNzIGZvciBhZHZhbmNlZCBzZWFyY2ggaXM6Ci8vICAgICBDcmVhdGUgYSB0ZW1sYXRlIGZvciB1c2VycyB0byBlbnRlciB0aGUgZGF0YS4KLy8gICAgIENyZWF0ZSBhIHRlbXBsYXRlIHRoYXQgYWNjZXB0cyB0aGUgdXNlciBkYXRhIGFuZCBidWlsZHMgYSBjZHF1ZXJ5Ci8vICAgICBOT1RFOiBmb3IgcGFnZWxpbWl0IHlvdSBjYW4gcHV0IHRoYXQgaW50byB0aGUgJ3NlYXJjaF9xdWVyeScgdGVtcGxhdGUgYXMgd2VsbC4KdHJ5IHsKICAgICRzZWFyY2hfbmFtZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzZWFyY2hfbmFtZScpOwogICAgaWYoICEkc2VhcmNoX25hbWUgKSAkc2VhcmNoX25hbWUgPSAkc21hcnR5LT5nZXRfdGVtcGxhdGVfdmFycygncGFnZV9hbGlhcycpOwogICAgJHNlYXJjaF9xdWVyeSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzZWFyY2hfcXVlcnknLCdvcmlnX3NlYXJjaF9xdWVyeS50cGwnKTsKICAgICRzZWFyY2hfdGVtcGxhdGUgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc2VhcmNodGVtcGxhdGUnLCdvcmlnX2FkdnNlYXJjaF90ZW1wbGF0ZS50cGwnKTsKICAgICRzdW1tYXJ5X3RlbXBsYXRlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3N1bW1hcnl0ZW1wbGF0ZScsJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnKTsKICAgICRzYXZlZF9kYXRhID0gWyAnc2VhcmNoX3F1ZXJ5Jz0+JHNlYXJjaF9xdWVyeSwgJ2Zvcm1fZGF0YSc9Pm51bGwgXTsKICAgICRzaWcgPSBzaGExKF9fRklMRV9fLiRzZWFyY2hfbmFtZSk7CiAgICBpZiggaXNzZXQoJF9TRVNTSU9OWyRzaWddKSAmJiBpc19hcnJheSgkX1NFU1NJT05bJHNpZ10pICkgewogICAgICAgICRzYXZlZF9kYXRhID0gJF9TRVNTSU9OWyRzaWddOwogICAgfQogICAgaWYoICFpc3NldCgkc2F2ZWRfZGF0YVsnc2VhcmNoX3F1ZXJ5J10pICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gc2VhcmNoX3F1ZXJ5IHRlbXBsYXRlIHByb3ZpZGVkJyk7CgogICAgLy8gaWYgcG9zdAogICAgLy8gICAgaWYgcmVzZXQKICAgIC8vICAgICAgIHJlc2V0IGZvcm0gZGF0YQogICAgLy8gICAgZWxzZQogICAgLy8gICAgICAgZmlsbCBmb3JtIGRhdGEgZnJvbSBwb3N0CiAgICAvLyBkaXNwbGF5IGZvcm0KICAgIC8vIGlmIGZvcm0gZGF0YQogICAgLy8gICAgYnVpbGQgcXVlcnkKICAgIC8vICAgIGlmIHBhZ2UgYXBwbHkgcGFnZSBwYXJhbQogICAgLy8gICAgZGlzcGxheSByZXN1bHRzCgogICAgaWYoICFlbXB0eSgkX1BPU1QpICkgewogICAgICAgIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJ3Jlc2V0JykgKSB7CiAgICAgICAgICAgIC8vIHJlc2V0IGV2ZXJ0aGluZy4KICAgICAgICAgICAgJHNhdmVkX2RhdGFbJ2Zvcm1fZGF0YSddID0gbnVsbDsKICAgICAgICAgICAgJF9TRVNTSU9OWyRzaWddID0gJHNhdmVkX2RhdGE7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBmb3JlYWNoKCAkX1BPU1QgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICAgICAgaWYoICRrZXkgPT0gJ21hY3QnIHx8IHN0YXJ0c3dpdGgoJGtleSwkaWQpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkc2F2ZWRfZGF0YVsnZm9ybV9kYXRhJ11bJGtleV0gPSAkdmFsOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBoYXZlIGZvcm0gc3VibWlzc2lvbiBkYXRhICh1bmNsZWFuZWQpLiAgV2Ugbm93IHByb2Nlc3MgdGhlIHN1Ym1zc2lvbiBkYXRhIHRocm91Z2ggYSBzZWFyY2ggdGVtcGxhdGUgdG8gZ2V0IGEgcHJvZ3JhbQogICAgICAgICAgICAvLyB3ZXVzZSBfX0ZJTEVfXyBhcyBhIGtub3duIHZhcmlhYmxlIHdlIGNhbiB0ZXN0IGZvciwgIGl0IGlzIG5vdGhpbmcgaW1wb3J0YW50IGFuZCB3ZSBkZWxldGUgaXQgbGF0ZXIuCiAgICAgICAgICAgICRzYXZlZF9kYXRhW19fRklMRV9fXSA9IF9fRklMRV9fOwogICAgICAgICAgICAkdG1wID0gSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OlNlYXJjaElucHV0UHJlcHJvY2VzcycsICRzYXZlZF9kYXRhKTsKICAgICAgICAgICAgaWYoIGlzc2V0KCR0bXBbX19GSUxFX19dKSApIHsKICAgICAgICAgICAgICAgICRzYXZlZF9kYXRhID0gJHRtcDsKICAgICAgICAgICAgfSBlbHNlIGlmKCBpc19hcnJheSgkdG1wKSAmJiBpc3NldCgkdG1wWzBdKSAmJiBpc19hcnJheSgkdG1wWzBdKSAmJiBpc3NldCgkdG1wWzBdW19fRklMRV9fXSkgKSB7CiAgICAgICAgICAgICAgICAkc2F2ZWRfZGF0YSA9ICR0bXBbMF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdW5zZXQoJHNhdmVkX2RhdGFbX19GSUxFX19dKTsKICAgICAgICAgICAgdW5zZXQoJHNhdmVkX2RhdGFbJ19fUEFHRSddKTsKCiAgICAgICAgICAgIC8vIHNhdmUgdGhlIGZvcm0gc3VibWlzc2lvbl9kYXRhIHRvIHRoZSBzZXNzaW9uIHNvIHRoYXQgd2UgY2FuIHVzZSBpdCBhZ2Fpbi4KICAgICAgICAgICAgJF9TRVNTSU9OWyRzaWddID0gJHNhdmVkX2RhdGE7CiAgICAgICAgfQogICAgfQogICAgaWYoICgkcGFnZSA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdwYWdlJykpID4gMCApIHsKICAgICAgICAkc2F2ZWRfZGF0YVsnX19QQUdFJ10gPSAkcGFnZTsKICAgICAgICAkX1NFU1NJT05bJHNpZ10gPSAkc2F2ZWRfZGF0YTsKICAgIH0KCiAgICAvLyBkaXNwbGF5IHNlYXJjaCBmb3JtLi4uIHNob3VsZCBoYXZlIHRoZSBpbnB1dCBkYXRhIHByZWZpbGxlZC4KICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHNlYXJjaF90ZW1wbGF0ZSk7CiAgICAkdHBsLT5hc3NpZ24oJ3NhdmVkJywgJHNhdmVkX2RhdGFbJ2Zvcm1fZGF0YSddKTsKICAgICR0cGwtPmFzc2lnbignc2VhcmNoX25hbWUnLCRzZWFyY2hfbmFtZSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7CgogICAgaWYoICRzYXZlZF9kYXRhWydmb3JtX2RhdGEnXSApIHsKICAgICAgICAvLyB3ZSBoYXZlIGZvcm0gZGF0YS4uIHdlIGNhbiBxdWVyeSB0aGUgZGF0YWJhc2UgYW5kIGRvIGEgc3VtbWFyeSB2aWV3CiAgICAgICAgJGZhY3RvcnkgPSAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKTsKICAgICAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCRzYXZlZF9kYXRhWydzZWFyY2hfcXVlcnknXSk7CiAgICAgICAgJGRhdGEgPSAkc2F2ZWRfZGF0YVsnZm9ybV9kYXRhJ107CiAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBpZiggKHN0cmluZykoaW50KSRrZXkgPT0gJGtleSApIGNvbnRpbnVlOwogICAgICAgICAgICBpZiggJGtleSA9PSAnX19QQUdFJyApIGNvbnRpbnVlOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJGtleSwkdmFsKTsKICAgICAgICB9CiAgICAgICAgJHRtcCA9IHRyaW0oJHRwbC0+ZmV0Y2goKSk7OwogICAgICAgICR0bXAgPSB0cmltKCR0bXAsJ3wnKTsKICAgICAgICAkcXVlcnkgPSAkZmFjdG9yeS0+Y3JlYXRlX3F1ZXJ5X2Zyb21fc2NyaXB0KCR0bXApOwoKICAgICAgICAvLyBub3RlOiB0aGUgc2NyaXB0IGNvdWxkIGhhdmUgYSBsaW1pdAogICAgICAgIGlmKCAoJHBhZ2UgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHNhdmVkX2RhdGEsJ19fUEFHRScpKSA+IDAgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICRmYWN0b3J5LT5hZGp1c3RfcXVlcnlfZm9yX3BhZ2UoJHF1ZXJ5LCAkcGFnZSk7CiAgICAgICAgfQoKICAgICAgICAkc3FsID0gJGZhY3RvcnktPmdlbmVyYXRlX3F1ZXJ5KCRxdWVyeSk7CiAgICAgICAgJHJlc3VsdHMgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpLT5sb2FkX2J5X3F1ZXJ5KCRzcWwpOwoKICAgICAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCRzdW1tYXJ5X3RlbXBsYXRlKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2l0ZW1zJywkcmVzdWx0cyk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzZWFyY2hfZGF0YScsJGRhdGEpOwogICAgICAgICR0cGwtPmFzc2lnbignc3VtbWFyeXBhZ2UnLCRyZXR1cm5pZCk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdzZWFyY2hfbmFtZScsICRzZWFyY2hfbmFtZSk7CiAgICAgICAgJHRwbC0+ZGlzcGxheSgpOwogICAgfQoKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICB0aHJvdyAkZTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/action.ajax_category_autocomplete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLyB0aGlzIG1heSBiZSB1c2VkIGZvciBmcm9udGVuZCBhbmQgYmFja2VuZC4KJG91dCA9IG51bGw7CiRhbGwgPSAwOwoKdHJ5IHsKICAgICRhbGwgPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkX0dFVCwnYWxsJyk7CiAgICAkY2F0ZWdvcmllcyA9ICR0aGlzLT5HZXRDYXRlZ29yaWVzKCk7CiAgICBpZiggIWlzX2FycmF5KCRjYXRlZ29yaWVzKSB8fCAhY291bnQoJGNhdGVnb3JpZXMpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gY2F0ZWdvcmllcyBmb3IgYWpheF9jYXRlZ29yeV9hdXRvY29tcGxldGUnKTsKICAgIGlmKCAkYWxsICkgewogICAgICAgICRvdXQgPSAkY2F0ZWdvcmllczsKICAgIH0gZWxzZSB7CiAgICAgICAgJHRlcm0gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfR0VULCd0ZXJtJyk7CiAgICAgICAgaWYoICEkdGVybSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignSW5wdXQgdGVybSBub3Qgc3BlY2lmaWVkJyk7CgogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkY2F0ZWdvcmllcyBhcyAkY2F0ICkgewogICAgICAgICAgICBpZiggc3RyaXBvcyggJGNhdC0+bG9uZ19uYW1lLCAkdGVybSApICE9PSBGQUxTRSApICRvdXRbXSA9IFsgJ2xhYmVsJyA9PiAkY2F0LT5sb25nX25hbWUsICd2YWx1ZScgPT4gJGNhdC0+aWQgXTsKICAgICAgICB9CiAgICAgICAgaWYoICFjb3VudCgkb3V0KSApICRvdXQgPSBudWxsOwogICAgfQp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgQHRyaWdnZXJfZXJyb3IoJ0NvbXBhbnlEaXJlY3RvcnkgLSBhamF4X2NhdGVnb3J5X2F1dG9jb21wbGV0ZTogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIFxjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwp9CgpcY2dlX3V0aWxzOjpzZW5kX2FqYXhfYW5kX2V4aXQoJG91dCk7CgojCiMgRU9GCiM=]]></data>
	</file>
	<file>
	  <filename>/action.ajax_check_url.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZF91dGlsczsKdXNlIGNnZV91dGlsczsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKY2xhc3MgRXJyb3I0MDAgZXh0ZW5kcyBcRXhjZXB0aW9uIHt9Cgp0cnkgewogICAgJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOwogICAgZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KCiAgICAkbmFtZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ25hbWUnKTsKICAgICR1cmwgID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwndXJsJyk7CgogICAgaWYoICEkbmFtZSApIHRocm93IG5ldyBFcnJvcjQwMCgkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZG5hbWUnKSk7CiAgICBpZiggISR1cmwgKSAkdXJsID0gJHRoaXMtPmdldF91cmxzbHVnX2hlbHBlcigpLT5nZW5lcmF0ZV91cmwoJG5hbWUpOwogICAgaWYoICEkdXJsICkgdGhyb3cgbmV3IEVycm9yNDAwKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkbmFtZScpKTsKCiAgICBjZ2VfdXRpbHM6OnNlbmRfYWpheF9hbmRfZXhpdChbJ3VybCc9PiR1cmxdKTsKfQpjYXRjaCggRXJyb3I0MDAgJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcQ21zRXJyb3I0MDNFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMyAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uICRlICkgewogICAgaGVhZGVyKCdIVFRQLzEuMSA0MDQgJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDUwMCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmV4aXQ7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_company_autocomplete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CmlmICghaXNzZXQoJGdDbXMpKSBleGl0Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwoKdHJ5IHsKICAgIC8vIHRoaXMgaXMgYW4gYW5vbnltb3VzIGFjdGlvbiwgZG9lcyBub3QgcmVxdWlyZSBsb2dpbgogICAgJHRlcm0gPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9SRVFVRVNULCd0ZXJtJyk7CiAgICAkbW9kZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1JFUVVFU1QsJ21vZGUnLCdsaWtlJyk7CiAgICBpZiggISR0ZXJtICkgdGhyb3cgbmV3IFxDbXNFeGNlcHRpb24oJ01pc3NpbmcgcGFyYW0nKTsKCiAgICAkc3RhdGVtZW50cyA9IFtdOwogICAgc3dpdGNoKCBzdHJ0b2xvd2VyKCRtb2RlKSApIHsKICAgIGNhc2UgJ2xpa2UnOgogICAgY2FzZSAnYW55JzoKICAgICAgICAkc3RhdGVtZW50c1tdID0gJ2FuZDpjb21wYW55X25hbWU6bGlrZTonLiR0ZXJtOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnc3RhcnRzd2l0aCc6CiAgICAgICAgJHN0YXRlbWVudHNbXSA9ICdhbmQ6Y29tcGFueV9uYW1lOnN0YXJ0c3dpdGg6Jy4kdGVybTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ2VuZHN3aXRoJzoKICAgICAgICAkc3RhdGVtZW50c1tdID0gJ2FuZDpjb21wYW55X25hbWU6ZW5kc3dpdGg6Jy4kdGVybTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IFxDbXNFeGNlcHRpb24oIkludmFsaWQgbW9kZSIpOwogICAgfQogICAgJHN0YXRlbWVudHMgPSAkc3RhdGVtZW50cyArIFsKICAgICAgICAnYW5kOnN0YXR1czplcTpwdWJsaXNoZWQnLAogICAgICAgICdzb3J0Ynk6Y29tcGFueV9uYW1lJywKICAgICAgICAnc29ydG9yZGVyOmFzYycsCiAgICAgICAgJ2xpbWl0OjEwJwogICAgICAgIF07CiAgICAkZmFjdG9yeSA9ICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpOwogICAgJGNkcXVlcnkgPSAkZmFjdG9yeS0+Y3JlYXRlX3F1ZXJ5X2Zyb21fc3RhdGVtZW50cygkc3RhdGVtZW50cyk7CiAgICAkc3FsID0gJGZhY3RvcnktPmdlbmVyYXRlX3F1ZXJ5KCRjZHF1ZXJ5KTsKICAgICRyZXN1bHRzID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKS0+bG9hZF9ieV9xdWVyeSgkc3FsKTsKCiAgICAkb3V0ID0gbnVsbDsKICAgIGZvcmVhY2goICRyZXN1bHRzIGFzICRyZXN1bHQgKSB7CiAgICAgICAgJG91dFtdID0gWyAnbGFiZWwnPT4kcmVzdWx0LT5jb21wYW55X25hbWUsICd2YWx1ZSc9PiRyZXN1bHQtPmlkIF07CiAgICB9CiAgICBjZ2VfdXRpbHM6OnNlbmRfYWpheF9hbmRfZXhpdCgkb3V0KTsKfQpjYXRjaCggXENtc0V4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxDbXNFcnJvcjQwM0V4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAzICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGhlYWRlcignSFRUUC8xLjEgNTAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KZXhpdDsK]]></data>
	</file>
	<file>
	  <filename>/action.ajax_geolocate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICBpZiggISR0aGlzLT5oYXZlX2dlb2NvZGVyKCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBnZW9jb2RlciBjb25maWd1cmVkJyk7CiAgICAkYWRkcmVzcyA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ2FkZHJlc3MnKTsKICAgIGlmKCAhJGFkZHJlc3MgKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCdpbnN1ZmZpY2llbnQgcGFyYW1ldGVycycpOwoKICAgICRyZXMgPSAkdGhpcy0+Z2V0X2dlb2NvZGVyKCktPmxvY2F0ZV9ieV9zdHJpbmcoJGFkZHJlc3MpOwogICAgY2dlX3V0aWxzOjpzZW5kX2FqYXhfYW5kX2V4aXQoJHJlcyk7Cn0KY2F0Y2goIFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxDbXNFcnJvcjQwM0V4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAzICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGhlYWRlcignSFRUUC8xLjEgNTAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KZXhpdCgpOw==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_get_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICAvLyB0aGlzIGlzIG5vdCBhIHRydWUgUkVTVCByZXF1ZXN0IGFzIGl0IHJlbGllcyBvbiBjb29raWVzIHRvIHRlbGwgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkIGluIHRvIEZFVQogICAgJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwogICAgaWYoICEkZmV1ICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignRnJvbnRFbmRVc2VycyBtb2R1bGUgbm90IGZvdW5kJyk7CiAgICAkZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwoKICAgICRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJyk7CiAgICAkZmRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdmZGlkJyk7CiAgICBpZiggJGNvbXBpZCA8IDEgfHwgJGZkaWQgPCAxICkgewogICAgICAgIGhlYWRlcignSFRUUC8xLjEgNDAwIE1pc3NpbmcgcGFyYW0nKTsKICAgICAgICBleGl0KCk7CiAgICB9CiAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY29tcGlkKTsKICAgICRmaWVsZGRlZiA9ICR0aGlzLT5nZXRfZmllbGRkZWZfbWFuYWdlcigpLT5sb2FkX2J5X2lkKCRmZGlkKTsKICAgIGlmKCAkZmllbGRkZWYtPnR5cGUgIT0gJ2FsYnVtJyApIHsKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMCBGaWVsZCBpcyBub3QgYW4gYWxidW0nKTsKICAgICAgICBleGl0KCk7CiAgICB9CiAgICBpZiggJGNvbXBhbnktPm93bmVyX2lkICE9ICRmZXVfdWlkICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignUGVybWlzc2lvbiBkZW5pZWQnKTsKCiAgICAkaW1hZ2VzID0gJGNvbXBhbnktPmZpZWxkc1skZmllbGRkZWYtPmlkXTsKICAgICRvdXQgPSBudWxsOwogICAgaWYoICFlbXB0eSgkaW1hZ2VzKSApIHsKICAgICAgICAkdXJsID0gJGNvbXBhbnlfbWFuYWdlci0+Z2V0X2NvbXBhbnlfZmlsZV91cmwoJGNvbXBhbnktPmlkKS4nL2FsYnVtXycuJGZpZWxkZGVmLT5pZDsKICAgICAgICBmb3JlYWNoKCRpbWFnZXMgYXMgJG5hbWUpIHsKICAgICAgICAgICAgJG91dFtdID0gWwogICAgICAgICAgICAgICAgJ25hbWUnID0+ICRuYW1lLAogICAgICAgICAgICAgICAgJ3VybCcgPT4gJHVybC4nLycuJG5hbWUKICAgICAgICAgICAgICAgIF07CiAgICAgICAgfQogICAgfQoKICAgIGNnZV91dGlsczo6c2VuZF9hamF4X2FuZF9leGl0KCRvdXQpOwp9CmNhdGNoKCBcQ21zRXJyb3I0MDNFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMyAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uICRlICkgewogICAgaGVhZGVyKCdIVFRQLzEuMSA0MDQgJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDUwMCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmV4aXQ7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_update_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICAkZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICBpZiggISRmZXUgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdGcm9udEVuZFVzZXJzIG1vZHVsZSBub3QgZm91bmQnKTsKICAgICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgaWYoICEkZmV1X3VpZCApIHRocm93IG5ldyBcQ21zRXJyb3I0MDNFeGNlcHRpb24oJ1Blcm1pc3Npb24gZGVuaWVkJyk7CiAgICAkY29tcGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBpZCcpOwoKICAgICRmZGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2ZkaWQnKTsKICAgIGlmKCAkY29tcGlkIDwgMSB8fCAkZmRpZCA8IDEgKSB7CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDAgTWlzc2luZyBwYXJhbScpOwogICAgICAgIGV4aXQoKTsKICAgIH0KICAgICRjb21wYW55X21hbmFnZXIgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpOwogICAgJGNvbXBhbnkgPSAkY29tcGFueV9tYW5hZ2VyLT5sb2FkX2J5X2lkKCRjb21waWQpOwogICAgaWYoICRjb21wYW55LT5vd25lcl9pZCAhPSAkZmV1X3VpZCApIHRocm93IG5ldyBcQ21zRXJyb3I0MDNFeGNlcHRpb24oJ1Blcm1pc3Npb24gZGVuaWVkJyk7CiAgICAkZmllbGRkZWYgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+bG9hZF9ieV9pZCgkZmRpZCk7CiAgICBpZiggJGZpZWxkZGVmLT50eXBlICE9ICdhbGJ1bScgKSB7CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDAgRmllbGQgaXMgbm90IGFuIGFsYnVtJyk7CiAgICAgICAgZXhpdCgpOwogICAgfQogICAgaWYoICFjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJ2l0ZW1zJykgJiYgIWNnZV9wYXJhbTo6ZXhpc3RzKCRfUE9TVCwnbm90aGluZycpKSB7CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDAgRmllbGQgLSBubyBvcmRlciBkYXRhJyk7CiAgICAgICAgZXhpdCgpOwogICAgfQoKICAgICRwYXRoID0gJGNvbXBhbnlfbWFuYWdlci0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRjb21waWQpLicvYWxidW1fJy4kZmRpZDsKICAgIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJ25vdGhpbmcnKSApIHsKICAgICAgICAvLyBjbGVhbiB0aGUgd2hvbGUgd29ya3MKICAgICAgICBAcmVjdXJzaXZlX2RlbGV0ZSgkcGF0aCk7CiAgICAgICAgJG5ld192YWwgPSBudWxsOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYoICFpc19kaXIoJHBhdGgpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYW4gYWxidW0gcGF0aC4uLiBzaG91bGQgbm90IGdldCBoZXJlJyk7CiAgICAgICAgJG9sZF92YWwgPSBpc3NldCgkY29tcGFueS0+ZmllbGRzWyRmZGlkXSkgPyAkY29tcGFueS0+ZmllbGRzWyRmZGlkXSA6IFtdOwogICAgICAgICRuZXdfdmFsID0gW107CiAgICAgICAgaWYoIGNvdW50KCRfUE9TVFsnaXRlbXMnXSkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRfUE9TVFsnaXRlbXMnXSBhcyAkbmFtZSApIHsKICAgICAgICAgICAgICAgIGlmKCAhaXNfZmlsZSgkcGF0aC4nLycuJG5hbWUpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkbmV3X3ZhbFtdID0gJG5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGRlbGV0ZWQgPSBhcnJheV9kaWZmKCRvbGRfdmFsLCAkbmV3X3ZhbCk7CiAgICAgICAgaWYoICFlbXB0eSgkZGVsZXRlZCkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goJGRlbGV0ZWQgYXMgJG9uZSkgewogICAgICAgICAgICAgICAgQHVubGluaygkcGF0aC4nLycuJG9uZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aEZpZWxkKCRmZGlkLCAkbmV3X3ZhbCk7CiAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPnNhdmUoJGNvbXBhbnkpOwogICAgY2dlX3V0aWxzOjpzZW5kX2FqYXhfYW5kX2V4aXQobnVsbCk7Cn0KY2F0Y2goIFxDbXNFcnJvcjQwM0V4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAzICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGhlYWRlcignSFRUUC8xLjEgNTAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/action.ajax_upload_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICAvLyB0aGlzIGlzIG5vdCBhIHRydWUgUkVTVCByZXF1ZXN0IGFzIGl0IHJlbGllcyBvbiBjb29raWVzIHRvIHRlbGwgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkIGluIHRvIEZFVQogICAgJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwogICAgaWYoICEkZmV1ICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignRnJvbnRFbmRVc2VycyBtb2R1bGUgbm90IGZvdW5kJyk7CiAgICAkZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKICAgIGlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwoKICAgICRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJF9QT1NULCdjb21waWQnKTsKICAgICRmZGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRfUE9TVCwnZmRpZCcpOwogICAgaWYoICRjb21waWQgPCAxIHx8ICRmZGlkIDwgMSApIHsKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwMCBNaXNzaW5nIHBhcmFtJyk7CiAgICAgICAgZXhpdCgpOwogICAgfQogICAgJGNvbXBhbnlfbWFuYWdlciA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCk7CiAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPmxvYWRfYnlfaWQoJGNvbXBpZCk7CiAgICAkZmllbGRkZWYgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+bG9hZF9ieV9pZCgkZmRpZCk7CiAgICBpZiggJGZpZWxkZGVmLT50eXBlICE9ICdhbGJ1bScgKSB7CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDAgRmllbGQgaXMgbm90IGFuIGFsYnVtJyk7CiAgICAgICAgZXhpdCgpOwogICAgfQogICAgaWYoICRjb21wYW55LT5vd25lcl9pZCAhPSAkZmV1X3VpZCApIHRocm93IG5ldyBcQ21zRXJyb3I0MDNFeGNlcHRpb24oJ1Blcm1pc3Npb24gZGVuaWVkJyk7CgogICAgJG9wdGlvbnMgPSBhcnJheSgncGFyYW1fbmFtZSc9PidpbWFnZV91cGxvYWQnKTsKICAgICRvcHRpb25zWydjb21waWQnXSA9ICRjb21waWQ7CiAgICAkb3B0aW9uc1snZmRpZCddID0gJGZkaWQ7CiAgICAkb3B0aW9uc1sndXBsb2FkX2RpciddID0gJGNvbXBhbnlfbWFuYWdlci0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRjb21waWQpLiIvYWxidW1fJGZkaWQvIjsKICAgICRvcHRpb25zWyd1cGxvYWRfdXJsJ10gPSAkY29tcGFueV9tYW5hZ2VyLT5nZXRfY29tcGFueV9maWxlX3VybCgkY29tcGlkKS4iL2FsYnVtXyRmZGlkLyI7CiAgICAkdXBsb2FkX2hhbmRsZXIgPSAkdGhpcy0+Y3JlYXRlX2FsYnVtX3VwbG9hZF9oYW5kbGVyKCRjb21wYW55LCAkZmllbGRkZWYsICRvcHRpb25zKTsKCiAgICBoZWFkZXIoJ1ByYWdtYTogbm8tY2FjaGUnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZSwgbm8tY2FjaGUnKTsKICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0iZmlsZXMuanNvbiInKTsKICAgIGhlYWRlcignWC1Db250ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZicpOwogICAgaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46IConKTsKICAgIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kczogT1BUSU9OUywgSEVBRCwgR0VULCBQT1NULCBQVVQsIERFTEVURScpOwogICAgaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzOiBYLUZpbGUtTmFtZSwgWC1GaWxlLVR5cGUsIFgtRmlsZS1TaXplJyk7CgogICAgc3dpdGNoICgkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSkgewogICAgY2FzZSAnT1BUSU9OUyc6CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdIRUFEJzoKICAgIGNhc2UgJ0dFVCc6CiAgICAgICAgJHVwbG9hZF9oYW5kbGVyLT5nZXQoKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ1BPU1QnOgogICAgICAgICR1cGxvYWRfaGFuZGxlci0+cG9zdCgpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnREVMRVRFJzoKICAgICAgICAkdXBsb2FkX2hhbmRsZXItPmRlbGV0ZSgpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNSBNZXRob2QgTm90IEFsbG93ZWQnKTsKICAgIH0KfQpjYXRjaCggXENtc0Vycm9yNDAzRXhjZXB0aW9uICRlICkgewogICAgaGVhZGVyKCdIVFRQLzEuMSA0MDMgJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQpjYXRjaCggXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDA0ICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgaGVhZGVyKCdIVFRQLzEuMSA1MDAgJy4kZS0+R2V0TWVzc2FnZSgpKTsKfQpleGl0Owo=]]></data>
	</file>
	<file>
	  <filename>/action.ajax_upload_tmp.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCnRyeSB7CiAgICAkZ3VpZCA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ2d1aWQnKTsKICAgIGlmKCAhJGd1aWQgKSB7CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDAgTWlzc2luZyBwYXJhbScpOwogICAgICAgIGV4aXQoKTsKICAgIH0KCiAgICAkdG1wX3VwbG9hZF9tYW5hZ2VyID0gJHRoaXMtPmNyZWF0ZV90bXBfdXBsb2FkX21hbmFnZXIoJGd1aWQpOwogICAgJHVwbG9hZF9oYW5kbGVyID0gJHRtcF91cGxvYWRfbWFuYWdlci0+Y3JlYXRlX3VwbG9hZF9oYW5kbGVyKCdmaWxlJyk7CgogICAgaGVhZGVyKCdQcmFnbWE6IG5vLWNhY2hlJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUsIG5vLWNhY2hlJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9ImZpbGVzLmpzb24iJyk7CiAgICBoZWFkZXIoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmYnKTsKICAgIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luOiAqJyk7CiAgICBoZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHM6IE9QVElPTlMsIEhFQUQsIEdFVCwgUE9TVCwgUFVULCBERUxFVEUnKTsKICAgIGhlYWRlcignQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyczogWC1GaWxlLU5hbWUsIFgtRmlsZS1UeXBlLCBYLUZpbGUtU2l6ZScpOwoKICAgIHN3aXRjaCAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10pIHsKICAgIGNhc2UgJ09QVElPTlMnOgogICAgICAgIGJyZWFrOwogICAgY2FzZSAnSEVBRCc6CiAgICBjYXNlICdHRVQnOgogICAgICAgICR1cGxvYWRfaGFuZGxlci0+Z2V0KCk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdQT1NUJzoKICAgICAgICAkdXBsb2FkX2hhbmRsZXItPnBvc3QoKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ0RFTEVURSc6CiAgICAgICAgJHVwbG9hZF9oYW5kbGVyLT5kZWxldGUoKTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA0MDUgTWV0aG9kIE5vdCBBbGxvd2VkJyk7CiAgICB9Cn0KY2F0Y2goIFxDbXNFcnJvcjQwM0V4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjEgNDAzICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICBoZWFkZXIoJ0hUVFAvMS4xIDQwNCAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIGhlYWRlcignSFRUUC8xLjEgNTAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KZXhpdDsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.browsehier.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8gaW5pdGlhbGl6YXRpb24KLy8gaGllcmxpc3RfCnRyeSB7CiAgICAkc3RhcnRfaGllciA9ICRoaWVyX2FyZyA9IG51bGw7CiAgICAkdGhldGVtcGxhdGUgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnaGllcmxpc3R0ZW1wbGF0ZScsICdvcmlnX2hpZXJsaXN0X3RlbXBsYXRlLnRwbCcpOwogICAgJHN1bW1hcnlwYWdlID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdzdW1tYXJ5cGFnZScpLCAkcmV0dXJuaWQpOwoKICAgIC8vIGdldCB0aGUgc3RhcnQgYXJndW1lbnQsIGlmIGFueS4KICAgICRoaWVyX2FyZyA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdoaWVyJyk7CiAgICBpZiggJGhpZXJfYXJnICkgewogICAgICAgIGlmKCAkaGllcl9hcmcgJiYgKHN0cmluZykoaW50KSRoaWVyX2FyZyA9PSAkaGllcl9hcmcgKSB7CiAgICAgICAgICAgICRzdGFydF9oaWVyID0gKGludCkgJGhpZXJfYXJnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJGhpZXJfb2IgPSAkdGhpcy0+Z2V0X2hpZXJhcmNoeV9tYW5hZ2VyKCktPmdldF9maXJzdF9ieV9uYW1lKCRoaWVyX2FyZyk7CiAgICAgICAgICAgICRzdGFydF9oaWVyID0gJGhpZXJfb2ItPmlkOwogICAgICAgIH0KICAgIH0KCiAgICAkdHJlZSA9ICR0aGlzLT5nZXRfbWV0YXF1ZXJ5X21hbmFnZXIoKS0+Z2V0X2hpZXJhcmNoeV90cmVlX3dpdGhfY291bnRzKCR0aGlzLT5nZXRfaGllcmFyY2h5X21hbmFnZXIoKSk7CiAgICBpZiggJHN0YXJ0X2hpZXIgKSB7CiAgICAgICAgJGZpbmRfbm9kZSA9IGZ1bmN0aW9uKCR0cmVlLCR3YW50ZWQpIHVzZSAoJiRmaW5kX25vZGUpIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRyZWUgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICBpZiggJG5vZGVbJ2lkJ10gPT0gICR3YW50ZWQgKSByZXR1cm4gJG5vZGU7CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJG5vZGVbJ2NoaWxkcmVuJ10pICkgewogICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZmluZF9ub2RlKCRub2RlWydjaGlsZHJlbiddLCAkd2FudGVkKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyApIHJldHVybiAkcmVzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJHRyZWUgPSAkZmluZF9ub2RlKCR0cmVlLCAkc3RhcnRfaGllcik7CiAgICAgICAgaWYoICEkdHJlZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGEgaGllcmFyY2h5IGlkZW50aWZpZWQgYnkgJy4kaGllcl9hcmcpOwogICAgICAgICR0cmVlID0gWyAkdHJlZSBdOyAvLyBwdXQgaXQgaW50byBhbiBhcnJheS4KICAgIH0KCiAgICAvLyBhbmQgZ2l2ZSBpdCB0byBzbWFydHkKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKICAgICR0cGwtPmFzc2lnbignaGllcmRhdGEnLCR0cmVlKTsKICAgICR0cGwtPmFzc2lnbignc3VtbWFyeXBhZ2UnLCRzdW1tYXJ5cGFnZSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICB0aHJvdyAkZTsKfQoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.categorylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Cgp0cnkgewogICAgJGhpZXJfYXJnID0gJHN0YXJ0X2hpZXIgPSBudWxsOwogICAgJHRoZXRlbXBsYXRlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsICdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnKTsKICAgICRzdW1tYXJ5cGFnZSA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzdW1tYXJ5cGFnZScpLCRyZXR1cm5pZCk7CgogICAgLy8gZ2V0IHRoZSBzdGFydCBhcmd1bWVudCwgaWYgYW55CiAgICAkaGllcl9hcmcgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY2F0ZWdvcnknKTsKICAgIGlmKCAkaGllcl9hcmcgKSB7CiAgICAgICAgaWYoICRoaWVyX2FyZyAmJiAoc3RyaW5nKShpbnQpJGhpZXJfYXJnID09ICRoaWVyX2FyZyApIHsKICAgICAgICAgICAgJHN0YXJ0X2hpZXIgPSAoaW50KSAkaGllcl9hcmc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkaGllcl9vYiA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpLT5nZXRfZmlyc3RfYnlfbmFtZSgkaGllcl9hcmcpOwogICAgICAgICAgICAkc3RhcnRfaGllciA9ICRoaWVyX29iLT5pZDsKICAgICAgICB9CiAgICB9CgogICAgJHRyZWUgPSAkdGhpcy0+Z2V0X21ldGFxdWVyeV9tYW5hZ2VyKCktPmdldF9jYXRlZ29yeV90cmVlX3dpdGhfY291bnRzKCR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpKTsKCiAgICBpZiggJHN0YXJ0X2hpZXIgKSB7CiAgICAgICAgJGZpbmRfbm9kZSA9IGZ1bmN0aW9uKCR0cmVlLCR3YW50ZWQpIHVzZSAoJiRmaW5kX25vZGUpIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRyZWUgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmlkID09ICAkd2FudGVkICkgcmV0dXJuICRub2RlOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRub2RlLT5jaGlsZHJlbikgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlcyA9ICRmaW5kX25vZGUoJG5vZGUtPmNoaWxkcmVuLCAkd2FudGVkKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyApIHJldHVybiAkcmVzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJHRyZWUgPSAkZmluZF9ub2RlKCR0cmVlLCAkc3RhcnRfaGllcik7CiAgICAgICAgaWYoICEkdHJlZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGEgaGllcmFyY2h5IGlkZW50aWZpZWQgYnkgJy4kaGllcl9hcmcpOwogICAgICAgICR0cmVlID0gWyAkdHJlZSBdOyAvLyBwdXQgaXQgaW50byBhbiBhcnJheS4KICAgIH0KCiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CiAgICAkdHBsLT5hc3NpZ24oJ2NhdGVnb3J5bGlzdCcsICR0cmVlKTsKICAgICR0cGwtPmFzc2lnbignc3VtbWFyeXBhZ2UnLCAkc3VtbWFyeXBhZ2UpOwogICAgJHRwbC0+ZGlzcGxheSgpOwp9CmNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgdGhyb3cgJGU7Cn0KCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwp1c2UgY2dlX3V0aWxzOwppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRyZXN0ID0gZmFsc2U7CnRyeSB7CiAgICAkdGVtcGxhdGUgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc3VtbWFyeXRlbXBsYXRlJywnb3JpZ19zdW1tYXJ5X3RlbXBsYXRlLnRwbCcpOwoKICAgICRjYXRpZCA9ICRoaWVyID0gJHN1ZmZpeCA9IG51bGw7CiAgICAkZmFjdG9yeSA9ICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpOwogICAgJHJlc3QgPSBjZ2VfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsJ3Jlc3QnKTsKICAgICRkYXRhID0gJHBhcmFtczsKICAgIGlmKCAkcmVzdCApICRkYXRhID0gJF9SRVFVRVNUOwogICAgJHF1ZXJ5ID0gJGZhY3RvcnktPmNyZWF0ZV9mcm9udGVuZF9xdWVyeV9mcm9tX3BhcmFtcygkZGF0YSk7ICAvLyB3aWxsIGRlY29kZSBwYXJhbXMuCgogICAgJGhpZXJfaWQgPSAkY2F0X2lkID0gJHN1ZmZpeCA9IG51bGw7CiAgICBpZiggY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCd3aXRoY2hpbGRyZW4nKSApICRzdWZmaXggPSAnOjEnOwogICAgaWYoICgkaGllcl9pZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdoaWVyaWQnKSkgPiAwICkgewogICAgICAgICRxdWVyeSA9ICRxdWVyeS0+YXBwZW5kX3N0YXRlbWVudCgiYW5kOmhpZXI6JGhpZXJfaWQiLiRzdWZmaXgpOwogICAgfQogICAgaWYoICgkY2F0X2lkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NhdGVnb3J5aWQnKSkgPiAwICkgewogICAgICAgICRxdWVyeSA9ICRxdWVyeS0+YXBwZW5kX3N0YXRlbWVudCgiYW5kOmNhdGVnb3J5OiRjYXRfaWQiLiRzdWZmaXgpOwogICAgfQoKICAgICRoaWVyX2lkID0gJGNhdF9pZCA9IG51bGw7CiAgICAkaGllcl9leHByID0gJHF1ZXJ5LT5nZXRfYW5kX2V4cHIoJ2hpZXInKTsKICAgIGlmKCAkaGllcl9leHByICkgewogICAgICAgIGxpc3QoLCwkdG1wLCkgPSBleHBsb2RlKCc6JywkaGllcl9leHByKTsKICAgICAgICAkaGllcl9pZCA9IChpbnQpICR0bXA7CiAgICB9CiAgICAkY2F0ZWdvcnlfZXhwciA9ICRxdWVyeS0+Z2V0X2FuZF9leHByKCdjYXRlZ29yeScpOwogICAgaWYoICRjYXRlZ29yeV9leHByICkgewogICAgICAgIGxpc3QoLCwkdG1wLCkgPSBleHBsb2RlKCc6JywkY2F0ZWdvcnlfZXhwcik7CiAgICAgICAgJGNhdF9pZCA9IChpbnQpICR0bXA7CiAgICB9CgogICAgJHNxbCA9ICRmYWN0b3J5LT5nZW5lcmF0ZV9xdWVyeSgkcXVlcnkpOwogICAgJHJlc3VsdHMgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpLT5sb2FkX2J5X3F1ZXJ5KCRzcWwpOwoKICAgIGlmKCAkcmVzdCApIHsKICAgICAgICBjZ2VfdXRpbHM6OnNlbmRfYWpheF9hbmRfZXhpdCgkcmVzdWx0cyk7CiAgICB9CgogICAgJGVuY29kZWQgPSAkZmFjdG9yeS0+ZW5jb2RlX3F1ZXJ5KCRxdWVyeSk7CiAgICAkdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0ZW1wbGF0ZSk7CiAgICAkdHBsLT5hc3NpZ24oJ2NhdGVnb3J5X2lkJywkY2F0X2lkKTsKICAgICR0cGwtPmFzc2lnbignaGllcl9pZCcsJGhpZXJfaWQpOwogICAgJHRwbC0+YXNzaWduKCdpdGVtcycsJHJlc3VsdHMpOwogICAgJHRwbC0+YXNzaWduKCdzdW1tYXJ5cGFnZScsJHJldHVybmlkKTsKICAgICR0cGwtPmFzc2lnbignZW5jb2RlZCcsICRmYWN0b3J5LT5lbmNvZGVfcXVlcnkoJHF1ZXJ5KSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBpZiggJHJlc3QgKSB7CiAgICAgICAgaGVhZGVyKCdIVFRQLzEuMSA1MDAgJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICBleGl0OwogICAgfQogICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgIHRocm93ICRlOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmKCAhJHRoaXMtPlZpc2libGVUb0FkbWluVXNlcigpICkgcmV0dXJuOwoKaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fY29tcGFuaWVzX3RhYi5waHAnKTsK]]></data>
	</file>
	<file>
	  <filename>/action.details.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZ2VfdXRpbHM7CgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKJHRoZXRlbXBsYXRlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RldGFpbHRlbXBsYXRlJywnb3JpZ19kZXRhaWxfdGVtcGxhdGUudHBsJyk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKJGNvbXBpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjb21wYW55aWQnKTsKJGNvbXBpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjb21waWQnLCRjb21waWQpOwppZiggJGNvbXBpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIG9yIG1pc3NpbmcgcGFyYW1ldGVyJyk7Cgokc3VtbWFyeXBhZ2UgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZChjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc3VtbWFyeXBhZ2UnLCRyZXR1cm5pZCkpOwoKJGZhY3RvcnkgPSAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKTsKJHF1ZXJ5ID0gJGZhY3RvcnktPmNyZWF0ZV9mcm9udGVuZF9xdWVyeV9mcm9tX3N0YXRlbWVudHMoWydhbmQ6aWQ6RVE6Jy4kY29tcGlkXSk7CiRzcWwgPSAkZmFjdG9yeS0+Z2VuZXJhdGVfcXVlcnkoJHF1ZXJ5KTsKJHJlc3VsdHMgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpLT5sb2FkX2J5X3F1ZXJ5KCRzcWwpOwoKaWYoIGNvdW50KCRyZXN1bHRzKSAhPSAxICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwNEV4Y2VwdGlvbignTm90IGZvdW5kJyk7CiRjb21wYW55ID0gJHJlc3VsdHMtPnJld2luZCgpLT5jdXJyZW50KCk7CmlmKCAkY29tcGFueS0+c3RhdHVzICE9ICdwdWJsaXNoZWQnICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignUGVybWlzc2luIGRlbmllZCcpOwp1bnNldCgkcmVzdWx0cyk7CgovLyRjb21wYW55ID0gY2RfdXRpbHM6OmdldF9jb21wYW55KCRwYXJhbXNbJ2NvbXBhbnlpZCddLCRyZXR1cm5pZCxUUlVFLFRSVUUsJHN1bW1hcnlwYWdlKTsKJHRwbC0+YXNzaWduKCdzdW1tYXJ5cGFnZScsJHN1bW1hcnlwYWdlKTsKJHRwbC0+YXNzaWduKCdoaWVyYXJjaHlfbGlzdCcsJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpLT5nZXRfbGlzdCgpKTsKJHRwbC0+YXNzaWduKCdlbnRyeScsICRjb21wYW55KTsKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.fe_delete.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCAhaXNfb2JqZWN0KCRmZXUpICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignTm8gRnJvbnRFbmRVc2VycyBtb2R1bGUnKTsKJGZldV91aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CmlmKCAkZmV1X3VpZCA8PSAwICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignUGVybWlzc2lvbiBkZW5pZWQnKTsKaWYoICEkdGhpcy0+Z2V0X3NldHRpbmdzKCktPmZyb250ZW5kX2RlbGV0ZSApIHRocm93IG5ldyBcQ21zRXJyb3I0MDNFeGNlcHRpb24oJ1Blcm1pc3Npb24gZGVuaWVkJyk7CgokY29tcGFueWlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBhbnlpZCcpOwppZiggJGNvbXBhbnlpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIG9yIG1pc3NpbmcgcGFyYW1ldGVycycpOwoKJGNvbXBhbnlfbWFuYWdlciA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCk7CiRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY29tcGFueWlkKTsKJGNvbXBhbnlfbWFuYWdlci0+ZGVsZXRlKCRjb21wYW55KTsKJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcmV0dXJuaWQpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcSG9va01hbmFnZXI7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZ2VfdXRpbHM7CnVzZSBjZF91dGlsczsKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGZpbmFsX21lc3NhZ2UgPSBudWxsOwokYmVoYXZpb3IgPSAnYWRkJzsKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggISRmZXUgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdGcm9udEVuZFVzZXJzIG1vZHVsZSBub3QgYXZhaWxhYmxlJyk7CiRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwppZiggJGZldV91aWQgPCAxICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignUGVybWlzc2lvbiBkZW5pZWQnKTsKJG1heF9yZWNvcmRzID0gJHRoaXMtPmdldF9zZXR0aW5ncygpLT5mcm9udGVuZF9tYXhyZWNvcmRzOwppZiggJG1heF9yZWNvcmRzID09IDAgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwokc2V0dGluZ3MgPSAkdGhpcy0+Z2V0X3NldHRpbmdzKCk7CiR0aGV0ZW1wbGF0ZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmcm9udGVuZGZvcm10ZW1wbGF0ZScsICdvcmlnX2Zyb250ZW5kZm9ybV90ZW1wbGF0ZS50cGwnKTsKJGNvbXBhbnlfbWFuYWdlciA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCk7CiR0bXAgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+bG9hZF9hbGwoKTsKJGhhdmVfYWxidW0gPSAkZmllbGRkZWZfbGlzdCA9IG51bGw7CmlmKCAhZW1wdHkoJHRtcCkgKSB7CiAgICBmb3JlYWNoKCAkdG1wIGFzICRmaWVsZGRlZiApIHsKICAgICAgICBpZiggJGZpZWxkZGVmLT5hZG1pbl9vbmx5ICkgY29udGludWU7ICAgLy8gb25seSBub24tYWRtaW4gZmllbGRzLgogICAgICAgIGlmKCAkZmllbGRkZWYtPnR5cGUgPT0gJ2FsYnVtJyApICRoYXZlX2FsYnVtID0gJGZpZWxkZGVmLT5pZDsKICAgICAgICAkZmllbGRkZWZfbGlzdFskZmllbGRkZWYtPmlkXSA9ICRmaWVsZGRlZjsKICAgIH0KfQokY2F0ZWdvcnlfbGlzdCA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpLT5nZXRfbGlzdCgpOwokaGllcmFyY2h5X2xpc3QgPSAkdGhpcy0+Z2V0X2hpZXJhcmNoeV9tYW5hZ2VyKCktPmdldF9saXN0KCk7CgokbWVzc2FnZSA9IG51bGw7CiRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGFueWlkJyk7CiRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+Y3JlYXRlX25ld19jb21wYW55KCk7CiRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ293bmVyX2lkJywgJGZldV91aWQpLT53aXRoKCdzdGF0dXMnLCRzZXR0aW5ncy0+ZnJvbnRlbmRfbmV3c3RhdHVzKTsKCi8vIGhlcmUgbG9hZCB0aGUgY29tcGFueSwgY2hlY2sgb3duZXIgd2l0aCBmZXVfdWlkCmlmKCAkY29tcGlkID4gMCApIHsKICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY29tcGlkKTsKICAgIGlmKCAkY29tcGFueS0+b3duZXJfaWQgIT0gJGZldV91aWQgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCAtIG5vdCBvd25lcicpOwogICAgJGJlaGF2aW9yID0gJ2VkaXQnOwp9IGVsc2UgewogICAgaWYoICEkc2V0dGluZ3MtPmZyb250ZW5kX2NyZWF0ZSApIHRocm93IG5ldyBcQ21zRXJyb3I0MDNFeGNlcHRpb24oJ1Blcm1pc3Npb24gZGVuaWVkIC0gY2Fubm90IGNyZWF0ZScpOwogICAgaWYoICRtYXhfcmVjb3JkcyA+IDAgKSB7CiAgICAgICAgLy8gdGVzdCBpZiB3ZSBjYW4gYWRkIGFub3RoZXIgcmVjb3JkCiAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPmdldF9xdWVyeV9mYWN0b3J5KCktPmNyZWF0ZV9xdWVyeV9mcm9tX3NjcmlwdCgnYW5kOm93bmVyX2lkOmVxOicuJGZldV91aWQpOwogICAgICAgICRyZXN1bHRzID0gJGNvbXBhbnlfbWFuYWdlci0+bG9hZF9ieV9xdWVyeSgkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKS0+Z2VuZXJhdGVfcXVlcnkoJHF1ZXJ5KSk7CiAgICAgICAgaWYoICRyZXN1bHRzLT50b3RhbCA+PSAkbWF4X3JlY29yZHMgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9mZV91c2VycXVvdGEnKSk7CiAgICB9Cn0KCmlmKCBjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdhZnRlcicpICkgewogICAgJGZpbmFsX21lc3NhZ2UgPSAkdGhpcy0+TGFuZygnZnJvbnRlbmRlZGl0X2ZpbmFsX21lc3NhZ2UnKTsKfQplbHNlIGlmKCAhZW1wdHkoJF9QT1NUKSApIHsKICAgIHRyeSB7CiAgICAgICAgJG9sZF9sb2dvID0gJGNvbXBhbnktPmxvZ29fbG9jYXRpb247CiAgICAgICAgJG9sZF9waWN0dXJlID0gJGNvbXBhbnktPnBpY3R1cmVfbG9jYXRpb247CiAgICAgICAgaWYoICFjZ2VfdXRpbHM6OnZhbGlkX2Zvcm1fY3NyZigpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9mcm9udGVuZF9zZWN1cml0eScpKTsKCiAgICAgICAgJGd1aWQgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ2d1aWQnKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdjb21wYW55X25hbWUnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ2NvbXBhbnlfbmFtZScpKSk7CiAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnYWRkcmVzcycsIGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwgJ2FkZHJlc3MnKSkpOwogICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ3RlbGVwaG9uZScsIGNtc19odG1sX2VudGl0eV9kZWNvZGUoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRfUE9TVCwgJ3RlbGVwaG9uZScpKSk7CiAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnZmF4JywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCAnZmF4JykpKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdjb250YWN0X2VtYWlsJywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCdjb250YWN0X2VtYWlsJykpKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCd3ZWJzaXRlJywgY21zX2h0bWxfZW50aXR5X2RlY29kZShjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCd3ZWJzaXRlJykpKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdkZXRhaWxzJywgY2dlX3BhcmFtOjpnZXRfaHRtbCgkX1BPU1QsJ2RldGFpbHMnKSk7CiAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnbGF0aXR1ZGUnLCBjZ2VfcGFyYW06OmdldF9mbG9hdCgkX1BPU1QsICdsYXRpdHVkZScpKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdsb25naXR1ZGUnLCBjZ2VfcGFyYW06OmdldF9mbG9hdCgkX1BPU1QsICdsb25naXR1ZGUnKSk7CiAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnaGllcl9pZCcsIGNnZV9wYXJhbTo6Z2V0X2ludCgkX1BPU1QsICdoaWVyX2lkJykpOwogICAgICAgIGlmKCAkc2V0dGluZ3MtPmZyb250ZW5kX2NoYW5nZXN0YXR1cyApICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ3N0YXR1cycsIGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsJ3N0YXR1cycpKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCd1cmwnLCBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsICd1cmwnKSkpOwogICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ3BpY3R1cmVfbG9jYXRpb24nLCBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCdwaWN0dXJlX2xvY2F0aW9uJykpOwogICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2xvZ29fbG9jYXRpb24nLCBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCdsb2dvX2xvY2F0aW9uJykpOwoKICAgICAgICAvLyBzYXZlIGZpZWxkcyB0ZW1wb3JhcmlseQogICAgICAgICRvbGRmaWVsZHMgPSAkY29tcGFueS0+ZmllbGRzOyAgLy8gcHJlc2VydmUgdGhpcyBmb3IgY29tcGFyaXNvbiBsYXRlci4KCiAgICAgICAgLy8gcHJvY2VzcyBmaWVsZHMuCiAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+Y2xlYXJGaWVsZHMoKTsKICAgICAgICBpZiggIWVtcHR5KCRmaWVsZGRlZl9saXN0KSApIHsKICAgICAgICAgICAgYXJyYXlfd2FsaygkZmllbGRkZWZfbGlzdCwgZnVuY3Rpb24oJGRlZikgdXNlICgmJGNvbXBhbnkpIHsKICAgICAgICAgICAgICAgICAgICAvLyB3ZSBoYW5kbGUgaW1hZ2UgYW5kIGZpbGUgZmllbGRzIGJlbG93CiAgICAgICAgICAgICAgICAgICAgJGtleSA9ICdmaWVsZF8nLiRkZWYtPmlkOwogICAgICAgICAgICAgICAgICAgIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJGtleSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkX1BPU1QsJGtleSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdmFsKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSBhcnJheV9tYXAoZnVuY3Rpb24oJGl0ZW0pewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkaXRlbSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiggJGRlZi0+dHlwZSA9PSAndGV4dGFyZWEnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9IGNnZV9wYXJhbTo6Z2V0X2h0bWwoJF9QT1NULCRrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoICFlbXB0eSgkdmFsKSApICRjb21wYW55ID0gJGNvbXBhbnktPndpdGhGaWVsZCgkZGVmLT5pZCwgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAvLyBwcm9jZXNzIGNhdGVnb3JpZXMKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT5jbGVhckNhdGVnb3JpZXMoKTsKICAgICAgICBpZiggKCR0bXAgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkX1BPU1QsJ2NhdGVnb3JpZXMnKSkgICkgewogICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkb25lID0gKGludCkgJG9uZTsKICAgICAgICAgICAgICAgIGlmKCAkb25lID4gMCApICRjb21wYW55ID0gJGNvbXBhbnktPndpdGhDYXRlZ29yeSgkb25lKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gdmFsaWRhdGlvbgoKICAgICAgICAvLyBzYXZlIGl0IChhbmQgZ2V0IGFuIGlkKQogICAgICAgICRjb21wYW55ID0gJGNvbXBhbnlfbWFuYWdlci0+c2F2ZSggJGNvbXBhbnkgKTsKCiAgICAgICAgLy8gZGVsZXRlIG9sZCBmaWxlcwogICAgICAgICRkZWxfZmlsZXMgPSBudWxsOwogICAgICAgIGlmKCAkb2xkX3BpY3R1cmUgJiYgJG9sZF9waWN0dXJlICE9ICRjb21wYW55LT5waWN0dXJlX2xvY2F0aW9uICkgewogICAgICAgICAgICAvLyBkZWxldGUgdGhlIG9sZCBpbWFnZQogICAgICAgICAgICAkZGVsX2ZpbGVzW10gPSAkb2xkX3BpY3R1cmU7CiAgICAgICAgfQogICAgICAgIGlmKCAkb2xkX2xvZ28gJiYgJG9sZF9sb2dvICE9ICRjb21wYW55LT5sb2dvX2xvY2F0aW9uKSB7CiAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGUgb2xkIGxvZ28KICAgICAgICAgICAgJGRlbF9maWxlc1tdID0gJG9sZF9sb2dvOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoKCAkZmllbGRkZWZfbGlzdCBhcyAkZmRpZCA9PiAkZGVmICkgewogICAgICAgICAgICBpZiggJGRlZi0+dHlwZSAhPSAnZmlsZScgJiYgJGRlZi0+dHlwZSAhPSAnaW1hZ2UnICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCBpc3NldCgkb2xkZmllbGRzWyRmZGlkXSkgJiYgIWVtcHR5KCRvbGRmaWVsZHNbJGZkaWRdKSAmJgogICAgICAgICAgICAgICAgKCFpc3NldCgkY29tcGFueS0+ZmllbGRzWyRmZGlkXSkgfHwgJGNvbXBhbnktPmZpZWxkc1skZmRpZF0gIT0gJG9sZGZpZWxkc1skZmRpZF0pICkgewogICAgICAgICAgICAgICAgLy9kZWxldGUgb2xkIGZpZWxkIHZhbHVlcwogICAgICAgICAgICAgICAgJGRlbF9maWxlc1tdID0gJG9sZGZpZWxkc1skZmRpZF07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoICFlbXB0eSgkZGVsX2ZpbGVzKSApIHsKICAgICAgICAgICAgJGNvbXBhbnlfbWFuYWdlci0+ZGVsZXRlX2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICRkZWxfZmlsZXMpOwogICAgICAgIH0KCiAgICAgICAgLy8gY29weSBuZXcgZmlsZXMKICAgICAgICAkdG1wX3VwbG9hZF9tYW5hZ2VyID0gJHRoaXMtPmNyZWF0ZV90bXBfdXBsb2FkX21hbmFnZXIoJGd1aWQpOwogICAgICAgIGlmKCAoJGZpbGVzID0gJHRtcF91cGxvYWRfbWFuYWdlci0+bGlzdF91cGxvYWRlZF9maWxlcygpKSApIHsKICAgICAgICAgICAgJGNvbXBhbnlfbWFuYWdlci0+Y29weV9jb21wYW55X2ZpbGVzKCRjb21wYW55LCAkZmlsZXMpOwogICAgICAgIH0KCiAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6Ok9uRnJvbnRlbmRVcGRhdGUnLCAkY29tcGFueSwgJGJlaGF2aW9yKTsKCiAgICAgICAgLy8gcmVkaXJlY3QgYWZ0ZXIgcG9zdAogICAgICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2ZlX2VkaXQnLCRyZXR1cm5pZCxbJ2NvbXBhbnlpZCc9PiRjb21wYW55LT5pZCwnYWZ0ZXInPT4xXSk7CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAkbWVzc2FnZSA9ICRlLT5HZXRNZXNzYWdlKCk7CiAgICB9Cn0KCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKJHRwbC0+YXNzaWduKCdjb21wYW55JywgJGNvbXBhbnkpOwppZiggJHNldHRpbmdzLT5mcm9udGVuZF9jaGFuZ2VzdGF0dXMgKSB7CiAgICAkc3RhdHVzZXMgPSBbICR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKT0+J3B1Ymxpc2hlZCcsICR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnIF07CiAgICAkdHBsLT5hc3NpZ24oJ3N0YXR1c2VzJyxhcnJheV9mbGlwKCRzdGF0dXNlcykpOwp9CiR0cGwtPmFzc2lnbignZmluYWxfbWVzc2FnZScsICRmaW5hbF9tZXNzYWdlKTsKJHRwbC0+YXNzaWduKCdyZXFfZ3VpZCcsIGNnZV91dGlsczo6Y3JlYXRlX2d1aWQoKSk7IC8vIHVzZWQgZm9yIGEgbG9jYXRpb24gZm9yIHRlbXBvcmFyeSBmaWxlcy4KJHRwbC0+YXNzaWduKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwokdHBsLT5hc3NpZ24oJ2hhdmVfYWxidW0nLCAkaGF2ZV9hbGJ1bSk7CiR0cGwtPmFzc2lnbignY2FuX2dlb2NvZGUnLCAkdGhpcy0+aGF2ZV9nZW9jb2RlcigpKTsKJHRwbC0+YXNzaWduKCdmaWVsZGRlZnMnLCAkZmllbGRkZWZfbGlzdCk7CiR0cGwtPmFzc2lnbignY2F0ZWdvcnlfbGlzdCcsICR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpLT5nZXRfbGlzdCgpKTsKJHRwbC0+YXNzaWduKCdoaWVyYXJjaHlfbGlzdCcsICR0aGlzLT5nZXRfaGllcmFyY2h5X21hbmFnZXIoKS0+Z2V0X2xpc3QoKSk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.fe_edit_album.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokdGhldGVtcGxhdGUgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZnJvbnRlbmRhbGJ1bScsJ29yaWdfZnJvbnRlbmRhbGJ1bV90ZW1wbGF0ZS50cGwnKTsKJGZldSA9ICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpOwppZiggISRmZXUgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdGcm9udEVuZFVzZXJzIG1vZHVsZSBub3QgZm91bmQnKTsKJGZldV91aWQgPSAkZmV1LT5Mb2dnZWRJbklkKCk7CmlmKCAhJGZldV91aWQgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJGZkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZmRpZCcpOwokY29tcGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBhbnlpZCcpOwppZiggJGNvbXBpZCA8IDAgfHwgJGZkaWQgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ01pc3Npbmcgb3IgaW52YWxpZCBwYXJhbWV0ZXJzJyk7CiRmaWVsZGRlZnMgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+bG9hZF9hbGwoKTsKaWYoICEkZmllbGRkZWZzICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignVGhlcmUgYXJlIG5vIGZpZWxkIGRlZmluaXRpb25zLi4gY2Fubm90IGVkaXQgYWxidW0nKTsKJHRtcCA9IGFycmF5X2ZpbHRlcigkZmllbGRkZWZzLCBmdW5jdGlvbihGaWVsZERlZmluaXRpb24gJGl0ZW0pIHVzZSAoJGZkaWQpIHsKICAgICAgICBpZiggJGl0ZW0tPmlkID09ICRmZGlkICYmICRpdGVtLT50eXBlID09ICdhbGJ1bScgJiYgISRpdGVtLT5hZG1pbl9vbmx5ICkgcmV0dXJuICRpdGVtOwogICAgfSk7CmlmKCBlbXB0eSgkdG1wKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdBIHZhbGlkIGFsYnVtIGZpZWxkIGRlZmluaXRpb24gd2l0aCBpZCAnLiRmbGRpZC4nIGNvdWxkIG5vdCBiZSBmb3VuZCcpOwokYWxidW1fZmllbGQgPSBjdXJyZW50KCR0bXApOwokY29tcGFueSA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCktPmxvYWRfYnlfaWQoJGNvbXBpZCk7CmlmKCAkY29tcGFueS0+b3duZXJfaWQgIT0gJGZldV91aWQgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUpOwokdHBsLT5hc3NpZ24oJ2NvbXBhbnknLCAkY29tcGFueSk7CiR0cGwtPmFzc2lnbignZmllbGRkZWYnLCAkYWxidW1fZmllbGQpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.fe_importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcSG9va01hbmFnZXI7CnVzZSBjZ2VfcGFyYW07CnVzZSBjZ2VfdXRpbHM7CnVzZSBjZ2VfYXJyYXk7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwoKdHJ5IHsKICAgICRzZXR0aW5ncyA9ICR0aGlzLT5nZXRfc2V0dGluZ3MoKTsKICAgIGlmKCAhJHNldHRpbmdzLT5mcm9udGVuZF9pbXBvcnQgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdGcm9udGVuZCBpbXBvcnQgaXMgZGlzYWJsZWQnKTsKICAgIGlmKCAkc2V0dGluZ3MtPnVybF9yZXF1aXJlZCAmJiAhJHNldHRpbmdzLT51cmxfYXV0b2NyZWF0ZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1VSTCBzbHVnIHNldHRpbmdzIHByZXZlbnQgaW1wb3J0Jyk7CiAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKCiAgICAkdGhldGVtcGxhdGUgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnZmVfaW1wb3J0X3RlbXBsYXRlcycsJ29yaWdfZnJvbnRlbmRpbXBvcnRfdGVtcGxhdGUudHBsJyk7CiAgICAkbWF4X3JlY29yZHMgPSAkc2V0dGluZ3MtPmZyb250ZW5kX21heHJlY29yZHM7CiAgICAkZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICBpZiggIWlzX29iamVjdCgkZmV1KSApIHRocm93IG5ldyBcQ21zRXJyb3I0MDNFeGNlcHRpb24oJ05vIEZFVSBNb2R1bGUnKTsKICAgICRmZXVfdWlkID0gJGZldS0+TG9nZ2VkSW5JZCgpOwogICAgaWYoICRmZXVfdWlkIDw9IDAgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwogICAgJG15X3NldHRpbmdzID0gKG9iamVjdCkgWwogICAgICAgICdoaWVyYXJjaHknID0+IG51bGwsICdjYXRlZ29yeSc9Pm51bGwsICdkZWxpbWV0ZXInPT4nLCcsICdlbmNsb3N1cmUnPT4nIicsICdnZW9jb2RlJz0+dHJ1ZSwgJ3N0YXR1cyc9PidkcmFmdCcKICAgICAgICBdOwoKICAgICRjZHF1ZXJ5ID0gWwogICAgICAgICdhbmQ6b3duZXJfaWQ6ZXE6Jy4kZmV1X3VpZCwKICAgICAgICAnc29ydGJ5Om1vZGlmaWVkX2RhdGUnLAogICAgICAgICdzb3J0b3JkZXI6REVTQycsCiAgICAgICAgXTsKICAgICRmYWN0b3J5ID0gJHRoaXMtPmdldF9xdWVyeV9mYWN0b3J5KCk7CiAgICAkY2RxdWVyeSA9ICRmYWN0b3J5LT5jcmVhdGVfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKCRjZHF1ZXJ5KTsKICAgICRzcWwgPSAkZmFjdG9yeS0+Z2VuZXJhdGVfcXVlcnkoJGNkcXVlcnkpOwogICAgJHJlc3VsdHMgPSAkY29tcGFueV9tYW5hZ2VyLT5sb2FkX2J5X3F1ZXJ5KCRzcWwpOwogICAgaWYoICRtYXhfcmVjb3JkcyA+PSAwICYmICRyZXN1bHRzLT50b3RhbCA+PSAkbWF4X3JlY29yZHMgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ltcG9ydF9ub3RhbGxvd2VkJykpOwogICAgJG1heF9yZWNvcmRzID0gJG1heF9yZWNvcmRzIDwgMSA/IC0xIDogJG1heF9yZWNvcmRzIC0gJHJlc3VsdHMtPnRvdGFsOwoKICAgICRlcnJvciA9ICRmaW5hbF9tc2cgPSBudWxsOwogICAgaWYoICFlbXB0eSgkX1BPU1QpICkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmKCAhY2dlX3V0aWxzOjp2YWxpZF9mb3JtX2NzcmYoKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyX2Zyb250ZW5kX3NlY3VyaXR5JykpOwoKICAgICAgICAgICAgJGxpbmVfbnVtID0gMDsKICAgICAgICAgICAgJG1hcCA9IG51bGw7CiAgICAgICAgICAgICRteV9zZXR0aW5ncy0+aGllcmFyY2h5ID0gY2dlX3BhcmFtOjpnZXRfaW50KCRfUE9TVCwnaGllcmFyY2h5Jyk7CiAgICAgICAgICAgICRteV9zZXR0aW5ncy0+Y2F0ZWdvcnkgPSBjZ2VfcGFyYW06OmdldF9pbnQoJF9QT1NULCdjYXRlZ29yeScpOwogICAgICAgICAgICAkbXlfc2V0dGluZ3MtPmRlbGltZXRlciA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkX1BPU1QsICdkZWxpbWV0ZXInKTsKICAgICAgICAgICAgJG15X3NldHRpbmdzLT5lbmNsb3N1cmUgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJF9QT1NULCAnZW5jbG9zdXJlJyk7CgogICAgICAgICAgICBpZiggIWlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkgfHwgJF9GSUxFU1snZmlsZSddWydzaXplJ10gPT0gMCB8fCAkX0ZJTEVTWydmaWxlJ11bJ2Vycm9yJ10gIT0gMCApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfYmFkdXBsb2FkJykpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAkX0ZJTEVTWydmaWxlJ11bJ3R5cGUnXSAhPSAndGV4dC9jc3YnICYmICRfRklMRVNbJ2ZpbGUnXVsndHlwZSddICE9ICd0ZXh0L3BsYWluJyApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfYmFkdXBsb2FkJykpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdG1wID0gJHRoaXMtPmdldF9maWVsZGRlZl9tYW5hZ2VyKCktPmxvYWRfcHVibGljKCk7CiAgICAgICAgICAgICRmaWVsZHMgPSBudWxsOwogICAgICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJGZpZWxkICkgewogICAgICAgICAgICAgICAgICAgICRmaWVsZHNbJGZpZWxkLT5uYW1lXSA9ICRmaWVsZC0+aWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1bnNldCgkdG1wKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gb3BlbiB0aGUgZmlsZQogICAgICAgICAgICAkZmggPSAkdGhpcy0+cmVhZF90ZXh0X2ZpbGUoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddKTsKCiAgICAgICAgICAgICRnZXRfY3N2ID0gZnVuY3Rpb24oJGZoLCAkZGVsaW0gPSAnLCcsICRlbmNsID0gJyInKSB1c2UgKCYkbGluZV9udW0pIHsKICAgICAgICAgICAgICAgIHdoaWxlKCFmZW9mKCRmaCkpIHsKICAgICAgICAgICAgICAgICAgICAkb3V0ID0gZmdldGNzdigkZmgpOwogICAgICAgICAgICAgICAgICAgICRsaW5lX251bSsrOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJG91dCB8fCBjb3VudCgkb3V0KSA9PSAxICYmIGVtcHR5KCRvdXRbMF0pKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB5aWVsZCAkb3V0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgJGNyZWF0ZV9jb21wYW55ID0gZnVuY3Rpb24oYXJyYXkgJGluLCAkbWFwKSB1c2UgKCYkbGluZV9udW0sICRjb21wYW55X21hbmFnZXIsICRteV9zZXR0aW5ncywgJHNldHRpbmdzLCAkZmllbGRzLCAkZmV1X3VpZCkgewogICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueV9tYW5hZ2VyLT5jcmVhdGVfbmV3X2NvbXBhbnkoKTsKICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ293bmVyX2lkJywgJGZldV91aWQpOwogICAgICAgICAgICAgICAgaWYoICRteV9zZXR0aW5ncy0+c3RhdHVzICkgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnc3RhdHVzJywgJG15X3NldHRpbmdzLT5zdGF0dXMpOwogICAgICAgICAgICAgICAgaWYoICRteV9zZXR0aW5ncy0+aGllcmFyY2h5ID4gMCApICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2hpZXJfaWQnLCAkbXlfc2V0dGluZ3MtPmhpZXJhcmNoeSk7CiAgICAgICAgICAgICAgICBpZiggJG15X3NldHRpbmdzLT5jYXRlZ29yeSA+IDAgKSAkY29tcGFueSA9ICRjb21wYW55LT53aXRoQ2F0ZWdvcnkoJG15X3NldHRpbmdzLT5jYXRlZ29yeSk7CiAgICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkbWFwKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICAgICAkZmllbGQgPSAkbWFwWyRpXTsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gJGluWyRpXSA/OiBudWxsOwogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJGZpZWxkICkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbXBhbnlfbmFtZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2NvbXBhbnlfbmFtZScsIHN0cmlwX3RhZ3MoJHZhbCkpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdhZGRyZXNzJzoKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9IHRyaW0oc3RyaXBfdGFncygkdmFsKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2FkZHJlc3MnLCAkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGVsZXBob25lJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgndGVsZXBob25lJywgc3RyaXBfdGFncygkdmFsKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ZheCc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2ZheCcsIHN0cmlwX3RhZ3MoJHZhbCkpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250YWN0X2VtYWlsJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnY29udGFjdF9lbWFpbCcsIHN0cmlwX3RhZ3MoJHZhbCkpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICd3ZWJzaXRlJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnd2Vic2l0ZScsIHN0cmlwX3RhZ3MoJHZhbCkpOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdkZXRhaWxzJzoKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnZGV0YWlscycsIGNnZV91dGlsczo6Y2xlYW5faW5wdXRfaHRtbCgkdmFsKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3VybCc6CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGlnbm9yZSB1cmwgd2hlbiBpbXBvcnRpbmcgb24gdGhlIGZyb250ZW5kLgogICAgICAgICAgICAgICAgICAgICAgICAvLyAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCd1cmwnLCAkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbGF0aXR1ZGUnOgogICAgICAgICAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdsYXRpdHVkZScsIChmbG9hdCkgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2xvbmdpdHVkZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2xvbmdpdHVkZScsIChmbG9hdCkgJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvZG86IGZvciB0ZXh0YXJlYSBmaWVsZHMsIHdlIHNob3VsZCBoYW5kbGUgdmFsaWQgSFRNTAogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0gc3RyaXBfdGFncygkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGZpZWxkLCdmaWVsZDonKSAmJiAhZW1wdHkoJGZpZWxkcykgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmRuYW1lID0gc3Vic3RyKCRmaWVsZCw2KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkZmllbGRzWyRmZG5hbWVdKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmRpZCA9ICRmaWVsZHNbJGZkbmFtZV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aEZpZWxkKCRmZGlkLCAkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKCBzdGFydHN3aXRoKCRmaWVsZCwnZjonKSAmJiAhZW1wdHkoJGZpZWxkcykgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmRuYW1lID0gc3Vic3RyKCRmaWVsZCwyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkZmllbGRzWyRmZG5hbWVdKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZmRpZCA9ICRmaWVsZHNbJGZkbmFtZV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aEZpZWxkKCRmZGlkLCAkdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiggISRjb21wYW55LT5sYXRpdHVkZSAmJiAhJGNvbXBhbnktPmxvbmdpdHVkZSAmJiAkY29tcGFueS0+YWRkcmVzcyAmJiAkbXlfc2V0dGluZ3MtPmdlb2NvZGUgJiYgJHRoaXMtPmhhdmVfZ2VvY29kZXIoKSApIHsKICAgICAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPmdldF9nZW9jb2RlcigpLT5sb2NhdGVfYnlfc3RyaW5nKCRjb21wYW55LT5hZGRyZXNzKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyAmJiAkcmVzLT5jb25maWRlbmNlID4gMC40ICkgewogICAgICAgICAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdsYXRpdHVkZScsICRyZXMtPmxhdGl0dWRlKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY29tcGFueS0+d2l0aCgnbG9uZ2l0dWRlJywgJHJlcy0+bG9uZ2l0dWRlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gJGNvbXBhbnk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICAkbnVtX3NhdmVkID0gMDsKICAgICAgICAgICAgZm9yZWFjaCgkZ2V0X2NzdigkZmgsICRteV9zZXR0aW5ncy0+ZGVsaW1ldGVyLCAkbXlfc2V0dGluZ3MtPmVuY2xvc3VyZSkgYXMgJGNzdikgewogICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkY3N2KSB8fCBjZ2VfYXJyYXk6OmlzX2hhc2goJGNzdikgfHwgY291bnQoJGNzdikgPCAyIHx8IGVtcHR5KCRjc3ZbMF0pICkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW1wb3J0X2JhZGxpbmUnLCAkbGluZV9udW0pKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKCAkbGluZV9udW0gPT0gMSApIHsKICAgICAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCdjb21wYW55X25hbWUnLCAkY3N2KSB8fCAhaW5fYXJyYXkoJ2FkZHJlc3MnLCAkY3N2KSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbXBvcnRfYmFkaGVhZGVyJykpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkbWFwID0gJGNzdjsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBub3cgZG8gcmVndWxhciBsaW5lLgogICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkY3JlYXRlX2NvbXBhbnkoJGNzdiwgJG1hcCk7CiAgICAgICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55X21hbmFnZXItPnNhdmUoJGNvbXBhbnkpOwogICAgICAgICAgICAgICAgJG1heF9yZWNvcmRzLS07CiAgICAgICAgICAgICAgICAkbnVtX3NhdmVkKys7CgogICAgICAgICAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6Ok9uRnJvbnRlbmRVcGRhdGUnLCAkY29tcGFueSwgJ2FkZCcpOwoKICAgICAgICAgICAgICAgIGlmKCAkbWF4X3JlY29yZHMgPT0gMCApIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRmaW5hbF9tc2cgPSAkdGhpcy0+TGFuZygncHJvbXB0X251bWltcG9ydGVkJykuJzogJy4kbnVtX3NhdmVkOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgJGVycm9yID0gJGUtPkdldE1lc3NhZ2UoKTsKICAgICAgICB9CiAgICB9CgogICAgJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUpOwogICAgJHRwbC0+YXNzaWduKCdudW1fcmVjb3JkcycsICRyZXN1bHRzLT50b3RhbCk7CiAgICAkdHBsLT5hc3NpZ24oJ21heF9yZWNvcmRzJywgJG1heF9yZWNvcmRzKTsKICAgICR0cGwtPmFzc2lnbignc2V0dGluZ3MnLCAkbXlfc2V0dGluZ3MpOwogICAgJHRwbC0+YXNzaWduKCdjYXRlZ29yeV9saXN0JywgJHRoaXMtPmdldF9jYXRlZ29yeV9tYW5hZ2VyKCktPmdldF9saXN0KCkpOwogICAgJHRwbC0+YXNzaWduKCdoaWVyYXJjaHlfbGlzdCcsICR0aGlzLT5nZXRfaGllcmFyY2h5X21hbmFnZXIoKS0+Z2V0X2xpc3QoKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Vycm9yJywgJGVycm9yKTsKICAgICR0cGwtPmFzc2lnbignZmluYWxfbXNnJywgJGZpbmFsX21zZyk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICBjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgdGhyb3cgJGU7Cn0KIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.frontendlist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCi8vCi8vIEluaXRpYWxpemF0aW9uCi8vCi8vIGZyb250ZW5kbGlzdF8KJHRoZXRlbXBsYXRlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Zyb250ZW5kbGlzdHRlbXBsYXRlJywgJ29yaWdfZnJvbnRlbmRsaXN0X3RlbXBsYXRlLnRwbCcpOwokZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCAhaXNfb2JqZWN0KCRmZXUpICkgdGhyb3cgbmV3IFxDbXNFcnJvcjQwM0V4Y2VwdGlvbignTm8gRkVVIE1vZHVsZScpOwokZmV1X3VpZCA9ICRmZXUtPkxvZ2dlZEluSWQoKTsKaWYoICRmZXVfdWlkIDw9IDAgKSB0aHJvdyBuZXcgXENtc0Vycm9yNDAzRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcpOwokc2V0dGluZ3MgPSAkdGhpcy0+Z2V0X3NldHRpbmdzKCk7CiRtYXhfcmVjb3JkcyA9ICRzZXR0aW5ncy0+ZnJvbnRlbmRfbWF4cmVjb3JkczsKaWYoICRtYXhfcmVjb3JkcyA8IDEgKSAkbWF4X3JlY29yZHMgPSAxMDAwMDAwOwoKCi8vCi8vIEdldCBkYXRhCi8vCiRmaWVsZGRlZnMgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+bG9hZF9hbGwoKTsKJGhhdmVfYWxidW0gPSBudWxsOwpmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRkZWYgKSB7CiAgICBpZiggJGRlZi0+dHlwZSA9PSAnYWxidW0nICkgewogICAgICAgICRoYXZlX2FsYnVtID0gJGRlZi0+aWQ7CiAgICAgICAgYnJlYWs7CiAgICB9Cn0KCiRjZHF1ZXJ5ID0gWwogICAgJ2FuZDpvd25lcl9pZDplcTonLiRmZXVfdWlkLAogICAgJ3NvcnRieTptb2RpZmllZF9kYXRlJywKICAgICdzb3J0b3JkZXI6REVTQycsCiAgICBdOwokZmFjdG9yeSA9ICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpOwokY2RxdWVyeSA9ICRmYWN0b3J5LT5jcmVhdGVfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKCRjZHF1ZXJ5KTsKaWYoICgkcGFnZSA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkX1JFUVVFU1QsICdwYWdlJykpID4gMSApIHsKICAgICRjZHF1ZXJ5ID0gJGZhY3RvcnktPmFkanVzdF9xdWVyeV9mb3JfcGFnZSgkY2RxdWVyeSwgJHBhZ2UpOwp9CiRzcWwgPSAkZmFjdG9yeS0+Z2VuZXJhdGVfcXVlcnkoJGNkcXVlcnkpOwokcmVzdWx0cyA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCktPmxvYWRfYnlfcXVlcnkoJHNxbCk7CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CiR0cGwtPmFzc2lnbigncmVjb3JkcycsICRyZXN1bHRzKTsKJHRwbC0+YXNzaWduKCdoYXZlX2FsYnVtJywgJGhhdmVfYWxidW0pOwokdHBsLT5hc3NpZ24oJ21heF9yZWNvcmRzJywkbWF4X3JlY29yZHMpOwokdHBsLT5hc3NpZ24oJ2Nhbl9hZGQnLCAkc2V0dGluZ3MtPmZyb250ZW5kX2NyZWF0ZSAmJiAkcmVzdWx0cy0+dG90YWwgPCAkbWF4X3JlY29yZHMpOwokdHBsLT5hc3NpZ24oJ2Nhbl9pbXBvcnQnLCAkc2V0dGluZ3MtPmZyb250ZW5kX2ltcG9ydCAmJiAkcmVzdWx0cy0+dG90YWwgPCAkbWF4X3JlY29yZHMpOwokdHBsLT5hc3NpZ24oJ2Nhbl9kZWxldGUnLCAkc2V0dGluZ3MtPmZyb250ZW5kX2RlbGV0ZSk7CiR0cGwtPmRpc3BsYXkoKTsK]]></data>
	</file>
	<file>
	  <filename>/CompanyDirectory.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE5IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCnVzZSBDTVNNU1xIb29rTWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcQ29tcGFueTsKdXNlIENvbXBhbnlEaXJlY3RvcnlcRmllbGREZWZpbml0aW9uOwp1c2UgQ29tcGFueURpcmVjdG9yeVxVdGlsczsKdXNlIENvbXBhbnlEaXJlY3Rvcnlcc2V0dGluZ3M7CnVzZSBDb21wYW55RGlyZWN0b3J5XFNtYXJ0eVBsdWdpbnM7CnVzZSBDb21wYW55RGlyZWN0b3J5XElDYXRlZ29yeU1hbmFnZXI7CnVzZSBDb21wYW55RGlyZWN0b3J5XENhdGVnb3J5TWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcQ2F0ZWdvcnlNYW5hZ2VyQ2FjaGVEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XENhdGVnb3J5TWFuYWdlckZpbGVEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XENhdGVnb3J5TWFuYWdlckhvb2tEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XENhdGVnb3J5TWFuYWdlckF1ZGl0RGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxJSGllcmFyY2h5TWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcSGllcmFyY2h5TWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcSGllcmFyY2h5TWFuYWdlckNhY2hlRGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxIaWVyYXJjaHlNYW5hZ2VySG9va0RlY29yYXRvcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcSGllcmFyY2h5TWFuYWdlckF1ZGl0RGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxJU2VhcmNoSGVscGVyOwp1c2UgQ29tcGFueURpcmVjdG9yeVxTZWFyY2hIZWxwZXI7CnVzZSBDb21wYW55RGlyZWN0b3J5XElVcmxTbHVnSGVscGVyOwp1c2UgQ29tcGFueURpcmVjdG9yeVxVcmxTbHVnSGVscGVyOwp1c2UgQ29tcGFueURpcmVjdG9yeVxJQ29tcGFueU1hbmFnZXI7CnVzZSBDb21wYW55RGlyZWN0b3J5XENvbXBhbnlNYW5hZ2VyOwp1c2UgQ29tcGFueURpcmVjdG9yeVxDb21wYW55TWFuYWdlclN0YXRpY1JvdXRlRGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxDb21wYW55TWFuYWdlckF1dG9VUkxEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XENvbXBhbnlNYW5hZ2VyRmlsZUNhY2hlRGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxDb21wYW55TWFuYWdlck1lbW9yeUNhY2hlRGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxDb21wYW55TWFuYWdlckhvb2tEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XENvbXBhbnlNYW5hZ2VyQXVkaXREZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XENvbXBhbnlNYW5hZ2VyU2VhcmNoRGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxJTWV0YVF1ZXJ5TWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcTWV0YVF1ZXJ5TWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcTWV0YVF1ZXJ5Q2FjaGVEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XElGaWVsZERlZk1hbmFnZXI7CnVzZSBDb21wYW55RGlyZWN0b3J5XEZpZWxkRGVmTWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcRmllbGREZWZNYW5hZ2VyQ2FjaGVEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XEZpZWxkRGVmTWFuYWdlckhvb2tEZWNvcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XEZpZWxkRGVmTWFuYWdlckF1ZGl0RGVjb3JhdG9yOwp1c2UgQ29tcGFueURpcmVjdG9yeVxJVG1wVXBsb2FkTWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcVG1wVXBsb2FkTWFuYWdlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcTGlua0RlZmluaXRpb25HZW5lcmF0b3I7CnVzZSBDb21wYW55RGlyZWN0b3J5XEFsYnVtVXBsb2FkSGFuZGxlcjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcSVF1ZXJ5RmFjdG9yeTsKdXNlIENvbXBhbnlEaXJlY3RvcnlcQ0RRdWVyeUZhY3Rvcnk7CnVzZSBDb21wYW55RGlyZWN0b3J5XFNxbFF1ZXJ5Owp1c2UgQ29tcGFueURpcmVjdG9yeVxJR2VvQ29kZXI7CnVzZSBcQ0dFeHRlbnNpb25zXExpbmtEZWZpbml0aW9uIEFTIEJBU0U7CnVzZSBDb21wYW55RGlyZWN0b3J5XENhY2hlZFVzZXJQcmVmZXJlbmNlczsKdXNlIENvbXBhbnlEaXJlY3Rvcnlccm91dGVfbWFuYWdlcl9zdHViOwoKdXNlIENvbXBhbnlEaXJlY3RvcnlcSGllcmFyY2h5UXVlcnlFeHByZXNzaW9uOwp1c2UgQ29tcGFueURpcmVjdG9yeVxDYXRlZ29yeVF1ZXJ5RXhwcmVzc2lvbjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcRmllbGRRdWVyeUV4cHJlc3Npb247CnVzZSBDb21wYW55RGlyZWN0b3J5XEZ1bGx0ZXh0UXVlcnlFeHByZXNzaW9uOwp1c2UgQ29tcGFueURpcmVjdG9yeVxJZGxpc3RRdWVyeUV4cHJlc3Npb247CnVzZSBDb21wYW55RGlyZWN0b3J5XFJhZGl1c1F1ZXJ5RXhwcmVzc2lvbjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcVmFsaWRPd25lclF1ZXJ5RXhwcmVzc2lvbjsKdXNlIENvbXBhbnlEaXJlY3RvcnlcQXJlYVF1ZXJ5RXhwcmVzc2lvbjsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCmNsYXNzIENvbXBhbnlEaXJlY3RvcnlFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24ge30KCi8vIHRoaXMgaXMgYSBzdHJlYW0gZmlsdGVyIHRoYXQgaGFuZGxlcyByZXNvbHZpbmcgZmlsZXMgd2l0aCBcciBvciBcclxuIGxpbmUgZW5kaW5ncyBhbmQgY29udmVydGluZyB0aGVtIHRvIGEgUkVBTCBmb3JtYXQgOikKLy8gdGVzdGVkIHVzaW5nIHRoaXMgd2lsbCBhIGNzdiBmaWxlIHdpdGggc3RyaWN0bHkgXHIgbGluZSBlbmRpbmdzCi8vIHRlc3RlZCB1c2luZyB0aGlzIHdpdGggYSBjc3YgZmlsZSB3aXRoIFxuIGxpbmUgZW5kaW5kcy4KY2xhc3MgY2RfbWFjX3RvX3VuaXhfZmlsdGVyIGV4dGVuZHMgXHBocF91c2VyX2ZpbHRlciB7CiAgICBmdW5jdGlvbiBmaWx0ZXIoJGluLCAkb3V0LCAmJGNvbnN1bWVkLCAkY2xvc2luZykgewoKICAgICAgICB3aGlsZSAoICRidWNrZXQgPSBzdHJlYW1fYnVja2V0X21ha2Vfd3JpdGVhYmxlKCRpbikgKSB7CiAgICAgICAgICAgICRidWNrZXQtPmRhdGEgPSBwcmVnX3JlcGxhY2UoJy9cclxuPy8nLCAiXG4iLCAkYnVja2V0LT5kYXRhKTsKICAgICAgICAgICAgJGNvbnN1bWVkICs9ICRidWNrZXQtPmRhdGFsZW47CiAgICAgICAgICAgIHN0cmVhbV9idWNrZXRfYXBwZW5kKCRvdXQsICRidWNrZXQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gUFNGU19QQVNTX09OOwogICAgfQp9OwoKCmZpbmFsIGNsYXNzIENvbXBhbnlEaXJlY3RvcnkgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCk7CiAgICAgICAgJHRoaXMtPkFkZEltYWdlRGlyKCdpY29ucycpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpIHsgcmV0dXJuIFRSVUU7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldFZlcnNpb24oKSB7IHJldHVybiAnMS45MDInOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkgeyByZXR1cm4gJzIuMi4xMCc7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBVbmluc3RhbGxQcmVNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3ByZXVuaW5zdGFsbCcpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgICB7CiAgICAgICAgcmV0dXJuIFsgJ0NHRXh0ZW5zaW9ucyc9PicxLjY0JywgJ0NHU2ltcGxlU21hcnR5Jz0+JzEuOScsICdKUXVlcnlUb29scyc9PicxLjQnLCAnQ0dTbWFydEltYWdlJz0+JzEuMjEnIF07CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpIHx8CiAgICAgICAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSB8fAogICAgICAgICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCiAgICB7CiAgICAgICAgLy8gaW4gMi4yLnggdGhpcyBtZXRob2QgY291bGQgYmUgY2FsbGVkIHR3aWNlLgogICAgICAgIHN0YXRpYyAkY250OwogICAgICAgIGlmKCAkY250ICkgcmV0dXJuOwogICAgICAgICRjbnQgPSAxOwoKICAgICAgICBwYXJlbnQ6OlNldFBhcmFtZXRlcnMoKTsKICAgICAgICAvLyBmb3JjZSBjZHV0aWxzIHRvIGxvYWQuCiAgICAgICAgJHRoaXMtPmdldF9jZHV0aWxzKCk7CiAgICAgICAgc3RyZWFtX2ZpbHRlcl9yZWdpc3RlcignY2RfZml4X25ld2xpbmVzJywgJ2NkX21hY190b191bml4X2ZpbHRlcicpOwoKICAgICAgICAkc21hcnR5ID0gJHRoaXMtPmNtcy0+R2V0U21hcnR5KCk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NvbXBkaXJfaW5pdGpzJywgWyR0aGlzLT5nZXRfc21hcnR5X3BsdWdpbnMoKSwnc21hcnR5X2luaXRqcyddKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2RfZ2V0Y29tcGFueScsIFskdGhpcy0+Z2V0X3NtYXJ0eV9wbHVnaW5zKCksJ3NtYXJ0eV9nZXRjb21wYW55J10pOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9nZXRjYXRlZ29yeScsIFskdGhpcy0+Z2V0X3NtYXJ0eV9wbHVnaW5zKCksJ3NtYXJ0eV9nZXRjYXRlZ29yeSddKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2RfZ2V0aGllcmFyY2h5JywgWyR0aGlzLT5nZXRfc21hcnR5X3BsdWdpbnMoKSwnc21hcnR5X2dldGhpZXJhcmNoeSddKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2RfZ2V0ZmllbGRkZWYnLCBbJHRoaXMtPmdldF9zbWFydHlfcGx1Z2lucygpLCdzbWFydHlfZ2V0ZmllbGRkZWYnXSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX2dldGZpbGV1cmwnLCBbJHRoaXMtPmdldF9zbWFydHlfcGx1Z2lucygpLCdzbWFydHlfZ2V0ZmlsZXVybCddKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2RfZ2V0ZmlsZXBhdGgnLCBbJHRoaXMtPmdldF9zbWFydHlfcGx1Z2lucygpLCdzbWFydHlfZ2V0ZmlsZXBhdGgnXSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX2dldGltZ3VybCcsIFskdGhpcy0+Z2V0X3NtYXJ0eV9wbHVnaW5zKCksJ3NtYXJ0eV9nZXRpbWd1cmwnXSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX2dldGltZ2VwYXRoJywgWyR0aGlzLT5nZXRfc21hcnR5X3BsdWdpbnMoKSwnc21hcnR5X2dldGltZ3BhdGgnXSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX2hpZXJicmVhZGNydW1iJywgWyR0aGlzLT5nZXRfc21hcnR5X3BsdWdpbnMoKSwnc21hcnR5X2hpZXJicmVhZGNydW1iJ10pOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9lbmNvZGVfcXVlcnknLCBbJHRoaXMsICdzbWFydHlfZW5jb2RlX3F1ZXJ5J10pOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9maWVsZF9vcHRpb25zJywgWyR0aGlzLCAnc21hcnR5X2ZpZWxkX29wdGlvbnMnXSApOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9oaWVyX29wdGlvbnMnLCBbJHRoaXMsICdzbWFydHlfaGllcl9vcHRpb25zJ10gKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2RfY2F0ZWdvcnlfb3B0aW9ucycsIFskdGhpcywgJ3NtYXJ0eV9jYXRlZ29yeV9vcHRpb25zJ10gKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbignY2RfY2F0ZWdvcnlfaW1hZ2UnLCBbJHRoaXMtPmdldF9zbWFydHlfcGx1Z2lucygpLCAnc21hcnR5X2NhdGVnb3J5X2ltYWdlJ10pOwoKICAgICAgICAkb2JqID0gbmV3IEhpZXJhcmNoeVF1ZXJ5RXhwcmVzc2lvbigkdGhpcy0+Z2V0X2hpZXJhcmNoeV9tYW5hZ2VyKCkpOwogICAgICAgICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpLT5yZWdpc3Rlcl9xdWVyeV9leHByZXNzaW9uKCdoaWVyJywkb2JqKTsKICAgICAgICAkb2JqID0gbmV3IENhdGVnb3J5UXVlcnlFeHByZXNzaW9uKCR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpKTsKICAgICAgICAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKS0+cmVnaXN0ZXJfcXVlcnlfZXhwcmVzc2lvbignY2F0ZWdvcnknLCRvYmopOwogICAgICAgICRvYmogPSBuZXcgRmllbGRRdWVyeUV4cHJlc3Npb24oJHRoaXMtPmdldF9maWVsZGRlZl9tYW5hZ2VyKCkpOwogICAgICAgICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpLT5yZWdpc3Rlcl9xdWVyeV9leHByZXNzaW9uKCdmaWVsZCcsICRvYmopOwogICAgICAgICRvYmogPSBuZXcgRnVsbHRleHRRdWVyeUV4cHJlc3Npb24oKTsKICAgICAgICAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKS0+cmVnaXN0ZXJfcXVlcnlfZXhwcmVzc2lvbigncGhyYXNlJywgJG9iaik7CiAgICAgICAgJG9iaiA9IG5ldyBJZGxpc3RRdWVyeUV4cHJlc3Npb24oKTsKICAgICAgICAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKS0+cmVnaXN0ZXJfcXVlcnlfZXhwcmVzc2lvbignaWRsaXN0JywgJG9iaik7CiAgICAgICAgJG9iaiA9IG5ldyBWYWxpZE93bmVyUXVlcnlFeHByZXNzaW9uKCR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnRnJvbnRFbmRVc2VycycpKTsKICAgICAgICAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKS0+cmVnaXN0ZXJfcXVlcnlfZXhwcmVzc2lvbigndmFsaWRvd25lcicsICRvYmopOwoKICAgICAgICAkb2JqID0gbmV3IFJhZGl1c1F1ZXJ5RXhwcmVzc2lvbigpOwogICAgICAgICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpLT5yZWdpc3Rlcl9xdWVyeV9leHByZXNzaW9uKCdyYWRpdXNfbWlsZXMnLCBbJG9iaiwncmFkaXVzX21pbGVzJ10gKTsKICAgICAgICAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKS0+cmVnaXN0ZXJfcXVlcnlfZXhwcmVzc2lvbigncmFkaXVzX2ttJywgWyRvYmosJ3JhZGl1c19rbSddICk7CiAgICAgICAgJG9iaiA9IG5ldyBBcmVhUXVlcnlFeHByZXNzaW9uKCk7CiAgICAgICAgJHRoaXMtPmdldF9xdWVyeV9mYWN0b3J5KCktPnJlZ2lzdGVyX3F1ZXJ5X2V4cHJlc3Npb24oJ3dpdGhpbicsICRvYmopOwoKICAgICAgICAvLyBmaWVsZCBzb3J0ZXIKICAgICAgICAkdGhpcy0+Z2V0X3F1ZXJ5X2ZhY3RvcnkoKS0+cmVnaXN0ZXJfZmllbGRfc29ydGVyKGZ1bmN0aW9uKHN0cmluZyAkaW5wdXQpewogICAgICAgICAgICAgICAgaWYoICEgKHN0cmluZykoaW50KSgkaW5wdXQpID09ICRpbnB1dCApIHsKICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIGEgc3RyaW5nCiAgICAgICAgICAgICAgICAgICAgJGxpc3QgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+Z2V0X2xpc3QoKTsKICAgICAgICAgICAgICAgICAgICBpZiggISRsaXN0ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IHNvcnQgYnkgdW5rbm93biBmaWVsZCAnLiRpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgJGxpc3QgPSBhcnJheV9mbGlwKCRsaXN0KTsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRsaXN0WyRpbnB1dF0pICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IHNvcnQgYnkgdW5rbm93biBmaWVsZCAnLiRpbnB1dCk7CiAgICAgICAgICAgICAgICAgICAgJGlucHV0ID0gJGxpc3RbJGlucHV0XTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRpbnB1dCA9IChpbnQpICRpbnB1dDsKICAgICAgICAgICAgICAgICRvdXQgPSAob2JqZWN0KSBbCiAgICAgICAgICAgICAgICAgICAgJ2pvaW5fY2xhdXNlJyA9PiAnTEVGVCBKT0lOICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIEZTMCBPTiAlVEFCTEUlLmlkID0gRlMwLmNvbXBhbnlfaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgRlMwLmZpZWxkZGVmX2lkID0gJy4kaW5wdXQsCiAgICAgICAgICAgICAgICAgICAgJ25ld19jb2x1bW4nID0+ICdGUzAudmFsdWUgQVMgX2ZpZWxkc29ydCcsCiAgICAgICAgICAgICAgICAgICAgJ3NvcnRieScgPT4gJ19maWVsZHNvcnQnLAogICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICAgICAgfSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEluaXRpYWxpemVGcm9udGVuZCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpJbml0aWFsaXplRnJvbnRlbmQoKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgICAvLyAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgogICAgICAgICR1cmxwcmVmaXggPSAkdGhpcy0+Z2V0X3NldHRpbmdzKCktPnVybHByZWZpeDsKCiAgICAgICAgLy8gRnJpZW5kbHkgVVJMIHN0dWZmCiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy8nLiR1cmxwcmVmaXguJ1wvKD9QPGNvbXBhbnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKC4qPykkLycsIFsnYWN0aW9uJz0+J2RldGFpbHMnXSk7CiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJy8nLiR1cmxwcmVmaXguJ1wvKD9QPGNvbXBhbnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJywgWydhY3Rpb24nPT4nZGV0YWlscyddKTsKCiAgICAgICAgLy8gc3VtbWFyeSB2aWV3cy4KICAgICAgICAvLyB0b2RvOiBoYXZlIHNldHRpbmcgZm9yIGhpZXJhcmNoeSBzdW1tYXJ5IHBhZ2UsIGNhdGVnb3J5IHN1bW1hcnkgcGFnZSwgYW5kIG5vcm1hbCBzdW1tYXJ5IHBhZ2UKICAgICAgICAvLyBpZiBzZXQuLi4gYWxsb3cgcm91dGVzIGxpa2UgW3ByZWZpeF0vaGllci88aWQ+L2EvYi9jL2Qgb3IgW3ByZWZpeF0vYy88aWQ+L2EvYi9jL2QKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnLycuJHVybHByZWZpeC4nXC9ieWhpZXJhcmNoeVwvKD9QPGhpZXJpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKD9QPGp1bms+Lio/KSQvJywgWydhY3Rpb24nPT4nZGVmYXVsdCddKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgnLycuJHVybHByZWZpeC4nXC9ieWNhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKVwvKC4qPykkLycsIFsnYWN0aW9uJz0+J2RlZmF1bHQnXSk7CgogICAgICAgIC8vIGFkZCBhIGNhbGxiYWNrIHRoYXQgZW5zdXJlcyB0aGF0IG91ciBxdWVyeSBoYXMgdGhlIHByb3BlciBhcmd1bWVudHMgZm9yIGZyb250ZW5kIHF1ZXJpZXMKICAgICAgICAkZmV1ID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgICAgaWYoICRmZXUgJiYgISR0aGlzLT5nZXRfc2V0dGluZ3MoKS0+YWxsb3dfZXhwaXJlZF9vd25lcnMgKSB7CiAgICAgICAgICAgICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpLT5hZGRfZnJvbnRlbmRfcHJlcHJvY2Vzc29yKAogICAgICAgICAgICAgICAgZnVuY3Rpb24oYXJyYXkgJGNkcXVlcnkpewogICAgICAgICAgICAgICAgICAgICRoYXZlX3N0bXQgPSBmdW5jdGlvbigkc3RyKSB1c2UgKCRjZHF1ZXJ5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICRjZHF1ZXJ5IGFzICRleHByICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHN0cmlwb3MoJGV4cHIsICRzdHIpICE9PSBGQUxTRSApIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBoYXZlIGEgYW5kOnN0YXR1czpwdWJsaXNoZWQKICAgICAgICAgICAgICAgICAgICBpZiggISRoYXZlX3N0bXQoJzp2YWxpZG93bmVyOicpICkgewogICAgICAgICAgICAgICAgICAgICAgICAkY2RxdWVyeVtdID0gJ2FuZDp2YWxpZG93bmVyOjEnOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRjZHF1ZXJ5OwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAvLyBmb3IgYW5vbnltb3VzIGZyb250ZW5kIHF1ZXJpZXMsIHdlIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBpdGVtcyBhcmUgYWx3YXlzIHB1Ymxpc2hlZAogICAgICAgIC8vIG5vIG1hdHRlciB3aGF0IHRoZSBxdWVyeSBzYXlzLgogICAgICAgICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpLT5hZGRfZnJvbnRlbmRfcHJlcHJvY2Vzc29yKAogICAgICAgICAgICBmdW5jdGlvbihhcnJheSAkY2RxdWVyeSl7CiAgICAgICAgICAgICAgICAkaGF2ZV9zdG10ID0gZnVuY3Rpb24oJHN0cikgdXNlICgkY2RxdWVyeSkgewogICAgICAgICAgICAgICAgICAgIGZvcmVhY2goICRjZHF1ZXJ5IGFzICRleHByICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiggc3RyaXBvcygkZXhwciwgJHN0cikgIT09IEZBTFNFICkgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICBpZiggISRoYXZlX3N0bXQoJ2FuZDpzdGF0dXM6ZXE6cHVibGlzaGVkJykgKSB7CiAgICAgICAgICAgICAgICAgICAgJGNkcXVlcnlbXSA9ICdhbmQ6c3RhdHVzOmVxOnB1Ymxpc2hlZCc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuICRjZHF1ZXJ5OwogICAgICAgICAgICB9KTsKCiAgICAgICAgSG9va01hbmFnZXI6OmFkZF9ob29rKCdDb21wYW55RGlyZWN0b3J5OjpPbkZyb250ZW5kVXBkYXRlJywgWyR0aGlzLCAnT25Gcm9udGVuZFVwZGF0ZV9TZW5kRW1haWwnXSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIEluaXRpYWxpemVBZG1pbigpCiAgICB7CiAgICAgICAgcGFyZW50OjpJbml0aWFsaXplQWRtaW4oKTsKCiAgICAgICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgICAgICRzbWFydHktPnJlZ2lzdGVyX2Z1bmN0aW9uKCdjZF9hZG1pbl9maWxlX3RodW1iJywgWyR0aGlzLT5nZXRfc21hcnR5X3BsdWdpbnMoKSwgJ2FkbWluX2ZpbGVfdGh1bWInXSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NkX2FkbWluX2ZpbGVfdXJsJywgWyR0aGlzLT5nZXRfc21hcnR5X3BsdWdpbnMoKSwgJ2FkbWluX2ZpbGVfdXJsJ10pOwoKICAgICAgICBIb29rTWFuYWdlcjo6YWRkX2hvb2soJ0NvcmU6Ok1vZHVsZVVuaW5zdGFsbGVkJywgZnVuY3Rpb24oJHBhcmFtcyl7CiAgICAgICAgICAgICAgICAkbmFtZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCduYW1lJyk7CiAgICAgICAgICAgICAgICBpZiggJG5hbWUgPT0gJ0Zyb250RW5kVXNlcnMnICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCktPnJlbW92ZV9hbGxfb3duZXJzaGlwKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIEhvb2tNYW5hZ2VyOjphZGRfaG9vaygnRnJvbnRFbmRVc2Vyczo6T25EZWxldGVVc2VyJywgZnVuY3Rpb24oJHBhcmFtcyl7CiAgICAgICAgICAgICAgICAkdWlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2lkJyk7CiAgICAgICAgICAgICAgICBpZiggJHVpZCA8IDEgKSByZXR1cm47CgogICAgICAgICAgICAgICAgJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKS0+cmVtb3ZlX293bmVyc2hpcF9mb3IoJHVpZCk7CiAgICAgICAgICAgIH0pOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKICAgIHsKICAgICAgICAkdHh0ID0gcGFyZW50OjpHZXRIZWFkZXJIVE1MKCk7CiAgICAgICAgJG9iaiA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnSlF1ZXJ5VG9vbHMnLCcxLjInKTsKICAgICAgICAkdHh0ID0gJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iJy4kdGhpcy0+R2V0TW9kdWxlVVJMUGF0aCgpLicvY3NzL2FkbWluLmNzcyIvPic7CiAgICAgICAgaWYoIGlzX29iamVjdCgkb2JqKSApewogICAgICAgICAgICAkdG1wbCAgPSAie0pRdWVyeVRvb2xzIGFjdGlvbj0ncmVxdWlyZScgbGliPSd0YWJsZXNvcnRlcixqcXVlcnl0b29scyxmYW5jeWJveCxmaWxldXBsb2FkJ30iOwogICAgICAgICAgICAkdG1wbCAuPSAie0pRdWVyeVRvb2xzIGFjdGlvbj0ncGxhY2VtYXJrZXInIG5vX3JlYWR5PTF9IjsKICAgICAgICB9CiAgICAgICAgJHR4dCAuPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRtcGwpOwogICAgICAgIHJldHVybiAkdHh0OwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5NZW51SXRlbXMoKQogICAgewogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgIGlmKCAkdGhpcy0+VmlzaWJsZVRvQWRtaW5Vc2VyKCkgKSAkb3V0W10gPSBDbXNBZG1pbk1lbnVJdGVtOjpmcm9tX21vZHVsZSgkdGhpcyk7CgogICAgICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgewogICAgICAgICAgICAkb2JqID0gbmV3IENtc0FkbWluTWVudUl0ZW0oKTsKICAgICAgICAgICAgJG9iai0+bW9kdWxlID0gJHRoaXMtPkdldE5hbWUoKTsKICAgICAgICAgICAgJG9iai0+c2VjdGlvbiA9ICdzaXRlYWRtaW4nOwogICAgICAgICAgICAkb2JqLT50aXRsZSA9ICR0aGlzLT5MYW5nKCd0aXRsZV9zZXR0aW5nc19tZW51Jyk7CiAgICAgICAgICAgICRvYmotPmRlc2NyaXB0aW9uID0gJHRoaXMtPkxhbmcoJ2Rlc2Nfc2V0dGluZ3NfbWVudScpOwogICAgICAgICAgICAkb2JqLT5hY3Rpb24gPSAnYWRtaW5fc2V0dGluZ3MnOwogICAgICAgICAgICAkb3V0W10gPSAkb2JqOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gU2VhcmNoUmVzdWx0V2l0aFBhcmFtcygkcmV0dXJuaWQsICRjb21wYW55aWQsICRhdHRyID0gJycsICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRyZXN1bHQgPSBbXTsKICAgICAgICAgICAgaWYgKCRhdHRyICE9ICdjb21wYW55JykgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgICAgICRjb21wYW55aWQgPSAoaW50KSAkY29tcGFueWlkOwogICAgICAgICAgICBpZiggJGNvbXBhbnlpZCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBjb21wYW55IGlkIHByb3ZpZGVkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICAgICAkZGV0YWlscGFnZSA9ICR0aGlzLT5nZXRfc2V0dGluZ3MoKS0+ZGV0YWlscGFnZTsKICAgICAgICAgICAgaWYoICRkZXRhaWxwYWdlID4gMCApIHsKICAgICAgICAgICAgICAgICRyZXR1cm5pZCA9ICRkZXRhaWxwYWdlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSB7CiAgICAgICAgICAgICAgICAkdG1wID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQodHJpbSgkcGFyYW1zWydkZXRhaWxwYWdlJ10pKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wID4gMCApICRyZXR1cm5pZCA9ICR0bXA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRjb21wYW55ID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKS0+bG9hZF9ieV9pZCgkY29tcGFueWlkKTsKCiAgICAgICAgICAgIC8vMCBwb3NpdGlvbiBpcyB0aGUgcHJlZml4IGRpc3BsYXllZCBpbiB0aGUgbGlzdCByZXN1bHRzLgogICAgICAgICAgICAkcmVzdWx0WzBdID0gJHRoaXMtPkdldEZyaWVuZGx5TmFtZSgpOwoKICAgICAgICAgICAgLy8xIHBvc2l0aW9uIGlzIHRoZSB0aXRsZQogICAgICAgICAgICAkcmVzdWx0WzFdID0gJGNvbXBhbnktPmNvbXBhbnlfbmFtZTsKCiAgICAgICAgICAgIC8vMiBwb3NpdGlvbiBpcyB0aGUgVVJMIHRvIHRoZSB0aXRsZS4KICAgICAgICAgICAgJHBhcmFtc1snY29tcGlkJ10gPSAkY29tcGFueS0+aWQ7CiAgICAgICAgICAgICRyZXN1bHRbMl0gPSAkdGhpcy0+Y3JlYXRlX3VybCgnY250bnQwMScsICdkZXRhaWxzJywgJHJldHVybmlkLCAkcGFyYW1zKTsKCiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgY2dlX3V0aWxzOjpsb2dfZXhjZXB0aW9uKCRlKTsKICAgICAgICAgICAgYXVkaXQoJGNvbXBhbnlpZCwgJHRoaXMtPkdldE5hbWUoKSwgJ1Byb2JsZW0gcmV0cmlldmluZyBzZWFyY2ggcmVzdWx0cycpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkKICAgIHsKICAgICAgICAkY29tcGFueV9tYW5hZ2VyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKTsKICAgICAgICAkc2VhcmNoX2hlbHBlciA9ICR0aGlzLT5nZXRfc2VhcmNoX2hlbHBlcigpOwogICAgICAgICRmYWN0b3J5ID0gJHRoaXMtPmdldF9xdWVyeV9mYWN0b3J5KCk7CiAgICAgICAgJG9yaWdfc3RhdGVtZW50cyA9IFsnYW5kOnN0YXR1czplcTpwdWJsaXNoZWQnLCdsaW1pdDo1MDAnXTsKICAgICAgICAkc3RhdGVtZW50cyA9ICRvcmlnX3N0YXRlbWVudHM7CiAgICAgICAgd2hpbGUoIDEgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICRmYWN0b3J5LT5jcmVhdGVfZnJvbnRlbmRfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKCRzdGF0ZW1lbnRzKTsKICAgICAgICAgICAgJHNxbCA9ICRmYWN0b3J5LT5nZW5lcmF0ZV9xdWVyeSgkcXVlcnkpOwogICAgICAgICAgICAkcmVzdWx0cyA9ICRjb21wYW55X21hbmFnZXItPmxvYWRfYnlfcXVlcnkoJHNxbCk7CiAgICAgICAgICAgIGlmKCAhY291bnQoJHJlc3VsdHMpICkgYnJlYWs7CgogICAgICAgICAgICBmb3JlYWNoKCRyZXN1bHRzIGFzICRpdGVtKSB7CiAgICAgICAgICAgICAgICAkZGF0YSA9ICRzZWFyY2hfaGVscGVyLT5nZXRfc2VhcmNoX3dvcmRzKCRpdGVtKTsKICAgICAgICAgICAgICAgICRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRpdGVtLT5pZCwgJ2NvbXBhbnknLCAkZGF0YSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHN0ciA9ICdvZmZzZXQ6Jy4oJHNxbC0+b2Zmc2V0ICsgY291bnQoJHJlc3VsdHMpKTsKICAgICAgICAgICAgJHN0YXRlbWVudHMgPSBhcnJheV9tZXJnZSgkb3JpZ19zdGF0ZW1lbnRzLCBbICRzdHIgXSk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJldHR5X3VybCgkaWQsJGFjdGlvbiwkcmV0dXJuaWQ9JycsJHBhcmFtcz1hcnJheSgpLCRpbmxpbmU9ZmFsc2UpCiAgICB7CiAgICAgICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snbm9wcmV0dHknXSkgKSByZXR1cm4gJyc7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2p1bmsnXSkgKSB1bnNldCgkcGFyYW1zWydqdW5rJ10pOwogICAgICAgICRzZXR0aW5ncyA9ICR0aGlzLT5nZXRfc2V0dGluZ3MoKTsKCiAgICAgICAgc3dpdGNoKCAkYWN0aW9uICkgewogICAgICAgIGNhc2UgJ2RldGFpbCc6IC8vIHN5bm9ueW0KICAgICAgICBjYXNlICdkZXRhaWxzJzoKICAgICAgICAgICAgJHVybCA9IG51bGw7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkY29tcGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBpZCcpOwogICAgICAgICAgICAgICAgJGNvbXBpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjb21wYW55aWQnLCRjb21waWQpOwogICAgICAgICAgICAgICAgJGNvbXBhbnkgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpLT5sb2FkX2J5X2lkKCRjb21waWQpOwogICAgICAgICAgICAgICAgaWYoICRjb21wYW55LT51cmwgIT0gJycgKSByZXR1cm4gJGNvbXBhbnktPnVybDsKCiAgICAgICAgICAgICAgICAvLyB3ZSBjYW4gaW50ZXJjZXB0IHRoaXMgcHJvY2VzcyB0byBnZXQgYSBkZXRhaWxwYWdlIGZvciBhIGNvbXBhbnkuCiAgICAgICAgICAgICAgICAkdG1wID0gSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OmdldF9jb21wYW55X2RldGFpbHBhZ2UnLCAkY29tcGFueSk7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgaXNzZXQoJHRtcFswXSkgJiYgaXNfaW50KCR0bXBbMF0pICkgJHRtcCA9ICR0bXBbMF07CiAgICAgICAgICAgICAgICBpZiggaXNfaW50KCR0bXApICYmICR0bXAgPiAwICkgJHJldHVybmlkID0gJHRtcDsKCiAgICAgICAgICAgICAgICByZXR1cm4gJHNldHRpbmdzLT51cmxwcmVmaXguIi8kY29tcGlkLyRyZXR1cm5pZC8iLm11bmdlX3N0cmluZ190b191cmwoJGNvbXBhbnktPmNvbXBhbnlfbmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goIFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICAgICAvLyBub3RoaW5nIGhlcmUuCiAgICAgICAgICAgIH0KCiAgICAgICAgY2FzZSAnZGVmYXVsdCc6CiAgICAgICAgICAgICRjYXRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCAnY2F0ZWdvcnlpZCcpOwogICAgICAgICAgICAkaGllcmlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsICdoaWVyaWQnKTsKICAgICAgICAgICAgJHVybCA9IG51bGw7CiAgICAgICAgICAgIGlmKCAkY2F0aWQgPiAwICYmICRoaWVyaWQgPCAxICkgewogICAgICAgICAgICAgICAgJHVybCA9ICRzZXR0aW5ncy0+dXJscHJlZml4LiIvYnljYXRlZ29yeS8kY2F0aWQveyRyZXR1cm5pZH0iOwogICAgICAgICAgICAgICAgJGNhdGVnb3J5ID0gJHRoaXMtPmdldF9jYXRlZ29yeV9tYW5hZ2VyKCktPmxvYWRfYnlfaWQoJGNhdGlkKTsKICAgICAgICAgICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnIHwgJywnLScsJGNhdGVnb3J5LT5sb25nX25hbWUpOwogICAgICAgICAgICAgICAgJHVybCAuPSAnLycubXVuZ2Vfc3RyaW5nX3RvX3VybCgkc3RyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkaGllcmlkID4gMCAmJiAkY2F0aWQgPCAxICkgewogICAgICAgICAgICAgICAgJHVybCA9ICRzZXR0aW5ncy0+dXJscHJlZml4LiIvYnloaWVyYXJjaHkvJGhpZXJpZC8kcmV0dXJuaWQiOwogICAgICAgICAgICAgICAgJGhpZXIgPSAkdGhpcy0+Z2V0X2hpZXJhcmNoeV9tYW5hZ2VyKCktPmxvYWRfYnlfaWQoJGhpZXJpZCk7CiAgICAgICAgICAgICAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCcgfCAnLCctJywkaGllci0+bG9uZ19uYW1lKTsKICAgICAgICAgICAgICAgICR1cmwgLj0gJy8nLm11bmdlX3N0cmluZ190b191cmwoJHBhdGgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkdXJsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gQ3JlYXRlU3RhdGljUm91dGVzKCkKICAgIHsKICAgICAgICAkZGV0YWlscGFnZSA9ICR0aGlzLT5nZXRfc2V0dGluZ3MoKS0+ZGV0YWlscGFnZTsKICAgICAgICBpZiggJGRldGFpbHBhZ2UgPCAxICkgcmV0dXJuOwoKICAgICAgICAkZmFjdG9yeSA9ICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpOwogICAgICAgICRxcnkgPSAkZmFjdG9yeS0+Y3JlYXRlX3F1ZXJ5X2Zyb21fc3RhdGVtZW50cyhbJ2FuZDp1cmw6bmU6JywgJ2FuZDpzdGF0dXM6ZXE6cHVibGlzaGVkJ10pOwogICAgICAgICRzcWwgPSAkZmFjdG9yeS0+Z2VuZXJhdGVfcXVlcnkoJHFyeSk7CiAgICAgICAgJGRiciA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCktPmxvYWRfYnlfcXVlcnkoJHNxbCk7CgogICAgICAgICRuID0gMDsKICAgICAgICB3aGlsZSggJGRici0+b2Zmc2V0IDwgJGRici0+dG90YWwgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRkYnIgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRwYXJtcyA9IGFycmF5KCdhY3Rpb24nPT4nZGV0YWlscycsJ3JldHVybmlkJz0+JGRldGFpbHBhZ2UsJ2NvbXBhbnlpZCc9PiRvbmUtPmlkKTsKICAgICAgICAgICAgICAgICRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgkb25lLT51cmwsICR0aGlzLT5HZXROYW1lKCksJHBhcm1zLCBUUlVFLCAkb25lLT5pZCk7CiAgICAgICAgICAgICAgICBjbXNfcm91dGVfbWFuYWdlcjo6YWRkX3N0YXRpYygkcm91dGUpOwogICAgICAgICAgICAgICAgJG4rKzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHFyeSA9ICRxcnktPnJlcGxhY2Vfc3RhdGVtZW50KCdvZmZzZXQ6JywgJ29mZnNldDonIC4gKCRkYnItPm9mZnNldCArICRkYnItPmxpbWl0KSApOwogICAgICAgICAgICAkc3FsID0gJGZhY3RvcnktPmdlbmVyYXRlX3F1ZXJ5KCRxcnkpOwogICAgICAgICAgICAkZGJyID0gJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKS0+bG9hZF9ieV9xdWVyeSgkc3FsKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBPbkZyb250ZW5kVXBkYXRlX1NlbmRFbWFpbChDb21wYW55ICR0aGVfY29tcGFueSwgc3RyaW5nICRiZWhhdmlvcikKICAgIHsKICAgICAgICAkc2V0dGluZ3MgPSAkdGhpcy0+Z2V0X3NldHRpbmdzKCk7CiAgICAgICAgaWYoICRzZXR0aW5ncy0+ZnJvbnRlbmRfZW1haWxncm91cCA8IDEgKSByZXR1cm47CiAgICAgICAgaWYoICgkYmVoYXZpb3IgPT0gJ2FkZCcgJiYgJHNldHRpbmdzLT5mcm9udGVuZF9lbWFpbG9uYWRkKSB8fAogICAgICAgICAgICAoJGJlaGF2aW9yID09ICdlZGl0JyAmJiAkc2V0dGluZ3MtPmZyb250ZW5kX2VtYWlsb25lZGl0KSApIHsKCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkZW1sID0gJHRoaXMtPmdldF9lbWFpbF9zdG9yYWdlKCktPmxvYWQoJ2Zyb250ZW5kX2VkaXQuZW1sJyk7CiAgICAgICAgICAgICAgICAkZW1sID0gJGVtbC0+YWRkX2FkbWluX2dyb3VwKCRzZXR0aW5ncy0+ZnJvbnRlbmRfZW1haWxncm91cCkKICAgICAgICAgICAgICAgICAgICAtPmFkZF9kYXRhKCdtb2QnLCAkdGhpcykKICAgICAgICAgICAgICAgICAgICAtPmFkZF9kYXRhKCdjb21wYW55JywgJHRoZV9jb21wYW55KQogICAgICAgICAgICAgICAgICAgIC0+YWRkX2RhdGEoJ2JlaGF2aW9yJywgJGJlaGF2aW9yKTsKICAgICAgICAgICAgICAgICR0aGlzLT5jcmVhdGVfbmV3X21haWxwcm9jZXNzb3IoJGVtbCktPnNlbmQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgICAgIGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAgICAgICAgICAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdQcm9ibGVtIHNlbmRpbmcgbm90aWZpY2F0aW9uIGVtYWlsICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8vLyBTZXJ2aWNlcwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NldHRpbmdzKCkgOiBzZXR0aW5ncwogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgewogICAgICAgICAgICAkZGF0YSA9IFtdOwogICAgICAgICAgICAkZm4gPSAkdGhpcy0+Y29uZmlnWydhc3NldHNfcGF0aCddLicvY29uZmlncy9Db21wYW55RGlyZWN0b3J5Lmpzb24nOwogICAgICAgICAgICBpZiggaXNfZmlsZSgkZm4pICkgewogICAgICAgICAgICAgICAgJHRtcCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAgICAgICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0ganNvbl9kZWNvZGUoJHRtcCwgVFJVRSk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICkgJGRhdGEgPSAkdG1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggIWRlZmluZWQoJ0NPTkZJR19GSUxFX0xPQ0FUSU9OJykgfHwgIWlzX3JlYWRhYmxlKENPTkZJR19GSUxFX0xPQ0FUSU9OKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0NvdWxkIG5vdCByZWFkIHRoZSBjb25maWcgZmlsZScpOwogICAgICAgICAgICBpbmNsdWRlKENPTkZJR19GSUxFX0xPQ0FUSU9OKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRjb25maWcpICYmICFlbXB0eSgkY29uZmlnKSApICRkYXRhID0gYXJyYXlfbWVyZ2UoJGRhdGEsICRjb25maWcpOwogICAgICAgICAgICAkX29iaiA9IG5ldyBzZXR0aW5ncygkdGhpcywgJGRhdGEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2NkdXRpbHMoKSA6IGNkX3V0aWxzCiAgICB7CiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgIGlmKCAhJF9vYmogKSAkX29iaiA9IG5ldyBjZF91dGlscygkdGhpcywgJHRoaXMtPmdldF9jYXRlZ29yeV9tYW5hZ2VyKCksICR0aGlzLT5nZXRfc2V0dGluZ3MoKSk7CiAgICAgICAgcmV0dXJuICRfb2JqOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbkdlbmVyYXRvcihEYXRhUmVmICRyZWYpCiAgICB7CiAgICAgICAgJG9iaiA9IG5ldyBMaW5rRGVmaW5pdGlvbkdlbmVyYXRvcigkdGhpcywgJHRoaXMtPmdldF9zZXR0aW5ncygpKTsKICAgICAgICAkb2JqLT5zZXRfZGF0YXJlZigkZGF0YXJlZik7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiB1dGlscygpIDogVXRpbHMKICAgIHsKICAgICAgICBzdGF0aWMgJF9vYmo7CiAgICAgICAgaWYoICEkX29iaiApIHsKICAgICAgICAgICAgJF9vYmogPSBuZXcgVXRpbHMoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRfb2JqOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X2NhY2hlX2RyaXZlcigpIDogY21zX2NhY2hlX2RyaXZlcgogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgJF9vYmogPSBuZXcgY21zX2ZpbGVjYWNoZV9kcml2ZXIoWydsaWZldGltZSc9PjI0KjM2MDBdKTsKICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgLyoqIEBpZ25vcmUgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfcm91dGVfbWFuYWdlcigpIDogcm91dGVfbWFuYWdlcl9zdHViCiAgICB7CiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgIGlmKCAhJF9vYmogKSAkX29iaiA9IG5ldyByb3V0ZV9tYW5hZ2VyX3N0dWIoKTsKICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfY2F0ZWdvcnlfbWFuYWdlcigpIDogSUNhdGVnb3J5TWFuYWdlcgogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgewogICAgICAgICAgICAkX3Jvb3QgPSBuZXcgQ2F0ZWdvcnlNYW5hZ2VyKCR0aGlzLT5nZXRfZXh0ZW5kZWRfZGIoKSwgWyR0aGlzLCAnTGFuZyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy9jb21wYW55ZGlyZWN0b3J5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb25maWdbJ3VwbG9hZHNfdXJsJ10uJy9jb21wYW55ZGlyZWN0b3J5Jyk7CiAgICAgICAgICAgICRfcm9vdC0+YXR0YWNoKCR0aGlzLT5nZXRfbWV0YXF1ZXJ5X21hbmFnZXIoKSk7CiAgICAgICAgICAgICRfb2JqID0gbmV3IENhdGVnb3J5TWFuYWdlckNhY2hlRGVjb3JhdG9yKCRfcm9vdCwgJHRoaXMtPmdldF9jYWNoZV9kcml2ZXIoKSApOwogICAgICAgICAgICAkX29iaiA9IG5ldyBDYXRlZ29yeU1hbmFnZXJGaWxlRGVjb3JhdG9yKCRfb2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLicvY29tcGFueWRpcmVjdG9yeScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1sndXBsb2Fkc191cmwnXS4nL2NvbXBhbnlkaXJlY3RvcnknKTsKICAgICAgICAgICAgJF9vYmogPSBuZXcgQ2F0ZWdvcnlNYW5hZ2VySG9va0RlY29yYXRvcigkX29iaik7CiAgICAgICAgICAgICRfb2JqID0gbmV3IENhdGVnb3J5TWFuYWdlckF1ZGl0RGVjb3JhdG9yKCRfb2JqKTsKICAgICAgICAgICAgJF9yb290LT5zZXRfbGFzdF9kZWNvcmF0b3IoJF9vYmopOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X21hbmFnZXIoKSA6IElIaWVyYXJjaHlNYW5hZ2VyCiAgICB7CiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgIGlmKCAhJF9vYmogKSB7CiAgICAgICAgICAgICRfcm9vdCA9IG5ldyBIaWVyYXJjaHlNYW5hZ2VyKCR0aGlzLT5nZXRfZXh0ZW5kZWRfZGIoKSwgWyR0aGlzLCAnTGFuZyddLCAkdGhpcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXS4nL2NvbXBhbnlkaXJlY3RvcnknKTsKICAgICAgICAgICAgJF9yb290LT5hdHRhY2goJHRoaXMtPmdldF9tZXRhcXVlcnlfbWFuYWdlcigpKTsKICAgICAgICAgICAgJF9vYmogPSBuZXcgSGllcmFyY2h5TWFuYWdlckNhY2hlRGVjb3JhdG9yKCRfcm9vdCwgJHRoaXMtPmdldF9jYWNoZV9kcml2ZXIoKSk7CiAgICAgICAgICAgICRfb2JqID0gbmV3IEhpZXJhcmNoeU1hbmFnZXJIb29rRGVjb3JhdG9yKCRfb2JqKTsKICAgICAgICAgICAgJF9vYmogPSBuZXcgSGllcmFyY2h5TWFuYWdlckF1ZGl0RGVjb3JhdG9yKCRfb2JqKTsKICAgICAgICAgICAgJF9yb290LT5zZXRfbGFzdF9kZWNvcmF0b3IoJF9vYmopOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZmllbGRkZWZfbWFuYWdlcigpIDogSUZpZWxkRGVmTWFuYWdlcgogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgewogICAgICAgICAgICAkX3Jvb3QgPSBuZXcgRmllbGREZWZNYW5hZ2VyKCR0aGlzLT5nZXRfZXh0ZW5kZWRfZGIoKSwgWyR0aGlzLCAnTGFuZyddICk7CiAgICAgICAgICAgICRfcm9vdC0+YXR0YWNoKCR0aGlzLT5nZXRfbWV0YXF1ZXJ5X21hbmFnZXIoKSk7CiAgICAgICAgICAgICRfb2JqID0gbmV3IEZpZWxkRGVmTWFuYWdlckNhY2hlRGVjb3JhdG9yKCRfcm9vdCwgJHRoaXMtPmdldF9jYWNoZV9kcml2ZXIoKSk7CiAgICAgICAgICAgICRfb2JqID0gbmV3IEZpZWxkRGVmTWFuYWdlckhvb2tEZWNvcmF0b3IoJF9vYmopOwogICAgICAgICAgICAkX29iaiA9IG5ldyBGaWVsZERlZk1hbmFnZXJBdWRpdERlY29yYXRvcigkX29iaik7CiAgICAgICAgICAgICRfcm9vdC0+c2V0X2xhc3RfZGVjb3JhdG9yKCRfb2JqKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRfb2JqOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X3NlYXJjaF9oZWxwZXIoKSA6IElTZWFyY2hIZWxwZXIKICAgIHsKICAgICAgICBzdGF0aWMgJF9vYmo7CiAgICAgICAgaWYoICEkX29iaiApIHsKICAgICAgICAgICAgJF9vYmogPSBuZXcgU2VhcmNoSGVscGVyKCR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpLCAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKSwgJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRfb2JqOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0X21ldGFxdWVyeV9tYW5hZ2VyKCkgOiBJTWV0YVF1ZXJ5TWFuYWdlcgogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgewogICAgICAgICAgICAkX29iaiA9IG5ldyBNZXRhUXVlcnlNYW5hZ2VyKCAkdGhpcy0+Z2V0X2V4dGVuZGVkX2RiKCkgKTsKICAgICAgICAgICAgJF9vYmogPSBuZXcgTWV0YVF1ZXJ5Q2FjaGVEZWNvcmF0b3IoJF9vYmosICR0aGlzLT5nZXRfY2FjaGVfZHJpdmVyKCkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfdXJsc2x1Z19oZWxwZXIoKSA6IElVcmxTbHVnSGVscGVyCiAgICB7CiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgIGlmKCAhJF9vYmogKSB7CiAgICAgICAgICAgICRvYmogPSBuZXcgVXJsU2x1Z0hlbHBlcigkdGhpcy0+Z2V0X2V4dGVuZGVkX2RiKCksICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXJsJykpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9jb21wYW55X21hbmFnZXIoKSA6IElDb21wYW55TWFuYWdlcgogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgewogICAgICAgICAgICAkX29iaiA9IG5ldyBDb21wYW55TWFuYWdlcigkdGhpcy0+Z2V0X2V4dGVuZGVkX2RiKCksICR0aGlzLT5nZXRfZmllbGRkZWZfbWFuYWdlcigpLCAkdGhpcy0+Z2V0X2NhdGVnb3J5X21hbmFnZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmdldF91cmxzbHVnX2hlbHBlcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJHRoaXMsICdMYW5nJ10sICR0aGlzLT5nZXRfc2V0dGluZ3MoKSwgJHRoaXMtPmNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy9jb21wYW55ZGlyZWN0b3J5JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1sndXBsb2Fkc191cmwnXS4nL2NvbXBhbnlkaXJlY3RvcnknKTsKICAgICAgICAgICAgJF9vYmotPmF0dGFjaCgkdGhpcy0+Z2V0X21ldGFxdWVyeV9tYW5hZ2VyKCkpOwogICAgICAgICAgICAkc2V0dGluZ3MgPSAkdGhpcy0+Z2V0X3NldHRpbmdzKCk7CiAgICAgICAgICAgICRfb2JqID0gbmV3IENvbXBhbnlNYW5hZ2VyQXV0b1VSTERlY29yYXRvcigkX29iaiwgJHRoaXMtPmdldF91cmxzbHVnX2hlbHBlcigpLCAkc2V0dGluZ3MsIFskdGhpcywgJ2xhbmcnXSk7CiAgICAgICAgICAgIGlmKCAkc2V0dGluZ3MtPmRldGFpbHBhZ2UgPiAwICkgewogICAgICAgICAgICAgICAgJF9vYmogPSBuZXcgQ29tcGFueU1hbmFnZXJTdGF0aWNSb3V0ZURlY29yYXRvcigkX29iaiwgJHRoaXMtPmdldF9yb3V0ZV9tYW5hZ2VyKCksICRzZXR0aW5ncy0+ZGV0YWlscGFnZSApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRfb2JqID0gbmV3IENvbXBhbnlNYW5hZ2VyRmlsZUNhY2hlRGVjb3JhdG9yKCRfb2JqLCAkdGhpcy0+Z2V0X2NhY2hlX2RyaXZlcigpKTsKICAgICAgICAgICAgJF9vYmogPSBuZXcgQ29tcGFueU1hbmFnZXJNZW1vcnlDYWNoZURlY29yYXRvcigkX29iaik7CiAgICAgICAgICAgICRfb2JqID0gbmV3IENvbXBhbnlNYW5hZ2VySG9va0RlY29yYXRvcigkX29iaik7CiAgICAgICAgICAgICRfb2JqID0gbmV3IENvbXBhbnlNYW5hZ2VyQXVkaXREZWNvcmF0b3IoJF9vYmopOwogICAgICAgICAgICAkc2VhcmNoID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdTZWFyY2gnKTsKICAgICAgICAgICAgaWYoICRzZWFyY2ggKSB7CiAgICAgICAgICAgICAgICAkX29iaiA9IG5ldyBDb21wYW55TWFuYWdlclNlYXJjaERlY29yYXRvcigkX29iaiwgJHNlYXJjaCwgJHRoaXMtPmdldF9zZWFyY2hfaGVscGVyKCkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkX29iajsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlX3RtcF91cGxvYWRfbWFuYWdlcihzdHJpbmcgJGd1aWQpIDogSVRtcFVwbG9hZE1hbmFnZXIKICAgIHsKICAgICAgICByZXR1cm4gbmV3IFRtcFVwbG9hZE1hbmFnZXIoJGd1aWQsIFRNUF9DQUNIRV9MT0NBVElPTik7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9xdWVyeV9mYWN0b3J5KCkgOiBJUXVlcnlGYWN0b3J5CiAgICB7CiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgIGlmKCAhJF9vYmogKSAkX29iaiA9IG5ldyBDRFF1ZXJ5RmFjdG9yeSgpOwogICAgICAgIHJldHVybiAkX29iajsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNyZWF0ZV9hbGJ1bV91cGxvYWRfaGFuZGxlcihDb21wYW55ICRjb21wYW55LCBGaWVsZERlZmluaXRpb24gJGZsZCwgYXJyYXkgJG9wdGlvbnMpCiAgICB7CiAgICAgICAgaWYoICRjb21wYW55LT5pZCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBjb21wYW55IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCAkZmxkLT50eXBlICE9ICdhbGJ1bScgfHwgJGZsZC0+aWQgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgYWxidW0gZmllbGQgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgcmV0dXJuIG5ldyBBbGJ1bVVwbG9hZEhhbmRsZXIoJHRoaXMtPmdldF9jb21wYW55X21hbmFnZXIoKSwgJGNvbXBhbnksICRmbGQsICRvcHRpb25zKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9zbWFydHlfcGx1Z2lucygpIDogU21hcnR5UGx1Z2lucwogICAgewogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgJF9vYmogPSBuZXcgU21hcnR5UGx1Z2lucygkdGhpcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0X2NvbXBhbnlfbWFuYWdlcigpLCAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0X2NhdGVnb3J5X21hbmFnZXIoKSwgJHRoaXMtPmdldF9oaWVyYXJjaHlfbWFuYWdlcigpKTsKICAgICAgICByZXR1cm4gJF9vYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyX2dlb2NvZGVyKElHZW9Db2RlciAkZ2VvY29kZXIpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5nZW9jb2RlciApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0EgZ2VvY29kZXIgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkJyk7CiAgICAgICAgJHRoaXMtPmdlb2NvZGVyID0gJGdlb2NvZGVyOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZ2VvY29kZXIoKSA6IElHZW9Db2RlcgogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2VvY29kZXI7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGhhdmVfZ2VvY29kZXIoKSA6IGJvb2wKICAgIHsKICAgICAgICAkcmVzID0gKCR0aGlzLT5nZW9jb2RlciBpbnN0YW5jZW9mIElHZW9Db2Rlcik7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF91c2VyX3ByZWZlcmVuY2VzKCkgOiBDYWNoZWRVc2VyUHJlZmVyZW5jZXMKICAgIHsKICAgICAgICAvLyB0aGlzIHdpbGwgY2FjaGUgdXNlciBwcmVmZXJlbmNlcyB1cCB0byAxIHdlZWsuCiAgICAgICAgc3RhdGljICRfb2JqOwogICAgICAgIGlmKCAhJF9vYmogKSAkX29iaiA9IG5ldyBDYWNoZWRVc2VyUHJlZmVyZW5jZXMobmV3IGNtc19maWxlY2FjaGVfZHJpdmVyKFsnbGlmZXRpbWUnPT4yNCo3KjM2MDBdKSk7CiAgICAgICAgcmV0dXJuICRfb2JqOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRfZnJvbnRlbmR1c2VyX2hlbHBlcigpIDogSUZyb250RW5kVXNlckhlbHBlcgogICAgewogICAgICAgIC8vIGl0IGlzIGltcG9ydGFudCBoZXJlIHRoYXQgdGhlc2UgcXVlcmllcyBhcmUgbmV2ZXIgY2FjaGVkLgogICAgICAgIHN0YXRpYyAkX29iajsKICAgICAgICBpZiggISRfb2JqICkgJF9vYmogPSBuZXcgRnJvbnRFbmRVc2VySGVscGVyKCR0aGlzLT5jcmVhdGVfcXVlcnlfZmFjdG9yeSgpKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcmVhZF90ZXh0X2ZpbGUoc3RyaW5nICRmaWxlbmFtZSkKICAgIHsKICAgICAgICBpZiggIWlzX2ZpbGUoJGZpbGVuYW1lKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBvcGVuIGZpbGUgJy4kZmlsZW5hbWUpOwogICAgICAgICRmaCA9IGZvcGVuKCRmaWxlbmFtZSwgJ3InKTsKICAgICAgICBpZiggISRmaCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBvcGVuIGZpbGUgJy4kZmlsZW5hbWUpOwogICAgICAgIHN0cmVhbV9maWx0ZXJfYXBwZW5kKCRmaCwgJ2NkX2ZpeF9uZXdsaW5lcycpOwogICAgICAgIHJldHVybiAkZmg7CiAgICB9CgogICAgLy8vLy8gU21hcnR5IHBsdWdpbnMKCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9maWVsZF9vcHRpb25zKCRwYXJhbXMsICRzbWFydHkpCiAgICB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJGZkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywgJ2ZpZWxkJyk7CiAgICAgICAgICAgICRmZGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsICdmJywgJGZkaWQpOwogICAgICAgICAgICAkZmRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCAnZmRpZCcsICRmZGlkKTsKICAgICAgICAgICAgJGFzc2lnbiA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnYXNzaWduJyk7CiAgICAgICAgICAgIGlmKCAkZmRpZCA8IDEgKSByZXR1cm47CgogICAgICAgICAgICAkb3B0cyA9IG51bGw7CiAgICAgICAgICAgICRkYXRhID0gJHRoaXMtPmdldF9maWVsZGRlZl9tYW5hZ2VyKCktPmxvYWRfYnlfaWQoJGZkaWQpLT5kcm9wZG93bl9kYXRhOwogICAgICAgICAgICBpZiggIWVtcHR5KCRkYXRhKSApIHsKICAgICAgICAgICAgICAgICRvcHRzID0gJHRoaXMtPnV0aWxzKCktPmRlY29kZV9kcm9wZG93bl9kYXRhKCRkYXRhKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJGFzc2lnbiApIHsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkYXNzaWduLCRvcHRzKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJG9wdHM7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICBkZWJ1Z190b19sb2coJ0Vycm9yIGdldHRpbmcgZmllbGQgb3B0aW9ucycpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9oaWVyX29wdGlvbnMoJHBhcmFtcywgJHNtYXJ0eSkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkYXNzaWduID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdhc3NpZ24nKTsKICAgICAgICAgICAgJG9wdHMgPSAkdGhpcy0+Z2V0X2hpZXJhcmNoeV9tYW5hZ2VyKCktPmdldF9saXN0KCk7CiAgICAgICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRhc3NpZ24sJG9wdHMpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3B0czsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIGRlYnVnX3RvX2xvZygnRXJyb3IgZ2V0dGluZyBmaWVsZCBvcHRpb25zJyk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc21hcnR5X2NhdGVnb3J5X29wdGlvbnMoJHBhcmFtcywgJHNtYXJ0eSkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkYXNzaWduID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdhc3NpZ24nKTsKICAgICAgICAgICAgJG9wdHMgPSAkdGhpcy0+Z2V0X2NhdGVnb3J5X21hbmFnZXIoKS0+Z2V0X2xpc3QoKTsKICAgICAgICAgICAgaWYoICRhc3NpZ24gKSB7CiAgICAgICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJGFzc2lnbiwkb3B0cyk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRvcHRzOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgZGVidWdfdG9fbG9nKCdFcnJvciBnZXR0aW5nIGZpZWxkIG9wdGlvbnMnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9lbmNvZGVfcXVlcnkoJHBhcmFtcywgJHNtYXJ0eSkKICAgIHsKICAgICAgICAkZmFjdG9yeSA9ICR0aGlzLT5nZXRfcXVlcnlfZmFjdG9yeSgpOwogICAgICAgICRxdWVyeSA9ICRmYWN0b3J5LT5jcmVhdGVfcXVlcnlfZnJvbV9wYXJhbXMoJHBhcmFtcyk7CiAgICAgICAgJGVuY29kZWQgPSAkZmFjdG9yeS0+ZW5jb2RlX3F1ZXJ5KCRxdWVyeSk7CiAgICAgICAgJGFzc2lnbiA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhc3NpZ24nKTsKICAgICAgICBpZiggJGFzc2lnbiApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRhc3NpZ24sICRlbmNvZGVkKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGVuY29kZWQ7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/css/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/css/admin.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LnBhZ2VvcHRpb25zIHsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7Cn0KLnJvdzEgewogIGJhY2tncm91bmQ6ICNmMmYyZjI7Cn0KLnJvdzIgewogIGJhY2tncm91bmQ6ICNmYWZhZmE7Cn0KLnJvdzFob3ZlciwgLnJvdzJob3ZlciwgLnJvdzE6aG92ZXIsIC5yb3cyOmhvdmVyIHsKICBiYWNrZ3JvdW5kOiAjZGRkOwp9CgoKZGl2LmhpZXJsaXN0IHVsIHsKICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZSAhaW1wb3J0YW50Owp9CmRpdi5oaWVybGlzdCB1bC5ub2luZGVudCB7CiAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKfQpkaXYuaGllcmxpc3QgZGl2LmhpZXJub2RlIHsKICBoZWlnaHQ6IDM2cHg7CiAgbGluZS1oZWlnaHQ6IDM2cHg7CiAgZm9udC1zaXplOiAxMnB4OwogIHdpZHRoOiAxMDAlOwp9CmRpdi5oaWVybm9kZSBzcGFuIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQpkaXYuaGllcmxpc3QgZGl2LmhpZXJpZCB7CiAgaGVpZ2h0OiBpbmhlcml0OwogIGxpbmUtaGVpZ2h0OiBpbmhlcml0OwogIGZsb2F0OiBsZWZ0OwogIHBhZGRpbmctbGVmdDogNXB4OwogIHBhZGRpbmctcmlnaHQ6IDVweDsKfQpkaXYuaGllcmxpc3QgZGl2LmhpZXJuYW1lIHsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IGxlZnQ7CiAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgcGFkZGluZy1yaWdodDogMTBweDsKfQpkaXYuaGllcmxpc3QgZGl2LmhpZXJpY29uIHsKICBoZWlnaHQ6IGluaGVyaXQ7CiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7CiAgZmxvYXQ6IHJpZ2h0OwogIG1pbi13aWR0aDogMTZweDsKICBwYWRkaW5nLWxlZnQ6IDVweDsKICBwYWRkaW5nLXJpZ2h0OiA1cHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9CmRpdi5oaWVybGlzdCBkaXYuaGllcmljb24gaW1nIHsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9CmRpdi5oaWVybGlzdCA+IGRpdi5oZWFkZXIgewogIG1hcmdpbi10b3A6IDVweDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjMyMzIzOwogIGNvbG9yOiAjZmE4MDA0OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIHBhZGRpbmctbGVmdDogNXB4OwogIHBhZGRpbmctcmlnaHQ6IDVweDsKICBoZWlnaHQ6IDQ1cHg7CiAgbGluZS1oZWlnaHQ6IDQ1cHg7CiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4OwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7Cn0KZGl2LmhpZXJsaXN0IGEgewogIGNvbG9yOiAjMjMyMzIzOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQpkaXYuaGllcmxpc3QgYTpob3ZlciB7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cn0K]]></data>
	</file>
	<file>
	  <filename>/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/doc/cdquery.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QSBDRFF1ZXJ5IGlzIGEgJ3Byb2dyYW0nIGNvbnNpc3Rpbmcgb2YgYSBudW1iZXIgb2YgZXhwcmVzc2lvbnMgb2YgdGhlIGZvcm1hdDoKCltvcGVyYW5kOmV4cHI6YXJndW1lbnRbOmFyZ3VtZW50Wzphcmd1bWVudC4uLl1dXQoKdmFsaWQgb3BlcmFuZHMgYXJlOgotLS0tCmFuZApvcgpzb3J0YnkKc29ydG9yZGVyCmxpbWl0Cm9mZnNldAoKdmFsaWQgZXhwcmVzc2lvbnMgYXJlOgotLS0Kc2ltcGxlIGV4cHJlc3Npb25zCi0tLQpuYW1lL2NvbXBhbnlfbmFtZSAgW25hbWU6T1BFUkFUT1I6dmFsdWVdIChzdHJpbmcpCnN0YXR1cyBbc3RhdHVzOk9QRVJBVE9SOnZhbHVlXSAoc3RyaW5nKQp1cmwgW3VybDpPUEVSQVRPUjp2YWx1ZV0gKHN0cmluZykKYWRkcmVzcyBbdXJsOk9QRVJBVE9SOnZhbHVlXSAoc3RyaW5nKQpvd25lci9vd25lcl9pZCBbb3duZXI6T1BFUkFUT1I6dmFsdWVdIChpbnQpCmlkIFtpZDpPUEVSQVRPUjp2YWx1ZV0gKGludCkKbW9kaWZpZWRfc2luY2UgIFttb2RpZmllZF9zaW5jZTpPUEVSQVRPUjp2YWx1ZV0gKGludCkKY3JlYXRlX2RhdGUgPSBjcmVhdGVfZGF0ZTpPUEVSQVRPUjp2YWx1ZSAoaW50KQp0ZWxlcGhvbmUKZmF4CmNvbnRhY3RfZW1haWwKd2Vic2l0ZQpwaWN0dXJlCmxvZ28KClZhbGlkIG9wZXJhdG9ycyBhcmU6CkVRLCBORSwgR1QsIEdFLCBMVCwgTEUsIFNXL1NUQVJUU1dJVEgsIEVXL0VORFNXSVRILCBMSUtFLCBSRUdFWCwgQ09OVEFJTlMKdHlwZSBzcGVjaWZpYy4uLgoKLS0tCmNvbXBsZXggZXhwcmVzc2lvbnMKLS0tCmhpZXIgPSBoaWVyOiNbOndpdGhfY2hpbGRyZW5dCmNhdGVnb3J5ID0gaGllcjojWzp3aXRoX2NoaWxkcmVuXQpmaWVsZCA9IGZpZWxkOmZpZWxkbmFtZTpPUEVSQVRPUjp2YWx1ZVs6dHlwZV0KcGhyYXNlID0gcGhyYXNlOnRleHQKcmFkaXVzX21pbGVzID0gcmFkaXVzX21pbGVzOmRpc3RhbmNlOmxhdDpsb25nCnJhZGl1c19rbSA9IHJhZGl1c19rbTpkaXN0YW5jZTpsYXQ6bG9uZwpvd25lcl9saXN0ID0gb3duZXJfbGlzdDojLCMsIywjCmlkbGlzdCA9IGlkbGlzdDojLCMsIywjCgoKLSBBTkQgc3RhdGVtZW50cyBhcmUgcGxhY2VkIGluIHRoZSBxdWVyeSBiZWZvcmUgT1Igb3BlcmF0aW9ucwotIGF0IGxlYXN0IHR3byBPUiBzdGF0ZW1lbnRzIG11c3QgYmUgc3BlY2lmaWVkIGZvciBhbiBPUiBhcnJhbmdlbWVudC4gIElmIG9ubHkgb25lIE9SIHN0YXRlbWVudCBpcyBwcm92aWRlZCBpdCBpcyB0cmVhdGVkIGxpa2UgYW4gQU5ECgphZGRpdGlvbmFsIGV4cHJlc3Npb25zIGNhbiBiZSByZWdpc3RlcmVkIGJ5IGV4dGVybmFsIHNvZnR3YXJlCgpFWEFNUExFOgpRVUVSWSBUaGUgbW9zdCByZWNlbnRseSBtb2RpZmllZCAyMCBQVUJMSVNIRUQgQVJUSUNMRVMgaW4gJ1Rvcm9udG8nIGluIENhdGVnb3J5IDUgYW5kIGNoaWxkcmVuIE9SIEhpZXJhcmNoeSA2IHdpdGhvdXQgY2hpbGRyZW4KClthbmQ6c3RhdHVzOkVROnB1Ymxpc2hlZF0KW2FuZDphZGRyZXNzOkNPTlRBSU5TOlRvcm9udG9dCltvcjpjYXRlZ29yeTo1OjFdCltvcjpoaWVyOjZdCltsaW1pdDoyMF0KW3NvcnRieTptb2RpZmllZF9kYXRlXQpbc29ydG9yZGVyOmRlc2NdCg==]]></data>
	</file>
	<file>
	  <filename>/doc/changelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgogICAgPGxpPnYyLjAKICAgICAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgdmVyc2lvbiBpcyBhIGNvbXBsZXRlIHJld3JpdGUgb2YgYWxsIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIENvbXBhbnlEaXJlY3RvcnkuICBBbHRob3VnaCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGhhdmUgbm90IGRyYW1hdGljYWxseSBjaGFuZ2VkLCBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIGRhdGEgbG9zcywgYWxsIGZ1bmN0aW9uYWxpdHkgaGFzIGJlZW4gcmV3cml0dGVuLiAgVGhlcmUgd2lsbCBiZSBmdW5jdGlvbmFsaXR5IGJyZWFrYWdlIGFuZCB5b3UgV0lMTCBoYXZlIHRvIHJlZG8gYWxsIHRlbXBsYXRlcy4gIEl0IGlzIGNyaXRpY2FsIHRoYXQgeW91IGRvIG5vdCB1cGdyYWRlIGEgbGl2ZSBzaXRlLiAgSW5zdGVhZCB5b3Ugc2hvdWxkIGRvIHRoZSB1cGdyYWRlIG9uIGEgZGV2ZWxvcG1lbnQgc2VydmVyLCBhbmQgb25seSB3aGVuIGFsbCBmdW5jdGlvbmFsaXR5IGlzIHdvcmtpbmcgc2hvdWxkIHlvdSBzeW5jaHJvbmlzZSB5b3VyIHRlbXBsYXRlcyBhbmQgbW9kdWxlcyB3aXRoIHRoZSBsaXZlIHNpdGUuPC9kaXY+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPldBUk5JTkc6PC9zdHJvbmc+IFRoZSB1cGdyYWRlIHJvdXRpbmUgY29udmVycyBhbGwgdGFibGVzIHRvIHVzZSB0aGUgSW5ub0RCIGVuZ2luZSwgYW5kIGFkZHMgc29tZSBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzLiAgVG8gZG8gdGhhdCwgaXQgbXVzdCBlbnN1cmUgdGhhdCB0aGUgZGF0YWJhc2UgaXMgYXQgbGVhc3QgbWluaW1hbGx5IGNsZWFuLiAgSXQgd2lsbCBkZWxldGUgc29tZSByb3dzIGZyb20gdGhlIGZpZWxkdmFscyBhbmQgY29tcGFueV9jYXRlZ29yaWVzIHRhYmxlcyBJRiB0aGUgY29tcGFueSBpZCwgZmllbGRkZWYgaWRzLCBvciBjYXRlZ29yeSBpZHMgZG8gbm90IGV4aXN0LiAgSXQgd2lsbCBlcmFzZSBhbnkgaW52YWxpZCBoaWVyYXJjaHkgc2V0dGluZ3MgZnJvbSB0aGUgY29tcGFuaWVzIHRhYmxlLCAgYW5kIEFkZGl0aW9uYWxseSwgdGhlIHVwZ3JhZGUgcm91dGluZSBhZGp1c3RzIGJvdGggdGhlIHNpemUgYW5kIHN0YXR1cyBvZiBzb21lIGZpZWxkcywgYW5kIGhpZXJhcmNoaWVzLCAgYW5kIGVuZm9yY2VzIGRhdGEgY29uc3RyYWludHMuICBZb3Ugc2hvdWxkIGVuc3VyZSB5b3UgaGF2ZSBrbm93bi1nb29kIGJhY2t1cHMsIGFuZCBiZSBzdXJlIHRvIHRob3Vyb3VnbHkgdmFsaWRhdGUgeW91ciBkYXRhLiAgU29tZSBhZGp1c3RtZW50IG1heSBiZSBuZWVkZWQgdG8gYWRqdXN0IGZvciBiYWQgZGF0YSBpbiB0aGUgcHJldmlvdXMgZGF0YWJhc2UuPC9kaXY+Cgk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3RyaW5nPk5vdGU6PC9zdHJvbmc+IEFmdGVyIHVwZ3JhZGUsIGlmIHlvdSBhcmUgdXNpbmcgY3VzdG9tIHRlbXBsYXRlcyB0aGUgbW9kdWxlIHdpbGwgbm90IGJlIGFibGUgdG8gZmluZCB0aGVtIGFuZCB3aWxsIGdlbmVyYXRlIGVycm9ycy4gIEhvd2V2ZXIsIHlvdXIgdGVtcGxhdGUgd29yayBpcyBub3QgbG9zdC4gQWxsIGN1c3RvbSB0ZW1wbGF0ZXMgZnJvbSB0aGlzIG1vZHVsZSBzaG91bGQgYmUgbG9jYXRlZCBpbiB0aGUgPGNvZGU+L2Fzc2V0cy9tb2R1bGVfY3VzdG9tL0NvbXBhbnlEaXJlY3RvcnkvdGVtcGxhdGVzPC9jb2RlPiBmb2xkZXIuICBJZiB5b3Ugd291bGQgbGlrZSB0byB0ZWxsIENvbXBhbnlEaXJlY3RvcnkgdG8gdXNlIHRoZXNlIHRlbXBsYXRlcyB0aGVuIGNoYW5nZSB0aGUgY2FsbHMgdG8gQ29tcGFueURpcmVjdG9yeSB0byBzZXBjaWZ5IHRoZSB0ZW1wbGF0ZSBmaWxlICh3aXRoIGEgLnRwbCBleHRlbnNpb24pLiAgPGVtPnRpcDo8L2VtPiB1c2UgPGNvZGU+e2Ntc19tb2R1bGVfaGludH08L2NvZGU+LjwvcD4KCTxwPlNvbWUgb2YgdGhlIGNoYW5nZXMgaW5jbHVkZTo8L3A+Cgk8dWw+Cgk8bGk+UmVtb3ZpbmcgYWxsIHRlbXBsYXRlIGZ1bmN0aW9uYWxpdHkgYW5kIG5vdyB1c2UgZmlsZSBiYXNlZCB0ZW1wbGF0ZXMuICBZb3UgY2FuIHN0aWxsIHVzZSBkZXNpZ24gbWFuYWdlciBmb3IgdGVtcGxhdGVzIGlmIHlvdSB3aXNoLCBidXQgY3JlYXRpbmcgbmV3IHRlbXBsYXRlcyBpbiBEZXNpZ25NYW5hZ2VyIHdpbGwgYmUgYSBjb3B5L3Bhc3RlIHByb2Nlc3MuPC9saT4KCTxsaT5SZW1vdmUgdGhlIHNldHRpbmdzIHBhbmVsIGluIGZhdm9yIG9mIGVudHJpZXMgaW4gdGhlIGNvbmZpZy5waHAgZmlsZS48L2xpPgoJPGxpPlJld3JpdGUgdGhlIHdheSB0aGF0IEdlb2NvZGluZyB3b3Jrcy4gIFRoZSBDR0dvb2dsZU1hcHMoMikgbW9kdWxlcyB3aWxsIG5vIGxvbmdlciBwcm92aWRlIGdlb2NvZGluZyBmdW5jdGlvbmFsaXR5IGZvciB0aGlzIG1vZHVsZS4gIEEgcmVwbGFjZW1lbnQgaXMgYXZhaWxhYmxlLjwvbGk+Cgk8bGk+VGhlIGVtYWlsIGZ1bmN0aW9uYWxpdHkgZm9yIG5vdGlmaWNhdGlvbiBvbiBmcm9udGVuZCBlZGl0cy9hZGRzIG5vdyB1c2VzIGEgLmVtbCBmaWxlIGZvcm1hdC4gIFNlZSB0aGUgaGVscC4gIFRoZSBmb3JtYXQgb2YgdGhpcyBtZXNzYWdlIGlzIG5vdCBjb252ZXJ0ZWQgb24gdXBncmFkZS48L2xpPgoJPGxpPlJlbW92ZSB0aGUgc2VhcmNoIHN0YXRzIGZ1bmN0aW9uYWxpdHkuPC9saT4KCTxsaT5SZW1vdmUgdGhlIGFiaWxpdHkgdG8gYXNzb2NpYXRlIGFuICdpY29uJyB3aXRoIGNvbXBhbmllcyBpZiBDR0dvb2dsZU1hcHMyIGlzIGF2YWlsYWJsZS48L2xpPgoJPGxpPkFkZHMgYSBmbGV4aWJsZSBuZXcgcXVlcnkgbGFuZ3VhZ2Ugd2l0aCByYWRpdXMgc2VhcmNoIGFuZCBmdWxsIHRleHQgc2VhcmNoaW5nIGFuZCBtb3JlLi4uPC9saT4KCTxsaT5SZXdyaXRlIGFsbCBhY3Rpb25zLCBwbHVnaW5zIGFuZCB0ZW1wbGF0ZXMuICBUaG91Z2ggdGhlIGZhY3RvcnkgdGVtcGxhdGUgbmFtZXMgaGF2ZSBub3QgY2hhbmdlZCwgdGhlIGNvbnRlbnRzIGFuZCBmdW5jdGlvbmFsaXR5IG9mIHRoZW0gaGFzLjwvbGk+Cgk8bGk+QWRkcyBleHRlbnNpdmUgdXNlIG9mIGNhY2hpbmc8L2xpPgoJPGxpPkFkZHMgbW9yZSBjdXN0b20gZmllbGQgdHlwZXM8L2xpPgoJPGxpPlJlbW92ZXMgdGhlICdwdWJsaWMnIGZsYWcgZm9yIGN1c3RvbSBmaWVsZHMuICBJZiBmaWVsZHMgYXJlIG5vdCB0byBiZSBzaG93biBvbiB0aGUgZnJvbnRlbmQgdGhlbiB5b3VyIHRlbXBsYXRlcyBzaG91bGQgaGFuZGxlIHRoaXMuPC9saT4KCTxsaT5UaGUgYWRtaW4gc2lkZSBDU1YgaW1wb3J0IGZ1bmN0aW9uYWxpdHkgbm93IG9ubHkgaGFuZGxlcyBjb21wYW55IHJlY29yZHMsIGFuZCBpcyBpbmZpbml0ZWx5IG1vcmUgY2xlYXIgYW5kIGZsZXhpYmxlLCB0aG91Z2ggaXQgZG9lcyBub3QgYWxsb3cgb3ZlcndyaXRpbmcgZXhpc3RpbmcgcmVjb3Jkcy48L2xpPgoJPGxpPlRoZSBmcm9udGVuZCBzaWRlIENTViBpbXBvcnQgZnVuY3Rpb25hbGl0eSBpcyBub3cgc2ltcGxlciBhbmQgdXNlcyBhIHNlbWktZml4ZWQgZm9ybWF0LjwvbGk+Cgk8bGk+dGhlIGFkdmFuY2VkIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGlzIG5vdyBjb21wbGV0ZWx5IGZsZXhpYmxlLiAgWW91IGJ1aWxkIHRoZSBmb3JtIHRoZSB3YXkgeW91IHdhbnQsIGFuZCBwYXNzIHRoZSBmb3JtIHJlc3VsdHMgdG8gYW5vdGhlciB0ZW1wbGF0ZSB0aGF0IGJ1aWxkcyBhIGNkbGFuZyBxdWVyeS4gIFRoZSBxdWVyeSBmcm9tIHRoZSBhZHZhbmNlZCBzZWFyY2ggZm9ybSwgYW5kIHRoZSBjdXJyZW50IHBhZ2UgYXJlICdzdGlja3knIGFuZCBzYXZlZCBpbiB0aGUgc2Vzc2lvbi48L2xpPgoJPGxpPlJlbW92ZWQgYWxsIGV2ZW50cywgbm93IHVzZSBob29rcy48L2xpPgogICAgICAgIDxsaT5UaGVyZSBpcyBubyBsb25nZXIgZnVuY3Rpb25hbGl0eSB0byBleHBvcnQgYW5kIGltcG9ydCBmaWVsZCBkZWZpbml0aW9ucywgaGllcmFyY2hpZXMgb3IgY2F0ZWdvcmllcy4gIHRob3VnaCBzb21lIG9mIHRoaXMgZnVuY3Rpb25hbGl0eSBjYW4gYmUgYWRkcmVzc2VkIGFzIG5lZWRlZCBhdCBhIGxhdGVyIGRhdGUuPC9saT4KCTxsaT5BZGRzIGJldHRlciBhdWRpdGluZzwvbGk+Cgk8bGk+Q29tcGF0aWJsZSB3aXRoIENNU01TIHYyLjM8L2xpPgoJPGxpPk5vdyB1c2VzIHRoZSBJbm5vREIgZGF0YWJhc2UgZW5naW5lLCBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzIGZvciBkYXRhYmFzZSBpbnRlZ3JpdHksIGFuZCB0cmFuc2FjdGlvbnMgaW4gbWFueSBwbGFjZXMgZm9yIHBlcmZvcm1hbmNlLjwvbGk+Cgk8bGk+bXVjaCwgbXVjaCBtb3JlLi4uPC9saT4KCTwvdWw+CiAgICA8L2xpPgo8L3VsPgo=]]></data>
	</file>
	<file>
	  <filename>/doc/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMiwgSnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoKICA0LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KZXhjZXB0IGFzIGV4cHJlc3NseSBwcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdApvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLgpIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaApwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDUuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBQcm9ncmFtIG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgUHJvZ3JhbSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgNi4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZQpvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0cmlidXRlIG9yIG1vZGlmeSB0aGUgUHJvZ3JhbSBzdWJqZWN0IHRvCnRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgdG8KdGhpcyBMaWNlbnNlLgoKICA3LiBJZiwgYXMgYSBjb25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50CmluZnJpbmdlbWVudCBvciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50IGlzc3VlcyksCmNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdApkaXN0cmlidXRlIHNvIGFzIHRvIHNhdGlzZnkgc2ltdWx0YW5lb3VzbHkgeW91ciBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzCkxpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UKbWF5IG5vdCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudApsaWNlbnNlIHdvdWxkIG5vdCBwZXJtaXQgcm95YWx0eS1mcmVlIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5CmFsbCB0aG9zZSB3aG8gcmVjZWl2ZSBjb3BpZXMgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aHJvdWdoIHlvdSwgdGhlbgp0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCnJlZnJhaW4gZW50aXJlbHkgZnJvbSBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0uCgpJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKYW55IHBhcnRpY3VsYXIgY2lyY3Vtc3RhbmNlLCB0aGUgYmFsYW5jZSBvZiB0aGUgc2VjdGlvbiBpcyBpbnRlbmRlZCB0bwphcHBseSBhbmQgdGhlIHNlY3Rpb24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlcgpjaXJjdW1zdGFuY2VzLgoKSXQgaXMgbm90IHRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiB0byBpbmR1Y2UgeW91IHRvIGluZnJpbmdlIGFueQpwYXRlbnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQpzdWNoIGNsYWltczsgdGhpcyBzZWN0aW9uIGhhcyB0aGUgc29sZSBwdXJwb3NlIG9mIHByb3RlY3RpbmcgdGhlCmludGVncml0eSBvZiB0aGUgZnJlZSBzb2Z0d2FyZSBkaXN0cmlidXRpb24gc3lzdGVtLCB3aGljaCBpcwppbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55IHBlb3BsZSBoYXZlIG1hZGUKZ2VuZXJvdXMgY29udHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZAp0aHJvdWdoIHRoYXQgc3lzdGVtIGluIHJlbGlhbmNlIG9uIGNvbnNpc3RlbnQgYXBwbGljYXRpb24gb2YgdGhhdApzeXN0ZW07IGl0IGlzIHVwIHRvIHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCnRvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBhbnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAppbXBvc2UgdGhhdCBjaG9pY2UuCgpUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gbWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KYmUgYSBjb25zZXF1ZW5jZSBvZiB0aGUgcmVzdCBvZiB0aGlzIExpY2Vuc2UuCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwogICAgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICAgIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/doc/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBpZD0iY2RfaGVscCI+CjxhIGlkPSJ0b3AiPjwvYT4KCjxzdHlsZT4KYS5uYXYgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDMwJTsKfQo8L3N0eWxlPgo8c2NyaXB0PgokKGZ1bmN0aW9uKCl7CiAgICAkKCcjY2RfaGVscCBhLm5hdicpLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCkKICAgICAgIGxldCB0YXJnZXQgPSAkKHRoaXMpLnByb3AoJ2hyZWYnKQogICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnN1YnN0cmluZyh0YXJnZXQuaW5kZXhPZignIycpKTsKICAgICAgICQoJ2h0bWwsYm9keScpLmFuaW1hdGUoe3Njcm9sbFRvcDogJCh0YXJnZXQpLm9mZnNldCgpLnRvcH0sJ3Nsb3cnKQogICAgfSkKfSkKPC9zY3JpcHQ+Cgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjZmVhdHVyZXMiPkZlYXR1cmVzPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjaG93dG91c2UiPkhvdyBkbyBJIHVzZSBpdDwvYT4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI2NhbGxpbmdhY3Rpb25zIj5DYWxsaW5nIGFjdGlvbnM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNhY3Rpb25zIj5BY3Rpb25zPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjcGFyYW1ldGVycyI+UGFyYW1ldGVyczwvYT4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI2Fib3V0X3RlbXBsYXRlcyI+QWJvdXQgdGVtcGxhdGVzPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjYWJvdXRfZW1haWxzIj5BYm91dCBlbWFpbHM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNvYmpzY3RzIj5PYmplY3RzPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjc21hcnR5X3BsdWdpbnMiPlNtYXJ0eSBwbHVnaW5zPC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjYWxidW1zIj5BbGJ1bXM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNjZGxhbmciPlRoZSBjZGxhbmcgcXVlcnkgbGFuZ3VhZ2U8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNjb25maWdfZW50cmllcyI+Q29uZmlnIGVudHJpZXM8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNob29rcyI+SG9va3M8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNzZWN1cml0eSI+U2VjdXJpdHk8L2E+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiNzdXBwb3J0Ij5TdXBwb3J0PC9hPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjY29weXJpZ2h0Ij5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2E+Cjxoci8+Cgo8aDM+V2hhdCBkb2VzIHRoaXMgZG8/PC9oMz4KICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHdheSB0byBjb2xsZWN0LCBvcmdhbml6ZSwgc2VhcmNoLCBmaWx0ZXIsIGFuZCBkaXNwbGF5IGEgZGlyZWN0b3J5IG9mIGluZm9ybWF0aW9uIGFib3V0IG5hbWVzIGFuZCBhZGRyZXNzZXMgYW5kIGFzc29jaWF0ZWQgZGF0YSBpbmNsdWRpbmcgaW1hZ2VzLCBsb2dvcywgbG9jYXRpb24gaW5mb3JtYXRpb24sIGZpbGVzIGFuZCBhIHBob3RvIGFsYnVtLjwvcD4KPHA+VGhpcyBtb2R1bGUgY291bGQgYmUgdXNlZCBmb3IgYSB2YXJpZXR5IG9mIHB1cnBvc2VzLiBJbmNsdWRpbmcgYSByZWdpb25hbCB0b3VyaXNtIHNpdGUsIGEgc3VwcGxpZXJzIGxpc3QsIG9yIGEgY29udGFjdCBsaXN0LiAgSXQgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgaXQgY291bGQgYmUgcmUtdXNlZCBmb3IgbWFueSBkaWZmZXJlbnQgcHVycG9zZXMuPC9wPgoKPGgzIGlkPSJmZWF0dXJlcyI+RmVhdHVyZXM6PC9oMz4KPHVsPgogICAgPGxpPkN1c3RvbSBGaWVsZHMKICAgICAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBleHRlbmQgdGhlIGJhc2ljIGRhdGFiYXNlIG1vZGVsIGJ5IGFkaW5nIGN1c3RvbSBmaWVsZHMgdG8gdGhlIHN0cnVjdHVyZS4gIFRoZXJlIGFyZSBudW1lcm91cyBkaWZmZXJlbnQgdHlwZXMgb2YgY3VzdG9tIGZpZWxkcywgYW5kIHNvbWUgbW9kdWxlcyBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIHR5cGVzLiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYXJrIGN1c3RvbWYgaWVsZHMgYXMgZWRpdGFibGUgYnkgYWRtaW5pc3RyYXRvcnMgb25seS4KICAgIDwvbGk+CiAgICA8bGk+R2VvQ29kaW5nCiAgICAgICAgPHA+SWYgYSBjb21wYXRpYmxlIGdlb2NvZGluZyBtb2R1bGUgaXMgaW5zdGFsbGVkLCB0aGVuIHRoaXMgbW9kdWxlIGNhbiBjb252ZXJ0IGFkZHJlc3NlcyB0byBjb29yZGluYXRlcyB0aGF0IGFyZSBzdWl0YWJsZSBmb3IgdXNlIGluIG1hcHBpbmcgYW5kIHJhZGl1cyBzZWFyY2hlcy48cD4KICAgIDwvbGk+CiAgICA8bGk+S01MIEltcG9ydAogICAgICAgIDxwPlRoaXMgbW9kdWxlIGNhbiBpbXBvcnQgYmFzaWMgY29tcGFueSBkYXRhIGZyb20gS01MIGZvcm1hdC48L3A+CiAgICA8L2xpPgogICAgPGxpPkZsZXhpYmxlIEFTQ0lJIEltcG9ydCBhbmQgRXhwb3J0CiAgICAgICAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gaW1wb3J0IGNvbXBhbmllcywgZmllbGQgZGVmaW5pdGlvbnMsIGFuZCBjYXRlZ29yaWVzIGZyb20gYSBmbGV4aWJsZSAoc2VtaS11c2VyLWRlZmluYWJsZSkgQVNDSUkgZm9ybWF0LjwvcD4KICAgIDwvbGk+CiAgICA8bGk+RmxleGlibGUgQ2F0ZWdvcml6YXRpb24KICAgICAgICA8cD5UaGUgc2l0ZSBhZG1pbmlzdHJhdG9yIGNhbiBjcmVhdGUgYSBoaWVyYXJjaGljYWwgZGF0YSBzdHJ1Y3R1cmUuICBFYWNoIENvbXBhbnkgcmVjb3JkIGNhbiBiZSBhc3NvY2lhdGVkIHRvIGEgcGxhY2UgaW5zaWRlIHRoYXQgaGllcmFyY2hpY2FsIGRhdGEgc3RydWN0dXJlIHRvIGFsbG93IGZvciBmaWx0ZXJpbmcsIG9yIGRyaWxsIGRvd24gc2VhcmNlcy48L3A+CiAgICAgICAgPHA+QWRkaXRpb25hbGx5LCB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIGNhbiBjcmVhdGUgYSBsaXN0IG9mICZxdW90O2NhdGVnb3JpZXMmcXVvdDsuICBFYWNoIGNvbXBhbnkgbG9jYXRpb24gY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZSBjYXRlZ29yaWVzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHNlYXJjaGluZyBhbmQgZmlsdGVyaW5nIGZ1bmN0aW9uYWxpdHkuICBGb3IgZGlzcGxheSBwdXJwb3NlcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBjYXRlZ29yeSAodGhyZWUgdXNlciBkZWZpbmVkIGFyZWFzKS4gIEFuZCB3aGVuIGVkaXRpbmcgYSBjb21wYW55IHJlY29yZCwgY2F0ZWdvcnkgaW5mb3JtYXRpb24gY2FuIGJlIG92ZXJyaWRlbiBmb3IgZWFjaCByZWNvcmQuPC9wPgogICAgPC9saT4KICAgIDxsaT5GbGV4aWJsZSBVUkwgbWVjaGFuaXNtczwvbGk+CiAgICAgICAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGZvciB0aGUgc2l0ZSBhZG1pbmlzdHJhdG9yIHRvIHNwZWNpZnkgYSB1bmlxdWUgU0VPIGZyaWVuZGx5IFVSTCBmb3IgdGhlIGRldGFpbCB2aWV3IG9mIGVhY2ggY29tcGFueSByZWNvcmQuICBUaGlzIFVSTCB3b3JrcyBpbiBhZGRpdGlvbiB0byB0aGUgb3RoZXIgU0VPIGZyaWVuZGx5IG1lY2hhbmlzbXMgdGhhdCBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgYSBjb21wYW55IGRldGFpbCByZWNvcmQuPC9wPgogICAgICAgIDxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gV2hlbiB1c2luZyBTRU8gZnJpZW5kbHkgVVJMUyBpdCBpcyBpbXBvcnRhbnQgdG8gdXNlIGNhbm9uaWNhbCBVUkxTLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+RnJvbnRlbmQgRWRpdGluZwogICAgICAgIDxwPlRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSBpcyBjYXBhYmxlIG9mIGFsbG93aW5nIGF1dGhvcml6ZWQgZnJvbnRlbmQgdXNlcnMgPGVtPihzZWUgdGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlKTwvZW0+IHRvIGFkZCBhbmQgbWFuYWdlIChldmVuIGltcG9ydCBmcm9tIENTVikgQ29tcGFueSByZWNvcmRzLiAgVGhpcyBpcyB1c2VmdWwgZm9yIGJ1aWxkaW5nIGEgZGlyZWN0b3J5IHNpdGUsIGZvciBleGFtcGxlIGZvciBhIHJlZ2lvbmFsIHRvdXJpc20gYm9hcmQgd2hlcmUgaW5kaXZpZHVhbCBzdWJzY3JpYmVycyBtYXkgbWFuYWdlIHRoZSB2aXNpYmxlIHB1YmxpYyBpbmZvcm1hdGlvbiBmb3Igb25lIG9yIG1vcmUgY29tcGFuaWVzLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+TnVtZXJvdXMgZGlzcGxheSBtZWNoYW5pc21zPC9saT4KICAgIDxsaT5BZHZhbmNlZCBTZWFyY2ggYW5kIEZpbHRlcmluZyBDYXBhYmlsaXRpZXMKICAgICAgICA8cD5UaGlzIG1vZHVsZSBpbmNsdWRlcyBhIGZsZXhpYmxlIHF1ZXJ5aW5nICdsYW5ndWFnZScgdGhhdCBhbGxvd3MgZm9yIGZsZXhpYmxlIHNlYXJjaCBhbmQgZmlsdGVyaW5nIGNhcGFiaWxpdGllcywgaW5jbHVkaW5nIGxvY2F0aW9uIGF3YXJlIHNlYXJjaGVzLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+RmxleGlibGUgVGVtcGxhdGluZyBDYXBhYmlsaXRpZXM8L2xpPgogICAgPGxpPkV4dGVuc2l2ZSBjYWNoaW5nPC9saT4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+Cgo8aDMgaWQ9Imhvd3RvdXNlIj5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5BZnRlciBpbnN0YWxsaW5nIHRoZSBtb2R1bGUgeW91IHNob3VsZCBjcmVhdGUgYSBmZXcgY29tcGFuaWVzLiAgQnkgZGVmYXVsdCwgdGhlcmUgaXMgb25seSBvbmUgcmVxdWlyZWQgZmllbGQgZm9yIGVhY2ggY29tcGFueSwgYSBuYW1lLiAgWW91IGNhbiBhbHNvIGVudGVyIGFuIGFkZHJlc3MsIHdlYnNpdGUgKHVybCksIGVtYWlsIGFkZHJlc3MsIGxhdGl0dWRlLCBsb25naXR1ZGUgYW5kIHBob25lIG51bWJlci4gICBPbmNlIHlvdSBoYXZlIGEgZmV3IGNvbXBhbmllcyBjcmVhdGVkLCBhdCBsZWFzdCBvbmUgb2YgdGhlbSBwdWJsaXNoZWQsICB5b3UgY2FuIGRpc3BsYXkgdGhlbSBvbiB0aGUgZnJvbnRlbmQgb2YgeW91ciB3ZWJzaXRlIGJ5IGNyZWF0aW5nIGEgbmV3IGNvbnRlbnQgcGFnZSwgYW5kIGFkZGluZyB0aGUgPGNvZGU+e0NvbXBhbnlEaXJlY3Rvcnl9PC9jb2RlPiB0YWcgaW50byBpdC4gICBTYXZlIHRoaXMgcGFnZSwgYW5kIGRpc3BsYXkgaXQgaW4geW91ciBicm93c2VyLiAgWW91IHNob3VsZCB0aGVuIHNlZSBhIGxpc3Qgb2YgeW91ciBwdWJsaXNoZWQgY29tcGFuaWVzLiAgIFRoaXMgaXMgYSBzdW1tYXJ5IHZpZXcuICBGb3IgZWFjaCBjb21wYW55IHJlY29yZCB5b3Ugc2hvdWxkIHNlZSBhIGxpbmsgdGhhdCwgd2hlbiBjbGlja2VkIHdpbGwgZGlzcGxheSBvbmx5IHRoYXQgY29tcGFueS4gIFRoaXMgaXMgYSBkZXRhaWwgdmlldy48L3A+CjxwPk5leHQgeW91IGNhbiBjcmVhdGUgc29tZSBjYXRlZ29yaWVzIGFuZCBhIGhpZXJhcmNoeSB0cmVlIHRvIGFsbG93IG9yZ2FuaXppbmcgeW91ciBjb21wYW5pZXMuICBUaGVuIGVkaXQgdGhlIGNvbXBhbmllcyBhbmQgYXNzaWduIHRoZW0gdG8gYSBsb2NhdGlvbiBpbiB0aGUgaGllcmFyY2h5IHRyZWUsIGFuZCBvbmUgb3IgbW9yZSBsb2NhdGlvbnMgaW4gdGhlIGNhdGdvcnkgdHJlZS48L3A+CjxwPkFmdGVyIHRoYXQsIHlvdSBjYW4gY3JlYXRlIGFzc29jaWF0ZWQgZGF0YSBmaWVsZHMgKGN1c3RvbSBmaWVsZHMpIHRvIGZ1cnRoZXIgZXhwYW5kIG9uIHRoZSBkYXRhIHlvdSBtYW5hZ2UgZm9yIGVhY2ggY29tcGFueS48L3A+CjxwPk9uY2UgeW91IGhhdmUgc29tZSBkYXRhIGluIHlvdXIgc3lzdGVtIGFuZCB5b3UgY2FuIGRpc3BsYXkgdGhhdCBkYXRhLi4uIHlvdSBtYXkgd2FudCB0byBnbyBhYm91dCBjdXN0b21pemluZyB5b3VyIGRpc3BsYXkgb2YgdGhhdCBkYXRhIGJ5OjwvcD4KPHVsPgogICAgPGxpPkN1c3RvbWl6aW5nIHRoZSBhcHBlYXJhbmNlIG9mIHlvdXIgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLiAgUGVyaGFwcyBpbmNsdWRpbmcgZGlzcGxheWluZyBsb2NhdGlvbnMgb24gYSBtYXAuPC9saT4KICAgIDxsaT5DcmVhdGluZyBhIGNhdGVnb3J5IHRyZWUgb3IgaGllcmFyY2h5IG5hdmlnYXRpb24gdG8gYWxsb3cgYSBjb252ZW5pZW50IHdheSBmb3IgdmlzaXRvcnMgdG8gZmluZCBjb21wYW5pZXMuPC9saT4KICAgIDxsaT5DcmVhdGluZyBhbiBhYmNsaXN0IHZpZXcgYXMgYW4gYWx0ZXJuYXRlIHdheSBvZiBmaW5kaW5nIGNvbXBhbmllcy48L2xpPgogICAgPGxpPkNyZWF0aW5nIGFuIGFkdmFuY2VkIHNlYXJjaCB2aWV3LjwvbGk+CiAgICA8bGk+QWxsb3dpbmcgYXV0aG9yaXplZCB1c2VycyB0byBhZGQgYW5kIG1hbmFnZSB0aGVpciBvd24gY29tcGFueSBlbnRyaWVzIGZyb20gdGhlIGZyb250ZW5kIG9mIHlvdXIgd2Vic2l0ZS48L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0iY2FsbGluZ2FjdGlvbnMiPkNhbGxsaW5nIGFjdGlvbnM8L2gzPgo8cD5JbiBtb3N0IGNpcmN1bXN0YW5jZXMgaXQgaXMgYmVzdCB0byBoYXZlIGRlZGljYXRlZCBjb250ZW50IHBhZ2VzIGZvciBpbmRpdmlkdWFsIGZ1bmN0aW9ucyBvZiB0aGUgQ29tcGFueURpcmVjdG9yeSBtb2R1bGUsIHN1Y2ggYXM6PC9wCjx1bD4KICAgIDxsaT5PbmUgb3IgbW9yZSBzdW1tYXJ5IHBhZ2VzIHdpdGggZGlmZmVyZW50IHF1ZXJpZXMuICBBIHN1bW1hcnkgcGFnZSBjYW4gYWxzbyBiZSB1c2VkIGFzIGEgZGVzdGluYXRpb24gZnJvbSBhIGhpZXJhcmNoeSBvciBjYXRlZ29yeSBsaXN0IHZpZXcuIDwvbGk+CiAgICA8bGk+QSBkZWRpY2F0ZWQgcGFnZSB0byBkaXNwbGF5IGRldGFpbCB2aWV3cyBmb3IgY29tcGFuaWVzLiAgVGhvdWdoIHRoaXMgaXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSB3aGVuIG5vdCB1c2luZyB1cmwgc2x1Z3MuPC9saT4KICAgIDxsaT5BIHBhZ2UgcHJvdmlkaW5nIGEgY2F0ZWdvcnkgb3IgaGllcmFyY2h5IGxpc3Qgdmlldy48L2xpPgogICAgPGxpPkEgcGFnZSBwcm92aWRpbmcgYW4gQUJDIGxpc3Qgdmlldy48L3A+CiAgICA8bGk+QSBwYWdlIHByb3ZpZGluZyBhZHZhbmNlZCBzZWFyY2g8L3A+CiAgICA8bGk+QSBwcm90ZWN0ZWQgcGFnZSBwcm92aWRpbmcgZnJvbnRlbmQgZWRpdGluZyBmdW5jdGlvbmFsaXR5PC9saT4KPC91bD4KPHA+V2hlbiBjYWxsaW5nIHRoZSBDb21wYW55RGlyZWN0b3J5IG1vZHVsZSwgdXN1YWxseSB0aGUgb25seSBwYXJhbWV0ZXIgdGhhdCBpcyByZWNvbW1lbmRlZCBpcyB0aGUgJ2FjdGlvbicgcGFyYW1ldGVyLiAgTW9zdCBvdGhlciBmaWx0ZXIgY3JpdGVyaWEgYW5kIGRpc3BsYXkgcGFyYW1ldGVycyBzaG91bGQgYmUgc3BlY2lmaWVkIGF0IHRoZSBwYWdlIGxldmVsIHVzaW5nIHRoZSB7Y21zX21vZHVsZV9oaW50fSBmdW5jdGlvbmFsaXR5IGJlZm9yZSB0aGUgbW9kdWxlIGlzIGNhbGxlZC48L3A+CjxwPkR1ZSB0byByZXN0cmljdGlvbnMgb24gcHJldHR5IFVSTFMsIHRoZSBsaW5rcyBnZW5lcmF0ZWQgYnkgdGhlIGNhdGVnb3J5IGFuZCBoaWVyYXJjaHkgbGlzdCB2aWV3cyB3aWxsIE5PVCBwYXNzIHBhcmFtZXRlcnMgc3VjaCBhcyBzdW1tYXJ5dGVtcGxhdGUsIG9yIHBhZ2VsaW1pdCB0byB0aGUgc3VtbWFyeSB2aWV3LiAgVGhlcmVmb3JlLCBhcyBhYm92ZSwgdGhlIGZpbHRlciBjcml0ZXJpYSBhbmQgZGlzcGxheSBwYXJhbWV0ZXJzIGZvciB0aGUgc3VtbWFyeSB2aWV3IG11c3QgYmUgc3BlY2lmaWVkIHVzaW5nIHtjbXNfbW9kdWxlX2hpbnR9IGJlZm9yZSB0aGUgbW9kdWxlIGlzIGNhbGxlZCwgT04gdGhlIHBhZ2UgdGhhdCB0aGUgc3VtbWFyeSB2aWV3IHdpbGwgYmUgcmVuZGVyZWQgdXBvbi48L3A+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJhY3Rpb25zIj5BY3Rpb25zPC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgc2V2ZXJhbCBmcm9udGVuZCAnYWN0aW9ucycgdG8gaW50ZXJhY3Qgd2l0aCBjb21wYW55IGRhdGEgaW4gbXVsdGlwbGUgd2F5cy4gIEVhY2ggc2VwYXJhdGUgYWN0aW9uIHNlcnZlcyBkaWZmZXJlbnQgcHVycG9zZXMsIGFuZCBjYW4gYWNjZXB0IGRpZmZlcmVudCBwYXJhbWV0ZXJzIGZvciBjdXN0b21pemF0aW9uLiAgSGVyZSBhcmUgdGhlIHByaW1hcnkgYWN0aW9ucyB0aGF0IHdpbGwgYmUgdXNlZCBtb3N0IG9mdGVuLjwvcD4KPHVsPgogICAgPGxpPlRoZSAiZGVmYXVsdCIgYWN0aW9uLgogICAgICAgIDxwPlRoaXMgYWN0aW9uIGRpc3BsYXlzIGEgc3VtbWFyeSByZXBvcnQgb2YgemVybyBvciBtb3JlIGNvbXBhbmllcyB0aGF0IG1hdGNoIHRoZSBjcml0ZXJpYSBwcm92aWRlZC4gIElmIG5vIGNkbGFuZyBkYXRhIGlzIHNwZWNpZmllZCwgdGhpcyBtb2R1bGUgd2lsbCBkaXNwbGF5IGFsbCBwdWJsaXNoZWQgYXJ0aWNsZXMgaW4gb3JkZXIgb2YgY29tcGFueSBuYW1lLCBhc2NlbmRpbmcuICAgVGhpcyB2aWV3IHN1cHBvcnRzIHBhZ2luYXRpb24sIGN1c3RvbSB0ZW1wbGF0ZXMsIGFuZCBhZHZhbmNlZCBmaWx0ZXJpbmcgYnkgc3BlY2lmeWluZyBhIGNkbGFuZyBzY3JpcHQuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiA8Y29kZT5vcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsPC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+VGhlICJkZXRhaWxzIiBhY3Rpb24KICAgICAgICA8cD5UaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBkaXNwbGF5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGNvbXBhbnkuICBJdCBtYXkgZGlzcGxheSBpbWFnZXMgaW4gYSBsYXJnZXIgc2l6ZSwgZGlzcGxheSBhIGdhbGxlcnkgb2YgaW1hZ2VzIGZvciBhIGNvbXBhbnkuLi4gb3IgbW9yZS48cD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogPGNvZGU+b3JpZ19kZXRhaWxfdGVtcGxhdGUudHBsPC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+VGhlICJicm93c2VoaWVyIiBhY3Rpb24KICAgICAgICA8cD5UaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBkaXNwbGF5IGEgbmF2aWdhdGlvbiBhbGxvd2luZyB1c2VycyB0byBlYXNpbHkgY2xpY2sgb24gYSBsaW5rIHRvIGRpc3BsYXkgYSBzdW1tYXJ5IHZpZXcgb2YgY29tcGFuaWVzIHRoYXQgYmVsb25nIHRvIHRoYXQgaGllcmFyY2h5LjwvcD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogPGNvZGU+b3JpZ19oaWVybGlzdF90ZW1wbGF0ZS50cGw8L2NvZGU+PC9wPgogICAgPC9saT4KICAgIDxsaT5UaGUgImNhdGVnb3J5bGlzdCIgYWN0aW9uCiAgICAgICAgPHA+U2ltaWxhciB0byB0aGUgYnJvd3NlaGllciBhY3Rpb24sIHRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGRpc3BsYXkgYSBuYXZpZ2F0aW9uIG9mIGNhdGVnb3JpZXMsIGFsbG93aW5nIHVzZXJzIHRvIGVhc2lseSBjbGljayBvbiBhIGxpbmsgdG8gYSBzdW1tYXJ5IHZpZXcgb2YgY29tcGFuaWVzIHRoYXQgYmVsb25nIHRvIHRoYXQgY2F0ZWdvcnkuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiA8Y29kZT5vcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGw8L2NvZGU+PC9wPgogICAgPC9saT4KICAgIDxsaT5UaGUgImFiY2xpc3QiIGFjdGlvbgogICAgICAgIDxwPlRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGRpc3BsYXkgYW4gYWxwaGFudW1lcmljIG5hdmlnYXRpb24gd2hlcmUgZWFjaCBsZXR0ZXIgb3IgbnVtYmVyIGlzIGEgbGluayB0byBhIHN1bW1hcnkgdmlldyBvZiBjb21wYW5pZXMgd2hvcyBuYW1lIGJlZ2lucyB3aXRoIHRoYXQgY2hhcmFjdGVyLiAgVGhpcyBhY3Rpb24gZGlzcGxheXMgdGhlIHJlc3VsdGluZyBzdW1tYXJ5IHZpZXcgZGlyZWN0bHkgYmVsb3cgdGhlIHByaW1hcnkgbmF2aWdhdGlvbi4gIFRoZSBkZWZhdWx0IGxldHRlciBzZWxlY3RlZCwgaWYgbm90IHNwZWNpZmllZCBpcyAiQSIuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiA8Y29kZT5vcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsPC9jb2RlPjwvcD4KICAgIDwvbGk+CiAgICA8bGk+VGhlICJhZHZzZWFyY2giIGFjdGlvbgogICAgICAgIDxwPlRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGFsbG93IGRldmVsb3BlcnMgdG8gY3JlYXRlIGEgZm9ybSBmb3IgYWR2YW5jZWQgc2VhcmNoaW5nIG9mIGRhdGEgaW4gdGhlIGNvbXBhbnlEaXJlY3RvcnkgbW9kdWxlLiAgT24gc3VibWlzc2lvbiB0aGUgZGF0YSBmcm9tIHRoZSBmb3JtIHN1Ym1pc3Npb24gaXMgcGFzc2VkIHRocm91Z2ggYSAnc2VhcmNoX3F1ZXJ5JyB0ZW1wbGF0ZSB3aGljaCBnbmVyYXRlcyBhIGNkbGFuZyBzY3JpcHQsICB3aGljaCBpbiB0dXJuIGlzIHVzZWQgdG8gcXVlcnkgdGhlIGRhdGFiYXNlLjwvcD4KCTxwPk9uY2UgZGF0YWJhc2UgcXVlcnlpbmcgaXMgY29tcGxldGUsIHRoaXMgYWN0aW9uIGdlbmVyYXRlcyBhIHN1bW1hcnkgdmlldyBvZiB0aGUgcmVzdWx0cy48cD4KCTxwPmZvcm0gcmVzdWx0cyBhcmUgc3RvcmVkIGluIHRoZSBzZXNzaW9uIHRvIHN1cHBvcnQgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXcgYW5kIHRoZSBhYmlsaXR5IHRvIHJldHVybiB0byB0aGUgcGFnZSB0byBicm93c2UgYW5vdGhlciBjb21wYW55IHVzaW5nIHRoZSBzYW1lIHF1ZXJ5LjwvcD4KICAgIDwvbGk+CjwvdWw+CjxwPkFkZGl0aW9uYWxseSwgdGhlcmUgYXJlIHNldmVyYWwgYWN0aW9ucyB1c2VmdWwgdmlhIGFqYXg6PC9wPgo8dWw+CiAgICA8bGk+YWpheF9jYXRlZ29yeV9hdXRvY29tcGxldGUKICAgICAgICA8cD50aGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byB3b3JrIHdpdGggdGhlIGF1dG9jb21wbGV0ZSBwbHVnaW4gZnJvbSBKUXVlcnktVUkuPC9wPgoJPHA+RmFjdG9yeSBkZWZhdWx0IHRlbXBsYXRlOiBuL2E8L3A+Cgk8cD5SZXF1ZXN0IG1ldGhvZDogPGNvZGU+R0VUPC9jb2RlPjwvcD4KCTxwPlBhcmFtZXRlcnM6PC9wPgoJPHVsPgoJICAgIDxsaT50ZXJtIChzdHJpbmcpIC0gVGhlIHRlcm0gdG8gc2VhcmNoIGZvci48L2xpPgoJPC91bD4KCTxwPk91dHB1dCBGb3JtYXQ6IDxjb2RlPkpTT048L2NvZGU+PC9wPgoJPHA+QW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIGxhYmVsIGFuZCB2YWx1ZSBtZW1iZXJzIGRlc2NyaWJpbmcgdGhlIG1hdGNoZWQgaXRlbXMuICBUaGUgbGFiZWwgaXMgdGhlIGxvbmcgbmFtZSB0byBhIG1hdGNoZWQgY2F0ZWdvcnksIGFuZCB0aGUgdmFsdWUgaXMgaXRzIHVuaXF1ZSBpbnRlZ2VyIGlkLjwvcD4KCTxwcmU+PGNvZGU+WwogICAgewogICAgICAgICJsYWJlbCI6ICJwYXJlbnQgPiBjaGlsZDEiLAoJInZhbHVlIjogMTIKICAgIH0sCiAgICB7CiAgICAgICAgInZhbHVlIiAgInBhcmVudCA+IGNoaWxkMiIsCgkidmFsdWUiOiAxNAogICAgfQpdPC9jb2RlPjwvcHJlPgogICAgPC9saT4KICAgIDxsaT5hamF4X2NoZWNrX3VybAogICAgICAgIDxwPlRoaXMgbWV0aG9kIGlzIGludGVuZGVkIHRvIGdlbmVyYXRlIG9yIHZhbGlkYXRlIGEgdXJsIHNsdWcgZm9yIGEgY29tcGFueS48L3A+Cgk8cD5GYWN0b3J5IGRlZmF1bHQgdGVtcGxhdGU6IG4vYTwvcD4KCTxwPlJlcXVlc3QgbWV0aG9kOiA8Y29kZT5QT1NUOjwvY29kZT48L3A+Cgk8cD5QYXJhbWV0ZXJzOjwvcD4KCTx1bD4KCSAgICA8bGk+bmFtZSAoc3RyaW5nKSAtIEEgY29tcGFueSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgVVJMIGZvci48L2xpPgoJICAgIDxsaT51cmwgKHN0cmluZywgb3B0aW9uYWwpIC0gQW4gZXhpc3RpbmcgVVJMIHRvIHZhbGlkYXRlLjwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5hamF4X2NvbXBhbnlfYXV0b2NvbXBsZXRlCiAgICAgICAgPHA+VGhpcyBtZXRob2QgaXMgaW50ZW5kZWQgdG8gd29yayB3aXRoIHRoZSBhdXRvY29tcGxldGUgcGx1Z2luIGZyb20gSlF1ZXJ5LVVJLjwvcD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogbi9hPC9wPgoJPHA+UmVxdWVzdCBtZXRob2Q6IDxjb2RlPkdFVC9QT1NUPC9jb2RlPjwvcD4KCTxwPlBhcmFtZXRlcnM6PC9wPgoJPHVsPgoJICAgIDxsaT50ZXJtIChzdHJpbmcpIC0gVGhlIHRlcm0gdG8gc2VhcmNoIGZvci48L2xpPgoJICAgIDxsaT5tb2RlIChzdHJpbmcpIC0gVGhlIHNlYXJjaCBtb2RlLgoJICAgICAgICA8cD5Qb3NzaWJsZSB2YWx1ZXMgYXJlOiAgbGlrZSwgc3RhcnRzd2l0aCwgZW5kc3dpdGg8L3A+CgkgICAgPC9saT4KCTwvdWw+Cgk8cD5PdXRwdXQgRm9ybWF0OiA8Y29kZT5KU09OPC9jb2RlPjwvcD4KCTxwPkFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBsYWJlbCBhbmQgdmFsdWUgbWVtYmVycyBkZXNjcmliaW5nIHRoZSBtYXRjaGVkIGl0ZW1zLiAgVGhlIGxhYmVsIGlzIHRoZSBjb21wYW55IG5hbWUgdG8gYSBtYXRjaGVkIGNhdGVnb3J5LCBhbmQgdGhlIHZhbHVlIGlzIGl0cyB1bmlxdWUgaW50ZWdlciBpZC48L3A+Cgk8cHJlPjxjb2RlPlsKICAgIHsKICAgICAgICAibGFiZWwiOiAiY29tcGFueTEiLAoJInZhbHVlIjogMjEKICAgIH0sCiAgICB7CiAgICAgICAgInZhbHVlIiAgImNvbXBhbnkyIiwKCSJ2YWx1ZSI6IDI0CiAgICB9Cl08L2NvZGU+PC9wcmU+CiAgICA8L2xpPgogICAgPGxpPmFqYXhfZ2VvbG9jYXRlCiAgICAgICAgPHA+SWYgZ2VvY29kaW5nL2dlb2xvY2F0aW9uIHNlcnZpY2VzIGFyZSBhdmFpbGFibGUsIGFuZCBhIGNvbXBhdGlibGUgbW9kdWxlIGlzIHJlZ2lzdGVyZWQgdGhlbiB0aGlzIGFjdGlvbiBwcm92aWRlcyBnZW9jb2RpbmcgZnVuY3Rpb25hbGl0eSBmb3IgYWRkcmVzc2VzLjwvcD4KCTxwPkZhY3RvcnkgZGVmYXVsdCB0ZW1wbGF0ZTogbi9hPC9wPgoJPHA+UmVxdWVzdCBtZXRob2Q6IDxjb2RlPlBPU1Q8L2NvZGU+PC9wPgoJPHA+UGFyYW1ldGVyczo8L3A+Cgk8dWw+CgkgICAgPGxpPmFkZHJlc3MgKHN0cmluZykgLSBBIGZ1bGx5IHF1YWxpZmllZCBhZGRyZXNzLjwvbGk+Cgk8L3VsPgoJPHA+T3V0cHV0IEZvcm1hdDogPGNvZGU+SlNPTjwvY29kZT48L3A+Cgk8cD5JZiBzdWNjZXNzZnVsLCBhIHZhbGlkIEdlb0NvZGluZ1Jlc3VsdCBvYmplY3QuIDxlbT4odmFsdWVzIGxpc3RlZCBiZWxvdyBhcmUgbm90IHRydWUpPC9lbT48L3A+Cgk8cHJlPjxjb2RlPnsKICAgICJpbnB1dF9hZGRyZXNzIjogIkxvbmRvbiwgVUsiLAogICAgImxhdGl0dWRlIjogMjMuMjMxMjM0LAogICAgImxvbmdpdHVkZSI6IC0xMjEuMjQyMzk3LAogICAgImNvbmZpZGVuY2UiOiAiMC4xMjM0Igp9PC9jb2RlPjwvcHJlPgogICAgPC9saT4KPC91bD4KPHA+TGFzdGx5LCB0aGVyZSBhcmUgc2V2ZXJhbCBhY3Rpb25zIGF2YWlsYWJsZSB3aGVuIHN1cHBvcnRpbmcgdGhlIGFiaWxpdHkgZm9yIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzOjwvcD4KPHVsPgogICAgPGxpPmZyb250ZW5kbGlzdAogICAgICAgIDxwPldoZW4gZW5hYmxlZCwgdGhpcyBhY3Rpb24gd2lsbCBkaXNwbGF5IGEgcmVwb3J0IG9mIHRoZSBjb21wYW5pZXMgdGhhdCBhcmUgb3duZWQgYnkgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gKEZFVSkgdXNlci4gIEZvciBlYWNoIGNvbXBhbnkgb3duZWQgYnkgdGhlIGN1cnJlbnQgdXNlciB0aGVyZSB3aWxsIGJlIGxpbmtzIHRvIGRlbGV0ZSB0aGUgY29tcGFueSAoaWYgcGVybWl0dGVkKSwgZWRpdCB0aGUgY29tcGFueSwgYW5kIGlmIGFuIGFsYnVtIGZpZWxkIGV4aXN0cywgZWRpdCBhbiBhbGJ1bSBmb3IgdGhlIGNvbXBhbnkuPHA+Cgk8cD5BZGRpdGlvbmFsbHksIGRlcGVuZGluZyB1cG9uIGNvbmZpZ3VyYXRpb24sIHRoaXMgcmVwb3J0IHByb3ZpZGVzIGxpbmtzIHRvIGltcG9ydCBjb21wYW5pZXMgZnJvbSBDU1YsIGFuZCB0byBjcmVhdGUgbmV3IGNvbXBhbmllcy48L2xpPgoJPHA+VGhpcyBhY3Rpb24gYWNjZXB0cyBubyBwYXJhbWV0ZXJzLiAgSXQgd2lsbCB0aHJvdyBleGNlcHRpb25zIHVuZGVyIHZhcmlvdXMgY2lyY3Vtc3RhbmNlcywgcGFydGljdWxhcmx5IGlmIHRoZSBjb25maWd1cmF0aW9uIGRvZXMgbm90IGFsbG93IHRoZSB1c2VyIHRvIGRpc3BsYXkgdGhlIGZvcm0uPC9wPgogICAgPC9saT4KICAgIDxsaT5mZV9lZGl0CiAgICAgICAgPHA+d2hlbiBlbmFibGVkLCB0aGlzIGFjdGlvbiB3aWxsIGRpc3BsYXkgYSBmb3JtIHRoYXQgYWxsb3dzIGxvZ2dlZCBpbiBGRVUgdXNlcnMgdG8gYWRkIGEgbmV3IGNvbXBhbnksIG9yIGVkaXQgYSBjb21wYW55IHRoYXQgdGhleSBoYXZlIHByZXZpb3VzbHkgY3JlYXRlZC4gIFRoZSBhY2Nlc3MgdG8gdGhpcyBhY3Rpb24gaXMgbm9ybWFsbHkgcHJvdmlkZWQgYnkgdGhlIGZyb250ZW5kbGlzdCBhY3Rpb24uPC9wPgogICAgPC9saT4KICAgIDxsaT5mZV9lZGl0X2FsYnVtCiAgICAgICAgPHA+V2hlbiBlbmFibGVkLCBhbmQgd2hlbiBhbiBhbGJ1bSBmaWVsZCBleGlzdHMgKG9ubHkgb25lIGlzIHBlcm1pdHRlZCksIHRoaXMgYWN0aW9uIHdpbGwgZGlzcGxheSBhIGZvcm0gdGhhdCBhbGxvd3MgYSBsb2dnZWQgaW4gRkVVIHVzZXIgdG8gdXBsb2FkIGFuZCBtYW5hZ2UgaW1hZ2VzIGZvciBhIGNvbXBhbnkgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGluIGFuICdhbGJ1bScuICBUaGUgYWNjZXNzIHRvIHRoaXMgYWN0aW9uIGlzIG5vcm1hbGx5IHByb3ZpZGVkIGluIHRoZSBmcm9udGVuZCBsaXN0LCBvciB0aGUgZmVfZWRpdCBhY3Rpb25zLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+ZmVfZGVsZXRlCiAgICAgICAgPHA+V2hlbiBlbmFibGVkLCB0aGlzIGFjdGlvbiwgd2hlbiBhY3RpdmF0ZWQsIHdpbGwgZGVsZXRlIHRoZSBzcGVjaWZpZWQgY29tcGFueSB0aGF0IGlzIG93bmVkIGJ5IHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIEZFVSB1c2VyLiAgVGhlIGFjY2VzcyB0byB0aGlzIGFjdGlvbiBpcyBub3JtYWxseSBwcm92aWRlZCBvbiB0aGUgZnJvbnRlbmQgbGlzdCByZXBvcnQuPC9wPgogICAgPC9saT4KICAgIDxsaT5mZV9pbXBvcnQKICAgICAgICA8cD53aGVuIGVuYWJsZWQsIHRoaXMgYWN0aW9uIHByb3ZpZGVzIGEgZm9ybSB0byBhbGxvdyBsb2dnZWQgaW4gRkVVIHVzZXJzIHRvIGltcG9ydCBjb21wYW55IHJlY29yZHMgZnJvbSBhIGZpeGVkIENTViBmb3JtYXQuPC9wPgogICAgPC9saT4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+CgoKPGgzIGlkPSJwYXJhbWV0ZXJzIj5QYXJhbXRlcnM8L2gzPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEl0IGlzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0IGluIG1vc3QgY2lyY3Vtc3RhbmNlcyB0aGUgcGFyYW1ldGVycyB0byB0aGUgbW9kdWxlIGFjdGlvbiBzaG91bGQgbm90IGJlIHNwZWNpZmllZCBhcyBhcmd1bWVudHMgdG8gdGhlIHRhZyBpdHNlbGYuICBJdCBpcyBiZXR0ZXIgdG8gdXNlIDxwPntjbXNfbW9kdWxlX2hpbnR9PC9wPiBUbyBzZXQgdGhlIHBhcmFtZXRlcnMgdG8gdGhlIG1vZHVsZSBjYWxsIGJlZm9yZSBpdCBpcyBjYWxsZWQuIGkuZTogaW4gdGhlIGZpZWxkIHRoYXQgY29udGFpbnMgc21hcnR5IGxvZ2ljIHNwZWNpZmljIHRvIHRoZSBjb250ZW50IHBhZ2UuPC9wPgo8dWw+CiAgICA8bGk+YWJjbGlzdHRlbXBsYXRlCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gYWJjbGlzdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIGFiY2xpc3Qgdmlldy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIG9yaWdfYWJjbGlzdF90ZW1wbGF0ZS50cGw8L3A+CiAgICA8L2xpPgogICAgPGxpPmNhdGVnb3J5CiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gY2F0ZWdvcnlsaXN0PC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhlIG5hbWUgb3IgaWQgb2YgYSBjYXRlZ29yeSB0byBiZWdpbiBkaXNwbGF5aW5nIGEgbmF2aWdhdGlvbiBmcm9tLiAgSWYgYSBzdHJpbmcgaXMgcHJvdmlkZWQsIHRoZSBmaXJzdCBjYXRlZ29yeSB3aXRoIGEgbWF0Y2hpbmcgbmFtZSB3aWxsIGJlIHVzZWQuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIGludHxzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gbi9hPC9wPgogICAgPC9saT4KICAgIDxsaT5jYXRlZ29yeWlkCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gZGVmYXVsdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBpZCBvZiBhIGNhdGVnb3J5IHRvIHVzZSBpbiBhIGNkbGFuZyBzdGF0ZW1lbnQgdG8gZmlsdGVyIHRoZSBvdXRwdXQgdG8gY29tcGFuaWVzIHRoYXQgYmVsb25nIHdpdGggdGhhdCBjYXRlZ29yeS4gIFRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgYnkgdGhlICJjYXRlZ29yeWxpc3QiIGFjdGlvbi48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gbi9hPC9wPgoJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAtIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvIG5vdCBjYWxsIGEgc3VtbWFyeSB2aWV3IHVzaW5nIHRoaXMgYXJndW1lbnQsIGluc3RlYWQgYnVpbGQgYSBjZGxhbmcgc2NyaXB0IHVzaW5nIHRoZSAicXVlcnkiIGZvcm1hdCBkZXNjcmliZWQgYmVsb3cuPC9wPgogICAgPC9saT4KICAgIDxsaT5jb21wYW55aWQKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBkZXRhaWxzPC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhlIGlkIG9mIGEgY29tcGFueSB0byBkaXNwbGF5IGluIGEgZGV0YWlsIHZpZXcuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIGludC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIG4vYTwvcD4KICAgIDwvbGk+CiAgICA8bGk+Y2F0ZWdvcnlsaXN0dGVtcGxhdGUKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBjYXRlZ29yeWxpc3Q8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgbmFtZS9zbWFydHkgcmVzb3VyY2UgdG8gZm9ybWF0IHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIG9yaWdfY2F0ZWdvcnlsaXN0X3RlbXBsYXRlLnRwbDwvcD4KICAgIDwvbGk+CiAgICA8bGk+ZGV0YWlsdGVtcGxhdGUKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBkZXRhaWxzPC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhlIG5hbWUvc21hcnR5IHJlc291cmNlIHRvIGZvcm1hdCB0aGUgZGV0YWlsIHZpZXcuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIHN0cmluZzwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gLSBvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGw8L3A+CiAgICA8L2xpPgogICAgPGxpPmhpZXIKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBicm93c2VoaWVyPC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSW4gdGhlIGJyb3dzZWhpZXIgYWN0aW9uIHRoaXMgaXMgVGhlIG5hbWUgb3IgaWQgb2YgYSBoaWVyYXJjaHkgdG8gYmVnaW4gZGlzcGxheWluZyBhIG5hdmlnYXRpb24gZnJvbS4gIElmIGEgc3RyaW5nIGlzIHByb3ZpZGVkLCB0aGUgZmlyc3QgaGllcmFyY2h5IHdpdGggYSBtYXRjaGluZyBuYW1lIHdpbGwgYmUgdXNlZC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50fHN0cmluZzwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gLSBuL2E8L3A+CiAgICA8L2xpPgogICAgPGxpPmhpZXJpZAogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIHN1bW1hcnk8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBJbiB0aGUgc3VtbWFyeSB2aWV3IHRoaXMgaXMgdGhlIGludGVnZXIgaWQgb2YgYSBoaWVyYXJjaHkgdG8gdXNlIGluIGEgY2RsYW5nIHN0YXRlbWVudCB0byBmaWx0ZXIgdGhlIG91dHB1dCB0byBjb21wYW5pZXMgdGhhdCBiZWxvbmcgdG8gdGhhdCBoaWVyYXJjaHkuICBUaGlzIHBhcmFtZXRlciBpcyBvdXRwdXQgYnkgdGhlIGJyb3dzZWhpZXIgYWN0aW9uLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBpbnQ8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gbi9hPC9wPgoJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAtIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGRvIG5vdCBjYWxsIGEgc3VtbWFyeSB2aWV3IHVzaW5nIHRoaXMgYXJndW1lbnQsIGluc3RlYWQgYnVpbGQgYSBjZGxhbmcgc2NyaXB0IHVzaW5nIHRoZSAicXVlcnkiIGZvcm1hdCBkZXNjcmliZWQgYmVsb3cuPC9wPgogICAgPC9saT4KICAgIDxsaT5oaWVybGlzdHRlbXBsYXRlCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gYnJvd3NlaGllcjwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIGhpZXJhcmNoeSB2aWV3LjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gb3JpZ19oaWVybGlzdF90ZW1wbGF0ZS50cGw8L3A+CiAgICA8L2xpPgogICAgPGxpPnJlc3QKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBzdW1tYXJ5PC9wPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBhY3Rpb24gc2hvdWxkIGFzc3VtZSB0aGF0IHRoaXMgaXMgYSBSRVNUIHJlcXVlc3QsIGFuZCBvdXRwdXQgYW55IG1hdGNoaW5nIHJlc3VsdHMgYXMgSlNPTiB3aXRoIGFuIGFwcGxpY2F0aW9uL2pzb24gY29udGVudCB0eXBlLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBib29sZWFuPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIGZhbHNlPC9wPgogICAgPC9saT4KICAgIDxsaT5saW1pdAogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIHN1bW1hcnksIGFiY2xpc3QsIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gbGltaXQgdGhlIG51bWJlciBvZiBtYXRjaGluZyByZWNvcmRzIHRoYXQgYXJlIG91dHB1dC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50PC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIDEwMDA8L3A+Cgk8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IGl0IGlzIG9mdGVuIGFkdmlzYWJsZSB0byB1c2UgY2RsYW5nIHN0YXRlbWVudHMgdG8gbGltaXQgdGhlIG91dHB1dCBpbnN0ZWFkIG9mIHRoaXMgcGFyYW1ldGVyLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+bmFtZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFiY2xpc3Q8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSBjaGFyYWN0ZXIgdG8gdXNlIHdoZW4gZmlsdGVyaW5nIGJ5IGNvbXBhbnkgbmFtZS4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmcgKG9uZSBjaGFyYWN0ZXI8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gQTwvcD4KICAgIDwvbGk+CiAgICA8bGk+cGFnZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFiY2xpc3QsIHN1bW1hcnksIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEluIGNvbmp1bmN0aW9uIHdpdGggYSBxdWVyeSBsaW1pdCB0aGlzIGlzIHVzZWQgdG8gZnVydGhlciBmaWx0ZXIgdGhlIG91dHB1dCBvZiBhIGNkbGFuZyBzY3JpcHQgYnkgYSBzdGFydGluZyBpbmRleC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gaW50PC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIDE8L3A+CiAgICA8L2xpPgogICAgPGxpPnF1ZXJ5CiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gc3VtbWFyeTwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEFuIGFycmF5IG9mIGNkbGFuZyBzdGF0ZW1lbnRzIHRvIGJ1aWxkIGEgc3VtbWFyeSB2aWV3IGZyb20uPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIHN0cmluZ1tdIC0gYW4gYXJyYXkgb2Ygc3RyaW5nczwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gIFsgJ2FuZDpzdGF0dXM6cHVibGlzaGVkJywgJ3NvcnRieTpjb21wYW55X25hbWUnLCAnc29ydG9yZGVyOkFTQycsICdsaW1pdDoxMDAwJyBdPC9wPgoJPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBVc2UgZWl0aGVyIHRoaXMgYXJndW1lbnQsIG9yIHRoZSBxdWVyeV8xLCBxdWVyeV8yLCBxdWVyeV8zLi4uIGZvcm1hdCwgYnV0IG5vdCBib3RoLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+cXVlcnlfMSwgcXVlcnlfMiwgcXVlcnlfMywgLi4uCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gc3VtbWFyeTwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEEgc2VyaWVzIG9mIHN0cmluZyBhcmd1bWVudHMgdGhhdCBjYW4gYmUgdXNlZCB0byBidWlsZCBhIGNkbGFuZyBzY3JpcHQuPC9wPgoJPHA+PHN0cm9uZz5UeXBlOjwvc3Ryb25nPiAtIHN0cmluZzwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gIG4vYTwvcD4KCTxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVXNlIGVpdGhlciB0aGlzIGFyZ3VtZW50IGZvcm1hdCBvciB0aGUgcXVlcnkgcGFyYW1ldGVyLCBidXQgbm90IGJvdGguPC9wPgogICAgPC9saT4KICAgIDxsaT5zZWFyY2hfbmFtZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lIHRvIHVzZSB0byB0ZW1wb3JhcmlseSBzYXZlIHRoZSBhcmd1bWVudHMgb2YgYSBzZWFyY2gsIHNvIHRoYXQgbXVsdGlwbGUgc2VhcmNoIGZvcm1zIGNhbiBleGlzdC48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAgbi9hPC9wPgogICAgPC9saT4KICAgIDxsaT5zZWFyY2hfcXVlcnkKICAgICAgICA8cD48c3Ryb25nPlJlbGF0ZWQgQWN0aW9uczo8L3N0cm9uZz4gLSBhZHZzZWFyY2g8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgbmFtZSBvZiBhIHNtYXJ0eSB0ZW1wbGF0ZSB0aGF0IGlzIHVzZWQgdG8gYnVpbGQgYSBjZGxhbmcgcXVlcnkgZm9yIGFkdmFuY2VkIHNlYXJjaGluZy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAgb3JpZ19zZWFyY2gtcXVlcnkudHBsPC9wPgogICAgPC9saT4KICAgIDxsaT5zZWFyY2h0ZW1wbGF0ZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFkdnNlYXJjaDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIGFkdmFuY2VkIHNlYXJjaCBmb3JtLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gb3JpZ19hZHZzZWFyY2hfdGVtcGxhdGUudHBsPC9wPgogICAgPC9saT4KICAgIDxsaT5zdW1tYXJ5cGFnZQogICAgICAgIDxwPjxzdHJvbmc+UmVsYXRlZCBBY3Rpb25zOjwvc3Ryb25nPiAtIGFiY2xpc3QsIGJyb3dzZWhpZXIsIGNhdGVnb3J5bGlzdCwgZGVmYXVsdCwgZGV0YWlsczwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBwYWdlIGFsaWFzIG9yIGlkIG9mIGEgcGFnZSB0byB1c2UgZm9yIGEgc3VtbWFyeSB2aWV3LiAgVGhpcyB2YWx1ZSBpcyBwcm92aWRlZCB0byB0aGUgdmlldyB0ZW1wbGF0ZSBmb3IgdXNlIGluIGdlbmVyYXRpbmcgc3Vic2VxdWVudCBsaW5rcy48L3A+Cgk8cD48c3Ryb25nPlR5cGU6PC9zdHJvbmc+IC0gc3RyaW5nfGludDwvcD4KCTxwPjxzdHJvbmc+RGVmYXVsdCB2YWx1ZTo8L3N0cm9uZz4gLSBUaGUgY3VycmVudCBwYWdlIGlkLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+c3VtbWFyeXRlbXBsYXRlCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gZGVmYXVsdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoZSBuYW1lL3NtYXJ0eSByZXNvdXJjZSB0byBmb3JtYXQgdGhlIHN1bW1hcnkgdmlldzwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBzdHJpbmc8L3A+Cgk8cD48c3Ryb25nPkRlZmF1bHQgdmFsdWU6PC9zdHJvbmc+IC0gb3JpZ19zdW1tYXJ5X3RlbXBsYXRlLnRwbDwvcD4KICAgIDwvbGk+CiAgICA8bGk+d2l0aGNoaWxkcmVuCiAgICAgICAgPHA+PHN0cm9uZz5SZWxhdGVkIEFjdGlvbnM6PC9zdHJvbmc+IC0gZGVmYXVsdDwvcD4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIElmIHNwZWNpZmllZCwgYW5kIGEgaGllcmlkIG9yIGNhdGVnb3J5aWQgYXJndW1lbnQgaXMgYWxzbyBzcGVjaWZpZWQsIHRoZW4gdGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgY2hpbGRyZW4gb2YgdGhlIHNwZWNpZmllZCBoaWVyYXJjaHkgaWQgb3IgY2F0ZWdvcnkgaWQgc2hvdWxkIGFsc28gYmUgZGlzcGxheWVkLjwvcD4KCTxwPjxzdHJvbmc+VHlwZTo8L3N0cm9uZz4gLSBib29sPC9wPgoJPHA+PHN0cm9uZz5EZWZhdWx0IHZhbHVlOjwvc3Ryb25nPiAtIGZhbHNlPC9wPgogICAgPC9saT4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+CgoKPGgzIGlkPSJhYm91dF90ZW1wbGF0ZXMiPkFib3V0IHRlbXBsYXRlczwvaDM+CjxwPjxzdHJvbmc+UmVtaW5kZXI6PC9zdHJvbmc+IEl0IGlzIG5ldmVyIGEgZ29vZCBpZGVhIHRvIG1vZGlmeSB0aGUgdGVtcGxhdGVzIHdpdGhpbiB0aGUgbW9kdWxlJ3Mgc291cmNlIGRpcmVjdG9yeS4gIFRoZXkgc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgL2Fzc2V0cy9tb2R1bGVfY3VzdG9tL0NvbXBhbnlEaXJlY3RvcnkvdGVtcGxhdGVzIGRpcmVjdG9yeSwgaW50byBhIHRoZW1lIChDTVNNUyAyLjMrKSBvciBpbnRvIERlc2lnbk1hbmFnZXIgZm9yIGVkaXRpbmcuPC9wPgo8dWw+CiAgICA8bGk+VGhlIHN1bW1hcnkgdGVtcGxhdGUKICAgICAgICA8cD5BY3Rpb25zIHVzaW5nIHRoaXM6ICBkZWZhdWx0LCBhYmNsaXN0LCBhZHZzZWFyY2g8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsPC9wPgoJPHA+VmFyaWFibGVzOjwvcD4KCTx1bD4KCSAgICA8bGk+JGl0ZW1zIC0gQ29tcGFueVNldAoJICAgICAgICA8cD50aGlzIG9iamVjdCBjb250YWlucyB0aGUgY29tcGFueSBvYmplY3RzIHRoYXQgbWF0Y2ggdGhlIHF1ZXJ5IHNwZWNpZmllZC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JHN1bW1hcnlwYWdlIC0gaW50CgkgICAgICAgIDxwPldoZW4gY2FsbGVkIGRpcmVjdGx5LCB0aGlzIHZhcmlhYmxlIG9ubHkgY29udGFpbnMgdGhlIGN1cnJlbnQgcGFnZSBpZC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JGNhdGVnb3J5X2lkIC0gaW50fG51bGwKCSAgICAgICAgPHA+SWYgb25lIGNhbiBiZSBkZXRlY3RlZCBpbiB0aGUgY2RsYW5nIHF1ZXJ5LCB0aGlzIHdpbGwgYmUgdGhlIGlkIGZyb20gdGhlIGxhc3QgY2F0ZWdvcnkgZXhwcmVzc2lvbiBpbiB0aGUgY2RsYW5nIHNjcmlwdC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JGhpZXJfaWQgLSBpbnR8bnVsbAoJICAgICAgICA8cD5JZiBvbmUgY2FuIGJlIGRldGVjdGVkIGluIHRoZSBjZGxhbmcgcXVlcnksIHRoaXMgd2lsbCBiZSB0aGUgaWQgZnJvbSB0aGUgbGFzdCBoaWVyYXJjaHkgZXhwcmVzc2lvbiBpbiB0aGUgY2RsYW5nIHNjcmlwdC48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JGVuY29kZWQgLSBzdHJpbmcKCSAgICAgICAgPHA+dGhpcyBpcyBhbiBlbmNvZGVkIGFuZCBzaWduZWQgY29weSBvZiB0aGUgY2RsYW5nIHNjcmlwdC4gIEl0IGlzIHVzZWQgYnkgdGhlIHBhZ2luYXRpb24gZm9ybSBzbyB0aGF0IHRoZSBxdWVyeSBjYW4gYmUgcmVtZW1iZXJlZCBiZXR3ZWVuIHBhZ2luYXRpb24gcmVxdWVzdHMuPC9wPgoJICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5UaGUgZGV0YWlsIHRlbXBsYXRlCiAgICAgICAgPHA+QWN0aW9ucyB1c2luZyB0aGlzOiAgZGVmYXVsdCwgZGV0YWlscywgYWJjbGlzdDwvcD4KCTxwPkRlZmF1bHQgdGVtcGxhdGUgbmFtZTogIG9yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbDwvcD4KCTxwPlZhcmlhYmxlczo8L3A+Cgk8dWw+CgkgICAgPGxpPiRlbnRyeSAtIENvbXBhbnkKCSAgICAgICAgPHA+QSBzaW5nbGUgY29tcGFueSBvYmplY3QgdG8gZGlzcGxheS48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+JHN1bW1hcnlwYWdlIC0gaW50CgkgICAgICAgIDxwPlRoZSBmYWN0b3J5IGRldGFpbCB0ZW1wbGF0ZSB1c2VzIHRoaXMgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgbGlua3MgdG8gaGllcmFyY2h5IG9yIGNhdGVnb3J5IHN1bW1hcnkgdmlld3MuPC9wPgoJICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5UaGUgYWJjbGlzdCB0ZW1wbGF0ZQogICAgICAgIDxwPkFjdGlvbnMgdXNpbmcgdGhpczogIGFiY2xpc3Q8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsPC9wPgoJPHA+VmFyaWFibGVzOjwvcD4KCTx1bD4KCSAgICA8bGk+YWJjbGlzdCAtIGFzc29jaWF0aXZlIGFycmF5CgkgICAgICAgIDxwPkFuIGFycmF5IG9mIGxldHRlcnMvbnVtYmVycyB0byBjb3VudHMgdG8gZGlzcGxheSB0aGUgbnVtYmVyIG9mIGNvbXBhbmllcyBhdmFpbGFibGUgaW4gZWFjaCBzZWN0aW9uLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT5jdXJyZW50IC0gc3RyaW5nCgkgICAgICAgIDxwPlRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGxldHRlci9udW1iZXIuICBGb3IgdXNlIGluIGJ1aWxkaW5nIHRoZSBuYXZpZ2F0aW9uLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT5pdGVtcyAtIENvbXBhbnlTZXQKCSAgICAgICAgPHA+QSBsaXN0IG9mIHRoZSBjb21wYW5pZXMgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEgc3BlY2lmaWVkLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT5zdW1tYXJ5cGFnZSAtIGludAoJICAgICAgICA8cD5BIHBhZ2VpZCB0byB1c2UgZm9yIHN1YnNlcXVlbnQgc3VtbWFyeSB2aWV3cy4gIFRoaXMgcGFyYW1ldGVyIG1heSBiZSB1c2VkIGluIGxpbmtzLjwvcD4KCSAgICA8L2xpPgoJPC91bD4KICAgIDwvbGk+CiAgICA8bGk+VGhlIGNhdGVnb3J5bGlzdCB0ZW1wbGF0ZQogICAgICAgIDxwPkFjdGlvbnMgdXNpbmcgdGhpczogIGFiY2xpc3Q8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX2FiY2xpc3RfdGVtcGxhdGUudHBsPC9wPgoJPHA+VmFyaWFibGVzOjwvcD4KCTx1bD4KCSAgICA8bGk+JGNhdGVnb3J5bGlzdCAtIENhdGVnb3J5VHJlZU5vZGVbXQoJICAgICAgICA8cD5BIHRyZWUgc3RydWN0dXJlIG9mIGNhdGVnb3JpZXMgdG8gZGlzcGxheS48L3A+CgkgICAgPC9saT4KCSAgICA8bGk+c3VtbWFyeXBhZ2UgLSBpbnQKCSAgICAgICAgPHA+QSBwYWdlaWQgdG8gdXNlIGZvciBzdWJzZXF1ZW50IHN1bW1hcnkgdmlld3MuICBUaGlzIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIHVybHMgdG8gdXNlIGluIGxpbmtzPC9wPgoJICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+VGhlIGhpZXJhY2h5bGlzdCB0ZW1wbGF0ZQogICAgICAgIDxwPkFjdGlvbnMgdXNpbmcgdGhpczogIGJyb3dzZWhpZXI8L3A+Cgk8cD5EZWZhdWx0IHRlbXBsYXRlIG5hbWU6ICBvcmlnX2hpZXJsaXN0X3RlbXBsYXRlLnRwbDwvcD4KCTxwPlZhcmlhYmxlczo8L3A+Cgk8dWw+CgkgICAgPGxpPiRoaWVyZGF0YSAtIEhpZXJhcmNoeVRyZWVOb2RlW10KCSAgICAgICAgPHA+QSB0cmVlIHN0cnVjdHVyZSBvZiBjYXRlZ29yaWVzIHRvIGRpc3BsYXkuPC9wPgoJICAgIDwvbGk+CgkgICAgPGxpPnN1bW1hcnlwYWdlIC0gaW50CgkgICAgICAgIDxwPkEgcGFnZWlkIHRvIHVzZSBmb3Igc3Vic2VxdWVudCBzdW1tYXJ5IHZpZXdzLiAgVGhpcyBwYXJhbWV0ZXIgbWF5IGJlIHVzZWQgd2hlbiBjcmVhdGluZyB1cmxzIHRvIHVzZSBpbiBsaW5rczwvcD4KCSAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0iYWJvdXRfZW1haWxzIj5BYm91dCBlbWFpbHM8L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBjYXBhYmxlIG9mIG5vdGlmeWluZyBtZW1iZXJzIG9mIGFuIGFkbWluIGdyb3VwIHZpYSBlbWFpbCB3aGVuIGEgY29tcGFueSByZWNvcmQgaXMgYWRkZWQgb3IgZWRpdGVkIHZpYSB0aGUgZnJvbnRlbmQgaW50ZXJmYWNlLiAgVGhlcmUgaXMgYSBzaW5nbGUgdGVtcGxhdGUgZm9yIHRoaXMgbmFtZWQ6IDxjb2RlPmZyb250ZW5kX2VkaXQuZW1sPC9jb2RlPi48L3A+CjxwPlRoZSBmYWN0b3J5IGRlZmF1bHQgbG9jYXRpb24gZm9yIHRoaXMgdGVtcGxhdGVzIGlzIGluIDxjb2RlPm1vZHVsZXMvQ29tcGFueURpcmVjdG9yeS9lbWFpbHMvZnJvbnRlbmRfZWRpdC5lbWw8L2NvZGU+LiAgSG93ZXZlciB5b3Ugc2hvdWxkIG5ldmVyIG1vZGlmeSB0aGlzIGZpbGUgZGlyZWN0bHkgYXMgaXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB1cGdyYWRlLiAgSW5zdGVhZCB5b3Ugc2hvdWxkIGNvcHkgdGhlIGZpbGUgdG8gPGNvZGU+L2Fzc2V0cy9tb2R1bGVfY3VzdG9tL0NvbXBhbnlEaXJlY3RvcnkvZW1haWxzL2Zyb250ZW5kX2VkaXQuZW1sPC9jb2RlPiBhbmQgbWFrZSB5b3VyIG1vZGlmaWNhdGlvbnMgdGhlcmUuPC9wPgo8cD5TZWUgdGhlIGhlbHAgYWJvdXQgZW1haWxzIGluIHRoZSBDR0V4dGVuc2lvbnMgbW9kdWxlIGZvciBvcHRpb25zIGFuZCB0aGUgZm9ybWF0IG9mIHRoaXMgZmlsZS4gIFBsZWFzZSBub3RlIHRoYXQgc2luY2UgdGhpcyBlbWFpbCBpcyBzZW50IGZyb20gYSBmcm9udGVuZCByZXF1ZXN0IHRvIGFkbWluaXN0cmF0b3JzLCBkZXRlcm1pbmluZyB0aGUgJ2N1cnJlbnQgbGFuZ3VhZ2UnIGlzIGRpZmZpY3VsdCwgc28gaXQgaXMgcHJvYmFibHkgYmVzdCB0byBoYXJkY29kZSBhbnkgc3RyaW5ncy48L3A+CjxwPkFsc28gc2VlIHRoZSBzZWN0aW9uIGJlbG93IGFib3V0IGNvbmZpZ3VyaW5nIHRoaXMgZW1haWwgZnVuY3Rpb25hbGl0eSwgYW5kIGVuc3VyZSB0aGF0IHRoZSBtZW1iZXJzIG9mIHRoZSBzZWxlY3RlZCBhZG1pbiBncm91cCBoYXZlIHRoZWlyIGVtYWlsIGFkZHJlc3MgZmllbGQgZmlsbGVkIGluIGluc2lkZSB0aGVpciB1c2VycHJvZmlsZS48L3A+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJvYmplY3RzIj5PYmplY3RzPC9oMz4KPHA+VGhpcyBzZWN0aW9uIGRlZmluZXMgdGhlIHZhcmlvdXMgb2JqZWN0cyB0aGF0IGFyZSB1c2VkIGluIHZhcmlvdXMgdGVtcGxhdGVzLiAgVW5sZXNzIG90aGVyd2lzZSBzdGF0ZWQgeW91IGNhbiBhc3N1bWUgdGhhdCB0aGUgZGF0YSBhdmFpbGFibGUgdG8gYSBzbWFydHkgdGVtcGxhdGUgaXMgcmVhZCBvbmx5IGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQuPC9wPgo8dWw+CiAgICA8bGk+Q29tcGFueSBvYmplY3QKICAgICAgICA8cD5BIGNvbXBhbnkgb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGNvbXBhbnkuICBJdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXR0YWNoZWQgaGllcmFyY2h5LCB0aGUgY2F0ZWdvcmllcyB0aGF0IHRoZSBjb21wYW55IGJlbG9uZ3MgdG8sICBhbmQgdmFsdWVzIGZvciBhbGwgZmllbGQgZGVmaW5pdGlvbnMuPC9wPgogICAgICAgIDxwPlB1YmxpYyBtZW1iZXJzPC9wPgoJPHVsPgoJICAgICA8bGk+PGNvZGU+aWQ8L2NvZGU+IC0gKGludCkgLSBUaGUgdW5pcXVlIGludGVnZXIgaWRlbnRpZmllciBmb3IgdGhpcyBjb21wYW55LjwvbGk+CgkgICAgIDxsaT48Y29kZT5jb21wYW55X25hbWU8L2NvZGU+IC0gKHN0cmluZykgLSBUaGUgY29tcGFueSBuYW1lLjwvbGk+CgkgICAgIDxsaT48Y29kZT5hZGRyZXNzPC9jb2RlPiAtIChzdHJpbmcpIC0gVGhlIGNvbXBhbnkgYWRkcmVzcy4gIFRoaXMgbWF5IGNvbnRhaW4gc3RyZWV0IGFkZHJlc3MgYXMgd2VsbCBhcyBjaXR5LCBzdGF0ZSwgcG9zdGFsIGFuZCBjb3VudHJ5IGNvZGVzLiAgSXQgbWF5IGJlIGZvcm1hdHRlZCB3aXRoIG5ld2xpbmUgc2VwYXJhdG9ycy48L2xpPgoJICAgICA8bGk+PGNvZGU+dGVsZXBob25lPC9jb2RlPiAtIChzdHJpbmcpIC0gQW4gb3B0aW9uYWwgdGVsZXBob25lIG51bWJlci48L2xpPgoJICAgICA8bGk+PGNvZGU+ZmF4PC9jb2RlPiAtIChzdHJpbmcpIC0gQW4gb3B0aW9uYWwgZmF4IG51bWJlci48L2xpPgoJICAgICA8bGk+PGNvZGU+Y29udGFjdF9lbWFpbDwvY29kZT4gLSAoc3RyaW5nKSAtIEFuIG9wdGlvbmFsIGVtYWlsIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wYW55PC9saT4KCSAgICAgPGxpPjxjb2RlPndlYnNpdGU8L2NvZGU+IC0gKHN0cmluZykgLSBBbiBvcHRpb25hbCB3ZWJzaXRlIFVSTC4gIE5vdGUgaW4gb2xkIHZlcnNpb25zIG9mIHRoaXMgc29mdHdhcmUgaXQgd2FzIG5vdCByZXF1aXJlZCBmb3IgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmllbGQgdG8gaGF2ZSBhIHNjaGVtYSBwcmVmaXguPC9saT4KCSAgICAgPGxpPjxjb2RlPmRldGFpbHM8L2NvZGU+IC0gKEhUTUwgc3RyaW5nKSAtIERldGFpbHMgb3IgZGVzY3JpcHRpb24gb2YgdGhlIGNvbXBhbnkuPC9saT4KCSAgICAgPGxpPjxjb2RlPnBpY3R1cmVfbG9jYXRpb248L2NvZGU+IC0gKHN0cmluZykgLSBUaGUgbmFtZSBvZiBhbiBvcHRpb25hbCBwaWN0dXJlIGZpbGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcGFueS4gIFBpY3R1cmVzIGFyZSBjb250YWluZWQgd2l0aGluIGEgdW5pcXVlIGRpcmVjdG9yeSBmb3IgZWFjaCBjb21wYW55LCBhbmQgdGhpcyBzdHJpbmcgd2lsbCBvbmx5IGNvbnRhaW4gdGhlIGZpbGUgbmFtZS48L2xpPgoJICAgICA8bGk+PGNvZGU+bG9nb19sb2NhdGlvbjwvY29kZT4gLSAoc3RyaW5nKSAtIFRoZSBuYW1lIG9mIGFuIG9wdGlvbmFsIGxvZ28gZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb21wYW55LiAgUGljdHVyZXMgYXJlIGNvbnRhaW5lZCB3aXRoaW4gYSB1bmlxdWUgZGlyZWN0b3J5IGZvciBlYWNoIGNvbXBhbnksIGFuZCB0aGlzIHN0cmluZyB3aWxsIG9ubHkgY29udGFpbiB0aGUgZmlsZSBuYW1lLjwvbGk+CgkgICAgIDxsaT48Y29kZT5sYXRpdHVkZTwvY29kZT4gLSAoZmxvYXQpIC0gQ29vcmRpbmF0ZXMgY29ycmVzcG9uZGluZyB0byB0aGUgY29tcGFueS48L2xpPgoJICAgICA8bGk+PGNvZGU+bG9uZ2l0dWRlPC9jb2RlPiAtIChmbG9hdCkgLSBDb29yZGluYXRlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb21wYW55LjwvbGk+CgkgICAgIDxsaT48Y29kZT5oaWVyX2lkPC9jb2RlPiAtIChpbnQpIC0gT3B0aW9uYWwsIHRoZSBpZCBvZiB0aGUgbG9jYXRpb24gd2l0aGluIHRoZSBoaWVyYXJjaHkgd2hlcmUgdGhpcyBjb21wYW55IHJlc2lkZXMuPC9saT4KCSAgICAgPGxpPjxjb2RlPnN0YXR1czwvY29kZT4gLSAoc3RyaW5nKSBUaGUgc3RhdHVzIG9mIHRoaXMgY29tcGFueSBlbnRyeSwgd2hpY2ggY29udHJvbHMgd2hldGhlciBvciBub3QgaXQgY2FuIGJlIGRpc3BsYXllZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgJ2RyYWZ0JywgJ3B1Ymxpc2hlZCcsIG9yICdkaXNhYmxlZCcuPC9saT4KCSAgICAgPGxpPjxjb2RlPnVybDwvY29kZT4gLSAoc3RyaW5nKSBBbiBvcHRpb25hbCAoZGVwZW5kaW5nIHVwb24gc2V0dGluZ3MpIHVybCBzbHVnIGZvciB0aGlzIGNvbXBhbnkuPC9saT4KCSAgICAgPGxpPjxjb2RlPm93bmVyX2lkPC9jb2RlPiAtIChpbnQpIEFueSBwb3NpdGl2ZSBpbnRlZ2VyIHJlcHJlc2VudHMgdGhlIEZFVSB1c2VyIGlkIG9mIHRoZSBvd25lciBvZiB0aGlzIHJlY29yZC48L2xpPgoJICAgICA8bGk+PGNvZGU+Y3JlYXRlX2RhdGU8L2NvZGU+IC0gKHN0cmluZykgVGhlIGRhdGUgKGluIGRhdGFiYXNlIHRpbWUgZm9ybWF0KSB0aGF0IHRoaXMgZW50cnkgd2FzIGluaXRpYWxseSBzYXZlZCB0byB0aGUgZGF0YWJhc2UuPC9saT4KCSAgICAgPGxpPjxjb2RlPm1vZGlmaWVkX2RhdGU8L2NvZGU+IC0gKHN0cmluZykgVGhlIGRhdGUgKGluIGRhdGFiYXNlIHRpbWUgZm9ybWF0KSB0aGF0IHRoaXMgZW50cnkgd2FzIGxhc3Qgc2F2ZWQgdG8gdGhlIGRhdGFiYXNlLjwvbGk+CgkgICAgIDxsaT48Y29kZT5jYXRlZ29yaWVzPC9jb2RlPiAtIChhcnJheXxudWxsKSBBbiBhcnJheSBvZiBjYXRlZ29yaWVzIHRoYXQgdGhpcyBjb21wYW55IGlzIGFzc29jaWF0ZWQgd2l0aC4gIFRoZXkga2V5cyBvZiB0aGlzIGFycmF5IGFyZSBjYXRlZ29yeSBpZCdzIGFuZCB0aGUgdmFsdWVzIGNvbnRhaW4gYW4gYXJyYXkgb2YgZXh0cmExLCBleHRyYTIsIGV4dHJhMyB3aGljaCBjb250YWluIGFueSBvcHRpb25hbCBkYXRhIHRoYXQgaXMgYXNzb2NhaXRlZCB3aXRoIHRoZSBjYXRlZ29yeSBhbmQgY29tcGFueS48L2xpPgoJICAgICA8bGk+PGNvZGU+ZmllbGRzPC9jb2RlPiAtIChhcnJheXxudWxsKSBBbiBhcnJheSBvZiBmaWVsZCB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29tcGFueS4gIFRoZSBrZXlzIG9mIHRoaXMgYXJyYXkgYXJlIGZpZWxkIGRlZmluaXRpb24gaWRzLCBhbmQgdGhlIHZhbHVlcyBhcmUgZWl0aGVyIHN0cmluZ3MsIG9yIGFycmF5cy4gICBJZiB0aGUgZmllbGQgKHJlcHJlc2VudGVkIGJ5IHRoZSBpZCBpcyBhIG11bHRpc2VsZWN0IGZpZWxkIG9yIGFsYnVtIGZpZWxkIG9yIG90aGVyICB0aGF0IGFsbG93cyBtdWx0aXBsZSB2YWx1ZXMsIHRoZW4gdGhlIHZhbHVlIG1heSBiZSBhbiBhcnJheSBvZiBzdHJpbmdzLgoJICAgICAgICAgIDxwPmkuZTogYXNzdW1pbmcgdGhhdCBmaWVsZGRlZiB3aXRoIGlkICczJyBpcyBhIG11bHRpc2VsZWN0IGZpZWxkLCBhbmQgdGhlcmUgYXJlIHZhbHVlcyBhdHRhY2hlZCB0byB0aGF0IGZpZWxkIGZvciB0aGUgY29tcGFueS4uLiB0aGVuIHRoZSB2YWx1ZSBmb3Iga2V5IDMgb2YgdGhlIGZpZWxkcyBhcnJheSB3b3VsZCBjb250YWluIGFuIGFycmF5IG9mIHN0cmluZ3MgcmVwcmVzZW50aW5nIHRoZSBzZWxlY3RlZCB2YWx1ZXMgZm9yIHRoYXQgZHJvcGRvd24uPC9wPgoJICAgICAgICAgIDxwPmkuZTogYXNzdW1pbmcgdGhhdCBmaWVsZGRlZiBpZCAnNScgaXMgYW4gYWxidW0gZmllbGQsIGFuZCB0aGVyZSBhcmUgcGhvdG9zIGF0dGFjaGVkIHRvIHRoZSBjb21wYW55J3MgYWRkcmVzcy4uLiB0aGVuIHRoZSB2YWx1ZSBmb3Iga2V5IDUgb2YgdGhlIGZpZWxkcyBhcnJheSB3b3VsZCBjb250YWluIGFuIGFycmF5IG9mIGZpbGVuYW1lcy48L3A+CgkgICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5Db21wYW55U2V0IG9iamVjdAogICAgCTxwPkEgQ29tcGFueVNldCBvYmplY3QgY29udGFpbnMgYSBzZXQgb2YgY29tcGFuaWVzIHRoYXQgbWF0Y2ggYSBxdWVyeS4gIERldmVsb3BlcnMgY2FuIGl0ZXJhdGUgdGhyb3VnaCB0aGUgY29tcGFuaWVzIGluIHRoZSBzZXQsIGFuZCBnZXQgaW5mb3JtYXRpb24gYXMgdG8gdGhlIGxpbWl0LCBvZmZzZXQgYW5kIHRvdGFsIG1hdGNoZXMgaW4gdGhlIGRhdGFiYXNlIGZvciB0aGUgcXVlcnksIGJ1dCBub3QgdGhlIHF1ZXJ5IGl0c2VsZi48L3A+CiAgICAgICAgPHA+UHVibGljIG1lbWJlcnM8L3A+Cgk8dWw+CgkgICAgPGxpPjxjb2RlPm9mZnNldDwvY29kZT4gLSAoaW50KSBUaGUgb2Zmc2V0IHByb3ZpZGVkIGluIHRoZSBzcWwgcXVlcnksIGlmIGFueS4gIG9yIDAuPC9saT4KCSAgICA8bGk+PGNvZGU+bGltaXQ8L2NvZGU+IC0gKGludCkgVGhlIGxpbWl0IG9mIGl0ZW1zIHRvIHJldHVybiBhcyBwcm92aWRlZCBpbiB0aGUgU1FMIHF1ZXJ5LiAgVGhpcyBpcyB1c2VkIGluIHBhZ2luYXRpb24uPC9saT4KCSAgICA8bGk+PGNvZGU+dG90YWw8L2NvZGU+IC0gKGludCkgVGhlIHRvdGFsIG51bWJlciBvZiBjb21wYW5pZXMgdGhhdCBtYXRjaCB0aGUgcXVlcnksIGluZGVwZW5kYW50IG9mIGxpbWl0LjwvbGk+KQoJICAgIDxsaT48Y29kZT5wYWdlY291bnQ8L2NvZGU+IC0gKGludCkgR2l2ZW4gdGhlIHRvdGFsLCBhbmQgdGhlIGxpbWl0IHRoaXMgaXMgdGhlIG51bWJlciBvZiBkaXNwbGF5YWJsZSBwYWdlcyBvZiBjb21wYW5pZXMgbWF0Y2hpbmcgdGhlIHF1ZXJ5LjwvbGk+CgkgICAgPGxpPjxjb2RlPnBhZ2U8L2NvZGU+IC0gKGludCkgR2l2ZW4gdGhlIG9mZnNldCBhbmQgdGhlIGxpbWl0LCB0aGlzIGlzIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIGluIHRoZSByZXN1bHQgc2V0LjwvbGk+Cgk8L3VsPgogICAgICAgIDxwPlB1YmxpYyBtZXRob2RzPC9wPgoJPHVsPgoJICAgIDxsaT48Y29kZT5wYWdlTGlzdChpbnQgJHN1cnJvdW5kID0gNSkgOiBhcnJheXxudWxsPC9jb2RlPgoJICAgICAgICA8cD5BIG1ldGhvZCB0aGF0IGNhbiBiZSB1c2VkIGluIHBhZ2luYXRpb24sIGdpdmVuIGEgbnVtYmVyIG9mIGl0ZW1zIHRvICdzdXJyb3VuZCcgdGhlIGN1cnJlbnQgcGFnZSB3aXRoIHRoaXMgZnVuY3Rpb24gb3V0cHV0cyBhbiBhcnJheSBvZiBwYWdlIG51bWJlcnMgdGhhdCBpcyBvcHRpbWl6ZWQgbm90IHRvIGJlIHRvbyBsb25nLjwvcD4KCSAgICA8L2xpPgoJICAgIDxsaT48Y29kZT5wYWdlQXJyYXkoaW50ICRzdXJyb3VuZCA9IDUpIDogYXJyYXl8bnVsbDwvY29kZT4KCSAgICAgICAgPHA+QSBtZXRob2QgdGhhdCBjYW4gYmUgdXNlZCBpbiBwYWdpbmF0aW9uLCBnaXZlbiBhIG51bWJlciBvZiBpdGVtcyB0byAnc3Vycm91bmQnIHRoZSBjdXJyZW50IHBhZ2Ugd2l0aCB0aGlzIGZ1bmN0aW9uIG91dHB1dHMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgb2YgcGFnZSBudW1iZXJzIHRoYXQgaXMgb3B0aW1pemVkIG5vdCB0byBiZSB0b28gbG9uZy4gIFRoaXMgbWV0aG9kIGlzIHVzdWFsbHkgdXNlZCBpbiAmbHQ7c2VsZWN0Jmd0OyBpbnB1dCBmaWVsZHMuPC9wPgoJICAgIDwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5DYXRlZ29yeSBvYmplY3QKICAgICAgICA8cD5BIENhdGVnb3J5IG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBub2RlIGluIHRoZSBjYXRlZ29yeSB0cmVlLiAgQ2F0ZWdvcmllcyBjYW4gaGF2ZSBhbiBhdHRhY2hlZCBpbWFnZSwgYSBkZXNjcmlwdGlvbiBhbmQgb3RoZXIgZGF0YS48L3A+CiAgICAgICAgPHA+UHVibGljIG1lbWJlcnM8L3A+Cgk8dWw+CgkgICAgPGxpPjxjb2RlPmlkPC9jb2RlPiAtIChpbnQpIC0gVGhlIHVuaXF1ZSBpZCBmb3IgYSBjYXRlZ29yeSBvbmNlIHNhdmVkIHRvIHRoZSBkYXRhYmFzZS48L2xpPgoJICAgIDxsaT48Y29kZT5uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gVGhlIG5hbWUgZm9yIHRoaXMgY2F0ZWdvcnkuPC9saT4KCSAgICA8bGk+PGNvZGU+aW1hZ2U8L2NvZGU+IC0gKHN0cmluZykgLSBJZiBub3QgZW1wdHksIHRoaXMgaXMgdGhlIGZpbGVuYW1lIG9mIGEgZmlsZSBhdHRhY2hlZCB0byB0aGlzIGNhdGVnb3J5LiAgT25seSBvbmUgaXMgcGVybWl0dGVkLjwvbGk+CgkgICAgPGxpPjxjb2RlPnN0cmluZzwvY29kZT4gLSAoSFRNTCBzdHJpbmcpIC0gQW4gb3B0aW9uYWwgZGVzY3JpcHRpb24gZm9yIHRoaXMgY2F0ZWdvcnkuPC9saT4KCSAgICA8bGk+PGNvZGU+ZXh0cmExPC9jb2RlPiAtIChzdHJpbmcpIC0gRXh0cmEgZGF0YSBhYm91dCB0aGlzIGNhdGVnb3J5LjwvbGk+CgkgICAgPGxpPjxjb2RlPmV4dHJhMjwvY29kZT4gLSAoc3RyaW5nKSAtIEV4dHJhIGRhdGEgYWJvdXQgdGhpcyBjYXRlZ29yeS48L2xpPgoJICAgIDxsaT48Y29kZT5leHRyYTM8L2NvZGU+IC0gKHN0cmluZykgLSBFeHRyYSBkYXRhIGFib3V0IHRoaXMgY2F0ZWdvcnkuPC9saT4KCSAgICA8bGk+PGNvZGU+cGFyZW50X2lkPC9jb2RlPiAtIChpbnQpIC0gVGhlIGludGVnZXIgaWQgb2YgdGhlIHBhcmVudCBvZiB0aGlzIGNhdGVnb3J5IG5vZGUuICBJZiBsZXNzIHRoYW4gMSBpdCBpbmRpY2F0ZXMgdGhhdCB0aGlzIGl0ZW0gaGFzIG5vIHBhcmVudC48L2xpPgoJICAgIDxsaT48Y29kZT5pdGVtX29yZGVyPC9jb2RlPiAtIChpbnQpIC0gVGhlIHNvcnRpbmcgb2YgdGhpcyBpdGVtIGFtb25nc3QgaXRzIHBlZXJzLjwvbGk+CgkgICAgPGxpPjxjb2RlPmhpZXJhcmNoeTwvY29kZT4gLSAoc3RyaW5nKSAtIHRoaXMgaXMgbWV0YWRhdGEgdGhhdCByZXByZXNlbnRzIHRoZSBwYXRoIHRvIHRoaXMgY2F0ZWdvcnkgaXRlbSBieSB1c2luZyBpdHMgaXRlbSBvcmRlciBhbmQgdGhlIGl0ZW0gb3JkZXIgb2YgYWxsIHBhcmVudHMuICBJdCBpcyB1c2VkIGluIHNvcnRpbmcuPC9saT4KCSAgICA8bGk+PGNvZGU+bG9uZ19uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gdGhpcyBpcyBtZXRhZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHBhdGggdG8gdGhpcyBjYXRlZ29yeSBpdGVtIGJ5IHVzaW5nIGl0cyBuYW1lLCBhbmQgdGhlIG5hbWVzIG9mIGFsbCBwYXJlbnRzLjwvbGk+Cgk8L3VsPgogICAgPC9saT4KICAgIDxsaT5GaWVsZERlZmluaXRpb24gb2JqZWN0CiAgICAgICAgPHA+QSBGaWVsZERlZmluaXRpb24gb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgc2luZ2xlIGZpZWxkIGRlZmluaXRpb24uPC9wPgogICAgICAgIDxwPlB1YmxpYyBtZW1iZXJzPC9wPgoJPHVsPgoJICAgIDxsaT48Y29kZT5pZDwvY29kZT4gLSAoaW50KSAtIFRoZSB1bmlxdWUgaW50ZWdlciBpZCBmb3IgdGhpcyBmaWVsZGRlZmluaXRpb24gb25jZSBpdCBpcyBzYXZlZC48L2xpPgoJICAgIDxsaT48Y29kZT5uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gQSB1bmlxdWUgVVJMIHNhZmUgbmFtZSBmb3IgdGhlIGZpZWxkIGRlZmluaXRpb24uPC9saT4KCSAgICA8bGk+PGNvZGU+dHlwZTwvY29kZT4gLSAoc3RyaW5nKSAtIFRoZSB0eXBlIG9mIHRoZSBmaWVsZCBkZWZpbml0aW9uLjwvbGk+CgkgICAgPGxpPjxjb2RlPm1heF9sZW5ndGg8L2NvZGU+IC0gKGludCkgLSBBbiBvcHRpb25hbCBtYXhpbXVtIGxlbmd0aCBmb3IgdGhlIGNvbnRlbnQgZmllbGQgb2YgdGhpcyBmaWVsZC4gIFNvbWUgZmllbGRzIG1heSBub3QgdXNlIHRoaXMuPC9saT4KCSAgICA8bGk+PGNvZGU+aXRlbV9vcmRlcjwvY29kZT4gLSAoaW50KSAtIFRoZSBzb3J0aW5nIG9mIHRoaXMgaXRlbSBhbW9uZ3N0IGl0cyBwZWVycy48L2xpPgoJICAgIDxsaT48Y29kZT5hZG1pbl9vbmx5PC9jb2RlPiAtIChib29sKSAtIEEgZmxhZyBpbmRpY2F0aW5nIHRoYXQgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGRlZmluaXRpb24gc2hvdWxkIG9ubHkgYmUgZWRpdGFibGUgYnkgYXV0aG9yaXplZCBhZG1pbmlzdHJhdG9ycy48L2xpPgoJICAgIDxsaT48Y29kZT5kcm9wZG93bl9kYXRhPC9jb2RlPiAtIChzdHJpbmcpIC0gRm9yIGZpZWxkcyB0aGF0IHByb3ZpZGUgdGhlIHVzZXIgd2l0aCBtdWx0aXBsZSBvcHRpb25zLCB0aGlzIGZpZWxkIGNvbnRhaW5zIGVuY29kZWQgdGV4dCByZXByZXNlbnRpbmcgdGhlIG9wdGlvbnMuPC9saT4KCTwvdWw+CiAgICA8L2xpPgogICAgPGxpPkhpZXJhcmNoeSBvYmplY3QKICAgICAgICA8cD5BIENhdGVnb3J5IG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBub2RlIGluIHRoZSBoaWVyYXJjaHkgdHJlZS48L3A+CiAgICAgICAgPHA+UHVibGljIG1lbWJlcnM8L3A+Cgk8dWw+CgkgICAgPGxpPjxjb2RlPmlkPC9jb2RlPiAtIChpbnQpIC0gVGhlIHVuaXF1ZSBpZCBmb3IgYSBoaWVyYXJjaHkgbm9kZSBvbmNlIHNhdmVkIHRvIHRoZSBkYXRhYmFzZS48L2xpPgoJICAgIDxsaT48Y29kZT5uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gVGhlIG5hbWUgZm9yIHRoaXMgaGllcmFyY2h5LjwvbGk+CgkgICAgPGxpPjxjb2RlPnBhcmVudF9pZDwvY29kZT4gLSAoaW50KSAtIFRoZSBpbnRlZ2VyIGlkIG9mIHRoZSBwYXJlbnQgb2YgdGhpcyBoaWVyYXJjaHkgbm9kZS4gIElmIGxlc3MgdGhhbiAxIGl0IGluZGljYXRlcyB0aGF0IHRoaXMgaXRlbSBoYXMgbm8gcGFyZW50LjwvbGk+CgkgICAgPGxpPjxjb2RlPml0ZW1fb3JkZXI8L2NvZGU+IC0gKGludCkgLSBUaGUgc29ydGluZyBvZiB0aGlzIGl0ZW0gYW1vbmdzdCBpdHMgcGVlcnMuPC9saT4KCSAgICA8bGk+PGNvZGU+aGllcmFyY2h5PC9jb2RlPiAtIChzdHJpbmcpIC0gdGhpcyBpcyBtZXRhZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHBhdGggdG8gdGhpcyBoaWVyYXJjaHkgaXRlbSBieSB1c2luZyBpdHMgaXRlbSBvcmRlciBhbmQgdGhlIGl0ZW0gb3JkZXIgb2YgYWxsIHBhcmVudHMuICBJdCBpcyB1c2VkIGluIHNvcnRpbmcuPC9saT4KCSAgICA8bGk+PGNvZGU+bG9uZ19uYW1lPC9jb2RlPiAtIChzdHJpbmcpIC0gdGhpcyBpcyBtZXRhZGF0YSB0aGF0IHJlcHJlc2VudHMgdGhlIHBhdGggdG8gdGhpcyBoaWVyYXJjaHkgaXRlbSBieSB1c2luZyBpdHMgbmFtZSwgYW5kIHRoZSBuYW1lcyBvZiBhbGwgcGFyZW50cy48L2xpCTwvdWw+CiAgICA8L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0ic21hcnR5X3BsdWdpbnMiPlNtYXJ0eSBQbHVnaW5zPC9oMz4KPHA+VGhpcyBtb2R1bGUgc2hhcmVzIG51bWVyb3VzIHNtYXJ0eSBwbHVnaW5zIHRvIG1ha2UgdGVtcGxhdGUgZGVzaWduIGFuZCBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBzaW1wbGVyOjwvcD4KPHVsPgogICAgPGxpPjxzdHJvbmc+e2NkX2hpZXJicmVhZGNydW1iIGhpZXI9aW50IFtvcHRpb25zXX08L3N0cm9uZz4gLSBDcmVhdGUgYSBzZXJpZXMgb2YgbGlua3MgcmVwcmVzZW50aW5nIHRoZSBicmVhZGNydW1iIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQuICBFYWNoIGxpbmsgd2lsbCBnZW5lcmF0ZSBhIHN1bW1hcnkgdmlldyBvZiBjb21wYW5pZXMgaW4gdGhhdCBoaWVyYXJjaHkuPGJyLz5PcHRpb25zOgogICAgICAgIDx1bD4KCSAgICA8bGk+aGllcj1pbnRlZ2VyIC0gPHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPiAtIFRoZSBDb21wYW55RGlyZWN0b3J5IGhpZXJhcmNoeSBpZCB0byBidWlsZCBhIGJyZWFkY3J1bWIgdG8uPC9saT4KICAgIAkgICAgPGxpPnBhZ2U9c3RyaW5nIC0gQSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSBmb3IgdGhlIHN1bW1hcnkgdmlldy4gIElmIG5vbmUgaXMgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBwYWdlIGlzIHVzZWQuPC9saT4KICAgIAkgICAgPGxpPmRlbGltPXN0cmluZyAtIFRoZSBkZWxpbWl0ZXIgYmV0d2VlbiBlYWNoIHN0cmluZy4gIEJ5IGRlZmF1bHQgYSBwaXBlIGNoYXJhY3RlciBzdXJyb3VuZGVkIGJ5IHNwYWNlcyBpcyB1c2VkLjwvbGk+CiAgICAJICAgIDxsaT5jbGFzcz1zdHJpbmcgLSBBbiBvcHRpb25hbCBjbGFzcyAob3Igc2VyaWVzIG9mIGNsYXNzZXMpIHRvIGFzc2lnbiB0byBlYWNoIGxpbmsuPC9saT4KICAgIAkgICAgPGxpPnJhdz1ib29sZWFuIC0gSWYgZW5hYmxlZCwgYW4gYXJyYXkgb2YgaGllcmFyY2h5IGRhdGEgcmVwcmVzZW50aW5nIHRoZSBwYXRoIHRvIHRoZSBoaWVyYXJjaHkgc3BlY2lmaWVkIHdpbGwgYmUgcmV0dXJuZWQuICBUaGlzIGNhbiBiZSB1c2VkIHRvIGFsbG93IGJ1aWxkaW5nIHlvdXIgb3duIGxpbmtzLiAgSWYgdGhpcyBpcyBzcGVjaWZpZWQsIHRoZSBkZWxpbSBhbmQgY2xhc3MgYXJndW1lbnRzIGFyZSBpZ25vcmVkIGFzIGxpbmtzIHdpbGwgbm90IGJlIHJldHVybmVkLjwvbGk+CiAgICAJICAgIDxsaT5hc3NpZ249c3RyaW5nIC0gVGhlIG5hbWUgb2YgYSBzbWFydHkgdmFyaWFibGUgdG8gYXNzaWduIHRoZSBvdXRwdXQgdG8uPC9saT4KICAgICAgICA8L3VsPgogICAgCTxwPkFkZGl0aW9uYWxseSwgdGhpcyB0YWcgYWNjZXB0cyBhbnkgcGFyYW1ldGVycyB0aGF0IHRoZSBkZWZhdWx0IHN1bW1hcnkgdmlldyB3aWxsIGFjY2VwdCAoaS5lOiBzb3J0aW5nIG9wdGlvbnMsIHBhZ2UgbGltaXQpIGFuZCB0aGV5IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSB1cmwgYnVpbGRpbmcgcHJvY2Vzcy48L3A+CiAgICAJPHA+RXhhbXBsZSA8ZW0+KHN1aXRhYmxlIGZvciBhIGRldGFpbCB0ZW1wbGF0ZSk8L2VtPjoge2NkX2hpZXJicmVhZGNydW1iIGhpZXI9JGVudHJ5LT5oaWVyX2lkIGhpZXJfY2hpbGRyZW49MSBwYWdlbGltaXQ9NTB9PC9jb2RlPjwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2dldGNvbXBhbnkgaWQ9aW50ZWdlciBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+IC0gUmV0dXJuIGFuIG9iamVjdCBmaWxsZWQgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBjb21wYW55PGJyLz5PcHRpb25zOgogICAgICAgPHVsPgogICAgICAgICAgIDxsaT48c3Ryb25nPmlkPWludGVnZXI8L3N0cm9uZz4gLSBUaGUgY29tcGFueSBpZCAocmVxdWlyZWQpLjwvbGk+CiAgCSAgIDxsaT5hc3NpZ249c3RyaW5nIC0gKG9wdGlvbmFsKSBBc3NpZ24gdGhlIGdlbmVyYXRlZCBYSFRNTCBvdXRwdXQgdG8gdGhlIG5hbWVkIHNtYXJ0eSB2YXJpYWJsZS48L2xpPgogICAgICAgPC91bD4KICAgICAgIDxwPkV4YW1wbGU6IHtjZF9nZXRjb21wYW55IGlkPSRjb21wYW55X2lkIGFzc2lnbj0ndG1wJ30mbHQ7cHJlJmd0O3skdG1wfEBwcmludF9yfSZsdDsvcHJlJmd0OzwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2dldGNhdGVnb3J5IGNhdGVnb3J5PWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIGluZm9ybWF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGNhdGVnb3J5IGlkLiAgVXNlZnVsIGluIHN1bW1hcnkgdmlld3MgZm9yIGEgc3BlY2lmaWMgY2F0ZWdvcnkuPC9wPgogICAgICAgPHA+VXNhZ2U6PC9wPgogICAgICAgPHByZT48Y29kZT57Y2RfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnk9JGNhdGVnb3J5aWQgYXNzaWduPSdjYXQnfSZsdDtoNCZndDtUaGUgY2F0ZWdvcnkgbmFtZSBpczogeyRjYXQtPm5hbWV9Jmx0Oy9oNCZndDt7L2lmfTwvY29kZT48L3ByZT4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2NhdGVnb3J5X2ltYWdlIGNhdGVnb3J5PWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICA8cD5UaGlzIHRhZyByZXRyaWV2ZXMgdGhlIFVSTCBpZiBhbnksIHRvIHRoZSBpbWFnZSBhc3NvY2lhdGVkIHdpdGggYSBjYXRlZ29yeS48L3A+CiAgICAgICA8cD5Vc2FnZTo8L3A+CiAgICAgICA8cHJlPjxjb2RlPiZsdDtpbWcgc3JjPSJ7Y2RfY2F0ZWdvcnlfaW1hZ2UgY2F0ZWdvcnk9JGNhdGVnb3J5aWR9IiBhbHQ9InskY2F0ZWdvcnktPmltYWdlfSIvJmd0OzwvY29kZT48L3ByZT4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2dldGhpZXJhcmNoeSBoaWVyPWludCBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICAgPHA+VGhpcyBwbHVnaW4gcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBoaWVyYXJjaHkgaWQuICBVc2VmdWwgaW4gc3VtbWFyeSBvciBkZXRhaWwgdmlld3MuPC9wPgoJPHA+VXNhZ2U6PC9wPgoJPHByZT48Y29kZT57Y2RfZ2V0aGllcmFyY2h5IGhpZXI9JGNvbXBhbnktPmhpZXJfaWQgYXNzaWduPSdoaWVyJ317JGhpZXItPm5hbWV8ZGVmYXVsdDonJ308L2NvZGU+PC9wcmU+CiAgICA8L2xpPgoKICAgIDxsaT48c3Ryb25nPntjZF9nZXRmaWVsZGRlZiBmaWVsZD1pbnR8ZmllbGRuYW1lPXN0cmluZyBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICAgPHA+VGhpcyBwbHVnaW4gcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBmaWVsZCBkZWZpbml0aW9uLiAgVXNlZnVsIGluIGZvcm1zLCBzdW1tYXJ5IG9yIGRldGFpbCB2aWV3cy48L3A+Cgk8cD5Vc2FnZTo8L3A+Cgk8cHJlPjxjb2RlPntjZF9nZXRmaWVsZGRlZiBmaWVsZD0kZmRpZCBhc3NpZ249J2ZpZWxkJ317JGZpZWxkLT5uYW1lfGRlZmF1bHQ6Jyd9PC9jb2RlPjwvcHJlPgogICAgPC9saT4KCiAgICA8bGk+PHN0cm9uZz57Y2RfZ2V0ZmlsZXVybCBjb21waWQ9aW50IFthc3NpZ249c3RyaW5nXX08L3N0cm9uZz4KICAgICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHJpZXZlIHRoZSBVUkwgcHJlZml4IGZvciBhbGwgZmlsZXMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBjb21wYW55LjwvcD4KCTxwPlVzYWdlOjwvcD4KCTxwcmU+PGNvZGU+e2NkX2dldGZpbGV1cmwgY29tcGlkPSRjb21wYW55LT5pZCBhc3NpZ249J3VybGJhc2UnfSZsdDtpbWcgc3JjPSJ7JHVybGJhc2V9L3skY29tcGFueS0+ZmllbGRzWzVdfSIgYWx0PSIiLyZndDs8L2NvZGU+PC9wcmU+CiAgICA8L2xpPgoKICAgIDxsaT48c3Ryb25nPntjZF9nZXRmaWxlcGF0aH08L3N0cm9uZz4KICAgICAgICA8cD5UaGlzIHBsdWdpbiB3aWxsIHJldHJpZXZlIHRoZSBwYXRoIHByZWZpeCBmb3IgYWxsIGZpbGVzIHRoYXQgYXJlIGF0dGFjaGVkIHRvIGEgY29tcGFueS48L3A+Cgk8cD5Vc2FnZTo8L3A+Cgk8cHJlPjxjb2RlPntjZF9nZXRmaWxlcGF0aCBjb21waWQ9JGNvbXBhbnktPmlkIGFzc2lnbj0nZmlsZWJhc2UnfQombHQ7YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgbW9kdWxlPUNHRXh0ZW5zaW9ucyBhY3Rpb249Z2V0ZmlsZSBmaWxlPSJ7JGZpbGViYXNlfS97JGNvbXBhbnktPmZpZWxkc1s0XX0ifSImZ3Q7RG93bmxvYWQmbHQ7L2EmZ3Q7PC9jb2RlPjwvcHJlPgogICAgPC9saT4KCiAgICA8bGk+PHN0cm9uZz57Y2RfZmllbGRfb3B0aW9ucyBmaWVsZD1pbnQgW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPgogICAgICAgIDxwPlRoaXMgcGx1Z2luIGlzIHVzZWZ1bCBmb3IgZmllbGQgZGVmaW5pdGlvbnMgd2l0aCBtdWx0aXBsZSBvcHRpb25zLCBzdWNoIGFzIGRyb3Bkb3duIGFuZCBtdWx0aXNlbGVjdCBmaWVsZHMuICBJdCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZSBvcHRpb25zIHRoYXQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiB0aGUgZHJvcGRvd24uPC9wPgoJPHA+VXNhZ2U6PC9wPgoJPHByZT48Y29kZT57Y2RfZmllbGRfb3B0aW9ucyBmaWVsZD0zIGFzc2lnbj1vcHRzfSZsdDtzZWxlY3QgbmFtZT0iZmllbGRfMyImZ3Q7e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzfSZsdDsvc2VsZWN0Jmd0OzwvY29kZT48L3ByZT4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2hpZXJfb3B0aW9ucyBbYXNzaWduPXN0cmluZ119PC9zdHJvbmc+CiAgICAgICAgPHA+VGhpcyBwbHVnaW4gcmV0dXJucyBhbiBhcnJheSBzdWl0YWJsZSBmb3IgdXNlIGluIGJ1aWxkaW5nIGEgaGllcmFyY2h5IGRyb3Bkb3duLjwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxzdHJvbmc+e2NkX2NhdGVnb3J5X29wdGlvbnMgW2Fzc2lnbj1zdHJpbmddfTwvc3Ryb25nPgogICAgICAgIDxwPlRoaXMgcGx1Z2luIHJldHVybiBhbiBhcnJheSBzdWl0YWJsZSBmb3IgdXNlIGluIGJ1aWxkaW5nIGEgY2F0ZWdvcnkgaW50ZXJmYWNlLjwvcD4KICAgIDwvbGk+CjwvdWw+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJhbGJ1bXMiPkFsYnVtczwvaDM+CiAgPHA+VGhlIGFsYnVtIGZpZWxkIHR5cGUgYWxsb3dzIGFzc29jaWF0aW5nIG11bHRpcGxlIGltYWdlcyB3aXRoIGEgc2luZ2xlIGNvbXBhbnkgZW50cnkuICBUaGV5IGFyZSByZXByZXNlbnRlZCBpbiB0aGUgc3VtbWFyeSBhbmQgZGV0YWlsIHRlbXBsYXRlcyBhcyBhIHNpbXBsZSBhcnJheSBvZiBmaWxlbmFtZXMuICBZb3UgbWF5IGJ1aWxkIHlvdXIgb3duIGRpc3BsYXkgbWVjaGFuaXNtIGZyb20gdGhpcy48L3A+CiAgPHA+VGhlIGFsYnVtIGZpZWxkIHR5cGUgZG9lcyBub3QgcHJvdmlkZSBhbnkgaW1hZ2UgcHJvY2Vzc2luZyBjYXBhYmlsaXRpZXMuICBJbWFnZSBwcm9jZXNzaW5nIHN1Y2ggYXMgd2F0ZXJtYXJraW5nIG9yIHRodW1ibmFpbGluZyBjYW4gYmUgZG9uZSBhdCB0aGUgdGllbSBvZiBkaXNwbGF5IHdpdGggYW4gYWRkb24gbW9kdWxlIGxpa2UgQ0dTbWFydEltYWdlLjwvcD4KPGg0PlNhbXBsZSBHYWxsZXJ5PC9oND4KICA8cD5UaGUgY29kZSBiZWxvdyBpbGx1c3RyYXRlcyBob3cgYSBzaW1wbGUgYWxidW0gY2FuIGJlIGNyZWF0ZWQgZnJvbSB3aXRoaW4gdGhlIENvbXBhbnlEaXJlY3Rvcnkgc3VtbWFyeSBvciBkZXRhaWwgdGVtcGxhdGUuICBUaGlzIGV4YW1wbGUgdXNlcyBDR1NtYXJ0SW1hZ2UgdG8gc2l6ZSB0aGUgdGh1bWJuYWlscywgYW5kIHRhcmdldCBpbWFnZXMsIGFuZCBnaXZlcyBlYWNoIGxpbmsgYSBjbGFzcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgamF2YXNjcmlwdCBwb3B1cCB3aW5kb3cuPC9wPgo8cHJlPjxjb2RlPgp7aWYgaXNzZXQoPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4kZW50cnktPmZpZWxkcy5BbGJ1bTwvc3Bhbj4pfQogIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57SlF1ZXJ5VG9vbHMgYWN0aW9uPXJlcXVpcmUgbGliPWZhbmN5Ym94fTwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IGJsdWU7Ij57KiBzZWUgdGhlIGhlbHAgZm9yIHRoZSBKUXVlcnlUb29scyBtb2R1bGUgZm9yIG1vcmUgaW5mb3JtYXRpb24gKn08L3NwYW4+CiAgJmx0O2gzJmd0O0dhbGxlcnkmbHQ7L2gzJmd0OwogICZsdDtkaXYgY2xhc3M9ImdhbGxlcnkiJmd0OwogIHtmb3JlYWNoIGZyb209PHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4kZW50cnktPmZpZWxkcy5BbGJ1bS0+dmFsdWU8L3NwYW4+IGl0ZW09J2ltZyd9CiZsdDthIGNsYXNzPSJmYW5jeWJveCIgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogMTEwcHg7IiBocmVmPSI8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+e0NHU21hcnRJbWFnZSBzcmMxPSRlbnRyeS0+ZmllbGRzLkFsYnVtLT5waWN0dXJlX3BhdGggc3JjMj0kaW1nIHdpZHRoPTUwMCBoZWlnaHQ9NTAwIG5vdGFnPTEgbm9lbWJlZD0xfTwvc3Bhbj4iLyZndDs8c3BhbiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+e0NHU21hcnRJbWFnZSBzcmMxPSRlbnRyeS0+ZmllbGRzLkFsYnVtLT5waWN0dXJlX3BhdGggc3JjMj0kaW1nIHdpZHRoPTEwMCBoZWlnaHQ9MTAwfTwvc3Bhbj4mbHQ7L2EmZ3Q7CiAgey9mb3JlYWNofQogICZsdDtkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyImZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgJmx0Oy9kaXYmZ3Q7CnsvaWZ9CjwvY29kZT48L3ByZT4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+Cgo8aDMgaWQ9InByZXR0eV91cmxzIj5QcmV0dHkgVVJMUzwvaDM+CjxwPldoZW4gQ01TTVMgaXMgY29uZmlndXJlZCBmb3IgcHJldHR5IFVSTFMsIGFuZCBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZyBlbnRyaWVzIGRlc2NyaWJlZCBhYm92ZSwgRWFjaCBjb21wYW55IGNhbiBoYXZlIGEgJ3VybCBzbHVnJyB3aGljaCBpcyB0aGUgdW5pcXVlIHVybCBzdWZmaXggKGZyb20gdGhlIHdlYnNpdGUgcm91dGUpIHRvIHRoZSBkZXRhaWwgdmlldyBmb3IgdGhhdCBjb21wYW55LiAgVGhpcyBkZWZpbmVzIHRoZSBjYW5vbmljYWwgVVJMIGZvciBlYWNoIHByb2R1Y3QuPC9wPgo8cD5TdW1tcnkgdmlld3MgYnkgY2F0ZWdvcnkgb3IgYnkgaGllcmFyY2h5IGNhbiBoYXZlIGFuIGF1dG9tYXRpYyBwc2V1ZG8tcHJldHR5IHVybCBzbHVnIGNvbnNpc3RpbmcgdGhhdCBjb250YWlucyBhIHByZWZpeCwgdGhlIGhpZXJhcmNoeSBuYW1lLCBpdCdzIGlkLCBhbmQgdGhlIGRpc3BsYXkgcGFnZSBpZC4gICBpLmU6ICBBIHN1bW1hcnkgdmlldyBmb3IgY2F0ZWdvcnkgNSBvbiBwYWdlIDIzIG1heSBsb29rIGxpa2U6ICAiY29tcGFuaWVzLzUvMjMvY2F0ZWdvcnktbmFtZSIuICBPbiB0aGF0IHBhZ2UgeW91IGNhbiBzdGlsbCBzcGVjaWZ5IG90aGVyIGZpbHRlcmluZyBhbmQgZGlzcGxheSBjcml0ZXJpYSBzdWNoIGFzIHBhZ2VsaW1pdCBhbmQgc29ydCBvcmRlci48L3A+CjxwPkl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgZGV2ZWxvcGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBjYW5vbmljYWwgbGluayBtZXRhIHRhZyBpcyBnZW5lcmF0ZWQgZm9yIGVhY2ggZGV0YWlsIG9yIGFwcHJvcHJpYXRlIHN1bW1hcnkgdmlldy4gIFRoZSBkZWZhdWx0IGRldGFpbCB0ZW1wbGF0ZSBoZWxwcyB3aXRoIHRoaXMgcHJvY2Vzcy48L3A+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJjZGxhbmciPlRoZSAiY2RMYW5nIiBRdWVyeSBsYW5ndWFnZS48L2gzPgo8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNvcnQgb2YgbGFuZ3VhZ2UgdG8gYWxsb3cgZmlsdGVyaW5nIHRoZSBkYXRhIGZyb20gdGhlIENvbXBhbnlEaXJlY3RvcnkgZGF0YWJhc2VzLiAgVGhpcyBpcyBhIGZsZXhpYmxlLCBleHRlbmRhYmxlIGxhbmd1YWdlIGNvbnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUgc3RhdGVtZW1lbnRzIHRoYXQgYXJlIGNvbWJpbmVkIGluIHRoZSBwcm9wZXIgb3JkZXIgdG8gY3JlYXRlIGEgcXVlcnkgb2YgdGhlIGRhdGFiYXNlLiAgQSBDRExhbmcgc2NyaXB0IGNvbnNpc3RzIG9mIG11bHRpcGxlIHN0YXRlbWVudHMgdGhhdCBjYW4gYmUgZXhwcmVzc2VkIGVpdGhlciBpbiBhbiBhcnJheSwgb3IgYXMgYSBzaW5nbGUgc3RyaW5nIHNlcGFyYXRlZCBieSBhICJ8IiBwaXBlIGNoYXJhY3Rlci48L3A+CjxwPkNETGFuZyBzdGF0ZW1lbnRzIGFyZSBvZiB0d28gdHlwZXM6PC9wPgo8dWw+CiAgICAgPGxpPjxzdHJvbmc+RXhwcmVzc2lvbnM8L3N0cm9uZz4gLSBhcmUgY29uZGl0aW9ucyB0byBhcHBseSB0byB0aGUgZGF0YWJhc2UuCiAgICAgICAgIDxwPkV4cHJlc3Npb25zIGNvbnNpc3Qgb2YgYW4gb3BlcmF0aW9uIGFuZCBhbiBleHByZXNzaW9uIG5hbWUgYW5kIGF0IGxlYXN0IG9uZSBvcHRpb24sIGV2ZXJ5IHNldHRpbmcgc2VwYXJhdGVkIGJ5IDogY2hhcmFjdGVycy48L3A+CgkgPHA+RXhhbXBsZTogPGNvZGU+YW5kOnN0YXR1czplcTpwdWJsaWM8L2NvZGU+IG9yIDxjb2RlPm9yOm93bmVyOmd0OjA8L2NvZGU+PC9wPgoJIDxwPjx1PlZhbGlkIG9wZXJhdGlvbnMgYXJlOjwvdT48L3A+CgkgPHVsPgoJICAgICA8bGk+YW5kIC0gc3BlY2lmeSBhIHJlcXVpcmVkIChhbmQpIGNvbmRpdGlvbi4gIEFsbCBvdXRwdXQgbXVzdCBtYXRjaCB0aGlzIGNyaXRlcmlhLjwvbGk+CgkgICAgIDxsaT5vciAtIHNwZWNpZnkgYW4gb3B0aW9uYWwgKG9yKSBjb25kaXRpb24uICBBbGwgb3V0cHV0IG11c3QgbWF0Y2ggYXQgbGVhc3Qgb25lIG9mIHRoZSBPUiBvcHRpb25zLgoJICAgICAgICAgPHA+Tm90ZTogdG8gcHJvcGVybHkgdXNlIG9yIG9wZXJhdGlvbnMsIGF0IGxlYXN0IHR3byBvciBleHByZXNzaW9ucyBhcmUgcmVxdWlyZWQuPC9wPgoJICAgICA8L2xpPgoJIDwvdWw+CgkgPHA+PHU+UHJpbWFyeSBleHByZXNzaW9uczo8L3U+PC9wPgoJIDxwPlByaW1hcnkgZXhwcmVzc2lvbnMgaGF2ZSB0aGUgZm9ybWF0IG9mIDxjb2RlPm9wZXJhdGlvbjpleHByZXNzaW9uX25hbWU6b3BlcmF0b3I6dmFsdWU8L2NvZGU+LiAgaS5lOiBpbiB0aGUgc3RhdGVtZW50IDxjb2RlPmFuZDpzdGF0dXM6ZXE6cHVibGlzaGVkPC9jb2RlPiB0aGUgb3BlcmF0aW9uIGlzICdhbmQnLCB0aGUgZXhwcmVzc2lvbiBuYW1lIGlzICdzdGF0dXMnLCB0aGUgb3BlcmF0b3IgaXMgJ2VxJywgYW5kIHRoZSB2YWx1ZSB0byBjb21wYXJlIGFnYWluc3QgaXMgJ3B1Ymxpc2hlZCcuICBWYWxpZCBleHByZXNpb24gbmFtZXMgYXJlOjwvcD4KCSA8dWw+CgkgICAgIDxsaT48Y29kZT5uYW1lfGNvbXBhbnlfbmFtZTwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgY29tcGFueSBuYW1lLjwvbGk+CgkgICAgIDxsaT48Y29kZT5hZGRyZXNzPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSBhZGRyZXNzLjwvbGk+CgkgICAgIDxsaT48Y29kZT50ZWxlcGhvbmU8L2NvZGU+IC0gVG8gZmlsdGVyIHdpdGggdGhlIHRlbGVwaG9uZSBudW1iZXIuPC9saT4KCSAgICAgPGxpPjxjb2RlPmZheDwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgZmF4IG51bWJlci48L2xpPgoJICAgICA8bGk+PGNvZGU+Y29udGFjdF9lbWFpbDwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgY29udGFjdF9lbWFpbDwvbGk+CgkgICAgIDxsaT48Y29kZT53ZWJzaXRlPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSBjb21wYW55IHdlYnNpdGUgdXJsIChub3QgdGhlIHVybCBzbHVnKTwvbGk+CgkgICAgIDxsaT48Y29kZT5waWN0dXJlPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgcGljdHVyZSBmaWVsZC48L2xpPgoJICAgICA8bGk+PGNvZGU+bG9nbzwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIGxvZ28gZmllbGQuPC9saT4KCSAgICAgPGxpPjxjb2RlPnN0YXR1czwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgdGhlIHN0YXR1cy48L2xpPgoJICAgICA8bGk+PGNvZGU+dXJsPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSB0aGUgdXJsIHNsdWcuPC9saT4KCSAgICAgPGxpPjxjb2RlPm93bmVyfG93bmVyX2lkPC9jb2RlPiAtIFRvIGZpbHRlciB3aXRoIHRoZSB0aGUgb3duZXI8L2xpPgoJICAgICA8bGk+PGNvZGU+aWQ8L2NvZGU+IC0gVG8gZmlsdGVyIHdpdGggdGhlIGNvbXBhbnkgaWQ8L2xpPgoJICAgICA8bGk+PGNvZGU+bW9kaWlmaWVkX2RhdGU8L2NvZGU+IC0gVG8gZmlsdGVyIHdpdGggdGhlIHRoZSBkYXRlIHRoZSBjb21wYW55IHdhcyBsYXN0IHNhdmVkLjwvbGk+CgkgICAgIDxsaT48Y29kZT5jcmVhdGVfZGF0ZTwvY29kZT4gLSBUbyBmaWx0ZXIgd2l0aCB0aGUgdGhlIGRhdGUgdGhlIGNvbXBhbnkgd2FzIGZpcnN0IHNhdmVkLjwvbGk+CgkgPC91bD4KCSA8cD48dT5BZHZhbmNlZCBleHByZXNzaW9uczo8L3U+PC9wPgoJIDx1bD4KCSAgICAgPGxpPjxjb2RlPmhpZXI8L2NvZGU+IC0gVG8gZmlsdGVyIGJ5IGNvbXBhbmllcyBhc3NvY2lhdGVkIHdpdGggYSBoaWVyYXJjaHkuCgkgICAgICAgICA8cD5mb3JtYXQ6ICA8Y29kZT5vcGVyYXRpb246aGllcjppZFs6ZmxhZ108L2NvZGU+IC0gVGhlIGlkIGlzIHRoZSBpZCBvZiBhIHZhbGlkIGhpZXJhcmNoeS4gIFRoZSBvcHRpb25hbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgb3IgdG8gaW5jbHVkZSBjaGlsZCBoaWVyYXJjaGllcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5jYXRlZ29yeTwvY29kZT4gLSBUbyBmaWx0ZXIgYnkgY29tcGFuaWVzIGFzc29jaWF0ZWQgd2l0aCBhIGNhdGVnb3J5CgkgICAgICAgICA8cD5mb3JtYXQ6ICA8Y29kZT5vcGVyYXRpb246Y2F0ZWdvcnk6aWRbOmZsYWddPC9jb2RlPiAtIFRoZSBpZCBpcyB0aGUgaWQgb2YgYSB2YWxpZCBjYXRlZ29yeS4gIFRoZSBvcHRpb25hbCBmbGFnIGluZGljYXRlcyB3ZXRoZXIgb3IgdG8gaW5jbHVkZSBjaGlsZCBoaWVyYXJjaGllcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5maWVsZDwvY29kZT4gLSBUbyBmaWx0ZXIgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMgYXNzb2NpYXRlZCB3aXRoIGNvbXBhbmllcy4KCSAgICAgICAgIDxwPmZvcm1hdDogIDxjb2RlPm9wZXJhdGlvbjpmaWVsZDpuYW1lOm9wZXJhdG9yOnZhbHVlWzp0eXBlXTwvY29kZT48cD4KCQkgPHA+VGhlIGZpZWxkIGV4cHJlc3Npb24gaXMgc2ltaWxhciB0byB0aGUgcHJpbWFyeSBmaWVsZCBleHByZXNzaW9ucyBleGNlcHQgeW91IG5lZWQgdG8gc3BlY2lmeSB0aGUgZmllbGQ6IGV4cHJlc3Npb24gbmFtZSwgZm9sbG93ZWQgYnkgdGhlIGZpZWxkIG5hbWUsIGFuIG9wZXJhdG9yIGFuZCBhIHZhbHVlLiAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSBhIHR5cGUgbW9kaWZpZXIgKGVpdGhlciBTIG9yIEkpIHRvIGZvcmNlIHRoZSBmaWVsZCB2YWx1ZSB0byBiZSB0cmVhdGVkIGFzIGEgc3RyaW5nIG9yIGFuIGludGVnZXIuPC9wPgoJCSA8cD5BbGwgZmllbGQgdmFsdWVzIGFyZSBzdG9yZWQgYXMgc3RyaW5ncyBpbiB0aGUgZGF0YWJhc2UuICBTbyBpZiB5b3VyIGZpZWxkIGlzIGEgJ251bWJlcicgZmllbGQgKGZvciBleGFtcGxlIGEgcHJpb3JpdHkpIGFuZCB5b3Ugd2FudCB0byB0cmVhdCBpdCBhcyBhIG51bWJlciBmb3Igc29ydGluZyB5b3UgbWF5IG5lZWQgdG8gc3BlY2lmeSB0aGUgOkkgdHlwZSBtb2RpZmllci48L3A+CgkJIDxwPmkuZTogIDxjb2RlPmFuZDpmaWVsZDpmaXJzdF9uYW1lOmNvbnRhaW5zOlJvYmVydDwvY29kZT48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5waHJhc2U8L2NvZGU+IC0gVG8gZmlsdGVyIHVzaW5nIGEgZnVsbCB0ZXh0IHNlYXJjaCAoaW4gYmluYXJ5IG1vZGUpCgkgICAgICAgICA8cD5mb3JtYXQ6IDxjb2RlPm9wZXJhdGlvbjpwaHJhc2U6IlsrLV13b3JkMSBbKy1dd29yZDIuLi4iPC9jb2RlPjwvcD4KCQkgPHA+aS5lOiA8Y29kZT5hbmQ6cGhyYXNlOiIrdG9yb250byAtY2FsZ2FyeSI8L2NvZGU+PC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+aWRsaXN0PC9jb2RlPiAtIFRvIGZpbHRlciB1c2luZyBhIHByZWRldGVybWluZWQgc2V0IG9mIGlkcwoJICAgICAgICAgPHA+Zm9ybWF0OiA8Y29kZT5vcGVyYXRpb246aWRsaXN0OmlkMSxpZDIsaWQzLi4uPC9jb2RlPjwvcD4KCQkgPHA+aS5lOiA8Y29kZT5hbmQ6aWRsaXN0OjEsMiwzLDQ8L2NvZGU+PC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+cmFkaXVzX2ttPC9jb2RlPiAtIFVzZXMgY29vcmRpbmF0ZSBpbmZvcm1hdGlvbiB0byBsaXN0IG9ubHkgY291bnRyaWVzIHdpdGhpbiBhIHJhZGl1cyAoa20pIG9mIGEgc3BlY2lmaWVkIGxvY2F0aW9uLgoJICAgICAgICAgPHA+Zm9ybWF0OiA8Y29kZT5vcGVyYXRpb246cmFkaXVzX2ttOmRpc3RhbmNlOmxhdGl0dWRlOmxvbmdpdHVkZTwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+YW5kOnJhZGl1c19rbToxMDA6LTMwLjEyMzQ1Oi0xMjMuNDU2Nzg5PC9jb2RlPjwvcD4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPnJhZGl1c19taWxlczwvY29kZT4gLSBVc2VzIGNvb3JkaW5hdGUgaW5mb3JtYXRpb24gdG8gbGlzdCBvbmx5IGNvdW50cmllcyB3aXRoaW4gYSByYWRpdXMgKG1pbGVzKSBvZiBhIHNwZWNpZmllZCBsb2NhdGlvbi4KCSAgICAgICAgIDxwPmZvcm1hdDogPGNvZGU+b3BlcmF0aW9uOnJhZGl1c19taWxlczpkaXN0YW5jZTpsYXRpdHVkZTpsb25naXR1ZGU8L2NvZGU+PC9wPgoJCSA8cD5pLmU6IDxjb2RlPmFuZDpyYWRpdXNfbWlsZXM6MTAwOi0zMC4xMjM0NTotMTIzLjQ1Njc4OTwvY29kZT48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT53aXRoaW48L2NvZGU+IC0gVXNlcyBjb29yZGluYXRlIGluZm9ybWF0aW9uIHRvIGxpc3Qgb25seSBjb3VudHJpZXMgdGhhdCBhcmUgd2l0aGluIHRoZSBzcGVjaWZpZWQgYm91bmRpbmcgYm94LgoJICAgICAgICAgPHA+Zm9ybWF0OiA8Y29kZT5vcGVyYXRpb246d2l0aGluOm5vcnRoOndlc3Q6c291dGg6ZWFzdDwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+YW5kOndpdGhpbjo5OS4xMjotMzAuMjM6OTguMzQ6LTI5LjQ1PC9jb2RlPjwvcD4KCSAgICAgPC9saT4KICAgICAgICAgPC91bD4KCSA8cD48dT5WYWxpZCBPcGVyYXRvcnMgKGNhc2UgaW5zZW5zaXRpdmUpOjwvdT48L3A+CgkgPHVsPgoJICAgICA8bGk+PGNvZGU+RVE8L2NvZGU+IC0gZXF1YWwgdG8KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCB3b3JrIHdpdGggbnVtYmVyIGZpZWxkcyBhbmQgc3RyaW5nIGZpZWxkcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5ORTwvY29kZT4gLSBub3QgZXF1YWwgdG8KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCB3b3JrIHdpdGggbnVtYmVyIGZpZWxkcyBhbmQgc3RyaW5nIGZpZWxkcy48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5MVDwvY29kZT4gLSBsZXNzIHRoYW4KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCBvbmx5IHdvcmsgd2l0aCBudW1iZXIgZmllbGRzLiAgaS5lOiAgPGNvZGU+YW5kOmNvbXBhbnlfbmFtZTpMVDoyNTwvY29kZT4gd2lsbCBoYXZlIHN0cmFuZ2UgZWZmZWN0cy4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPkxFPC9jb2RlPiAtIGxlc3MgdGhhbiwgb3IgZXF1YWwgdG8KCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd2lsbCBvbmx5IHdvcmsgd2l0aCBudW1iZXIgZmllbGRzLiAgaS5lOiAgPGNvZGU+YW5kOmNvbXBhbnlfbmFtZTpMRToyNTwvY29kZT4gd2lsbCBoYXZlIHN0cmFuZ2UgZWZmZWN0cy4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPkdUPC9jb2RlPiAtIGdyZWF0ZXIgdGhhbgoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3aWxsIG9ubHkgd29yayB3aXRoIG51bWJlciBmaWVsZHMuICBpLmU6ICA8Y29kZT5hbmQ6Y29tcGFueV9uYW1lOkdUOjI1PC9jb2RlPiB3aWxsIGhhdmUgc3RyYW5nZSBlZmZlY3RzLgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+R0U8L2NvZGU+IC0gZ3JlYXRlciB0aGFuLCBvciBlcXVhbCB0bwoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3aWxsIG9ubHkgd29yayB3aXRoIG51bWJlciBmaWVsZHMuICBpLmU6ICA8Y29kZT5hbmQ6Y29tcGFueV9uYW1lOkdFOjI1PC9jb2RlPiB3aWxsIGhhdmUgc3RyYW5nZSBlZmZlY3RzLgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+TElLRTwvY29kZT4gLSBzdHJpbmcgaXMgTElLRQoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3b3JrcyBiZXN0IHdpdGggc3RyaW5nIGZpZWxkcy4gIEl0IGFsbG93cyBmb3Igd2lsZGNhcmQgc3RyaW5nIG1hdGNoaW5nLCB3aGVyZSBhICogaXMgYSB3aWxkY2FyZCBjaGFyYWN0ZXIuCgkJICAgIGkuZTogPGNvZGU+YW5kOmFkZHJlc3M6TElLRToqdG9yb250byo8L2NvZGU+LgoJCSA8L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5TV3xTVEFSVFNXSVRIPC9jb2RlPiAtIHN0cmluZyBzdGFydHMgd2l0aAoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3b3JrcyBiZXN0IHdpdGggc3RyaW5nIGZpZWxkcy4gIEl0IGlzIHRoZSBzYW1lIGFzIHVzaW5nIExJS0Ugd2l0aCBvbmx5IGEgd2lsZGNhcmQgc3VmZml4LjwvcD4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPkVXfEVORFNXSVRIPC9jb2RlPiAtIHN0cmluZyBlbmRzIHdpdGgKCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd29ya3MgYmVzdCB3aXRoIHN0cmluZyBmaWVsZHMuICBJdCBpcyB0aGUgc2FtZSBhcyB1c2luZyBMSUtFIHdpdGggb25seSBhIHdpbGRjYXJkIHByZWZpeC48L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5DT05UQUlOUzwvY29kZT4gLSBzdHJpbmcgY29udGFpbnMKCSAgICAgICAgIDxwPlRoaXMgb3BlcmF0b3Igd29ya3MgYmVzdCB3aXRoIHN0cmluZyBmaWVsZHMuICBUaGlzIGlzIHRoZSBzYW1lIGFzIHVzaW5nIExJS0Ugd2l0aCBib3RoIGEgd2lsZGNhcmQgc3VmZml4IGFuZCBwcmVmaXguPC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+UkVHRVhQPC9jb2RlPiAtIHN0cmluZyBtYXRjaGVzIHJlZ3VsYXIgZXhwcmVzc2lvbgoJICAgICAgICAgPHA+VGhpcyBvcGVyYXRvciB3b3JrcyBiZXN0IHdpdGggc3RyaW5nIGZpZWxkcy4gIEl0IGFsbG93cyB1c2luZyBhIG15c3FsIGNvbXBhdGlibGUgcmVndWxhciBleHByZXNzaW9uIGluIGEgc3RhdGVtZW50LjwvcD4KCSAgICAgPC9saT4KCSA8L3VsPgogCSA8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEl0IGlzIHRoZSBkZXZlbG9wZXJzIHJlc3BvbnNpYmlsaXR5IHRvIGNvbnRyb2wgdGhlIGV4cHJlc3Npb25zIG9mIGEgc2NyaXB0LiAgSXQgaXMgcG9zc2libGUgdG8gYnVpbGQgYW4gaW1wb3NzaWJsZSBzZXQgb2YgY29uZGl0aW9ucyB0aGF0IHdpbGwgbmV2ZXIgcmV0dXJuIHZhbGlkIHJlc3VsdHMsIG9yIHRvIGJ1aWxkIGEgc2NyaXB0IHRoYXQgd2lsbCBhbHdheXMgcmV0dXJuIGludmFsaWQgcmVzdWx0cy48L3A+CiAgICAgPC9saT4KCiAgICAgPGxpPjxzdHJvbmc+Rm9ybWF0dGVyczwvc3Ryb25nPiAtIHRoZSBzdGF0ZW1lbnRzIGFyZSB1c2VkIHRvIHNvcnQsIGFuZCBsaW1pdCB0aGUgb3V0cHV0IG9mIHRoZSByZXN1bHRpbmcgcXVlcnkuCiAgICAgICAgIDxwPmkuZTogdG8gcmV0dXJuIGEgc3BlY2lmaWVkIG51bWJlciBvZiBpdGVtcyBzdGFydGluZyBhdCBhIHNwZWNpZmllZCBvZmZzZXQuPC9wPgoJIDxwPlZhbGlkIGZvcm1hdHRlcnM6PC9wPgoJIDx1bD4KCSAgICAgPGxpPjxjb2RlPnNvcnRieTwvY29kZT4gLSBUbyBzcGVjaWZ5IGhvdyB0aGUgb3V0cHV0IHNob3VsZCBiZSBzb3J0ZWQuCgkgICAgICAgICA8cD5Gb3JtYXQ6IDxjb2RlPnNvcnRieTpjb2x1bW48L2NvZGU+PC9wPgoJCSA8cD5pLmU6IDxjb2RlPnNvcnRieTpjb21wYW55X25hbWU8L2NvZGU+CgkJIDxwPkFjY2VwdGFibGUgdmFsdWVzOiBuYW1lfGNvbXBhbnlfbmFtZSwgZGlzdGFuY2UsIGlkLCBhZGRyZXNzLCBwaG9uZSwgcGhheCwgd2Vic2l0ZSwgb3duZXJ8b3duZXJfaWQsIGVtYWlsfGNvbnRhY3RfZW1haWwsIGNyZWF0ZWR8Y3JlYXRlX2RhdGUsIG1vZGlmaWVkfG1vZGlmaWVkX2RhdGU8L3A+CgkgICAgIDwvbGk+CgkgICAgIDxsaT48Y29kZT5zb3J0b3JkZXI8L2NvZGU+IC0gVG8gc3BlY2lmeSBob3cgdGhlIG91dHB1dCBzaG91bGQgYmUgc29ydGVkLgoJICAgICAgICAgPHA+Rm9ybWF0OiA8Y29kZT5zb3J0b3JkZXI6W2FzY3xkZXNjXTwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+c29ydG9yZGVyOmRlc2M8L2NvZGU+PC9wPgoJICAgICA8L2xpPgoJICAgICA8bGk+PGNvZGU+bGltaXQ8L2NvZGU+IC0gVG8gY29udHJvbCB0aGUgbnVtYmVyIG9mIG1hdGNoZXMgdGhhdCBhcmUgcmV0dXJuZWQgaW4gb25lIENvbXBhbnlTZXQuCgkgICAgICAgICA8cD5Gb3JtYXQ6IDxjb2RlPmxpbWl0Om51bWJlcjwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+bGltaXQ6MTAwPC9jb2RlPjwvcD4KCSAgICAgPC9saT4KCSAgICAgPGxpPjxjb2RlPm9mZnNldDwvY29kZT4gLSBUbyBzdGFydCB0aGUgb3V0cHV0IGF0IGEgc3BlY2lmaWVkIGxvY2F0aW9uIGluIHRoZSByZXN1bHRzZXQuICBUaGlzIGlzIHVzZWQgaW4gcGFnaW5hdGlvbi4KCSAgICAgICAgIDxwPkZvcm1hdDogPGNvZGU+b2Zmc2V0Om51bWJlcjwvY29kZT48L3A+CgkJIDxwPmkuZTogPGNvZGU+b2Zmc2V0OjEwMDwvY29kZT48L3A+CgkgICAgIDwvbGk+CgkgICAgIDwvbGk+CgkgPC91bD4KICAgICA8L2xpPgo8L3VsPgo8aDU+U2FtcGxlIFF1ZXJpZXM8L2g1Pgo8dWw+CiAgICAgPGxpPkZpbHRlciBhbGwgY29tcGFuaWVzIHdpdGggdGhlIHdvcmQgInRvcm9udG8iIGluIHRoZSBuYW1lLCB0aGF0IGFyZSBpbiBjYXRlZ29yeSAzIG9yIGl0cyBjaGlsZHJlbi4KICAgICAgICAgPHA+PGNvZGU+YW5kOmFkZHJlc3M6Q09OVEFJTlM6dG9yb250b3xhbmQ6Y2F0ZWdvcnk6MzoxPC9jb2RlPjwvcD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgYWxsIGNvbXBhbmllcyB3aXRoIHRoZSB3b3JkICJ0b3JvbnRvIiBvciAiY2FsZ2FyeSIgaW4gdGhlIG5hbWUsIHRoYXQgYXJlIGluIGNhdGVnb3J5IDMsIGJ1dCBub3QgaXQncyBjaGlsZHJlbi4KICAgICAgICAgPHA+PGNvZGU+b3I6YWRkcmVzczpDT05UQUlOUzp0b3JvbnRvfG9yOmFkZHJlc3M6Q09OVEFJTlM6Y2FsZ2FyeXxhbmQ6Y2F0ZWdvcnk6MzoxPC9jb2RlPjwvcD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgYWxsIGNvbXBhbmllcyBvd25lZCBieSB1c2VyIDUgdGhhdCBhcmUgbm90IHB1Ymxpc2hlZAogICAgICAgICA8cD48Y29kZT5hbmQ6b3duZXJfaWQ6NXxhbmQ6c3RhdHVzOk5FOnB1Ymxpc2hlZDwvY29kZT48cD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgYWxsIHB1Ymxpc2hlZCBjb21wYW5pZXMgdGhhdCBoYXZlIGEgbm9uIGVtcHR5IHZhbHVlIGZvciB0aGUgJ2JyYW5jaF9udW1iZXInIHByaW1hcnkgZmllbGQuCiAgICAgICAgIDxwPjxjb2RlPmFuZDpmaWVsZDpicmFuY2hfbnVtYmVyOm5lOnxhbmQ6c3RhdHVzOkVROnB1Ymxpc2hlZDwvY29kZT48cD4KICAgICA8L2xpPgogICAgIDxsaT5GaWx0ZXIgdGhlIG1vc3QgcmVjZW50IDI1IHB1Ymxpc2hlZCBjb21wYW5pZXMgdGhhdCBhcmUgcHVibGlzaGVkLCBhbmQgaGF2ZSBhIHZhbHVlIGNvbnRhaW5pbmcgJ3RveXMnIG9yICdlbGVjdHJvbmljcycgaW4gdGhlIHByb2R1Y3RfdHlwZSBmaWVsZAogICAgICAgICA8cD48Y29kZT5hbmQ6c3RhdHVzOmVxOnB1Ymxpc2hlZHxvcjpmaWVsZDpwcm9kdWN0X3R5cGU6Y29udGFpbnM6dG95c3xvcjpmaWVsZDpwcm9kdWN0X3R5cGU6Y29udGFpbnM6ZWxlY3Ryb25pY3N8c29ydGJ5Om1vZGlmaWVkfHNvcnRvcmRlcjpkZXNjfGxpbWl0OjI1PC9jb2RlPjxwPgogICAgIDwvbGk+CiAgICAgPGxpPkdldCB0aGUgbGF0ZXN0IDIwIGNvbXBhbmllcyBpbiBoaWVyYXJjaHkgNSBhbmQgaXQncyBjaGlsZHJlbiBPUiBjYXRlZ29yeSAzIGFuZCBpdCdzIGNoaWxkcmVuIHRoYXQgYXJlIG5vdCBwdWJsaXNoZWQuCiAgICAgICAgIDxwPjxjb2RlPm9yOmhpZXI6NToxfG9yOmNhdGVnb3J5OjM6MXxhbmQ6c3RhdHVzOk5FOnB1Ymxpc2hlZHxsaW1pdDoyNXxzb3J0Ynk6bW9kaWZpZWRfZGF0ZXxzb3J0b3JkZXI6ZGVzYzwvY29kZT48L3A+CiAgICAgPC9saT4KPC91bD4KPGg1Pk91dHB1dCBncmFtbWFyPC9oNT4KPHA+VGhpcyBtb2R1bGUgd2lsbCBwYXJzZSBhbmQgb3JnYW5pemUgYWxsIG9mIHRoZSBzdGF0ZW1lbnRzIGFuZCBnZW5lcmF0ZSBhbiBTUUwgcXVlcnkgd2l0aCBncmFtbWFyeSBsaWtlIHRoaXM6PC9wPgo8cHJlPjxjb2RlPlNFTEVDVCAqIEZST00gdGhlX3RhYmxlIFtqb2luX2V4cHJdIFtXSEVSRSBbYW5kX29wdHMgQU5EXSAob3Jfb3B0cyldIFtIQVZJTkcgaGF2aW5nXSBPUkRFUiBCWSBzb3J0Ynkgc29ydG9yZGVyIExJTUlUIGxpbWl0IE9GRlNFVCBvZmZzZXQ8L2NvZGU+PC9wcmU+Cjx1bD4KICAgIDx1bD48Y29kZT50aGVfdGFibGU8L2NvZGU+IC0gVGhlIGNvbXBhbnkgZGlyZWN0b3J5IGNvbXBhbmllcyB0YWJsZS48L3VsPgogICAgPHVsPjxjb2RlPmpvaW5fZXhwcjwvY29kZT4gLSBBbnkgam9pbnMgdG8gb3RoZXIgdGFibGVzIGFzIHJlcXVpcmVkIGJ5IHRoZSBzdGF0ZW1lbnRzIHlvdSBoYXZlIGFkZGVkIGFuZCBoZSBleHByZXNzaW9uIHBhcnNlci48L3VsPgogICAgPHVsPjxjb2RlPmFuZF9vcHRzPC9jb2RlPiAtIFRoZSBsaXN0IG9mIGFuZCBjb25kaXRpb25zIGFzIHBhcnNlZCBmcm9tIGFuZCBzdGF0ZW1lbnRzIGluIHRoZSBxdWVyeSBzZXBhcmF0ZWQgYnkgQU5EIDwvdWw+CiAgICA8dWw+PGNvZGU+b3Jfb3B0czwvY29kZT4gLSBUaGUgbGlzdCBvZiBvciBjb25kaXRpb25zIGFzIHBhcnNlZCBmcm9tIGFuZCBzdGF0ZW1lbnRzIGluIHRoZSBxdWVyeSBzZXBhcmF0ZWQgYnkgT1IuICBUaGVyZSBzaG91bGQgYmUgbW9yZSB0aGFuIDEgT1Igc3RhdGVtZW50LjwvdWw+CiAgICA8dWw+PGNvZGU+c29ydGJ5PC9jb2RlPiAtIEEgc29ydGluZyBjb2x1bW4sIHdoaWNoIG1heSBiZSBhIG1ldGEgY29sdW1uLjwvdWw+CiAgICA8dWw+PGNvZGU+c29ydG9yZGVyPC9jb2RlPiAtIEEgc29ydCBvcmRlciAoZWl0aGVyIEFTQyBvciBERVNDLjwvdWw+CiAgICA8dWw+PGNvZGU+bGltaXQ8L2NvZGU+IC0gQSBsaW1pdCB0byB0aGUgYW1vdW50IG9mIGl0ZW1zIHRvIHJldHVybiBpbiBvbmUgcXVlcnkuPC91bD4KICAgIDx1bD48Y29kZT5vZmZzZXQ8L2NvZGU+IC0gQSBzdGFydGluZyBpbmRleCB0byB0aGUgcmV0dXJuIHJlc3VsdHMgZnJvbS4uPC91bD4KPC91bD4KPGEgY2xhc3M9Im5hdiIgaHJlZj0iI3RvcCI+QmFjayB0byB0b3A8L2E+Cgo8aDMgaWQ9ImFkdmFuY2Vkc2VhcmNoIj5BZHZhbmNlZCBzZWFyY2g8L2gzPgo8cD5UaGUgYWR2YW5jZWQgc2VhcmNoIGZ1bmN0aW9uYWxpdHkgaXMgYW4gYWR2YW5jZWQgdG9vbCB0aGF0IGFsbG93cyBxdWVyeWluZyB0aGUgZGF0YWJhc2Ugb24gYW55dGhpbmcgdGhhdCBjYW4gYmUgcXVlcmllZCB1c2luZyBjZGxhbmcuICBJdCBjb21iaW5lcyBhIHVzZXIgZGVmaW5lZCBmb3JtIHdpdGggYSBzbWFydHkgdGVtcGxhdGUgdGhhdCBjcmVhdGVzIGEgY2RsYW5nIHNjcmlwdC4gIEZvcm0gZGF0YSBpcyBzYXZlZCB0byB0aGUgc2Vzc2lvbiwgYW5kIHN1YnNlcXVlbnQgdmlzaXRzIHRvIHRoZSBwYWdlIHJlbWVtYmVyIHRoZSBmb3JtIHJlc3VsdHMgdW50aWwgdGhlIGZvcm0gaXMgcmVzZXQgb3IgdGhlIHNlc3Npb24gZXhwaXJlcy48L3A+CjxwPlRoZXJlIGFyZSB0aHJlZSBzdGVwcyB0byBjcmVhdGluZyBhbiBhZHZhbmNlZCBzZWFyY2ggZm9ybTwvcD4KPG9sPgogICAgIDxsaT5DcmVhdGUgYSBmb3JtIHRlbXBsYXRlCiAgICAgICAgIDxwPlRoZSBhZHZhbmNlZCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSBpcyBhIHVzZXIgZGVmaW5lZCB0ZW1wbGF0ZSB3aXRoIGxpdHRsZSBkZXBlbmRlbmNpZXMuICBZb3UgY2FuIHByb3ZpZGUgamF2YXNjcmlwdCBmdW5jdGlvbmFsaXR5IHRvIGdldCB1c2VyIGNvb3JkaW5hdGVzLCB1c2UgY3VzdG9tIGZvcm0gdmFsaWRhdGlvbiByb3V0aW5lcywgeW91ciBvd24gbGF5b3V0LCBjbGFzc2VzIGV0Yy4gIFRoZXJlIGFyZSBmZXcgcmVxdWlyZW1lbnRzOjwvcD4KCSA8dWw+CgkgICAgIDxsaT5Zb3VyIGZvcm0gc2hvdWxkIHVzZSB0aGUgPGNvZGU+e2Zvcm1fc3RhcnR9PC9jb2RlPiBhbmQgPGNvZGU+e2Zvcm1fZW5kfTwvY29kZT4gcGx1Z2lucyBzbyB0aGF0IHRoZSBwcm9wZXIgYWN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC48L2xpPgogICAgICAgICA8L3VsPgoJIDxwPkxldHMgcGxhY2UgdGhpcyB0ZW1wbGF0ZSBpbiAvYXNzZXRzL3RlbXBsYXRlcy9teV9hZHZzZWFyY2hfZm9ybS50cGw8L3A+CiAgICAgPC9paT4KCiAgICAgPGxpPkNyZWF0ZSBhIHF1ZXJ5IHRlbXBsYXRlCiAgICAgICAgIDxwPlRoaXMgdGVtcGxhdGUgc2hvdWxkIGFjY2VwdCBhcyBpbnB1dCBhIHZhcmlhYmxlIG5hbWVkICRzYXZlZCB0aGF0IGlzIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIG91dHB1dCBmcm9tIHlvdXIgZm9ybSwgYW5kIG91dHB1dCBhIGNkbGFuZyBzY3JpcHQuPC9wPgoJIDxwPkxldHMgcGxhY2UgdGhpcyBxdWVyeSBpbiAvYXNzZXRzL3RlbXBsYXRlcy9teV9hZHZzZWFyY2hfcXVlcnkudHBsPC9wPgogICAgIDwvbGk+CgogICAgIDxsaT5DYWxsIHRoZSBhZHZhbmNlZCBzZWFyY2ggYWN0aW9uLgogICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT5DcmVhdGUgYSBuZXcgY29udGVudCBwYWdlIGFuZCBkaXNhYmxlIHRoZSBXWVNJV1lHIGVkaXRvciBvbiB0aGF0IHBhZ2UuPC9wPgoJICAgIDxsaT5JbiB0aGUgcHJpbWFyeSBjb250ZW50IGJsb2NrIGZvciB0aGlzIG5ldyBwYWdlIGFkZCA8Y29kZT57Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWR2c2VhcmNofTwvY29kZT48L2xpPgoJICAgIDxsaT5TcGVjaWZ5IHlvdXIgbW9kdWxlIGhpbnRzCgkgICAgICAgIDxwPkluIHRoZSAiU21hcnR5IGxvZ2ljIHRoYXQgaXMgc3BlY2lmaWMgdG8gdGhpcyBwYWdlIiBmaWVsZCBvbiB0aGUgbG9naWMgdGFiLCBzcGVjaWZ5IHRoZSBhcHByb3ByaWF0ZSBtb2R1bGUgaGludHMgdG8gYWN0aXZhdGUgdGhlIHNlYXJjaC4gaS5lOjwvcD4KCSAgICAgICAgPHByZT48Y29kZT57Y21zX21vZHVsZV9oaW50IG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IHNlYXJjaF9xdWVyeT0nZmlsZTpteV9hZHZzZWFyY2hfcXVlcnkudHBsJyBzZWFyY2h0ZW1wbGF0ZT0nZmlsZTpteV9hZHZzZWFyY2hfZm9ybS50cGwnfTwvY29kZT48L3ByZT4KCSAgICA8L2xpPgoJICAgIDxsaT5TYXZlIHlvdXIgcGFnZTwvbGk+CgkgPC91bD4KICAgICA8L2xpPgo8L29sPgoKPGgzIGlkPSJjb25maWdfZW50cmllcyI+Q29uZmlnIGVudHJpZXM8L2gzPgo8dWw+CiAgICA8bGk+PGNvZGU+ZGV0YWlscGFnZTwvY29kZT4gLSAoc3RyaW5nfGludCA9IG51bGwpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBFaXRoZXIgYSBwYWdlIGFsaWFzIG9yIGlkIG9mIHRoZSBjb250ZW50IHBhZ2UgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IGRldGFpbCB2aWV3cyBvZiBjb21wYW5pZXMgdGhhdCBhcmUgYWNjZXNzZWQgdmlhIGEgdXJsIHNsdWcuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5hbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzPC9jb2RlPiAoYm9vbCA9IGZhbHNlKSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIElmIGVuYWJsZWQsIHRoZW4gbXVsdGlwbGUgcmVjb3JkcyB3aXRoIHRoZSBzYW1lIGNvbXBhbnkgbmFtZSB3aWxsIGJlIHBlcm1pdHRlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmFsbG93X2V4cGlyZWRfb3duZXJzPC9jb2RlPiAoYm9vbCA9IHRydWUpKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSWYgZW5hYmxlZCwgdGhlbiBjb21wYW55IHJlY29yZHMgb3duZWQgYnkgRkVVIHVzZXJzIHRoYXQgYXJlIGRpc2FibGVkIG9yIGV4cGlyZWQgY2FuIGJlIHNob3duLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+YWRtaW53eXNpd3lnPC9jb2RlPiAoYm9vbCA9IHRydWUpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBJZiBlbmFibGVkIGFuZCBhIFdZU0lXWUcgZWRpdG9yIGlzIGF2YWlsYWJsZSBmb3IgdGhlIGFkbWluaXN0cmF0b3IsIGEgV1lTSVdZRyB0ZXh0IGVkaXRvciB3aWxsIGJlIHByb3ZpZGVkIGZvciBhbGwgdGV4dCBhcmVhIGZpZWxkcyB3aGVuIGVkaXRpbmcgYSBjb21wYW55LjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+ZnJvbnRlbmRfY3JlYXRlPC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBhbiBGRVUgdXNlciBpcyBwZXJtaXR0ZWQgdG8gY3JlYXRlIG5ldyBjb21wYW55IHJlY29yZHMgKHVwIHRvIHRoZSBtYXhfcmVjb3JkcyBpZiBjb25maWd1cmVkKS48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmZyb250ZW5kX2RlbGV0ZTwvY29kZT4gKGJvb2wgPSBmYWxzZSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoaXMgb3B0aW9uIGRldGVybWluZXMgd2hldGhlciBvciBub3QgYW4gRkVVIHVzZXIgaXMgcGVybWl0dGVkIHRvIGRlbGV0ZSBjb21wYW55IGVudHJpZXMgdGhhdCB0aGUgdXNlciBvd25zLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+ZnJvbnRlbmRfbWF4cmVjb3JkczwvY29kZT4gKGludCA9IDApCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgY29tcGFueSBlbnRyaWVzIHRoYXQgZWFjaCB1c2VyIGNhbiBvd24uICBpZiAwIHRoZW4gbm8gZnJvbnRlbmQgZWRpdGluZyBmdW5jdGlvbmFsaXR5IGlzIHBlcm1pdHRlZC4gIElmIGxlc3MgdGhhbiB6ZXJvIHRoYW4gdGhlcmUgaXMgbm8gbGltaXQuICBPdGhlcndpc2UsIHRoZSBpbnRlZ2VyIHZhbHVlIGlzIHVzZWQgYXMgYSBsaW1pdC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmZyb250ZW5kX2NoYW5nZXN0YXR1czwvY29kZT4gKGJvb2wgPSBmYWxzZSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIFRoaXMgb3B0aW9uIGRldGVybWluZXMgd2hldGhlciBvciBub3QgYW4gRkVVIHVzZXIgY2FuIGNoYW5nZSB0aGUgc3RhdHVzIChkcmFmdC9wdWJsaXNoZWQpIG9mIGNvbXBhbnkgZW50cmllcyB0aGF0IHRoZSB1c2VyIG93bnMuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5mcm9udGVuZF9pbXBvcnQ8L2NvZGU+IChib29sID0gZmFsc2UpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBmcm9udGVuZCBBU0NJSSBpbXBvcnQgZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGUuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5mcm9udGVuZF9lbWFpbG9uYWRkPC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSWYgZW5hYmxlZCwgYW4gZW1haWwgd2lsbCBiZSBzZW50IHdoZW4gYSBGRVUgdXNlciBjcmVhdGVzIGEgbmV3IHJlY29yZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPmZyb250ZW5kX2VtYWlsb25lZGl0PC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gSWYgZW5hYmxlZCwgYW4gZW1haWwgd2lsbCBiZSBzZW50IHdoZW4gYW4gRkVVIHVzZXIgdXBkYXRlcyBhbiBleGlzdGluZyByZWNvcmQuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5mcm9udGVuZF9lbWFpbGdyb3VwPC9jb2RlPiAoc3RyaW5nfGludCA9IG51bGwpCiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSBUaGUgYWRtaW4gZ3JvdXAgbmFtZSBvciBpZCB0byBzZW5kIGVtYWlscyB0byBvbiBmcm9udGVuZCBhY3Rpdml0eS48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPnVybF9yZXF1aXJlZDwvY29kZT4gKGJvb2wgPSBmYWxzZSkKICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIEZvciB0aGUgYWRtaW4gaW50ZXJmYWNlIG9ubHkgdGhpcyBvcHRpb24gZGV0ZXJtaW5zIHdoZXRoZXIgdXJsIHNsdWdzIGFyZSByZXF1aXJlZCB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGNvbXBhbnkgcmVjb3Jkcy48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPnVybF9hdXRvY3JlYXRlPC9jb2RlPiAoYm9vbCA9IGZhbHNlKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB3aGV0aGVyIHVybCBzbHVncyBzaG91bGQgYmUgYXV0b2NyZWF0ZWQgKHdoZW4gbm90IGFscmVhZHkgc3BlY2lmaWVkKSB1cG9uIGFkZGluZyBvciBlZGl0aW5nIGNvbXBhbmllcyA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPnVybHByZWZpeDwvY29kZT4gKHN0cmluZyA9ICdjb21wYW5pZXMnKQogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgc3RyaW5nIHRvIHByZXBlbmQgdG8gYWxsIHByZXR0eSB1cmxzIChleGNlcHQgdXJsIHNsdWdzKSB3aGVuIGJ1aWxkaW5nIHByZXR0eSB1cmxzLjwvcD4KICAgIDwvbGk+CjwvdWw+CjxhIGNsYXNzPSJuYXYiIGhyZWY9IiN0b3AiPkJhY2sgdG8gdG9wPC9hPgoKPGgzIGlkPSJob29rcyI+SG9va3M8L2gzPgo8dWw+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlU2F2ZUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGJlZm9yZSBhIGNvbXBhbnkgaXMgc2F2ZWQgdG8gdGhlIGRhdGFiYXNlLiAgSWYgaXQgaXMgYW4gaW5pdGlhbCBpbnNlcnQgb3BlcmF0aW9uIHRoZSBjb21wYW55IHdpbGwgaGF2ZSBubyBpZC48L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5Db21wYW55PC9jb2RlPiAtIFRoZSBjb21wYW55IG9iamVjdCBvZiB0aGUgY29tcGFueSB0byBiZSBzYXZlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyU2F2ZUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGFmdGVyIGEgY29tcGFueSBoYXMgYmVlbiBzYXZlZCB0byB0aGUgZGF0YWJhc2UuICBBdCB0aGlzIHBvaW50LCBhbGwgY29tcGFuaWVzIHdpbGwgaGF2ZSBhbiBpZC4gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gPGNvZGU+Q29tcGFueTwvY29kZT4gLSBUaGUgY29tcGFueSBvYmplY3Qgb2YgdGhlIGNvbXBhbnkgdGhhdCBoYXMgYmVlbiBzYXZlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGJlZm9yZSBhIGNvbXBhbnkgaXMgdG8gYmUgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5Db21wYW55PC9jb2RlPiAtIFRoZSBjb21wYW55IG9iamVjdCB0byBiZSBkZWxldGVkLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QWZ0ZXJEZWxldGVDb21wYW55PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBhZnRlciBhIGNvbXBhbnkgYW5kIGFsbCByZWxhdGVkIGZpbGVzIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIGRhdGFiYXNlLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNvbXBhbnk8L2NvZGU+IC0gVGhlIGNvbXBhbnkgb2JqZWN0IHRoYXQgd2FzIGRlbGV0ZWQuICBJdCB3aWxsIG5vIGxvbmdlciBoYXZlIGFuIGlkLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlQ29weUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGJlZm9yZSBhIGNvbXBhbnkgaXMgY29waWVkIHRvIGEgbmV3IGlkLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNvbXBhbnk8L2NvZGU+IC0gVGhlIGNvbXBhbnkgb2JqZWN0IHRvIGJlIGNvcGllZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyQ29weUNvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gQ2FsbGVkIGFmdGVyIGEgY29tcGFueSBoYXMgYmVlbiBjb3BpZWQ8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5Db21wYW55PC9jb2RlPiAtIFRoZSBjb21wYW55IG9iamVjdCBhZnRlciBpdCBoYXMgYmVlbiBjb3BpZWQuPC9wPgogICAgPC9saT4KCiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlU2F2ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBiZWZvcmUgYSBjYXRlZ29yeSBvYmplY3QgaXMgc2F2ZWQgdG8gdGhlIGRhdGFiYXNlLiAgSWYgdGhpcyBpcyBhbiBpbml0aWFsIGluc2VydCBvcGVyYXRpb24gdGhlIGNhdGVnb3J5IG9iamVjdCB3aWxsIG5vdCBoYXZlIGFuIGlkLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNhdGVnb3J5PC9jb2RlPiAtIFRoZSBjYXRlZ29yeSBvYmplY3QgdG8gc2F2ZS48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyU2F2ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBhZnRlciBhIGNhdGVnb3J5IG9iamVjdCBoYXMgYmVlbiBzYXZlZCB0byB0aGUgZGF0YWJhc2UgYW5kIGFsbCBoaWVyYXJjaHkgcG9zaXRpb25zIHVwZGF0ZWQuPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gPGNvZGU+Q2F0ZWdvcnk8L2NvZGU+IC0gVGhlIGNhdGVnb3J5IG9iamVjdCB0aGF0IHdhcyBzYXZlZC48L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBiZWZvcmUgYSBjYXRlZ29yeSBvYmplY3QgaXMgZGVsZXRlZCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiA8Y29kZT5DYXRlZ29yeTwvY29kZT4gLSBUaGUgY2F0ZWdvcnkgb2JqZWN0IHRvIGJlIGRlbGV0ZWQuPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpBZnRlckRlbGV0ZUNhdGVnb3J5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IENhbGxlZCBhZnRlciBhIGNhdGVnb3J5IG9iamVjdCBoYXMgYmVlbiBkZWxldGVkIGZyb20gdGhlIGRhdGFiYXNlIGFuZCBhbGwgaGllcmFyY2h5IHBvc2l0aW9ucyB1cGRhdGVkLiAgVGhlIGNhdGVnb3J5IG9iamVjdCB3aWxsIG5vIGxvbmdlciBoYXZlIGFuIGlkLjwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IDxjb2RlPkNhdGVnb3J5PC9jb2RlPiAtIFRoZSBjYXRlZ29yeSBvYmplY3QgYWZ0ZXIgZGVsZXRpb24uPC9wPgogICAgPC9saT4KCiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QmVmb3JlU2F2ZUZpZWxkRGVmPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyU2F2ZUZpZWxkRGVmPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUZpZWxkRGVmPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyRGVsZXRlRmllbGREZWY8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgIDwvbGk+CgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZVNhdmVIaWVyYXJjaHk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6QWZ0ZXJTYXZlSGllcmFyY2h5PC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgogICAgPGxpPjxjb2RlPkNvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUhpZXJhcmNoeTwvY29kZT4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpBZnRlckRlbGV0ZUhpZXJhcmNoeTwvY29kZT4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KCiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6UHJvY2Vzc0tNTENvbXBhbnk8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlJldHVybnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpTZWFyY2hJbnB1dFByZVByb2Nlc3M8L2NvZGU+CiAgICAgICAgPHA+PHN0cm9uZz5EZXNjcmlwdGlvbjo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlJldHVybnM6PC9zdHJvbmc+IC0gPC9wPgogICAgPC9saT4KICAgIDxsaT48Y29kZT5Db21wYW55RGlyZWN0b3J5OjpPbkZyb250ZW5kVXBkYXRlPC9jb2RlPgogICAgICAgIDxwPjxzdHJvbmc+RGVzY3JpcHRpb246PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UGFyYW1ldGVyczo8L3N0cm9uZz4gLSA8L3A+CiAgICAgICAgPHA+PHN0cm9uZz5SZXR1cm5zOjwvc3Ryb25nPiAtIDwvcD4KICAgIDwvbGk+CiAgICA8bGk+PGNvZGU+Q29tcGFueURpcmVjdG9yeTo6Z2V0X2NvbXBhbnlfZGV0YWlscGFnZTwvY29kZT4KICAgICAgICA8cD48c3Ryb25nPkRlc2NyaXB0aW9uOjwvc3Ryb25nPiAtIDwvcD4KICAgICAgICA8cD48c3Ryb25nPlBhcmFtZXRlcnM6PC9zdHJvbmc+IC0gPC9wPgogICAgICAgIDxwPjxzdHJvbmc+UmV0dXJuczo8L3N0cm9uZz4gLSA8L3A+CiAgICA8L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0ic2VjdXJpdHkiPlNlY3VyaXR5PC9oMz4KPHA+SW4gb3JkZXIgdG8gbWFuYWdlIHRoZSBjb21wYW5pZXMgaW5zaWRlIHRoaXMgbW9kdWxlLCB0aGUgYWRtaW5pc3RyYXRvciBtdXN0IGhhdmUgdGhlICc8ZW0+TW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5PC9lbT4nIHBlcm1pc3Npb24uPC9wPgo8cD5CeSBkZWZhdWx0LCB0aGUgYWJpbGl0eSBmb3IgZnJvbnRlbmQgZWRpdGluZyBpcyBkaXNhYmxlZCBmb3Igc2VjdXJpdHkgcHVycG9zZXMuICBUbyBlbmFibGUgaXQgeW91IHNob3VsZCBzZXQgKGF0IGEgbWluaW11bSkgdGhlIGNkX2Zyb250ZW5kX2NyZWF0ZSwgYW5kIGNkX2Zyb250ZW5kX21heHJlY29yZHMgZW50cmllcyBpbiB0aGUgY29uZmlnLnBocCBmaWxlLjwvcD4KPHA+Tm90ZTogaWYgeW91IGFyZSBhbGxvd2luZyB1bnRydXN0ZWQgZnJvbnRlbmQgdXNlcnMgdG8gbWFuYWdlIGNvbXBhbnlkaXJlY3RvcnkgcmVjb3JkcywgdGhlbiB5b3Ugc2hvdWxkIGNvbnNpZGVyIHRoZSBwb3NzaWJpbGl0eSB0aGF0IGVkaXRvcnMgY291bGQgZW50ZXIgc21hcnR5IHRhZ3MgaW4gdGhlIGNvbnRlbnQgYW5kIHRodXMgZ2VuZXJhdGUgZXJyb3JzLiAgaS5lOiAgeW91IHNob3VsZCBuZXZlciB1c2Ugc21hcnR5J3MgZXZhbCB0YWcgb24gY29udGVudCBzdWJtaXR0ZWQgYnkgdW50dXN0ZWQgdXNlcnMuICBBbmQgeW91IHNob3VsZCBhbHNvIGNvbnNpZGVyIHRoZSBwb3NzaWJpbGl0eSB0aGF0IHRoZXkgbWF5IHVwbG9hZCBtYWxpY2lvdXMgZmlsZXMsIGVtYmVkIHNjcmlwdHMsIG9yIGRvIG90aGVyIG1hbGljaW91cyB0aGluZ3MuPC9wPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0ic3VwcG9ydCI+U3VwcG9ydDwvaDM+CjxwPlRoZSBtb2R1bGUgYXV0aG9yIGlzIGluIG5vIHdheSBvYmxpZ2F0ZWQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGlzIGNvZGUgaW4gYW55IGZhc2hpb24uICBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+QSBidWcgdHJhY2tpbmcgYW5kIGZlYXR1cmUgcmVxdWVzdCBzeXN0ZW0gaGFzIGJlZW4gY3JlYXRlZCBmb3IgdGhpcyBtb2R1bGUgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jb21wYW55ZGlyIj5oZXJlPC9hPi4gIFBsZWFzZSBiZSB2ZXJib3NlIGFuZCBkZXNjcmlwdGl2ZSB3aGVuIHN1Ym1pdHRpbmcgYnVnIHJlcG9ydHMgYW5kIGZlYXR1cmUgcmVxdWVzdHMsIGFuZCBmb3IgYnVnIHJlcG9ydHMgZW5zdXJlIHRoYXQgeW91IGhhdmUgcHJvdmlkZWQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byByZWxpYWJseSByZXByb2R1Y2UgdGhlIGlzc3VlLjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uICBXaGVuIGRlc2NyaWJpbmcgYW4gaXNzdWUgcGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHByb3ZpZGUgYWxsIHJlbGF2YW50IGluZm9ybWF0aW9uLCBhIHRob3JvdWdoIGRlc2NyaXB0aW9uIG9mIHlvdXIgaXNzdWUsIGFuZCBzdGVwcyB0byByZXByb2R1Y2UgaXQgb3IgeW91ciBkaXNjdXNzaW9uIG1heSBiZSBpZ25vcmVkLjwvbGk+CjxsaT5UaGUgYXV0aG9yLCBjYWxndXkxMDAwLCBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkuICBIb3dldmVyLCBwbGVhc2UgdXNlIHRoaXMgYXMgYSBsYXN0IHJlc29ydCwgYW5kIGVuc3VyZSB0aGF0IHlvdSBoYXZlIGZvbGxvd2VkIGFsbCBhcHBsaWNhYmxlIGluc3RydWN0aW9ucyBvbiB0aGUgZm9yZ2UsIGluIHRoZSBmb3J1bXMsIGV0Yy48L2xpPgo8L3VsPgo8YSBjbGFzcz0ibmF2IiBocmVmPSIjdG9wIj5CYWNrIHRvIHRvcDwvYT4KCjxoMyBpZD0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMTIsIFJvYmVydCBDYW1wYmVsbCA8YSBocmVmPSJtYWlsdG86Y2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZyI+Jmx0O2NhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgooYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLjwvcD4KPHA+SG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCmFzIGFuIGFkZG9uIG1vZHVsZSB0byBDTVMgTWFkZSBTaW1wbGUuICBZb3UgbWF5IG5vdCB1c2UgdGhpcyBzb2Z0d2FyZQppbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCk1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgpzZWN0aW9uIHRoYXQgdGhlIHNpdGUgd2FzIGJ1aWx0IHdpdGggQ01TIE1hZGUgc2ltcGxlLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKT3IgcmVhZCBpdCA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPm9ubGluZTwvYT48L3A+Cg==]]></data>
	</file>
	<file>
	  <filename>/doc/refined_search_notes.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[MS4gIFNldCB0aGUgc2VhcmNoa2V5IHBhcmFtZXRlciBpbiB0aGUgcGFnZSwgYmVmb3JlIHtjb250ZW50fSBpcyBjYWxsZWQuCiAgICAqIG5vdGUgaWYgc3VtbWFyeSB2aWV3IGlzIG9uIGRpZmZlcmVudCBwYWdlIHRoYW4gc2VhcmNoIGZvcm0sIHNldCB0aGlzIHZhcmlhYmxlIG9uIGJvdGggcGFnZXMKICAgIHtjZ2VfbW9kdWxlX2hpbnQgbW9kdWxlPUNvbXBhbnlEaXJlY3Rvcnkgc2VhcmNoa2V5PSdzb21ldGhpbmcnfQoKMi4gIFNldCB0aGUgc3VtbWFyeXRlbXBsYXRlIHBhcmFtZXRlciBpbiB0aGUgcGFnZSwgYmVmb3JlIHtjb250ZW50fSBpcyBjYWxsZWQuCiAgICB7Y2dlX21vZHVsZV9oaW50IG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IHN1bW1hcnl0ZW1wbGF0ZT0nc29tZXRoaW5nJ30KCjMuICBDYWxsIHtDb21wYW55RGlyZWN0b3J5IGFjdGlvbj1zZWFyY2h9IHRvIGRpc3BsYXkgdGhlIHNlYXJjaCBmb3JtCgo0LiAgSW4gc3VtbWFyeSB0ZW1wbGF0ZSwgY3JlYXRlIGEgbmV3IGZvcm0KICAgIDxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSJ7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1kZWZhdWx0IHVybG9ubHk9MX0iPgogICAgLi4uCiAgICA8L2Zvcm0+CiAgICBhOiBhc3N1bWUgY250bnQwMSBmb3IgdGhlICdpZCcuLi4gc28gcHJlZml4IGFsbCBlbGVtZW50IG5hbWVzIHRoYXQgcmVwcmVzZW50IENEIHBhcmFtZXRlcnMgd2l0aCAnY25udDAxJwogICAgYjogYnVpbGQgdGhlIGZvcm0sIG5hbWUgb2YgYWxsIGVsZW1lbnRzIHNob3VsZCBtYXRjaCBDRCBwYXJhbWV0ZXIgbmFtZXMgKHdpdGggdGhlIHByZWZpeCkuCiAgICAgICBpLmU6ICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY250bnQwMW5hbWUiLz4KCiAgICAK]]></data>
	</file>
	<file>
	  <filename>/doc/todo.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[RG9jdW1lbnQgaG9va3MKQ2hlY2sgYWN0aXZlX3RhYiBzdHVmZgoKZmxleGlibGUgYWRtaW4gZmlsdGVyaW5nCgpUcmFuc2FjdGlvbnMgZm9yCi0gc2F2aW5nIGNvbXBhbnkKLSBkZWxldGluZyBjb21wYW55Ci0gY3JlYXRpbmcgaGllcmFyY2h5IGluIGNhdGVnb3JpZXMgdGFibGUKLSBjcmVhdGluZyBoaWVyYXJjaHkgaW4gaGllcmFyY2h5IHRhYmxlCi0gb3JkZXIgY2F0ZWdvcmllcwotIG9yZGVyIGhpZXJhcmNoaWVzCi0gb3JkZXIgZmllbGRkZWZzCg==]]></data>
	</file>
	<file>
	  <filename>/emails/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/emails/frontend_edit.eml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ZW5jb2RlX3NvYmplY3QgPSB0cnVlCj09PT0gc3ViamVjdCA9PT09CkEgY2hhbmdlIGhhcyBvY2N1cnJlZCB0byBhIENvbXBhbnlEaXJlY3RvcnkgZW50cnkKPT09PSBib2R5ID09PT0KeyogZW1haWwgc2VudCB0byBhbiBhZG1pbmlzdHJhdG9yIHdoZW4gYW4gRkVVIGFkZHMgb3IgY2hhbmdlcyBhIHJlY29yZCAqfQo8aDM+Q29tcGFueSBpbmZvcm1hdGlvbiBoYXMgYmVlbiBjaGFuZ2VkPC9oMz4KCjx0YWJsZT4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdjb21wYW55bmFtZScpfTo8L3RkPgogPHRkPnskY29tcGFueS0+Y29tcGFueV9uYW1lfTwvdGQ+CjwvdHI+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygnd2Vic2l0ZScpfTo8L3RkPgogPHRkPjxhIGhyZWY9InskY29tcGFueS0+d2Vic2l0ZX0iPnskY29tcGFueS0+d2Vic2l0ZX08L2E+PC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdjb250YWN0ZW1haWwnKX06PC90ZD4KIDx0ZD57JGNvbXBhbnktPmNvbnRhY3RfZW1haWx9PC90ZD4KPC90cj4KeyR1aW5mbz1mZXVfc21hcnR5OjpnZXRfdXNlcmluZm8oJGNvbXBhbnktPm93bmVyX2lkKX0KPHRyPgogPHRkPnskbW9kLT5MYW5nKCdvd25lcicpfTo8L3RkPgogPHRkPnskdWluZm8tPnVzZXJuYW1lfSZuYnNwOyh7JG1vZC0+TGFuZygnZXhwaXJlcycpfSB7JHVpbmZvLT5leHBpcmVzfGNtc19kYXRlX2Zvcm1hdH0pPC90ZD4KPC90cj4KPHRyPgogPHRkPnskbW9kLT5MYW5nKCd0ZWxlcGhvbmUnKX06PC90ZD4KIDx0ZD57JGNvbXBhbnktPnRlbGVwaG9uZX08L3RkPgo8L3RyPgo8dHI+CiA8dGQ+eyRtb2QtPkxhbmcoJ2ZheCcpfTo8L3RkPgogPHRkPnskY29tcGFueS0+ZmF4fTwvdGQ+CjwvdHI+Cjx0cj4KIDx0ZD57JG1vZC0+TGFuZygnYWRkcmVzcycpfTo8L3RkPgogPHRkPnskY29tcGFueS0+YWRkcmVzc308L3RkPgo8L3RyPgo8dHI+CiA8dGQ+eyRtb2QtPkxhbmcoJ2xhdGl0dWRlJyl9OjwvdGQ+CiA8dGQ+eyRjb21wYW55LT5sYXRpdHVkZX08L3RkPgo8L3RyPgo8dHI+CiA8dGQ+eyRtb2QtPkxhbmcoJ2xvbmdpdHVkZScpfTo8L3RkPgogPHRkPnskY29tcGFueS0+bG9uZ2l0dWRlfTwvdGQ+CjwvdHI+Cgp7aWYgJGNvbXBhbnktPmZpZWxkc30KICAgIHtmb3JlYWNoICRjb21wYW55LT5maWVsZHMgYXMgJGZkaWQgPT4gJHZhbHVlfQogICAgICAgICB7Y2RfZ2V0ZmllbGRkZWYgZmllbGQ9JGZkaWQgYXNzaWduPSdjdXN0b21maWVsZCd9CiAgICAgICAgPHRyPgogCSAgICA8dGQ+eyRjdXN0b21maWVsZC0+bmFtZX06PC90ZD4KIAkgICAgPHRkPgoJICAgICAgICB7aWYgaXNfYXJyYXkoJG9uZS0+dmFsdWUpfQoJCSAgICB7aW1wbG9kZSgnLCAnLCRvbmUtPnZhbHVlKX0KCQl7ZWxzZX0KCQkgICAgeyRvbmUtPnZhbHVlfGRlZmF1bHQ6bnVsbH0KCQl7L2lmfQoJICAgIDwvdGQ+CiAgICAgICAgPC90cj4KICAgIHsvZm9yZWFjaH0Key9pZn0KCntpZiAkZW50cnktPmNhdGVnb3JpZXN9CiAgICA8dHI+CiAgICAgICAgPHRkPnskbW9kLT5MYW5nKCdjYXRlZ29yaWVzJyl9OjwvdGQ+CiAgCTx0ZD4KCSAgICB7Zm9yZWFjaCAkZW50cnktPmNhdGVnb3JpZXMgYXMgJGNhdF9pZCA9PiAkcmVjfQoJICAgCSB7Y2RfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnk9JGNhdF9pZCBhc3NpZ249J2NhdGVnb3J5J30KCQkgeyRjYXRlZ29yeS0+bmFtZX17aWYgISRyZWNAbGFzdH0sIHsvaWZ9CgkgICAgey9mb3JlYWNofQoJPC90ZD4KICAgIDwvdHI+CnsvaWZ9CjwvdGFibGU+Cg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_companies_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY21zX3V0aWxzOwp1c2UgY2dlX3BhcmFtOwp1c2UgY2RfdXRpbHM7CmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiRjcmVhdGVfY29tcGFueV9xdWVyeSA9IGZ1bmN0aW9uKGFycmF5ICRpbikgOiBTcWxRdWVyeSB7CgogICAgLy8gdGhpcyB0cmFuc2xhdGVzIGZsdGVyIGFyZ3VtZW50cyAod2hpY2ggbWF5IGhhdmUgY29tZSBmcm9tIHRoZSBmb3JtKSBpbnRvIGNkcXVlcnkgc3RhdHdlbWVudHMuCiAgICAvLyB0aGVuIGJ1aWxkcyB0aGUgcXVlcnkgYW5kIHByb2Nlc3NlcyBpdCBpbnRvIGFuIFNxbFF1ZXJ5CiAgICAkc3RhdGVtZW50cyA9IG51bGw7CiAgICBmb3JlYWNoKCAkaW4gYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgIGlmKCBlbXB0eSgkdmFsKSApIGNvbnRpbnVlOwogICAgICAgICRleHByID0gbnVsbDsKICAgICAgICAkcGFydHMgPSBleHBsb2RlKCc6Jywka2V5KTsKICAgICAgICAkb3BlcmFuZCA9ICRwYXJ0c1swXTsKICAgICAgICBzd2l0Y2goICRvcGVyYW5kICkgewogICAgICAgIGNhc2UgJ2FuZCc6CiAgICAgICAgY2FzZSAnb3InOgogICAgICAgICAgICAvLyBpZiB3ZSBhcmUgcHJvY2Vzc2luZyBhIGNhdGVvZ3J5IG9yIGhpZXJhcmNoeSBzdGF0ZW1lbnQsIGF1dG9tYXRpY2FsbHkgaW5jbHVkZSBjaGlsZHJlbgogICAgICAgICAgICBpZiggcHJlZ19tYXRjaCgnL14oYW5kfG9yKVw6KGhpZXJ8Y2F0ZWdvcnkpXDovJywgJGtleSkgKSB7CiAgICAgICAgICAgICAgICAkZXhwciA9ICRrZXkgLiAkdmFsIC4gJzoxJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCBwcmVnX21hdGNoKCcvXihhbmR8b3IpXDpzdGF0dXNcOihFUXxlcSlcOi8nLCAka2V5KSApIHsKICAgICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZS4uLiBzdGF0dXMgb2YgLTEgb3IgZW1wdHkgc3RhdHVzIG1lYW5zICdhbnknIGluIHRoaXMgZm9ybS4KICAgICAgICAgICAgICAgIGlmKCBlbXB0eSgkdmFsKSB8fCAoaW50KSR2YWwgPCAwICkgYnJlYWs7CiAgICAgICAgICAgICAgICAkZXhwciA9ICRrZXkgLiAkdmFsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJGV4cHIgPSAka2V5IC4gJHZhbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdzb3J0YnknOgogICAgICAgIGNhc2UgJ3NvcnRvcmRlcic6CiAgICAgICAgICAgICRleHByID0gJGtleSAuICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdvZmZzZXQnOgogICAgICAgIGNhc2UgJ2xpbWl0JzoKICAgICAgICAgICAgJGV4cHIgPSAka2V5IC4gKGludCkgJHZhbDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBpZiggJGV4cHIgKSAkc3RhdGVtZW50c1tdID0gJGV4cHI7CiAgICB9OwoKICAgICRmYWN0b3J5ID0gJHRoaXMtPmdldF9xdWVyeV9mYWN0b3J5KCk7CiAgICAkcXVlcnkgPSAkZmFjdG9yeS0+Y3JlYXRlX3F1ZXJ5X2Zyb21fc3RhdGVtZW50cygkc3RhdGVtZW50cyk7CiAgICByZXR1cm4gJGZhY3RvcnktPmdlbmVyYXRlX3F1ZXJ5KCRxdWVyeSk7Cn07CgoKJHRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CiR1aWQgPSBnZXRfdXNlcmlkKCk7CiRvcmlnX2ZpbHRlciA9IFtdOwokb3JpZ19maWx0ZXJbJ2FuZDpuYW1lOkxJS0U6J10gPSAnJzsKJG9yaWdfZmlsdGVyWydhbmQ6YWRkcmVzczpMSUtFOiddID0gJyc7CiRvcmlnX2ZpbHRlclsnYW5kOnN0YXR1czpFUTonXSA9IC0xOyAvLyBhbnkKJG9yaWdfZmlsdGVyWydhbmQ6aGllcjonXSA9ICcnOyAgLy8gYW55CiRvcmlnX2ZpbHRlclsnYW5kOmNhdGVnb3J5OiddID0gJyc7IC8vIGFueQokb3JpZ19maWx0ZXJbJ2xpbWl0OiddID0gNTA7CiRvcmlnX2ZpbHRlclsnc29ydGJ5OiddID0gJ2NvbXBhbnlfbmFtZSc7CiRvcmlnX2ZpbHRlclsnc29ydG9yZGVyOiddID0gJ2FzYyc7CgokZmlsdGVyID0gJG9yaWdfZmlsdGVyOwokdG1wID0gJHRoaXMtPmdldF91c2VyX3ByZWZlcmVuY2VzKCktPmdldCgnYWRtaW5fZmlsdGVyJyk7CmlmKCAkdG1wICkgewogICAgJGZpbHRlciA9ICR0bXA7Cn0KCmlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsJ2ZpbHRlcl9zdWJtaXQnKSApIHsKICAgIHVuc2V0KCRfUE9TVFsnZmlsdGVyX3N1Ym1pdCddKTsKICAgIGZvcmVhY2goICRfUE9TVCBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgaWYoICFzdGFydHN3aXRoKCRrZXksICdmaWx0ZXJfJykgKSBjb250aW51ZTsKICAgICAgICAka2V5ID0gc3Vic3RyKCRrZXksc3RybGVuKCdmaWx0ZXJfJykpOwogICAgICAgICRmaWx0ZXJbJGtleV0gPSAkdmFsOwogICAgfQogICAgJHRoaXMtPmdldF91c2VyX3ByZWZlcmVuY2VzKCktPnNldCgnYWRtaW5fZmlsdGVyJywkZmlsdGVyKTsKfQplbHNlaWYoIGNnZV9wYXJhbTo6ZXhpc3RzKCRfUE9TVCwnZmlsdGVyX3Jlc2V0JykgKSB7CiAgICAkZmlsdGVyID0gJG9yaWdfZmlsdGVyOwogICAgJHRoaXMtPmdldF91c2VyX3ByZWZlcmVuY2VzKCktPmVyYXNlKCdhZG1pbl9maWx0ZXInKTsKfQovLyB0ZXN0IGlmIHdlIGhhdmUgYSBjdXN0b20gZmlsdGVyLgp7CiAgICAkdG1wID0gJGZpbHRlcjsKICAgIHVuc2V0KCRmaWx0ZXJbJ29mZnNldCddKTsKICAgICRmaWx0ZXJfYXBwbGllZCA9ICgkb3JpZ19maWx0ZXIgIT0gJHRtcCk7Cn0KCi8vIGhhbmRsZSBhIGN1c3RvbSAncGFnZScgcGFyYW1ldGVyCmlmKCBjZ2VfcGFyYW06OmV4aXN0cygkX1BPU1QsICdwYWdlJykgKSB7CiAgICAkcGFnZSA9IG1heCgxLGNnZV9wYXJhbTo6Z2V0X2ludCgkX1BPU1QsICdwYWdlJykpOwogICAgJGZpbHRlclsnb2Zmc2V0OiddID0gKCRwYWdlIC0gMSkgKiAkZmlsdGVyWydsaW1pdDonXTsKfQoKLy8gb25jZSB3ZSBoYXZlIGFuIGFycmF5IG9mIHVzZXIgc3R1ZmYuLi4gd2UgY2xlYW4gaXQgdXAsICBjcmVhdGUgYSBxdWVyeSBvYmosIGFuZCBnaXZlbiB0aGF0IGdldCB0aGUgcmVzdWx0cwokX1NFU1NJT05bJ3NhdmVkX2ZpbHRlciddID0gJGZpbHRlcjsKJHF1ZXJ5ID0gJGNyZWF0ZV9jb21wYW55X3F1ZXJ5KCRmaWx0ZXIpOwokcmVzdWx0cyA9ICR0aGlzLT5nZXRfY29tcGFueV9tYW5hZ2VyKCktPmxvYWRfYnlfcXVlcnkoJHF1ZXJ5KTsKCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkcmVzdWx0cyk7Cgokc29ydGJ5ID0gWwogICAgJ2lkJyA9PiAkdGhpcy0+TGFuZygnaWQnKSwKICAgICdjb21wYW55X25hbWUnID0+ICR0aGlzLT5MYW5nKCdjb21wYW55bmFtZScpLAogICAgJ3Bob25lJyA9PiAkdGhpcy0+TGFuZygndGVsZXBob25lJyksCiAgICAnZmF4JyA9PiAkdGhpcy0+TGFuZygnZmF4JyksCiAgICAnZW1haWwnID0+ICR0aGlzLT5MYW5nKCdjb250YWN0ZW1haWwnKSwKICAgICd3ZWJzaXRlJyA9PiAkdGhpcy0+TGFuZygnd2Vic2l0ZScpLAogICAgJ2FkZHJlc3MnID0+ICR0aGlzLT5MYW5nKCdhZGRyZXNzJyksCiAgICAnY3JlYXRlZCcgPT4gJHRoaXMtPkxhbmcoJ2NyZWF0ZWQnKSwKICAgICdtb2RpZmllZCcgPT4gJHRoaXMtPkxhbmcoJ21vZGlmaWVkZGF0ZScpCl07CiRzbWFydHktPmFzc2lnbignc29ydGluZ3MnLCRzb3J0YnkpOwokc29ydG9yZGVycyA9IFsKICAgICdhc2MnID0+ICR0aGlzLT5MYW5nKCdhc2NlbmRpbmcnKSwKICAgICdkZXNjJyA9PiAkdGhpcy0+TGFuZygnZGVzY2VuZGluZycpCl07CiRzbWFydHktPmFzc2lnbignc29ydG9yZGVycycsJHNvcnRvcmRlcnMpOwokc21hcnR5LT5hc3NpZ24oJ3BhZ2VsaW1pdHMnLCBbNT0+NSwgMjU9PjI1LCA1MD0+NTAsIDEwMD0+MTAwLCAyNTA9PjI1MCwgNTAwPT41MDBdICk7CiRzdGF0dXNlcyA9IFsKICAgICcnID0+ICR0aGlzLT5MYW5nKCdhbnknKSwKICAgICdkcmFmdCcgPT4gJHRoaXMtPkxhbmcoJ2RyYWZ0JyksCiAgICAncHVibGlzaGVkJyA9PiAkdGhpcy0+TGFuZygncHVibGlzaGVkJyksCiAgICAnZGlzYWJsZWQnID0+ICR0aGlzLT5MYW5nKCdkaXNhYmxlZCcpLApdOwokc21hcnR5LT5hc3NpZ24oJ3N0YXR1c2VzJywkc3RhdHVzZXMpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoaWVzJywgWycnPT4kdGhpcy0+TGFuZygnYW55JyldICsgKGFycmF5KSAkdGhpcy0+Z2V0X2hpZXJhcmNoeV9tYW5hZ2VyKCktPmdldF9saXN0KCkpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3JpZXMnLCBbJyc9PiR0aGlzLT5MYW5nKCdhbnknKV0gKyAoYXJyYXkpICR0aGlzLT5nZXRfY2F0ZWdvcnlfbWFuYWdlcigpLT5nZXRfbGlzdCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXJfYXBwbGllZCcsICRmaWx0ZXJfYXBwbGllZCk7CiRzbWFydHktPmFzc2lnbigndXNlcnMnLCBjZF91dGlsczo6Z2V0X2ZldV91c2VycygpKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWx0ZXInLCAkZmlsdGVyKTsKCiNEaXNwbGF5IHRlbXBsYXRlCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fY29tcGFuaWVzX3RhYi50cGwnKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7CgokYWxsX2RlZnMgPSAkdGhpcy0+Z2V0X2ZpZWxkZGVmX21hbmFnZXIoKS0+bG9hZF9hbGwoKTsKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnYWRtaW5fZmllbGRkZWZzX3RhYi50cGwnKTsKJHRwbC0+YXNzaWduKCdhbGxfZGVmcycsICRhbGxfZGVmcyk7CiR0cGwtPmRpc3BsYXkoKTsKCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/function.admin_searchestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwppZiggIWlzc2V0KCRnQ21zKSApIHJldHVybjsKCmVjaG8gJ1RPRE8nOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/delete.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAN0AAP///9bW1szMzO/v7+bm5rW1taWlpa2trff398XFxd7e3nNzc4WFhZmZmWZmZoyMjGtra3t7e5SUlJOMjKicnLMhIcN1dbFDQ8wzM51HR+PAwMIgIJxERL+amr6+vpA6OqVQUKMbG7hhYcQsLM94eME2Nt66ut9MTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAAAALAAAAQAPAA8AAAaeQIBwiBgMhIjkcCk4NB6TxkGwFBYkAkVgK2AUqgyFUUsgCCLIAeFwEGsVBAkDMEgcDIYCfm9IMBAiJSRqegKGCQUFERYYJyMWRnoBhg2KFxodJhcEagyTARIFCxwVGxUgAQQICwkCARMHEBQZIR8Trqsehg+xAQ0JCVsBAxCGAg8FDgAHBWplV2VaFAtCeMIOCwsQDthHQmcMDwlVQkEAOw==]]></data>
	</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.category_autocomplete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogdGhpcyBpcyBhIHV0aWxpdHkgY2xhc3MgdG8gYWxsb3cgYXV0b2NvbXBsZXRpbmcgY2F0ZWdvcmllcyB1c2luZyB0aGUganF1ZXJ5LXVpIGF1dG9jb21wbGV0ZSBwbHVnaW4gKi8KdmFyIGNhdGVnb3J5X2F1dG9jb21wbGV0ZSA9IG5ldyBmdW5jdGlvbigpIHsKICAgIHZhciBlbGVtLCBjb250LCBlbGVtX25hbWU7CiAgICB0aGlzLmFkZF9jaGlsZCA9IGZ1bmN0aW9uKGhlbHBlcixpZCxsYWJlbCkgewoJdmFyIF9idG4gPSAkKCc8YnV0dG9uLz4nKS5hZGRDbGFzcygnYXV0b2NhdC1jaGlsZC1yZW1vdmUnKS50ZXh0KG9wdHMuc3RyX2RlbGV0ZSk7Cgl2YXIgX2hkbiA9ICQoJzxpbnB1dC8+JykucHJvcCgndHlwZScsJ2hpZGRlbicpLnByb3AoJ25hbWUnLGVsZW1fbmFtZSkudmFsKGlkKTsKCXZhciBfbGJsID0gJCgnPGxhYmVsLz4nKS5hZGRDbGFzcygnYXV0b2NhbC1jaGlsZC1sYWJlbCcpLnRleHQobGFiZWwpOwoJdmFyIF9jaGlsZCA9ICQoJzxkaXYvPicpLmFkZENsYXNzKCdhdXRvY2F0LWNoaWxkJyk7CglfY2hpbGQuYXBwZW5kKF9oZG4pLmFwcGVuZChfbGJsKS5hcHBlbmQoX2J0bik7Cgljb250LmFwcGVuZChfY2hpbGQpOwogICAgfQoKICAgIHRoaXMuaW5pdCA9IGZ1bmN0aW9uKGluX29wdHMpIHsKCW9wdHMgPSAkLmV4dGVuZCh7fSwgb3B0cywgaW5fb3B0cyk7CgllbGVtID0gb3B0cy5lbGVtZW50OwoJZWxlbV9uYW1lID0gZWxlbS5hdHRyKCduYW1lJyk7CgllbGVtLnJlbW92ZUF0dHIoJ25hbWUnKS5hZGRDbGFzcygnYXV0b2NhdC1pbnAnKTsKCWNvbnQgPSAkKCc8ZGl2Lz4nKS5hZGRDbGFzcygnYXV0b2NhdC1jb250Jyk7CgllbGVtLmFmdGVyKGNvbnQpOwoKCWlmKCBvcHRzLmNhdGVnb3JpZXMgKSB7CgkgICAgdmFyIF9jYXRlZ29yaWVzID0gW107CgkgICAgJC5nZXRKU09OKG9wdHMudXJsLHsKCQlhbGw6IDEsCgkgICAgfSwgZnVuY3Rpb24oYWxsX2NhdHMpIHsKICAJICAgICAgICBmb3IoIHZhciBfaWQgaW4gb3B0cy5jYXRlZ29yaWVzICkgewoJCSAgICBvcHRzLm9uQWRkQ2hpbGQoc2VsZixfaWQsYWxsX2NhdHNbX2lkXS5sb25nX25hbWUpOwoJCX0KCSAgICB9KQoJfQoKCWNvbnQub24oJ2NsaWNrJywnLmF1dG9jYXQtY2hpbGQtcmVtb3ZlJyxmdW5jdGlvbihldil7CiAgICAgICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgIHZhciBfY2hpbGQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5hdXRvY2F0LWNoaWxkJyk7CgkgICAgX2NoaWxkLnJlbW92ZSgpOwoJfSk7CgoJZWxlbS5hdXRvY29tcGxldGUoewogICAgICAgICAgICBtaW5MZW5ndGg6IDIsCiAgICAgICAgICAgIHNvdXJjZTogZnVuY3Rpb24ocmVxdWVzdCxyZXNwb25zZSkgewoJCSQuZ2V0SlNPTihvcHRzLnVybCx7CgkgICAgICAgICAgICB0ZXJtOiByZXF1ZXN0LnRlcm0KCQl9LCBmdW5jdGlvbihkYXRhKSB7CgkJICAgIHJlc3BvbnNlKGRhdGEpOwoJCX0pOwogICAgICAgICAgICB9LAoJICAgIGNoYW5nZTogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsKCQkvLyBwcmV2ZW50IGZyZWUgdGV4dCBpbiB0aGUgdGV4dCBhcmVhCgkJaWYoIHVpLml0ZW0gPT0gbnVsbCApIGVsZW0udmFsKCcnKS5mb2N1cygpOwoJICAgIH0sCgkgICAgc2VsZWN0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgewoJCW9wdHMub25BZGRDaGlsZChzZWxmLHVpLml0ZW0udmFsdWUsdWkuaXRlbS5sYWJlbCk7CgkJZWxlbS52YWwoJycpOwoJCXJldHVybiBmYWxzZTsKCSAgICB9Cgl9KTsKICAgIH0KCiAgICAvLyBjb25zdHJ1Y3Rvci4KICAgIHZhciBzZWxmID0gdGhpczsKICAgIHZhciBvcHRzID0geyBlbGVtZW50OiBudWxsLAoJICAgICAgICAgc3RyX2RlbGV0ZTogJ0RlbGV0ZScsCgkJIHVybDogbnVsbCwKCSAgICAgICAgIG9uQWRkQ2hpbGQ6IHRoaXNbJ2FkZF9jaGlsZCddIH07Cn07Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMjIEEKJGxhbmdbJ2FiY2xpc3R0ZW1wbGF0ZXMnXSA9ICdBQkMgRGlyZWN0b3J5IFRlbXBsYXRlcyc7CiRsYW5nWydhYmNsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIEFCQyBEaXJlY3RvcnkgVGVtcGxhdGUnOwokbGFuZ1snYWN0aXZlJ10gPSAnQWN0aXZlJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWRkIENhdGVnb3J5JzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdBZGQgQ29tcGFueSc7CiRsYW5nWydhZGRlZGl0X2hpZXJhcmNoeSddID0gJ0FkZCBvciBFZGl0IGEgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBZGQgRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydhZGRoaWVyJ10gPSAnQWRkIEhpZXJhcmNoeSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWRkIExpbmsnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkZHJlc3MnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZGRyZXNzJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeSddID0gJ0FkZCBDYXRlZ29yeSc7CiRsYW5nWydhZGRfZWRpdF9jYXRlZ29yeSddID0gJ0FkZC9FZGl0IENhdGVnb3J5JzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdWaXNpYmxlIFRvIEFkbWluIE9ubHknOwokbGFuZ1snYWxidW0nXSA9ICdBbGJ1bSc7CiRsYW5nWydhbnknXSA9ICdBbnknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgdGhpcz8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaW5nJzsKJGxhbmdbJ2Fzc29jX2RhdGEnXSA9ICdBc3NvY2lhdGVkIERhdGEnOwoKIyMgQgokbGFuZ1snYmFkbmFtZWdpdmVuJ10gPSAnVGhlIG5hbWUgc3BlY2lmaWVkIGlzIGludmFsaWQgKGdlbmVyYWxseSBuYW1lcyBzaG91bGQgYmUgdXJsIGZyaWVuZGx5KSc7CiRsYW5nWydidWxrX2NyZWF0ZXVybF93aGVuX2VtcHR5J10gPSAnQ3JlYXRlIFVSTHMgd2hlcmUgZW1wdHknOwoKIyMgQwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnQ2FuIGZyb250ZW5kIHVzZXJzIGVkaXQgdGhpcyBmaWVsZD8nOwokbGFuZ1snY2FudXNlcnZpZXcnXSA9ICdDYW4gZnJvbnRlbmQgdXNlcnMgdmlldyB0aGlzIGZpZWxkPyc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yeSBBZGRlZCc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yeSBEZWxldGVkJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5IExpc3QgVGVtcGxhdGVzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0NhdGVnb3J5IExpc3QgVXBkYXRlZCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBDYXRlZ29yeSBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3J5JzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0NhdGVnb3J5IFVwZGF0ZWQnOwokbGFuZ1snY2F0X2V4dHJhaW5mbyddID0gJ0NhdGVnb3J5IEV4dHJhIEluZm8nOwokbGFuZ1snY2hlY2snXSA9ICdDaGVjayc7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdDb21wYW5pZXMnOwokbGFuZ1snY29tcGFueSddID0gJ0NvbXBhbnknOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnQ29tcGFueSBBZGRlZCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0NvbXBhbnkgRGVsZXRlZCc7CiRsYW5nWydjb21wYW55ZGlyZWN0b3J5J10gPSAnQ29tcGFueSBEaXJlY3RvcnknOwokbGFuZ1snY29tcGFueW5hbWUnXSA9ICdDb21wYW55IG5hbWUnOwokbGFuZ1snY29tcGFueXRleHQnXSA9ICdDb21wYW55JzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnQ29tcGFueSBVcGRhdGVkJzsKJGxhbmdbJ2NvbmZpcm1fYnVsayddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIG9uIG11bHRpcGxlIGl0ZW1zPyc7CiRsYW5nWydjb25maXJtX2VkaXRfYWxidW0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZWRpdCB0aGUgYWxidW0uICBBbnkgZWRpdHMgdG8gdGhlIGNvbXBhbnkgcHJvcGVydGllcyB3aWxsIG5vdCBiZSBzYXZlZCEnOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnQ29udGFjdCBFbWFpbCc7CiRsYW5nWydjb29yZGluYXRlcyddID0gJ0Nvb3JkaW5hdGVzJzsKJGxhbmdbJ2NvcHknXSA9ICdDb3B5JzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdDcmVhdGVkJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0ZSBFbnRlcmVkJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdDdXJyZW50IFZhbHVlJzsKCiMjIEQKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdQcm90b3R5cGUgVGVtcGxhdGVzJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgY29udGVudHMgb2YgdGhlc2UgdGV4dCBhcmVhcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgY29udGVudCBvZiB0ZW1wbGF0ZXMgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSB0YWIuICBFZGl0aW5nIG9uZSBvZiB0aGVzZSB0ZXh0IGFyZWFzIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RlbGV0ZWQnXSA9ICdEZWxldGVkJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnRGVsZXRlIENhdGVnb3J5JzsKJGxhbmdbJ2RlbGV0ZWNvbXBhbnknXSA9ICdEZWxldGUgQ29tcGFueSc7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ0RlbGV0ZSBGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2RlbGltaXRlciddID0gJ0ZpZWxkIERlbGltaXRlcic7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGVzY2VuZGluZyc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2Rlc2Nfc2V0dGluZ3NfbWVudSddID0gJ01hbmFnZSBmaWVsZHMsIGhpZXJhcmNoeSBhbmQgY2F0ZWdvcmllcyBmb3IgQ29tcGFueURpcmVjdG9yeSc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlscyc7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFRlbXBsYXRlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdEZXRhaWwgVGVtcGxhdGUgVXBkYXRlZCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1snZGZsdHN0YXR1cyddID0gJ0RlZmF1bHQgc3RhdHVzJzsKJGxhbmdbJ2Rpc2FibGUnXSA9ICdEaXNhYmxlJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGlzYWJsZWQnOwokbGFuZ1snZG93biddID0gJ0Rvd24nOwokbGFuZ1snZHJhZnQnXSA9ICdEcmFmdCc7CiRsYW5nWydkcmFnX29yX2NsaWNrX3RvX3VwbG9hZCddID0gJ0RyYWcgZmlsZXMgaGVyZSB0byB1cGxvYWQsIG9yIGNsaWNrIHRvIHNlbGVjdCBmaWxlJzsKCiMjIEUKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ0VkaXQgQ2F0ZWdvcnknOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdFZGl0IENvbXBhbnknOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnRWRpdCBGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2VkaXRfYWxidW0nXSA9ICdFZGl0IFBob3RvIEFsYnVtJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZGl0IENhdGVnb3J5JzsKJGxhbmdbJ2VkaXRfZmlsdGVyJ10gPSAnRWRpdCBGaWx0ZXInOwokbGFuZ1snZW1haWx0ZXh0J10gPSAnRW1haWwnOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWydlcnJvcl9hZGRyZXNzX2xvb2t1cCddID0gJ1Byb2JsZW0gbG9va2luZyB1cCBhZGRyZXNzOiAlcyc7CiRsYW5nWydlcnJvcl9hbGJ1bWZpZWxkZXhpc3RzJ10gPSAnQW4gYWxidW0gZmllbGQgYWxyZWFkeSBleGlzdHMuICBPbmx5IG9uZSBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX2JhZHVwbG9hZCddID0gJ0EgcHJvYmxlbSBvY2N1cnJlZCB3aXRoIHRoZSB1cGxvYWRlZCBmaWxlJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnQ2F0ZWdvcnkgY29sdW1uICVzIG5vdCBmb3VuZCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ0NvbXBhbnkgTmFtZSBpcyBJbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnQSBDb21wYW55IGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9jb21wYW55bm90ZGVsZXRlZCddID0gJ1RoZSBpdGVtIGNvdWxkIG5vdCBiZSBkZWxldGVkLi4uIHBlcmhhcHMgYW5vdGhlciBtb2R1bGUgaXMgZGVwZW5kYW50IHVwb24gdGhlIGRhdGEnOwokbGFuZ1snZXJyb3JfZGVsZXRlcGFyZW50J10gPSAnVGhpcyBpdGVtIGNhbm5vdCBiZSBkZWxldGVkIGJlY2F1c2UgaXQgaGFzIGNoaWxkIGl0ZW1zJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1lvdSBtdXN0IHNwZWNpZnkgYSBmaWVsZCBkZWxpbWl0ZXInOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlJ10gPSAnR2VuZXJhdGUgZXJyb3IgKGJ1dCBjb250aW51ZSknOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnQSBjYXRlZ29yeSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdBIGNvbXBhbnkgd2l0aCB0aGF0IG5hbWUgKCVzKSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdBIGZpZWxkIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnSGllcmFyY2h5IHdpdGggbG9uZyBuYW1lICZxdW90OyVzJnF1b3Q7IGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydlcnJvcl9mcm9udGVuZF9zZWN1cml0eSddID0gJ0htbW0uLi4gd2UgY291bGQgbm90IGZpbmQgdmFsaWQgc2VjdXJpdHkgZGF0YSc7CiRsYW5nWydlcnJvcl9mZXVfbG9nZ2VkaW4nXSA9ICdUbyB1c2UgdGhpcyBmdW5jdGlvbiB5b3UgbXVzdCBiZSBsb2dnZWQgaW4gdG8gdGhlIGZyb250ZW5kIG9mIHRoZSB3ZWJzaXRlJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJ10gPSAnRmllbGQgZGVmaW5pdGlvbiB3aXRoIGlkICVkIG5vdCBmb3VuZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkbGluZSddID0gJ0JhZCByZWNvcmQgZm91bmQgYXQgbGluZSAlZC4gIElzIHRoZXJlIGEgcnVsZSBtaXNzaW5nPyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkaGVhZGVyJ10gPSAnUHJvYmxlbSBwYXJzaW5nIHRoZSBoZWFkZXIgZm9yIGEgQ1NWIGZpbGUuICBDb3VsZCBub3QgZmluZCByZXF1aXJlZCBjb2x1bW5zJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9iYWR2YWx1ZSddID0gJ0EgYmFkIHZhbHVlIHdhcyBmb3VuZCBmb3IgdGhlICVzIGZpZWxkJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlJ10gPSAnRHVwbGljYXRlICVzIHJ1bGUgYXQgbGluZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZV9pZGVudGlmaWVyJ10gPSAnRHVwbGljYXRlIHJ1bGUgaWRlbnRpZmllciBhdCBsaW5lICVkJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9ub2hhbmRsZXInXSA9ICdCYWQgcmVjb3JkIGZvdW5kIGF0IGxpbmUgJWQuICBDb3VsZCBub3QgZmluZCBhIGhhbmRsZXIgZm9yIHJlY29yZHMgb2YgdHlwZSAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0RvbnQga25vdyBob3cgdG8gaGFuZGxlIGxpbmUgJWQgd2l0aCB0aGUgcnVsZSBpZGVudGlmaWVyICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF91bmtub3ducnVsZSddID0gJ1Vua25vd24gcnVsZSBhdCBsaW5lICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY2F0ZWdvcnkgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgY29tcGFueSBkZWZpbml0aW9uJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0EgZGF0YWJhc2UgZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGluc2VydCB0aGUgZmllbGQgZGVmaW5pdGlvbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfaGllcmFyY2h5J10gPSAnRXJyb3IgY3JlYXRpbmcgaGllcmFyY2h5ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRuYW1lJ10gPSAnVGhlIENvbXBhbnkgTmFtZSBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRzdGF0dXMnXSA9ICdJbnZhbGlkIHZhbHVlIGZvciBzdGF0dXMgcHJvcGVydHknOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ1RoZSBVUkwgc2x1ZyBzcGVjaWZpZWQgKG9yIGNhbGN1bGF0ZWQpIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9wYXJhbSddID0gJ1RoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yICVzIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1RoZSBwYXJlbnQgeW91IHNlbGVjdGVkIGlzIGludmFsaWQnOwokbGFuZ1snZXJyb3Jfa21saW1wb3J0X2RiZXJyb3InXSA9ICdEYXRhYmFzZSBlcnJvcic7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnTm8gYWRkcmVzcyBmb3VuZCBpbiByZWNvcmQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCB2YWx1ZSB3YXMgbWlzc2luZyBvciBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdObyBmaWxlIHdhcyB1cGxvYWRlZCc7CiRsYW5nWydlcnJvcl9ub2NvbXBhbmllc21hdGNoJ10gPSAnV2UgYXJlIHNvcnJ5LCBubyBjb21wYW5pZXMgbWF0Y2hlZCB5b3VyIGNyaXRlcmlhLic7CiRsYW5nWydlcnJvcl9ub2Ryb3Bkb3dub3B0aW9ucyddID0gJ05vIERyb3Bkb3duL011bHRpc2VsZWN0IG9wdGlvbnMgc3VwcGxpZWQnOwokbGFuZ1snZXJyb3Jfbm9mZXUnXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgRnJvbnRFbmRVc2VycyBtb2R1bGUnOwokbGFuZ1snZXJyb3Jfbm9maWx0ZXJtYXRjaGVzJ10gPSAnTm8gZGF0YWJhc2UgZW50cmllcyBtYXRjaGVkIHRoZSBjcml0ZXJpYSBzcGVjaWZpZWQnOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdObyBtYXhpbXVtIGxlbmd0aCBmaWVsZCBzdXBwbGllZCc7CiRsYW5nWydlcnJvcl9ub293bmVyJ10gPSAnT3duZXIgaWQgaXMgbm90IHNldCBvciBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX25vcmVzdWx0c2ZvdW5kJ10gPSAnTm8gcmVjb3JkcyBtYXRjaGluZyB5b3VyIGNyaXRlcmlhIGNvdWxkIGJlIGZvdW5kIGluIHRoZSBkYXRhYmFzZSc7CiRsYW5nWydlcnJvcl9ub3Nwb3RzbGVmdCddID0gJ1lvdSBoYXZlIG5vIHJlbWFpbmluZyBjb21wYW55IHNsb3RzJzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ05vdGhpbmcgU2VsZWN0ZWQnOwokbGFuZ1snZXJyb3JfcG9zdGNvZGVfbG9va3VwJ10gPSAnQ291bGQgbm90IGZpbmQgYW55IGluZm9ybWF0aW9uIGZvciBwb3N0YWwvemlwIGNvZGUgJXMnOwokbGFuZ1snZXJyb3JfcHJlZml4X21zZyddID0gJ0FuIGVycm9yIG9jY3VycmVkIGF0IGxpbmUgJWQ6ICVzJzsKJGxhbmdbJ2Vycm9yX3VwZGF0ZV9jb21wYW55J10gPSAnRXJyb3Igb2NjdXJyZWQgdXBkYXRpbmcgY29tcGFueSByZWNvcmQnOwokbGFuZ1snZXJyb3JfdXBsb2FkJ10gPSAnRXJyb3IgdXBsb2FkaW5nIGZpbGUnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZpbGV0eXBlJ10gPSAnVGhlIGZpbGUgdXBsb2FkZWQgb2YgdHlwZSAlcyBpcyBhbiBpbnZhbGlkIHR5cGUnOwokbGFuZ1snZXJyb3JfdXJsbm90ZW1wdHknXSA9ICdUaGUgVVJMIHNsdWcgZmllbGQgaXMgbm90IGVtcHR5Li4uIGNhbm5vdCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgdmFsdWUnOwokbGFuZ1snZXJyb3JfdXJscmVxdWlyZWQnXSA9ICdBIFVSTCBzbHVnIGlzIHJlcXVpcmVkJzsKJGxhbmdbJ2Vycl9pbnZhbGlkdW5pdHMnXSA9ICdVbml0cyBzcGVjaWZpZWQgYXJlIGludmFsaWQuICB2YWxpZCB2YWx1ZXMgYXJlIG1pLG1pbGUsbWlsZXMsa20sayc7CiRsYW5nWydlcnJfaW1wb3J0X25vY29tcGFueW5hbWVfZmllbGQnXSA9ICdQbGVhc2Ugc2VsZWN0IGEgY29tcGFueSBuYW1lIGZpZWxkIGluIHRoZSBtYXBwaW5nJzsKJGxhbmdbJ2Vycl9mZV91c2VycXVvdGEnXSA9ICdZb3UgaGF2ZSByZWFjaGVkIHRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIGNvbXBhbnkgZW50cmllcyc7CiRsYW5nWydleGFtcGxlJ10gPSAnRXhhbXBsZSc7CiRsYW5nWydleHBpcmVzJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnQgQ1NWJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIERhdGEgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYSBEYXRhIDInOwokbGFuZ1snZXh0cmEzJ10gPSAnRXh0cmEgRGF0YSAzJzsKCiMjIEYKJGxhbmdbJ2ZheCddID0gJ0ZheCc7CiRsYW5nWydmYXh0ZXh0J10gPSAnRmF4JzsKJGxhbmdbJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0J10gPSAnQSBjaGFuZ2UgaGFzIG9jY3VycmVkIHRvIGEgQ29tcGFueURpcmVjdG9yeSBlbnRyeSc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0ZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0ZpZWxkIERlZmluaXRpb24gQWRkZWQnOwokbGFuZ1snZmllbGRkZWZkZWxldGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbiBEZWxldGVkJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZpZWxkIERlZmluaXRpb25zJzsKJGxhbmdbJ2ZpZWxkZGVmdGV4dCddID0gJ0ZpZWxkIERlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbiBVcGRhdGVkJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZpZWxkcyc7CiRsYW5nWydmaWVsZF9hY3Rpdml0eSddID0gJ0FjdGl2aXRpZXMgKENHU29jaWFsQXBwKSc7CiRsYW5nWydmaWVsZF9hbGJ1bSddID0gJ0FsYnVtIChncm91cCBvZiBwaWN0dXJlcyknOwokbGFuZ1snZmllbGRfY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydmaWVsZF9kYXRlJ10gPSAnRGF0ZSc7CiRsYW5nWydmaWVsZF9kcm9wZG93biddID0gJ0Ryb3Bkb3duJzsKJGxhbmdbJ2ZpZWxkX2ZpbGUnXSA9ICdGaWxlJzsKJGxhbmdbJ2ZpZWxkX2ljb24nXSA9ICdJY29uIChDR0dvb2dsZU1hcHMpJzsKJGxhbmdbJ2ZpZWxkX2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snZmllbGRfbXVsdGlzZWxlY3QnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF9udW1iZXInXSA9ICdOdW1iZXInOwokbGFuZ1snZmllbGRfdGVsJ10gPSAnVGVsZXBob25lIG51bWJlcic7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnJmx0OyZsdDsnOwokbGFuZ1snZnJvbnRlbmRlZGl0X2ZpbmFsX21lc3NhZ2UnXSA9ICdZb3VyIGNvbXBhbnkgaW5mb3JtYXRpb24gaGFzIGJlZW4gc2F2ZWQnOwokbGFuZ1snZnJvbnRlbmRsaXN0X3JlY29yZGNvdW50J10gPSAnWW91IGhhdmUgJWQgcmVjb3JkcywgYW5kICVkIGFyZSBwZXJtaXR0ZWQnOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIEVkaXQgQWxidW0gVGVtcGxhdGVzJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgYSBGcm9udGVuZCBFZGl0IEFsYnVtIFRlbXBsYXRlJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIEVkaXQgQ29tcGFueSBUZW1wbGF0ZXMnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnRWRpdCBDb21wYW55IFRlbXBsYXRlIFVwZGF0ZWQnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgRnJvbnRlbmQgRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGltcG9ydHRlbXBsYXRlJ10gPSAnRnJvbnRlbmQgQ1NWIEltcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaXN0IFRlbXBsYXRlcyc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkIG9yIEVkaXQgYSBGcm9udGVuZCBMaXN0IFRlbXBsYXRlJzsKCiMjIEcKJGxhbmdbJ2dhbGxlcnl0ZW1wbGF0ZXMnXSA9ICdHYWxsZXJ5IFRlbXBsYXRlcyc7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgR2FsbGVyeSBUZW1wbGF0ZSc7CiRsYW5nWydnZXR1cmwnXSA9ICdDYWxjdWxhdGUgVVJMIHNsdWcnOwoKIyMgSAokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgSGllcmFyY2h5IExpc3QgVGVtcGxhdGUnOwoKIyMgSQokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpZ25vcmUnXSA9ICdJZ25vcmUnOwokbGFuZ1snaW1hZ2VjdXJyZW50aGlkZGVuJ10gPSAnJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltYWdlJzsKJGxhbmdbJ2ltcG9ydGNzdiddID0gJ0ltcG9ydCBDU1YnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0IEtNTCc7CiRsYW5nWydpbXBvcnRfZmlsZW5hbWUnXSA9ICdTZWxlY3QgQ1NWIEZpbGUnOwokbGFuZ1snaW1wb3J0X2luc2VydCddID0gJ0luc2VydCBkdXBsaWNhdGUnOwokbGFuZ1snaW1wb3J0X2ttbCddID0gJ0ltcG9ydCBLTUwgRmlsZSc7CiRsYW5nWydpbmZvX2FsYnVtX2ZpZWxkdHlwZSddID0gJ09ubHkgb25lIGFsYnVtIGZpZWxkIHR5cGUgaXMgcGVybWl0dGVkLiAgQWxsb3dpbmcgdXBsb2FkaW5nIG9mIG51bWVyb3VzIGltYWdlcyB0byBhc3NvY2lhdGUgd2l0aCBhIHNwZWNpZmljIGRhdGFiYXNlIGVudHJ5LiAgSW1hZ2VzIGNhbiBvbmx5IGJlIHVwbG9hZGVkIHRvIGFuIGFsYnVtIGZpZWxkIGZvciBhbiBleGlzdGluZyBlbnRyeSAod2hlbiBlZGl0aW5nIGFuIGVudHJ5KSBub3Qgd2hlbiBpbml0aWFsbHkgYWRkaW5nIHRoZSBlbnRyeS4nOwokbGFuZ1snaW5mb19jYXRlZ29yeWNvbHVtbiddID0gJ1NwZWNpZnkgdGhlIG5hbWUgb2YgYSBjb2x1bW4gdGhhdCBzcGVjaWZpZXMgb25lIG9yIG1vcmUgY2F0ZWdvcnkgbmFtZXMgKHNlcGFyYXRlZCBieSBhIGNvbW1hIDxlbT4oLCk8ZW0+IFRoYXQgY2FuIGJlIHVzZWQgdG8gcXVpY2tseSBwb3B1bGF0ZSB0aGUgY2F0ZWdvcmllcyBmb3IgZWFjaCByZWNvcmQuJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnlfZXh0cmFpbmZvJ10gPSAnVGhpcyBkaWFsb2cgYWxsb3dzIGFzc29jaWF0aW5nIGV4dHJhIGluZm9ybWF0aW9uIHJlbGF0aXZlIHRvIGVhY2ggaXRlbSBmb3IgYSBjYXRlZ29yeS4gIFRoaXMgaW5mb3JtYXRpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBleHRyYSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGNhdGVnb3J5IGl0c2VsZic7CiRsYW5nWydpbmZvX2NvbGxlY3RzdGF0cyddID0gJ0FwcGxpY2FibGUgb25seSB3aGVuIHVzaW5nIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHdpbGwgZW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGluZm9ybWF0aW9uIGZvciBlYWNoIHNlYXJjaCwgYW5kIHRoZXJlZm9yZSB0aGUgcG90ZW50aWFsIGRpc3BsYXkgb2Ygc2VhcmNoIHN0YXRpc3RpY3MuICBIb3dldmVyLCB0aGlzIG9wdGlvbiBtYXkgaGF2ZSBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMuJzsKJGxhbmdbJ2luZm9fY3N2ZmlsZSddID0gJ0l0IGlzIHBvc3NpYmxlIHRvIGltcG9ydCBjb21wYW55IGluZm9ybWF0aW9uIGRpcmVjdGx5IGZyb20gYW4gQVNDSUkgZmlsZS4nOwokbGFuZ1snaW5mb19jc3Zmb3JtYXQnXSA9ICdUaGlzIGFjdGlvbiBleHBlY3RzIGEgdGV4dCBDU1YgZmlsZSBpbiBVVEY4IGVuY29kaW5nLiAgSXQgZXhwZWN0cyB0aGF0IHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBmaWxlIHdpbGwgYmUgYSBtYXAgb2YgdGhlIGNvbHVtbnMuICBWYWxpZSBjb2x1bW5zIGFyZTogY29tcGFueV9uYW1lLCBhZGRyZXNzLCB0ZWxlcGhvbmUsIGZheCwgY29udGFjdF9lbWFpbCwgd2Vic2l0ZSwgZGV0YWlscywgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZS4gIEFkZGl0aW9uYWxseSwgc29tZSBleHRyYSBmaWVsZHMgY2FuIGJlIGltcG9ydGVkIGlmIHRoZSBjb2x1bW4gc3RhcnRzIHdpdGggdGhlIHByZWZpeCA8Y29kZT5mOjwvY29kZT4gQU5EIHRoZSBzdWZmaXggaXMgYSB2YWxpZCBmaWVsZCBuYW1lLiAgTmV3bGluZXMgaW4gY29sdW1ucyBhcmUgcG9zc2libGUgYXMgbG9uZyBhcyB0aGUgZGVsaW1pdGVycyBhbmQgZW5jbG9zdXJlIGlzIHNldCBwcm9wZXJseS4gIFJlY29yZHMgYXJlIG9ubHkgaW1wb3J0ZWQsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgcmVjb3JkLiAgQ29sdW1uIG5hbWVzIHRoYXQgYXJlIG5vdCBrbm93biBhcmUgaWdub3JlZC4gIEluZm9ybWF0aW9uIGFib3V0IGltYWdlcyBjYW5ub3QgYmUgaW1wb3J0ZWQgd2l0aCB0aGlzIHRvb2wuJzsKJGxhbmdbJ2luZm9fZHJhZ19kcm9wJ10gPSAnV2l0aCBtb3N0IG1vZGVybiBicm93c2VycyAoZXhjZXB0IElFKSB5b3UgY2FuIGRyYWcgbXVsdGlwbGUgZmlsZXMgaW50byB0aGUgYWRqYWNlbnQgZHJvcCB6b25lLiAgVGhleSB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgdXBsb2FkZWQgYW5kIGFkZGVkIHRvIHRoZSBhbGJ1bSc7CiRsYW5nWydpbmZvX2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdTcGVjaWZ5IHRoZSBvcHRpb25zIGZvciB0aGUgZHJvcGRvd24gb3IgbXVsdGlzZWxlY3QgY29udHJvbC4gIE9uZSBsaW5lIHBlciBlbnRyeS4gIFNlcGVyYXRlIGtleXMgZnJvbSB2YWx1ZXMgd2l0aCB0aGUgPS4gIGkuZToga2V5PWxhYmVsJzsKJGxhbmdbJ2luZm9fZWRpdG9yMiddID0gJ1VzZSB0aGUgbmV3IGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVycmVkIHRvIGFzIGZlZWRpdDIpPC9lbT4gTm90ZTogVGhlIG9sZCBlZGl0b3Igd2lsbCBiZSByZW1vdmVkIGluIENvbXBhbnlEaXJlY3RvcnkgMS4xNSBvciBiZXlvbmQuJzsKJGxhbmdbJ2luZm9fZXh0ZW5zaW9ucyddID0gJ1Byb3ZpZGUgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgKGNhc2UgaW5zZW5zaXRpdmUpLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgQ0dFeHRlbnNpb25zIGRlZmF1bHQgdmFsdWVzIHdpbGwgYmUgdXNlZC4nOwokbGFuZ1snaW5mb19maWx0ZXJfYWRkcmVzcyddID0gJ1NwZWNpZnkgYW4gYWRkcmVzcyBzdHJpbmcgdG8gc2VhcmNoIG9uLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgYWNjZXB0ZWQuICBpLmU6ICZxdW90OypUZXhhcyomcXVvdDsuIFRoaXMgZmllbGQgaXMgbm90IGNhc2Ugc2Vuc2l0aXZlJzsKJGxhbmdbJ2luZm9fZmlsdGVyX2hpZXJhcmNoeSddID0gJ1NwZWNpZnkgYSBoaWVyYXJjaHkgc3RyaW5nIChvciBwb3J0aW9uKSB0byBzZWFyY2ggb24uICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhY2NlcHRlZCwgYW5kIG1heSBpbmNsdWRlIGNoaWxkIGhpZXJhcmNoaWVzLiAgaS5lOiAmcXVvdDtDYXJzKiZxdW90Oy4gVGhpcyBmaWVsZCBpcyBub3QgY2FzZSBzZW5zaXRpdmUnOwokbGFuZ1snaW5mb19maWx0ZXJfbmFtZSddID0gJ1NwZWNpZnkgYSBjb21wYW55IG5hbWUgKG9yIHBhcnRpYWwgY29tcGFueSBuYW1lIHRvIHNlYXJjaCBvbi4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFjY2VwdGVkLiAgaS5lOiAmcXVvdDsqcmVzdGFyYXVudCZxdW90OyBUaGlzIGZpZWxkIGlzIG5vdCBjYXNlIHNlbnNpdGl2ZSc7CiRsYW5nWydpbmZvX2ltcG9ydF9zdGVwMSddID0gJ1RoaXMgaXMgYW4gaW1wb3J0IHJvdXRpbmUgdG8gQUREIGNvbXBhbmllcyB0byB0aGUgZGF0YWJhc2UuICBJdCBpcyBub3QgcG9zc2libGUgdG8gdXBkYXRlIGV4aXN0aW5nIHJlY29yZHMgd2l0aCBjb250ZW50IGZyb20gQ1NWIGZpbGUuICBUaGlzIGlzIGEgcmVzb3VyY2UgaGVhdnkgZnVuY3Rpb24gYW5kIHdpbGwgc3RvcCBwcm9jZXNzaW5nIHRoZSBmaWxlIGFmdGVyIGEgcHJlc2V0IGFtb3VudCBvZiB0aW1lLCBwb3RlbnRpYWxseSBsZWF2aW5nIHNvbWUgb2YgdGhlIGZpbGUgdW5pbXBvcnRlZC4gRXJyb3JzIGNhbiBvY2N1ciAoZGVwZW5kaW5nIHVwb24gc2V0dGluZ3MpIHdoZW4gaW1wb3J0aW5nIGR1cGxpY2F0ZSBjb21wYW5pZXMsIGR1cGxpY2F0ZSBvciBpbnZhbGlkIHVybCBzbHVncywgb3Igb3RoZXIgaW52YWxpZCBkYXRhJzsKJGxhbmdbJ2luZm9faW1wb3J0X3N0ZXAyJ10gPSAnUGxlYXNlIG1hcCBjb2x1bW5zIG9mIHRoZSBpbnB1dCBmaWxlIHRvIGZpZWxkcy4gIFlvdSBtdXN0IHNlbGVjdCBhdCBsZWFzdCBvbmUgY29sdW1uIGZvciBhIGNvbXBhbnkgbmFtZS4gIFlvdSBjYW4gc2VsZWN0IG11bHRpcGxlIGFkZHJlc3MgZmllbGRzLCBhbmQgdGhlIHZhbHVlIGZyb20gZWFjaCBvZiB0aGVzZSBjb2x1bW5zIHdpbGwgYmUgY29uY2F0ZW5hdGVkIHRvIHRoZSBwcmV2aW91cyBmaWVsZCB0byBidWlsZCBhIGNvbXBsZXRlIGFkZHJlc3Mgc3RyaW5nJzsKJGxhbmdbJ2luZm9faW1wb3J0Zm9ybWF0J10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUbyBkZXRlcm1pbmUgYSBzYW1wbGUgQ1NWIGZvcm1hdCBpdCBpcyBiZXN0IHRvIGNyZWF0ZSBhIGZldyByZWNvcmRzIGFuZCB0aGVuIGV4cG9ydCB0aGUgZGF0YSB0byBDU1YuICBVc2UgdGhlIGV4cG9ydGVkIENTViBhcyBhIHJlZmVyZW5jZQo8YnIvPjxici8+CjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4KICBDYXRlZ29yeSwgRmllbGQsIGFuZCBIaWVyYXJjaHkgcmVjb3JkcyB3aWxsIG9ubHkgYmUgaW5zZXJ0ZWQgKHVwZGF0ZXMgdG8gZXhpc3RpbmcgcmVjb3JkcyB3aWxsIGJlIGlnbm9yZWQpLiAgV2hlbiB1cGRhdGluZyBhbiBleGlzdGluZyBjb21wYW55IGZpZWxkIHZhbHVlcyBhbmQgY2F0ZWdvcnkgbWVtYmVyc2hpcCBpcyBkZWxldGVkIGJlZm9yZSBuZXcgdmFsdWVzIGFyZSBpbXBvcnRlZC4nOwokbGFuZ1snaW5mb19pbXBvcnRfY2F0ZWdvcnlkZWZzJ10gPSAnT25seSBhcHBsaWNhYmxlIHRvIGNvbXBhbnkgcmVjb3JkcywgdGhpcyBpbmRpY2F0ZXMgdGhhdCBhbnkgY2F0ZWdvcnkgY29sdW1uIHRoYXQgaXMgdW5rbm93biB3aWxsIGJlIGNyZWF0ZWQuJzsKJGxhbmdbJ2luZm9faW1wb3J0X2NhdGVnb3J5dmFscyddID0gJ0lmIGRpc2FibGVkLCBubyBjYXRlZ29yeSBtZW1iZXJzaGlwIGluZm9ybWF0aW9uIHdpbGwgYmUgaW1wb3J0ZWQuICBUaGUgaW1wb3J0ZWQgY29tcGFuaWVzIHdpbGwgbm90IGJlbG9uZyB0byBhbnkgY2F0ZWdvcmllcy4nOwokbGFuZ1snaW5mb19pbXBvcnRfZmllbGRkZWZzJ10gPSAnT25seSBhcHBsaWNhYmxlIHRvIGNvbXBhbnkgcmVjb3JkcywgdGhpcyBpbmRpY2F0ZXMgdGhhdCBhbnkgY3VzdG9tIGZpZWxkIGRlZmluaXRpb24gdGhhdCBpcyBub3Qga25vd24gd2lsbCBiZSBjcmVhdGVkIDxlbT4oYXMgYSB0ZXh0IGJveCk8L2VtPic7CiRsYW5nWydpbmZvX2ltcG9ydF9maWVsZHZhbHMnXSA9ICdJZiBkaXNhYmxlZCwgbm8gY3VzdG9tIGZpZWxkIHZhbHVlcyB3aWxsIGJlIGltcG9ydGVkLic7CiRsYW5nWydpbmZvX2ltcG9ydF9oaWVyYXJjaHlkZWZzJ10gPSAnT25seSBhcHBsaWNhYmxlIHRvIGNvbXBhbnkgcmVjb3JkcywgdGhpcyBpbmRpY2F0ZXMgdGhhdCBhbnkgaGllcmFyY2h5IHBvc2l0aW9ucyB0aGF0IGFyZSB1bmtub3duIHdpbGwgYmUgY3JlYXRlZCc7CiRsYW5nWydpbmZvX2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSWYgZGlzYWJsZWQsIG5vIGhpZXJhcmNoeSBpbmZvcm1hdGlvbiB3aWxsIGJlIGltcG9ydGVkICh0aGUgaW1wb3J0ZWQgY29tcGFuaWVzIHdpbGwgbm90IGhhdmUgYSBoaWVyYXJjaHkgcG9zaXRpb24gc2V0KSc7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnTm8gY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCc7CiRsYW5nWydpbmZvX3JlY29yZHNfbWF0Y2hpbmcnXSA9ICclZCByZWNvcmRzIG1hdGNoIHRoZSBjdXJyZW50IGZpbHRlcic7CiRsYW5nWydpbmZvX3VzZXJlZGl0J10gPSAnSWYgZW5hYmxlZCwgb25seSBhZG1pbmlzdHJhdG9ycyBjYW4gZWRpdCB0aGlzIGZpZWxkIGZvciBlYWNoIGVudHJ5LiAgVGhpcyBpcyB1c2VmdWwgaWYgYWxsb3dpbmcgZnJvbnRlbmQgYWRkaW5nL2VkaXRpbmcgb2YgY29tcGFueSByZWNvcmRzIHRvIHByb3ZpZGUgZmllbGRzIHRoYXQgdGhlIG93bmVyL2VkaXRvciBjYW5ub3QgZWRpdC4nOwokbGFuZ1snaW5mb191c2VydmlldyddID0gJ0lmIGVuYWJsZWQsIGFsbCB1c2VycyBjYW4gdmlldyB0aGlzIGZpZWxkIGZvciBlYWNoIGVudHJ5LiAgSWYgZGlzYWJsZWQgb25seSB0aGUgb3duZXIgYW5kIGFkbWluaXN0cmF0b3JzIGNhbiB2aWV3IHRoZSBmaWVsZCc7CiRsYW5nWydpbnVzZSddID0gJ2luIHVzZSc7CgojIyBMCiRsYW5nWydsYWJlbF9pbmNsdWRlY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkIEhpZXJhcmNoaWVzJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnJmd0OyZndDsnOwokbGFuZ1snbGF0aXR1ZGUnXSA9ICdMYXRpdHVkZSc7CiRsYW5nWydsYmxfYmFjayddID0gJ0JhY2snOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyc7CiRsYW5nWydsb2dvY3VycmVudGhpZGRlbiddID0gJyc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28nOwokbGFuZ1snbG9uZ2l0dWRlJ10gPSAnTG9uZ2l0dWRlJzsKJGxhbmdbJ2xvb2t1cCddID0gJ0xvb2t1cCBDb29yZGluYXRlcyc7CgojIyBNCiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXggTGVuZ3RoJzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdNYXggTGVuZ3RoJzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdNYXggTGVuZ3RoJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBkaXJlY3RvcnkgbGlrZSBtb2R1bGUgZm9yIGNvbXBhbmllcy4gIEFsbG93cyBhZGRpbmcvZWRpdGluZy9pbXBvcnRpbmcvZXhwb3J0aW5nIGNvbXBhbnkgZGVmaW5pdGlvbnMsIGFuZCB2YXJpb3VzIHdheXMgb2YgZGlzcGxheWluZyB0aGUgY29tcGFueSBlbnRyaWVzIGluY2x1ZGluZyBzZWFyY2guICBUaGlzIG1vZHVsZSBpbnRlZ3JhdGVzIHdlbGwgd2l0aCBDR0dvb2dsZU1hcHMuJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnTW9kaWZpZWQnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0ZSBMYXN0IE1vZGlmaWVkJzsKJGxhbmdbJ21zZ19idWxrZGVsJ10gPSAnJWQgY29tcGFuaWVzIGRlbGV0ZWQnOwokbGFuZ1snbXNnX2J1bGtfdXJsc2NyZWF0ZWQnXSA9ICdVUkwgc2x1Z3MgY3JlYXRlZCBmb3IgJWQgY29tcGFuaWVzJzsKJGxhbmdbJ21zZ19jYXRlZ29yeXNhdmVkJ10gPSAnQ2F0ZWdvcnkgc2F2ZWQnOwokbGFuZ1snbXNnX2NvbXBhbnljb3BpZWQnXSA9ICdDb21wYW55IGNvcGllZC4uLiBwbGVhc2UgZWRpdCB0aGUgZGV0YWlscyBmb3IgdGhlIG5ldyBjb21wYW55IHJlY29yZCc7CiRsYW5nWydtc2dfY29tcGFueXNhdmVkJ10gPSAnQ29tcGFueSBzYXZlZCc7CiRsYW5nWydtc2dfZmllbGRfc2F2ZWQnXSA9ICdGaWVsZCBkZWZpbml0aW9uIHNhdmVkJzsKJGxhbmdbJ21zZ19oaWVyX3NhdmVkJ10gPSAnSGllcmFyY2h5IHBvc2l0aW9uIHNhdmVkJzsKJGxhbmdbJ21zZ19oaWVyYXJjaHlfdXBkYXRlZCddID0gJ0hpZXJhcmNoeSBwb3NpdGlvbnMgdXBkYXRlZCc7CiRsYW5nWydtc2dfaGllcmRlbGV0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gZGVsZXRlZCc7CiRsYW5nWydtc2dfaGllcnVwZGF0ZWQnXSA9ICdIaWVyYXJjaHkgcG9zaXRpb24gdXBkYXRlZCc7CiRsYW5nWydtc2dfaW1wb3J0X2NvbXBsZXRlJ10gPSAnSW1wb3J0IG9wZXJhdGlvbiBzdWNjZXNzZnVsJzsKJGxhbmdbJ21zZ19zZXR0aW5nc19jaGFuZ2VkJ10gPSAnU2V0dGluZ3MgQ2hhbmdlZCc7CiRsYW5nWydtc2dfc2xvdHN1c2VkJ10gPSAnWW91IGhhdmUgdXNlZCAlZCBvZiAlZCBjb21wYW55IHNsb3RzJzsKJGxhbmdbJ21zZ191cmxva2F5J10gPSAnVGhlIFVSTCBzbHVnIHNlZW1zIHRvIGJlIGdvb2QnOwokbGFuZ1snbXNnX2Nvb3Jkc2V4aXN0J10gPSAnQ29vcmRpbmF0ZXMgYWxyZWFkeSBleGlzdCc7CgojIyBOCiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgXCclc1wnIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IGZ1bmN0aW9uLic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggRm9ybSBUZW1wbGF0ZXMnOwokbGFuZ1snbmV3c2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snbmV3c2VhcmNoX3RlbXBsYXRlJ10gPSAnU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICcmZ3Q7JzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1snbm9jb21wYW55bmFtZWdpdmVuJ10gPSAnTm8gQ29tcGFueSBOYW1lIEdpdmVuJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gTmFtZSBHaXZlbic7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydub3RhbnVtYmVyJ10gPSAnTm90IGEgTnVtYmVyJzsKCiMjIE8KJGxhbmdbJ29mJ10gPSAnT2YnOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnQ2FuY2VsbGVkJzsKJGxhbmdbJ29yZ2FuaXphdGlvbiddID0gJ09yZ2FuaXphdGlvbic7CiRsYW5nWydvdmVyd3JpdGUnXSA9ICdPdmVyd3JpdGUnOwokbGFuZ1snb3duZXInXSA9ICdPd25lcic7CgojIyBQCiRsYW5nWydwYWdlJ10gPSAnUGFnZSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdJdGVtcyBQZXIgUGFnZSc7CiRsYW5nWydwYXJhbV9hYmNsaXN0dGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5hYmNsaXN0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHRlbXBsYXRlIHRvIHVzZSBmb3IgcmVuZGVyaW5nIHRoZSBvdXRwdXQnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5lIHRoZSBwcmltYXJ5IGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBhcmU6Cjx1bD4KICA8bGk+Y2F0ZWdvcnlsaXN0IC0tIERpc3BsYXkgYSBsaXN0IG9mIGNhdGVnb3JpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUsIGFuZCB0aGVuIHRvIGRldGFpbCBtb2RlLjwvbGk+CiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBEaXNwbGF5IGNvbXBhbmllcyBpbiBhIHN1bW1hcnkgbW9kZS48L2xpPgogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+CiAgPGxpPmZlX2VkaXQgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuIDxlbSBzdHlsZT1cImNvbG9yOiByZWQ7XCI+KGRlcHJlY2F0ZWQpPC9lbT48L2xpPgogIDxsaT5mZV9lZGl0MiAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPgogIDxsaT5mZV9lZGl0X2FsYnVtIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgYWxidW0gaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LgogICA8cD5UaGlzIGFjdGlvbiBpcyBub3JtYWxseSB0cmlnZ2VyZWQgZnJvbSB0aGUgZmVfZWRpdDIgYWN0aW9uIG9yIHRoZSBmcm9udGVuZCBsaXN0IGFjdGlvbi4gICBJdCBhY2NlcHRzIHRoZSBjb21wYW55aWQsY2RfZmRpZCxhbmQgb3B0aW9uYWxseSBvdGhlciBwYXJhbWV0ZXJzIHRvIHBlcmZvcm0gbnVtZXJvdXMgYWpheCBhY3Rpb25zLiAgIFNlZSB0aGUgc2FtcGxlIGNvbnRlbnQgZm9yIHRoZSBmcm9udGVuZCBhbGJ1bSB0ZW1wbGF0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CiAgPC9saT4KICA8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPgogIDxsaT5zZWFyY2hzdGF0cyAtLSBEaXNwbGF5IGEgYmFzaWMgc3VtbWFyeSByZXBvcnQgb2YgcmVjZW50IHNlYXJjaGVzIGZvciBhIGNvbXBhbnkuICBUaGlzIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIGZyb250ZW5kIGVkaXRpbmcgb2YgY29tcGFuaWVzIGlzIGVuYWJsZWQgYW5kIHByb3Blcmx5IGNvbmZpZ3VyZWQsIGFuZCB3aGVuIHRoZSBjb2xsZWN0aW9uIG9mIHNlYXJjaCBzdGF0aXN0aWNzIGlzIGVuYWJsZWQuIE9ubHkgdGhlIG93bmVyIG9mIGEgY29tcGFueSBjYW4gdmlldyB0aGUgc2VhcmNoIHN0YXRpc3RpY3MgZm9yIGhpcyBjb21wYW5pZShzKQogIDxsaT5zZWFyY2ggIC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBmb3Igc3BlY2lmaWMgY29tcGFuaWVzLjwvbGk+CiAgPGxpPmJyb3dzZWhpZXIgLS0gRGlzcGxheSBhIGxpc3Qgb2YgaGllcmFyY2hpZXMuICBVc2VycyBjYW4gZHJpbGwgZG93biB0byBzdW1tYXJ5IG1vZGUgYW5kIHRoZW4gdG8gZGV0YWlsIG1vZGUuPC9saT4KICA8bGk+YWJjbGlzdCAtLSBEaXNwbGF5IGFuIGFscGhhYmV0aWMgZGlyZWN0b3J5IG9mIGNvbXBhbmllcy4gIFVzZXJzIGNhbiBuYXZpZ2F0ZSB0byBkaWZmZXJlbnQgZGlyZWN0b3JpZXMgYnkgdGhlIGZpcnN0IGluaXRpYWwgb2YgdGhlIGNvbXBhbnkgbmFtZSAob3Igb3RoZXIgY3JpdGVyaWEpLCBhbmQgcGFnaW5hdGUKPC91bD4nOwokbGFuZ1sncGFyYW1fYWN0aXZpdHljaGlsZHJlbiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIGFuZCBvbmx5IHdoZW4gdGhlIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQsIGNvbmZpZ3VyZWQsIGFuZCBwb3B1bGF0ZWQgd2l0aCBkYXRhLiAgVGhpcyBwYXJhbWV0ZXIgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgYWN0aXZpdHlpZCBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBjb21wYW5pZXMgYnkgdGhvc2Ugd2hvIGhhdmUgY2hlY2tpbnMgd2l0aCB0aGUgc3BlY2lmaWVkIChpbnRlZ2VyKSBhY3Rpdml0eSBpZCBhbmQgdGhlaXIgY2hpbGQgYWN0aXZpdGllcy4nOwokbGFuZ1sncGFyYW1fYWN0aXZpdHlpZCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIGFuZCBvbmx5IHdoZW4gdGhlIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQsIGNvbmZpZ3VyZWQsIGFuZCBwb3B1bGF0ZWQgd2l0aCBkYXRhLiAgVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBjb21wYW5pZXMgYnkgdGhvc2Ugd2hvIGhhdmUgY2hlY2tpbnMgd2l0aCB0aGUgc3BlY2lmaWVkIChpbnRlZ2VyKSBhY3Rpdml0eSBpZC4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnksIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucy4gVGhpcyBwYXJhbWV0ZXIgY2FuIGNvbnRhaW4gbWFueSBjb21tYSBzZXBhcmF0ZWQgY2F0ZWdvcmllcyB0byBmaWx0ZXIgYnkuICBFYWNoIHZhbHVlIGNhbiBlaXRoZXIgYmUgYSBudW1lcmljIGlkLCBhIGNvbXBsZXRlIGNhdGVnb3J5IHBhdGgsIGEgY2F0ZWdvcnkgbmFtZSwgb3IgYSB3aWxkY2FyZCBwYXR0ZXJuLjxici8+CmkuZTogY2F0ZWdvcnk9XCc1LFRvdXJpc20sKlJlbnRhbCosRGluaW5nfFBpenphXFwsKlNwb3J0c3xQYWludCpcJyB3b3VsZCBiZWhhdmUgYXMgZm9sbG93czoKPHVsPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIHRoZSBjYXRlZ29yeSB3aXRoIGlkIDUsIGFuZCBpdHMgY2hpbGRyZW4uPC9saT4KICAgIDxsaT5JbmNsdWRlIGFsbCBpdGVtcyBpbiB0aGUgY2F0ZWdvcnkgd2l0aCB0aGUgbmFtZSBcIlRvdXJpc21cIiwgYW5kIGl0cyBjaGlsZHJlbi48L2xpPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIHRoZSBjYXRlZ29yaWVzIG1hdGNoaW5nIHRoZSBwYXR0ZXJuICpSZW50YWwqIGFuZCB0aGVpciBjaGlsZHJlbi48L2xpPgogICAgPGxpPkluY2x1ZGUgYWxsIGl0ZW1zIGluIGEgY2F0ZWdvcnkgYmVnaW5uaW5nIHdpdGggRGluaW5nfFBpenphLCBhbmQgaXRzIGNoaWxkcmVuLjwvbGk+CiAgICA8bGk+SW5jbHVkZSBhbGwgaXRlbXMgaW4gYWxsIGNhdGVnb3JpZXMgdGhhdCBoYXZlIHRoZSBzdWJzdHJpbmcgU3BvcnRzfFBhaW50IGluIGl0cyBwYXRoLjwvbGk+CjwvdWw+CjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gQ2F0ZWdvcnkgbmFtZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiAgQWxzbywgZW50ZXJpbmcgYW4gaW52YWxpZCB2YWx1ZSBmb3Igb25lIGNhdGVnb3J5IHdpbGwgcmVzdWx0IGluIG5vIG1hdGNoZXMuICBpLmU6IGlmIHlvdSBzcGVjaWZ5IGNhdGVnb3J5PVwnRm9vLEJhclwnIGFuZCBuZWl0aGVyIHRoZSBmb28gb3IgYmFyIGNhdGVnb3JpZXMgZXhpc3QsIHRoZW4gdGhlIHF1ZXJ5IHdpbGwgZmluZCBubyBtYXRjaGluZyBjb21wYW5pZXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PVwncmVnaW9uX25vcnRoLHJlZ2lvbl9zb3V0aFwnIGNhdGVnb3J5Mj1cJ2NhcnMsdHJ1Y2tzXCd9IHdvdWxkIHJldHVybiBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IHdlcmUgaW4gdGhlIGVpdGhlciBvZiB0aGUgcmVnaW9uIG5vcnRoIG9yIHJlZ2lvbiBzb3V0aCBjYXRlZ29yaWVzIEFORCBBTFNPIGluIGVpdGhlciBvZiB0aGUgY2FycyBvciB0cnVja3MgY2F0ZWdvcmllcyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTMnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnkyPC9lbT4gcGFyYW1ldGVyIGlzIGFsc28gc3VwcGxpZWQgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgeWV0IGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuIFNlZSB0aGUgaGVscCBmb3IgdGhlIGNhdGVnb3J5MiBwYXJhbWV0ZXIgZm9yIG1vcmUgaW5mb3JtYXRpb24nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlpZCddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgb24gYSBzaW5nbGUgY2F0ZWdvcnkgYnkgc3BlY2lmeWluZyBpdHMgaW50ZWdlciBpZC4gIFRoaXMgcGFyYW1ldGVyIGNhbm5vdCBiZSB1c2VkIHdpdGggdGhlIGNhdGVnb3J5LGNhdGVnb3J5Miwgb3Igb3RoZXIgY2F0ZWdvcnkgZmlsdGVyaW5nIHBhcmFtZXRlcnMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnU3BlY2lmeSBhIHRlbXBsYXRlIChieSBuYW1lKSB0byB1c2Ugd2hlbiBkaXNwbGF5aW5nIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2NkX2Rlc3RwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBmZV9lZGl0MiBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byByZWRpcmVjdCB0byBhZnRlciB0aGUgZm9ybSBpcyBzdWNjZXNzZnVsbHkgc3VibWl0dGVkLiAgSWYgbm90IHNwZWNpZmllZCB0aGUgb3JpZ2luYWwgcmVmZXJlciBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9jb21wYW55aWQnXSA9ICdSZXF1aXJlZCBmb3IgdGhlIGZyb250ZW5kIGVkaXRpbmcgYW5kIGRldGFpbCBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB3aGljaCBjb21wYW55IHJlY29yZCB0byBlZGl0IG9yIHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2RheXMnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2hzdGF0czxlbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGRheXMgdG8gdXNlIHdoZW4gY29sbGVjdGluZyBzZWFyY2ggc3RhdGlzdGljcyBmb3IgYW4gaW5kaXZpZHVhbCBjb21wYW55Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZGV0YWlsIHZpZXcuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kYWxidW10ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGFuIGFsYnVtIG9mIGltYWdlcyBhc3NvY2lhdGVkIHdpdGggYSBjb21wYW55Lic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgZnJvbnQgZW5kIGNvbXBhbnkgZWRpdCBmb3JtLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGxpc3R0ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmZyb250ZW5kbGlzdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBmcm9udGVuZCBsaXN0IHRlbXBsYXRlIHRvIHVzZSBmb3IgcmVuZGVyaW5nIHRoZSBvdXRwdXQnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PGVtPiwgPGVtPnNlYXJjaDwvZW0+LCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIGFuZCA8ZW0+YnJvd3NlaGllcjwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgdGhlIG91dHB1dCBpbiB2YXJpb3VzIHdheXM6PGJyLz4KPHVsPgogIDxsaT5JbiB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpPC9lbT4gYWN0aW9uLCB0aGUgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZ3Mgb3IgaW50ZWdlcnMuICBJbnRlZ2VyIHZhbHVlcywgYW5kIFdpbGRjYXJkIHN1YnN0aXR1dGlvbiBpcyBhY2NlcHRlZCBpZGVudGljYWxseSB0byB0aGUgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgcGFyYW1ldGVyLjwvbGk+CiAgPGxpPkluIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGUgdmFsdWUgZm9yIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gbGltaXQgdGhlIGRpc3BsYXkgb2YgY2F0ZWdvcmllcyBieSBjb21wYW5pZXMgaW4gdGhlIG5hbWVkIGhpZXJhcmNoaWVzLiAgSW50ZWdlciB2YWx1ZXMsIGFuZCB3aWxkY2FyZCBzdWJzdGl0dXRpb24gaXMgYWNjZXB0ZWQgaWRlbnRpY2FsbHkgdG8gdGhlICZxdW90O2NhdGVnb3J5JnF1b3Q7IHBhcmFtZXRlci48L2xpPgogIDxsaT5JbiB0aGUgYnJvd3NlaGllciBhY3Rpb24sIGEgc2luZ2xlIHN0cmluZyBvciBpbnRlZ2VyIHZhbHVlIGlzIGFjY2VwdGVkIHRvIHN1cHBseSB0aGUgc3RhcnRpbmcgcG9pbnQgYXQgd2hpY2ggdG8gZGlzcGxheSB0aGUgaGllcmFyY2h5LiAgT25seSB0aGUgZGVzY2VuZGVudCBoaWVyYXJjaGllcyBvZiB0aGUgbmFtZWQgaGllcmFyY2h5IHdpbGwgYmUgZGlzcGxheWVkLiAgSWYgYSBzdHJpbmcgaXMgc3BlY2lmaWVkLCB0aGUgZmlyc3QgaGllcmFyY2h5IHdpdGggYSBtYXRjaGluZyBuYW1lIGlzIHVzZWQuCiAgPGxpPkluIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIG92ZXJyaWRlIGFueSBoaWVyYXJjaHkgY2hvc2VuIGluIHRoZSBzZWFyY2ggZm9ybS4gIEFzIGFib3ZlLCBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXJzIGFuZCBzdHJpbmdzICh3aXRoIHdpbGRjYXJkIHN1YnN0aXR1dGlvbikgaXMgYWNjZXB0ZWQuPC9saT4KPC91bD4nOwokbGFuZ1sncGFyYW1faGllcmxpc3R0ZW1wbGF0ZSddID0gJ1NwZWNpZnkgYSB0ZW1wbGF0ZSAoYnkgbmFtZSkgdG8gdXNlIHdoZW4gZGlzcGxheWluZyB0aGUgaGllcmFyY2h5IGxpc3Qgdmlldy4nOwokbGFuZ1sncGFyYW1faWRsaXN0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgY29tcGFueSBpZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZC4gIE5vdGUsIG9ubHkgcHVibGlzaGVkIGNvbXBhbmllcyB3aWxsIGJlIGRpc3BsYXllZCB1bmxlc3Mgc3BlY2lmaWVkIGRpZmZlcmVudGx5IGJ5IGFub3RoZXIgcGFyYW1ldGVyJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5LCBhbmQgPGVtPnNlYXJjaDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHdldGhlciB0aGUgcmVzdWx0aW5nIGRhdGEgc2hvdWxkIHJlcGxhY2UgdGhlIGRlZmF1bHQgY29udGVudCBibG9jaywgb3Igc2hvdWxkIHJlcGxhY2UgdGhlIG9yaWdpbmFsIHRhZyAoaW5saW5lKS4nOwokbGFuZ1sncGFyYW1fbGF0J10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxhdGl0dWRlIGNvb3JkaW5hdGUgZm9yIGEgcmFkaXVzIHNlYXJjaCwgbXVzdCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGxvbmcgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9sb25nJ10gPSAnU3BlY2lmeSB0aGUgY2VudGVyIGxvbmdpdHVkZSBjb29yZGluYXRlIGZvciBhIHJhZGl1cyBzZWFyY2gsIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIHJhZGl1cyBwYXJhbWV0ZXJzLic7CiRsYW5nWydwYXJhbV9tYXN0ZXJzZWFyY2gnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O3NlYXJjaCZxdW90OyBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgdGhpcyBhY3Rpb24gaXMgdXNlZCBhcyBhIG1hc3RlciBzZWFyY2guICBXaGVuIHRoaXMgaXMgZW5hYmxlZCwgc3VibWl0dGVkIGRhdGEgd2lsbCBiZSBzYXZlZCB0byB0aGUgc2Vzc2lvbiBmb3IgbGF0ZXIgdXNlIGluIHRoZSBzZWFyY2ggYWN0aW9uIDxlbT4odG8gYXV0byBmaWxsIGVsZW1lbnRzIGluIHRoZSBmb3JtIGFzIGlzIGlsbHVzdHJhdGVkIGluIHRoZSBkZWZhdWx0IHNlYXJjaGZvcm0gdGVtcGxhdGUpPGVtPi4gIEFzIHdlbGwsIG9uIHN1Ym1pdCBhbnkgc2F2ZWQgc3Vic2VhcmNoIGRhdGEgd2lsbCBiZSByZXNldCc7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24uIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7LiAgQWRkaXRpb25hbGx5LCByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgcHJlZml4aW5nIHRoZSB2YWx1ZSB3aXRoIDo6LiAgaS5lOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90Oyc7CiRsYW5nWydwYXJhbV9ub2NoaWxkcmVuJ10gPSAnQXBwbGljYWJsZSB0byB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpPC9lbT4sIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBwcm92aWRlcyBmaWx0ZXJpbmcgb2Ygb3V0cHV0IGFzIGZvbGxvd3M6PC9icj4KPHVsPgogIDxsaT5JbiB0aGUgZGVmYXVsdCA8ZW0+KHN1bW1hcnkpIGFjdGlvbiwgY29tcGFuaWVzIGluIGNoaWxkIGNhdGVnb3JpZXMgb3IgaGllcmFyY2hpZXMgKHdoZW4gdXNpbmcgYW55IG9mIHRoZSBjYXRlZ29yeWlkLGNhdGVnb3J5LGNhdGVnb3J5MixjYXRlZ29yeTMsIG9yIGhpZXIpIHBhcmFtZXRlcnMgd2lsbCBub3QgYmUgaW5jbHVkZWQuPC9saT4KICA8bGk+SW4gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIGNoaWxkIGNhdGVnb3JpZXMgKHdoZW4gdXNpbmcgdGhlIGNhdGVnb3J5IHBhcmFtZXRlcikgd2lsbCBub3QgYmUgcmV0dXJuZWQuCiAgICAgIFdoZW4gdXNpbmcgdGhlIGhpZXIgcGFyYW1ldGVyLCBvbmx5IHRoZSBjYXRlZ29yaWVzIHVzZWQgYnkgY29tcGFuaWVzIGluIHRoZSBuYW1lZCBoaWVyYXJjaGllcyB3aWxsIGJlIHJldHVybmVkLCBub3QgdGhlIGNhdGVnb3JpZXMgdXNlZCBieSBjb21wYW5pZXMgaW4gZGVzY2VuZGFudHMgb2YgdGhlIG5hbWVkIGhpZXJhcmNoaWVzLgogIDwvbGk+CjwvdWw+JzsKJGxhbmdbJ3BhcmFtX25vcHJldHR5J10gPSAnQXBwbGljYWJsZSB0byBhbGwgdmlld3MgdGhpcyBwYXJhbWV0ZXIgd2lsbCB0dXJuIG9mZiBwcmV0dHkgdXJsIGdlbmVyYXRpb24nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnV2hlbiB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBhY3Rpb24sIG9yIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyB3aWxsIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIG51bWJlci4nOwokbGFuZ1sncGFyYW1fcGhyYXNlJ10gPSAnVGhpcyBwYXJhbWV0ZXIsIGFwcGxpY2FibGUgdG8gYm90aCB0aGUgJnF1b3Q7c2VhcmNoJnF1b3Q7IGFuZCBkZWZhdWx0ICZxdW90O3N1bW1hcnkmcXVvdDsgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhZHZhbmNlZCBib29sZWFuIGFuZC9vciBmdWxsIHRleHQgc2VhcmNoZXMuICBpLmUuOjxici8+Cjx1bD4KICA8bGk+d29yZDEgd29yZDIKICAgIDxwPkZpbmQgYWxsIGNvbXBhbmllcyB3aGVyZSB3b3JkMSBPUiB3b3JkMiBhcmUgbWVudGlvbmVkPC9wPgogIDwvbGk+CiAgPGxpPit3b3JkMSB3b3JkMgogICAgPHA+RmluZCBhbGwgY29tcGFuaWVzIHdoZXJlIHdvcmQxIGlzIG1lbnRpb25lZCBhbmQgcG9zc2libHkgd29yZDI8L3A+CiAgPC9pPgogIDxsaT4rd29yZDEgLXdvcmQyCiAgICA8cD5GaW5kIGFsbCBjb21wYW5pZXMgd2hlcmUgd29yZDEgaXMgbWVudGlvbmVkIGFuZCB3b3JkMiBpcyBleHBsaWNpdGx5IE5PVCBtZW50aW9uZWQ8L3A+CiAgPC9pPgogIDxsaT4rd29yZDEgK3dvcmQyCiAgICA8cD5GaW5kIGFsbCBjb21wYW5pZXMgd2hlcmUgYm90aCB3b3JkMSBhbmQgd29yZDIgYXJlIGV4cGxpY2l0bHkgbWVudGlvbmVkLjwvcD4KICA8L2k+CiAgPGxpPlwid29yZDEgd29yZDJcIgogICAgPHA+RmluZCBhbGwgY29tcGFuaWVzIHdoZXJlIHRoZSBwaHJhc2UgJnF1b3Q7d29yZDEgd29yZDImcXVvdDsgaXMgbWVudGlvbmVkPC9wPgogIDwvbGk+CjwvdWw+CiAgICA8cD5UaGUgcGhyYXNlIHNlYXJjaCBpbnRlcmFjdHMgd2l0aCBjdXN0b20gZmllbGQgdmFsdWVzLCBtYWtpbmcgaXQgcG9zc2libGUgdG8gc2VhcmNoIHRocm91Z2ggdGV4dCBmaWVsZHMsIHRleHQgYXJlYSBmaWVsZHMsIGFuZCBkcm9wZG93biBmaWVsZHMgZm9yIGNlcnRhaW4gd29yZHMgb3IgcGhyYXNlcy48L3A+CiAgICA8cD5UaGUgcGhyYXNlIHNlYXJjaCBpcyBzdWJqZWN0IHRvIHRoZSBjb250cmFpbnRzIG9mIHRoZSBNWVNRTCBmdWxsIHRleHQgZW5naW5lLCBpbmNsdWRpbmcgd29yZCBsZW5ndGgsIGxhbmd1YWdlLCBhbmQgc3RvcCB3b3JkcyAod29yZHMgdGhhdCBhcmUgYXV0b21hdGljYWxseSBleGNsdWRlZCBmcm9tIHRoZSBzZWFyY2gpLiAgRm9yIGZ1cnRoZXIgcmVmZXJlbmNlIHBsZWFzZSByZWFkIHRoZSBkb2N1bWVudGF0aW9uIHJlZ2FyZGluZyBNeVNRTCBmdWxsIHRleHQgaW5kZXhlcy48L3A+JzsKJGxhbmdbJ3BhcmFtX3Bvc3RhbGNoYXJzJ10gPSAnV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgb3B0aW9uIGFsbG93cyBsaW1pdGluZyB0aGUgZWZmZWN0aXZlIG51bWJlciBvZiBjaGFyYWN0ZXJzIG9uZiB0aGUgcG9zdGFsIGNvZGUnOwokbGFuZ1sncGFyYW1fcmFkaXVzJ10gPSAnU3BlY2lmeSB0aGUgcmFkaXVzIChpbiBtaWxlcykgZm9yIGEgcmFkaXVzIHNlYXJjaC4gIG11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBsYXQgYW5kIGxvbmcgcGFyYW1ldGVycy4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIHdoYXQgcGFnZSBzaG91bGQgYmUgdXNlZCBmb3IgZGlzcGxheWluZyBtYXRjaGluZyByZXN1bHRzLic7CiRsYW5nWydwYXJhbV9zZWFyY2hhZGRyZXNzJ10gPSAnV2hlbiBkb2luZyBhIHBvc3RhbCBjb2RlIHNlYXJjaCwgdXNpbmcgdGhlIHNlYXJjaCBhY3Rpb24sIGlmIHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQsIHRoZSBhZGRyZXNzIGZpZWxkIHdpbGwgYWxzbyBiZSBzZWFyY2hlZCBmb3IgdGhlIG1hdGNoaW5nIHN0cmluZyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaHN0YXRzdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT4mcXVvdDtzZWFyY2hzdGF0cyZxdW90OzwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggc3RhdGlzdGljcyByZXBvcnQgdGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGFsbCBjYXRlZ29yaWVzIGFyZSBvdXRwdXQgKHRoZSBoaWVyLCBhbmQgY2F0ZWdvcnkgb3B0aW9ucyBhcmUgaWdub3JlZCksIGV2ZW4gY2F0ZWdvcmllcyB3aXRoIG5vIG1hdGNoaW5nIGNvbXBhbmllcyc7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgo8bGk+aWQgLS0gVGhlIGludGVybmFsIGNvbXBhbnkgaWQ8L2xpPgogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPjwvbGk+CiAgPGxpPnBob25lPC9saT4KICA8bGk+ZmF4PC9saT4KICA8bGk+ZW1haWw8L2xpPgogIDxsaT53ZWJzaXRlIC0tIFRoZSB3ZWJzaXRlIHVybDwvbGk+CiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPnN0YXR1czwvbGk+CiAgPGxpPnJhbmRvbSAtLSBTb3J0IHRoZSBpdGVtcyByYW5kb21seS48L2xpPgogIDxsaT5mOmZpZWxkIG5hbWUgLS0gU29ydCBieSBwdWJsaWMgY3VzdG9tIGZpZWxkcy4gVGhlIG91dHB1dCB3aWxsIGJlIHNvcnRlZCBieSB0aGUgbmFtZWQgY3VzdG9tIGZpZWxkLjxici8+CiAgPGxpPm1vc3RjaGVja2lucyAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGNoZWNraW5zLjwvbGk+CiAgPGxpPm1vc3RmYXZvcml0ZSAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGZhdm9yaXRlcy48L2xpPgogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFlvdSBtYXkgbmVlZCB0byB1c2UgcXVvdGVzIGlmIHRoZSBmaWVsZCBuYW1lIGhhcyBzcGFjZXMuPGJyLz4KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBUaGUgZmllbGQgc3BlY2lmaWVkIG11c3QgYmUgbWFya2VkIGFzIHB1YmxpYy4KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz48L2xpPgo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD4nOwokbGFuZ1sncGFyYW1fc3Vic2VhcmNoJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSAmcXV1b3Q7c2VhcmNoJnF1b3Q7IGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhhdCB0aGlzIGFjdGlvbiB3aWxsIGJlIHVzZWQgYXMgYSBzdWIgc2VhcmNoIHRvIGFsbG93ICZxdW90O3JlZmluaW5nJnF1b3Q7IGFuIGFscmVhZHkgc3VibWl0dGVkIHNlYXJjaC4gIFdoZW4gZW5hYmxlZCwgZm9ybSBkYXRhIGZyb20gdGhlIHN1YnNlYXJjaCBpcyBtZXJnZWQgd2l0aCBmb3JtIGRhdGEgZnJvbSBhIG1hc3RlciBzZWFyY2ggYmVmb3JlIGRpc3BsYXksIGFuZCBiZWZvcmUgZm9ybSBzdWJtaXNzaW9uLiAgT24gc3VibWlzc2lvbiwgdGhlIG1lcmdlZCBkYXRhIGlzIHNhdmVkIHRvIHRoZSBzZXNzaW9uIHNlcGFyYXRlbHkgZnJvbSB0aGUgbWFzdGVyIHNlYXJjaCBkYXRhLiAgTm90ZSB0aGUgc3Vic2VhcmNoL3JlZmluZWQgc2VhcmNoIHN0dWZmIGRvZXMgbm90IGZ1cnRoZXIgc29ydCBhbmQgZmlsdGVyIHRoZSByZXN1bHRzIGZyb20gdGhlIG1hc3RlciBzZWFyY2gsIGluc3RlYWQgdGhlIHBhcmFtZXRlcnMgZnJvbSB0aGUgdHdvIHNlYXJjaGVzIGFyZSBtZXJnZWQgdG8gYmVjb21lIGEgc2luZ2xlIHNlYXJjaC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSBkZXRhaWwsIGJyb3dzZWhpZXIsIGFuZCBjYXRlZ29yeWxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIHBhZ2UgaWQgb3IgYWxpYXMgb2YgdGhlIHBhZ2UgdG8gdXNlIGZvciBsaW5rcyBnZW5lcmF0aW5nIHN1bW1hcnkgdmlld3MgdGhhdCBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlIGRldGFpbCB2aWV3LiAgaS5lOiBjYXRlZ29yeSBsaW5rcyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdTcGVjaWZ5IGEgdGVtcGxhdGUgKGJ5IG5hbWUpIHRvIHVzZSB3aGVuIGRpc3BsYXlpbmcgdGhlIHN1bW1hcnkgdmlldy4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFyZW50JzsKJGxhbmdbJ3BocmFzZSddID0gJ1BocmFzZSc7CiRsYW5nWydwb3N0YWxfY29kZSddID0gJ1Bvc3RhbC9aaXAgY29kZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgQ29tcGFueSBEaXJlY3RvcnkgbW9kdWxlIHN1Y2Nlc3NmdWxseSB1bmluc3RhbGxlZC4gIEFsbCBhc3NvY2lhdGVkIGNvbXBhbnkgZGF0YSBoYXMgYmVlbiBlcmFzZWQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNlcyc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5pbnN0YWxsIHRoaXMgbW9kdWxlPyBVbmluc3RhbGxpbmcgdGhpcyBtb2R1bGUgd2lsbCBwZXJtYW5lbnRseSBlcmFzZSBhbGwgYXNzb2NpYXRlZCBjb21wYW55IGRhdGEuJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnJmx0Oyc7CiRsYW5nWydwcm9tcHRfYWRkY29tcGFueSddID0gJ0FkZGluZyBhIG5ldyBjb21wYW55JzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdBZGQvRWRpdCBGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ3Byb21wdF9hZG1pbl9lZGl0X3NldHRpbmdzJ10gPSAnQWRtaW4gRWRpdGluZyBTZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdBbGxvdyBkdXBsaWNhdGUgY29tcGFueSBuYW1lcz8nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3JpZXNfaW1wb3J0ZWQnXSA9ICdDYXRlZ29yaWVzIEltcG9ydGVkJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0NhdGVnb3JpZXMgQ29sdW1uJzsKJGxhbmdbJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzPyc7CiRsYW5nWydwcm9tcHRfY29sbGVjdHN0YXRzJ10gPSAnQ29sbGVjdCBTZWFyY2ggU3RhdGlzdGljcyc7CiRsYW5nWydwcm9tcHRfY29tcGFuaWVzX2ltcG9ydGVkJ10gPSAnQ29tcGFuaWVzIEltcG9ydGVkJzsKJGxhbmdbJ3Byb21wdF9jb252ZXJ0X2FkZHJlc3MnXSA9ICdDb252ZXJ0IEFkZHJlc3NlcyB0byBjb29yZGluYXRlcyAoaWYgdGhlcmUgYXJlIG5vIGNvb3JkaW5hdGVzKSc7CiRsYW5nWydwcm9tcHRfZGVsaW1ldGVyJ10gPSAnRmllbGQgRGVsaW1ldGVyJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnVGhlIGRlZmF1bHQgcGFnZSB0byB1c2UgZm9yIGRldGFpbCB2aWV3cy4gIElmIHNldCB0byAmcXVvdDtOb25lJnF1b3Q7IHRoZSBjYWxsaW5nIHBhZ2Ugd2lsbCBiZSB1c2VkLic7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duL011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnQ2hlY2sgZm9yIGR1cGxpY2F0ZSBjb21wYW55IG5hbWVzJzsKJGxhbmdbJ3Byb21wdF9lZGl0Y29tcGFueSddID0gJ0VkaXRpbmcgQ29tcGFueSc7CiRsYW5nWydwcm9tcHRfZWRpdG9yMiddID0gJ1VzZSBuZXcgRnJvbnRlbmQgRWRpdG9yJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdFbWFpbCBpcyBpbiBIVE1MIGZvcm1hdCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X2VuY2xvc3VyZSddID0gJ0ZpZWxkIEVuY2xvc3VyZSc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRXJyb3JzJzsKJGxhbmdbJ3Byb21wdF9leHRlbnNpb25zJ10gPSAnVmFsaWQgRmlsZSBFeHRlbnNpb25zJzsKJGxhbmdbJ3Byb21wdF9mZXVfY2hhbmdlX3N0YXR1cyddID0gJ0NhbiBmcm9udGVuZCB1c2VycyBjaGFuZ2UgYSBjb21wYW55IHN0YXR1cz8nOwokbGFuZ1sncHJvbXB0X2ZldV9jcmVhdGUnXSA9ICdDYW4gRnJvbnRFbmRVc2VycyBDcmVhdGUgbmV3IFJlY29yZHM/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZGVsZXRlJ10gPSAnQWxsb3cgRnJvbnRlbmQgdXNlcnMgdG8gZGVsZXRlIHJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ZldV9kaXNwbGF5X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBFZGl0aW5nIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ0FkbWluaXN0cmF0aXZlIGdyb3VwIHRvIHJlY2VpdmUgbm90aWZpY2F0aW9uIGVtYWlscz8nOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uYWRkJ10gPSAnU2VuZCBhbiBlbWFpbCB3aGVuIGEgZnJvbnRlbmQgdXNlciBhZGRzIGEgbmV3IGNvbXBhbnkgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmVkaXQnXSA9ICdTZW5kIGFuIGVtYWlsIHdoZW4gYSBmcm9udGVuZCB1c2VyIG1vZGlmaWVzIGFuIGV4aXN0aW5nIGNvbXBhbnkgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmdyb3VwJ10gPSAnQWRtaW4gZ3JvdXAgdG8gc2VuZCBlbWFpbHMgdG8nOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdBbGxvdyBGcm9udGVuZFVzZXJzIHRvIGltcG9ydCByZWNvcmRzIGZyb20gQ1NWPyc7CiRsYW5nWydwcm9tcHRfZmV1X25ld19zdGF0dXMnXSA9ICdEZWZhdWx0IHN0YXR1cyBmb3IgbmV3IHJlY29yZHMgY3JlYXRlZCBvbiB0aGUgZnJvbnRlbmQnOwokbGFuZ1sncHJvbXB0X2ZldV9udW1yZWNvcmRzJ10gPSAnTWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggYSBGRVUgYWNjb3VudCc7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnRmllbGQgRGVmaW5pdGlvbnMgSW1wb3J0ZWQnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ3Byb21wdF9oaWVyYXJjaGllc19pbXBvcnRlZCddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbnMgQ3JlYXRlZCc7CiRsYW5nWydwcm9tcHRfaWNvbiddID0gJ0ljb24nOwokbGFuZ1sncHJvbXB0X2lnbm9yZV9hZGRyZXNzJ10gPSAnSWdub3JlIGFkZHJlc3MgZmllbGQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeWRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyBjYXRlZ29yaWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5dmFscyddID0gJ1BvcHVwbGF0ZSBjYXRlZ29yeSB2YWx1ZXMgb24gaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY3N2ZmlsZSddID0gJ1VwbG9hZCBDU1YgRmlsZSc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkZGVmcyddID0gJ0NyZWF0ZSBtaXNzaW5nICZxdW90O2N1c3RvbSBmaWVsZCZxdW90OyBkZWZpbml0aW9ucyBvbiBpbXBvcnQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZHZhbHMnXSA9ICdQb3B1bGF0ZSAmcXVvdDtjdXN0b20gZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeWRlZnMnXSA9ICdJbXBvcnQgSGllcmFyY2h5IFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0IEhpZXJhcmNoeSBWYWx1ZXMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9sb29rdXBsYXRsb25nJ10gPSAnTG9va3VwIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgdmFsdWVzIGlmIG1pc3NpbmcnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9zdGFydHJlY29yZCddID0gJ1N0YXJ0IGF0IHJlY29yZCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnVGhpcyB0ZW1wbGF0ZSBkZXNjcmliZXMgYSBmb3JtIHRoYXQgaXMgdXNlZCB0byBhbGxvdyBhdXRob3JpemVkIGZyb250ZW5kIHVzZXJzIHRvIGltcG9ydCBkYXRhIGZyb20gYSBwcm9wZXJseSBmb3JtYXR0ZWQgQ1NWIGZpbGUnOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdLTUwgRmlsZSB0byBJbXBvcnQnOwokbGFuZ1sncHJvbXB0X251bWVycm9ycyddID0gJ051bWJlciBvZiBlcnJvcnMgZm91bmQnOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnTnVtYmVyIG9mIEltcG9ydGVkIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ1RoZSBudW1iZXIgb2YgcmVjb3JkcyB0byB2aWV3IHBlciBwYWdlIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfcmVxdWlyZV9hZGRyZXNzJ10gPSAnUmVxdWlyZSBhbiBhZGRyZXNzIGZpZWxkJzsKJGxhbmdbJ3Byb21wdF9zY2FuJ10gPSAnU2Nhbic7CiRsYW5nWydwcm9tcHRfc3RhdHVzJ10gPSAnU3RhdHVzIGZvciBpbXBvcnRlZCByZWNvcmQnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRGVmYXVsdCBzb3J0aW5nIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1RoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gc3VtbWFyeSBtb2RlIDxlbT4oZG9lcyBub3QgYXBwbHkgd2hlbiBzb3J0aW5nIGlzIFwncmFuZG9tXCc8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfdXNlX29sZHNlYXJjaCddID0gJ1VzZSBvbGQgc2VhcmNoIGFjdGlvbiAoZG9lcyBub3Qgc3VwcG9ydCBxdWVyeWluZyBvbiBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGRvZXMgbm90IHJldHVybiBjYXRlZ29yeSBpbmZvcm1hdGlvbiBpbiByZXN1bHRzJzsKJGxhbmdbJ3B1YmxpYyddID0gJ1B1YmxpYyc7CiRsYW5nWydwdWJsaXNoJ10gPSAnUHVibGlzaCc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaXNoZWQnOwoKIyMgUQokbGFuZ1sncXVpY2tmaW5kJ10gPSAnUXVpY2sgZmluZCc7CgojIyBSCiRsYW5nWydyYWRpdXMnXSA9ICdSYWRpdXMnOwokbGFuZ1sncmFuZG9tJ10gPSAnUmFuZG9tJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyJzsKJGxhbmdbJ3Jlb3JkZXJfbW9kZSddID0gJ1Jlb3JkZXIgbW9kZSBoYXMgYmVlbiBhY3RpdmF0ZWQuICBEcmFnIHRoZSBpdGVtcyBpbnRvIHRoZWlyIGRlc2lyZWQgb3JkZXIuICBUbyBhYm9ydCB0aGUgb3BlcmF0aW9uIGNsaWNrICZxdW90O2NhbmNlbCZxdW90Oy4gIFRvIHNhdmUgdGhlIGNoYW5nZXMgY2xpY2sgJnF1b3Q7c3VibWl0JnF1b3Q7JzsKJGxhbmdbJ3Jlc2V0J10gPSAnUmVzZXQnOwokbGFuZ1sncmVzZXRhbGwnXSA9ICdSZXNldCBBbGwnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZXNldCB0byBEZWZhdWx0cyc7CiRsYW5nWydyZXNldF90b19mYWN0b3J5J10gPSAnUmVzZXQgdG8gRmFjdG9yeSBEZWZhdWx0cyc7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ1RoaXMgb3BlcmF0aW9uIHdpbGwgcmVzdG9yZSB0aGUgdGVtcGxhdGUgY29udGVudHMgdG8gdGhlaXIgc3lzdGVtIGRlZmF1bHRzLiAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZGU/JzsKJGxhbmdbJ3JldHVybiddID0gJ1JldHVybic7CgojIyBTCiRsYW5nWydzZWFyY2gnXSA9ICdTZWFyY2gnOwokbGFuZ1snc2VhcmNoZXMnXSA9ICdTZWFyY2hlcyc7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVzJ10gPSAnT2xkIFNlYXJjaCBGb3JtIFRlbXBsYXRlcyc7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGFuIE9sZCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2hfYWRkcmVzcyddID0gJ0FkZHJlc3MgRXhwcmVzc2lvbic7CiRsYW5nWydzZWFyY2hfY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snc2VhcmNoX2RhdGUnXSA9ICdEYXRlJzsKJGxhbmdbJ3NlYXJjaF9oaWVyJ10gPSAnSGllcmFyY2h5JzsKJGxhbmdbJ3NlYXJjaF9pcCddID0gJ0lQIEFkZHJlc3MnOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdOYW1lIEV4cHJlc3Npb24nOwokbGFuZ1snc2VhcmNoX3BocmFzZSddID0gJ1BocmFzZSc7CiRsYW5nWydzZWFyY2hfcG9zdGFsJ10gPSAnUG9zdGFsJzsKJGxhbmdbJ3NlbGVjdG9uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1NlbGVjdCBBbGwnOwokbGFuZ1snc29ydGJ5J10gPSAnU29ydCBCeSc7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXRzc3VtbWFyeXRlbXBsYXRlJ10gPSAnU3RhdGlzdGljcyBTdW1tYXJ5IFRlbXBsYXRlcyc7CiRsYW5nWydzdGF0c3N1bW1hcnlfYWRkZWRpdCddID0gJ0FkZC9FZGl0IGEgU3RhdGlzdGljcyBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1hcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdTdW1tYXJ5IFRlbXBsYXRlIFVwZGF0ZWQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZXN0b3JlIHRvIGRlZmF1bHRzJzsKCiMjIFQKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVwaG9uZSc7CiRsYW5nWyd0ZWxlcGhvbmV0ZXh0J10gPSAnVGVsZXBob25lJzsKJGxhbmdbJ3RodW1ibmFpbCddID0gJ1RodW1ibmFpbCc7CiRsYW5nWyd0aXRsZV9hYmNsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBBQkMgRGlyZWN0b3J5IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgQ2F0ZWdvcnkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUHJvdG90eXBlIERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGFsYnVtX2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBGcm9udGVuZCBFZGl0IEFsYnVtIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgRnJvbnRlbmQgRWRpdCBDb21wYW55IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kbGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgRnJvbnRlbmQgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBHYWxsZXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBIaWVyYXJjaHkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnQ1NWIEltcG9ydCBSZXBvcnQnOwokbGFuZ1sndGl0bGVfbmV3c2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBTZWFyY2ggVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgKG9sZCkgU2VhcmNoIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2V0dGluZ3NfbWVudSddID0gJ0NvbXBhbnlEaXJlY3RvcnkgU2V0dGluZ3MnOwokbGFuZ1sndGl0bGVfc3RhdHNzdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1Byb3RvdHlwZSBTdGF0aXN0aWNzIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdQcm90b3R5cGUgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd0eXBldGV4dCddID0gJ1R5cGUnOwoKIyMgVQokbGFuZ1sndXAnXSA9ICdVcCc7CiRsYW5nWyd1cGRhdGVoaWVyJ10gPSAnVXBkYXRlIEhpZXJhcmNoeSBQb3NpdGlvbnMnOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ3VybCddID0gJ1VSTCBzbHVnJzsKJGxhbmdbJ3VybHMnXSA9ICdVUkxTJzsKCgojIyBWCiRsYW5nWyd2aWV3X3dlYnNpdGUnXSA9ICdHbyB0byB0aGUgd2Vic2l0ZSc7CgojIyBXCiRsYW5nWyd3YXJuX2ltcG9ydF9kdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdXYXJuaW5nOiBEdXBsaWNhdGUgY29tcGFueSBuYW1lcyBhcmUgbm90IHBlcm1pdHRlZCwgYW5kIGFueSBhdHRlbXB0IHRvIGltcG9ydCBhIGNvbXBhbnkgdGhhdCBhbHJlYWR5IGV4aXN0cyByZXN1bHQgaW4gYW4gZXJyb3InOwokbGFuZ1snd2Vic2l0ZSddID0gJ1dlYnNpdGUnOwokbGFuZ1snd2Vic2l0ZXRleHQnXSA9ICdXZWJzaXRlJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdXaXRoIFNlbGVjdGVkJzsKCiMjIFkKJGxhbmdbJ3llcyddID0gJ1llcyc7Cj8+Cg==]]></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[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2JzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZGNvbXBhbnknXSA9ICdVbnRlcm5laG1lbiBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRlZGl0X2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWVlaW50cmFnIGhpbnp1ZsO8Z2VuIG9kZXIgYmVhcmJlaXRlbic7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0ZlbGRkZWZpbml0aW9uIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdIaWVyYXJjaGllIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdMaW5rIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXNzZSc7CiRsYW5nWydhZGRfY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgaGluenVmw7xnZW4nOwokbGFuZ1snYWRkX2VkaXRfY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnTnVyIGbDvHIgZGVuIEFkbWluaXN0cmF0b3Igc2ljaHRiYXInOwokbGFuZ1snYWxidW0nXSA9ICdBbGJ1bSc7CiRsYW5nWydhbnknXSA9ICdpcmdlbmR3YXMnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dvbGxlbiBTaWUgZGllcyB3aXJrbGljaCBsw7ZzY2hlbj8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXVmc3RlaWdlbmQnOwokbGFuZ1snYmFkbmFtZWdpdmVuJ10gPSAnRGVyIGFuZ2VnZWJlbmUgTmFtZSBpc3QgdW5nw7xsdGlnIChzb2xsdGUgZ3J1bmRzw6R0emxpY2ggVVJMLWZyZXVuZGxpY2ggc2VpbiknOwokbGFuZ1snY2FuY2VsJ10gPSAnQWJicmVjaGVuJzsKJGxhbmdbJ2NhbnVzZXJlZGl0J10gPSAnRMO8cmZlbiBXZWJzZWl0ZW5iZXN1Y2hlciBkaWVzZXMgRmVsZCBiZWFyYmVpdGVuIGvDtm5uZW4/JzsKJGxhbmdbJ2NhbnVzZXJ2aWV3J10gPSAnU29sbCBkaWVzZXMgRmVsZCBkZW4gV2Vic2VpdGVuYmVzdWNoZXJuIGFuZ2V6ZWlndCB3ZXJkZW4/JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdLYXRlZ29yaWUgaGluenVnZWbDvGd0JzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0thdGVnb3JpZSBnZWzDtnNjaHQnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnS2F0ZWdvcmllbGlzdGVudm9ybGFnZW4nOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGV1cGRhdGVkJ10gPSAnS2F0ZWdvcmllbGlzdGVuIGFrdHVhbGlzaWVydCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnS2F0ZWdvcmllbGlzdGVudm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdLYXRlZ29yaWUgYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ2NoZWNrJ10gPSAnUHLDvGZlbic7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdVbnRlcm5laG1lbic7CiRsYW5nWydjb21wYW55J10gPSAnVW50ZXJuZWhtZW4nOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRGFzIFVudGVybmVobWVuIHd1cmRlIGhpbnp1Z2Vmw7xndCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0RhcyBVbnRlcm5laG1lbiB3dXJkZSBnZWzDtnNjaHQnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ1VudGVybmVobWVuc3ZlcnplaWNobmlzJzsKJGxhbmdbJ2NvbXBhbnluYW1lJ10gPSAnTmFtZSBkZXMgVW50ZXJuZWhtZW5zJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnVW50ZXJuZWhtZW4nOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdEaWUgVW50ZXJuZWhtZW5zZGF0ZW4gd3VyZGUgYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ2NvbmZpcm1fYXV0b2NyZWF0ZV91cmwnXSA9ICdVUkxzIGbDvHIgZXhpc3RpZXJlbmRlIEVpbnRyw6RnZSBvaG5lIFVSTCBhdXRvbWF0aXNjaCBnZW5lcmllcmVuJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdF9hbGJ1bSddID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZGFzIEFsYnVtIGJlYXJiZWl0ZW4gbcO2Y2h0ZW4uIEFsbGUgw4RuZGVydW5nZW4gZGVyIFVudGVybmVobWVuLUVpZ2Vuc2NoYWZ0ZW4gd2VyZGVuIG5pY2h0IGdlc3BlaWNoZXJ0ISc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdLb250YWt0LUUtTWFpbCc7CiRsYW5nWydjb29yZGluYXRlcyddID0gJ0tvb3JkaW5hdGVuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BpZXJlbic7CiRsYW5nWydjcmVhdGVkJ10gPSAnRXJzdGVsbHQnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdFaW5nYWJlZGF0dW0nOwokbGFuZ1snY3JlYXRldXJscyddID0gJ1VSTFMgZXJzdGVsbGVuJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdNb21lbnRhbmVyIFdlcnQnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkdm9ybGFnZW4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZSBJbmhhbHRlIGRpZXNlciBUZXh0YmVyZWljaGUgd2VyZGVuIHZlcndlbmRldCwgdW0gZGVuIFN0YW5kYXJkaW5oYWx0IGZlc3R6dWxlZ2VuLCBkZXIgYXV0b21hdGlzY2ggZWluZ2Vmw7xndCB3aXJkLCB3ZW5uIFNpZSBpbiBkZXIgamV3ZWlsaWdlbiBSZWdpc3RlcmthcnRlIOKAnlZvcmxhZ2UgaGluenVmw7xnZW7igJwga2xpY2tlbi4gRGllIEJlYXJiZWl0dW5nIGRpZXNlciBUZXh0YmVyZWljaGUgaGF0IGtlaW5lIEF1c3dpcmt1bmdlbiBhdWYgSWhyZSBXZWJzZWl0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnTMO2c2NoZW4nOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgbMO2c2NoZW4nOwokbGFuZ1snZGVsZXRlY29tcGFueSddID0gJ1VudGVybmVobWVuIGzDtnNjaGVuJzsKJGxhbmdbJ2RlbGV0ZWZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24gbMO2c2NoZW4nOwokbGFuZ1snZGVsaW1pdGVyJ10gPSAnRmVsZHRyZW5uZXInOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Fic3RlaWdlbmQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNjaHJlaWJ1bmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEZXRhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFpbHZvcmxhZ2VuJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0RpZSBEZXRhaWx2b3JsYWdlIHd1cmRlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRGV0YWlsdm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2Rpc2FibGUnXSA9ICdEZWFrdGl2aWVyZW4nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEZWFrdGl2aWVydCc7CiRsYW5nWydkb3duJ10gPSAnTmFjaCB1bnRlbic7CiRsYW5nWydkcmFmdCddID0gJ0VudHd1cmYnOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ0RyYWctdW5kLURyb3AtVXBsb2FkJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ0RhdGVpZW4gaGllciBhYmxlZ2VuJzsKJGxhbmdbJ2Ryb3BfaGVyZV90b19kZWxldGUnXSA9ICdIaWVyIGFiZ2VsZWd0ZSBEYXRlaWVuIHdlcmRlbiBhdXMgZGVyIEdhbGVyaWUgZW50ZmVybnQnOwokbGFuZ1snZWRpdCddID0gJ0JlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdVbnRlcm5laG1lbiBiZWFyYmVpdGVuJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0ZlbGRkZWZpbml0aW9uIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ0ZvdG8gQWxidW0gYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIEJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9maWx0ZXInXSA9ICdGaWx0ZXIgYmVhcmJlaXRlbic7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdFLU1haWwtQWRyZXNzZSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0UtTWFpbC1Wb3JsYWdlJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdFaW4gQWxidW0tRmVsZCBleGlzdGllcnQgYmVyZWl0czsgbnVyIGVpbiBGZWxkIGlzdCBlcmxhdWJ0Lic7CiRsYW5nWydlcnJvcl9iYWR1cGxvYWQnXSA9ICdNaXQgZGVyIGhvY2hnZWxhZGVuZW4gRGF0ZWkgaXN0IGVpbiBQcm9ibGVtIGF1ZmdldHJldGVuJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnS2F0ZWdvcmllc3BhbHRlICVzIHd1cmRlIG5pY2h0IGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRGVyIFVudGVybmVobWVuc25hbWUgaXN0IHVuZ8O8bHRpZyc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ0VpbiBVbnRlcm5laG1lbiBtaXQgZGllc2VtIE5hbWVuIGlzdCBiZXJlaXRzIGluIGRlciBEYXRlbmJhbmsgdm9yaGFuZGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnlub3RkZWxldGVkJ10gPSAnRGVyIEVpbnRyYWcga29ubnRlIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW47IHZlcm11dGxpY2ggdmVyd2VuZGV0IGVpbiBhbmRlcmVzIE1vZHVsIGRpZSBEYXRlbic7CiRsYW5nWydlcnJvcl9kZWxldGVwYXJlbnQnXSA9ICdEaWVzZXIgRWludHJhZyBrYW5uIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4sIHdlaWwgZXIgdW50ZXJnZW9yZG5ldGUgRWludHLDpGdlIGVudGjDpGx0JzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1NpZSBtw7xzc2VuIGVpbmVuIEZlbGR0cmVubmVyIGFuZ2ViZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlJ10gPSAnRmVobGVyIGVyemV1Z2VuLCBhYmVyIGZvcnRmYWhyZW4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnRWluZSBLYXRlZ29yaWUgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknXSA9ICdFaW4gVW50ZXJuZWhtZW4gbWl0IGRlbSBOYW1lbiDigJ4lc+KAnCBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJ10gPSAnRWluIEZlbGQgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2hpZXJhcmNoeSddID0gJ0VpbmUgSGllcmFyY2hpZSBtaXQgZGVtIExhbmduYW1lbiDigJ4lc+KAnCBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnVW0gZGllc2UgRnVua3Rpb24gdmVyd2VuZGVuIHp1IGvDtm5uZW4sIG3DvHNzZW4gU2llIGF1ZiBkaWVzZXIgV2Vic2VpdGUgYW5nZW1lbGRldCBzZWluLic7CiRsYW5nWydlcnJvcl9maWVsZGRlZl9ub3Rmb3VuZCddID0gJ0ZlbGRkZWZpbml0aW9uIG1pdCBpZCAlZCB3dXJkZSBuaWNodCBnZWZ1bmRlbic7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ0JlaW0gZXJzdGVsbGVuIGVpbmVyIFVSTCB0cmF0IGVpbiBQcm9ibGVtIGF1Zi4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZGxpbmUnXSA9ICdTY2hsZWNodGVyIERhdGVuc2F0eiBpbiBaZWlsZSAlZCBnZWZ1bmRlbi4gRmVobHQgZWluZSBSZWdlbD8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRWluIHNjaGxlY2h0ZXIgV2VydCB3dXJkZSBmw7xyICVzIEZlbGQgZ2VmdW5kZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGUnXSA9ICdEdXBsaWthdCAlcyBSZWdlbCBpbiBaZWlsZSAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZV9pZGVudGlmaWVyJ10gPSAnRHVwbGlrYXQtUmVnZWwgaW4gWmVpbGUgJWQgaWRlbnRpZml6aWVydCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ0VzIGlzdCBuaWNodCBiZWthbm50LCB3aWUgWmVpbGUgJWQgbWl0IGRlciBSZWdlbCAlcyB2ZXJhcmJlaXRldCB3ZXJkZW4gc29sbCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdVbmJla2FubnRlIFJlZ2VsIGluIFplaWxlICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0JlaW0gRWluZsO8Z2VuIGRlciBLYXRlZ29yaWViZXNjaHJlaWJ1bmcgaXN0IGVpbiBEYXRlbmJhbmtmZWhsZXIgYXVmZ2V0cmV0ZW4nOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2NvbXBhbnknXSA9ICdCZWltIEVpbmbDvGdlbiBkZXIgVW50ZXJuZWhtZW5zYmVzY2hyZWlidW5nIGlzdCBlaW4gRGF0ZW5iYW5rZmVobGVyIGF1ZmdldHJldGVuJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9maWVsZGRlZiddID0gJ0JlaW0gRWluZsO8Z2VuIGRlciBGZWxkZGVmaW5pdGlvbiBpc3QgZWluIERhdGVuYmFua2ZlaGxlciBhdWZnZXRyZXRlbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfaGllcmFyY2h5J10gPSAnRmVobGVyIGJlaW0gRXJzdGVsbGVuIGRlciBIaWVyYXJjaGllICIlcyInOwokbGFuZ1snZXJyb3JfaW52YWxpZG5hbWUnXSA9ICdEZXIgVW50ZXJuZWhtZW5zbmFtZSBpc3QgdW5nw7xsdGlnJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cmwnXSA9ICdEaWUgYW5nZWdlYmVuZSBvZGVyIGJlcmVjaG5ldGUgVVJMIGlzdCB1bmfDvGx0aWcnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9wYXJhbSddID0gJ0RlciBmw7xyICVzIGVpbmdlZ2ViZW5lIFdlcnQgaXN0IHVuZ8O8bHRpZyc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnRXMgd3VyZCBrZWluZSBBZHJlc3NlIGbDvHIgZGllc2VuIEVpbnRyYWcgZ2VmdW5kZW4nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnSW0gRm9ybXVsYXIgd3VyZGUgZWluIFBmbGljaHRmZWxkIG5pY2h0IGF1c2dlZsO8bGx0JzsKJGxhbmdbJ2Vycm9yX21pc3Npbmd1cGxvYWQnXSA9ICdFcyB3dXJkZSBrZWluZSBEYXRlaSBob2NoZ2VsYWRlbic7CiRsYW5nWydlcnJvcl9ub2NvbXBhbmllc21hdGNoJ10gPSAnS2VpbmUgVW50ZXJuZWhtZW4gZW50c3ByYWNoZW4gZGVuIGFuZ2VnZWJlbmVuIEtyaXRlcmllbic7CiRsYW5nWydlcnJvcl9ub2Ryb3Bkb3dub3B0aW9ucyddID0gJ0VzIHd1cmRlIGtlaW5lIExpc3RlbmZlbGQtT3B0aW9uIGF1c2dld8OkaGx0JzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS29ubnRlIGRhcyBGcm9udEVuZFVzZXJzLU1vZHVsIG5pY2h0IGZpbmRlbic7CiRsYW5nWydlcnJvcl9ub2ZpbHRlcm1hdGNoZXMnXSA9ICdFcyBnaWJ0IGtlaW5lIEVpbnRyw6RnZSwgZGllIGRlbiBhbmdlZ2ViZW5lbiBLcml0ZXJpZW4gZW50c3ByZWNoZW4nOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdFcyB3dXJkZSBrZWluZSBtYXhpbWFsZSBGZWxkbMOkbmdlIGFuZ2VnZWJlbic7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ0luIGRlciBEYXRlbmJhbmsgd3VyZGVuIGtlaW5lIERhdGVuIGdlZnVuZGVuLCBkaWUgbWl0IElocmVuIEtyaXRlcmllbiDDvGJlcmVpbnN0aW1tZW4nOwokbGFuZ1snZXJyb3Jfbm9zcG90c2xlZnQnXSA9ICdTaWUgaGFiZW4ga2VpbmUgdmVyYmxlaWJlbmRlbiBVbnRlcm5laG1lbnNmZWxkZXInOwokbGFuZ1snZXJyb3Jfbm90aGluZ3NlbGVjdGVkJ10gPSAnTmljaHRzIGF1c2dld8OkaGx0JzsKJGxhbmdbJ2Vycm9yX3Bvc3Rjb2RlX2xvb2t1cCddID0gJ0tvbm50ZSBrZWluZSBJbmZvcm1hdGlvbmVuIGbDvHIgZGllIFBvc3RsZWl0emFobCAlcyBmaW5kZW4nOwokbGFuZ1snZXJyb3JfcHJlZml4X21zZyddID0gJ0luIFplaWxlICVkIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuOiAlcyc7CiRsYW5nWydlcnJvcl91cGRhdGVfY29tcGFueSddID0gJ0JlaW0gQWt0dWFsaXNpZXJlbiBkZXMgRWludHJhZ3MgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0ZlaGxlciBiZWltIEhvY2hsYWRlbiBkZXIgRGF0ZWknOwokbGFuZ1snZXJyb3JfdXJsbm90ZW1wdHknXSA9ICdEYXMgVVJMLUZlbGQgaXN0IG5pY2h0IGxlZXI7IGV4aXN0aWVyZW5kZXIgV2VydCBrYW5uIG5pY2h0IMO8YmVyc2NocmllYmVuIHdlcmRlbic7CiRsYW5nWydlcnJvcl91cmxyZXF1aXJlZCddID0gJ0VpbiBVUkwgd2lyZCBiZW7DtnRpZ3QnOwokbGFuZ1snZXJyX2ludmFsaWR1bml0cyddID0gJ0RpZSBhbmdlZ2ViZW5lbiBFaW5oZWl0ZW4gc2luZCB1bmfDvGx0aWcuJzsKJGxhbmdbJ2V2ZW50ZGVzYy1PbkFkZENvbXBhbnknXSA9ICdFcmVpZ25pcyBnZXNlbmRldCBuYWNoIGRlbSBlaW4gVW50ZXJuZWhtZW4gaW4gZGllIERhdGVuYmFuayBoaW56dWdlZsO8Z3Qgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLU9uRGVsZXRlQ29tcGFueSddID0gJ0VyZWlnbmlzIGdlc2VuZGV0IGJldm9yIGVpbiBVbnRlcm5laG1lbiBnZWzDtnNjaHQgd3VyZGUnOwokbGFuZ1snZXZlbnRkZXNjLU9uRWRpdENvbXBhbnknXSA9ICdFcmVpZ25pcyBnZXNlbmRldCBuYWNoIGRlbSBlaW4gYmVyZWl0IHZvcmhhbmRlbmVzIFVudGVybmVobWVuIGJlYXJiZWl0ZXQgd3VyZGUnOwokbGFuZ1snZXZlbnRoZWxwLU9uQWRkQ29tcGFueSddID0gJzxwPkdlc2VuZGV0IG5hY2ggZGVtIGVpbiBVbnRlcm5laG1lbiBpbiBkaWUgRGF0ZW5iYW5rIGhpbnp1Z2Vmw7xndCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyOjwvaDQ+DQo8dWw+DQogIDxsaT4id2hvIiAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+Im9iamVjdCIgLSBUaGUgY2RfY29tcGFueSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBkYXRhIHRoYXQgd2FzIHNhdmVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25EZWxldGVDb21wYW55J10gPSAnPHA+R2VzZW5kZXQgYmV2b3IgZWluIFVudGVybmVobWVuIGdlbMO2c2NodCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyOjwvaDQ+DQo8dWw+DQogIDxsaT4id2hvIiAtIElkIG9mIHRoZSBsb2dnZWQgaW4gdXNlciBpbnN0YW50aWF0aW5nIHRoZSBldmVudC48L2xpPg0KICA8bGk+ImNpZCIgLSBJZCBvZiB0aGUgY29tcGFueSByZWNvcmQgdG8gYmUgZGVsZXRlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXZlbnRoZWxwLU9uRWRpdENvbXBhbnknXSA9ICc8cD5HZXNlbmRldCBuYWNoIGRlbSBlaW4gYmVyZWl0IHZvcmhhbmRlbmVzIFVudGVybmVobWVuIGJlYXJiZWl0ZXQgd3VyZGUuPC9wPg0KPGg0PlBhcmFtZXRlcjo8L2g0Pg0KPHVsPg0KICA8bGk+IndobyIgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiJvYmplY3QiIC0gVGhlIGNkX2NvbXBhbnkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZGF0YSB0aGF0IHdhcyBzYXZlZC48L2xpPg0KPC91bD4nOwokbGFuZ1snZXhwaXJlcyddID0gJ0fDvGx0aWcgYmlzJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0FscyBDU1YtRGF0ZWkgZXhwb3J0aWVyZW4nOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEtRGF0ZW4gMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYS1EYXRlbiAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0V4dHJhLURhdGVuIDMnOwokbGFuZ1snZmF4J10gPSAnRmF4JzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYXgnOwokbGFuZ1snZmVlZGl0X2VtYWlsX3N1YmplY3QnXSA9ICdCZWkgZWluZW0gQ29tcGFueURpcmVjdG9yeS1FaW50cmFnIHd1cmRlIGVpbmUgw4RuZGVydW5nIHZvcmdlbm9tbWVuJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsZGRlZmluaXRpb24nOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ0RpZSBGZWxkZGVmaW5pdGlvbiB3dXJkZSBoaW56dWdlZsO8Z3QnOwokbGFuZ1snZmllbGRkZWZkZWxldGVkJ10gPSAnRGllIEZlbGRkZWZpbml0aW9uIHd1cmRlIGdlbMO2c2NodCc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGZWxkZGVmaW5pdGlvbmVuJzsKJGxhbmdbJ2ZpZWxkZGVmdGV4dCddID0gJ0ZlbGRkZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmdXBkYXRlZCddID0gJ0RpZSBGZWxkZGVmaW5pdGlvbiB3dXJkZSBha3R1YWxpc2llcnQnOwokbGFuZ1snZmllbGRzJ10gPSAnWnVzw6R0emxpY2hlIEZlbGRlcic7CiRsYW5nWydmaWVsZF9hY3Rpdml0eSddID0gJ0FrdGl2aXTDpHRlbiAoQ0dTb2NpYWxBcHApJzsKJGxhbmdbJ2ZpZWxkX2FsYnVtJ10gPSAnQWxidW0gKEJpbGRlcmdydXBwZSknOwokbGFuZ1snZmllbGRfY2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydmaWVsZF9kcm9wZG93biddID0gJ0xpc3RlbmZlbGQnOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0RhdGVpJzsKJGxhbmdbJ2ZpZWxkX2ljb24nXSA9ICdQaWt0b2dyYW1tIChDR0dvb2dsZU1hcHMpJzsKJGxhbmdbJ2ZpZWxkX2ltYWdlJ10gPSAnQmlsZCc7CiRsYW5nWydmaWVsZF9tdWx0aXNlbGVjdCddID0gJ01laHJmYWNoYXVzd2FobCc7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1RleHRiZXJlaWNoIChtZWhyemVpbGlnKSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGV4dGVpbmdhYmUgKGVpbnplaWxpZyknOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJ8KrJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZXMnXSA9ICdWb3JsYWdlbiDigJ5Gcm9udGVuZC1BbGJ1bSBiZWFyYmVpdGVu4oCcJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRnJvbnRlbmQgQWxidW0gYmVhcmJlaXRlbiBUZW1wbGF0ZSBoaW56dWbDvGdlbiBvZGVyIGJlYXJiZWl0ZW4nOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnVW50ZXJuZWhtZW5zdm9ybGFnZW4gYmVhcmJlaXRlbic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdVbnRlcm5laG1lbnN2b3JsYWdlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRnJvbnRlbmQtRm9ybXVsYXJ2b3JsYWdlbiBmw7xyIGRpZSBXZWJzZWl0ZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2Zyb250ZW5kaW1wb3J0dGVtcGxhdGUnXSA9ICdWb3JsYWdlbiBXZWJzZWl0ZW4tQ1NWLUltcG9ydCc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdXZWJzZWl0ZW4tTGlzdGVudm9ybGFnZW4nOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1dlYnNlaXRlbi1MaXN0ZW52b3JsYWdlIGhpbnp1ZsO8Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlcyddID0gJ0dhbGVyaWV2b3JsYWdlbic7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0dhbGxlcmlldm9ybGFnZSBoaW56dWbDvGdlbi9iZWFyYmVpdGVuJzsKJGxhbmdbJ2dldHVybCddID0gJ1VSTCBlcnpldWdlbic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaGllbGlzdGVudm9ybGFnZW4nOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnSGllcmFyY2hpZWxpc3RlbnZvcmxhZ2UgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2lnbm9yZSddID0gJ0lnbm9yaWVyZW4nOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnQmlsZCc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdDU1YgaW1wb3J0aWVyZW4nOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnS01MIGltcG9ydGllcmVuJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ0NTVi1EYXRlaSBhdXN3w6RobGVuJzsKJGxhbmdbJ2ltcG9ydF9pbnNlcnQnXSA9ICdEdXBsaWthdCBlaW5mw7xnZW4nOwokbGFuZ1snaW1wb3J0X2ttbCddID0gJ0tNTC1EYXRlaSBpbXBvcnRpZXJlbic7CiRsYW5nWydpbmZvX2NzdmZpbGUnXSA9ICdVbnRlcm5laG1lbnNpbmZvcm1hdGlvbmVuIGvDtm5uZW4gZGlyZWt0IGF1cyBlaW5lciBBU0NJSS1EYXRlaSBpbXBvcnRpZXJ0IHdlcmRlbi4nOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnSGllciBrw7ZubmVuIFNpZSBkaWUgT3B0aW9uZW4gZsO8ciBkaWUgTGlzdGVuZmVsZC1Lb250cm9sbGUgZWluZ2ViZW4sIGpld2VpbHMgZWluZSBaZWlsZSBwcm8gRWludHJhZy4gVHJlbm5lbiBTaWUgU2NobMO8c3NlbCB1bmQgV2VydGUgbWl0IGVpbmVtID0uIEJlaXNwaWVsOiBTY2hsw7xzc2VsPVdlcnQnOwokbGFuZ1snaW51c2UnXSA9ICdpbiBWZXJ3ZW5kdW5nJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnwrsnOwokbGFuZ1snbGF0aXR1ZGUnXSA9ICdCcmVpdGVuZ3JhZCc7CiRsYW5nWydsYmxfYmFjayddID0gJ1p1csO8Y2snOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnVm9ybGFnZW4nOwokbGFuZ1snbG9nb3RleHQnXSA9ICdVbnRlcm5laG1lbnNsb2dvJzsKJGxhbmdbJ2xvbmdpdHVkZSddID0gJ0zDpG5nZW5ncmFkJzsKJGxhbmdbJ2xvb2t1cCddID0gJ0tvb3JkaW5hdGVuIHN1Y2hlbic7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXhpbWFsZSBMw6RuZ2UnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ01heGltYWxlIEzDpG5nZSc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTMOkbmdlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWluIHZlcnplaWNobmlzw6RobmxpY2hlcyBNb2R1bCBmw7xyIFVudGVybmVobWVuLiBFcyBrw7ZubmVuIERhdGVuc8OkdHplIGbDvHIgVW50ZXJuZWhtZW4gaGluenVnZWbDvGd0L2JlYXJiZWl0ZXQvaW1wb3J0aWVydC9leHBvcnRpZXJ0IHVuZCBhdWYgdmVyc2NoaWVkZW5lbiBXZWdlbiBhbmdlemVpZ3Qgd2VyZGVuIChlaW5zY2hsaWXDn2xpY2ggZWluZXIgU3VjaGUpLiBEaWVzZXMgTW9kdWwga2FubiBpbiBWZXJiaW5kdW5nIG1pdCBkZW0gQ0dHb29nbGVNYXBzLU1vZHVsIHZlcndlbmRldCB3ZXJkZW4uJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnR2XDpG5kZXJ0JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdHVtIGRlciBsZXR6dGVuIEJlYXJiZWl0dW5nJzsKJGxhbmdbJ21zZ19idWxrZGVsJ10gPSAnJWQgVW50ZXJuZWhtZW4gZ2Vsw7ZzY2h0JzsKJGxhbmdbJ21zZ19jYXRlZ29yeXNhdmVkJ10gPSAnS2F0ZWdvcmllIGdlc3BlaWNoZXJ0JzsKJGxhbmdbJ21zZ19jb21wYW55Y29waWVkJ10gPSAnRGllIFVudGVybmVobWVuc2RhdGVuIHd1cmRlbiBrb3BpZXJ0IOKApiBTaWUga8O2bm5lbiBqZXR6dCBkaWUgRGV0YWlscyBmw7xyIGRlbiBuZXVlbiBVbnRlcm5laG1lbnNlaW50cmFnIGJlYXJiZWl0ZW4nOwokbGFuZ1snbXNnX2hpZXJhZGRlZCddID0gJ0hpZXJhcmNoaWVwb3NpdGlvbiBoaW56dWdlZsO8Z3QnOwokbGFuZ1snbXNnX2hpZXJhcmNoeV91cGRhdGVkJ10gPSAnSGllcmFyY2hpZXBvc2l0aW9uZW4gYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ21zZ19oaWVyZGVsZXRlZCddID0gJ0hpZXJhcmNoaWVwb3NpdGlvbiBnZWzDtnNjaHQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFyY2hpZXBvc2l0aW9uIGFrdHVhbGlzaWVydCc7CiRsYW5nWydtc2dfaW1wb3J0X2NvbXBsZXRlJ10gPSAnRGVyIERhdGVuaW1wb3J0IHdhciBlcmZvbGdyZWljaCc7CiRsYW5nWydtc2dfc2V0dGluZ3NfY2hhbmdlZCddID0gJ0VpbnN0ZWxsdW5nZW4gZ2XDpG5kZXJ0JzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdTaWUgaGFiZW4gJWQgdm9uICVkIFVudGVybmVobWVucy1GZWxkZXJuIHZlcndlbmRldCc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05hbWUnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdVbSBkaWVzZSBGdW5rdGlvbiBhdXNmw7xocmVuIHp1IGvDtm5uZW4sIGJlbsO2dGlnZW4gU2llIGRpZSBCZXJlY2h0aWd1bmcgXCclc1wnLic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTdWNoZm9ybXVsYXJ2b3JsYWdlbic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnU3VjaGZvcm11bGFydm9ybGFnZSBoaW56dWbDvGdlbi/DpG5kZXJuJzsKJGxhbmdbJ25ld3NlYXJjaF90ZW1wbGF0ZSddID0gJ1N1Y2hmb3JtdWxhcnZvcmxhZ2UnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICfigLonOwokbGFuZ1snbm8nXSA9ICdOZWluJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ0VzIHd1cmRlIGtlaW4gRmlybWVubmFtZSBlaW5nZWdlYmVuJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnRXMgd3VyZGUga2VpbiBOYW1lIGVpbmdlZ2ViZW4nOwokbGFuZ1snbm9uZSddID0gJ0tlaW5lJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdFcyB3dXJkZSBrZWluZSBaYWhsIGVpbmdlZ2ViZW4nOwokbGFuZ1snb2YnXSA9ICd2b24nOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnQWJnZWJyb2NoZW4nOwokbGFuZ1snb3JnYW5pemF0aW9uJ10gPSAnT3JnYW5pc2F0aW9uJzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ8OcYmVyc2NocmVpYmVuJzsKJGxhbmdbJ293bmVyJ10gPSAnRWlnZW50w7xtZXInOwokbGFuZ1sncGFnZSddID0gJ1NlaXRlJzsKJGxhbmdbJ3BhZ2VsaW1pdCddID0gJ0VpbnRyw6RnZSBwcm8gU2VpdGUnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnTWl0IGRpZXNlbSBQYXJhbWV0ZXIgd2lyZCBkYXMgcHJpbcOkcmUgVmVyaGFsdGVuIGRlcyBNb2R1bHMgZmVzdGdlbGVndC4gRm9sZ2VuZGUgV2VydGUgc2luZCBtw7ZnbGljaDoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBaZWlndCBlaW5lIExpc3RlIGRlciBLYXRlZ29yaWVuLiBEaWUgQmVzdWNoZXIga8O2bm5lbiBkYW5uIGluIGRlbiBadXNhbW1lbmZhc3N1bmdzLUFuc2ljaHQgdW5kIHdlaXRlciBpbiBkaWUgRGV0YWlsLUFuc2ljaHQgd2VjaHNlbG4uPC9saT4NCiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBEaWUgVW50ZXJuZWhtZW4gd2VyZGVuIGluIGVpbmVtIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgYW5nZXplaWd0LjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIFplaWd0IGRldGFpbGllcnRlIEluZm9ybWF0aW9uZW4gw7xiZXIgZWluIGJlc3RpbW10ZXMgVW50ZXJuZWhtZW4gYW4uPC9saT4NCiAgPGxpPmZlX2VkaXQgLS0gWmVpZ3QgYXVmIGRlciBXZWJzZWl0ZSBlaW4gRm9ybXVsYXIgYW4sIMO8YmVyIGRhcyBkaWUgSW5mb3JtYXRpb25lbiBlaW5lcyBiZXN0aW1tdGVuIFVudGVybmVobWVucyBiZWFyYmVpdGV0IHdlcmRlbiBrw7ZubmVuLjwvbGk+DQogICA8bGk+ZnJvbnRlbmRsaXN0IC0tIFplaWd0IGF1ZiBkZXIgV2Vic2VpdGUgZWluZSBMaXN0ZSBhbGxlciBVbnRlcm5laG1lbnNkYXRlbiBhbiwgbWl0IGRlciBvcHRpb25hbGVuIE3DtmdsaWNoa2VpdCwgRGF0ZW4gaGluenV6dWbDvGdlbi48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBaZWlndCBlaW4gRm9ybXVsYXIgZsO8ciBkaWUgU3VjaGUgbmFjaCBlaW5lbSBiZXN0aW1tdGVuIFVudGVybmVobWVuIGFuLjwvbGk+DQogIDxsaT5icm93c2VoaWVyIC0tIFplaWd0IGVpbmUgTGlzdGUgZGVyIEhpZXJhcmNoaWVuIGFuLiBEaWUgQmVzdWNoZXIga8O2bm5lbiBkYW5uIGluIGRlbiBadXNhbW1lbmZhc3N1bmdzLUFuc2ljaHQgdW5kIHdlaXRlciBpbiBkaWUgRGV0YWlsLUFuc2ljaHQgd2VjaHNlbG4uPC9saT4NCg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdCZWkgVmVyd2VuZHVuZyBpbSA8ZW0+ZGVmYXVsdDwvZW0+IFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgd2VyZGVuIG1pdCBkaWVzZW0gUGFyYW1ldGVyIGRpZSBLYXRlZ29yaWVuIChkZXIgbWl0IGRlbiBleGlzdGllcmVuZGVuIEthdGVnb3JpZSDDvGJlcmVpbnN0aW1tZW4gc29sbHRlbikgZmVzdGdlbGVndCwgZGVzc2VuIFVudGVybmVobWVuIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbGVuLiBEaWUgS2F0ZWdvcmllbiBzaW5kIGR1cmNoIEtvbW1hdGEgdm9uZWluYW5kZXIgZ2V0cmVubnQgYW56dWdlYmVuLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnk8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiAgaS5lOiB7Q29tcGFueURpcmVjdG9yeSBjYXRlZ29yeT1cJ3JlZ2lvbl9ub3J0aCxyZWdpb25fc291dGhcJyBjYXRlZ29yeTI9XCdjYXJzLHRydWNrc1wnfSB3b3VsZCByZXR1cm4gb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCB3ZXJlIGluIHRoZSBlaXRoZXIgb2YgdGhlIHJlZ2lvbiBub3J0aCBvciByZWdpb24gc291dGggY2F0ZWdvcmllcyBBTkQgQUxTTyBpbiBlaXRoZXIgb2YgdGhlIGNhcnMgb3IgdHJ1Y2tzIGNhdGVnb3JpZXMnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdMZWd0IGRhcyBUZW1wbGF0ZSBmZXN0IChhbHMgTmFtZSksIG1pdCBkZW0gZGllIEthdGVnb3JpZW5saXN0ZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuJzsKJGxhbmdbJ3BhcmFtX2NvbXBhbnlpZCddID0gJ0RpZXNlciBQYXJhbWV0ZXIgbGVndCBmZXN0LCB3ZWxjaGVyIEZpcm1lbi1EYXRlbnNhdHogYmVhcmJlaXRldCBvZGVyIGFuZ2V6ZWlndCB3ZXJkZW4gc29sbC4gSXN0IGbDvHIgZGllIEJlYXJiZWl0dW5nIHZvbiBEYXRlbiBpbSBGcm9udGVuZCB1bmQgaW0gRGV0YWlsLU1vZHVzIGVyZm9yZGVybGljaC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ0xlZ3QgZWluZW4gU2VpdGVuLUFsaWFzIGZlc3QgKGFscyBOYW1lKSwgYXVmIGRlc3NlbiBTZWl0ZSBkaWUgRGV0YWlsZGF0ZW4gYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4uIDxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gRGllc2VyIFBhcmFtZXRlciBpc3QgbWl0IFByZXR0eSBVUkxzIG5pY2h0IGtvbXBhdGliZWwuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnTGVndCBkYXMgVGVtcGxhdGUgZmVzdCAoYWxzIE5hbWUpLCB3ZWxjaGVzIGbDvHIgZGllIERldGFpbGFuc2ljaHQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiA8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZXNlciBQYXJhbWV0ZXIgaXN0IG1pdCBQcmV0dHkgVVJMcyBuaWNodCBrb21wYXRpYmVsLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ0xlZ3QgZGFzIFRlbXBsYXRlIGZlc3QgKGFscyBOYW1lKSwgd2VsY2hlcyBmw7xyIGRpZSBBbnplaWdlIGRlcyBCZWFyYmVpdHVuZ3Nmb3JtdWxhcnMgYXVmIGRlciBXZWJzZWl0ZSB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuJzsKJGxhbmdbJ3BhcmFtX2hpZXInXSA9ICdLYW5uIGbDvHIgZGllIDxlbT5kZWZhdWx0PC9lbT4gdW5kIGRpZSA8ZW0+aGllcmxpc3Q8L2VtPiBBa3Rpb24gdmVyd2VuZGV0IHdlcmRlbi4gw5xiZXIgZGllc2VuIFBhcmFtZXRlciBrYW5uIGRlciBOYW1lIGRlciBIaWVyYXJjaGllIHZvcmdlZ2ViZW4gd2VyZGVuLCBkZXNzZW4gVW50ZXJuZWhtZW4gYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4uIERpZSA8ZW0+ZGVmYXVsdDwvZW0+IEFrdGlvbiBrYW5uIGluIFZlcmJpbmR1bmcgbWl0IEpva2VyemVpY2hlbiB2ZXJ3ZW5kZXQgd2VyZGVuLCB6LkJzcC4gIiplaW5oaWVyYXJjaGllbmFtZSoiLiBNaXQgZGVyIDxlbT5oaWVybGlzdDwvZW0+IEFrdGlvbiBtdXNzIGRpZXNlciBQYXJhbWV0ZXIgZGVuIGVpbmRldXRpZ2VuIE5hbWVuIGVpbmVyIEhpZXJhcmNoaWUgZW50aGFsdGVuLCBkZXIgZGVuIFN0YXJ0cHVua3QgZsO8ciBkaWUgSGllcmFyY2hpZS1BbnplaWdlIGZlc3RsZWd0Lic7CiRsYW5nWydwYXJhbV9oaWVybGlzdHRlbXBsYXRlJ10gPSAnR2ViZW4gU2llIGVpbmVuIFRlbXBsYXRlLU5hbWVuIGFuLCBkZXIgZsO8ciBkaWUgQW56ZWlnZSBkZXIgSGllcmFyY2hpZS1MaXN0ZW4tQW5zaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuJzsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gJ0thbm4gbnVyIG1pdCBkZW0gPGVtPmRlZmF1bHQ8L2VtPiBadXNhbW1lbmZhc3N1bmdzLSB1bmQgZGVtIDxlbT5zZWFyY2g8L2VtPiBNb2R1cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGZlc3RnZWxlZ3Qgd2VyZGVuLCBvYiBkaWUgRXJnZWJuaXNzZSBkZW4gU3RhbmRhcmQtSW5oYWx0c2Jsb2NrIG9kZXIgZGVuIE1vZHVsLVRhZyAoaW5saW5lKSBlcnNldHplbiBzb2xsZW4uJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgPGVtPihzdW1tYXJ5KTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBjb21wYW5pZXMgYnkgdGhlaXIgbmFtZS4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIGFsbG93ZWQuICBpLmU6IG5hbWU9ImEqIi4gIEFkZGl0aW9uYWxseSwgcmVndWxhciBleHByZXNzaW9ucyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHByZWZpeGluZyB0aGUgdmFsdWUgd2l0aCA6Oi4gIGkuZTogbmFtZT0iOjpbMC05XS4qIic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdXaXJkIGRpZXMgbWl0IGRlbSA8ZW0+ZGVmYXVsdDwvZW0+IFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgb2RlciBkZW0gPGVtPnNlYXJjaDwvZW0+IE1vZHVzIHZlcndlbmRldCwga2FubiBtaXQgZGllc2VtIFdlcnQgZGllIEFuemFobCBkZXIgYXVzZ2VnZWJlbmVuIEVyZ2Vibmlzc2UgZmVzdGdlbGVndCB3ZXJkZW4uJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0thbm4gbnVyIGltIDxlbT5zZWFyY2g8L2VtPiBNb2R1cyB2ZXJ3ZW5kZXQgd2VyZGVuLiBNaXQgZGllc2VtIFBhcmFtZXRlciBrYW5uIGVpbiB2b24gZGVyIFZvcmVpbnN0ZWxsdW5nIGFid2VpY2hlbmRlcyBUZW1wbGF0ZSBmw7xyIGRhcyBTdWNoZm9ybXVsYXIgZmVzdGdlbGVndCB3ZXJkZW4uJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdLYW5uIG51ciBtaXQgZGVyIGNhdGVnb3J5bGlzdCBBa3Rpb24gdmVyd2VuZGV0IHdlcmRlbi4gV2VubiBkaWVzZXIgUGFyYW1ldGVyIGdlc2V0enQgd3VyZGUsIHdlcmRlbiBhbGxlIEthdGVnb3JpZW4gbWl0IG5pY2h0IMO8YmVyZWluc3RpbW1lbmRlbiBGaXJtZW4gYXVzZ2VnZWJlbi4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnTnVyIGltIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgYW53ZW5kYmFyLiBEaWVzZXIgUGFyYW1ldGVyIGxlZ3QgZmVzdCwgd29uYWNoIGRpZSBVbnRlcm5laG1lbiBzb3J0aWVydCB3ZXJkZW4gc29sbGVuLiBFcyBzaW5kIGZvbGdlbmRlIFdlcnRlIG3DtmdsaWNoOg0KPHVsPg0KPGxpPmlkIC0tIERpZSBpbnRlcm5lIFVudGVybmVobWVucy1JRDwvbGk+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPiAtLSBEZXIgVW50ZXJuZWhtZW5zbmFtZTwvbGk+DQogIDxsaT5waG9uZSAtLSBkaWUgVGVsZWZvbm51bW1lcjwvbGk+DQogIDxsaT5mYXggLS0gZGllIEZheG51bW1lcjwvbGk+DQogIDxsaT5lbWFpbCAtLSBkaWUgRW1haWwtQWRyZXNzZTwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIERpZSBXZWJzZWl0ZW4tVVJMPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGFzIEVyc3RlbGx1bmdzZGF0dW0gZGVzIFVudGVybmVobWVuc2RhdGVuc2F0emVzPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIERhcyBCZWFyYmVpdHVuZ3NkYXR1bSBkZXMgVW50ZXJuZWhtZW5zZGF0ZW5zYXR6ZXM8L2xpPg0KICA8bGk+c3RhdHVzIC0tIGRlciBTdGF0dXMgZGVzIFVudGVybmVobWVuc2RhdGVuc2F0emVzPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBkaWUgRWludHLDpGdlIHp1ZsOkbGxpZyBzb3J0aWVyZW4uPC9saT4NCiAgPGxpPmY6RmVsZG5hbWUgLS0gbmFjaCDDtmZmZW50bGljaGVuIHp1c8OkdHpsaWNoZW4gRmVsZGVybiBzb3J0aWVyZW4uIERpZSBBdXNnYWJlIGVyZm9sZ3Qgc29ydGllcnQgbmFjaCBkZW0gYmVuYW5udGVuIHp1c8OkdHpsaWNoZW4gRmVsZC48YnIgLz4NCiAgPHN0cm9uZz5IaW53ZWlzIDE6PC9zdHJvbmc+IFdlbm4gZGllIEZlbGRuYW1lbiBMZWVyemVpY2hlbiBlbnRoYWx0ZW4sIG3DvHNzZW4gU2llIEFuZsO8aHJ1bmdzemVpY2hlbiB2ZXJ3ZW5kZW4uPGJyIC8+DQogIDxzdHJvbmc+SGlud2VpcyAyOjwvc3Ryb25nPiBUaGUgZmllbGQgc3BlY2lmaWVkIG11c3QgYmUgbWFya2VkIGFzIHB1YmxpYy48L2xpPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ0xlZ3QgZGllIFNvcnRpZXJ1bmcgZGVyIEZlbGRlciBpbiBkZXIgWnVzYW1tZW5mYXNzdW5nc2Fuc2ljaHQgZmVzdC4gTcO2Z2xpY2hlIFdlcnRlIHNpbmQ6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBdWZzdGVpZ2VuZDwvbGk+DQogIDxsaT5kZXNjIC0tIEFic3RlaWdlbmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnTGVndCBmZXN0LCB3ZWxjaGVzIFRlbXBsYXRlIGbDvHIgZGllIEFuemVpZ2UgZGVyIFp1c2FtbWVuZmFzc3VuZyB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwgKE5hbWUgZGVzIFRlbXBsYXRlcykuIDxzdHJvbmc+SGlud2Vpczo8L3N0cm9uZz4gRGllc2VyIFBhcmFtZXRlciBmdW5rdGlvbmllcnQgbmljaHQgbWl0IFByZXR0eSBVUkxzLic7CiRsYW5nWydwaHJhc2UnXSA9ICdBdXNkcnVjayc7CiRsYW5nWydwb3N0YWxfY29kZSddID0gJ1Bvc3RsZWl0emFobCAoUExaKSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RhcyBDb21wYW55RGlyZWN0b3J5LU1vZHVsIChVbnRlcm5laG1lbnN2ZXJ6ZWljaG5pcykgd3VyZGUgaW5zdGFsbGllcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RhcyBDb21wYW55RGlyZWN0b3J5LU1vZHVsIChVbnRlcm5laG1lbnN2ZXJ6ZWljaG5pcykgd3VyZGUgZGVpbnN0YWxsaWVydC4gU8OkbXRsaWNoZSBVbnRlcm5laG1lbnNkYXRlbiB3dXJkZW4gZ2Vsw7ZzY2h0Lic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnV29sbGVuIFNpZSBkaWVzZXMgTW9kdWwgd2lya2xpY2ggZGVpbnN0YWxsaWVyZW4/IE1pdCBkZXIgRGVpbnN0YWxsYXRpb24gZGVzIE1vZHVscyB3ZXJkZW4gc8OkbXRsaWNoZSBVbnRlcm5laG1lbnNkYXRlbiBnZWzDtnNjaHQuJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAn4oC5JzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdGZWxkZGVmaW5pdGlvbiBoaW56dWbDvGdlbiBvZGVyIGJlYXJiZWl0ZW4nOwokbGFuZ1sncHJvbXB0X2FkbWlud3lzaXd5ZyddID0gJ1dZU0lXWUctRWRpdG9yIGbDvHIgZGllIEJlYXJiZWl0dW5nIHZlcndlbmRlbic7CiRsYW5nWydwcm9tcHRfYWRtaW5fZWRpdF9zZXR0aW5ncyddID0gJ0FkbWluLUJlYXJiZWl0dW5nc2VpbnN0ZWxsdW5nZW4nOwokbGFuZ1sncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJ10gPSAnTmFtZW5zZHVwbGlrYXRlIGVybGF1YmVuPyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcmllc19pbXBvcnRlZCddID0gJ0thdGVnb3JpZW4gaW1wb3J0aWVydCc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnljb2x1bW4nXSA9ICdLYXRlZ29yaWUgc3BhbHRlJzsKJGxhbmdbJ3Byb21wdF9jaGVja19kdXBsaWNhdGVzJ10gPSAnQXVmIER1cGxpa2F0ZSB2b24gVW50ZXJuZWhtZW5zbmFtZW4gcHLDvGZlbj8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ1N1Y2gtU3RhdGlzdGlrZW4gZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdGaXJtZW4gaW1wb3J0aWVydCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnQWRyZXNzZW4gaW4gS29vcmRpbmF0ZW4gdW13YW5kZWxuIChmYWxscyBub2NoIGtlaW5lIEtvb3JkaW5hdGVuIGVpbmdlZ2ViZW4gd3VyZGVuKSc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ1VSTHMgZsO8ciBFaW50csOkZ2Ugb2huZSBVUkwgZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9kZWxpbWV0ZXInXSA9ICdGZWxkdHJlbm5lcic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0RpZSB2b3JlaW5nZXN0ZWxsdGUgU2VpdGUsIGF1ZiBkZXIgZGllIEF1c2dhYmUgZGVyIERldGFpbHMgZXJmb2xnZW4gc29sbCc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0xpc3RlbmZlbGQtT3B0aW9uZW4nOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnTmFtZW4gZGVyIFVudGVybmVobWVuIGF1ZiBEdXBsaWthdGUgcHLDvGZlbic7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdVbnRlcm5laG1lbiBiZWFyYmVpdGVuJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdFLU1haWwgaXN0IGltIEhUTUwtRm9ybWF0JzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9zdWJqZWN0J10gPSAnRS1NYWlsLUJldHJlZmYnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1NYWlsLVZvcmxhZ2UnOwokbGFuZ1sncHJvbXB0X2VuY2xvc3VyZSddID0gJ0ZlbGRiZWdyZW56ZXInOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0ZlaGxlcic7CiRsYW5nWydwcm9tcHRfZXh0ZW5zaW9ucyddID0gJ0VybGF1YnRlIERhdGVpZW5kdW5nZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9jaGFuZ2Vfc3RhdHVzJ10gPSAnRMO8cmZlbiBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZW51dHplciBkZW4gRmlybWVuc3RhdHVzIMOkbmRlcm4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfY3JlYXRlJ10gPSAnRMO8cmZlbiBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZXN1Y2hlciAoRnJvbnRlbmRVc2VycykgbmV1ZSBEYXRlbnPDpHR6ZSBlcnN0ZWxsZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZGlzcGxheV9zZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4gZsO8ciBkaWUgQW56ZWlnZSBhdWYgZGVyIFdlYnNlaXRlJzsKJGxhbmdbJ3Byb21wdF9mZXVfZWRpdF9zZXR0aW5ncyddID0gJ0VpbnN0ZWxsdW5nZW4gZsO8ciBkaWUgQmVhcmJlaXR1bmcgdmlhIFdlYnNlaXRlJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ0FkbWluaXN0cmF0b3ItR3J1cHBlLCBkaWUgZGllIEJlbmFjaHJpY2h0aWd1bmdzLUUtTWFpbHMgZW1wZmFuZ2VuIHNvbGw/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmFkZCddID0gJ0VpbmUgRS1NYWlsIHZlcnNlbmRlbiwgd2VubiDDvGJlciBkaWUgV2Vic2VpdGUgZWluIG5ldWVzIFVudGVybmVobWVuIGVpbmdlZ2ViZW4gd3VyZGUnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ0VpbmUgRS1NYWlsIHZlcnNlbmRlbiwgd2VubiDDvGJlciBkaWUgV2Vic2VpdGUgZWluIFVudGVybmVobWVuc2RhdGVuc2F0eiBnZcOkbmRlcnQgd3VyZGUnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZ3JvdXAnXSA9ICdBZG1pbmlzdHJhdG9yLUdydXBwZSwgYW4gZGllIGRpZSBFLU1haWxzIGdlc2FuZHQgd2VyZGVuIHNvbGxlbic7CiRsYW5nWydwcm9tcHRfZmV1X2ltcG9ydCddID0gJ0JlcmVjaHRpZ3RlbiBXZWJzZWl0ZW5iZXN1Y2hlcm4gZXJsYXViZW4sIERhdGVuc8OkdHplIHZpYSBDU1YgaW1wb3J0aWVyZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbmV3X3N0YXR1cyddID0gJ1ZvcmVpbmdlc3RlbGx0ZXIgU3RhdHVzIGbDvHIgbmV1ZSwgdmlhIFdlYnNlaXRlIGVyc3RlbGx0ZSBEYXRlbnPDpHR6ZSc7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYXhpbWFsZSBBbnphaGwgZGVyIERhdGVuc8OkdHplLCBkaWUgZWluZW0gRkVVLUtvbnRvIHp1Z2VvcmRuZXQgd2VyZGVuIGvDtm5uZW4nOwokbGFuZ1sncHJvbXB0X2ZpZWxkZGVmc19pbXBvcnRlZCddID0gJ0ZlbGRkZWZpbml0aW9uZW4gaW1wb3J0aWVydCc7CiRsYW5nWydwcm9tcHRfZnJvbnRlbmRfc2hvd2V4cGlyZWQnXSA9ICdEYXRlbnPDpHR6ZSBkZXIgYWJnZWxhdWZlbmVuIEZyb250ZW5kLUJlbnV0emVyIGFuemVpZ2VuJzsKJGxhbmdbJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJ10gPSAnQWxsZ2VtZWluZSBFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3Byb21wdF9oaWVyYXJjaGllc19pbXBvcnRlZCddID0gJ0hpZXJhcmNoaWVwb3NpdGlvbmVuIGVyc3RlbGx0JzsKJGxhbmdbJ3Byb21wdF9pY29uJ10gPSAnUGlrdG9ncmFtbSc7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdBZHJlc3NmZWxkIGlnbm9yaWVyZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jYXRlZ29yeWRlZnMnXSA9ICdGZWhsZW5kZSBLYXRlZ29yaWVuIGJlaW0gSW1wb3J0IGVyc3RlbGxlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5dmFscyddID0gJ0thdGVnb3JpZXdlcnRlIGJlaW0gSW1wb3J0IGbDvGxsZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9jc3ZmaWxlJ10gPSAnQ1NWLURhdGVpIGhvY2hsYWRlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkZGVmcyddID0gJ0ZlaGxlbmRlIERlZmluaXRpb25lbiBmw7xyIHp1c8OkdHpsaWNoZSBGZWxkZXIgYmVpbSBJbXBvcnQgZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGR2YWxzJ10gPSAnV2VydGUgZsO8ciB6dXPDpHR6bGljaGUgRmVsZGVyIGJlaW0gSW1wb3J0IGbDvGxsZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHlkZWZzJ10gPSAnSGllcmFyY2hpZS1EYXRlbnPDpHR6ZSBpbXBvcnRpZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeXZhbHMnXSA9ICdIaWVyYXJjaGlld2VydGUgaW1wb3J0aWVyZW4nOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9sb29rdXBsYXRsb25nJ10gPSAnQnJlaXRlbi0gdW5kIEzDpG5nZW5ncmFkIGVybWl0dGVsbiwgZmFsbHMgbmljaHQgYW5nZWdlYmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfdGVtcGxhdGUnXSA9ICdNaXQgZGllc2VyIFZvcmxhZ2Ugd2lyZCBkYXMgRm9ybXVsYXIgZXJzdGVsbHQsIMO8YmVyIGRhcyBiZXJlY2h0aWd0ZSBXZWJzZWl0ZW5iZXN1Y2hlciBEYXRlbiDDvGJlciBlaW5lIGVudHNwcmVjaGVuZCBmb3JtYXRpZXJ0ZSBDU1YtRGF0ZWkgaW1wb3J0aWVyZW4ga8O2bm5lbic7CiRsYW5nWydwcm9tcHRfa21sZmlsZSddID0gJ1p1IGltcG9ydGllcmVuZGUgS01MLURhdGVpJzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdBbnphaGwgZ2VmdW5kZW5lciBGZWhsZXInOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnQW56YWhsIGRlciBpbXBvcnRpZXJ0ZW4gRGF0ZW5zw6R0emUnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0RpZSBBbnphaGwgZGVyIERhdGVuc8OkdHplLCBkaWUgaW0gWnVzYW1tZW5mYXNzdW5ncy1Nb2R1cyBwcm8gU2VpdGUgYW5nZXplaWd0IHdlcmRlbiBzb2xsZW4nOwokbGFuZ1sncHJvbXB0X3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnV2Vic2VpdGVuLUFkcmVzc2VuIOKAnmh0dHA6Ly/igJwgdm9yYW5zdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZsO8ciBpbXBvcnRpZXJ0ZSBEYXRlbnPDpHR6ZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFyZC1Tb3J0aWVydW5nIGltIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEaWUgU3RhbmRhcmQtU29ydGllcnJlaWhlbmZvbGdlIGltIFp1c2FtbWVuZmFzc3VuZ3MtTW9kdXMgPGVtPihmdW5rdGlvbmllcnQgbmljaHQsIHdlbm4gZGllIFNvcnRpZXJ1bmcgYXVmIFwncmFuZG9tXCcgZ2VzZXR6dCB3dXJkZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdWb3JsYWdlJzsKJGxhbmdbJ3B1YmxpYyddID0gJ8OWZmZlbnRsaWNoJzsKJGxhbmdbJ3B1Ymxpc2gnXSA9ICdWZXLDtmZmZW50bGljaGVuJzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1ZlcsO2ZmZlbnRsaWNodCc7CiRsYW5nWydyYWRpdXMnXSA9ICdSYWRpdXMnOwokbGFuZ1sncmFuZG9tJ10gPSAnWnVmw6RsbGlnJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdOZXUgb3JkbmVuJzsKJGxhbmdbJ3Jlc2V0J10gPSAnWnVyw7xja3NldHplbic7CiRsYW5nWydyZXNldGFsbCddID0gJ0FsbGVzIHp1csO8Y2tzZXR6ZW4nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmdlbiB6dXLDvGNrc2V0emVuJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmcgenVyw7xja3NldHplbic7CiRsYW5nWydyZXN0b3JldG9kZWZhdWx0c21zZyddID0gJ01pdCBkaWVzZXIgRnVua3Rpb24ga8O2bm5lbiBTaWUgZGllIEluaGFsdGUgZGVyIFZvcmxhZ2VuIGF1ZiBkaWUgcHJvZ3JhbW1zZWl0aWdlbiBWb3JlaW5zdGVsbHVuZ2VuIHp1csO8Y2tzZXR6ZW4uIFdvbGxlbiBTaWUgZGllcyB3aXJrbGljaD8nOwokbGFuZ1sncmV0dXJuJ10gPSAnWnVyw7xjayc7CiRsYW5nWydzZWFyY2gnXSA9ICdTdWNoZSc7CiRsYW5nWydzZWFyY2hlcyddID0gJ1N1Y2hlbic7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVzJ10gPSAnU3VjaGZvcm11bGFydm9ybGFnZW4nOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdFaW5lIFN1Y2hmb3JtdWxhcnZvcmxhZ2UgaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydzZWFyY2hfY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4nOwokbGFuZ1snc2VhcmNoX2RhdGUnXSA9ICdEYXR1bSc7CiRsYW5nWydzZWFyY2hfaGllciddID0gJ0hpZXJhcmNoaWUnOwokbGFuZ1snc2VhcmNoX2lwJ10gPSAnSVAtQWRyZXNzZSc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdJaHJlIEF1c3dhaGwnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ0FsbGUgYXVzd8OkaGxlbic7CiRsYW5nWydzb3J0YnknXSA9ICdTb3J0aWVydW5nJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ1NvcnRpZXItUmVpaGVuZm9sZ2UnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ0Fic2VuZGVuJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdadXNhbW1lbmZhc3N1bmdzdm9ybGFnZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ1p1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlIGFrdHVhbGlzaWVydCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1p1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlIGhpbnp1ZsO8Z2VuL2JlYXJiZWl0ZW4nOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdBdWYgZGllIFZvcmVpbnN0ZWxsdW5nZW4genVyw7xja3NldHplbic7CiRsYW5nWyd0ZWxlcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RodW1ibmFpbCddID0gJ1ZvcnNjaGF1YmlsZCc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIEthdGVnb3JpZWxpc3RlbnZvcmxhZ2UnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBEZXRhaWx2b3JsYWdlJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kYWxidW1fZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFZvcmxhZ2Ug4oCeRnJvbnRlbmQgQWxidW0gYmVhcmJlaXRlbuKAnCc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFdlYnNlaXRlbi1Gb3JtdWxhcnZvcmxhZ2UnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBXZWJzZWl0ZW4tTGlzdGVudm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBHYWxlcmlldm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9oaWVybGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1IaWVyYXJjaGllbGlzdGVudm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnQ1NWLUltcG9ydGJlcmljaHQnOwokbGFuZ1sndGl0bGVfbmV3c2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTdWNodm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9zZWFyY2hmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTdWNoZm9ybXVsYXJ2b3JsYWdlJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIFp1c2FtbWVuZmFzc3VuZ3N2b3JsYWdlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUeXAnOwokbGFuZ1sndXAnXSA9ICdOYWNoIG9iZW4nOwokbGFuZ1sndXJsJ10gPSAnVVJMJzsKJGxhbmdbJ3VybHMnXSA9ICdVUkxzJzsKJGxhbmdbJ3ZpZXdfd2Vic2l0ZSddID0gJ1p1ciBXZWJzaXRlIGdlaGVuJzsKJGxhbmdbJ3dlYnNpdGUnXSA9ICdXZWJzZWl0ZSc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1dlYnNlaXRlJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdBdXNnZXfDpGhsdGUnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwo/Pg==]]></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[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGlmJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWpvdXRlciB1bmUgQ2F0w6lnb3JpZSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnQWpvdXRlciB1bmUgRW50cmVwcmlzZSc7CiRsYW5nWydhZGRlZGl0X2hpZXJhcmNoeSddID0gJ0Fqb3V0ZXIgb3UgbW9kaWZpZXIgdW4gw6lsw6ltZW50IGRlIGhpZXJhcmNoaWUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBam91dGVyIHVuZSBkw6lmaW5pdGlvbiBkZSBjaGFtcCc7CiRsYW5nWydhZGRoaWVyJ10gPSAnQWpvdXRlciB1biDDqWzDqW1lbnQgZGUgaGllcmFyY2hpZSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnQWpvdXRlciB1biBMaWVuJzsKJGxhbmdbJ2FkZHJlc3MnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXNzZSc7CiRsYW5nWydhZGRfY2F0ZWdvcnknXSA9ICdBam91dGVyIHVuZSBjYXTDqWdvcmllJzsKJGxhbmdbJ2FkZF9lZGl0X2NhdGVnb3J5J10gPSAnQWpvdXRlci9Nb2RpZmllciB1bmUgY2F0w6lnb3JpZSc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnVmlzaWJsZSB1bmlxdWVtZW50IHBhciBsXCdhZG1pbmlzdHJhdGV1cic7CiRsYW5nWydhbGJ1bSddID0gJ1Bob3Rvcyc7CiRsYW5nWydhbnknXSA9ICdUb3VzJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICfDinRlcy12b3VzIHPDu3IgZGUgc3VwcHJpbWVyIGNldCDDqWzDqW1lbnQgPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRhbnQnOwokbGFuZ1snYmFkbmFtZWdpdmVuJ10gPSAnTGUgbm9tIGVudHLDqWUgblwnZXN0IHBhcyB2YWxpZGUgKGxlcyBub21zIGRvaXZlbnQgcmVzcGVjdGVyIGxlcyBjb250cmFpbnRlcyBkXCdVUkwpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXInOwokbGFuZ1snY2FudXNlcmVkaXQnXSA9ICdMZXMgdXRpbGlzYXRldXJzIEZFVXNlcnMgcGV1dmVudC1pbHMgw6lkaXRlciBjZSBjaGFtcCA/JzsKJGxhbmdbJ2NhbnVzZXJ2aWV3J10gPSAnTGVzIHV0aWxpc2F0ZXVycyBGRVVzZXJzIHBldXZlbnQtaWxzIHZvaXIgY2UgY2hhbXAgPyc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0w6lnb3JpZXMnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXTDqWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXTDqWdvcmllIEFqb3V0w6llJzsKJGxhbmdbJ2NhdGVnb3J5ZGVsZXRlZCddID0gJ0NhdMOpZ29yaWUgc3VwcHJpbcOpZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkZSBMaXN0ZSBkZSBDYXTDqWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0xpc3RlIGRlIENhdMOpZ29yaWUgTWlzZSDDoCBqb3VyJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIExlcyBHYWJhcml0cyBkZSBMaXN0ZSBkZSBDYXTDqWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdMOpZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnQ2F0w6lnb3JpZSBNaXNlIMOgIGpvdXInOwokbGFuZ1snY2F0X2V4dHJhaW5mbyddID0gJ0luZm8gc3VwcGzDqW1lbnRhaXJlIGRlIGNhdMOpZ29yaWUnOwokbGFuZ1snY2hlY2snXSA9ICdWw6lyaWZpZXInOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnRW50cmVwcmlzZXMnOwokbGFuZ1snY29tcGFueSddID0gJ0VudHJlcHJpc2UnOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRW50cmVwcmlzZSBham91dMOpZSc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0NvbXBhbmllIGVmZmFjw6llJzsKJGxhbmdbJ2NvbXBhbnlkaXJlY3RvcnknXSA9ICdBbm51YWlyZSBkXCdlbnRyZXByaXNlcyc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ05vbSBkZSBsXCdlbnRyZXByaXNlJzsKJGxhbmdbJ2NvbXBhbnl0ZXh0J10gPSAnRW50cmVwcmlzZSc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0VudHJlcHJpc2UgbWlzZSDDoCBqb3VyJzsKJGxhbmdbJ2NvbnRhY3RlbWFpbCddID0gJ0NvdXJyaWVsJzsKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnQ29vcmRvbm7DqWVzJzsKJGxhbmdbJ2NvcHknXSA9ICdDb3BpZXInOwokbGFuZ1snY3JlYXRlZCddID0gJ0Nyw6nDqSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0RhdGUgZGUgQ3LDqWF0aW9uJzsKJGxhbmdbJ2NyZWF0ZXVybHMnXSA9ICdDcsOpZXIgbGVzIFVSTHMnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1ZhbGV1ciBjb3VyYW50ZSc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgcGFyIGTDqWZhdXQnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IExlcyBjb250ZW51cyBkZSBjZXMgem9uZXMgZGUgdGV4dGUgc29udCB1dGlsaXPDqXMgcG91ciBkw6l0ZXJtaW5lciBsZSBjb250ZW51IHBhciBkw6lmYXV0IGRlcyBnYWJhcml0cyBsb3JzcXVlIGxcJ29uIGNsaXF1ZSBzdXIgIkFqb3V0ZXIgdW4gR2FiYXJpdCIgZGFucyBsYSB0YWJ1bGF0aW9uIGRlIGdhYmFyaXQgYXBwcm9wcmnDqWUuIE1vZGlmaWVyIGxlIGNvbnRlbnUgZGUgY2VzIHpvbmVzIG5cJ2EgcGFzIGRcJ2VmZmV0IGltbcOpZGlhdCBzdXIgbGUgc2l0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU3VwcHJpbWVyJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnU3VwcHJpbWVyIHVuZSBDYXTDqWdvcmllJzsKJGxhbmdbJ2RlbGV0ZWNvbXBhbnknXSA9ICdTdXBwcmltZXIgdW5lIEVudHJlcHJpc2UnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdTdXBwcmltZXIgdW5lIGTDqWZpbml0aW9uIGRlIGNoYW1wJzsKJGxhbmdbJ2RlbGltaXRlciddID0gJ0TDqWxpbWl0ZXVyIGRlIGNoYW1wcyc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnRGVzY2VuZGFudCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJm5ic3A7JzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEw6l0YWlscyc7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0TDqXRhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIETDqXRhaWwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnR2FiYXJpdCBkZSBEw6l0YWlsIE1pcyDDoCBqb3VyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIGxlIEdhYmFyaXQgZGUgRMOpdGFpbCc7CiRsYW5nWydkaXNhYmxlJ10gPSAnRMOpc2FjdGl2ZXInOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEw6lzYWN0aXbDqSc7CiRsYW5nWydkb3duJ10gPSAnQmFzJzsKJGxhbmdbJ2RyYWZ0J10gPSAnQnJvdWlsbG9uJzsKJGxhbmdbJ2RyYWdfZHJvcF91cGxvYWQnXSA9ICdFbnZvaSBwYXIgZ2xpc3Nlci9kw6lwb3Nlcic7CiRsYW5nWydkcm9wX2hlcmUnXSA9ICdEw6lwb3NleiBsZXMgZmljaGllcnMgaWNpJzsKJGxhbmdbJ2Ryb3BfaGVyZV90b19kZWxldGUnXSA9ICdEw6lwb3NlciBsZXMgZmljaGllcnMgaWNpIGxlcyBzdXBwcmltZXJhIGRlIGxhIGdhbGVyaWUnOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWVyJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ01vZGlmaWVyIHVuZSBDYXTDqWdvcmllJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnTW9kaWZpZXIgdW5lIEVOdHJlcHJpc2UnOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnTW9kaWZpZXIgbGEgZMOpZmluaXRpb24gZFwndW4gY2hhbXAnOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ01vZGlmaWVyIGxcJ2FsYnVtIHBob3RvJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdNb2RpZmllciBsYSBjYXTDqWdvcmllJzsKJGxhbmdbJ2VkaXRfZmlsdGVyJ10gPSAnRmlsdHJlIGRcJ2FmZmljaGFnZSc7CiRsYW5nWydlbWFpbHRleHQnXSA9ICdDb3VycmllbCc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgY291cnJpZWwnOwokbGFuZ1snZXJyb3JfYWRkcmVzc19sb29rdXAnXSA9ICdQcm9ibMOobWUgbG9ycyBkZSBsYSByZWNoZXJjaGUgZGUgbFwnYWRyZXNzZSA6ICVzJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdVbiBjaGFtcCBBbGJ1bSBleGlzdGUgZMOpasOgLiBWb3VzIG5lIHBvdXZleiBlbiB1dGlsaXNlciBxdVwndW4gc2V1bCc7CiRsYW5nWydlcnJvcl9iYWR1cGxvYWQnXSA9ICdVbiBwcm9ibMOobWUgZXN0IHN1cnZlbnUgYXZlYyBsZSBmaWNoaWVyIGltcG9ydMOpJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnTGUgTm9tIGRlIGxcJ2VudHJlcHJpc2UgZXN0IGluY29ycmVjdCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZV9pbnVzZSddID0gJ1VuZSBlbnRyZXByaXNlIHBvcnRhbnQgZMOpasOgIGNlIG5vbSBlc3QgZGFucyBsYSBiYXNlIGRlIGRvbm7DqWUuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnlub3RkZWxldGVkJ10gPSAnQ2V0IGl0ZW0gblwnYSBwYXMgcHUgw6p0cmUgc3VwcHJpbcOpLi4uIHBldXQtw6p0cmUgcXVcJ3VuIGF1dHJlIG1vZHVsZSBkw6lwZW5kIGRlIGNldHRlIGRvbm7DqWUnOwokbGFuZ1snZXJyb3JfZGVsZXRlcGFyZW50J10gPSAnQ2V0IMOpbMOpbWVudCBuZSBwZXV0IHBhcyDDqnRyZSBzdXBwcmltw6kgY2FyIGlsIGNvbXBvcnRlIGRlcyDDqWzDqW1lbnRzIGVuZmFudHMnOwokbGFuZ1snZXJyb3JfZGVsaW1pdGVyJ10gPSAnVm91cyBkZXZleiBzcMOpY2lmaWVyIHVuIGTDqWxpbWl0ZXVyIGRlIGNoYW1wcyc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGUnXSA9ICdHw6luw6lyZXIgdW5lIGVycmV1ciAobWFpcyBjb250aW51ZXIpJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9jYXRlZ29yeSddID0gJ1VuIGNhdMOpZ29yaWUgw6lwb255bWUgZXhpc3RlIGTDqWrDoCc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY29tcGFueSddID0gJ1VuZSBlbnRyZXByaXNlIHBvcnRhbnQgY2Ugbm9tICglcykgZXhpc3RlIGTDqWrDoCc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnXSA9ICdVbiBjaGFtcCBhdmVjIGNlIG5vbSBleGlzdGUgZMOpasOgJzsKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ1BvdXIgdXRpbGlzZXIgY2V0dGUgZm9uY3Rpb24sIHZvdXMgZGV2ZXogw6p0cmUgY29ubmVjdMOpKGUpIGRlcHVpcyBmcm9udGVuZCBkdSBzaXRlJzsKJGxhbmdbJ2Vycm9yX2dlbmVyYXRldXJsJ10gPSAnVW4gcHJvYmzDqG1lIGVzdCBzdXJ2ZW51IGxvcnMgZGUgbGEgZ8OpbsOpcmF0aW9uIGRlIGxcJ1VSTCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfYmFkdmFsdWUnXSA9ICdVbmUgbWF1dmFpc2UgdmFsZXVyIGEgw6l0w6kgdHJvdXbDqWUgZGFucyBsZSBjaGFtcCAlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdSw6hnbGUgaW5jb25udWUgw6AgbGEgbGlnbmUgJWQnOwokbGFuZ1snZXJyb3JfaW52YWxpZF9wYXJhbSddID0gJ0xhIHZhbGV1ciBzcMOpY2lmacOpZSAlcyBlc3QgaW52YWxpZGUnOwokbGFuZ1snZXJyb3Jfa21saW1wb3J0X25vYWRkcmVzcyddID0gJ0F1Y3VuZSBhZHJlc3NlIHRyb3V2w6llJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgdmFsdWUgd2FzIG1pc3NpbmcgZnJvbSB0aGUgZm9ybSBpbnB1dCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnQXVjdW4gZmljaGllciBuXCdhIMOpdMOpIGltcG9ydMOpJzsKJGxhbmdbJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnXSA9ICdEw6lzb2zDqSwgYXVjdW5lIGVudHJlcHJpc2UgbmUgY29ycmVzcG9uZCBhdXggY3JpdMOocmVzIGRlIHJlY2hlcmNoZSc7CiRsYW5nWydlcnJvcl9ub2Ryb3Bkb3dub3B0aW9ucyddID0gJ0F1Y3VuZSBvcHRpb24gZGUgbWVudSBkw6lyb3VsYW50IGZvdXJuaWUnOwokbGFuZ1snZXJyb3Jfbm9mZXUnXSA9ICdOZSBwZXV0IHBhcyB0cm91dmVyIGxlIG1vZHVsZSBGcm9udEVuZFVzZXJzJzsKJGxhbmdbJ2Vycm9yX25vZmlsdGVybWF0Y2hlcyddID0gJ0F1Y3VuZSBlbnRyZXByaXNlIG5lIGNvcnJlc3BvbmQgYXV4IGNyaXTDqHJlcyBkZSByZWNoZXJjaGUnOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdBdWN1bmUgbG9uZ3VldXIgbWF4aW11bSBmb3VybmllJzsKJGxhbmdbJ2Vycm9yX3ByZWZpeF9tc2cnXSA9ICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSDDoCBsYSBsaWduZSA6ICVkOiAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWQnXSA9ICdFcnJldXIgZFwndXBsb2FkIGR1IGZpY2hpZXInOwokbGFuZ1snZXJyX2ludmFsaWR1bml0cyddID0gJ0xcJ3VuaXTDqSBzcMOpY2lmacOpZSBlc3QgaW52YWxpZGUuIFZhbGV1cnMgdmFsaWRlcyA6IG1pLG1pbGUsbWlsZXMsa20sayc7CiRsYW5nWydleHBpcmVzJ10gPSAnRXhwaXJlJzsKJGxhbmdbJ2V4cG9ydGNzdiddID0gJ0V4cG9ydCBhdSBmb3JtYXQgQ1NWJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0luZm8gZXh0cmEgMSc7CiRsYW5nWydleHRyYTInXSA9ICdJbmZvIGV4dHJhIDInOwokbGFuZ1snZXh0cmEzJ10gPSAnSW5mbyBleHRyYSAzJzsKJGxhbmdbJ2ZheCddID0gJ1TDqWzDqWNvcGllJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdUw6lsw6ljb3BpZSc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0TDqWZpbml0aW9uIGR1IENoYW1wJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdEw6lmaW5pdGlvbiBkdSBDaGFtcCBBam91dMOpJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ0TDqWZpbml0aW9uIGR1IENoYW1wIFN1cHByaW3DqSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEw6lmaW5pdGlvbiBkZXMgQ2hhbXBzJzsKJGxhbmdbJ2ZpZWxkZGVmdGV4dCddID0gJ0TDqWZpbml0aW9uIGR1IENoYW1wJzsKJGxhbmdbJ2ZpZWxkZGVmdXBkYXRlZCddID0gJ0TDqWZpbml0aW9uIGR1IENoYW1wIE1pc2Ugw6Agam91cic7CiRsYW5nWydmaWVsZHMnXSA9ICdDaGFtcHMnOwokbGFuZ1snZmllbGRfYWN0aXZpdHknXSA9ICdBY3Rpdml0w6lzIHtDR0dvb2dsZU1hcHMpJzsKJGxhbmdbJ2ZpZWxkX2FsYnVtJ10gPSAnQWxidW0gKGdyb3VwZSBkXCdpbWFnZXMpJzsKJGxhbmdbJ2ZpZWxkX2NoZWNrYm94J10gPSAnQm/DrnRlIMOgIGNvY2hlcic7CiRsYW5nWydmaWVsZF9kcm9wZG93biddID0gJ01lbnUgZMOpcm91bGFudCc7CiRsYW5nWydmaWVsZF9maWxlJ10gPSAnRmljaGllcic7CiRsYW5nWydmaWVsZF9pY29uJ10gPSAnSWPDtG5lIChDR0dvb2dsZU1hcHMpJzsKJGxhbmdbJ2ZpZWxkX2ltYWdlJ10gPSAnSW1hZ2UnOwokbGFuZ1snZmllbGRfbXVsdGlzZWxlY3QnXSA9ICdTw6lsZWN0aW9uIG11bHRpcGxlJzsKJGxhbmdbJ2ZpZWxkX3RleHRhcmVhJ10gPSAnWm9uZSBkZSBUZXh0ZSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnQm9pdGUgZGUgVGV4dGUnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJlJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlcyddID0gJ0dhYmFyaXQgZFwnw6lkaXRpb24gZFwndW5lIGVudHJlcHJpc2UnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGV1cGRhdGVkJ10gPSAnR2FiYXJpdCBkZSBsXCdFbnRyZXByaXNlIE1pcyDDoCBqb3VyJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIGxlIEdhYmFyaXQgZGUgRm9ybXVsYWlyZSBkZSBsYSBwYXJ0aWUgcHVibGlxdWUgKEZyb250RW5kKSc7CiRsYW5nWydnZXR1cmwnXSA9ICdDYWxjdWxlciBsXCdVUkwnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2lnbm9yZSddID0gJ0lnbm9yZXInOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2UmbmJzcDsnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0ZXIgQ1NWJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ1PDqWxlY3Rpb25uZXIgbGUgZmljaGllciBDU1YnOwokbGFuZ1snaW1wb3J0X2ttbCddID0gJ0ltcG9ydGVyIHVuIGZpY2hpZXIgS01MJzsKJGxhbmdbJ2luZm9fZHJhZ19kcm9wJ10gPSAnQXZlYyBsYSBwbHVwYXJ0IGRlcyBuYXZpZ2F0ZXVycyBtb2Rlcm5lcyAow6AgbFwnZXhjZXB0aW9uIGRcJ0lFKSwgdm91cyBwb3V2ZXogZ2xpc3NlciBwbHVzaWV1cnMgZmljaGllcnMgZGFucyBsYSB6b25lIGRlIGTDqXDDtHQuIElscyBzZXJvbnQgYXV0b21hdGlxdWVtZW50IGVudm95w6lzIGV0IGFqb3V0w6lzIMOgIGxcJ2FsYnVtIHBob3Rvcyc7CiRsYW5nWydpbmZvX2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdTcMOpY2lmaWUgbGVzIG9wdGlvbnMgcG91ciBsZSBtZW51IGTDqXJvdWxhbnQuIFVuZSBsaWduZSBwYXIgZW50csOpZS4gU8OpcGFyZXIgbGVzIGNsZWZzIGRlcyB2YWxldXJzIGF2ZWMgbGUgIj0iLiBFeCA6IGNsZWY9dmFsZXVyJzsKJGxhbmdbJ2luZm9fbm9maWVsZHMnXSA9ICdBdWN1biBjaGFtcCBuXCdlc3QgZMOpZmluaSc7CiRsYW5nWydpbmZvX3ByZXBlbmRfd2Vic2l0ZV9odHRwJ10gPSAnU2kgdW5lIGFkcmVzc2UgZGUgc2l0ZSBlc3Qgc3DDqWNpZmnDqWUsIGV0IHF1XCdlbGxlIG5lIGNvbW1lbmNlIHBhcyBwYXIgaHR0cCwgaHR0cHMsIGZ0cC4uLiBodHRwOi8vIHNlcmEgYWpvdXTDqSBsb3JzIGRlIGxhIHNhdXZlZ2FyZGUnOwokbGFuZ1snaW5mb191c2VyZWRpdCddID0gJ1NpIGFjdGl2w6ksIHNldWxzIGxlcyBhZG1pbnMgcGV1dmVudCDDqWRpdGVyIGNlIGNoYW1wIHBvdXIgY2hhcXVlIGVudHLDqWUnOwokbGFuZ1snaW5mb191c2VydmlldyddID0gJ1NpIGFjdGl2w6ksIHRvdXMgbGVzIHV0aWxpc2F0ZXVycyBwZXV2ZW50IHZvaXIgY2UgY2hhbXAuIFNpIGTDqXNhY3RpdsOpLCBzZXVscyBsXCdhZG1pbiBldCBsZSBwcm9wcmnDqXRhaXJlIHBldXZlbnQgbGUgdm9pcic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnUmV0b3VyJzsKJGxhbmdbJ2xibF9zZXR0aW5ncyddID0gJ1Byw6lmw6lyZW5jZXMnOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ0dhYmFyaXRzJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnTG9nb8KgJzsKJGxhbmdbJ2xvbmdpdHVkZSddID0gJ0xvbmdpdHVkZSc7CiRsYW5nWydsb29rdXAnXSA9ICdSZWNoZXJjaGVyIGxlcyBjb29yZG9ubsOpZXMnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTG9uZ2V1ciBNYXgnOwokbGFuZ1snbWF4bGVuZ3RodGV4dCddID0gJ0xvbmdldXIgTWF4JzsKJGxhbmdbJ21heF9sZW5ndGgnXSA9ICdMb25nZXVyIE1heCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsZSBkZSB0eXBlIHLDqXBlcnRvaXJlIHBvdXIgbGVzIGVudHJlcHJpc2VzLiBQZXJtZXQgZFwnYWpvdXRlci/DqWRpdGVyL2ltcG9ydGVyL2V4cG9ydGVyIGRlcyBpbmZvcm1hdGlvbnMgZFwnZW50cmVwcmlzZXMsIGV0IGRlIG5vbWJyZXVzZXMgZmHDp29ucyBkZSBsZXMgYWZmaWNoZXIsIHJlY2hlcmNoZSBpbmNsdXNlLiBDZSBtb2R1bGUgZXN0IGJpZW4gaW50w6lncsOpIGF1IG1vZHVsZSBDR0dvb2dsZU1hcHMuJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnTW9kaWZpw6knOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGVybmnDqHJlIG1vZGlmaWNhdGlvbiBsZSc7CiRsYW5nWydtc2dfYnVsa2RlbCddID0gJyVkIGVudHJlcHJpc2VzIHN1cHByaW3DqWVzJzsKJGxhbmdbJ21zZ19jYXRlZ29yeXNhdmVkJ10gPSAnQ2F0w6lnb3JpZSBlbnJlZ2lzdHLDqWUnOwokbGFuZ1snbXNnX2NvbXBhbnljb3BpZWQnXSA9ICdDb21wYWduaWUgY29wacOpZSwgdmV1aWxsZXogw6lkaXRlciBsZXMgZMOpdGFpbHMgZFwnZW5yZWdpc3RyZW1lbnQgcG91ciBsYSBub3V2ZWxsZSBjb21wYWduaWUnOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ09ww6lyYXRpb24gZFwnaW1wb3J0YXRpb24gcsOpYWxpc8OpZSBhdmVjIHN1Y2PDqHMnOwokbGFuZ1snbXNnX3NldHRpbmdzX2NoYW5nZWQnXSA9ICdQYXJhbcOodHJlcyBtb2RpZmnDqXMnOwokbGFuZ1snbmFtZSddID0gJ05vbSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ05vbSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1ZvdXMgZGV2ZXogYXZvaXIgbGEgcGVybWlzc2lvbiBcJyVzXCcgcG91ciBlZmZlY3R1ZXIgY2V0dGUgYWN0aW9uLic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0cyBkZSBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZSc7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9Nb2RpZmllciB1biBnYWJhcml0IGRlIGZvcm11bGFpcmUgcmVjaGVyY2hlJzsKJGxhbmdbJ25ld3NlYXJjaF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgZm9ybXVsYWlyZSBkZSByZWNoZXJjaGUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAnTm9uJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ0F1Y3VuIE5vbSBkXCdFbnRyZXByaXNlIGZvdXJuaSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0F1Y3VuIE5vbSBmb3VybmknOwokbGFuZ1snbm9uZSddID0gJ0F1Y3VuJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdDZSBuXCdlc3QgcGFzIHVuIG5vbWJyZSc7CiRsYW5nWydvZiddID0gJ0RlJzsKJGxhbmdbJ29wX2NhbmNlbGxlZCddID0gJ0FubnVsw6knOwokbGFuZ1snb3JnYW5pemF0aW9uJ10gPSAnT3JnYW5pc2F0aW9uJzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ1JlbXBsYWNlcic7CiRsYW5nWydvd25lciddID0gJ1Byb3ByacOpdGFpcmUnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOwokbGFuZ1sncGFnZWxpbWl0J10gPSAnRW50cmVwcmlzZXMgcGFyIHBhZ2UnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnRGV0ZXJtaW5lIGxlIGNvbXBvcnRlbWVudCBwcmltYWlyZSBkZSBjZSBtb2R1bGUuIExlcyB2YWxldXJzIHBvc3NpYmxlcyBzb250IDoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBBZmZpY2hlIGxhIGxpc3RlIGRlcyBjYXTDqWdvcmllcy4gTGVzIHV0aWxpc2F0ZXVycyBwZXV2ZW50IHBhc3NlciBhdSBtb2RlIFNvbW1haXJlIHB1aXMgYXUgbW9kZSBEw6l0YWlsLjwvbGk+DQogIDxsaT48c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4gLS0gQWZmaWNoZSBsZXMgZW50cmVwcmlzZXMgZW4gbW9kZSBTb21tYWlyZS48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBBZmZpY2hlIGxlcyBpbmZvcm1hdGlvbnMgRMOpdGFpbGzDqWVzIGRcJ3VuZSBlbnRyZXByaXNlIChtb2RlIETDqXRhaWwpLjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIEFmZmljaGUgdW4gZm9ybXVsYWlyZSBwZXJtZXR0YW50IGRlIG1ldHRyZSDDoCBqb3VyIGxlcyBpbmZvcm1hdGlvbnMgZFwndW5lIGVudHJlcHJpc2UuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnTG9yc3F1XCd1dGlsaXPDqSBhdmVjIGxlIG1vZGUgU29tbWFpcmUgPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW3DqHRyZSwgcXVpIGRvaXQgY29ycmVzcG9uZHJlIGF1IG5vbSBkXCd1bmUgY2F0w6lnb3JpZSBleGlzdGFudGUsIHNlcmEgdXRpbGlzw6kgcG91ciBhZmZpY2hlciBzZXVsZW1lbnQgbGVzIGVudHJlcHJpc2VzIGRlIGNldHRlIGNhdMOpZ29yaWUuIChVbmUgbGlzdGUgc8OpcGFyw6llIHBhciBkZXMgdmlyZ3VsZXMgcGV1dCDDqnRyZSBzcMOpY2lmacOpZSkuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PVwncmVnaW9uX25vcnRoLHJlZ2lvbl9zb3V0aFwnIGNhdGVnb3J5Mj1cJ2NhcnMsdHJ1Y2tzXCd9IHdvdWxkIHJldHVybiBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IHdlcmUgaW4gdGhlIGVpdGhlciBvZiB0aGUgcmVnaW9uIG5vcnRoIG9yIHJlZ2lvbiBzb3V0aCBjYXRlZ29yaWVzIEFORCBBTFNPIGluIGVpdGhlciBvZiB0aGUgY2FycyBvciB0cnVja3MgY2F0ZWdvcmllcyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1Nww6ljaWZpZSB1biBnYWJhcml0IChwYXIgbm9tKSDDoCB1dGlsaXNlciBsb3JzIGRlIGxcJ2FmZmljaGFnZSBkZSBsYSBWdWUgZW4gTGlzdGUgZGUgbGEgQ2F0w6lnb3JpZS4nOwokbGFuZ1sncGFyYW1fY29tcGFueWlkJ10gPSAnUmVxdWlzIHBvdXIgbGVzIG1vZGVzIGTDqXRhaWwgZXQgw6lkaXRpb24gZHUgRnJvbnRFbmQsIGNlIHBhcmFtw6h0cmUgZMOpdGVybWluZSBxdWVsIGVucmVnaXN0cmVtZW50IGRcJ2VudHJlcHJpc2UgZG9pdCDDqnRyZSDDqWRpdMOpIG91IHZ1Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnU3DDqWNpZmllIHVuIGFsaWFzIGRlIHBhZ2UgKHBhciBub20pIMOgIHV0aWxpc2VyIHBvdXIgYWZmaWNoZXIgbGUgZMOpdGFpbCBkXCd1biBlbnJlZ2lzdHJlbWVudC4gPHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2UgcGFyYW3DqHRyZSBuXCdlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZXMgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnU3DDqWNpZmllIHVuIGdhYmFyaXQgKHBhciBub20pIMOgIHV0aWxpc2VyIGxvcnMgZGUgbFwnYWZmaWNoYWdlIGRlIGxhIHZ1ZSBkZSBEw6l0YWlsLiAgPHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2UgcGFyYW3DqHRyZSBuXCdlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZXMgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3DDqWNpZmllIHVuIGdhYmFyaXQgKHBhciBub20pIMOgIHV0aWxpc2VyIGxvcnMgZGUgbFwnYWZmaWNoYWdlIGR1IGZvcm11bGFpcmUgZFwnw6lkaXRpb24gZFwnZW50cmVwcmlzZSBzdXIgbGUgRnJvbnRFbmQuJzsKJGxhbmdbJ3BhcmFtX2hpZXInXSA9ICdBcHBsaWNhYmxlIHRvIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFuZCA8ZW0+aGllcmxpc3Q8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGhpZXJhcmNoeSBuYW1lIG9mIGNvbXBhbmllcyB0byBkaXNwbGF5LiAgSW4gdGhlIGRlZmF1bHQgYWN0aW9uLCBXaWxkY2FyZHMgYXJlIGFjY2VwdGVkLCBpLmU6ICIqc29tZWhpZXJhcmNoeW5hbWUqIi4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSJhKiInOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnV2hlbiB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCBvciB0aGUgPGVtPnNlYXJjaDwvZW0+IG1vZGUsIHRoaXMgd2lsbCBsaW1pdCB0aGUgcmVzdWx0cyB0byBhIHNwZWNpZmllZCBudW1iZXIuJzsKJGxhbmdbJ3BhcmFtX3JhZGl1cyddID0gJ1Nww6ljaWZpZXogbGUgcmF5b24gKGVuIG1pbGVzKSBwb3VyIGxhIHJlY2hlcmNoZSBwYXIgcmF5b24uIERvaXQgw6p0cmUgdXRpbGlzw6kgZW4gY29uam9uY3Rpb24gYXZlYyBsZXMgcGFyYW3DqHRyZXMgbGF0aXR1ZGUvbG9uZ2l0dWRlLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5zZWFyY2g8L2VtPiBtb2RlLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlLic7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBzZXVsZW1lbnQgw6AgbFwnYWN0aW9uIFwnY2F0ZWdvcnlsaXN0XCcsIHNpIGNlIHBhcmFtw6h0cmUgZXN0IHNww6ljaWZpw6ksIHRvdXRlcyBsZXMgY2F0w6lnb3JpZXMgc2Vyb250IGFmZmljaMOpZXMsIG3Dqm1lIGNlbGxlcyBzYW5zIGVudHJlcHJpc2UuJzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgc2V1bGVtZW50IGVuIG1vZGUgU29tbWFpcmUsIGNlIHBhcmFtw6h0cmUgZMOpdGVybWluZSBsZSB0cmkgcG91ciBsXCdhZmZpY2hhZ2UgZGVzIGVudHJlcHJpc2VzLiBWYWxldXJzIHBvc3NpYmxlcyA6DQo8dWw+DQogIDxsaT48c3Ryb25nPmNvbXBhbnlfbmFtZTwvc3Ryb25nPiAtLSBOb20gZGUgbFwnZW50cmVwcmlzZTwvbGk+DQogIDxsaT5waG9uZSAtLSBUw6lsw6lwaG9uZTwvbGk+DQogIDxsaT5mYXggLS0gVMOpbMOpY29waWU8L2xpPg0KICA8bGk+ZW1haWwgLS0gQ291cnJpZWw8L2xpPg0KICA8bGk+d2Vic2l0ZSAtLSBBZHJlc3NlIGR1IHNpdGUgaW50ZXJuZXQ8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBEYXRlIGRlIGNyw6lhdGlvbjwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBEYXRlIGRlIG1vZGlmaWNhdGlvbjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZpZSBsXCdvcmRyZSBkZSB0cmkgZGVzIGNoYW1wcyBkYW5zIGxhIHZ1ZSBTb21tYWlyZS4gVmFsZXVycyBwb3NzaWJsZXMgOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gT3JkcmUgQXNjZW5kYW50PC9saT4NCiAgPGxpPmRlc2MgLS0gT3JkcmUgRGVzY2VuZGFudDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdTcGVjaWZpZSB1biBnYWJhcml0IChwYXIgbm9tKSDDoCB1dGlsaXNlciBwb3VyIGFmZmljaGVyIGxhIHZ1ZSBTb21tYWlyZS4gPHN0cm9uZz5Ob3RlIDo8L3N0cm9uZz4gQ2UgcGFyYW3DqHRyZSBuXCdlc3QgcGFzIGNvbXBhdGlibGUgYXZlYyBsZXMgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3Bvc3RhbF9jb2RlJ10gPSAnQ29kZSBQb3N0YWwnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdMZSBtb2R1bGUgXCdBbm51YWlyZSBkXCdlbnRyZXByaXNlXCcgYSDDqXTDqSBpbnN0YWxsw6kuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdMZSBtb2R1bGUgXCdBbm51YWlyZSBkXCdlbnRyZXByaXNlXCcgYSDDqXTDqSBkw6lzaW5zdGFsbMOpLiBUb3V0ZXMgbGVzIGVudHJlcHJpc2VzIG9udCDDqXTDqSBlZmZhY8OpZXMuJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHLDqWbDqXJlbmNlcyc7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBkw6lzaW5zdGFsbGVyIGNlIG1vZHVsZSA/IExhIGTDqXNpbnN0YWxsYXRpb24gZWZmYWNlcmEgdG91dGVzIGxlcyBlbnRyZXByaXNlcyBjcsOpZXMgZXQgbGV1cnMgaW5mb3JtYXRpb25zIGFzc29jacOpZXMuJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfYWRkY29tcGFueSddID0gJ0Fqb3V0IGRcJ3VuZSBub3V2ZWxsZSBlbnRyZXByaXNlJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdBam91dC9FZGl0aW9uIGRcJ3VuZSBkw6lmaW5pdGlvbiBkZSBjaGFtcCc7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdBdXRvcmlzZXIgbGVzIG5vbXMgZFwnZW50cmVwcmlzZSBlbiBkb3VibGUgPyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcmllc19pbXBvcnRlZCddID0gJ0NhdMOpZ29yaWVzIGltcG9ydMOpZXMnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5Y29sdW1uJ10gPSAnQ29sb25uZSBkZXMgY2F0w6lnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NoZWNrX2R1cGxpY2F0ZXMnXSA9ICdSZWNoZXJjaGVyIGRlcyBub21zIGRlIGNvbXBhZ25pZSBlbiBkb3VibG9uID8nOwokbGFuZ1sncHJvbXB0X2NvbXBhbmllc19pbXBvcnRlZCddID0gJ0VudHJlcHJpc2VzIGltcG9ydMOpZXMnOwokbGFuZ1sncHJvbXB0X2RlbGltZXRlciddID0gJ0TDqWxpbWl0YXRldXIgZGUgY2hhbXAnOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdMYSBwYWdlIHBhciBkw6lmYXV0IHN1ciBsYXF1ZWxsZSBsYSByZWRpcmVjdGlvbiBzZXJhIHBhcmFtw6l0csOpZSBlbiBtb2RlIETDqXRhaWwnOwokbGFuZ1sncHJvbXB0X2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdPcHRpb25zIGR1IG1lbnUgZMOpcm91bGFudCc7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdFZGl0aW9uIGRlIGxcJ2VudHJlcHJpc2UnOwokbGFuZ1sncHJvbXB0X2VkaXRvcjInXSA9ICdVdGlsaXNlciBsZSBub3V2ZWwgw6lkaXRldXIgc3VyIGxlIHNpdGUnOwokbGFuZ1sncHJvbXB0X2VtYWlsX2lzaHRtbCddID0gJ0NvdXJyaWVsIGF1IGZvcm1hdCBIVE1MJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9zdWJqZWN0J10gPSAnU3VqZXQgZHUgY291cnJpZWwnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBjb3VycmllbCc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRXJyZXVycyc7CiRsYW5nWydwcm9tcHRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMgZGUgZmljaGllcnMgdmFsaWRlcyc7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnRMOpZmluaXRpb25zIGRlIGNoYW1wcyBpbXBvcnTDqWVzJzsKJGxhbmdbJ3Byb21wdF9nZW5lcmFsX3NldHRpbmdzJ10gPSAnUHLDqWbDqXJlbmNlcyBnw6luw6lyYWxlcyc7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdQb3NpdGlvbnMgaGnDqXJhcmNoaXF1ZXMgY3LDqWVzJzsKJGxhbmdbJ3Byb21wdF9pY29uJ10gPSAnSWPDtG5lJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY3N2ZmlsZSddID0gJ0ltcG9ydGVyIHVuIGZpY2hpZXIgQ1NWJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGRkZWZzJ10gPSAnQ3JlYXRlIG1pc3NpbmcgImFkZGl0aW9uYWwgZmllbGQiIGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICJhZGRpdGlvbmFsIGZpZWxkIiB2YWx1ZXMgb24gaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdOb21icmUgZFwnZXJyZXVycyByZW5jb250csOpZXMnOwokbGFuZ1sncHJvbXB0X3BhZ2VsaW1pdCddID0gJ0xlIG5vbWJyZSBkXCdlbnJlZ2lzdHJlbWVudHMgw6AgYWZmaWNoZXIgZW4gbW9kZSBTb21tYWlyZSc7CiRsYW5nWydwcm9tcHRfcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdQcsOpZml4ZXIgbGVzIFVSTHMgZGUgc2l0ZXMgYXZlYyBodHRwOi8vJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ09yZHJlIGRlIHRyaSBwYXIgZMOpZmF1dCBlbiBtb2RlIFNvbW1haXJlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnTFwnb3JkcmUgZGUgdHJpIHBhciBkw6lmYXV0IGVuIG1vZGUgU29tbWFpcmUgPGVtPihuZSBzXCdhcHBsaXF1ZSBwYXMgc2kgbFwnb3JkcmUgZXN0IFwncmFuZG9tXCcgb3UgXCdhbMOpYXRvaXJlXCc8L2VtPic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdHYWJhcml0JzsKJGxhbmdbJ3Byb21wdF91c2Vfb2xkc2VhcmNoJ10gPSAnVXRpbGlzZXIgbFwnYW5jaWVubmUgZm9uY3Rpb24gZGUgcmVjaGVyY2hlIChuZSBzdXBwb3J0ZSBwYXMgbGVzIHJlcXXDqnRlcyBzdXIgbGVzIGTDqWZpbml0aW9ucyBkZSBjaGFtcHMsIGV0IG5lIGRvbm5lIHBhcyBkXCdpbmZvcm1hdGlvbnMgZGUgY2F0w6lnb3JpZXMgZGFucyBsZXMgcsOpc3VsdGF0cyknOwokbGFuZ1sncHVibGljJ10gPSAnUHVibGlxdWUnOwokbGFuZ1sncHVibGlzaCddID0gJ1B1YmxpZXInOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGnDqSc7CiRsYW5nWydyYWRpdXMnXSA9ICdSYXlvbic7CiRsYW5nWydyYW5kb20nXSA9ICdBbMOpYXRvaXJlJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSw6lvcmRvbm5lcic7CiRsYW5nWydyZW9yZGVyX21vZGUnXSA9ICdMZSBtb2RlIHBvdXIgcsOpb3Jkb25uZXIgYSDDqXTDqSBhY3RpdsOpLiBHbGlzc2V6LWTDqXBvc2V6IGxlcyBpdGVtcyBkYW5zIGxcJ29yZHJlIGTDqXNpcsOpLiBQb3VyIGFubnVsZXIgbFwnb3DDqXJhdGlvbiwgY2xpcXVlciBzdXIgImFubnVsZXIiLiBQT3VyIHN1YXZlZ2FyZGVyIGxlcyBjaGFuZ2VtZW50cywgY2xpcXVlciBzdXIgImVudm95ZXIiJzsKJGxhbmdbJ3Jlc2V0J10gPSAnUsOpaW5pdGlhbGlzZXInOwokbGFuZ1sncmVzZXRhbGwnXSA9ICdUb3V0IHLDqWluaXRpYWxpc2VyJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzdGF1cmVyIGxlcyBQYXJhbcOodHJlcyBwYXIgZMOpZmF1dCc7CiRsYW5nWydyZXNldF90b19mYWN0b3J5J10gPSAnUmVtZXR0cmUgYXV4IHZhbGV1cnMgcGFyIGTDqWZhdXQnOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdDZXR0ZSBvcMOpcmF0aW9uIHZhIHLDqWluaXRpYWxpc2VyIGxlIGNvbnRlbnUgZHUgZ2FiYXJpdCBhdmVjIGNlbHVpIHBhciBkw6lmYXV0LiBWb3VsZXotdm91cyBjb250aW51ZXIgPyc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXRvdXInOwokbGFuZ1snc2VhcmNoJ10gPSAnUmVjaGVyY2hlcic7CiRsYW5nWydzZWFyY2hlcyddID0gJ1JlY2hlcmNoZXMnOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ0dhYmFyaXQgZGUgZm9ybXVsYWlyZSBkZSByZWNoZXJjaGUnOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBhIFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaF9jYXRlZ29yaWVzJ10gPSAnQ2F0w6lnb3JpZXMnOwokbGFuZ1snc2VhcmNoX2RhdGUnXSA9ICdEYXRlJzsKJGxhbmdbJ3NlYXJjaF9oaWVyJ10gPSAnSGnDqXJhcmNoaWUnOwokbGFuZ1snc2VhcmNoX2lwJ10gPSAnQWRyZXNzZSBJUCc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdTw6lsZWN0aW9ubmVyIHVuJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdUb3V0IHPDqWxlY3Rpb25uZXInOwokbGFuZ1snc29ydGJ5J10gPSAnVHJpZXIgcGFyJzsKJGxhbmdbJ3NvcnRvcmRlciddID0gJ09yZHJlIGRlIHRyaSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXQnOwokbGFuZ1snc3VibWl0J10gPSAnRW52b3llcic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgU29tbWFpcmUnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJ0dhYmFyaXQgZGUgU29tbWFpcmUgTWlzIMOgIGpvdXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dGVyL01vZGlmaWVyIEdhYmFyaXQgZGUgU29tbWFpcmUnOwokbGFuZ1snc3lzZGVmYXVsdHMnXSA9ICdSZXN0YXVyZXIgbGVzIFBhcmFtw6h0cmVzIHBhciBkw6lmYXV0JzsKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1TDqWzDqXBob25lJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUw6lsw6lwaG9uZSc7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR1cmUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGTDqWZhdXQgZGUgTGlzdGUgZGUgQ2F0w6lnb3JpZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZMOpZmF1dCBkZSBEw6l0YWlsJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kYWxidW1fZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZMOpZmF1dCBkXCfDqWRpdGlvbiBkZSBsXCdhbGJ1bSBGcm9udEVuZCc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGZvcm1fZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZMOpZmF1dCBkdSBmb3JtdWxhaXJlIEZyb250RW5kJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kbGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkw6lmYXV0IGRlIGxpc3RlIEZyb250RW5kJzsKJGxhbmdbJ3RpdGxlX2dhbGxlcnlfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZMOpZmF1dCBkZSBnYWxlcmllJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGTDqWZhdXQgZGUgbGlzdGUgZGUgaGnDqXJhcmNoaWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X3JlcG9ydCddID0gJ1JhcHBvcnQgZFwnaW1wb3J0YXRpb24gQ1NWJzsKJGxhbmdbJ3RpdGxlX25ld3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0cyBkZSByZWNoZXJjaGUgcGFyIGTDqWZhdXQnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkw6lmYXV0IGRlIGxhIFJlY2hlcmNoZSc7CiRsYW5nWyd0aXRsZV9zdGF0c3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZMOpZmF1dCBkZSBzb21tYWlyZSBkZSBzdGF0aXN0aXF1ZXMnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdHYWJhcml0IHBhciBkw6lmYXV0IGR1IFNvbW1haXJlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3R5cGV0ZXh0J10gPSAnVHlwZSc7CiRsYW5nWyd1cCddID0gJ0hhdXQnOwokbGFuZ1sndXBkYXRlaGllciddID0gJ01ldHRyZSDDoCBqb3VyIGxlcyBwb3NpdGlvbnMgaGnDqXJhcmNoaXF1ZXMnOwokbGFuZ1sndXBsb2FkJ10gPSAnVMOpbMOpdmVyc2VyJzsKJGxhbmdbJ3VybCddID0gJ1VSTCc7CiRsYW5nWyd1cmxzJ10gPSAnVVJMUyc7CiRsYW5nWyd1cmxfYXV0b2NyZWF0ZSddID0gJ0Nyw6llciBhdXRvbWF0aXF1ZW1lbnQgZGVzIFVSTFMgdW5pcXVlcyc7CiRsYW5nWyd1cmxfY3JlYXRlb25jb3B5J10gPSAnQ3LDqWVyIGxlcyBVUkxzIGxvcnMgZGUgbGEgY29waWUnOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnRmFpcmUgdW5lIHJlZGlyZWN0aW9uIDMwMSB2ZXJzIGxlcyBub3V2ZWxsZXMgVVJMcyc7CiRsYW5nWyd1cmxfcmVxdWlyZWQnXSA9ICdVbmUgVVJMIGVzdCByZXF1aXNlJzsKJGxhbmdbJ3ZpZXdfd2Vic2l0ZSddID0gJ0FsbGVyIGF1IHNpdGUgd2ViJzsKJGxhbmdbJ3dlYnNpdGUnXSA9ICdTaXRlIFdlYic7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ1NpdGUgV2ViJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdQb3VyIGxhIHPDqWxlY3Rpb24nOwokbGFuZ1sneWVzJ10gPSAnT3VpJzsKPz4=]]></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[PD9waHAKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGl2JzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTGVnZyB0aWwga2F0ZWdvcmknOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0xlZ2cgdGlsIEZpcm1hJzsKJGxhbmdbJ2FkZGVkaXRfaGllcmFyY2h5J10gPSAnTGVnZyB0aWwgZWxlbHIgcmVkaWdlciBoaWVyYXJraSBlbmhldCc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0xlZ2cgdGlsIGZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdMZWdnIHRpbCBoaWVyYXJraSc7CiRsYW5nWydhZGRsaW5rJ10gPSAnTGVnZyB0aWwgbGVua2UnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzc2UnOwokbGFuZ1snYWRkcmVzc3RleHQnXSA9ICdBZHJlc3NlJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeSddID0gJ0xlZ2cgdGlsIGthdGVnb3JpJzsKJGxhbmdbJ2FkZF9lZGl0X2NhdGVnb3J5J10gPSAnTGVnZyB0aWwvcmVkaWdlciBrYXRlZ29yaSc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnU3lubGlnIGt1biBmb3IgQWRtaW4nOwokbGFuZ1snYW55J10gPSAnQWxsZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSB2aWwgc2xldHRlIGRldHRlPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnZW5kZSc7CiRsYW5nWydiYWRuYW1lZ2l2ZW4nXSA9ICdOYXZuZXQgZXIgdWd5bGRpZyAodmFubGlndmlzIGLDuHIgbmF2bmVuZSB2w6ZyZSB1cmwgdmVubmxpZ2UpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0thbiBmb3JudGVuZGJydWtlcmUgcmVkaWdlcmUgZGV0dGUgZmVsdGV0Pyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0thbiBmb3JudGVuZGJydWtlcmUgc2UgZGV0dGUgZmVsdGV0Pyc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllcic7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdLYXRlZ29yaSBsYWd0IHRpbCc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdLYXRlZ29yaSBzbGV0dGV0JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpbGlzdGUgbWFsJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0thdGVnb3JpbGlzdGUgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGthdGVnb3JpIExpc3RlbWFsJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0thdGVnb3JpJzsKJGxhbmdbJ2NhdGVnb3J5dXBkYXRlZCddID0gJ0thdGVnb3JpIG9wcGRhdGVydCc7CiRsYW5nWydjYXRfZXh0cmFpbmZvJ10gPSAnS2F0ZWdvcmkgZWtzdHJhIGluZm8nOwokbGFuZ1snY2hlY2snXSA9ICdUZXN0JzsKJGxhbmdbJ2NvbXBhbmllcyddID0gJ0Zpcm1hJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55YWRkZWQnXSA9ICdGaXJtYSBsYWd0IHRpbCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0Zpcm1hIHNsZXR0ZXQnOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0Zpcm1ha2F0YWxvZyc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0Zpcm1hbmF2bic7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0Zpcm1hJzsKJGxhbmdbJ2NvbXBhbnl1cGRhdGVkJ10gPSAnRmlybWEgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2NvbmZpcm1fYXV0b2NyZWF0ZV91cmwnXSA9ICdPcHByZXR0IGF1dG9tYXRpc2sgVVJMZXIgZm9yIGVrc2lzdGVyZW5kZSBwb3N0ZXIgc29tIGlra2UgaGFyIFVSTCc7CiRsYW5nWydjb25maXJtX2VkaXRfYWxidW0nXSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCByZWRpZ2VyZSBhbGJ1bWV0LiBFbmh2ZXIgZW5kcmluZyBhdiBmaXJtYSBlZ2Vuc2thcGVuZSB2aWwgaWtrZSBibGkgbGFncmV0ISc7CiRsYW5nWydjb250YWN0ZW1haWwnXSA9ICdLb250YWt0LWVwb3N0JzsKJGxhbmdbJ2Nvb3JkaW5hdGVzJ10gPSAnS29vcmRpbmF0ZXInOwokbGFuZ1snY29weSddID0gJ0tvcGllcic7CiRsYW5nWydjcmVhdGVkJ10gPSAnT3BwcmV0dGV0JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0byBvcHByZXR0ZXQnOwokbGFuZ1snY3JlYXRldXJscyddID0gJ09wcHJldHQgVVJMZXInOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ07DpXbDpnJlbmRlIHZlcmRpJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZCBtYWwnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk1lcms6PC9zdHJvbmc+IElubmhvbGRldCBpIGRpc3NlIHRla3N0b21yw6VkZW5lIGJlbnl0dGVzIGZvciDDpSBiZXN0ZW1tZSBzdGFuZGFyZCBpbm5ob2xkIGkgbWFsZW5lIG7DpXIgZHUga2xpa2tlciAiTGVnZyB0aWwgbWFsIiBpIGRlbiBha3R1ZWxsZSBtYWwgZmxpa2VuLiBSZWRpZ2VyaW5nIGF2IGVuIGF2IGRpc3NlIHRla3N0b21yw6VkZW5lIHZpbCBpa2tlIGhhIG5vZW4gdW1pZGRlbGJhciBlZmZla3QgcMOlIGRpbiBuZXR0c2lkZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldHQnOwokbGFuZ1snZGVsZXRlY2F0ZWdvcnknXSA9ICdTbGV0dCBrYXRlZ29yaSc7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnU2xldHQgZmlybWEnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdTbGV0dCBmZWx0ZGVmaW5pc2pvbic7CiRsYW5nWydkZWxpbWl0ZXInXSA9ICdGZWx0c2tpbGxldGVnbic7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnU3lua2VuZGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNrcml2ZWxzZSc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWxqZXInOwokbGFuZ1snZGV0YWlsc3RleHQnXSA9ICdEZXRhbGplcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGptYWxlcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdEZXRhbGptYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGRldGFsam1hbCc7CiRsYW5nWydkaXNhYmxlJ10gPSAnRGVha3RpdmVyJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnSW5ha3RpdmVydCc7CiRsYW5nWydkb3duJ10gPSAnTmVkJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGQnOwokbGFuZ1snZHJhZ19kcm9wX3VwbG9hZCddID0gJ0RyYSBnbyBzbGlwcCBvcHBsYXN0aW5nJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ1NsaXBwIGZpbGVyIGhlcic7CiRsYW5nWydkcm9wX2hlcmVfdG9fZGVsZXRlJ10gPSAnw4Ugc2xpcHBlIGZpbGVyIGhlciB2aWwgZmplcm5lIGRlbSBmcmEgZ2FsbGVyaWV0JzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ1JFZGlnZXIga2F0ZWdvcmknOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdSZWRpZ2VyIGZpcm1hJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ1JlZGlnZXIgZmVsdGRlZmluaXNqb24nOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ1JlZGlnZXIgRm90byBBbGJ1bSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnUmVkaWdlciBrYXRlZ29yaSc7CiRsYW5nWydlZGl0X2ZpbHRlciddID0gJ1JlZGlnZXIgZmlsdGVyJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0Vwb3N0JzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1wb3N0IG1hbCc7CiRsYW5nWydlcnJvcl9hZGRyZXNzX2xvb2t1cCddID0gJ1Byb2JsZW0gbWVkIMOlIHNsw6Ugb3BwIGFkcmVzc2U6ICVzJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdFdCBhbGJ1bWZlbHQgZWtzaXN0ZXJlciBhbGxlcmVkZS4gS3VuIGV0IGVyIHRpbGxhdHQnOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnRXQgcHJvYmxlbSBvcHBzdG9kIG1lZCBkZW4gb3BwbGFzdGVkZSBmaWxlbic7CiRsYW5nWydlcnJvcl9iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBvcHByZXR0ZWxzZSBvcHBkYWdldCAlZCBmZWlsJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5Y29sdW1uX25vdGZvdW5kJ10gPSAnS2F0ZWdvcmkga29sb25uZSAlcyBpa2tlIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9jb21wYW55bmFtZSddID0gJ0Zpcm1hbmF2bmV0IGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfY29tcGFueW5hbWVfaW51c2UnXSA9ICdFdCBmaXJtYSBtZWQgZGV0IG5hdm5ldCBmaW5uZXMgYWxsZXJlZGUgaSBkYXRhYmFzZW4nOwokbGFuZ1snZXJyb3JfY29tcGFueW5vdGRlbGV0ZWQnXSA9ICdFbmhldGVuIGt1bm5lIGlra2Ugc2xldHRlcy4uLiBrYW5za2plIGVuIGFubmVuIG1vZHVsIGVyIGF2aGVuZ2lnIGF2IGRhdGFlbic7CiRsYW5nWydlcnJvcl9kZWxldGVwYXJlbnQnXSA9ICdEZXR0ZSBlbGVtZW50ZXQga2FuIGlra2Ugc2xldHRlcyBmb3JkaSBkZXQgaGFyIGJhcm4tZWxlbWVudGVyJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ0R1IG3DpSBzcGVzaWZpc2VyZSBldCBmZWx0c2tpbGxldGVnbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGUnXSA9ICdHZW5lcmVyIGZlaWwgKG1lbiBmb3J0c2V0dCknOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnRW4ga2F0ZWdvcmkgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY29tcGFueSddID0gJ0V0IGZpcm1hIG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2ZpZWxkZGVmJ10gPSAnRXQgZmVsdCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9oaWVyYXJjaHknXSA9ICdIaWVyYXJraSBtZWQgZnVsbHQgbmF2biAiJXMiIGVrc2lzdGVyZXIgYWxsZXJlZGUuJzsKJGxhbmdbJ2Vycm9yX2ZldV9sb2dnZWRpbiddID0gJ0ZvciDDpSBiZW55dHRlIGRlbm5lIGZ1bmtzam9uZW4gbcOlIGR1IHbDpnJlIGlubmxvZ2dldCBww6UgbmV0dHN0ZWRldHMgZnJvbnRlbmQnOwokbGFuZ1snZXJyb3JfZmllbGRkZWZfbm90Zm91bmQnXSA9ICdGZWx0IGRlZmluaXNqb24gbWVkIGlkICVkIGJsZSBpa2tlIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9nZW5lcmF0ZXVybCddID0gJ0V0IHByb2JsZW0gb3Bwc3RvZCB2ZWQgZ2VuZXJpbmcgYXYgZW4gVVJMJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9iYWRsaW5lJ10gPSAnVWd5bGRpZyBwb3N0IGZ1bm5ldCBww6UgbGluamUgJWQuIEVyIGRldCBlbiByZWdlbCBzb20gbWFuZ2xlcj8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRW4gdWd5bGRpZyByZWdlbCBibGUgZnVubmV0IGZvciBlbiBhdiBmZWx0ZW5lJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlJ10gPSAnRHVwbGlrYXRlICVzIHJlZ2xlciBww6UgbGluamUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2R1cGxpY2F0ZXJ1bGVfaWRlbnRpZmllciddID0gJ0R1cGxpa2F0ZSByZWdlbGlkZW50aWZpa2F0b3JlciBww6UgbGluamUgJWQnOwokbGFuZ1snZXJyb3JfaW1wb3J0X25vaGFuZGxlciddID0gJ0TDpXJsaWcgcG9zdCBmdW5uZXQgcMOlIGxpbmplICVkLiBLdW5uZSBpa2tlIGZpbm5lIGVuIGJlaGFuZGxlciBmb3IgcG9zdGVyIGF2IHR5cGVuICVzJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF91bmtub3ducm93J10gPSAnRm9yc3TDpXIgaWtrZSBodm9yZGFuIGxpbmplICVkIG1lZCByZWdlbGlkZW50aWZpa2F0b3JlbiAlcyBza2FsIGJlaGFuZGxlcyc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJ1bGUnXSA9ICdVa2plbnQgcmVnZWwgcMOlIGxpbmplICVkJzsKJGxhbmdbJ2Vycm9yX2luc2VydF9jYXRlZ29yeSddID0gJ0VuIGRhdGFiYXNlZmVpbCBvcHBzdG9kIHVuZGVyIGZvcnPDuGsgcMOlIMOlIHNldHRlIGlubiBrYXRlZ29yaWRlZmluaXNqb25lbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0VuIGRhdGFiYXNlZmVpbCBvcHBzdG9kIHVuZGVyIGZvcnPDuGsgcMOlIMOlIHNldHRlIGlubiBmaXJtYWRlZmluaXNqb25lbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfZmllbGRkZWYnXSA9ICdFbiBkYXRhYmFzZWZlaWwgb3Bwc3RvZCB1bmRlciBmb3Jzw7hrIHDDpSDDpSBzZXR0ZSBpbm4gZmVsdGRlZmluaXNqb25lbic7CiRsYW5nWydlcnJvcl9pbnNlcnRfaGllcmFyY2h5J10gPSAnRmVpbCB2ZWQgb3BwcmV0dGVsc2UgYXYgaGllcmFya2kgIiVzIic7CiRsYW5nWydlcnJvcl9pbnZhbGlkbmFtZSddID0gJ0Zpcm1hbmF2bmV0IGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfaW52YWxpZHVybCddID0gJ1VSTC1hZHJlc3NlbiBhbmdpdHQgKGVsbGVyIGthbGt1bGVydCkgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnVmVyZGllbiBzcGVzaWZpc2VydCBmb3IgJXMgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnSW5nZW4gYWRyZXNzZSBibGUgZnVubmV0IGkgb3BwZsO4cmluZ2VuJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VuIHDDpWtyZXZkIHBhcmFtZXRlciBtYW5nbGV0IGZyYSBza2plbWF1dGZ5bGxpbmdlbic7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnSW5nZW4gZmlsIGJsZSBsYXN0ZXQgb3BwJzsKJGxhbmdbJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnXSA9ICdCZWtsYWdlciwgaW5nZW4gZmlybWFlciBwYXNzZXQgZGluZSBrcml0ZXJpZXIuJzsKJGxhbmdbJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJ10gPSAnSW5nZW4gbmVkdHJla2tzb3Bzam9uZXIgZXIgb3BwZ2l0dCc7CiRsYW5nWydlcnJvcl9ub2ZldSddID0gJ0t1bm5lIGlra2UgZmlubmUgRnJvbnRFbmRVc2VyLW1vZHVsZW4nOwokbGFuZ1snZXJyb3Jfbm9maWx0ZXJtYXRjaGVzJ10gPSAnSW5nZW4gZGF0YWJhc2Ugb3BwZsO4cmluZ2VyIG1hdGNoZXQga3JpdGVyaWVuZSBzb20gZXIgc3Blc2lmaXNlcnQnOwokbGFuZ1snZXJyb3Jfbm9sZW5ndGgnXSA9ICdJbmdlbiBtYWtzaW1hbGxlbmdkZSBmb3IgZmVsdCBvcHBnaXR0JzsKJGxhbmdbJ2Vycm9yX25vb3duZXInXSA9ICdPd25lciBpZCBlciBpa2tlIHNhdHQgZWxsZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl9ub3Jlc3VsdHNmb3VuZCddID0gJ0luZ2VuIHBvc3RlciBzb20gc2Ftc3ZhcnRlIG1lZCBrcml0ZXJpZW5lIGRpbmUgYmxlIGZ1bm5ldCBpIGRhdGFiYXNlbic7CiRsYW5nWydlcnJvcl9ub3Nwb3RzbGVmdCddID0gJ0R1IGhhciBpbmdlbiBnamVudsOmcmVuZGUgZmlybWEtw6VwbmluZ2VyJzsKJGxhbmdbJ2Vycm9yX25vdGhpbmdzZWxlY3RlZCddID0gJ0luZ2VudGluZyB2YWxndCc7CiRsYW5nWydlcnJvcl9wb3N0Y29kZV9sb29rdXAnXSA9ICdLdW5uZSBpa2tlIGZpbm5lIG5vZW4gZGF0YSBmb3IgcG9zdG51bW1lciAlcyc7CiRsYW5nWydlcnJvcl9wcmVmaXhfbXNnJ10gPSAnRW4gZmVpbCBvcHBzdG9kIHDDpSBsaW5qZSAlZDogJXMnOwokbGFuZ1snZXJyb3JfdXBkYXRlX2NvbXBhbnknXSA9ICdFbiBmZWlsIG9wcHN0b2QgdmVkIG9wcGRhdGVyaW5nIGF2IGZpcm1hcG9zdGVuJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZCddID0gJ0ZpbG9wcGxhc3RpbmcgZmVpbGV0JzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnVVJMLWZlbHRldCBlciBpa2tlIHRvbXQgLi4uIGthbiBpa2tlIG92ZXJza3JpdmUgZW4gZWtzaXN0ZXJlbmRlIHZlcmRpJzsKJGxhbmdbJ2Vycm9yX3VybHJlcXVpcmVkJ10gPSAnRW4gVVJMIGVyIHDDpWtyZXZkJzsKJGxhbmdbJ2Vycl9pbnZhbGlkdW5pdHMnXSA9ICdFbmhldGVyIHNwZXNpZmlzZXJ0IGVyIHVneWxkaWdlLiBHeWxkaWdlIHZlcmRpZXIgZXI6IG1pLG1pbGUsbWlsZXMsa20sayc7CiRsYW5nWydldmVudGRlc2MtT25BZGRDb21wYW55J10gPSAnRW4gaGVuZGVsc2Ugc2VuZHQgZXR0ZXIgZXQgbnl0dCBmaXJtYSBlciBsYWd0IHRpbCBkYXRhYmFzZW4nOwokbGFuZ1snZXZlbnRkZXNjLU9uRGVsZXRlQ29tcGFueSddID0gJ0VuIGhlbmRlbHNlIHNlbmR0IGbDuHIgZW4gZmlybWFvcHBmw7hyaW5nIHNsZXR0ZXMnOwokbGFuZ1snZXZlbnRkZXNjLU9uRWRpdENvbXBhbnknXSA9ICdFbiBoZW5kZWxzZSBzZW5kdCBldHRlciBlbiBla3Npc3RlcmVuZGUgZmlybWFvcHBmw7hyaW5nIGVyIG9wcGRhdGVydCBpIGRhdGFiYXNlbic7CiRsYW5nWydleHBpcmVzJ10gPSAnVXRsw7hwZXInOwokbGFuZ1snZXhwb3J0Y3N2J10gPSAnRWtzcG9ydGVyIENTVic7CiRsYW5nWydleHRyYTEnXSA9ICdFa3N0cmFkYXRhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRWtzdHJhZGF0YSAyJzsKJGxhbmdbJ2V4dHJhMyddID0gJ0Vrc3RyYWRhdGEgMyc7CiRsYW5nWydmYXgnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZheHRleHQnXSA9ICdGYWtzJzsKJGxhbmdbJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0J10gPSAnRW4gZW5kcmluZyBoYXIgZnVubmV0IHN0ZWQgZm9yIGVuIENvbXBhbnlEaXJlY3RvcnkgcG9zdCc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0ZlbHRkZWZpbmlzam9uJzsKJGxhbmdbJ2ZpZWxkZGVmYWRkZWQnXSA9ICdGZWx0ZGVmaW5pc2pvbiBsYWd0IHRpbCc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdGZWx0ZGVmaW5pc2pvbiBzbGV0dGV0JzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZlbHRkZWZpbmlzam9uZXInOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnRmVsdGRlZmluaXNqb24nOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnRmVsdGRlZmluaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0ZlbHRlcic7CiRsYW5nWydmaWVsZF9hY3Rpdml0eSddID0gJ0FrdGl2aXRldGVyIChDR1NvY2lhbEFwcCknOwokbGFuZ1snZmllbGRfYWxidW0nXSA9ICdBbGJ1bSAoZ3J1cHBlIG1lZCBiaWxkZXIpJzsKJGxhbmdbJ2ZpZWxkX2NoZWNrYm94J10gPSAnQXZrcnlzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX2Ryb3Bkb3duJ10gPSAnTmVkdHJla2snOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWVsZF9pY29uJ10gPSAnSWtvbiAoQ0dHb29nbGVNYXBzKSc7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ0JpbGRlJzsKJGxhbmdbJ2ZpZWxkX211bHRpc2VsZWN0J10gPSAnRmxlcnZhbGcnOwokbGFuZ1snZmllbGRfdGV4dGFyZWEnXSA9ICdUZWtzdG9tcsOlZGUnOwokbGFuZ1snZmllbGRfdGV4dGJveCddID0gJ1Rla3N0aW5uc2tyaXZpbmcnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZnJvbnRlbmRhbGJ1bXRlbXBsYXRlcyddID0gJ0Zyb250ZW5kIFJlZGlnZXJpbmdzIEFsYnVtIE1hbGVyJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBlbiBGcm9udGVuZCBSZWRpZ2VyaW5ncyBBbGJ1bSBNYWwnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVzJ10gPSAnUmVkaWdlciBmaXJtYW1hbGVyJzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRldXBkYXRlZCddID0gJ1JlZGlnZXIgZmlybWFtYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIEZyb250ZW5kc2tqZW1hIG1hbCc7CiRsYW5nWydmcm9udGVuZGltcG9ydHRlbXBsYXRlJ10gPSAnRnJvbnRlbmQgQ1NWIGltcG9ydG1hbCc7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaXN0ZW1hbGVyJzsKJGxhbmdbJ2Zyb250ZW5kbGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbCBlbGxlciByZWRpZ2VyIGVuIEZyb250ZW5kIExpc3RlbWFsJzsKJGxhbmdbJ2dhbGxlcnl0ZW1wbGF0ZXMnXSA9ICdHYWxsZXJpbWFsZXInOwokbGFuZ1snZ2FsbGVyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIGVuIEdhbGxlcmltYWwnOwokbGFuZ1snZ2V0dXJsJ10gPSAnS2Fsa3VsZXIgVVJMJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ2hpZXJhcmNoeWxpc3R0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJraWxpc3RlbWFsZXInOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBoaWVyYXJraWxpc3RlbWFsJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaWdub3JlJ10gPSAnSWdub3Jlcic7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkZSc7CiRsYW5nWydpbXBvcnRjc3YnXSA9ICdJbXBvcnRlciBDU1YnOwokbGFuZ1snaW1wb3J0a21sJ10gPSAnSW1wb3J0ZXIgS01MJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ1ZlbGcgQ1NWLWZpbCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0ZXIgS01MLWZpbCc7CiRsYW5nWydpbmZvX2FkbWlud3lzaXd5ZyddID0gJ0h2aXMgZGVha3RpdmVydCwgV1lTSVdZRyB2aWwgaWtrZSB2w6ZyZSBha3RpdmVydCBmb3IgcmVkaWdlcmluZyBhdiBzZWxza2Fwc2luZm9ybWFzam9uLCB1YXZoZW5naWcgYXYgaHZpbGtlbiBzb20gaGVsc3QgYnJ1a2VyIGVsbGVyIGdsb2JhbGUgaW5uc3RpbGxpbmcuJzsKJGxhbmdbJ2luZm9fYWxidW1fZmllbGR0eXBlJ10gPSAnQmFyZSBldHQgYWxidW0gZmVsdHR5cGUgZXIgdGlsbGF0dC4gVGlsYWx0ZXIgb3BwbGFzdGluZyBhdiBmbGVyZSBiaWxkZXIgc29tIHNrYWwga255dHRlcyB0aWwgZW4gYmVzdGVtdCBkYXRhYmFzZSBvcHBmw7hyaW5nLiBCaWxkZXIga2FuIGJhcmUgbGFzdGVzIG9wcCB0aWwgZXQgYWxidW1mZWx0IGZvciBlbiBla3Npc3RlcmVuZGUgb3BwZsO4cmluZyAobsOlciBkdSByZWRpZ2VyZXIgZW4gb3BwZsO4cmluZykgb2cgaWtrZSBuw6VyIGVuIGbDuHJzdCBvcHByZXR0ZXIgZW4gbnkgb3BwZsO4cmluZy4nOwokbGFuZ1snaW5mb19iYXRjaHVybGNyZWF0ZSddID0gJ0JhdGNoIFVSTCBvcHByZXR0ZWxzZSBvcHBkYXRlcnRlICVkIHBvc3Rlcic7CiRsYW5nWydpbmZvX2NhdGVnb3J5Y29sdW1uJ10gPSAnQW5naSBuYXZuZXQgcMOlIGVuIGtvbG9ubmUgc29tIGFuZ2lyIMOpbiBlbGxlciBmbGVyZSBrYXRlZ29yaW5hdm4gKGF0c2tpbHQgbWVkIGV0IGtvbW1hIDxlbT4oLCk8L2VtPiBzb20ga2FuIGJydWtlcyB0aWwgw6UgcmFza3QgZnlsbGUga2F0ZWdvcmllbmUgZm9yIGh2ZXIgcG9zdC4nOwokbGFuZ1snaW5mb19jcmVhdGVfdXJsJ10gPSAnSHZpcyBpbmdlbiBVUkwgZXIgYW5naXR0IGZvciBlbiBwb3N0LCB2aWwgZGV0dGUgYWx0ZXJuYXRpdmV0IHNpa3JlIGF0IGRlIGJsaXIgZ2VuZXJlcnQuIEh2aXMgIktyZXYgVVJMZXIiLWlubnN0aWxsaW5nZW4gZXIgc2F0dCwgdmlsIFVSTGVyIHNpa3JlcyB1YXZoZW5naWcgYXYgZGVubmUgaW5uc3RpbGxpbmdlbic7CiRsYW5nWydpbmZvX2NzdmZpbGUnXSA9ICdEZXQgZXIgbXVsaWcgw6UgaW1wb3J0ZXJlIGZpcm1haW5mb3JtYXNqb24gZGlyZWt0ZSBmcmEgZW4gQVNDSUktZmlsLic7CiRsYW5nWydpbmZvX2RyYWdfZHJvcCddID0gJ01lZCBkZSBmbGVzdGUgbW9kZXJuZSBuZXR0bGVzZXJlICh1bm50YXR0IElFKSBrYW4gZHUgZHJhIGZsZXJlIGZpbGVyIGlubiBpIHNsaXBwc29uZW4gaGVyLiBEZSB2aWwgYmxpIGF1dG9tYXRpc2sgbGFzdGV0IG9wcCBvZyBsYWd0IHRpbCBhbGJ1bWV0JzsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gJ1NwZXNpZmlzZXIgb3Bzam9uZW5lIGZvciBuZWR0cmVra3Nrb250cm9sbGVyZW4uICpFbiBsaW5qZSBwZXIgaW5ubGVnZy4gQWRza2lsbCBuw7hrbGVyIGZyYSB2ZXJkaWVyIG1lZCAgPSAgdGVnbi4gRi5la3MuIG7DuGtrZWw9dmVyZGknOwokbGFuZ1snaW5mb19lZGl0b3IyJ10gPSAnQnJ1ayBkZW4gbnllIGZyb250ZW5kIGVkaXRvciA8ZW0+KHJlZmVyZXJ0IHRpbCBzb20gZmVlZGl0Mik8L2VtPiBNZXJrOiBEZW4gZ2FtbGUgcmVkaWdlcmVyZW4gdmlsIGJsaSBmamVybmV0IGkgQ29tcGFueURpcmVjdG9yeSAxLDE1IGVsbGVyIHV0b3Zlci4nOwokbGFuZ1snaW5mb19leHRlbnNpb25zJ10gPSAnR2kgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBvdmVyIGZpbHR5cGVyIChzbcOlIGVsbGVyIHN0b3JlIGJva3N0YXZlcikuIEh2aXMgaWtrZSBhbmdpdHQsIHZpbCBzdGFuZGFyZHZlcmRpZXIgaSBDR0V4dGVuc2lvbnMgYnJ1a2VzLic7CiRsYW5nWydpbmZvX2ZpbHRlcl9hZGRyZXNzJ10gPSAnU3Blc2lmaXNlcmUgZW4gYWRyZXNzZXN0cmVuZyDDpSBzw7hrZSBww6UuIEpva2VydGVnbiBlciB0aWxsYXR0LiBmLmVrcy46ICIqVGV4YXMqIi4gRGV0dGUgZmVsdGV0IGVyIGlra2UgZsO4bHNvbXQgZm9yIHN0b3JlIG9nIHNtw6UgYm9rc3RhdmVyJzsKJGxhbmdbJ2luZm9fZmlsdGVyX2hpZXJhcmNoeSddID0gJ0FuZ2kgZW4gaGllcmFya2lzdHJlbmcgKGVsbGVyIGVuIGRlbCkgw6Ugc8O4a2UgcMOlLiBKb2tlcnRlZ24gZXIgdGlsbGF0dCwgb2cga2FuIG9tZmF0dGUgYmFybiBoaWVyYXJraWVyLiBmLmVrcy46ICJCaWxlcioiLiBEZXR0ZSBmZWx0ZXQgZXIgaWtrZSBmw7hsc29tdCBmb3Igc3RvcmUgb2cgc23DpSBib2tzdGF2ZXInOwokbGFuZ1snaW5mb19maWx0ZXJfbmFtZSddID0gJ1NwZXNpZmlzZXJlIGV0IGZpcm1hbmF2biAoZWxsZXIgZGVsdmlzIGZpcm1hbmF2biDDpSBzw7hrZSBww6UuIEpva2VydGVnbiBlciB0aWxsYXR0IGYuZWtzLjouLiAiKnJlc3RhcmF1bnQiIERldHRlIGZlbHRldCBlciBpa2tlIGbDuGxzb210IGZvciBzdG9yZSBvZyBzbcOlIGJva3N0YXZlcic7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnSW5nZW4gZWdlbmRlZmluZXJ0ZSBmZWx0IGVyIGRlZmluZXJ0JzsKJGxhbmdbJ2luZm9fcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdIdmlzIGVuIG5ldHRzaWRlIHZlcmRpIGVyIHNwZXNpZmlzZXJ0LCBvZyBpa2tlIGJlZ3lubmVyIG1lZCBlbiB1cmxwcmVmaXggKGh0dHAsIGh0dHBzLCBmdHApIC4uIGRhIHZpbCBodHRwOi8vIHNldHRlcyBpbm4gZm9yYW4gdmVyZGllbiB2ZWQgbGFncmluZyc7CiRsYW5nWydpbmZvX3VybF9hdXRvY3JlYXRlJ10gPSAnTsOlciBkdSBsZWdnZXIgdGlsIGVsbGVyIHJlZGlnZXJlciBlbiBmaXJtYSBkZWZpbmlzam9uLCBodmlzIFVSTC1mZWx0ZXQgZXIgYmxhbmt0IHZpbCBkZXR0ZSBibGkgb3BwcmV0dGV0IGF1dG9tYXRpc2sgZnJhIHNlbHNrYXBldHMgbmF2bi4gRGV0dGUgZ2plbGRlciBpa2tlIGZyb250ZW5kIHJlZGlnZXJpbmcnOwokbGFuZ1snaW5mb191cmxfY3JlYXRlb25jb3B5J10gPSAnTsOlciBkdSBrb3BpZXJlciBmaXJtYWVyLCBiw7hyIGVuIG5ldHRhZHJlc3NlIG9wcHJldHRlcyBmb3IgZGVzdGluYXNqb25lbnMgcG9zdGVuLiBEZXR0ZSBnamVsZGVyIGJhcmUgaHZpcyBVUkxlciBpa2tlIGVyIHDDpWtyZXZkLic7CiRsYW5nWydpbmZvX3VybF9yZWRpcmVjdG9sZCddID0gJ1DDpSBlbiBpbm5rb21tZW5kZSBmb3Jlc3DDuHJzZWwgZm9yIGV0IGZpcm1hIG1lZCBkZSBnYW1sZSBuZXR0YWRyZXNzZW3DuG5zdHJlLCB1dGbDuHIgZW4gMzAxLXZpZGVyZWtvYmxpbmcgdGlsIGRlbiBueWUgbmV0dGFkcmVzc2VuLiBEZXR0ZSB2aWwgYmFyZSBmdW5nZXJlIGZvciBvcHBmw7hyaW5nZXIgc29tIGhhciBVUkwgb3BwcmV0dGV0Lic7CiRsYW5nWydpbmZvX3VybF9yZXF1aXJlZCddID0gJ1NrYWwgVVJMIGZlbHRldCB2w6ZyZSBww6VrcmV2ZCDDpSB2w6ZyZSBneWxkaWcgbsOlciBlbiBsZWdnZXIgdGlsIGVsbGVyIHJlZGlnZXJlciBldCBmaXJtYT8nOwokbGFuZ1snaW5mb191c2VyZWRpdCddID0gJ0h2aXMgYWt0aXZlcnQsIGthbiBiYXJlIGFkbWluaXN0cmF0b3JlciByZWRpZ2VyZSBkZXR0ZSBmZWx0ZXQgZm9yIGh2ZXIgb3BwZsO4cmluZy4gRGV0dGUgZXIgbnl0dGlnIGh2aXMgdGlsbGF0dCBmcm9udGVuZCBsZWdnZSB0aWwvcmVkaWdlcmluZyBhdiBmaXJtYXBvc3RlciBmb3Igw6UgZ2kgZmVsdCBzb20gZWllci9yZWRha3TDuHIgaWtrZSBrYW4gcmVkaWdlcmUuJzsKJGxhbmdbJ2luZm9fdXNlcnZpZXcnXSA9ICdIdmlzIGFrdGl2ZXJ0LCBrYW4gYWxsZSBicnVrZXJlIHNlIGRldHRlIGZlbHRldCBmb3IgaHZlciBvcHBmw7hyaW5nLiBIdmlzIGRldCBlciBkZWFrdGl2ZXJ0IGJhcmUgZWllcmVuIG9nIGFkbWluaXN0cmF0b3JlciBrYW4gc2UgZmVsdGV0JzsKJGxhbmdbJ2ludXNlJ10gPSAnaSBicnVrJzsKJGxhbmdbJ2xhYmVsX2luY2x1ZGVjaGlsZHJlbiddID0gJ0lua2x1ZGVyIGJhcm4gSGllcmFya2llcic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhdGl0dWRlJ10gPSAnQnJlZGVncmFkKExhdGl0dWRlKSc7CiRsYW5nWydsYmxfYmFjayddID0gJ1RpbGJha2UnOwokbGFuZ1snbGJsX3NldHRpbmdzJ10gPSAnSW5uc3RpbGxpbmdlcic7CiRsYW5nWydsYmxfdGVtcGxhdGVzJ10gPSAnTWFsZXInOwokbGFuZ1snbG9uZ2l0dWRlJ10gPSAnTGVuZ2RlZ3JhZChMb25naXR1ZGUpJzsKJGxhbmdbJ2xvb2t1cCddID0gJ1Nsw6Ugb3BwIGtvb3JkaW5hdGVuZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzIGxlbmdkZSc7CiRsYW5nWydtYXhsZW5ndGh0ZXh0J10gPSAnTWFrcyBsZW5nZGUnOwokbGFuZ1snbWF4X2xlbmd0aCddID0gJ01ha3MgbGVuZ2RlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRW4gbW9kdWwgYXYga2F0YWxvZ3R5cGVuIGZvciBiZWRyaWZ0ZXIuIFRpbGFsdGVyIMOlIGxlZ2dlIHRpbC9yZWRpZ2VyZS9pbXBvcnRlcmUvZWtzcG9ydGVyZSBiZWRyaWZ0c2RlZmluaXNqb25lciwgb2cgZm9yc2tqZWxsaWdlIG3DpXRlciDDpSB2aXNlIGJlZHJmc29wcGbDuHJpbmdlbmUgaW5rbHVkZXJ0IHPDuGsuIERlbm5lIG1vZHVsZW4gaW50ZWdyZXJlciBzZWcgZ29kdCBtZWQgQ0dHb29nbGVNYXBzIG1vZHVsZW4uJzsKJGxhbmdbJ21vZGlmaWVkJ10gPSAnRW5kcmV0JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdG8gc2lzdCBlbmRyZXQnOwokbGFuZ1snbXNnX2J1bGtkZWwnXSA9ICclZCBmaXJtYWVyIHNsZXR0ZXQnOwokbGFuZ1snbXNnX2NhdGVnb3J5c2F2ZWQnXSA9ICdLYXRlZ29yaSBsYWdyZXQnOwokbGFuZ1snbXNnX2NvbXBhbnljb3BpZWQnXSA9ICdGaXJtYSBrb3BpZXJ0Li4uIHZlbm5saWdzdCByZWRpZ2VyIGRldGFsamVuZSBmb3IgZGVuIG55ZSBmaXJtYW9wcGbDuHJpbmdlbic7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFya2kgcG9zaXNqb24gbGFndCB0aWwnOwokbGFuZ1snbXNnX2hpZXJhcmNoeV91cGRhdGVkJ10gPSAnSGllcmFya2kgcG9zaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ21zZ19oaWVyZGVsZXRlZCddID0gJ0hpZXJhcmtpIHBvc2lzam9uIHNsZXR0ZXQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFya2kgcG9zaXNqb24gb3BwZGF0ZXJ0JzsKJGxhbmdbJ21zZ19pbXBvcnRfY29tcGxldGUnXSA9ICdJbXBvcnQgb3BlcmFzam9uIHZlbGx5a2tldCc7CiRsYW5nWydtc2dfc2V0dGluZ3NfY2hhbmdlZCddID0gJ0luc3RpbGxpbmdlciBlbmRyZXQnOwokbGFuZ1snbXNnX3Nsb3RzdXNlZCddID0gJ0R1IGFociBiZW55dHRldCAlZCBhdiAlZCBmaXJtYS3DpXBuaW5nZXInOwokbGFuZ1snbmFtZSddID0gJ05hdm4nOwokbGFuZ1snbmFtZXRleHQnXSA9ICdOYXZuJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgdHJlbmdlciAiJXMiIHRpbGxhdGVsc2UgZm9yIMOlOyB1dGbDuHJlIGRlbiBmdW5rc2pvbmVuLic7CiRsYW5nWyduZXdzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTw7hrZXNramVtYW1hbGVyJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9SZWRpZ2VyIGVuIHPDuGtlc2tqZW1hbWFsJzsKJGxhbmdbJ25ld3NlYXJjaF90ZW1wbGF0ZSddID0gJ1PDuGtlc2tqZW1hbWFsJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydub2NvbXBhbnluYW1lZ2l2ZW4nXSA9ICdJbmdlbiBmaXJtYW5hdm4gb3BwZ2l0dCc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0luZ2VuIG5hdm4gb3BwZ2l0dCc7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snbm90YW51bWJlciddID0gJ0VyIGlra2UgZXQgbnVtbWVyJzsKJGxhbmdbJ29mJ10gPSAnYXYnOwokbGFuZ1snb3BfY2FuY2VsbGVkJ10gPSAnQXZicnV0dCc7CiRsYW5nWydvcmdhbml6YXRpb24nXSA9ICdPcmdhbmlzYXNqb24nOwokbGFuZ1snb3ZlcndyaXRlJ10gPSAnT3ZlcnNrcml2JzsKJGxhbmdbJ293bmVyJ10gPSAnRWllcic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdFbmhldGVyIHBlciBzaWRlJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0RlZmluZXJlciBkZW4gcHJpbcOmcmUgb3BwZsO4cnNlbGVuIGZvciBtb2R1bGVuLiBNdWxpZyB2ZXJkaWVyIGZvciBkZW5uZSBwYXJhbWV0ZXIgZXI6DQo8dWw+DQogIDxsaT5jYXRlZ29yeWxpc3QgLS0gVmlzIGVuIGxpc3RlIG1lZCBrYXRlZ29pZXIuIEJydWtlcmUga2FuIGRyaWxsZSBuZWQgdGlsIHNhbW1lbmRyYWdzbW9kdXMsIG9nIHPDpSB0aWwgZGV0YWxqbW9kdXMuPC9saT4NCiAgPGxpPjxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPiAtLSBWaXMgYmVkcmlmdGVyIGkgc2FtbWVuZHJhZ3Ntb2R1cy48L2xpPg0KICA8bGk+ZGV0YWlscyAtLSBWaXMgZGV0YWxqZXJ0IGluZm9ybWFzam9uIG9tIGVuIHNwZXNpZmlrayBiZWRyaWZ0LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LiA8ZW0gc3R5bGU9ImNvbG9yOiByZWQ7Ij4oZGVwcmVjYXRlZCk8L2VtPjwvbGk+DQogIDxsaT5mZV9lZGl0MiAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS48L2xpPg0KICA8bGk+ZmVfZWRpdF9hbGJ1bSAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBlZGl0aW5nIGFsYnVtIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgY29tcGFueS4NCiAgIDxwPlRoaXMgYWN0aW9uIGlzIG5vcm1hbGx5IHRyaWdnZXJlZCBmcm9tIHRoZSBmZV9lZGl0MiBhY3Rpb24gb3IgdGhlIGZyb250ZW5kIGxpc3QgYWN0aW9uLiAgIEl0IGFjY2VwdHMgdGhlIGNvbXBhbnlpZCxjZF9mZGlkLGFuZCBvcHRpb25hbGx5IG90aGVyIHBhcmFtZXRlcnMgdG8gcGVyZm9ybSBudW1lcm91cyBhamF4IGFjdGlvbnMuICAgU2VlIHRoZSBzYW1wbGUgY29udGVudCBmb3IgdGhlIGZyb250ZW5kIGFsYnVtIHRlbXBsYXRlIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4NCiAgPC9saT4NCjxsaT5mcm9udGVuZGxpc3QgLS0gVmkgbGlzdGUgbWVkIGFsbGUgYmVkcmZ0c29wcGbDuHJpbmdlciBmb3IgZW4gYnJ1a2VyIHDDpSBmcm9udGVuZGVuLCBtZWQgdmFsZ2ZyaSBtdWxpZ2hldCB0aWwgw6UgbGVnZ2UgdGlsIGZsZXJlLjwvbGk+DQogIDxsaT5zZWFyY2ggIC0tIFZpcyBldCBza2plbWEgZm9yIMOlIHRpbGxhdGUgc8O4ayBldHRlciBzcGVzaWZpa2tlIGJlZHJpZnRlci48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBWaXMgZW4gbGlzdGUgbWVkIGhpZXJhcmtpZXIuIEJydWtlcmUga2FuIGRyaWxsZSBuZWQgdGlsIHNhbW1lbmRyYWdzbW9kdXMgb2cgc8OlIHRpbCBkZXRhbGptb2R1cy48L2xpPg0KICAgDQo8L3VsPic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWNoaWxkcmVuJ10gPSAnR2plbGRlciBiYXJlIHRpbCA8ZW0+c3RhbmRhcmQ8L2VtPiBvcHBzdW1tZXJpbmdzbW9kdXMsIG9nIGJhcmUgbsOlciBDR1NvY2lhbEFwcCBtb2R1bGVuIGVyIGluc3RhbGxlcnQsIGtvbmZpZ3VyZXJ0LCBvZyBmeWx0IG1lZCBkYXRhLiBEZW5uZSBwYXJhbWV0ZXJlbiBmdW5nZXJlciBzYW1tZW4gbWVkIGFjdGl2aXR5aWQgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgZmlsdHJlcmluZyBhdiBmaXJtYSBodm9yIGRlIHNvbSBoYXIgYXZrcnlzc2luZyBtZWQgZGVuIGFuZ2l0dGUgKGhlbHRhbGwpIGFrdGl2aXRldCBpZCBvZyBkZXJlcyBiYXJuLWFrdGl2aXRldGVyLic7CiRsYW5nWydwYXJhbV9hY3Rpdml0eWlkJ10gPSAnR2plbGRlciBiYXJlIHRpbCA8ZW0+c3RhbmRhcmQ8L2VtPiBvcHBzdW1tZXJpbmcgbW9kdXMsIG9nIGJhcmUgbsOlciBDR1NvY2lhbEFwcCBtb2R1bGVuIGVyIGluc3RhbGxlcnQsIGtvbmZpZ3VyZXJ0LCBvZyBmeWx0IG1lZCBkYXRhLiBEZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciBmaWx0cmVyaW5nIGF2IHNlbHNrYXBlciBtZWQgZGUgc29tIGhhciBhdmtyeXNzaW5nIG1lZCBzcGVzaWZpc2VydCAoaGVsdGFsbCkgYWt0aXZpdGV0IGlkLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdHamVsZGVyIGJhcmUgdGlsIDxlbT5zdGFuZGFyZDwvZW0+IG9wcHN1bW1lcmluZyB2aXNuaW5nLCBvZyBiYXJlIG7DpXIgPGVtPmthdGVnb3JpPC9lbT4gcGFyYW1ldGVyZW4gb2dzw6UgZXIgb3BwZ2l0dC4gRGVubmUgcGFyYW1ldGVyZW4gdGlsbGF0ZXIgw6Ugc3Blc2lmaXNlcmUgZXQgZWtzdHJhIEFOZCB1dHRyeWtrIGZvciDDpSBpbmRpa2VyZSB5dHRlcmxpZ2VyZSAoa29tbWFzZXBhcmVydCkga2F0ZWdvcmllciBzb20gcmVzdWx0YXRldCBiw7hyIHbDpnJlIGV0IG1lZGxlbSBhdi4gRHZzLjoge0NvbXBhbnlEaXJlY3Rvcnkga2F0ZWdvcnk9XCdyZWdpb25fbm9ydGgscmVnaW9uX3NvdXRoXCcgQ2F0ZWdvcnkyPVwnYmlsZXIsIGxhc3RlYmlsZXJcJ30gdmlsIHJldHVybmVyZSBiYXJlIGRlIGZpcm1hZW5lIHNvbSB2YXIgaSBlbnRlbiByZWdpb24gbm9yZCBlbGxlciByZWdpb24gc8O4ciBrYXRlZ29yaWVuZSBPRyBPR1PDhSBpIGVudGVuIGJpbGVyIGVsbGVyIGxhc3RlYmlsZXIga2F0ZWdvcmllbmUnOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnkzJ10gPSAnR2plbGRlciBiYXJlIGZvciA8ZW0+c3RhbmRhcmQ8L2VtPiBvcHBzdW1tZXJpbmcgdmlzbmluZywgb2cgYmFyZSBuw6VyIDxlbT5DYXRlZ29yeTI8L2VtPiBwYXJhbWV0ZXIgb2dzw6UgZXIgbGV2ZXJ0LiBEZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciDDpSBzcGVzaWZpc2VyZSBlbmRhIGVuIGVrc3RyYSBBTkQgdXR0cnlrayBmb3Igw6UgaW5kaWtlcmUgeXR0ZXJsaWdlcmUgKGtvbW1hc2VwYXJlcnRlKSBrYXRlZ29yaWVyIHNvbSByZXN1bHRhdGV0IHNrYWwgdsOmcmUgbWVkbGVtIGF2LiBTZSBoamVscGVuIGZvciBDYXRlZ29yeTIgcGFyYW1ldGVyIGZvciBtZXIgaW5mb3JtYXNqb24nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlpZCddID0gJ07DpXIgZGVuIGJydWtlcyBpIDxlbT5zdGFuZGFyZDwvZW0+IHNhbW1lbmRyYWdzbW9kdXMsIGthbiBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlIGZpbHRyZXJpbmcgcMOlIGVuIGVua2VsdCBrYXRlZ29yaSB2ZWQgw6UgYW5naSBkZW5zIGhlbHRhbGwgaWQuIERlbm5lIHBhcmFtZXRlcmVuIGthbiBpa2tlIGJydWtlcyBtZWQga2F0ZWdvcmksY2F0ZWdvcmkyLCBlbGxlciBlbiBhbm5lbiBrYXRlZ29yaSBmaWx0cmVyaW5nIHBhcmFtZXRlcmUuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnT3BwZ2kgZW4gbWFsICh2ZWQgbmF2bikgc29tIHNrYWwgYmVueXR0ZXMgdmVkIHZpc25pbmcgYXYga2F0ZWdvcmlsaXN0ZS4nOwokbGFuZ1sncGFyYW1fY29tcGFueWlkJ10gPSAnS3JldmVzIGZvciBmcm9udGVuZCByZWRpZ2VyaW5nIG9nIGRldGFsaiBtb2R1cywgaHZvciBkZW5uZSBwYXJhbWV0ZXIgYmVzdGVtbWVyIGh2aWxrZW4gZmlybWFwb3N0IHNvbSBza2FsIHJlZGlnZXJlcyBlbGxlciB2aXNlcy4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1NwZXNpZmlzZXIgZW4gc2lkZWFsaWFzICh2ZWQgbmF2bikgw6UgYmVueXR0ZSB0aWwgw6UgdmlzZSBkZXRhbGpwb3N0ZW4uIDxzdHJvbmc+TWVyazo8L3N0cm9uZz4gRGVubmUgdGFnZ3BhcmFtZXRlcmVuIGVyIGlra2Uga29tcGF0aWJlbCBtZWQgdmFrcmUgdXJsXCdlci4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdPcHBnaSBlbiBtYWwgKHZlZCBuYXZuKSBzb20gc2thbCBiZW55dHRlcyB2ZWQgdmlzbmluZyBhdiBkZXRhbGp2aXNuaW5nIDxzdHJvbmc+TWVyazo8L3N0cm9uZz4gRGVubmUgdGFnZ3BhcmFtZXRlcmVuIGVyIGlra2Uga29tcGF0aWJlbCBtZWQgdmFrcmUgdXJsXCdlci4nOwokbGFuZ1sncGFyYW1fZnJvbnRlbmRhbGJ1bXRlbXBsYXRlJ10gPSAnU3Blc2lmaXNlciBlbiBtYWwgKHZlZCBuYXZuKSDDpSBiZW55dHRlIHZlZCB2aXNuaW5nIGF2IHNramVtYWV0IGZvciDDpSB0aWxsYXRlIHJlZGlnZXJpbmcgYXYgZXQgYWxidW0gbWVkIGJpbGRlciBhc3Nvc2llcnQgbWVkIGV0IGZpcm1hLic7CiRsYW5nWydwYXJhbV9mcm9udGVuZGZvcm10ZW1wbGF0ZSddID0gJ09wcGdpIGVuIG1hbCAodmVkIG5hdm4pIHNvbSBza2FsIGJlbnl0dGVzIHZlZCB2aXNuaW5nICAgYXYgZnJvbnRlbmQgZmlybWFyZWRpZ2VyaW5ncyBza2plbWEuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kbGlzdHRlbXBsYXRlJ10gPSAnR2plbGRlciBiYXJlIHRpbCA8ZW0+ZnJvbnRlbmRsaXN0PC9lbT4gaGFuZGxpbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciBhdCBkdSBhbmdpciBlbiBpa2tlLXN0YW5kYXJkIGZyb250ZW5kIGxpc3RlIG1hbCBzb20gc2thbCBicnVrZXMgZm9yIMOlIGdqZW5naSB1dGRhdGEnOwokbGFuZ1sncGFyYW1faGllcmxpc3R0ZW1wbGF0ZSddID0gJ1NwZXNpZmlzZXIgZW4gbWFsIChldHRlciBuYXZuKSDDpSBiZW55dHRlIG7DpXIgZW4gaGllcmFya2lsaXN0ZSBza2FsIHZpc2VzJzsKJGxhbmdbJ3BhcmFtX2lkbGlzdCddID0gJ0dqZWxkZXIgYmFyZSB0aWwgPGVtPnN0YW5kYXJkPC9lbT4gb3Bwc3VtbWVyaW5nc2hhbmRsaW5nLCBvZyBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciDDpSBhbmdpIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgYXYgaGVsdGFsbCBmaXJtYSBJRGVyIHNvbSBza2FsIHZpc2VzLiBNZXJrLCBrdW4gcHVibGlzZXJ0ZSBmaXJtYSB2aXNlcyBtZWQgbWluZHJlIGFubmV0IGVyIHNwZXNpZmlzZXJ0IGF2IGVuIGFubmVuIHBhcmFtZXRlcic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdHamVsZGVyIGJhcmUgZm9yIDxlbT5zdGFuZGFyZDwvZW0+IHNhbW1lbmRyYWcgb2cgPGVtPnPDuGtlIDwvZW0+IG1vZHVzZW5lLCBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYW5naSBvbSBkZSByZXN1bHRlcmVuZGUgZGF0YWVuZSBza2FsIGVyc3RhdHRlIHN0YW5kYXJkaW5uaG9sZHNibG9rayBlbGxlciBvbSBkZSBza2FsIGVyc3RhdHRlIGRlbiBvcHByaW5uZWxpZ2Uga29kZW4gKGlubGluZSkuJzsKJGxhbmdbJ3BhcmFtX2xhdCddID0gJ1NwZXNpZmlzZXIgc2VudGVyIGJyZWRkZWdyYWQga29vcmRpbmF0ZW4gZm9yIGV0IHJhZGl1cyBzw7hrLCBtw6UgYnJ1a2VzIGkgZm9yYmluZGVsc2UgbWVkIGxvbmcgb2cgcmFkaXVzIHBhcmFtZXRlcmVuZS4nOwokbGFuZ1sncGFyYW1fbG9uZyddID0gJ1NwZXNpZmlzZXIgc2VudGVyIGxlbmdkZWdyYWRlbiBrb29yZGluYXRlbiBmb3IgZXQgcmFkaXVzIHPDuGssIG3DpSBicnVrZXMgaSBmb3JiaW5kZWxzZSBtZWQgbGF0IG9nIHJhZGl1cyBwYXJhbWV0ZXJlbmUuJzsKJGxhbmdbJ3BhcmFtX25hbWUnXSA9ICdHamVsZGVyIGJhcmUgdGlsIHN0YW5kYXJkIDxlbT4oc3VtbWFyeSk8L2VtPiBoYW5kbGluZ2VuLCBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciBmaWx0cmVyaW5nIGF2IGZpcm1hZXIgZXR0ZXIgZGVyZXMgbmF2bi4gSm9rZXJ0ZWduIGVyIHRpbGxhdHQuIGYuZWtzLjogbmFtZT0iYSoiLiBJIHRpbGxlZ2cga2FuIHJlZ3Vsw6ZyZSB1dHRyeWtrIGFuZ2lzIHZlZCDDpSBwcmVmaWtzZSB2ZXJkaWVuIG1lZCA6Oi4gZi5la3MuOiBuYW1lPSI6OlswLTldLioiJzsKJGxhbmdbJ3BhcmFtX25vcHJldHR5J10gPSAnR2plbGRlciBhbGxlIHZpc25pbmdlciAobWVuIGZvcnRzYXR0IGkgdGlkbGlnIHV0dmlrbGluZykgZGVubmUgcGFyYW1ldGVyZW4gdmlsIHNsw6UgYXYgdmFra2VyIHVybCBnZW5lcmVyaW5nJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ07DpXIgZGV0IGJydWtlcyBtZWQgPGVtPnN0YW5kYXJkPC9lbT4gc2FtbWVuZHJhZywgZWxsZXIgPGVtPnPDuGtlPC9lbT4tbW9kdXMsIHZpbCBkZXR0ZSBiZWdyZW5zZSByZXN1bHRhdGVuZSB0aWwgZXQgYW5naXR0IGFudGFsbC4nOwokbGFuZ1sncGFyYW1fcG9zdGFsY2hhcnMnXSA9ICdOw6VyIGR1IGdqw7hyIGV0IHBvc3RudW1tZXIgc8O4ayB2ZWQgaGplbHAgYXYgc8O4ayBoYW5kbGluZ2VuLCBsYXIgZGV0dGUgYWx0ZXJuYXRpdmV0IGJlZ3JlbnNlIGRldCBlZmZla3RpdmUgYW50YWxsIHRlZ24gcMOlIHBvc3RudW1tZXJldCc7CiRsYW5nWydwYXJhbV9yYWRpdXMnXSA9ICdBbmdpIHJhZGl1cyAoaSBtaWxlcykgZm9yIGV0IHJhZGl1cyBzw7hrLiBNw6UgYnJ1a2VzIGkgZm9yYmluZGVsc2UgbWVkIGxhdC4gb2cgbG9uZy4gcGFyYW1ldGVyZW5lLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnR2plbGRlciB0aWwgPGVtPnPDuGs8L2VtPiBoYW5kbGluZ2VuLCBkZW5uZSBwYXJhbWV0ZXJlbiB0aWxsYXRlciDDpSBzcGVzaWZpc2VyZSBodmlsa2VuIHNpZGUgc29tIHNrYWwgYnJ1a2VzIGZvciDDpSB2aXNlIHNhbXN2YXJlbmRlIHJlc3VsdGF0ZXIuJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGFkZHJlc3MnXSA9ICdOw6VyIGR1IGdqw7hyIGV0IHBvc3RudW1tZXIgc8O4ayB2ZWQgaGplbHAgYXYgc8O4ayBoYW5kbGluZ2VuLCBodmlzIGRldHRlIGFsdGVybmF0aXZldCBlciBha3RpdmVydCwgdmlsIGRldCBvZ3PDpSBzw7hrZXMgaSBhZHJlc3NlZmVsdGV0IGV0dGVyIGRlbiBtYXRjaGVuZGUgc3RyZW5nZW4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnR2plbGRlciBiYXJlIGZvciA8ZW0+c8O4a2U8L2VtPiBtb2R1cywgZGVubmUgcGFyYW1ldGVyZW4ga2FuIGFuZ2kgZW4gc8O4a2plc2tqZW1hIG1hbCBzb20gaWtrZSBlciBzdGFuZGFyZC4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0t1biBneWxkaWcgZm9yIGNhdGVnb3J5bGlzdCBoYW5kbGluZ2VuLCBvbSBkZW5uZSBwYXJhbWV0ZXIgZXIgc2F0dCwgZGEgdmlsIG9nc8OlIGthdGVnb3JpZXIgdXRlbiBzYW1zdmFyZW5kZSBmaXJtYSBibGkgdmlzdCBpIHJlc3VsdGF0ZXQnOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnS3VuIGd5bGRpZyBmb3Igc2FtbWVuZHJhZ3Ntb2R1cywgaHZvciBkZW5uZSBwYXJhbWV0ZXIgYXZnasO4ciBzb3J0ZXJpbmdlbiBhdiB1dGRhdGEgZmlybWFlci4gRGUgbXVsaWdlIHZlcmRpZW5lIGVyOg0KPHVsPg0KPGxpPmlkIC0tIERlbiBpbnRlcm5lIGZpcm1hIElEPC9saT4NCiAgPGxpPjxzdHJvbmc+Y29tcGFueV9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnBob25lPC9saT4NCiAgPGxpPmZheDwvbGk+DQogIDxsaT5lbWFpbDwvbGk+DQogIDxsaT53ZWJzaXRlIC0tIE5ldHRzdGVkZXRzIHVybDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIE9wcHJldHRlbHNlc2RhdG8gZm9yIGRlbm5lIGZpcm1hIHBvc3RlbjwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBFbmRyaW5nc2RhdG8gZm9yIGRlbm5lIGZpcm1hIHBvc3RlbjwvbGk+DQogIDxsaT5zdGF0dXM8L2xpPg0KICA8bGk+cmFuZG9tIC0tIFNvcnRlciBwb3N0ZW5lIHRpbGZlbGRpZy48L2xpPg0KICA8bGk+ZjpmaWVsZCBuYW1lIC0tIFNvcnRlciBldHRlciBvZmZlbnRsaWdlIGVnZW5kZWZpbmVydGUgZmVsdGVyLiBVdGRhdGEgdmlsIGJsaSBzb3J0ZXJ0IGV0dGVyIGRldCBuYXZuZ2l0dGUgZWdlbmRlZmluZXJ0ZSBmZWx0ZXQuPGJyLz4NCiAgPGxpPm1vc3RjaGVja2lucyAtLSA8ZW0+KEt1biBuw6VyIENHU29jaWFsQXBwIG1vZHVsZW4gZXJpbnN0YWxsZXJ0KTwvZW0+IFNvcnRlciB1dGRhdGEgZXR0ZXIgZmlybWEgKGxvY2F0aW9ucykgc29tIGhhciBmbGVzdCBpbm5zamVra2luZ2VyLjwvbGk+DQogIDxsaT5tb3N0ZmF2b3JpdGUgLS0gPGVtPihLdW4gbsOlciBDR1NvY2lhbEFwcCBtb2R1bGVuIGVyaW5zdGFsbGVydCk8L2VtPiBTb3J0ZXIgdXRkYXRhIGV0dGVyIGZpcm1hIChsb2NhdGlvbnMpIHNvbSBoYXIgZmxlc3QgZmF2b3RpdHRlci48L2xpPg0KICAgPHN0cm9uZz4gTWVyazogPC8gc3Ryb25nPiBEdSBtw6Uga2Fuc2tqZSBicnVrZSBzaXRhdGVyIGRlcnNvbSBmZWx0bmF2bmV0IGVyIG1lbGxvbXJvbSA8YnIvPi4NCiAgIDxzdHJvbmc+IE1lcms6IDwvc3Ryb25nPiBEZXQgZmVsdGV0IHNvbSBlciBhbmdpdHQgbcOlIG1lcmtlcyBzb20gb2ZmZW50bGlnIDwvbGk+Lg0KICAgPHN0cm9uZz4gTWVyazogPC9zdHJvbmc+IE7DpXIgZHUgYnJ1a2VyIGVnZW5kZWZpbmVydCBmZWx0IHNvcnRlcmluZywga2FuIGR1IG9nc8OlIGFuZ2kgZXQgZmxhZ2cgZXR0ZXIgZmVsdG5hdm5ldCBmb3Igw6UgdmlzZSBhdCBoZWx0YWxsL2ludGVnZXIgc29ydGVyaW5nIHNrYWwgdXRmw7hyZXMuIGkuZTogPGNvZGU+IHNvcnRieT1mOmN1c3RvbV9vcmRlcmluZzppPC8gY29kZT4gPGJyLz4NCjwvIHVsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVzaWZpc2VyIHJla2tlZsO4bGdlbiBww6Ugc29ydGVydGUgZmVsdGVyIGkgc2FtbWVuZHJhZ3N2aXNuaW5nLiBNdWxpZ2UgdmVyZGllciBlcjoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIFN0aWdlbmRlIHJla2tlZsO4bGdlPC9saT4NCiAgPGxpPmRlc2MgLS0gU3lua2VuZGUgcmVra2Vmw7hsZ2U8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnT3BwZ2kgZW4gbWFsICh2ZWQgbmF2bikgw6UgYmVueXR0ZSBuw6VyIHNhbW1lbmRyYWcgc2thbCB2aXNlcy4gIDxzdHJvbmc+TWVyazo8L3N0cm9uZz4gRGVubmUgdGFnZ3BhcmFtZXRlcmVuIGVyIGlra2Uga29tcGF0aWJlbCBtZWQgdmFrcmUgdXJsXCdlci4nOwokbGFuZ1sncGFyZW50J10gPSAnRm9yZWxkcmUnOwokbGFuZ1sncGhyYXNlJ10gPSAnRnJhc2UvdXR0cnlrayc7CiRsYW5nWydwb3N0YWxfY29kZSddID0gJ1Bvc3RudW1tZXInOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdGaXJtYWthdGFsb2cgbW9kdWxlbiBibGUgdmVsbHlra2V0IGluc3RhbGxlcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZW4gYmxlIGF2aW5zdGFsbGVydC4gQWxsIGFzc29zaWVydCBmaXJtYWRhdGEgaGFyIGJsaXR0IHNsZXR0ZXQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIGF2aW5zdGFsbGVyZSBkZW5uZSBtb2R1bGVuPyDDhSBhdmluc3RhbGxlcmUgZGVubmUgbW9kdWxlbiB2aWwgcGVybWFuZW50IHNsZXR0ZSBhbGwgYXNzb3NpZXJ0IGZpcm1hZGF0YSBpIGRlbm5lIG1vZHVsZW4uJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfYWRkY29tcGFueSddID0gJ0xlZ2cgdGlsIGV0IG55dHQgZmlybWEnOwokbGFuZ1sncHJvbXB0X2FkZGVkaXRmaWVsZCddID0gJ0xlZ2cgdGlsL1JlZGlnZXIgZmVsdGRlZmluaXNqb24nOwokbGFuZ1sncHJvbXB0X2FkbWlud3lzaXd5ZyddID0gJ0Jlbnl0dCBXWVNJV1lHIHJlZGlnZXJlcmVuIGZvciBmaXJtYSByZWRpZ2VyaW5nJzsKJGxhbmdbJ3Byb21wdF9hZG1pbl9lZGl0X3NldHRpbmdzJ10gPSAnQWRtaW4gcmVkaWdlcmluZyBpbnN0aWxsaW5nZXInOwokbGFuZ1sncHJvbXB0X2FsbG93ZHVwbGljYXRlY29tcGFueW5hbWVzJ10gPSAnVGlsbGF0ZSBkdXBsaWthdGUgZmlybWFuYXZuPyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcmllc19pbXBvcnRlZCddID0gJ0thdGVnb3JpZXIgaW1wb3J0ZXJ0JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0thdGVnb3JpIGtvbG9ubmUnOwokbGFuZ1sncHJvbXB0X2NoZWNrX2R1cGxpY2F0ZXMnXSA9ICdUZXN0IGZvciBkdXBsaWthdGUgZmlybWFuYXZuPyc7CiRsYW5nWydwcm9tcHRfY29sbGVjdHN0YXRzJ10gPSAnU2FtbGUgc8O4a2VzdGF0aXN0aWtrJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdGaXJtYWVyIGltcG9ydGVydCc7CiRsYW5nWydwcm9tcHRfY29udmVydF9hZGRyZXNzJ10gPSAnS29udmVydGVyIGFkcmVzc2VyIHRpbCBrb29yZGluYXRlciAob20gaW5nZW4ga29vcmRpbmF0ZXIgZXIgdGlsc3RlZGUpJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVfdXJsJ10gPSAnT3BwcmV0dCBVUkxlciBmb3IgcG9zdGVyIHNvbSBpa2tlIGhhciBVUkxlcic7CiRsYW5nWydwcm9tcHRfZGVsaW1ldGVyJ10gPSAnRmVsdCBza2lsbGV0ZWduJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnU3RhbmRhcmRzaWRlIMOlIHJldHVybmVyZSB0aWwgaSBkZXRhbGptb2R1cy4gSHZpcyBzYXR0IHRpbCAiTm9uZSIgdmlsIHNpZGVuIHNvbSBkZXQga2FsbGVzIGZyYSBibGkgYnJ1a3QuJzsKJGxhbmdbJ3Byb21wdF9kcm9wZG93bl9vcHRpb25zJ10gPSAnTmVkdHJla2tzb3Bzam9uZXInOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZV9uYW1lJ10gPSAnVGVzdCBmb3IgZHVwbGlrYXRlIGZpcm1hbmF2bic7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdSZWRpZ2VyIGZpcm1hJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnQnJ1ayBueSBmcm9udGVuZCBlZGl0b3InOwokbGFuZ1sncHJvbXB0X2VtYWlsX2lzaHRtbCddID0gJ0UtcG9zdCBlciBIVE1MLWZvcm1hdCc7CiRsYW5nWydwcm9tcHRfZW1haWxfc3ViamVjdCddID0gJ0UtcG9zdCBlbW5lJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZSddID0gJ0UtcG9zdCBtYWwnOwokbGFuZ1sncHJvbXB0X2Vycm9ycyddID0gJ0ZlaWwnOwokbGFuZ1sncHJvbXB0X2V4dGVuc2lvbnMnXSA9ICdHeWxkaW5nZSBmaWxlbmRlbHNlcic7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdLYW4gZnJvbnRlbmQtYnJ1a2VyZSBlbmRyZSBldCBmaXJtYXMgc3RhdHVzPyc7CiRsYW5nWydwcm9tcHRfZmV1X2NyZWF0ZSddID0gJ0thbiBGcm9udEVuZFVzZXJzIG9wcHJldHRlIG55ZSBwb3N0ZXI/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZGVsZXRlJ10gPSAnVGlsbGF0IGZvcnNpZGVicnVrZXJlKEZyb250ZW5kIFVzZXJzKSDDpSBzbGV0dGUgcG9zdGVyJzsKJGxhbmdbJ3Byb21wdF9mZXVfZGlzcGxheV9zZXR0aW5ncyddID0gJ0Zyb250ZW5kIHZpc25pbmdzaW5uc3RpbGxpbmdlcic7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBSZWRpZ2VyaW5nc2lubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbGdyb3VwJ10gPSAnQWRtaW5pc3RyYXNqb25zZ3J1cHBlIHNvbSBza2FsIG1vdHRhIHZhcnNsaW5nIGUtcG9zdGVyPyc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25hZGQnXSA9ICdTZW5kIGVuIGUtcG9zdCBuw6VyIGVuIGZyb250ZW5kYnJ1a2VyIGxlZ2dlciB0aWwgZW4gbnkgZmlybXBvc3QoQ29tcGFueURpcmVjdG9yeSknOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1NlbmQgZW4gZS1wb3N0IG7DpXIgZW4gZnJvbnRlbmRicnVrZXIgZW5kcmVyIGVuIGVrc2lzdGVyZW5kZSBmaXJtcG9zdChDb21wYW55RGlyZWN0b3J5KSBwb3N0JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmdyb3VwJ10gPSAnQWRtaW5ncnVwcGUgw6Ugc2VuZGUgZS1wb3N0IHRpbCc7CiRsYW5nWydwcm9tcHRfZmV1X2ltcG9ydCddID0gJ1RpbGxhdCBGcm9udGVuZFVzZXJzIMOlIGltcG9ydGVyZSBwb3N0ZXIgZnJhIENTVj8nOwokbGFuZ1sncHJvbXB0X2ZldV9uZXdfc3RhdHVzJ10gPSAnU3RhbmRhcmQgc3RhdHVzIGZvciBueWUgcG9zdGVyIG9wcHJldHRldCBmcmEgZnJvbnRlbmRlbic7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYWtzaW11bSBhbnRhbGwgcHNvdGVyIHNvbSBrYW4gYXNzb3NpZXJlcyBtZWQgZW4gRkVVLWtvbnRvJzsKJGxhbmdbJ3Byb21wdF9maWVsZGRlZnNfaW1wb3J0ZWQnXSA9ICdGZWx0ZGVmaW5pc2pvbmVyIGltcG9ydGVydCc7CiRsYW5nWydwcm9tcHRfZnJvbnRlbmRfc2hvd2V4cGlyZWQnXSA9ICdWaXMgcG9zdGVyIHNvbSBlciBlaWV0IGF2IHV0bMO4cHRlIEZyb250ZW5kIGJydWtlcmUnOwokbGFuZ1sncHJvbXB0X2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmVsbGUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdIaWVyYXJraXBvc2lzam9uZXIgb3BwcmV0dGV0JzsKJGxhbmdbJ3Byb21wdF9pY29uJ10gPSAnSWtvbic7CiRsYW5nWydwcm9tcHRfaWdub3JlX2FkZHJlc3MnXSA9ICdJZ25vcmVyIGFkcmVzc2VmZWx0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnlkZWZzJ10gPSAnT3BwcmV0dCBtYW5nbGVuZGUga2F0ZWdvcmllciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnl2YWxzJ10gPSAnRnlsbCBrYXRlZ29yaXZlcmRpZXIgdmVkIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdMYXN0IG9wcCBDU1YgRmlsJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGRkZWZzJ10gPSAnT3BwcmV0dCBtYW5nbGVuZGUgImFkZGl0aW9uYWwgZmllbGQiIGRlZmluaXNqb25lciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfZmllbGR2YWxzJ10gPSAnRnlsbCAiYWRkaXRpb25hbCBmaWVsZCIgdmVyZGllciB2ZWQgaW1wb3J0JzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcyddID0gJ0ltcG9ydCBoaWVyYXJraXBvc3Rlcic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2hpZXJhcmNoeXZhbHMnXSA9ICdJbXBvcnQgaGllcmFya2l2ZXJkaWVyJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfbG9va3VwbGF0bG9uZyddID0gJ1Nsw6Ugb3BwIGxhdGl0dWRlIG9nIGxvbmdpdHVkZSB2ZXJkaWVyIG9tIGRlIG1hbmdsZXInOwokbGFuZ1sncHJvbXB0X2ltcG9ydF90ZW1wbGF0ZSddID0gJ0Rlbm5lIG1hbGVuIGJlc2tyaXZlciBldCBza2plbWEgc29tIGJydWtlcyBmb3Igw6UgdGlsbGF0ZSBhdXRvcmlzZXJ0ZSBmcm9udGVuZCBicnVrZXJlIMOlIGltcG9ydGVyZSBkYXRhIGZyYSBlbiByaWt0aWcgZm9ybWF0ZXJ0IENTVi1maWwnOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdLTUwtZmlsIMOlIGltcG9ydGVyZSc7CiRsYW5nWydwcm9tcHRfbnVtZXJyb3JzJ10gPSAnQW50YWxsIGZlaWwgZnVubmV0JzsKJGxhbmdbJ3Byb21wdF9udW1pbXBvcnRlZCddID0gJ0FudGFsbCBpbXBvcnRlcnRlIHBvc3Rlcic7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnQW50YWxsIHBvc3RlciDDpSB2aXNlIHByLiBzaWRlIGkgc2FtbWVuZHJhZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfcHJlcGVuZF93ZWJzaXRlX2h0dHAnXSA9ICdGb3JhbnN0aWxsZSBuZXR0c3RlZHN2ZXJkaWVyIG1lZCBodHRwOi8vJzsKJGxhbmdbJ3Byb21wdF9zdGF0dXMnXSA9ICdTdGF0dXMgZm9yIGltcG9ydGVydCBwb3N0JzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYXJkIHNvcnRlcmluZyBpIHNhbW1lbmRyYWdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmcgaSBzYW1tZW5kcmFnc21vZHVzIDxlbT4oaGFyIGluZ2VuIGZ1bmtzam9uIG7DpXIgc29ydGVyaW5nIGVyIFwndGlsZmVsZGlnKHJhbmRvbSlcJzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ01hbCc7CiRsYW5nWydwcm9tcHRfdXNlX29sZHNlYXJjaCddID0gJ0Jlbnl0dCBnYW1tZWwgc8O4a2VoYW5kbGluZyAoc3TDuHR0ZXIgaWtrZSBzcMO4cnJpbmcgcMOlIGZlbHRkZWZpbmlzam9uZXIsIG9nIHJldHVybmVyZXIgaWtrZSBrYXRlZ29yaWluZm9ybWFzam9uIGkgcmVzdWx0YXRlbmUpJzsKJGxhbmdbJ3B1YmxpYyddID0gJ09mZmVudGxpZyc7CiRsYW5nWydwdWJsaXNoJ10gPSAnUHVibGlzZXInOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUHVibGlzZXJ0JzsKJGxhbmdbJ3JhbmRvbSddID0gJ1RpbGZlbGRpZyc7CiRsYW5nWydyZW9yZGVyJ10gPSAnT21zb3J0ZXInOwokbGFuZ1sncmVvcmRlcl9tb2RlJ10gPSAnT21zb3J0ZXIgbW9kdXMgaGFyIGJsaXR0IGFrdGl2ZXJ0LiBEcmEgZWxlbWVudGVuZSB0aWwgZGVuIMO4bnNrZXQgcmVra2Vmw7hsZ2UuIEZvciDDpSBhdmJyeXRlIG9wZXJhc2pvbmVuLCBrbGlrayAiYXZicnl0Ii4gRm9yIMOlIGxhZ3JlIGVuZHJpbmdlbmUga2xpa2sgInNlbmQiJzsKJGxhbmdbJ3Jlc2V0J10gPSAnTnVsbHN0aWxsJzsKJGxhbmdbJ3Jlc2V0YWxsJ10gPSAnTnVsbHN0aWxsIGFsbGUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdTZXR0IHRpbGJha2UgdGlsIGZhYnJpa2tpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Jlc2V0X3RvX2ZhY3RvcnknXSA9ICdUaWxiYWtlc3RpbGwgdGlsIHN0YW5kYXJkaW5uc3RpbGxpbmdlbmUnOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdEZW5uZSBvcGVyYXNqb24gdmlsIHNldHRlIG1hbGVucyBpbm5ob2xkIHRpbGJha2UgdGlsIHN5c3RlbSBzdGFuZGFyZC4gRXIgZHUgc2lra2VyIHDDpSBkdSB2aWwgZm9ydHNldHRlPyc7CiRsYW5nWydyZXR1cm4nXSA9ICdUaWxiYWtlJzsKJGxhbmdbJ3NlYXJjaCddID0gJ1PDuGsnOwokbGFuZ1snc2VhcmNoZXMnXSA9ICdTw7hrJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZXMnXSA9ICdTw7hrIHNramVtYW1hbGVyJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBzw7hrZXNramVtYSBtYWwnOwokbGFuZ1snc2VhcmNoX2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ3NlYXJjaF9kYXRlJ10gPSAnRGF0byc7CiRsYW5nWydzZWFyY2hfaGllciddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ3NlYXJjaF9pcCddID0gJ0lQIGFkcmVzc2UnOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnVmVsZyBlbic7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVmVsZyBhbGxlJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlciBldHRlcic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTb3J0ZXJpbmdzcmVra2Vmw7hsZ2UnOwokbGFuZ1snc3VibWl0J10gPSAnVXRmw7hyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTYW1tZW5kcmFnc21hbCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAnU2FtbWVuZHJhZ3NtYWwgb3BwZGF0ZXJ0JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWydzeXNkZWZhdWx0cyddID0gJ1RpbGJha2VzdGlsbCB0aWwgc3RhbmRhcmQnOwokbGFuZ1sndGVsZXBob25lJ10gPSAnVGVsZWZvbic7CiRsYW5nWyd0ZWxlcGhvbmV0ZXh0J10gPSAnVGVsZWZvbic7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR5cmJpbGRlJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBrYXRlZ29yaWxpc3RlIG1hbCc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgZGV0YWxqbWFsJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kYWxidW1fZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhciBGcm9udGVuZCBSZWRpZ2VyaW5ncyBBbGJ1bSBNYWwnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIEZvcm50ZW5kc2tqZW1hIG1hbCc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgRnJvbnRlbmQgTGlzdGVtYWwnOwokbGFuZ1sndGl0bGVfZ2FsbGVyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBHYWxsZXJpbWFsJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIGhpZXJhcmtpbGlzdGVtYWwnOwokbGFuZ1sndGl0bGVfaW1wb3J0X3JlcG9ydCddID0gJ0NTViBpbXBvcnQgcmFwcG9ydCc7CiRsYW5nWyd0aXRsZV9uZXdzZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmQgc8O4a2VtYWwnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBzw7hrZXNramVtYSBtYWwnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWyd1cCddID0gJ09wcCc7CiRsYW5nWyd1cGRhdGVoaWVyJ10gPSAnT3BwZGF0ZXIgaGllcmFya2kgcG9zaXNqb25lcic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXN0IG9wcCc7CiRsYW5nWyd1cmxzJ10gPSAnVVJMZXInOwokbGFuZ1sndXJsX2F1dG9jcmVhdGUnXSA9ICdBdXRvbWF0aXNrIG9wcHJldHRlIHVuaWtlIFVSTGVyJzsKJGxhbmdbJ3VybF9jcmVhdGVvbmNvcHknXSA9ICdPcHByZXR0IFVSTGVyIHZlZCBrb3BpZXJpbmcnOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnR2rDuHIgMzAxIFJlZGlyZWN0IHRpbCBueWUgVVJMZXInOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnRW4gVVJMIGVyIHDDpWtyZXZkJzsKJGxhbmdbJ3ZpZXdfd2Vic2l0ZSddID0gJ0fDpSB0aWwgbmV0dHNpZGVuJzsKJGxhbmdbJ3dlYnNpdGUnXSA9ICdOZXR0c3RlZCc7CiRsYW5nWyd3ZWJzaXRldGV4dCddID0gJ05ldHRzdGVkJzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdNZWQgdmFsZ3RlJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMjIEEKJGxhbmdbJ2FjdGl2ZSddID0gJ0FjdGllZic7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0NhdGVnb3JpZSB0b2V2b2VnZW4nOwokbGFuZ1snYWRkY29tcGFueSddID0gJ0JlZHJpamYgdG9ldm9lZ2VuJzsKJGxhbmdbJ2FkZGVkaXRfaGllcmFyY2h5J10gPSAnVG9ldm9lZ2VuL1dpanppZ2VuIHZhbiBIaWVyYXJjaHkgYXJ0aWtlbCc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUgdG9ldm9lZ2VuJzsKJGxhbmdbJ2FkZGhpZXInXSA9ICdIaWVyYXJjaGllIHRvZXZvZWdlbic7CiRsYW5nWydhZGRsaW5rJ10gPSAnTGluayB0b2V2b2VnZW4nOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXMnOwokbGFuZ1snYWRkX2VkaXRfY2F0ZWdvcnknXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gQ2F0ZWdvcmllJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdBbGxlZW4gemljaHRiYWFyIHZvb3IgYmVoZWVyZGVyJzsKJGxhbmdbJ2FueSddID0gJ0FsbGUnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnT3Bsb3BlbmQnOwoKIyMgQgokbGFuZ1snYmFkbmFtZWdpdmVuJ10gPSAnRGV6ZSBuYWFtIGlzIG9uZ2VsZGlnIChuYW1lbiBtb2V0ZW4gVVJMLXZyaWVuZGVsaWprIHppam4pJzsKCiMjIEMKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXJlbic7CiRsYW5nWydjYW51c2VyZWRpdCddID0gJ0t1bm5lbiBmcm9udGVuZCBnZWJydWlrZXJzIGRpdCB2ZWxkIGJld2Vya2VuPyc7CiRsYW5nWydjYW51c2VydmlldyddID0gJ0t1bm5lbiBmcm9udGVuZCBnZWJydWlrZXJzIGRpdCB2ZWxkIHppZW4/JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUmZXVtbDtuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yaWUgdG9lZ2V2b2VnZCc7CiRsYW5nWydjYXRlZ29yeWRlbGV0ZWQnXSA9ICdDYXRlZ29yaWUgdmVyd2lqZGVyZCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdDYXRlZ29yaWVsaWpzdHNqYWJsb29uJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRldXBkYXRlZCddID0gJ0NhdGVnb3JpZWxpanN0IGJpamdld2Vya3QnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0NhdGVnb3JpZWxpanN0c2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ2NhdGVnb3J5dGV4dCddID0gJ0NhdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeXVwZGF0ZWQnXSA9ICdDYXRlZ29yaWUgYmlqZ2V3ZXJrdCc7CiRsYW5nWydjaGVjayddID0gJ0NvbnRyb2xlZXInOwokbGFuZ1snY29tcGFuaWVzJ10gPSAnQmVkcmlqdmVuJzsKJGxhbmdbJ2NvbXBhbnknXSA9ICdCZWRyaWpmJzsKJGxhbmdbJ2NvbXBhbnlhZGRlZCddID0gJ0JlZHJpamYgdG9lZ2V2b2VnZCc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0JlZHJpamYgdmVyd2lqZGVyZCc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0JlZHJpamZzbmFhbSc7CiRsYW5nWydjb21wYW55dGV4dCddID0gJ0JlZHJpamYnOwokbGFuZ1snY29tcGFueXVwZGF0ZWQnXSA9ICdCZWRyaWpmIGJpamdld2Vya3QnOwokbGFuZ1snY29uZmlybV9hdXRvY3JlYXRlX3VybCddID0gJ0NyZSZldW1sO2VyIGF1dG9tYXRpc2NoIFVSTCYjMDM5O3Mgdm9vciBiZXN0YWFuZGUgcmVjb3JkcyB6b25kZXIgVVJMJzsKJGxhbmdbJ2NvbmZpcm1fZWRpdF9hbGJ1bSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkaXQgYWxidW0gd2lsdCB3aWp6aWdlbi4gQW5kZXJlIHdpanppZ2luZ2VuIGFhbiBkZSBpbnN0ZWxsaW5nZW4gd29yZGVuIG5pZXQgb3BnZXNsYWdlbiEnOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnQ29udGFjdCBFLW1haWwnOwokbGFuZ1snY29vcmRpbmF0ZXMnXSA9ICdDbyZvdW1sO3JkaW5hdGVuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BpZWVyJzsKJGxhbmdbJ2NyZWF0ZWQnXSA9ICdHZW1hYWt0JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdG9lZ2V2b2VnZCc7CiRsYW5nWydjcmVhdGV1cmxzJ10gPSAnTWFhayBVUkwmIzAzOTtzJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdIdWlkaWdlIHdhYXJkZSc7CgojIyBECiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhYXJkc2phYmxvbmVuJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5PcG1lcmtpbmc6PC9zdHJvbmc+IERlIGluaG91ZCB2YW4gZGV6ZSB0ZWtzdHZlbGRlbiB3b3JkZW4gZ2VicnVpa3Qgb20gZGUgc3RhbmRhYXJkIGluaG91ZCB2YW4gZGUgc2phYmxvbmVuIHRlIGJlcGFsZW4gYWxzIHUgJnF1b3Q7U2phYmxvb24gdG9ldm9lZ2VuJnF1b3Q7IGtsaWt0LCBpbiBoZXQganVpc3RlIHNqYWJsb29uIHRhYmJsYWQuIEJld2Vya2VuIHZhbiBlZW4gdmFuIGRlemUgdGVrc3RlbiB6YWwgZ2VlbiBkaXJlY3QgZWZmZWN0IGhlYmJlbiBvcCB1dyB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdWZXJ3aWpkZXJlbic7CiRsYW5nWydkZWxldGVjYXRlZ29yeSddID0gJ0NhdGVnb3JpZSB2ZXJ3aWpkZXJlbic7CiRsYW5nWydkZWxldGVjb21wYW55J10gPSAnQmVkcmlqZiB2ZXJ3aWpkZXJlbic7CiRsYW5nWydkZWxldGVmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUgdmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsaW1pdGVyJ10gPSAnU2NoZWlkaW5nc3Rla2VuIHZlbGRlbic7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnQWZsb3BlbmQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNjaHJpanZpbmcnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsc2phYmxvb24nOwokbGFuZ1snZGV0YWlsdGVtcGxhdGV1cGRhdGVkJ10gPSAnRGV0YWlsc2phYmxvb24gYmlqZ2V3ZXJrdCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRGV0YWlsc2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ2Rpc2FibGUnXSA9ICdVaXRzY2hha2VsZW4nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdVaXRnZXNjaGFrZWxkJzsKJGxhbmdbJ2Rvd24nXSA9ICdOZWVyJzsKJGxhbmdbJ2RyYWZ0J10gPSAnQ29uY2VwdCc7CiRsYW5nWydkcmFnX2Ryb3BfdXBsb2FkJ10gPSAnU2xlZXAgZW4gWmV0IE5lZXIgVXBsb2FkJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ1NsZWVwIHV3IGJlc3RhbmRlbiBoaWVyIG9tIHRlIHVwbG9hZGVuJzsKCiMjIEUKJGxhbmdbJ2VkaXQnXSA9ICdCZXdlcmtlbic7CiRsYW5nWydlZGl0Y2F0ZWdvcnknXSA9ICdDYXRlZ29yaWUgYmV3ZXJrZW4nOwokbGFuZ1snZWRpdGNvbXBhbnknXSA9ICdCZWRyaWpmIGJld2Vya2VuJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUgYmV3ZXJrZW4nOwokbGFuZ1snZWRpdF9hbGJ1bSddID0gJ1dpanppZyBGb3RvYWxidW0nOwokbGFuZ1snZWRpdF9maWx0ZXInXSA9ICdXaWp6aWcgRmlsdGVyJzsKJGxhbmdbJ2VtYWlsdGV4dCddID0gJ0UtbWFpbCc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0UtbWFpbCBTamFibG9vbic7CiRsYW5nWydlcnJvcl9hZGRyZXNzX2xvb2t1cCddID0gJ1Byb2JsZWVtIGJpaiBvcHpvZWtlbiB2YW4gYWRyZXM6ICVzJzsKJGxhbmdbJ2Vycm9yX2FsYnVtZmllbGRleGlzdHMnXSA9ICdFciBpcyBhbCBlZW4gQWxidW0gdmVsZC4gTWVlciBrYW4gaGVsYWFzIG5pZXQuLi4nOwokbGFuZ1snZXJyb3JfYmFkdXBsb2FkJ10gPSAnRXIgaXMgZWVuIHByb2JsZWVtIG9wZ2V0cmVkZW4gYmlqIGhldCB1cGxvYWRlbiB2YW4gaGV0IGJlc3RhbmQnOwokbGFuZ1snZXJyb3JfYmF0Y2h1cmxjcmVhdGUnXSA9ICdCYXRjaCBVUkwgQ3JlYXRpb24gdmVyb29yemFha3RlICVkIGZvdXRlbic7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWNvbHVtbl9ub3Rmb3VuZCddID0gJ0NhdGVnb3JpZSBrb2xvbSAlcyBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnQmVkcmlqZnNuYWFtIGlzIG9uZ2VsZGlnJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnRWVuIGJlZHJpamYgbWV0IGRlemUgbmFhbSBiZXN0YWF0IGFsIGluIGRlIGRhdGFiYXNlJzsKJGxhbmdbJ2Vycm9yX2RlbGltaXRlciddID0gJ1UgbW9ldCBlZW4gdmVsZHNjaGVpZGluZ3N0ZWtlbiBiZW5vZW1lbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGUnXSA9ICdGb3V0IGJpaiBoZXQgYWFubWFrZW4gKG1hYXIgZ2FhdCBkb29yKSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY2F0ZWdvcnknXSA9ICdFciBiZXN0YWF0IGFsIGVlbiBjYXRlZ29yaWUgbWV0IGRlemUgbmFhbSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfY29tcGFueSddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIGJlZHJpamYgbWV0IGRlemUgbmFhbSAoJXMpJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9maWVsZGRlZiddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIHZlbGQgbWV0IGRlemUgbmFhbSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfaGllcmFyY2h5J10gPSAnRWVuIGhpZXJhcmNoaWUgbWV0IGRlIG5hYW0gJnF1b3Q7JXMmcXVvdDsgYmVzdGFhdCBhbC4nOwokbGFuZ1snZXJyb3JfZmV1X2xvZ2dlZGluJ10gPSAnT20gZGV6ZSBmdW5jdGllIHRlIGdlYnJ1aWtlbiBtb2V0IHUgaW5nZWxvZ2QgemlqbiBvcCBkZSB3ZWJzaXRlJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkZGVmX25vdGZvdW5kJ10gPSAnVmVsZGRlZmluaXRlIG1ldCBpZCAlZCBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX2dlbmVyYXRldXJsJ10gPSAnUHJvYmxlZW0gb3BnZXRyZWRlbiBiaWogZ2VuZXJlcmVuIHZhbiBVUkwnOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZGxpbmUnXSA9ICdGb3V0ZSByZWNvcmQgZ2V2b25kZW4gaW4gcmVnZWwgJWQuICBNaXN0IGVyIGVlbiByZWdlbD8nOwokbGFuZ1snZXJyb3JfaW1wb3J0X2JhZHZhbHVlJ10gPSAnRXIgaXMgZWVuIHZlcmtlZXJkZSB3YWFyZGUgZ2V2b25kZW4gdm9vciBoZXQgJXMgdmVsZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfZHVwbGljYXRlcnVsZSddID0gJ0R1YmJlbGUgJXMgcmVnZWwgYmlqIHJlZ2VsICVkJzsKJGxhbmdbJ2Vycm9yX2ltcG9ydF9kdXBsaWNhdGVydWxlX2lkZW50aWZpZXInXSA9ICdEdWJiZWxlIHJlZ2VsIGdldm9uZGVuIGJpaiByZWdlbCAlZCc7CiRsYW5nWydlcnJvcl9pbXBvcnRfdW5rbm93bnJvdyddID0gJ09uZHVpZGVsaWprIGhvZSByZWdlbCAlZCBtZXQgcmVnZWwgc2xldXRlbCAlcyB2ZXJ3ZXJrdCBkaWVudCB0ZSB3b3JkZW4nOwokbGFuZ1snZXJyb3JfaW1wb3J0X3Vua25vd25ydWxlJ10gPSAnT25iZWtlbmRlIHJlZ2VsIGJpaiByZWdlbCAlZCc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY2F0ZWdvcnknXSA9ICdFZW4gZGF0YWJhc2UgZm91dCBpcyBvcGdldHJlZGVuIHRpamRlbnMgaGV0IGFhbm1ha2VuIHZhbiBlZW4gY2F0ZWdvcmllIGRlZmluaXRpZSc7CiRsYW5nWydlcnJvcl9pbnNlcnRfY29tcGFueSddID0gJ0VlbiBkYXRhYmFzZSBmb3V0IGlzIG9wZ2V0cmVkZW4gdGlqZGVucyBoZXQgYWFubWFrZW4gdmFuIGVlbiBiZWRyaWpmIGRlZmluaXRpZSc7CiRsYW5nWydlcnJvcl9pbnNlcnRfZmllbGRkZWYnXSA9ICdFZW4gZGF0YWJhc2UgZm91dCBpcyBvcGdldHJlZGVuIHRpamRlbnMgaGV0IGFhbm1ha2VuIHZhbiBlZW4gdmVsZCBkZWZpbml0aWUnOwokbGFuZ1snZXJyb3JfaW5zZXJ0X2hpZXJhcmNoeSddID0gJ0ZvdXQgYmlqIGhldCBhYW5tYWtlbiB2YW4gaGllcmFyY2hpZSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkbmFtZSddID0gJ0RlIGJlZHJpamZzbmFhbSBpcyBvbmdlbGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXJsJ10gPSAnRGUgb3BnZWdldmVuIChvZiBiZXJla2VuZGUpIFVSTCBpcyBvbmdlbGRpZyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3BhcmFtJ10gPSAnRGUgZ2VzcGVjaWZpY2VlcmRlIHdhYXJkZSB2b29yICVzIGlzIG5pZXQgY29ycmVjdCc7CiRsYW5nWydlcnJvcl9rbWxpbXBvcnRfbm9hZGRyZXNzJ10gPSAnR2VlbiBhZHJlcyBnZXZvbmRlbiBpbiBkaXQgcmVjb3JkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiB2ZXJwbGljaHRlIHdhYXJkZSBpcyBuaWV0IGFhbndlemlnIGJpaiBkZSBmb3JtdWxpZXJpbmdhdmUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3VwbG9hZCddID0gJ0VyIGlzIGdlZW4gYmVzdGFuZCBnZSZ1dW1sO3Bsb2FkJzsKJGxhbmdbJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnXSA9ICdTb3JyeSwgbWFhciBlciB6aWpuIGdlZW4gaXRlbXMgZ2V2b25kZW4gZGllIGFhbiB1dyBjcml0ZXJpYSB2b2xkb2VuJzsKJGxhbmdbJ2Vycm9yX25vZHJvcGRvd25vcHRpb25zJ10gPSAnR2VlbiBkcm9wZG93biBvcHRpZXMgaW5nZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX25vZmV1J10gPSAnS2FuIGRlIEZyb250RW5kVXNlcnMtbW9kdWxlIG5pZXQgdmluZGVuJzsKJGxhbmdbJ2Vycm9yX25vZmlsdGVybWF0Y2hlcyddID0gJ0VyIHppam4gZ2VlbiBkYXRhYmFzZSByZWNvcmRzIGdldm9uZGVuIGRpZSB2b2xkb2VuIGFhbiBkZSBvcGdlZ2V2ZW4gY3JpdGVyZWEuJzsKJGxhbmdbJ2Vycm9yX25vbGVuZ3RoJ10gPSAnR2VlbiBtYXhpbXVtIHZlbGRsZW5ndGUgaW5nZXZvZXJkJzsKJGxhbmdbJ2Vycm9yX25vb3duZXInXSA9ICdHZWVuIG9mIGVlbiB2ZXJrZWVyZGUgZWlnZW5hYXIgSUQnOwokbGFuZ1snZXJyb3Jfbm9yZXN1bHRzZm91bmQnXSA9ICdFciBrYW4gZ2VlbiByZWNvcmQgd29yZGVuIGdldm9uZGVuIGluIGRlIGRhdGFiYXNlIGRpZSBhYW4gdXcgY3JpdGVyaWEgdm9sZG9ldCc7CiRsYW5nWydlcnJvcl9ub3Nwb3RzbGVmdCddID0gJ1UgaGVlZnQgZ2VlbiBsZWdlIGJlZHJpamZzcGxhYXRzZW4gbWVlcic7CiRsYW5nWydlcnJvcl9ub3RoaW5nc2VsZWN0ZWQnXSA9ICdOaWV0cyBnZXNlbGVjdGVlcmQnOwokbGFuZ1snZXJyb3JfcG9zdGNvZGVfbG9va3VwJ10gPSAnS2FuIGdlZW4gaW5mb3JtYXRpZSB2aW5kZW4gYmlqIGRlIHBvc3Rjb2RlICVzJzsKJGxhbmdbJ2Vycm9yX3ByZWZpeF9tc2cnXSA9ICdFciBpcyBlZW4gZm91dCBvcGdldHJlZGVuIGJpaiByZWdlbCAlZDogJXMnOwokbGFuZ1snZXJyb3JfdXBkYXRlX2NvbXBhbnknXSA9ICdGb3V0IGJpaiBoZXQgYmlqd2Vya2VuIHZhbiBlZW4gYmVkcmlqZnNyZWNvcmQnOwokbGFuZ1snZXJyb3JfdXBsb2FkJ10gPSAnRm91dCBvcGdldHJlZGVuIGJpaiBoZXQgdXBsb2FkZW4gdmFuIGhldCBiZXN0YW5kJzsKJGxhbmdbJ2Vycm9yX3VybG5vdGVtcHR5J10gPSAnSGV0IFVSTCB2ZWxkIGlzIG5pZXQgbGVlZy4uLiBrYW4gZ2VlbiBiZXN0YWFuZGUgd2FhcmRlbiBvdmVyc2NocmlqdmVuJzsKJGxhbmdbJ2Vycm9yX3VybHJlcXVpcmVkJ10gPSAnRWVuIFVSTCBpbnZvZXJlbiBpcyB2ZXJwbGljaHQnOwokbGFuZ1snZXZlbnRkZXNjLU9uQWRkQ29tcGFueSddID0gJ0V2ZW50IHZlcnN0dXVyZCBuYWRhdCBlZW4gbmlldXcgYmVkcmlqZiBpcyB0b2VnZXZvZWdkIGFhbiBkZSBkYXRhYmFzZSc7CiRsYW5nWydldmVudGRlc2MtT25EZWxldGVDb21wYW55J10gPSAnRXZlbnQgdmVyc3R1dXJkIHZvb3JkYXQgZWVuIGJlZHJpamYgaXMgdmVyd2lqZGVyZCc7CiRsYW5nWydldmVudGRlc2MtT25FZGl0Q29tcGFueSddID0gJ0V2ZW50IHZlcnN0dXVyZCBuYWRhdCBlZW4gYmVkcmlqZiBpcyBnZXdpanppZ2QgaW4gZGUgZGF0YWJhc2UnOwokbGFuZ1snZXZlbnRoZWxwLU9uQWRkQ29tcGFueSddID0gJzxwPlNlbnQgYWZ0ZXIgYSBjb21wYW55IGlzIGFkZGVkIHRvIHRoZSBkYXRhYmFzZS48L3A+DQo8aDQ+UGFyYW1ldGVyczo8L2g0Pg0KPHVsPg0KICA8bGk+JnF1b3Q7d2hvJnF1b3Q7IC0gSWQgb2YgdGhlIGxvZ2dlZCBpbiB1c2VyIGluc3RhbnRpYXRpbmcgdGhlIGV2ZW50LjwvbGk+DQogIDxsaT4mcXVvdDtvYmplY3QmcXVvdDsgLSBUaGUgY2RfY29tcGFueSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBkYXRhIHRoYXQgd2FzIHNhdmVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25EZWxldGVDb21wYW55J10gPSAnPHA+U2VudCBiZWZvcmUgYSBjb21wYW55IGlzIGRlbGV0ZWQgZnJvbSB0aGUgIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT4mcXVvdDt3aG8mcXVvdDsgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiZxdW90O2NpZCZxdW90OyAtIElkIG9mIHRoZSBjb21wYW55IHJlY29yZCB0byBiZSBkZWxldGVkLjwvbGk+DQo8L3VsPic7CiRsYW5nWydldmVudGhlbHAtT25FZGl0Q29tcGFueSddID0gJzxwPlNlbnQgYWZ0ZXIgYSBjb21wYW55IGlzIHVwZGF0ZWQgaW4gdGhlIGRhdGFiYXNlLjwvcD4NCjxoND5QYXJhbWV0ZXJzOjwvaDQ+DQo8dWw+DQogIDxsaT4mcXVvdDt3aG8mcXVvdDsgLSBJZCBvZiB0aGUgbG9nZ2VkIGluIHVzZXIgaW5zdGFudGlhdGluZyB0aGUgZXZlbnQuPC9saT4NCiAgPGxpPiZxdW90O29iamVjdCZxdW90OyAtIFRoZSBjZF9jb21wYW55IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGRhdGEgdGhhdCB3YXMgc2F2ZWQuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2V4cGlyZXMnXSA9ICdWZXJsb29wdCc7CiRsYW5nWydleHBvcnRjc3YnXSA9ICdFeHBvcnRlcmVuIG5hYXIgQ1NWJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIGRhdGEgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYSBkYXRhIDInOwokbGFuZ1snZXh0cmEzJ10gPSAnRXh0cmEgZGF0YSAzJzsKCiMjIEYKJGxhbmdbJ2ZlZWRpdF9lbWFpbF9zdWJqZWN0J10gPSAnRXIgaXMgZWVuIHdpanppZ2luZyBhYW5nZWJyYWNodCBhYW4gZWVuIENvbXBhbnlEaXJlY3RvcnkgYmVkcmlqZic7CiRsYW5nWydmaWVsZGRlZiddID0gJ1ZlbGRkZWZpbml0aWUnOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ1ZlbGRkZWZpbml0aWUgdG9lZ2V2b2VnZCc7CiRsYW5nWydmaWVsZGRlZmRlbGV0ZWQnXSA9ICdWZWxkZGVmaW5pdGllIHZlcndpamRlcmQnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnVmVsZGRlZmluaXRpZXMnOwokbGFuZ1snZmllbGRkZWZ0ZXh0J10gPSAnVmVsZGRlZmluaXRpZSc7CiRsYW5nWydmaWVsZGRlZnVwZGF0ZWQnXSA9ICdWZWxkZGVmaW5pdGllIGJpamdld2Vya3QnOwokbGFuZ1snZmllbGRzJ10gPSAnVmVsZGVuJzsKJGxhbmdbJ2ZpZWxkX2FjdGl2aXR5J10gPSAnQWN0aXZpdGVpdGVuIChDR1NvY2lhbEFwcCknOwokbGFuZ1snZmllbGRfYWxidW0nXSA9ICdBbGJ1bSAoQWFudGFsIGFmYmVlbGRpbmdlbiknOwokbGFuZ1snZmllbGRfY2hlY2tib3gnXSA9ICdWaW5rdmFramUnOwokbGFuZ1snZmllbGRfZmlsZSddID0gJ0Jlc3RhbmQnOwokbGFuZ1snZmllbGRfaWNvbiddID0gJ1BpY3RvZ3JhbSAoQ0dHb29nbGVNYXBzKSc7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snZmllbGRfbXVsdGlzZWxlY3QnXSA9ICdNZWVydm91ZGlnZSBzZWxlY3RpZSc7CiRsYW5nWydmaWVsZF90ZXh0YXJlYSddID0gJ1Rla3N0IHJ1aW10ZSc7CiRsYW5nWydmaWVsZF90ZXh0Ym94J10gPSAnVGVrc3QgSW52b2VyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCB3aWp6aWcgQWxidW0gc2phYmxvbmVuJzsKJGxhbmdbJ2Zyb250ZW5kYWxidW10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL1dpanppZ2VuIEZyb250ZW5kIHdpanppZyBBbGJ1bSBTamFibG9vbic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXMnXSA9ICdCZWRyaWpmc3NqYWJsb25lbiBiZXdlcmtlbic7CiRsYW5nWydmcm9udGVuZGZvcm10ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdCZWRyaWpmc3NqYWJsb29uIGJpamdld2Vya3QnOwokbGFuZ1snZnJvbnRlbmRmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ0Zyb250ZW5kLWZvcm11bGllcnNqYWJsb29uIHRvZWdldm9lZ2QvYmlqZ2V3ZXJrdCc7CiRsYW5nWydmcm9udGVuZGltcG9ydHRlbXBsYXRlJ10gPSAnRnJvbnRlbmQgQ1NWIEltcG9ydGVlciBTamFibG9vbic7CiRsYW5nWydmcm9udGVuZGxpc3R0ZW1wbGF0ZXMnXSA9ICdGcm9udGVuZCBMaWpzdCBTamFibG9uZW4nOwokbGFuZ1snZnJvbnRlbmRsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbiBvZiB3aWp6aWdlbiB2YW4gZWVuIEZyb250ZW5kIExpanN0IFNqYWJsb29uJzsKCiMjIEcKJGxhbmdbJ2dhbGxlcnl0ZW1wbGF0ZXMnXSA9ICdHYWxsZXJ5IFNqYWJsb25lbic7CiRsYW5nWydnYWxsZXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbi9XaWp6aWdlbiB2YW4gR2FsbGVyeSBTamFibG9vbic7CiRsYW5nWydnZXR1cmwnXSA9ICdHZW5lcmVlciBVUkwnOwoKIyMgSAokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSc7CiRsYW5nWydoaWVyYXJjaHlsaXN0dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZSBMaWpzdCBTamFibG9uZW4nOwokbGFuZ1snaGllcmxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIEhpZXJhcmNoaWUgTGlqc3QgU2phYmxvbmVuJzsKCiMjIEkKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaWdub3JlJ10gPSAnTmVnZWVyJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snaW1wb3J0Y3N2J10gPSAnSW1wb3J0ZWVyIENTVic7CiRsYW5nWydpbXBvcnRrbWwnXSA9ICdJbXBvcnRlZXIgS01MJzsKJGxhbmdbJ2ltcG9ydF9maWxlbmFtZSddID0gJ1NlbGVjdGVlciBDU1YgQmVzdGFuZCc7CiRsYW5nWydpbXBvcnRfa21sJ10gPSAnSW1wb3J0ZWVyIEtNTCBCZXN0YW5kJzsKJGxhbmdbJ2luZm9fYmF0Y2h1cmxjcmVhdGUnXSA9ICdCYXRjaCBVUkwgQ3JlYXRpb24gaGVlZnQgJWQgcmVjb3JkcyBiaWpnZXdlcmt0JzsKJGxhbmdbJ2luZm9fY3JlYXRlX3VybCddID0gJ0FscyBlciBnZWVuIFVSTCBpcyBvcGdlZ2V2ZW4gdm9vciBlZW4gcmVjb3JkLCBkYW4gem9yZ3QgZGV6ZSBvcHRpZSBkYXQgZGUgVVJMIGFsc25vZyBhYW5nZW1hYWt0IHdvcmR0LiBJbmRpZW4gZGUgJiMwMzk7VmVyZWlzIFVSTCYjMDM5Oy1pbnN0ZWxsaW5nIGlzIGluZ2VzY2hha2VsZCwgZGFuIHp1bGxlbiBlciBVUkwmIzAzOTtzIHdvcmRlbiBhYW5nZW1hYWt0LCBvbmdlYWNodCBkZSB3YWFyZGUgdmFuIGRlemUgaW5zdGVsbGluZy4nOwokbGFuZ1snaW5mb19jc3ZmaWxlJ10gPSAnSGV0IGlzIG1vZ2VsaWprIG9tIGJlZHJpamZzaW5mb3JtYXRpZSByZWNodHN0cmVla3MgdGUgaW1wb3J0ZXJlbiB1aXQgZWVuIEFTQ0lJIGJlc3RhbmQuJzsKJGxhbmdbJ2luZm9fZHJvcGRvd25fb3B0aW9ucyddID0gJ1NwZWNpZmljZWVyIGRlIG9wdGllcyB2b29yIGRlIGRyb3Bkb3duIGNvbnRyb2xlLiAgRWVuIHJlZ2VsIHBlciBvcHRpZS4gIFNjaGVpZHQgZGUgdmFyaWFiZWxlbiB2YW4gZGUgd2FhcmRlcyBtZXQgZWVuID0uICBiaWp2LjogdmFyaWFiZWxlPXdhYXJkZSc7CiRsYW5nWydpbmZvX2V4dGVuc2lvbnMnXSA9ICdHZWVmIGVlbiBsaWpzdCBvcCBtZXQga29tbWFnZXNjaGVpZGVuIHdhYXJkZW4gbWV0IGJlc3RhbmRzZXh0ZW5zaWVzIChob29mZGxldHRlcmdldm9lbGlnKS4gSW5kaWVuIG5pZXQgb3BnZWdldmVuIHdvcmRlbiBkZSBzdGFuZGFhcmR3YWFyZGVuIHZhbiBDR0V4dGVuc2lvbnMgd29yZGVuIGdlYnJ1aWt0Lic7CiRsYW5nWydpbmZvX25vZmllbGRzJ10gPSAnR2VlbiBleHRyYSB2ZWxkZW4gaW5nZXN0ZWxkJzsKJGxhbmdbJ2luZm9fdXJsX2NyZWF0ZW9uY29weSddID0gJ1dhbm5lZXIgdSBiZWRyaWp2ZW4ga29waWVlcnQsIGRhbiB6YWwgZXIgZWVuIFVSTCB3b3JkZW4gYWFuZ2VtYWFrdCB2b29yIGhldCBiZXN0ZW1taW5nc3JlY29yZC4gRGl0IGlzIGFsbGVlbiB2YW4gdG9lcGFzc2luZyBhbHMgVVJMJiMwMzk7cyBuaWV0IHZlcmVpc3Qgemlqbi4nOwokbGFuZ1snaW5mb191cmxfcmVxdWlyZWQnXSA9ICdNb2V0IGhldCBVUkwgdmVsZCB2b2xkb2VuIGFhbiBlZW4gZ2VsZGlnaGVpZHN2ZXJlaXN0ZSBiaWogaGV0IHRvZXZvZWdlbiBvZiBiZXdlcmtlbiB2YW4gZWVuIGJlZHJpamY/JzsKJGxhbmdbJ2luZm9fdXNlcmVkaXQnXSA9ICdJbmRpZW4gZ2VhY3RpdmVlcmQga3VubmVuIGVua2VsIGFkbWluaXN0cmF0b3JzIGRpdCB2ZWxkIHdpanppZ2VuJzsKJGxhbmdbJ2ludXNlJ10gPSAnaW4gZ2VicnVpayc7CgojIyBMCiRsYW5nWydsYWJlbF9pbmNsdWRlY2hpbGRyZW4nXSA9ICdWb2VnIGNoaWxkaGllcmFyY2hpZSZldW1sO24gdG9lJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGJsX2JhY2snXSA9ICdUZXJ1Zyc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdJbnN0ZWxsaW5nZW4nOwokbGFuZ1snbGJsX3RlbXBsYXRlcyddID0gJ1NqYWJsb25lbic7CiRsYW5nWydsb29rdXAnXSA9ICdDbyZvdW1sO3JkaW5hdGVuIG9wem9la2VuJzsKCiMjIE0KJGxhbmdbJ21heGxlbmd0aCddID0gJ01heC4gbGVuZ3RlJzsKJGxhbmdbJ21heGxlbmd0aHRleHQnXSA9ICdNYXguIGxlbmd0ZSc7CiRsYW5nWydtYXhfbGVuZ3RoJ10gPSAnTWF4LiBsZW5ndGUnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFZW4gbW9kdWxlIHZvb3IgaGV0IGJpamhvdWRlbiB2YW4gYmVkcmlqZnNnZWdldmVucy4gSGllcm1lZSBrdW50IHUgYmVkcmlqZnNnZWdldmVucyBiaWpob3VkZW4sIGltcG9ydGVuLCBleHBvcnRlcmVuLCBkb29yem9la2VuLCBlbiBpbiB2ZXJzY2hpbGxlbmRlIG1hbmllcmVuIG9wIGRlIHdlYnNpdGUgdG9uZW4uIERlemUgbW9kdWxlIHdlcmt0IGdvZWQgc2FtZW4gbWV0IENHR29vZ2xlTWFwcy4nOwokbGFuZ1snbW9kaWZpZWQnXSA9ICdHZXdpanppZ2QnOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0dW0gbGFhdHN0ZSBhYW5wYXNzaW5nJzsKJGxhbmdbJ21zZ19idWxrZGVsJ10gPSAnJWQgaXRlbXMgdmVyd2lqZGVyZCc7CiRsYW5nWydtc2dfY29tcGFueWNvcGllZCddID0gJ0JlZHJpamYgZ2Vrb3BpZWVyZC4uLiB3aWp6aWcgZGUgYmVkcmlqZnNnZWdldmVucyB2b29yIGRpdCBuaWV1d2UgYmVkcmlqZic7CiRsYW5nWydtc2dfaGllcmFkZGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIHRvZWdldm9lZ2QnOwokbGFuZ1snbXNnX2hpZXJkZWxldGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIHZlcndpamRlcmQnOwokbGFuZ1snbXNnX2hpZXJ1cGRhdGVkJ10gPSAnSGllcmFyY2hpZSBwb3NpdGllIGJpamdld2Vya3QnOwokbGFuZ1snbXNnX2ltcG9ydF9jb21wbGV0ZSddID0gJ0ltcG9ydGVyZW4gZ2VzbGFhZ2QnOwokbGFuZ1snbXNnX3NldHRpbmdzX2NoYW5nZWQnXSA9ICdJbnN0ZWxsaW5nZW4gZ2V3aWp6aWdkJzsKJGxhbmdbJ21zZ19zbG90c3VzZWQnXSA9ICdVIGhlZWZ0ICVkIHZhbiAlZCBiZWRyaWpmc3BsYWF0c2VuIGdlYnJ1aWt0JzsKCiMjIE4KJGxhbmdbJ25hbWUnXSA9ICdOYWFtJzsKJGxhbmdbJ25hbWV0ZXh0J10gPSAnTmFhbSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1UgaGVlZnQgJiMwMzk7JXMmIzAzOTsgcmVjaHRlbiBub2RpZyBvbSBkZXplIGZ1bmN0aWUgdWl0IHRlIHZvZXJlbi4nOwokbGFuZ1snbmV3c2VhcmNodGVtcGxhdGVzJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvbmVuJzsKJGxhbmdbJ25ld3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vV2lqemlnZW4gWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snbmV3c2VhcmNoX3RlbXBsYXRlJ10gPSAnWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAnTmVlJzsKJGxhbmdbJ25vY29tcGFueW5hbWVnaXZlbiddID0gJ0dlZW4gYmVkcmlqZnNuYWFtIG9wZ2VnZXZlbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0dlZW4gbmFhbSBvcGdlZ2V2ZW4nOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snbm90YW51bWJlciddID0gJ0dlZW4gbnVtbWVyJzsKCiMjIE8KJGxhbmdbJ29mJ10gPSAnVmFuJzsKJGxhbmdbJ29wX2NhbmNlbGxlZCddID0gJ0dlYW5udWxlZXJkJzsKJGxhbmdbJ29yZ2FuaXphdGlvbiddID0gJ09yZ2FuaXNhdGllJzsKJGxhbmdbJ292ZXJ3cml0ZSddID0gJ092ZXJzY2hyaWpmJzsKJGxhbmdbJ293bmVyJ10gPSAnRWlnZW5hYXInOwoKIyMgUAokbGFuZ1sncGFnZSddID0gJ1BhZ2luYSc7CiRsYW5nWydwYWdlbGltaXQnXSA9ICdJdGVtcyBQZXIgUGFnaW5hJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ0JlcGFhbCBoZXQgaG9vZmRnZWRyYWcgdmFuIGRlemUgbW9kdWxlLiBNb2dlbGlqa2Ugd2FhcmRlbiB2b29yIGRlemUgcGFyYW1ldGVyIHppam46DQoNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LiA8ZW0gc3R5bGU9JnF1b3Q7Y29sb3I6IHJlZDsmcXVvdDs+KGRlcHJlY2F0ZWQpPC9lbT48L2xpPg0KICA8bGk+ZmVfZWRpdDIgLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuPC9saT4NCiAgPGxpPmZlX2VkaXRfYWxidW0gLS0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgZWRpdGluZyBhbGJ1bSBpbmZvcm1hdGlvbiBhYm91dCBhIHNwZWNpZmljIGNvbXBhbnkuDQogICA8cD5UaGlzIGFjdGlvbiBpcyBub3JtYWxseSB0cmlnZ2VyZWQgZnJvbSB0aGUgZmVfZWRpdDIgYWN0aW9uIG9yIHRoZSBmcm9udGVuZCBsaXN0IGFjdGlvbi4gICBJdCBhY2NlcHRzIHRoZSBjb21wYW55aWQsY2RfZmRpZCxhbmQgb3B0aW9uYWxseSBvdGhlciBwYXJhbWV0ZXJzIHRvIHBlcmZvcm0gbnVtZXJvdXMgYWpheCBhY3Rpb25zLiAgIFNlZSB0aGUgc2FtcGxlIGNvbnRlbnQgZm9yIHRoZSBmcm9udGVuZCBhbGJ1bSB0ZW1wbGF0ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+DQogIDwvbGk+DQo8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgZm9yIHNwZWNpZmljIGNvbXBhbmllcy48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBEaXNwbGF5IGEgbGlzdCBvZiBoaWVyYXJjaGllcy4gIFVzZXJzIGNhbiBkcmlsbCBkb3duIHRvIHN1bW1hcnkgbW9kZSBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICAgDQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ0FscyBkZXplIHBhcmFtZXRlciwgd2FhcnZhbiBkZSBuYWFtIGdlbGlqayBtb2V0IHppam4gYWFuIGVlbiBiZXN0YWFuZGUgY2F0ZWdvcmllLCBpbiBkZSA8ZW0+c3RhbmRhYXJkPC9lbT5zYW1lbnZhdHRpbmdzbW9kdXMgd29yZHQgZ2VicnVpa3QsIGRhbiB3b3JkdCBkZXplIHBhcmFtZXRlciBhbGxlZW4gYmVudXQgb20gZGllIGJlZHJpanZlbiB0ZSB0b25lbiBkaWUgaW4gZGUgY2F0ZWdvcmllIHppdHRlbiAoZWVuIGtvbW1hZ2VzY2hlaWRlbiBsaWpzdCBrYW4gaGllciB3b3JkZW4gZ2VicnVpa3QpLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeTInXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSB2aWV3LCBhbmQgb25seSB3aGVuIHRoZSA8ZW0+Y2F0ZWdvcnk8L2VtPiBwYXJhbWV0ZXIgaXMgYWxzbyBzdXBwbGllZCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhbiBhZGRpdGlvbmFsIEFORCBleHByZXNzaW9uIHRvIGluZGljYXRlIGFkZGl0aW9uYWwgKGNvbW1hIHNlcGFyYXRlZCkgY2F0ZWdvcmllcyB0aGF0IHRoZSByZXN1bHQgc2hvdWxkIGJlIGEgbWVtYmVyIG9mLiAgaS5lOiB7Q29tcGFueURpcmVjdG9yeSBjYXRlZ29yeT0mIzAzOTtyZWdpb25fbm9ydGgscmVnaW9uX3NvdXRoJiMwMzk7IGNhdGVnb3J5Mj0mIzAzOTtjYXJzLHRydWNrcyYjMDM5O30gd291bGQgcmV0dXJuIG9ubHkgdGhvc2UgY29tcGFuaWVzIHRoYXQgd2VyZSBpbiB0aGUgZWl0aGVyIG9mIHRoZSByZWdpb24gbm9ydGggb3IgcmVnaW9uIHNvdXRoIGNhdGVnb3JpZXMgQU5EIEFMU08gaW4gZWl0aGVyIG9mIHRoZSBjYXJzIG9yIHRydWNrcyBjYXRlZ29yaWVzJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnR2VlZiBlZW4gc2phYmxvb24gKGRlIG5hYW0pIG9wIGRpZSBnZWJydWlrdCB3b3JkdCBhbHMgZGUgY2F0ZWdvcmllbGlqc3R3ZWVyZ2F2ZSB3b3JkdCBnZXRvb25kLic7CiRsYW5nWydwYXJhbV9jb21wYW55aWQnXSA9ICdWZXJlaXN0IHZvb3IgZGUgZnJvbnQtZW5kIGJld2Vyay0gZW4gZGV0YWlsbW9kaS4gRGV6ZSBwYXJhbWV0ZXIgYmVwYWFsdCB3ZWxrIGJlZHJpanZlbnJlY29yZCBiZXdlcmt0IG9mIGJla2VrZW4gd29yZHQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcGVjaWZpY2VlciBlZW4gcGFnaW5hLWFsaWFzIChkZSBuYWFtKSBvbSB0ZSBnZWJydWlrZW4gdm9vciB3ZWVyZ2F2ZSB2YW4gZWVuIGRldGFpbHJlY29yZC4gPHN0cm9uZz5NZXJrIG9wOjwvc3Ryb25nPiBkZXplIHRhZy1wYXJhbWV0ZXIgaXMgbmlldCBjb21wYXRpYmxlIG1ldCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdTcGVjaWZpY2VlciBlZW4gc2phYmxvb24gKGRlIG5hYW0pIG9tIHRlIGdlYnJ1aWtlbiB2b29yIGRlIHdlZXJnYXZlIHZhbiBkZSBkZXRhaWx3ZWVyZ2F2ZS4gIDxzdHJvbmc+TWVyayBvcDo8L3N0cm9uZz4gZGV6ZSB0YWctcGFyYW1ldGVyIGlzIG5pZXQgY29tcGF0aWJsZSBtZXQgcHJldHR5IHVybHMuJzsKJGxhbmdbJ3BhcmFtX2Zyb250ZW5kZm9ybXRlbXBsYXRlJ10gPSAnU3BlY2lmaWNlZXIgZWVuIHNqYWJsb29uIChkZSBuYWFtKSBvbSB0ZSBnZWJydWlrZW4gdm9vciBoZXQgZnJvbnQtZW5kIGJlZHJpanZlbmJld2Vya2Zvcm11bGllci4nOwokbGFuZ1sncGFyYW1faGllciddID0gJ1RvZXBhc2JhYXIgaW4gZGUgPGVtPmRlZmF1bHQ8L2VtPiBlbiA8ZW0+aGllcmxpc3Q8L2VtPiBhY3RpZXMsIGRlemUgcGFyYW1ldGVyIHN0YWF0IGhldCBiZW5vZW1lbiB2YW4gZWVuIGhpZXJhcmNoaWUgbmFhbSB2YW4gYmVkcmlqdmVuIHRvZS4gIEluIGRlIGRlZmF1bHQgYWN0aWUsIHdvcmRlbiB3aWxkY2FyZHMgZ2VhY2NlcHRlZXJkLCBiaWp2LjogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEFsIGhvZXdlbCBpbiBkZSBoaWVybGlzdCBhY3RpZSwgZGV6ZSBwYXJhbWV0ZXIgZWVuIHVuaWVrZSBuYWFtIG9mIGhpZXJhcmNoeSBwb3NpdGllIG1vZXQgYmV2YXR0ZW4sIGVuIHphbCBkZSBzdGFydCBsb2NhdGllIHZhbiBoZXQgb3ZlcnppY2h0IGJlcGFsZW4uJzsKJGxhbmdbJ3BhcmFtX2hpZXJsaXN0dGVtcGxhdGUnXSA9ICdTcGVjaWZpY2VlciBlZW4gc2phYmxvb24gKG5hYW0pIG9tIHRlIGdlYnJ1aWtlbiBpbiBkZSBoaWVyYXJjaGllIGxpanN0IG92ZXJ6aWNodGVuLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBbGxlZW4gdG9lcGFzYmFhciBpbiBkZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnksIGVuIDxlbT5zZWFyY2g8L2VtPiBtb2R1cywgZGV6ZSBwYXJhbWV0ZXIgbWFha3QgaGV0IG1vZ2VsaWprIG9tIHRlIHNwZWNpZmljZXJlbiBvZiBkZSByZXN1bHRhYXQgZ2VnZXZlbnMgaGV0IHN0YW5kYWFyZCBpbmhvdWRzIGJsb2sgZGllbnQgdGUgb3ZlcnNjaHJpanZlbiBvciBkZSBvcmlnaW5lbGUgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ0luZGllbiBnZWJydWlrdCBpbiBkZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kdXMsIG9mIGluIGRlIDxlbT5zZWFyY2g8L2VtPiBtb2R1cywgemFsIGRpdCBoZXQgcmVzdWx0YWF0IGxpbWl0ZXJlbiB0b3QgZWVuIGdlc3BlY2lmaWNlZXJkIGFhbnRhbC4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQWxsZWVuIHRvZXBhc2JhYXIgaW4gZGUgPGVtPnNlYXJjaDwvZW0+IG1vZHVzLCBkZXplIHBhcmFtZXRlciBzdGFhdCBoZXQgc3BlY2lmaWNlcmVuIHZhbiBlZW4gbmlldC1zdGFuZGFhcmQgem9la2Zvcm11bGllciBzamFibG9vbiB0b2UuJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdFbmtlbCB0b2VwYXNiYWFyIG9wIGRlIGNhdGVnb3J5bGlzdCBha3RpZS4gQWxzIGRlemUgcGFyYW1ldGVyIHdvcmR0IGdlemV0LCB3b3JkZW4gb29rIGNhdGVnb3JpZW4gdmFuIG5pZXQgbWF0Y2hlbmRlIGJlZHJpanZlbiB3ZWVyZ2VnZXZlbic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgY29tcGFuaWVzLiAgUG9zc2libGUgdmFsdWVzIGFyZTogDQo8dWw+DQo8bGk+aWQgLS0gVGhlIGludGVybmFsIGNvbXBhbnkgaWQ8L2xpPg0KICA8bGk+PHN0cm9uZz5jb21wYW55X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cGhvbmU8L2xpPg0KICA8bGk+ZmF4PC9saT4NCiAgPGxpPmVtYWlsPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gVGhlIHdlYnNpdGUgdXJsPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+c3RhdHVzPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBTb3J0IHRoZSBpdGVtcyByYW5kb21seS48L2xpPg0KICA8bGk+ZjpmaWVsZCBuYW1lIC0tIFNvcnQgYnkgcHVibGljIGN1c3RvbSBmaWVsZHMuIFRoZSBvdXRwdXQgd2lsbCBiZSBzb3J0ZWQgYnkgdGhlIG5hbWVkIGN1c3RvbSBmaWVsZC48YnIvPg0KICA8bGk+bW9zdGNoZWNraW5zIC0tIDxlbT4oT25seSB3aGVuIENHU29jaWFsQXBwIG1vZHVsZSBpcyBpbnN0YWxsZWQpPC9lbT4gU29ydCBvdXRwdXQgYnkgdGhlIGNvbXBhbmllcyAobG9jYXRpb25zKSB0aGF0IGhhdmUgdGhlIG1vc3QgY2hlY2tpbnMuPC9saT4NCiAgPGxpPm1vc3RmYXZvcml0ZSAtLSA8ZW0+KE9ubHkgd2hlbiBDR1NvY2lhbEFwcCBtb2R1bGUgaXMgaW5zdGFsbGVkKTwvZW0+IFNvcnQgb3V0cHV0IGJ5IHRoZSBjb21wYW5pZXMgKGxvY2F0aW9ucykgdGhhdCBoYXZlIHRoZSBtb3N0IGZhdm9yaXRlcy48L2xpPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBZb3UgbWF5IG5lZWQgdG8gdXNlIHF1b3RlcyBpZiB0aGUgZmllbGQgbmFtZSBoYXMgc3BhY2VzLjxici8+DQogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFRoZSBmaWVsZCBzcGVjaWZpZWQgbXVzdCBiZSBtYXJrZWQgYXMgcHVibGljLg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBXaGVuIHVzaW5nIGN1c3RvbSBmaWVsZCBzb3J0aW5nLCBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGZsYWcgYWZ0ZXIgdGhlIGZpZWxkIG5hbWUgdG8gaW5kaWNhdGUgdGhhdCBpbnRlZ2VyIHNvcnRpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4gIGkuZTogPGNvZGU+c29ydGJ5PWY6Y3VzdG9tX29yZGVyaW5nOmk8L2NvZGU+PGJyLz48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmaWNlZXIgZGUgdm9sZ29yZGUgdmFuIGRlIHNvcnRlZXJ2ZWxkZW4gaW4gZGUgc2FtZW52YXR0aW5nc3dlZXJnYXZlLiBNb2dlbGlqayB3YWFyZGVuIHppam46DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBvcGxvcGVuZGUgdm9sZ29yZGU8L2xpPg0KICA8bGk+ZGVzYyAtLSBhZmxvcGVuZGUgdm9sZ29yZGU8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnU3BlY2lmaWNlZXIgZWVuIHNqYWJsb29uIChkZSBuYWFtKSBvbSB0ZSBnZWJydWlrZW4gdm9vciBkZSB3ZWVyZ2F2ZSB2YW4gZGUgc2FtZW52YXR0aW5nc3dlZXJnYXZlLiAgPHN0cm9uZz5NZXJrIG9wOjwvc3Ryb25nPiBkZXplIHRhZy1wYXJhbWV0ZXIgaXMgbmlldCBjb21wYXRpYmxlIG1ldCBwcmV0dHkgdXJscy4nOwokbGFuZ1sncG9zdGFsX2NvZGUnXSA9ICdQb3N0Y29kZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBnZSZpdW1sO25zdGFsbGVlcmQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RlIENvbXBhbnkgRGlyZWN0b3J5IG1vZHVsZSBpcyBnZWRlJml1bWw7bnN0YWxsZWVyZC4gQWxsZSBnZWtvcHBlbGRlIGJlZHJpamZzZ2VnZXZlbnMgemlqbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVm9vcmtldXJlbic7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICdXZWV0IHUgemVrZXIgZGF0IGRlemUgbW9kdWxlIGdlZGUmaXVtbDtuc3RhbGxlZXJkIG1vZXQgd29yZGVuPyBEZSZpdW1sO25zdGFsbGVyZW4gdmVyd2lqZGVydCBhbGxlIGdla29wcGVsZGUgYmVkcmlqZnNnZWdldmVucyBwZXJtYW5lbnQhJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9tcHRfYWRkY29tcGFueSddID0gJ0JlZHJpamYgdG9ldm9lZ2VuJzsKJGxhbmdbJ3Byb21wdF9hZGRlZGl0ZmllbGQnXSA9ICdWZWxkZGVmZW5pdGllIHRvZXZvZWdlbiBvZiBiZXdlcmtlbic7CiRsYW5nWydwcm9tcHRfYWxsb3dkdXBsaWNhdGVjb21wYW55bmFtZXMnXSA9ICdEdWJiZWxlIGJlZHJpamZzbmFtZW4gdG9lc3RhYW4/JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yaWVzX2ltcG9ydGVkJ10gPSAnQ2F0ZWdvcmkmZXVtbDtuIEdlJml1bWw7bXBvcnRlZXJkJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWNvbHVtbiddID0gJ0NhdGVnb3JpZSBLb2xvbSc7CiRsYW5nWydwcm9tcHRfY2hlY2tfZHVwbGljYXRlcyddID0gJ0NvbnRyb2xlcmVuIG9wIGR1YmJlbGUgYmVkcmlqZnNuYW1lbj8nOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ1ZlcnphbWVsIFpvZWsgU3RhdGlzdGlla2VuJzsKJGxhbmdbJ3Byb21wdF9jb21wYW5pZXNfaW1wb3J0ZWQnXSA9ICdCZWRyaWp2ZW4gZ2UmaXVtbDttcG9ydGVlcmQnOwokbGFuZ1sncHJvbXB0X2NvbnZlcnRfYWRkcmVzcyddID0gJ0NvbnZlcnRlZXIgYWRyZXNzZW4gbmFhciBjbyZvdW1sO3JkaW5hdGVuIChhbHMgZXIgZ2VlbiBjbyZvdW1sO3JkaW5hdGVuIHppam4gaW5nZXZvZXJkKSc7CiRsYW5nWydwcm9tcHRfY3JlYXRlX3VybCddID0gJ01hYWsgVVJMIHZvb3IgcmVjb3JkcyB6b25kZXIgVVJMJzsKJGxhbmdbJ3Byb21wdF9kZWxpbWV0ZXInXSA9ICdWZWxkIFNjaGVpZGluZ3N0ZWtlbic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ0RlIHN0YW5kYWFyZHBhZ2luYSB3YWFybmFhciB3b3JkdCB2ZXJ3ZXplbiBpbiBkZSBkZXRhaWxtb2R1cyc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGllcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlX25hbWUnXSA9ICdDb250cm9sZWVyIG9wIGR1YmJlbGUgYmVkcmlqZnNuYW1lbic7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdXaWp6aWdlbiBiZWRyaWpmJzsKJGxhbmdbJ3Byb21wdF9lZGl0b3IyJ10gPSAnR2VicnVpayBuaWV1d2UgRnJvbnRlbmQgRWRpdG9yJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF9pc2h0bWwnXSA9ICdFLW1haWwgaXMgaW4gSFRNTCBvcGJvdXcnOwokbGFuZ1sncHJvbXB0X2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWwgT25kZXJ3ZXJwJzsKJGxhbmdbJ3Byb21wdF9lbWFpbF90ZW1wbGF0ZSddID0gJ0UtbWFpbCBTamFibG9vbic7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnRm91dGVuJzsKJGxhbmdbJ3Byb21wdF9leHRlbnNpb25zJ10gPSAnVG9lZ2VzdGFuZSBiZXN0YW5kIGV4dGVudGllcyc7CiRsYW5nWydwcm9tcHRfZmV1X2NoYW5nZV9zdGF0dXMnXSA9ICdNYWcgZWVuIGZyb250ZW5kIGdlYnJ1aWtlciBkZSBzdGF0dXMgdmFuIGVlbiBiZWRyaWpmIHdpanppZ2VuPyc7CiRsYW5nWydwcm9tcHRfZmV1X2NyZWF0ZSddID0gJ01hZyBlZW4gRnJvbnRFbmRVc2VycyBuaWV1d2UgcmVjb3JkcyBhYW5tYWtlbj8nOwokbGFuZ1sncHJvbXB0X2ZldV9kZWxldGUnXSA9ICdTdGEgRnJvbnRlbmQgR2VicnVpa2VycyB0b2UgaXRlbXMgdGUgdmVyd2lqZGVyZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9kaXNwbGF5X3NldHRpbmdzJ10gPSAnRnJvbnRlbmQgU2NoZXJtIEluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9tcHRfZmV1X2VkaXRfc2V0dGluZ3MnXSA9ICdGcm9udGVuZCBXaWp6aWdpbmdzaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxncm91cCddID0gJ1dlbGtlIEJlaGVlcmdyb2VwIG1vZXQgbm90aWZpY2F0aWUgZS1tYWlscyBvbnR2YW5nZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfZW1haWxvbmFkZCddID0gJ1ZlcnN0dXVyIGVlbiBFLW1haWwgYWxzIGVlbiBGcm9udGVuZCBnZWJydWlrZXIgZWVuIG5pZXV3IGJlZHJpamYgYWFubWFha3QnOwokbGFuZ1sncHJvbXB0X2ZldV9lbWFpbG9uZWRpdCddID0gJ1ZlcnN0dXVyIGVlbiBFLW1haWwgYWxzIGVlbiBGcm9udGVuZCBnZWJydWlrZXIgZWVuIGJlc3RhYW5kIGJlZHJpamYgd2lqemlndCc7CiRsYW5nWydwcm9tcHRfZmV1X2VtYWlsb25ncm91cCddID0gJ0JlaGVlcmdyb2VwIG9tIEUtbWFpbHMgbmFhciB0ZSB2ZXJ6ZW5kZW4nOwokbGFuZ1sncHJvbXB0X2ZldV9pbXBvcnQnXSA9ICdTdGEgRnJvbnRlbmRVc2VycyB0b2Ugb20gbWV0IENTViByZWNvcmRzIHRlIGltcG9ydGVyZW4/JzsKJGxhbmdbJ3Byb21wdF9mZXVfbmV3X3N0YXR1cyddID0gJ1N0YW5kYWFyZCBzdGF0dXMgdm9vciBuaWV1d2UgcmVjb3JkcyBhYW5nZW1hYWt0IHZpYSBkZSBmcm9udGVuZCc7CiRsYW5nWydwcm9tcHRfZmV1X251bXJlY29yZHMnXSA9ICdNYXhpbWFhbCBhYW50YWwgcmVjb3JkcyBkYXQga2FuIHdvcmRlbiBnZWFzc29jaWVlcmQgbWV0IGVlbiBGRVUgYWNjb3VudCc7CiRsYW5nWydwcm9tcHRfZmllbGRkZWZzX2ltcG9ydGVkJ10gPSAnVmVsZCBkZWZpbml0aWVzIGdlJml1bWw7bXBvcnRlZXJkJzsKJGxhbmdbJ3Byb21wdF9mcm9udGVuZF9zaG93ZXhwaXJlZCddID0gJ1Rvb24gYmVkcmlqdmVuIGRpZSBhYW5nZW1hYWt0IHppam4gZG9vciB2ZXJsb3BlbiBGcm9udGVuZCBVc2Vycyc7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsZ2VtZW5lIGluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9tcHRfaGllcmFyY2hpZXNfaW1wb3J0ZWQnXSA9ICdIaWVyYXJjaGllIFBvc2l0aWVzIEFhbmdlbWFha3QnOwokbGFuZ1sncHJvbXB0X2ljb24nXSA9ICdQaWN0b2dyYW0nOwokbGFuZ1sncHJvbXB0X2lnbm9yZV9hZGRyZXNzJ10gPSAnTmVnZWVyIGFkcmVzdmVsZCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NhdGVnb3J5ZGVmcyddID0gJ05pZXQgYWFud2V6aWdlIGNhdGVnb3JpJmV1bWw7biBjcmUmZXVtbDtyZW4gYmlqIGhldCBpbXBvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfY2F0ZWdvcnl2YWxzJ10gPSAnVnVsbGVuIHZhbiBjYXRlZ29yaWUgd2FhcmRlbiBiaWogaW1wb3J0ZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2NzdmZpbGUnXSA9ICdVcGxvYWQgQ1NWIEJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdBYW5tYWtlbiBuaWV0IGFhbndlemlnZSAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpZXMgdGlqZGVucyBoZXQgaW1wb3J0ZXJlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1Z1bGxlbiB2YW4gJnF1b3Q7YWRkaXRpb25hbCBmaWVsZCZxdW90OyB3YWFyZGVuIGJpaiBpbXBvcnRlcmVuJzsKJGxhbmdbJ3Byb21wdF9pbXBvcnRfaGllcmFyY2h5ZGVmcyddID0gJ0ltcG9ydGVlciBIaWVyYXJjaGllIFJlY29yZHMnOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9oaWVyYXJjaHl2YWxzJ10gPSAnSW1wb3J0ZWVyIEhpZXJhcmNoaWUgV2FhcmRlbic7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2xvb2t1cGxhdGxvbmcnXSA9ICdMYXRpdHVkZSBlbiBsb25naXR1ZGUgd2FhcmRlbiBvcHpvZWtlbiBpbmRpZW4gbmlldCBhYW53ZXppZyc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X3RlbXBsYXRlJ10gPSAnRGl0IHNqYWJsb29uIGlzIGVlbiBmb3JtdWxpZXIgZGllIGdlYnJ1aWt0IHdvcmR0IGRvb3IgZ2VhdXRvcmlzZWVyZGUgZnJvbnRlbmQgdXNlcnMgb20gZGF0YSB0ZSBpbXBvcnRlcmVuIHVpdCBlZW4gZ29lZCBvcGdlc3RlbGQgQ1NWIGJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2ttbGZpbGUnXSA9ICdUZSBpbXBvcnRlcmVuIEtNTCBiZXN0YW5kJzsKJGxhbmdbJ3Byb21wdF9udW1lcnJvcnMnXSA9ICdNZWVyZGVyZSBmb3V0ZW4gZ2V2b25kZW4nOwokbGFuZ1sncHJvbXB0X251bWltcG9ydGVkJ10gPSAnQWFudGFsIHRlIGltcG9ydGVyZW4gcmVjb3Jkcyc7CiRsYW5nWydwcm9tcHRfcGFnZWxpbWl0J10gPSAnSGV0IGFhbnRhbCB3ZWVydGVnZXZlbiByZWNvcmRzIHBlciBwYWdpbmEgaW4gZGUgc2FtZW52YXR0aW5nc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9wcmVwZW5kX3dlYnNpdGVfaHR0cCddID0gJ1dlYnNpdGVuYW1lbiB2b29yemllbiB2YW4gaHR0cDovLyc7CiRsYW5nWydwcm9tcHRfc3RhdHVzJ10gPSAnU3RhdHVzIHZhbiBkZSBnZSZpdW1sO21wb3J0ZWVyZGUgcmVjb3JkJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ1N0YW5kYWFyZHNvcnRlcmluZyBpbiBkZSBzYW1lbnZhdHRpbmdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEZSBzdGFuZGFhcmRzb3J0ZWVydm9sZ29yZGUgaW4gZGUgc2FtZW52YXR0aW5nc21vZHVzIDxlbT4oZ2VsZHQgbmlldCBhbHMgaGV0IHNvcnRlcmVuICYjMDM5O3JhbmRvbSYjMDM5OyBpczwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NqYWJsb29uJzsKJGxhbmdbJ3B1YmxpYyddID0gJ1B1YmxpZWsnOwokbGFuZ1sncHVibGlzaCddID0gJ1B1YmxpY2VyZW4nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnR2VwdWJsaWNlZXJkJzsKCiMjIFIKJGxhbmdbJ3JhbmRvbSddID0gJ1dpbGxla2V1cmlnJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdIZXJzY2hpa2tlbic7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ0hlcnN0ZWwgbmFhciBzdGFuZGFhcmQnOwokbGFuZ1sncmVzZXRfdG9fZmFjdG9yeSddID0gJ1Jlc2V0IG5hYXIgc3lzdGVlbSBzdGFuZGFhcmQnOwokbGFuZ1sncmVzdG9yZXRvZGVmYXVsdHNtc2cnXSA9ICdEZXplIGJld2Vya2luZyB6YWwgZGUgc2phYmxvb25pbmhvdWQgaGVyc3RlbGxlbiBuYWFyIGRlIHN5c3RlZW1zdGFuZGFhcmQuIFdlZXQgdSB6ZWtlciBkYXQgdSB2ZXJkZXIgd2lsdCBnYWFuPyc7CiRsYW5nWydyZXR1cm4nXSA9ICdUZXJ1Zyc7CgojIyBTCiRsYW5nWydzZWFyY2gnXSA9ICdab2VrJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnWm9la29wZHJhY2h0ZW4nOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ1pvZWsgRm9ybXVsaWVyIFNqYWJsb25lbic7CiRsYW5nWydzZWFyY2hmb3JtdGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbiAvIHdpanppZ2VuIHZhbiBlZW4gWm9layBGb3JtdWxpZXIgU2phYmxvb24nOwokbGFuZ1snc2VsZWN0b25lJ10gPSAnS2llcyAmZWFjdXRlOyZlYWN1dGU7bic7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnU2VsZWN0ZWVyIGFsbGVzJzsKJGxhbmdbJ3NvcnRieSddID0gJ1NvcnRlZXIgb3AnOwokbGFuZ1snc29ydG9yZGVyJ10gPSAnU29ydGVlciB2b2xnb3JkZSc7CiRsYW5nWydzdWJtaXQnXSA9ICdWZXJzdHVyZW4nOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1NhbWVudmF0dGluZ3NzYWJsb25lbic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGV1cGRhdGVkJ10gPSAnU2FtZW52YXR0aW5nc3NqYWJsb29uIGJpamdld2Vya3QnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdTYW1lbnZhdHRpbmdzc2phYmxvb24gdG9ldm9lZ2VuL2Jld2Vya2VuJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnU3RhbmRhYXJkd2FhcmRlbiBoZXJzdGVsbGVuJzsKCiMjIFQKJGxhbmdbJ3RlbGVwaG9uZSddID0gJ1RlbGVmb29uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9vbic7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR1dXInOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBDYXRlZ29yaWVsaWpzdHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgRGV0YWlsc2phYmxvb24nOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRhbGJ1bV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgRnJvbnRlbmQgd2lqemlnIEFsYnVtIFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2Zyb250ZW5kZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgRnJvbnRlbmQgZm9ybXVsaWVyc2phYmxvb24nOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBGcm9udGVuZCBMaWpzdCBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9nYWxsZXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBHYWxsZXJ5IFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBIaWVyYXJjaGllIExpanN0IFNqYWJsb25lbic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfcmVwb3J0J10gPSAnQ1NWIEltcG9ydCBSYXBwb3J0JzsKJGxhbmdbJ3RpdGxlX25ld3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgWm9layBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zZWFyY2hmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBab2VrIEZvcm11bGllciBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBTYW1lbnZhdHRpbmdzc2phYmxvb24nOwoKIyMgVQokbGFuZ1sndXAnXSA9ICdPcCc7CiRsYW5nWyd1cmxzJ10gPSAnVXJsJiMwMzk7cyc7CiRsYW5nWyd1cmxfYXV0b2NyZWF0ZSddID0gJ0NyZWUmZXVtbDtyIGF1dG9tYXRpc2NoIHVuaWVrZSBVUkwmIzAzOTtzJzsKJGxhbmdbJ3VybF9jcmVhdGVvbmNvcHknXSA9ICdDcmUmZXVtbDtlciBVUkwmIzAzOTtzIGJpaiBoZXQga29waWVyZW4nOwokbGFuZ1sndXJsX3JlZGlyZWN0b2xkJ10gPSAnVmVyem9yZyBlZW4gMzAxIHJlZGlyZWN0IG5hYXIgZGUgbmlldXdlIFVSTCYjMDM5O3MnOwokbGFuZ1sndXJsX3JlcXVpcmVkJ10gPSAnRWVuIFVSTCBpbnZvZXJlbiBpcyB2ZXJwbGljaHQnOwoKIyMgVgokbGFuZ1sndmlld193ZWJzaXRlJ10gPSAnR2EgbmFhciBkZSB3ZWJzaXRlJzsKCiMjIFcKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdtZXQgZ2VzZWxlY3RlZXJkJzsKCiMjIFkKJGxhbmdbJ3llcyddID0gJ0phJzsKPz4=]]></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[PD9waHAKCiMjIEEKJGxhbmdbJ2FjdGl2ZSddID0gJ0FrdGlmJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnS2F0ZWdvcmkgRWtsZSc7CiRsYW5nWydhZGRjb21wYW55J10gPSAnRmlybWEgRWtsZSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1llbmkgYWxhbiBla2xlJzsKJGxhbmdbJ2FkZGxpbmsnXSA9ICdMaW5rIEVrbGUnOwokbGFuZ1snYWRkcmVzcyddID0gJ0FkcmVzJzsKJGxhbmdbJ2FkZHJlc3N0ZXh0J10gPSAnQWRyZXMnOwokbGFuZ1snYWxidW0nXSA9ICdBbGImdXVtbDttJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdLYWxkxLFybWFrIGlzdGVkacSfaW5pemUgZW1pbiBtaXNpbml6Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBcnRhbic7CgojIyBDCiRsYW5nWydjYW5jZWwnXSA9ICfEsHB0YWwnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpbGVyJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlhZGRlZCddID0gJ0thdGVnb3JpIEVrbGVuZGknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnS2F0ZWdvcmkgTGlzdGVzaSDFnmFibG9udSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXVwZGF0ZWQnXSA9ICdLYXRlZ29yaSBMaXN0ZXNpIEcmdXVtbDtuY2VsbGVuZGknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0thdGVnb3JpIExpc3Rlc2kgxZ5hYmxvbnUgRWtsZS9EJnV1bWw7emVubGUnOwokbGFuZ1snY2F0ZWdvcnl0ZXh0J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnl1cGRhdGVkJ10gPSAnS2F0ZWdvcmkgRyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydjb21wYW5pZXMnXSA9ICdGaXJtYWxhcic7CiRsYW5nWydjb21wYW55J10gPSAnRmlybWEnOwokbGFuZ1snY29tcGFueWFkZGVkJ10gPSAnRmlybWEgZWtsZW5kaSc7CiRsYW5nWydjb21wYW55ZGVsZXRlZCddID0gJ0Zpcm1hIHNpbGluZGknOwokbGFuZ1snY29tcGFueWRpcmVjdG9yeSddID0gJ0Zpcm1hIERpemluaSc7CiRsYW5nWydjb21wYW55bmFtZSddID0gJ0Zpcm1hIGFkxLEnOwokbGFuZ1snY29tcGFueXRleHQnXSA9ICdGaXJtYSc7CiRsYW5nWydjb21wYW55dXBkYXRlZCddID0gJ0Zpcm1hIGcmdXVtbDtuY2VsbGVuZGknOwokbGFuZ1snY29udGFjdGVtYWlsJ10gPSAnRW1haWwnOwokbGFuZ1snY29vcmRpbmF0ZXMnXSA9ICdLb29yZGluYXRsYXInOwokbGFuZ1snY29weSddID0gJ0tvcHlhbGEnOwokbGFuZ1snY3JlYXRlZCddID0gJ09sdcWfdHVydWxkdSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0dpcmnFnyBUYXJpaGknOwoKIyMgRAokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1ZhcnNhecSxbGFuIMWeYWJsb25sYXInOwokbGFuZ1snZGVsZXRlJ10gPSAnU2lsJzsKJGxhbmdbJ2RlbGV0ZWNhdGVnb3J5J10gPSAnS2F0ZWdvcmkgU2lsJzsKJGxhbmdbJ2RlbGV0ZWNvbXBhbnknXSA9ICdGaXJtYSBTaWwnOwokbGFuZ1snZGVsZXRlZmllbGRkZWYnXSA9ICdUYW7EsW1sxLEgQWxhbiBTaWwnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0F6YWxhbic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0EmY2NlZGlsO8Sxa2xhbWEnOwokbGFuZ1snZGV0YWlscyddID0gJ0F5csSxbnTEsWxhcic7CiRsYW5nWydkZXRhaWxzdGV4dCddID0gJ0F5csSxbnTEsWxhcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdBeXLEsW50xLEgxZ5hYmxvbmxhcsSxJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRldXBkYXRlZCddID0gJ0F5csSxbnTEsSDFnmFibG9udSBHJnV1bWw7bmNlbGxlbmRpJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnUGFzaWYnOwokbGFuZ1snZG93biddID0gJ0HFn2HEn8SxJzsKJGxhbmdbJ2RyYWdfZHJvcF91cGxvYWQnXSA9ICdTJnV1bWw7ciZ1dW1sO2tsZSBCxLFyYWsgWSZ1dW1sO2tsZW1lJzsKJGxhbmdbJ2Ryb3BfaGVyZSddID0gJ0Rvc3lhbGFyxLEgYnVyYXlhIHMmdXVtbDtyJnV1bWw7a2xlJzsKCiMjIEUKJGxhbmdbJ2VkaXQnXSA9ICdEJnV1bWw7emVubGUnOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnS2F0ZWdvcmkgRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ2VkaXRjb21wYW55J10gPSAnRmlybWEgRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ2VkaXRmaWVsZGRlZiddID0gJ0FsYW4gRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lJ10gPSAnRmlybWEgQWTEsSBIYXRhbMSxJzsKJGxhbmdbJ2Vycm9yX2NvbXBhbnluYW1lX2ludXNlJ10gPSAnRmlybWEgYWTEsSB2ZXJpdGFiYW7EsW5kYSB6YXRlbiB2YXInOwokbGFuZ1snZXJyb3JfZHVwbGljYXRlX2NhdGVnb3J5J10gPSAnS2F0ZWdvcmkgemF0ZW4gdmFyJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0EgcmVxdWlyZWQgdmFsdWUgd2FzIG1pc3NpbmcgZnJvbSB0aGUgZm9ybSBpbnB1dCc7CiRsYW5nWydlcnJvcl9taXNzaW5ndXBsb2FkJ10gPSAnSGkmY2NlZGlsOyBkb3N5YSB5JnV1bWw7a2xlbm1lZGknOwokbGFuZ1snZXJyb3Jfbm9kcm9wZG93bm9wdGlvbnMnXSA9ICdObyBEcm9wZG93biBvcHRpb25zIHN1cHBsaWVkJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0Vrc3RyYSBEYXRhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRWtzdHJhIERhdGEgMic7CiRsYW5nWydleHRyYTMnXSA9ICdFa3N0cmEgRGF0YSAzJzsKCiMjIEYKJGxhbmdbJ2ZheCddID0gJ0Zha3MnOwokbGFuZ1snZmF4dGV4dCddID0gJ0Zha3MnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdBbGFuIFRhbsSxbWxhbWEnOwokbGFuZ1snZmllbGRkZWZhZGRlZCddID0gJ1llbmkgYWxhbiBla2xlbmRpJzsKJGxhbmdbJ2ZpZWxkZGVmZGVsZXRlZCddID0gJ1RhbsSxbWzEsSBBbGFuIHNpbGluZGknOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnQWxhbiBUYW7EsW1hbGFsYXLEsSc7CiRsYW5nWydmaWVsZGRlZnRleHQnXSA9ICdBbGFuIFRhbsSxbWxhbWEnOwokbGFuZ1snZmllbGRkZWZ1cGRhdGVkJ10gPSAnVGFuxLFtbMSxIEFsYW4gZyZ1dW1sO25jZWxsZW5kaSc7CiRsYW5nWydmaWVsZHMnXSA9ICdBbGFubGFyJzsKJGxhbmdbJ2ZpZWxkX2ZpbGUnXSA9ICdEb3N5YSc7CiRsYW5nWydmaWVsZF9pbWFnZSddID0gJ1Jlc2ltJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2Zyb250ZW5kZm9ybXRlbXBsYXRlcyddID0gJ0VkaXQgQ29tcGFueSBUZW1wbGF0ZXMnOwoKIyMgSQokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnUmVzaW0nOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAnU3BlY2lmeSB0aGUgb3B0aW9ucyBmb3IgdGhlIGRyb3Bkb3duIGNvbnRyb2wuICBPbmUgbGluZSBwZXIgZW50cnkuICBTZXBlcmF0ZSBrZXlzIGZyb20gdmFsdWVzIHdpdGggdGhlID0uICBpLmU6IGtleT12YWx1ZSc7CgojIyBMCiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xibF9iYWNrJ10gPSAnR2VyaSc7CiRsYW5nWydsYmxfc2V0dGluZ3MnXSA9ICdBeWFybGFyJzsKJGxhbmdbJ2xibF90ZW1wbGF0ZXMnXSA9ICfFnmFibG9ubGFyJzsKCiMjIE0KJGxhbmdbJ21vZGlmaWVkJ10gPSAnRCZ1dW1sO3plbmxlbmRpJzsKJGxhbmdbJ21zZ19jb21wYW55Y29waWVkJ10gPSAnRmlybWEga29weWFsYW5kxLEuLi4gbCZ1dW1sO3RmZW4geWVuaSBmaXJtYSBrYXlkxLFuxLFuIGF5csSxbnTEsWxhcsSxbsSxIGQmdXVtbDt6ZW5sZXlpbml6JzsKJGxhbmdbJ21zZ19pbXBvcnRfY29tcGxldGUnXSA9ICdpJmNjZWRpbDtlIGFrdGFybWEgacWfbGVtaSBiYcWfYXLEsWzEsSc7CgojIyBOCiRsYW5nWyduYW1lJ10gPSAnQWTEsSc7CiRsYW5nWyduYW1ldGV4dCddID0gJ0FkxLEnOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgJiMwMzk7JXMmIzAzOTsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgZnVuY3Rpb24uJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ0hhecSxcic7CiRsYW5nWydub2NvbXBhbnluYW1lZ2l2ZW4nXSA9ICdGaXJtYSBhZMSxIHZlcmlsbWVkaSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ8Swc2ltIHZlcmlsbWVkaSc7CiRsYW5nWydub25lJ10gPSAnWW9rJzsKJGxhbmdbJ25vdGFudW1iZXInXSA9ICdSYWthbSBvbGFtYXonOwoKIyMgTwokbGFuZ1snb2YnXSA9ICctJzsKJGxhbmdbJ29yZ2FuaXphdGlvbiddID0gJ09yZ2FuaXphc3lvbic7CiRsYW5nWydvd25lciddID0gJ1NhaGlwJzsKCiMjIFAKJGxhbmdbJ3BhZ2UnXSA9ICdTYXlmYSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdEZXRlcm1pbmUgdGhlIHByaW1hcnkgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgcGFyYW1ldGVyIGFyZToNCjx1bD4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtLSBEaXNwbGF5IGEgbGlzdCBvZiBjYXRlZ29yaWVzLiAgVXNlcnMgY2FuIGRyaWxsIGRvd24gdG8gc3VtbWFyeSBtb2RlLCBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICA8bGk+PHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+IC0tIERpc3BsYXkgY29tcGFuaWVzIGluIGEgc3VtbWFyeSBtb2RlLjwvbGk+DQogIDxsaT5kZXRhaWxzIC0tIERpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQogIDxsaT5mZV9lZGl0IC0tIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGVkaXRpbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBjb21wYW55LjwvbGk+DQo8bGk+ZnJvbnRlbmRsaXN0IC0tIERpc3BsYXkgbGlzdCBvZiBhbGwgb2YgYSB1c2VycyBjb21wYW55IGVudHJpZXMgb24gdGhlIGZyb250ZW5kLCB3aXRoIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGFkZCBpdGVtcy48L2xpPg0KICA8bGk+c2VhcmNoICAtLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgZm9yIHNwZWNpZmljIGNvbXBhbmllcy48L2xpPg0KICA8bGk+YnJvd3NlaGllciAtLSBEaXNwbGF5IGEgbGlzdCBvZiBoaWVyYXJjaGllcy4gIFVzZXJzIGNhbiBkcmlsbCBkb3duIHRvIHN1bW1hcnkgbW9kZSBhbmQgdGhlbiB0byBkZXRhaWwgbW9kZS48L2xpPg0KICAgDQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCkuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5MiddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IHZpZXcsIGFuZCBvbmx5IHdoZW4gdGhlIDxlbT5jYXRlZ29yeTwvZW0+IHBhcmFtZXRlciBpcyBhbHNvIHN1cHBsaWVkIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGFuIGFkZGl0aW9uYWwgQU5EIGV4cHJlc3Npb24gdG8gaW5kaWNhdGUgYWRkaXRpb25hbCAoY29tbWEgc2VwYXJhdGVkKSBjYXRlZ29yaWVzIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgYmUgYSBtZW1iZXIgb2YuICBpLmU6IHtDb21wYW55RGlyZWN0b3J5IGNhdGVnb3J5PSYjMDM5O3JlZ2lvbl9ub3J0aCxyZWdpb25fc291dGgmIzAzOTsgY2F0ZWdvcnkyPSYjMDM5O2NhcnMsdHJ1Y2tzJiMwMzk7fSB3b3VsZCByZXR1cm4gb25seSB0aG9zZSBjb21wYW5pZXMgdGhhdCB3ZXJlIGluIHRoZSBlaXRoZXIgb2YgdGhlIHJlZ2lvbiBub3J0aCBvciByZWdpb24gc291dGggY2F0ZWdvcmllcyBBTkQgQUxTTyBpbiBlaXRoZXIgb2YgdGhlIGNhcnMgb3IgdHJ1Y2tzIGNhdGVnb3JpZXMnOwokbGFuZ1sncGFyYW1faGllciddID0gJ0FwcGxpY2FibGUgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5oaWVybGlzdDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgaGllcmFyY2h5IG5hbWUgb2YgY29tcGFuaWVzIHRvIGRpc3BsYXkuICBJbiB0aGUgZGVmYXVsdCBhY3Rpb24sIFdpbGRjYXJkcyBhcmUgYWNjZXB0ZWQsIGkuZTogJnF1b3Q7KnNvbWVoaWVyYXJjaHluYW1lKiZxdW90Oy4gIEhvd2V2ZXIgaW4gdGhlIGhpZXJsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbXVzdCBjb250YWluIHRoZSB1bmlxdWUgbmFtZSBvZiBhIGhpZXJhcmNoeSBwb3NpdGlvbiwgYW5kIHdpbGwgc3BlY2lmeSB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSwgYW5kIDxlbT5zZWFyY2g8L2VtPiBtb2RlcywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgd2V0aGVyIHRoZSByZXN1bHRpbmcgZGF0YSBzaG91bGQgcmVwbGFjZSB0aGUgZGVmYXVsdCBjb250ZW50IGJsb2NrLCBvciBzaG91bGQgcmVwbGFjZSB0aGUgb3JpZ2luYWwgdGFnIChpbmxpbmUpLic7CiRsYW5nWydwYXJhbV9uYW1lJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IDxlbT4oc3VtbWFyeSk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBmaWx0ZXJpbmcgY29tcGFuaWVzIGJ5IHRoZWlyIG5hbWUuICBXaWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkLiAgaS5lOiBuYW1lPSZxdW90O2EqJnF1b3Q7LiAgQWRkaXRpb25hbGx5LCByZWd1bGFyIGV4cHJlc3Npb25zIGNhbiBiZSBzcGVjaWZpZWQgYnkgcHJlZml4aW5nIHRoZSB2YWx1ZSB3aXRoIDo6LiAgaS5lOiBuYW1lPSZxdW90Ozo6WzAtOV0uKiZxdW90Oyc7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdXaGVuIHVzZWQgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIG9yIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyB3aWxsIGxpbWl0IHRoZSByZXN1bHRzIHRvIGEgc3BlY2lmaWVkIG51bWJlci4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSA8ZW0+c2VhcmNoPC9lbT4gbW9kZSwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZS4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0LCB0aGVuIGV2ZW4gY2F0ZWdvcmllcyB3aXRoIG5vIG1hdGNoaW5nIGNvbXBhbmllcyB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgb3V0cHV0JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBjb21wYW5pZXMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5jb21wYW55X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cGhvbmU8L2xpPg0KICA8bGk+ZmF4PC9saT4NCiAgPGxpPmVtYWlsPC9saT4NCiAgPGxpPndlYnNpdGUgLS0gVGhlIHdlYnNpdGUgdXJsPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+ZjpmaWVsZCBuYW1lIC0tIFNvcnQgYnkgcHVibGljIGN1c3RvbSBmaWVsZHMuIFRoZSBvdXRwdXQgd2lsbCBiZSBzb3J0ZWQgYnkgdGhlIG5hbWVkIGN1c3RvbSBmaWVsZC48YnIvPg0KICA8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBZb3UgbWF5IG5lZWQgdG8gdXNlIHF1b3RlcyBpZiB0aGUgZmllbGQgbmFtZSBoYXMgc3BhY2VzLjxici8+DQogIDxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IFRoZSBmaWVsZCBzcGVjaWZpZWQgbXVzdCBiZSBtYXJrZWQgYXMgcHVibGljLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3Bvc3RhbF9jb2RlJ10gPSAnUG9zdGEgS29kdSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0F5YXJsYXInOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb21wdF9hZGRjb21wYW55J10gPSAnWWVuaSBmaXJtYSBla2xlbWUnOwokbGFuZ1sncHJvbXB0X2NvbGxlY3RzdGF0cyddID0gJ0FyYW1hIGlzdGF0aXN0aWtsZXJpbmkga2F5ZGV0JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnVGhlIGRlZmF1bHQgcGFnZSB0byByZWRpcmVjdCB0byBpbiBkZXRhaWwgbW9kZSc7CiRsYW5nWydwcm9tcHRfZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIFNlJmNjZWRpbDtlbmVrbGVyaSc7CiRsYW5nWydwcm9tcHRfZWRpdGNvbXBhbnknXSA9ICdGaXJtYSBEJnV1bWw7emVubGVtZSc7CiRsYW5nWydwcm9tcHRfZXJyb3JzJ10gPSAnSGF0YWxhcic7CiRsYW5nWydwcm9tcHRfZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0dlbmVsIEF5YXJsYXInOwokbGFuZ1sncHJvbXB0X2ltcG9ydF9maWVsZGRlZnMnXSA9ICdDcmVhdGUgbWlzc2luZyAmcXVvdDthZGRpdGlvbmFsIGZpZWxkJnF1b3Q7IGRlZmluaXRpb25zIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfaW1wb3J0X2ZpZWxkdmFscyddID0gJ1BvcHVsYXRlICZxdW90O2FkZGl0aW9uYWwgZmllbGQmcXVvdDsgdmFsdWVzIG9uIGltcG9ydCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1RoZSBkZWZhdWx0IHNvcnQgb3JkZXIgaW4gc3VtbWFyeSBtb2RlIDxlbT4oZG9lcyBub3QgYXBwbHkgd2hlbiBzb3J0aW5nIGlzICYjMDM5O3JhbmRvbSYjMDM5OzwvZW0+JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ8WeYWJsb24nOwokbGFuZ1sncHVibGljJ10gPSAnR2VuZWwnOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnWWF5xLFubGFuZMSxJzsKCiMjIFIKJGxhbmdbJ3JhbmRvbSddID0gJ1Jhc3RnZWxlJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnVmFyc2F5xLFsYW5sYXJhIHPEsWbEsXJsYSc7CiRsYW5nWydyZXR1cm4nXSA9ICdHZXJpIGQmb3VtbDtuJzsKCiMjIFMKJGxhbmdbJ3NlYXJjaCddID0gJ0FyYW1hJzsKJGxhbmdbJ3NlYXJjaGVzJ10gPSAnQXJhbWFsYXInOwokbGFuZ1snc2VhcmNoZm9ybXRlbXBsYXRlcyddID0gJ0FyYW1hIEZvcm0gxZ5hYmxvbmxhcsSxJzsKJGxhbmdbJ3NlYXJjaGZvcm10ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQXJhbWEgRm9ybSDFnmFibG9udSBFa2xlL0QmdXVtbDt6ZW5sZSc7CiRsYW5nWydzZWxlY3RvbmUnXSA9ICdTZSZjY2VkaWw7aW5peic7CiRsYW5nWydzb3J0b3JkZXInXSA9ICdTxLFyYWxhbWEnOwokbGFuZ1snc3RhdHVzJ10gPSAnRHVydW0nOwokbGFuZ1snc3VibWl0J10gPSAnRyZvdW1sO25kZXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZPdW1sO3pldCDFnmFibG9ubGFyxLEnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRldXBkYXRlZCddID0gJyZPdW1sO3pldCDFn2FibG9udSBHJnV1bWw7bmNlbGxlbmRpJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnJk91bWw7emV0IMWeYWJsb251IEVrbGUvRCZ1dW1sO3plbmxlJzsKJGxhbmdbJ3N5c2RlZmF1bHRzJ10gPSAnVmFyc2F5xLFsYW5sYXJhIFPEsWbEsXJsYSc7CgojIyBUCiRsYW5nWyd0ZWxlcGhvbmUnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RlbGVwaG9uZXRleHQnXSA9ICdUZWxlZm9uJzsKJGxhbmdbJ3RodW1ibmFpbCddID0gJ0smdXVtbDsmY2NlZGlsOyZ1dW1sO2sgUmVzaW0nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgQ2F0ZWdvcnkgTGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZnJvbnRlbmRmb3JtX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgRnJvbnRlbmQgRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9mcm9udGVuZGxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBGcm9udGVuZCBMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2hpZXJsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgSGllcmFyY2h5IExpc3QgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoZm9ybV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3R5cGUnXSA9ICdUaXAnOwokbGFuZ1sndHlwZXRleHQnXSA9ICdUaXAnOwoKIyMgVQokbGFuZ1sndXAnXSA9ICdZdWthcsSxJzsKCiMjIFkKJGxhbmdbJ3llcyddID0gJ0V2ZXQnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/.#class.cd_category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/.#class.cd_company_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/.#class.CompanyFieldValue.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/.#class.CompanyQueryBuilder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lib/abstract.FilterResultset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIENHQmV0dGVyVXBsb2FkcyBBUEkKICoKICogQHBhY2thZ2UgQ29tcGFueURpcmVjdG9yeQogKi8KZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgSXRlcmF0b3I7CnVzZSBDb3VudGFibGU7CnVzZSBKc29uU2VyaWFsaXphYmxlOwoKLyoqCiAqIEFuIGFic3RyYWN0IGNsYXNzIHRvIGFsbG93IGl0ZXJhdGluZywgY291bnRpbmcsIGFuZCBwYWdpbmF0aW9uZyB0aGUgb3V0cHV0IGZyb20gYSBmaWx0ZXIuCiAqCiAqIEBwcm9wZXJ0eS1yZWFkIGludCAkcGFnZWNvdW50IFRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMKICogQHByb3BlcnR5LXJlYWQgaW50ICRwYWdlIFRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyCiAqIEBwcm9wZXJ0eS1yZWFkIGludCAkdG90YWwgVGhlIHRvdGFsIG51bWJlciBvZiByZWNvcmRzIG1hdGNoZWQgYnkgdGhlIGZpbHRlci4KICovCmFic3RyYWN0IGNsYXNzIEZpbHRlclJlc3VsdHNldCBpbXBsZW1lbnRzIEl0ZXJhdG9yLCBDb3VudGFibGUsIEpzb25TZXJpYWxpemFibGUKewogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9saXN0OwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfdG90YWw7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9vZmZzZXQ7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHByaXZhdGUgJF9saW1pdDsKCiAgICAvKioKICAgICAqIENvbnN0cnVjdG9yCiAgICAgKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCggYXJyYXkgJG1hdGNoZXMgPSBudWxsLCBpbnQgJHRvdGFsTWF0Y2hlcywgaW50ICRvZmZzZXQsIGludCAkbGltaXQgKQogICAgewogICAgICAgIGlmKCAkb2Zmc2V0IDwgMCApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIG9mZnNldCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggJGxpbWl0IDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGxpbWl0IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkdGhpcy0+X3RvdGFsID0gJHRvdGFsTWF0Y2hlczsKICAgICAgICAkdGhpcy0+X29mZnNldCA9ICRvZmZzZXQ7CiAgICAgICAgJHRoaXMtPl9saW1pdCA9ICRsaW1pdDsKICAgICAgICBpZiggaXNfbnVsbCgkbWF0Y2hlcykgKSAkbWF0Y2hlcyA9IFtdOwogICAgICAgICR0aGlzLT5fbGlzdCA9ICRtYXRjaGVzOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmV3aW5kKCkgOiBzZWxmIHsKICAgICAgICByZXNldCgkdGhpcy0+X2xpc3QpOwogICAgICAgIHJldHVybiAkdGhpczsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGN1cnJlbnQoKSB7IHJldHVybiBjdXJyZW50KCR0aGlzLT5fbGlzdCk7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGtleSgpIHsgcmV0dXJuIGtleSgkdGhpcy0+X2xpc3QpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBuZXh0KCkgeyByZXR1cm4gbmV4dCgkdGhpcy0+X2xpc3QpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZCgpIHsgcmV0dXJuICgkdGhpcy0+a2V5KCkgIT09IG51bGwpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjb3VudCgpIHsgcmV0dXJuIGNvdW50KCR0aGlzLT5fbGlzdCk7IH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCBzdHJpbmcgJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ29mZnNldCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X29mZnNldDsKCiAgICAgICAgY2FzZSAnbGltaXQnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9saW1pdDsKCiAgICAgICAgY2FzZSAncGFnZWNvdW50JzoKICAgICAgICAgICAgcmV0dXJuIGNlaWwoJHRoaXMtPl90b3RhbCAvICR0aGlzLT5fbGltaXQpOwoKICAgICAgICBjYXNlICdwYWdlJzoKICAgICAgICAgICAgcmV0dXJuIGZsb29yKCR0aGlzLT5fb2Zmc2V0IC8gJHRoaXMtPl9saW1pdCkgKyAxOwoKICAgICAgICBjYXNlICd0b3RhbCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X3RvdGFsOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLmdldF9jbGFzcygkdGhpcykpOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCBzdHJpbmcgJGtleSwgJHZhbCApCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgc2V0dGFibGUgcHJvcGVydHkgb2YgIi5nZXRfY2xhc3MoJHRoaXMpKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhIGxpc3Qgb2YgcGFnZXMgbWF0Y2hpbmcgdGhpcyByZXN1bHRzZXQsIHRvIGJlIHVzZWQgaW4gZ2VuZXJhdGluZyBhIHBhZ2luYXRpb24gaW50ZXJmYWNlLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJHN1cnJvdW5kIFRoZSBudW1iZXIgb2YgZW50cmllcyB0byBzdXJyb3VuZCB0aGUgY3VycmVudCBwYWdlIHdpdGguCiAgICAgKiBAcmV0dXJuIGludFtdIEFuIGFycmF5IG9mIHBhZ2UgbnVtYmVycy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBhZ2VMaXN0KGludCAkc3Vycm91bmQgPSA1KQogICAgewogICAgICAgICRzdXJyb3VuZCA9IG1heCgyLG1pbig1MCwkc3Vycm91bmQpKTsKCiAgICAgICAgJGxpc3QgPSBhcnJheSgpOwogICAgICAgIGZvciggJGkgPSAxOyAkaSA8PSBtaW4oJHN1cnJvdW5kLCR0aGlzLT5wYWdlY291bnQpOyAkaSsrICkgewogICAgICAgICAgICAkbGlzdFtdID0gKGludCkkaTsKICAgICAgICB9CgogICAgICAgICR4MSA9IG1heCgxLChpbnQpKCR0aGlzLT5wYWdlIC0gJHN1cnJvdW5kIC8gMikpOwogICAgICAgICR4MiA9IG1pbigkdGhpcy0+cGFnZWNvdW50IC0gMSwoaW50KSgkdGhpcy0+cGFnZSArICRzdXJyb3VuZCAvIDIpICk7CiAgICAgICAgZm9yKCAkaSA9ICR4MTsgJGkgPD0gJHgyOyAkaSsrICkgewogICAgICAgICAgICAkbGlzdFtdID0gKGludCkkaTsKICAgICAgICB9CgogICAgICAgIGZvciggJGkgPSBtYXgoMSwkdGhpcy0+cGFnZWNvdW50IC0gJHN1cnJvdW5kKTsgJGkgPCAkdGhpcy0+cGFnZWNvdW50OyAkaSsrKSB7CiAgICAgICAgICAgICRsaXN0W10gPSAoaW50KSRpOwogICAgICAgIH0KCiAgICAgICAgJGxpc3QgPSBhcnJheV91bmlxdWUoJGxpc3QpOwogICAgICAgIHNvcnQoJGxpc3QpOwogICAgICAgIHJldHVybiAkbGlzdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcGFnZUFycmF5KGludCAkc3Vycm91bmQgPSA1KQogICAgewogICAgICAgICRsaXN0ID0gJHRoaXMtPnBhZ2VMaXN0KCRzdXJyb3VuZCk7CiAgICAgICAgcmV0dXJuIGFycmF5X2NvbWJpbmUoJGxpc3QsICRsaXN0KTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEpzb25TZXJpYWxpemUoKQogICAgewogICAgICAgICRvdXQgPSBbCiAgICAgICAgICAgICd0b3RhbCcgPT4gJHRoaXMtPl90b3RhbCwKICAgICAgICAgICAgJ29mZnNldCcgPT4gJHRoaXMtPl9vZmZzZXQsCiAgICAgICAgICAgICdsaW1pdCcgPT4gJHRoaXMtPl9saW1pdCwKICAgICAgICAgICAgJ2RhdGEnID0+ICR0aGlzLT5fbGlzdAogICAgICAgICAgICBdOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.AlbumUploadHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQWxidW1VcGxvYWRIYW5kbGVyIGV4dGVuZHMgY2RfanF1ZXJ5X3VwbG9hZF9oYW5kbGVyCnsKICAgIHByaXZhdGUgJG1ncjsKICAgIHByaXZhdGUgJGNvbXBhbnk7CiAgICBwcml2YXRlICRhbGJ1bWZpZWxkOwoKICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDb21wYW55TWFuYWdlciAkbWdyLCBDb21wYW55ICRjb21wYW55LCBGaWVsZERlZmluaXRpb24gJGFsYnVtZmllbGQsIGFycmF5ICRvcHRpb25zKQogICAgewogICAgICAgIGlmKCAkY29tcGFueS0+aWQgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgY29tcGFueSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggJGFsYnVtZmllbGQtPnR5cGUgIT0gJ2FsYnVtJyB8fCAkYWxidW1maWVsZC0+aWQgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgYWxidW0gZmllbGQgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPm1nciA9ICRtZ3I7CiAgICAgICAgJHRoaXMtPmNvbXBhbnkgPSAkY29tcGFueTsKICAgICAgICAkdGhpcy0+YWxidW1maWVsZCA9ICRhbGJ1bWZpZWxkOwoKICAgICAgICAkb3B0aW9uc1sncGFyYW1fbmFtZSddID0gJ2ZpbGUnOwogICAgICAgIGlmKCAhaXNzZXQoJG9wdGlvbnNbJ2FjY2VwdF9maWxlX3R5cGVzJ10pICkgewogICAgICAgICAgICAkZGF0YSA9ICR0aGlzLT5hbGJ1bWZpZWxkLT5kYXRhOwogICAgICAgICAgICBpZiggJGRhdGEgKSB7CiAgICAgICAgICAgICAgICAkZGF0YSA9IHByZWdfcmVwbGFjZSgnL1xzLycsICcnLCAkZGF0YSk7CiAgICAgICAgICAgICAgICAkZXh0cyA9IGV4cGxvZGUoJywnLCRkYXRhKTsKICAgICAgICAgICAgICAgICRzdHIgPSAnL1wuKCcuaW1wbG9kZSgnfCcsJGV4dHMpLicpJC9pJzsKICAgICAgICAgICAgICAgICRvcHRpb25zWydhY2NlcHRfZmlsZV90eXBlcyddID0gJHN0cjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRvcHRpb25zKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWZ0ZXJfdXBsb2FkZWRfZmlsZSgkZmlsZW9iamVjdCkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCRmaWxlb2JqZWN0LT5lcnJvcikgfHwgJGZpbGVvYmplY3QtPmVycm9yID09ICcnICkgewogICAgICAgICAgICAkZmlsZXMgPSAoaXNzZXQoJHRoaXMtPmNvbXBhbnktPmZpZWxkc1skdGhpcy0+YWxidW1maWVsZC0+aWRdKSkgPyAkdGhpcy0+Y29tcGFueS0+ZmllbGRzWyR0aGlzLT5hbGJ1bWZpZWxkLT5pZF0gOiBudWxsOwogICAgICAgICAgICBpZiggISRmaWxlcyB8fCAhaW5fYXJyYXkoJGZpbGVvYmplY3QtPm5hbWUsJGZpbGVzKSApIHsKICAgICAgICAgICAgICAgICRmaWxlc1tdID0gJGZpbGVvYmplY3QtPm5hbWU7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29tcGFueSA9ICR0aGlzLT5jb21wYW55LT53aXRoRmllbGQoJHRoaXMtPmFsYnVtZmllbGQtPmlkLCRmaWxlcyk7CiAgICAgICAgICAgICAgICAkdGhpcy0+bWdyLT5zYXZlKCR0aGlzLT5jb21wYW55KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB1bnNldCgkZmlsZW9iamVjdC0+ZGVsZXRlX3VybCk7CiAgICAgICAgdW5zZXQoJGZpbGVvYmplY3QtPmRlbGV0ZV90eXBlKTsKICAgIH0KfQoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.AreaQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CgovKioKICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSAnZnVsbHRleHQnIHF1ZXJ5IGV4cHJlc3Npb24KICovCmNsYXNzIEFyZWFRdWVyeUV4cHJlc3Npb24KewogICAgcHVibGljIGZ1bmN0aW9uIF9faW52b2tlKGFycmF5ICRzdGF0ZW1lbnQsIElRdWVyeUJ1aWxkZXIgJGJ1aWxkZXIpCiAgICB7CiAgICAgICAgaWYoIGNvdW50KCRzdGF0ZW1lbnQpICE9IDUgfHwgIWlzc2V0KCRzdGF0ZW1lbnRbMF0pIHx8ICRzdGF0ZW1lbnRbMF0gIT0gJ3dpdGhpbicgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0luc3VmZmljaWVudC9JbnZhbGlkIGFyZ3VtZW50cyBwcm92aWRlZCB0byB3aXRoaW4gZXhwcmVzc2lvbicpOwogICAgICAgIH0KICAgICAgICAkbm9ydGggPSBjZ2VfcGFyYW06OmdldF9mbG9hdCgkc3RhdGVtZW50LChzdHJpbmcpMSk7CiAgICAgICAgJGVhc3QgPSBjZ2VfcGFyYW06OmdldF9mbG9hdCgkc3RhdGVtZW50LChzdHJpbmcpMik7CiAgICAgICAgJHNvdXRoID0gY2dlX3BhcmFtOjpnZXRfZmxvYXQoJHN0YXRlbWVudCwoc3RyaW5nKTMpOwogICAgICAgICR3ZXN0ID0gY2dlX3BhcmFtOjpnZXRfZmxvYXQoJHN0YXRlbWVudCwoc3RyaW5nKTQpOwoKICAgICAgICAvLyBjbGVhbiB1cCBhbmQgdmFsaWRhdGUgYm91bmRpbmcgYm94CiAgICAgICAgaWYoICRub3J0aCA8IC0xODAuMCB8fCAkbm9ydGggPiAxODAuMCB8fCAkZWFzdCA8IC0xODAuMCB8fCAkZWFzdCA+IDE4MC4wIHx8CiAgICAgICAgICAgICRzb3V0aCA8IC0xODAuMCB8fCAkc291dGggPiAxODAuMCB8fCAkd2VzdCA8IC0xODAuMCB8fCAkd2VzdCA+IDE4MC4wICkgewogICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBjb29yZGluYXRlcyBpbiB3aXRoaW4gZXhwcmVzc2lvbicpOwogICAgICAgIH0KCiAgICAgICAgaWYoICRzb3V0aCA+ICRub3J0aCApIHsKICAgICAgICAgICAgJHRtcCA9ICRzb3V0aDsKICAgICAgICAgICAgJHNvdXRoID0gJG5vcnRoOwogICAgICAgICAgICAkbm9ydGggPSAkdG1wOwogICAgICAgIH0KCiAgICAgICAgaWYoICRlYXN0ID4gJHdlc3QgKSB7CiAgICAgICAgICAgICR0bXAgPSAkZWFzdDsKICAgICAgICAgICAgJGVhc3QgPSAkd2VzdDsKICAgICAgICAgICAgJHdlc3QgPSAkdG1wOwogICAgICAgIH0KCiAgICAgICAgLy8gbm93IGhhdmUgYm91bmRpbmcgYm94IHRvIHF1ZXJ5IHdpdGguCiAgICAgICAgJHN0ciA9ICIoKCVUQUJMRSUubGF0aXR1ZGUgQkVUV0VFTiAkc291dGggQU5EICRub3J0aCkgQU5EICglVEFCTEUlLmxvbmdpdHVkZSBCRVRXRUVOICRlYXN0IEFORCAkd2VzdCkpIjsKICAgICAgICByZXR1cm4gJHN0cjsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CachedUserPreferences.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjbXNfY2FjaGVfZHJpdmVyIGFzIGNhY2hlX2RyaXZlcjsKCmNsYXNzIENhY2hlZFVzZXJQcmVmZXJlbmNlcwp7CiAgICBwcml2YXRlICRkcml2ZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGNhY2hlX2RyaXZlciAkZHJpdmVyKQogICAgewogICAgICAgICR0aGlzLT5kcml2ZXIgPSAkZHJpdmVyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXQoc3RyaW5nICRrZXkpCiAgICB7CiAgICAgICAgJG91dCA9ICR0aGlzLT5kcml2ZXItPmdldCgka2V5LF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0KHN0cmluZyAka2V5LCAkdmFsKSA6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+ZHJpdmVyLT5zZXQoJGtleSwkdmFsLF9fRklMRV9fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZXJhc2Uoc3RyaW5nICRrZXkpCiAgICB7CiAgICAgICAgJHRoaXMtPmRyaXZlci0+ZXJhc2UoJGtleSxfX0ZJTEVfXyk7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.Category.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQ2F0ZWdvcnkKewogICAgY29uc3QgRklFTERTID0gWydpZCcsJ25hbWUnLCAnaW1hZ2UnLCdkZXNjcmlwdGlvbicsICdpdGVtX29yZGVyJywgJ2V4dHJhMScsICdleHRyYTInLCAnZXh0cmEzJywgJ3BhcmVudF9pZCcsICdoaWVyYXJjaHknLCAnbG9uZ19uYW1lJywgJ29sZF9wYXJlbnQnXTsKICAgIHByaXZhdGUgJGlkOwogICAgcHJpdmF0ZSAkbmFtZTsKICAgIHByaXZhdGUgJGltYWdlOwogICAgcHJpdmF0ZSAkZGVzY3JpcHRpb247CiAgICBwcml2YXRlICRpdGVtX29yZGVyOwogICAgcHJpdmF0ZSAkZXh0cmExOwogICAgcHJpdmF0ZSAkZXh0cmEyOwogICAgcHJpdmF0ZSAkZXh0cmEzOwogICAgcHJpdmF0ZSAkcGFyZW50X2lkOwogICAgcHJpdmF0ZSAkaGllcmFyY2h5OyAgLy8gbWV0YWRhdGEKICAgIHByaXZhdGUgJGxvbmdfbmFtZTsgIC8vIG1ldGFkYXRhCiAgICBwcml2YXRlICRvbGRfcGFyZW50OyAgLy8gbWV0YWRhdGEKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJGRhdGEpCiAgICB7CiAgICAgICAgZm9yZWFjaCggc2VsZjo6RklFTERTIGFzICRwcm9wICkgewogICAgICAgICAgICBpZiggIWFycmF5X2tleV9leGlzdHMoJHByb3AsICRkYXRhKSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgc3dpdGNoKCAkcHJvcCApIHsKICAgICAgICAgICAgY2FzZSAnb2xkX3BhcmVudCc6CiAgICAgICAgICAgIGNhc2UgJ3BhcmVudF9pZCc6CiAgICAgICAgICAgICAgICAkdmFsID0gKGludCkgJGRhdGFbJHByb3BdOwogICAgICAgICAgICAgICAgaWYoICR2YWwgPiAwIHx8ICR2YWwgPT0gLTEgKSAkdGhpcy0+JHByb3AgPSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgY2FzZSAnaXRlbV9vcmRlcic6CiAgICAgICAgICAgICAgICAkdmFsID0gKGludCkgJGRhdGFbJHByb3BdOwogICAgICAgICAgICAgICAgaWYoICR2YWwgPiAwICkgJHRoaXMtPiRwcm9wID0gJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICAgICAgY2FzZSAnaW1hZ2UnOgogICAgICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6CiAgICAgICAgICAgIGNhc2UgJ2V4dHJhMSc6CiAgICAgICAgICAgIGNhc2UgJ2V4dHJhMic6CiAgICAgICAgICAgIGNhc2UgJ2V4dHJhMyc6CiAgICAgICAgICAgIGNhc2UgJ2hpZXJhcmNoeSc6IC8vIG1ldGFkYXRhCiAgICAgICAgICAgIGNhc2UgJ2xvbmdfbmFtZSc6IC8vIG1ldGFkYXRhCiAgICAgICAgICAgICAgICAkdmFsID0gbnVsbDsKICAgICAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkZGF0YVskcHJvcF0pICkgJHZhbCA9IHRyaW0oJGRhdGFbJHByb3BdKTsKICAgICAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApICR0aGlzLT4kcHJvcCA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoc3RyaW5nICRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICBjYXNlICdvbGRfcGFyZW50JzoKICAgICAgICBjYXNlICdwYXJlbnRfaWQnOgogICAgICAgIGNhc2UgJ2l0ZW1fb3JkZXInOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPiRrZXk7CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgY2FzZSAnaW1hZ2UnOgogICAgICAgIGNhc2UgJ2Rlc2NyaXB0aW9uJzoKICAgICAgICBjYXNlICdleHRyYTEnOgogICAgICAgIGNhc2UgJ2V4dHJhMic6CiAgICAgICAgY2FzZSAnZXh0cmEzJzoKICAgICAgICBjYXNlICdoaWVyYXJjaHknOiAvLyBtZXRhZGF0YQogICAgICAgIGNhc2UgJ2xvbmdfbmFtZSc6IC8vIG1ldGFkYXRhCiAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdGhpcy0+JGtleSkgKSByZXR1cm4gdHJpbSgkdGhpcy0+JGtleSk7CiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldChzdHJpbmcgJGtleSwgJHZhbCkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIHNldHRhYmxlIHByb3BlcnR5IG9mICIuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYXNfYXJyYXkoKSA6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgJ2lkJz0+JHRoaXMtPmlkLAogICAgICAgICAgICAncGFyZW50X2lkJz0+JHRoaXMtPnBhcmVudF9pZCwKICAgICAgICAgICAgJ2l0ZW1fb3JkZXInPT4kdGhpcy0+aXRlbV9vcmRlciwKICAgICAgICAgICAgJ25hbWUnPT4kdGhpcy0+bmFtZSwKICAgICAgICAgICAgJ2ltYWdlJz0+JHRoaXMtPmltYWdlLAogICAgICAgICAgICAnZGVzY3JpcHRpb24nPT4kdGhpcy0+ZGVzY3JpcHRpb24sCiAgICAgICAgICAgICdleHRyYTEnPT4kdGhpcy0+ZXh0cmExLAogICAgICAgICAgICAnZXh0cmEyJz0+JHRoaXMtPmV4dHJhMiwKICAgICAgICAgICAgJ2V4dHJhMyc9PiR0aGlzLT5leHRyYTMsCiAgICAgICAgICAgICdoaWVyYXJjaHknPT4kdGhpcy0+aGllcmFyY2h5LAogICAgICAgICAgICAnbG9uZ19uYW1lJz0+JHRoaXMtPmxvbmdfbmFtZSwKICAgICAgICAgICAgJ29sZF9wYXJlbnQnPT4kdGhpcy0+b2xkX3BhcmVudCwKICAgICAgICAgICAgXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aChzdHJpbmcgJGtleSwgJHZhbCkgOiBjYXRlZ29yeQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPmFzX2FycmF5KCk7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ3BhcmVudF9pZCc6CiAgICAgICAgICAgICRkYXRhWydvbGRfcGFyZW50J10gPSAkZGF0YVsncGFyZW50X2lkJ107CiAgICAgICAgICAgICRkYXRhWyRrZXldID0gJHZhbDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgIGNhc2UgJ2l0ZW1fb3JkZXInOgogICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgIGNhc2UgJ2ltYWdlJzoKICAgICAgICBjYXNlICdkZXNjcmlwdGlvbic6CiAgICAgICAgY2FzZSAnZXh0cmExJzoKICAgICAgICBjYXNlICdleHRyYTInOgogICAgICAgIGNhc2UgJ2V4dHJhMyc6CiAgICAgICAgY2FzZSAnaGllcmFyY2h5JzogLy8gbWV0YWRhdGEKICAgICAgICBjYXNlICdsb25nX25hbWUnOiAvLyBtZXRhZGF0YQogICAgICAgICAgICAkZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGFuIGFkanVzdGFibGUgcHJvcGVydHkgb2YgIi5fX0NMQVNTX18pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG5ldyBzZWxmKCRkYXRhKTsKICAgIH0KCn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CategoryManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcRGF0YWJhc2VcQ29ubmVjdGlvbiBhcyBEYXRhYmFzZTsKdXNlIFNwbFN1YmplY3Q7CgpjbGFzcyBDYXRlZ29yeU1hbmFnZXIgaW1wbGVtZW50cyBJQ2F0ZWdvcnlNYW5hZ2VyLCBTcGxTdWJqZWN0LCBJRGVjb3JhdGVkCnsKICAgIHVzZSBPYnNlcnZhYmxlOyAgLy8gdHJhaXQKCiAgICBwcml2YXRlICRkYjsKICAgIHByaXZhdGUgJGxhbmc7CiAgICBwcml2YXRlICRyb290X3BhdGg7CiAgICBwcml2YXRlICRyb290X3VybDsKICAgIHByaXZhdGUgJGxhc3RfZGVjb3JhdG9yOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChEYXRhYmFzZSAkZGIsIGNhbGxhYmxlICRsYW5nLCBzdHJpbmcgJHJvb3RfcGF0aCwgc3RyaW5nICRyb290X3VybCkKICAgIHsKICAgICAgICAkdGhpcy0+ZGIgPSAkZGI7CiAgICAgICAgJHRoaXMtPmxhbmcgPSAkbGFuZzsKICAgICAgICAkdGhpcy0+cm9vdF9wYXRoID0gJHJvb3RfcGF0aDsKICAgICAgICAkdGhpcy0+cm9vdF91cmwgPSAkcm9vdF91cmw7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxhbmcoKQogICAgewogICAgICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheSgkdGhpcy0+bGFuZywgJGFyZ3MpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfY2F0ZWdvcnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDYXRlZ29yeQogICAgewogICAgICAgIC8vIGNvdWxkIGNsZWFuIHVwIHNvbWUgZGF0YSBoZXJlLgogICAgICAgICRkYXRhID0gYXJyYXlfbWVyZ2UoWydwYXJlbnRfaWQnPT4tMV0sICRkYXRhKTsKICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5KCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9hbGwoKQogICAgewogICAgICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlKCkuJyBPUkRFUiBCWSBoaWVyYXJjaHkgQVNDJzsKICAgICAgICAkYXJyID0gJHRoaXMtPmRiLT5HZXRBcnJheSgkc3FsKTsKICAgICAgICBpZiggISRhcnIgKSByZXR1cm47CgogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGZvcmVhY2goICRhcnIgYXMgJHJvdyApIHsKICAgICAgICAgICAgJG91dFtdID0gbmV3IENhdGVnb3J5KCRyb3cpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9pZChpbnQgJGlkKSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgaWYoICRpZCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBpZCBwYXNzZWQgdG8gIi5fX01FVEhPRF9fKTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGUoKS4nIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+R2V0Um93KCRzcWwsIFsgJGlkIF0pOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJHJvdykgKSB0aHJvdyBuZXcgXE91dE9mQm91bmRzRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBhIGNhdGVnb3J5IHdpdGggaWQgJy4kaWQpOwoKICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5KCRyb3cpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J1bGsoYXJyYXkgJGxpc3QpIDogYXJyYXkKICAgIHsKICAgICAgICBpZiggZW1wdHkoJGxpc3QpICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgbGlzdCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBhcnJheV93YWxrKCRsaXN0LGZ1bmN0aW9uKCRpdGVtKXsKICAgICAgICAgICAgICAgIGlmKCAhaXNfaW50KCRpdGVtKSB8fCAkaXRlbSA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignaW52YWxpZCBsaXN0IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICB9KTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGUoKS4nIFdIRVJFIGlkIGluICgnLmltcGxvZGUoJywnLCRsaXN0KS4nKSc7CiAgICAgICAgJGFycmF5ID0gJHRoaXMtPmRiLT5HZXRBcnJheSgkc3FsKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRhcnJheSkgfHwgY291bnQoJGFycmF5KSAhPSBjb3VudCgkbGlzdCkpIHRocm93IG5ldyBcT3V0T2ZCb3VuZHNFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIG9uZSBvciBtb3JlIGNhdGVnb3JpZXMgaW4gY2FsbCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGFycmF5IGFzICRyb3cgKSB7CiAgICAgICAgICAgICRvdXRbXSA9IG5ldyBDYXRlZ29yeSgkcm93KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlKENhdGVnb3J5ICRvYmopCiAgICB7CiAgICAgICAgaWYoICRvYmotPnBhcmVudF9pZCA9PT0gMCB8fCAkb2JqLT5wYXJlbnRfaWQgPCAtMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCB1cGRhdGUgYSBjYXRlZ29yeSB3aXRoIGFuIGludmFsaWQgcGFyZW50IGlkJyk7CiAgICAgICAgaWYoICEkb2JqLT5uYW1lICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+bGFuZygnbm9uYW1lZ2l2ZW4nKSk7CiAgICAgICAgaWYoIHByZWdfbWF0Y2goJy9bXlx3IFwrXC5cJl0vJywkb2JqLT5uYW1lKSApIHRocm93IG5ldyBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2JhZG5hbWVnaXZlbicpKTsKICAgICAgICBpZiggc3RycG9zKCRvYmotPm5hbWUsICd8JykgIT09IEZBTFNFICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+bGFuZygnYmFkbmFtZWdpdmVuJykpOwoKICAgICAgICAkdG1wID0gLTE7CiAgICAgICAgaWYoICRvYmotPmlkID4gMCApIHsKICAgICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlKCkuJyBXSEVSRSBpZCA9ID8gQU5EIGxvbmdfbmFtZSBMSUtFID8nOwogICAgICAgICAgICAkdG1wID0gJHRoaXMtPmRiLT5HZXRPbmUoJHNxbCwgWyRvYmotPnBhcmVudF9pZCwgJG9iai0+bG9uZ19uYW1lLiclJ10pOwogICAgICAgICAgICBpZiggJHRtcCA+IDAgKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFyZW50JykpOwoKICAgICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlKCkuJyBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBuYW1lID0gPyBBTkQgaWQgIT0gPyc7CiAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+ZGItPkdldE9uZSgkc3FsLCBbJG9iai0+cGFyZW50X2lkLCAkb2JqLT5uYW1lLCAkb2JqLT5pZF0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlKCkuJyBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBuYW1lID0gPyc7CiAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+ZGItPkdldE9uZSgkc3FsLCBbJG9iai0+cGFyZW50X2lkLCAkb2JqLT5uYW1lXSk7CiAgICAgICAgfQogICAgICAgIGlmKCAkdG1wID4gMCApIHRocm93IG5ldyBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9jYXRlZ29yeScpKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdXBkYXRlKENhdGVnb3J5ICRvYmopIDogQ2F0ZWdvcnkKICAgIHsKICAgICAgICBpZiggJG9iai0+aWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IHVwZGF0ZSBhIGNhdGVnb3J5IHdpdGggbm8gaWQnKTsKICAgICAgICBpZiggJG9iai0+aXRlbV9vcmRlciA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgdXBkYXRlIGEgY2F0ZWdvcnkgd2l0aCBhbiBpbnZhbGlkIGl0ZW0gb3JkZXInKTsKCiAgICAgICAgaWYoICRvYmotPm9sZF9wYXJlbnQgPiAwICYmICRvYmotPm9sZF9wYXJlbnQgIT0gJG9iai0+cGFyZW50X2lkICkgewogICAgICAgICAgICAvLyBjaGFuZ2VkIHRoZSBwYXJlbnQKICAgICAgICAgICAgJHNxbCA9ICdVUERBVEUgJy4kdGhpcy0+Y2F0ZWdvcmllc190YWJsZSgpLicgU0VUIGl0ZW1fb3JkZXIgPSBpdGVtX29yZGVyIC0gMSBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBpdGVtX29yZGVyID4gPyc7CiAgICAgICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJG9iai0+b2xkX3BhcmVudCwgJG9iai0+aXRlbV9vcmRlcl0pOwoKICAgICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgQ09BTEVTQ0UoTUFYKGl0ZW1fb3JkZXIpLDApKzEgRlJPTSAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlKCkuJyBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKICAgICAgICAgICAgJG9iaiA9ICRvYmotPndpdGgoJ2l0ZW1fb3JkZXInLCAkdGhpcy0+ZGItPkdldE9uZSgkc3FsLCBbJG9iai0+cGFyZW50X2lkXSkpOwogICAgICAgIH0KCiAgICAgICAgJHNxbCA9ICdVUERBVEUgJy4kdGhpcy0+Y2F0ZWdvcmllc190YWJsZSgpLicgU0VUIG5hbWUgPSA/LCBpbWFnZSA9ID8sIGRlc2NyaXB0aW9uID0gPywgcGFyZW50X2lkID0gPywgaXRlbV9vcmRlciA9ID8sCiAgICAgICAgICAgICAgICBleHRyYTEgPSA/LCBleHRyYTIgPSA/LCBleHRyYTMgPSA/LCBoaWVyYXJjaHkgPSA/LCBsb25nX25hbWUgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHRoaXMtPmRiLT5FeGVjdXRlKCRzcWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPm5hbWUsICRvYmotPmltYWdlLCAkb2JqLT5kZXNjcmlwdGlvbiwgJG9iai0+cGFyZW50X2lkLCAkb2JqLT5pdGVtX29yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+ZXh0cmExLCAkb2JqLT5leHRyYTIsICRvYmotPmV4dHJhMywgJG9iai0+aGllcmFyY2h5LCAkb2JqLT5sb25nX25hbWUsICRvYmotPmlkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5zZXJ0KENhdGVnb3J5ICRvYmopIDogQ2F0ZWdvcnkKICAgIHsKICAgICAgICBpZiggJG9iai0+aWQgPiAwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGluc2VydCBhIGNhdGVnb3J5IHRoYXQgYWxyZWFkeSBoYXMgYW4gaWQnKTsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBDT0FMRVNDRShNQVgoaXRlbV9vcmRlciksMCkrMSBGUk9NICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGUoKS4nIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgICAgICRvYmogPSAkb2JqLT53aXRoKCdpdGVtX29yZGVyJywgJHRoaXMtPmRiLT5HZXRPbmUoJHNxbCwgWyRvYmotPnBhcmVudF9pZF0pKTsKCiAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLiR0aGlzLT5jYXRlZ29yaWVzX3RhYmxlKCkuJyAobmFtZSwgaW1hZ2UsIGRlc2NyaXB0aW9uLCBwYXJlbnRfaWQsIGl0ZW1fb3JkZXIsIGV4dHJhMSwgZXh0cmEyLCBleHRyYTMpCiAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyknOwogICAgICAgICRkYnIgPSAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5uYW1lLCAkb2JqLT5pbWFnZSwgJG9iai0+ZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+cGFyZW50X2lkLCAkb2JqLT5pdGVtX29yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPmV4dHJhMSwgJG9iai0+ZXh0cmEyLCAkb2JqLT5leHRyYTMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKTsKICAgICAgICAkb2JqID0gJG9iai0+d2l0aCgnaWQnLCAkdGhpcy0+ZGItPkluc2VydF9JRCgpKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZShDYXRlZ29yeSAkb2JqKSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgJHRoaXMtPnZhbGlkYXRlKCRvYmopOwogICAgICAgICR0aGlzLT5kYi0+QmVnaW5UcmFucygpOwogICAgICAgIGlmKCAkb2JqLT5pZCA+IDAgKSB7CiAgICAgICAgICAgICRvdXQgPSAkdGhpcy0+dXBkYXRlKCRvYmopOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJG91dCA9ICR0aGlzLT5pbnNlcnQoJG9iaik7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5jYWxjdWxhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpOwogICAgICAgICR0aGlzLT5ub3RpZnkoKTsKICAgICAgICAkdGhpcy0+ZGItPkNvbW1pdFRyYW5zKCk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShDYXRlZ29yeSAkb2JqKSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgaWYoICRvYmotPmlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBkZWxldGUgY2F0ZWdvcnkgdGhhdCBoYXMgbm90IGJlZW4gc2F2ZWQnKTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgY291bnQoaWQpIEZST00gJy4kdGhpcy0+Y2F0ZWdvcmllc190YWJsZSgpLicgV0hFUkUgcGFyZW50X2lkID0gPyc7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskb2JqLT5pZF0pOwogICAgICAgIGlmKCAkdG1wID4gMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBkZWxldGUgY2F0ZWdvcnkgdGhhdCBoYXMgY2hpbGRyZW4nKTsKCiAgICAgICAgaWYoICRvYmotPmltYWdlICkgJGZpbGUgPSAkdGhpcy0+Z2V0X2NhdGVnb3J5X3BhdGgoJG9iaik7CgogICAgICAgICR0aGlzLT5kYi0+QmVnaW5UcmFucygpOwogICAgICAgICRzcWwgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+Y29tcGFueV9jYXRlZ29yaWVzX3RhYmxlKCkuJyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8nOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJG9iai0+aWRdKTsKICAgICAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGUoKS4nIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHRoaXMtPmRiLT5FeGVjdXRlKCRzcWwsIFskb2JqLT5pZF0pOwogICAgICAgICRzcWwgPSAnVVBEQVRFICcuJHRoaXMtPmNhdGVnb3JpZXNfdGFibGUoKS4nIFNFVCBpdGVtX29yZGVyID0gaXRlbV9vcmRlciAtIDEgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgaXRlbV9vcmRlciA+ID8nOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJG9iai0+cGFyZW50X2lkLCAkb2JqLT5pdGVtX29yZGVyXSk7CgogICAgICAgICR0aGlzLT5jYWxjdWxhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpOwogICAgICAgICR0aGlzLT5ub3RpZnkoKTsKICAgICAgICAkdGhpcy0+ZGItPkNvbW1pdFRyYW5zKCk7CiAgICAgICAgcmV0dXJuICRvYmotPndpdGgoJ2lkJywtMSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmVlKCkKICAgIHsKICAgICAgICAkbGlzdCA9ICR0aGlzLT5sb2FkX2FsbCgpOwogICAgICAgIGlmKCAhJGxpc3QgKSByZXR1cm47CgogICAgICAgICRnZXRfdHJlZSA9IGZ1bmN0aW9uKCRwYXJlbnRfaWQgPSAtMSwgJGRlcHRoID0gMCkgdXNlICgmJHRyZWUsICRsaXN0LCAmJGRhdGEsICYkZ2V0X3RyZWUpIHsKICAgICAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggJG9uZS0+cGFyZW50X2lkICE9ICRwYXJlbnRfaWQgKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAkdG1wID0gJGdldF90cmVlKCRvbmUtPmlkLCRkZXB0aCsxKTsKICAgICAgICAgICAgICAgICRuZXdfb2JqID0gbmV3IENhdGVnb3J5VHJlZU5vZGUoJG9uZSwkZGVwdGgsJHRtcCk7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkbmV3X29iajsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICB9OwoKICAgICAgICAkdHJlZSA9ICRnZXRfdHJlZSgpOwogICAgICAgIHJldHVybiAkdHJlZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xpc3QoKQogICAgewogICAgICAgICR0cmVlID0gJHRoaXMtPmdldF90cmVlKCk7CiAgICAgICAgaWYoICEkdHJlZSApIHJldHVybjsKICAgICAgICAkb3V0ID0gbnVsbDsKCiAgICAgICAgJGZ1bmMgPSBmdW5jdGlvbigkbm9kZXMpIHVzZSAoJiRvdXQsICYkZnVuYykgewogICAgICAgICAgICBmb3JlYWNoKCAkbm9kZXMgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICAkb3V0WyRub2RlLT5pZF0gPSBzdHJfcmVwZWF0KCcgPiAnLCAkbm9kZS0+ZGVwdGgpIC4gJG5vZGUtPm5hbWU7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmNoaWxkcmVuICkgJGZ1bmMoJG5vZGUtPmNoaWxkcmVuKTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgJGZ1bmMoJHRyZWUpOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjYWxjdWxhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpCiAgICB7CiAgICAgICAgJGNhbGNfZnVuYyA9IGZ1bmN0aW9uKCRub2Rlcywgc3RyaW5nICRwYXJlbnRfbG9uZ19uYW1lLCBzdHJpbmcgJHBhcmVudF9oaWVyYXJjaHkpIHVzZSAoJiRjYWxjX2Z1bmMpIHsKICAgICAgICAgICAgZm9yZWFjaCggJG5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICAgICAgJGxvbmdfbmFtZSA9ICRub2RlLT5uYW1lOwogICAgICAgICAgICAgICAgaWYoICRwYXJlbnRfbG9uZ19uYW1lICkgJGxvbmdfbmFtZSA9ICRwYXJlbnRfbG9uZ19uYW1lLicgfCAnLiRsb25nX25hbWU7CiAgICAgICAgICAgICAgICAkaGllcmFyY2h5ID0gc3RyX3BhZCgoc3RyaW5nKSRub2RlLT5pdGVtX29yZGVyLCA1LCcwJywgU1RSX1BBRF9MRUZUKTsKICAgICAgICAgICAgICAgIGlmKCAkcGFyZW50X2hpZXJhcmNoeSApICRoaWVyYXJjaHkgPSAkcGFyZW50X2hpZXJhcmNoeS4nLicuJGhpZXJhcmNoeTsKICAgICAgICAgICAgICAgICRjYXQgPSAkbm9kZS0+cmVmOwogICAgICAgICAgICAgICAgJGNhdCA9ICRjYXQtPndpdGgoJ2hpZXJhcmNoeScsICRoaWVyYXJjaHkpLT53aXRoKCdsb25nX25hbWUnLCAkbG9uZ19uYW1lKTsKICAgICAgICAgICAgICAgICRub2RlID0gJG5vZGUtPndpdGgoJ3JlZicsICRjYXQpOwogICAgICAgICAgICAgICAgJHRoaXMtPnVwZGF0ZSgkY2F0KTsKCiAgICAgICAgICAgICAgICAkY2hpbGRyZW4gPSAkbm9kZS0+Y2hpbGRyZW47CiAgICAgICAgICAgICAgICBpZiggJGNoaWxkcmVuICkgJGNhbGNfZnVuYygkY2hpbGRyZW4sICRsb25nX25hbWUsICRoaWVyYXJjaHkpOwogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICAkY2FsY19mdW5jKCR0aGlzLT5nZXRfdHJlZSgpLCAnJywgJycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcnlfcGF0aChDYXRlZ29yeSAkY2F0ZWdvcnkpIDogc3RyaW5nCiAgICB7CiAgICAgICAgaWYoICRjYXRlZ29yeS0+aWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGdldCBjYXRlZ29yeSBwYXRoIGZvciBjYXRlZ29yeSB3aXRoIG5vIGlkJyk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yb290X3BhdGguJy9jYXQnLiRjYXRlZ29yeS0+aWQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV91cmwoQ2F0ZWdvcnkgJGNhdGVnb3J5KSA6IHN0cmluZwogICAgewogICAgICAgIGlmKCAkY2F0ZWdvcnktPmlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBnZXQgY2F0ZWdvcnkgdXJsIGZvciBjYXRlZ29yeSB3aXRoIG5vIGlkJyk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yb290X3VybC4nL2NhdCcuJGNhdGVnb3J5LT5pZDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2F0ZWdvcmllc190YWJsZSgpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuIENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21wYW55X2NhdGVnb3JpZXNfdGFibGUoKSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbGFzdF9kZWNvcmF0b3Iob2JqZWN0ICRvYmopCiAgICB7CiAgICAgICAgaWYoICEgJG9iaiBpbnN0YW5jZW9mIElDYXRlZ29yeU1hbmFnZXIgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBpbnB1dCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+bGFzdF9kZWNvcmF0b3IgPSAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFzdF9kZWNvcmF0b3IoKQogICAgewogICAgICAgIGlmKCAkdGhpcy0+bGFzdF9kZWNvcmF0b3IgKSByZXR1cm4gJHRoaXMtPmxhc3RfZGVjb3JhdG9yOwogICAgICAgIHJldHVybiAkdGhpczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYnVsa19yZW9yZGVyKGFycmF5ICRkYXRhKQogICAgewogICAgICAgICRhbGwgPSAkdGhpcy0+Z2V0X2xhc3RfZGVjb3JhdG9yKCktPmxvYWRfYWxsKCk7CiAgICAgICAgaWYoIGVtcHR5KCRhbGwpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IHJlb3JkZXIgY2F0ZWdvcmllcyB3aGVuIHRoZXJlIGFyZSBub25lJyk7CiAgICAgICAgaWYoIGNvdW50KCRhbGwpICE9IGNvdW50KCRkYXRhKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkYXJyID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkYWxsIGFzICRjYXQgKSB7CiAgICAgICAgICAgICRhcnJbJGNhdC0+aWRdID0gJGNhdDsKICAgICAgICB9CiAgICAgICAgdW5zZXQoJGFsbCk7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0aGlzLT5kYi0+QmVnaW5UcmFucygpOwogICAgICAgICAgICBmb3JlYWNoKCAkZGF0YSBhcyAkY2F0aWQgPT4gJHJvdyApIHsKICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJGFyclskY2F0aWRdKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0NhdGVnb3J5IHdpdGggaWQgJy4kY2F0aWQuJyBub3QgZm91bmQnKTsKICAgICAgICAgICAgICAgICRjYXQgPSAkYXJyWyRjYXRpZF07CiAgICAgICAgICAgICAgICAkY2F0ID0gJGNhdC0+d2l0aCgncGFyZW50X2lkJywgJHJvd1sncGFyZW50X2lkJ10pLT53aXRoKCdpdGVtX29yZGVyJywgJHJvd1snaXRlbV9vcmRlciddKTsKICAgICAgICAgICAgICAgICR0aGlzLT51cGRhdGUoJGNhdCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPmNhbGN1bGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CiAgICAgICAgICAgICR0aGlzLT5ub3RpZnkoKTsKICAgICAgICAgICAgJHRoaXMtPmRiLT5Db21taXRUcmFucygpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgJHRoaXMtPmRiLT5Sb2xsYmFja1RyYW5zKCk7CiAgICAgICAgICAgIHRocm93ICRlOwogICAgICAgIH0KICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CategoryManagerAuditDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQ2F0ZWdvcnlNYW5hZ2VyQXVkaXREZWNvcmF0b3IgaW1wbGVtZW50cyBJQ2F0ZWdvcnlNYW5hZ2VyCnsKICAgIHByaXZhdGUgJHBhcmVudDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoSUNhdGVnb3J5TWFuYWdlciAkcGFyZW50KQogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQgPSAkcGFyZW50OwogICAgfQoKICAgIC8vLy8gSU5URVJGQUNFCgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9jYXRlZ29yeShhcnJheSAkZGF0YSA9IFtdKSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9jYXRlZ29yeSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYWxsKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9hbGwoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9pZChpbnQgJGlkKSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYnlfaWQoJGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9idWxrKGFycmF5ICRsaXN0KSA6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYnVsaygkbGlzdCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoQ2F0ZWdvcnkgJGNhdGVnb3J5KSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5wYXJlbnQtPnNhdmUoJGNhdGVnb3J5KTsKICAgICAgICBhdWRpdCgkcmVzLT5pZCwgJ0NvbXBhbnlEaXJlY3RvcnknLCAnQ2F0ZWdvcnkgc2F2ZWQnKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBDYXRlZ29yeQogICAgewogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGNhdGVnb3J5KTsKICAgICAgICBhdWRpdCgkY2F0ZWdvcnktPmlkLCAnQ29tcGFueURpcmVjdG9yeScsICdDYXRlZ29yeSBkZWxldGVkJyk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9wYXRoKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NhdGVnb3J5X3BhdGgoJGNhdGVnb3J5KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3VybChDYXRlZ29yeSAkY2F0ZWdvcnkpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jYXRlZ29yeV91cmwoJGNhdGVnb3J5KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xpc3QoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfbGlzdCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHJlZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF90cmVlKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGJ1bGtfcmVvcmRlcihhcnJheSAkZGF0YSkKICAgIHsKICAgICAgICBhdWRpdCgnJywnQ29tcGFueURpcmVjdG9yeScsJ0NhdGVnb3JpZXMgcmVvcmRlcmVkJyk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmJ1bGtfcmVvcmRlcigkZGF0YSk7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.CategoryManagerCacheDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY21zX2NhY2hlX2RyaXZlcjsKCmNsYXNzIENhdGVnb3J5TWFuYWdlckNhY2hlRGVjb3JhdG9yIGltcGxlbWVudHMgSUNhdGVnb3J5TWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CiAgICBwcml2YXRlICRjYWNoZV9kcml2ZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDYXRlZ29yeU1hbmFnZXIgJHBhcmVudCwgY21zX2NhY2hlX2RyaXZlciAkZHJpdmVyKQogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQgPSAkcGFyZW50OwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXIgPSAkZHJpdmVyOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjbGVhcl9jYWNoZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+Y2xlYXIoX19GSUxFX18pOwogICAgfQoKICAgIC8vLy8gSU5URVJGQUNFCgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9jYXRlZ29yeShhcnJheSAkZGF0YSA9IFtdKSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9jYXRlZ29yeSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYWxsKCkKICAgIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5jYWNoZV9kcml2ZXItPmdldCgnYWxsY2F0ZWdvcmllcycsX19GSUxFX18pOwogICAgICAgIGlmKCAkZGF0YSAmJiBpc19hcnJheSgkZGF0YSkgJiYgY291bnQoJGRhdGEpICYmIGlzc2V0KCRkYXRhWzBdKSAmJiAkZGF0YVswXSBpbnN0YW5jZW9mIENhdGVnb3J5ICkgcmV0dXJuICRkYXRhOwoKICAgICAgICAkZGF0YSA9ICR0aGlzLT5wYXJlbnQtPmxvYWRfYWxsKCk7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+c2V0KCdhbGxjYXRlZ29yaWVzJywkZGF0YSxfX0ZJTEVfXyk7CiAgICAgICAgaWYoICFlbXB0eSgkZGF0YSkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRkYXRhIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5zZXQoJ2NhdCcuJG9uZS0+aWQsICRvbmUsIF9fRklMRV9fKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBDYXRlZ29yeQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KCdjYXQnLiRpZCxfX0ZJTEVfXyk7CiAgICAgICAgaWYoICRkYXRhICYmICRkYXRhIGluc3RhbmNlb2YgQ2F0ZWdvcnkgKSByZXR1cm4gJGRhdGE7CgogICAgICAgICRkYXRhID0gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9pZCgkaWQpOwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldCgnY2F0Jy4kaWQsICRkYXRhLCBfX0ZJTEVfXyk7CiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J1bGsoYXJyYXkgJGxpc3QpIDogYXJyYXkKICAgIHsKICAgICAgICAvLyBpZiB3ZSBjYW4gZ2V0IGFsbCBvZiB0aGUgaXRlbXMgZnJvbSB0aGUgY2FjaGUuLi4gdGhlbiB3ZSByZXR1cm4gdGhlbSBhbGwuCiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCgkbGlzdCBhcyAkaXRlbSkgewogICAgICAgICAgICBpZiggaXNfaW50KCRpdGVtKSAmJiAkaXRlbSA+IDAgKSB7CiAgICAgICAgICAgICAgICAkZGF0YSA9ICR0aGlzLT5jYWNoZV9kcml2ZXItPmdldCgnY2F0Jy4kaXRlbSwgX19GSUxFX18pOwogICAgICAgICAgICAgICAgaWYoICRkYXRhICYmICRkYXRhIGluc3RhbmNlb2YgQ2F0ZWdvcnkgKSAkb3V0W10gPSAkZGF0YTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiggJG91dCAmJiBjb3VudCgkbGlzdCkgPT0gY291bnQoJG91dCkgKSByZXR1cm4gJG91dDsKCiAgICAgICAgJG91dCA9ICR0aGlzLT5wYXJlbnQtPmxvYWRfYnVsaygkbGlzdCk7CiAgICAgICAgZm9yZWFjaCggJG91dCBhcyAkY2F0ICkgewogICAgICAgICAgICAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5zZXQoJ2NhdCcuJGNhdC0+aWQsICRjYXQsIF9fRklMRV9fKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoQ2F0ZWdvcnkgJGNhdGVnb3J5KSA6IENhdGVnb3J5CiAgICB7CiAgICAgICAgJHRoaXMtPmNsZWFyX2NhY2hlKCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnNhdmUoJGNhdGVnb3J5KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBDYXRlZ29yeQogICAgewogICAgICAgICR0aGlzLT5jbGVhcl9jYWNoZSgpOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGNhdGVnb3J5KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3BhdGgoQ2F0ZWdvcnkgJGNhdGVnb3J5KSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfY2F0ZWdvcnlfcGF0aCgkY2F0ZWdvcnkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcnlfdXJsKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NhdGVnb3J5X3VybCgkY2F0ZWdvcnkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGlzdCgpCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5nZXQoJ2xpc3QnLF9fRklMRV9fKTsKICAgICAgICBpZiggJGRhdGEgKSByZXR1cm4gJGRhdGE7CgogICAgICAgICRkYXRhID0gJHRoaXMtPnBhcmVudC0+Z2V0X2xpc3QoKTsKICAgICAgICBpZiggJGRhdGEgKSAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5zZXQoJ2xpc3QnLCRkYXRhLF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmVlKCkKICAgIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5jYWNoZV9kcml2ZXItPmdldCgndHJlZScsX19GSUxFX18pOwogICAgICAgIGlmKCAkZGF0YSApIHJldHVybiAkZGF0YTsKCiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5nZXRfdHJlZSgpOwogICAgICAgIGlmKCAkZGF0YSApICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldCgndHJlZScsJGRhdGEsX19GSUxFX18pOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYnVsa19yZW9yZGVyKGFycmF5ICRkYXRhKQogICAgewogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5idWxrX3Jlb3JkZXIoJGRhdGEpOwogICAgICAgICR0aGlzLT5jbGVhcl9jYWNoZSgpOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.CategoryManagerFileDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQ2F0ZWdvcnlNYW5hZ2VyRmlsZURlY29yYXRvciBpbXBsZW1lbnRzIElDYXRlZ29yeU1hbmFnZXIKewogICAgcHJpdmF0ZSAkcGFyZW50OwogICAgcHJpdmF0ZSAkcm9vdF9wYXRoOwogICAgcHJpdmF0ZSAkcm9vdF91cmw7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDYXRlZ29yeU1hbmFnZXIgJHBhcmVudCwgc3RyaW5nICRyb290X3BhdGgsIHN0cmluZyAkcm9vdF91cmwpCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudCA9ICRwYXJlbnQ7CiAgICAgICAgJHRoaXMtPnJvb3RfcGF0aCA9ICRyb290X3BhdGg7CiAgICAgICAgJHRoaXMtPnJvb3RfdXJsID0gJHJvb3RfdXJsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfY2F0ZWdvcnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDYXRlZ29yeQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jcmVhdGVfY2F0ZWdvcnkoJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2FsbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYWxsKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBDYXRlZ29yeQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X2lkKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnVsayhhcnJheSAkbGlzdCkgOiBhcnJheQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J1bGsoJGxpc3QpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBDYXRlZ29yeQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5zYXZlKCRjYXRlZ29yeSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShDYXRlZ29yeSAkY2F0ZWdvcnkpIDogQ2F0ZWdvcnkKICAgIHsKICAgICAgICAkcGF0aCA9ICR0aGlzLT5nZXRfY2F0ZWdvcnlfcGF0aCgkY2F0ZWdvcnkpOwogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGNhdGVnb3J5KTsKICAgICAgICByZWN1cnNpdmVfZGVsZXRlKCRwYXRoKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RyZWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfdHJlZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGlzdCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9saXN0KCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9wYXRoKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NhdGVnb3J5X3BhdGgoJGNhdGVnb3J5KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3VybChDYXRlZ29yeSAkY2F0ZWdvcnkpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jYXRlZ29yeV91cmwoJGNhdGVnb3J5KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYnVsa19yZW9yZGVyKGFycmF5ICRkYXRhKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5idWxrX3Jlb3JkZXIoJGRhdGEpOwogICAgfQoKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CategoryManagerHookDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcSG9va01hbmFnZXI7CgpjbGFzcyBDYXRlZ29yeU1hbmFnZXJIb29rRGVjb3JhdG9yIGltcGxlbWVudHMgSUNhdGVnb3J5TWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDYXRlZ29yeU1hbmFnZXIgJHBhcmVudCkKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50ID0gJHBhcmVudDsKICAgIH0KCiAgICAvLy8vIElOVEVSRkFDRQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfY2F0ZWdvcnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDYXRlZ29yeQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jcmVhdGVfY2F0ZWdvcnkoJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2FsbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYWxsKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBDYXRlZ29yeQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X2lkKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnVsayhhcnJheSAkbGlzdCkgOiBhcnJheQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J1bGsoJGxpc3QpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBDYXRlZ29yeQogICAgewogICAgICAgIEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDb21wYW55RGlyZWN0b3J5OjpCZWZvcmVTYXZlQ2F0ZWdvcnknLCAkY2F0ZWdvcnkpOwogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5zYXZlKCRjYXRlZ29yeSk7CiAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyU2F2ZUNhdGVnb3J5JywgJHJlcyk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShDYXRlZ29yeSAkY2F0ZWdvcnkpIDogQ2F0ZWdvcnkKICAgIHsKICAgICAgICBIb29rTWFuYWdlcjo6ZG9faG9vaygnQ29tcGFueURpcmVjdG9yeTo6QmVmb3JlRGVsZXRlQ2F0ZWdvcnknLCAkY2F0ZWdvcnkpOwogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGNhdGVnb3J5KTsKICAgICAgICBIb29rTWFuYWdlcjo6ZG9faG9vaygnQ29tcGFueURpcmVjdG9yeTo6QWZ0ZXJEZWxldGVDYXRlZ29yeScsICRyZXMpOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcnlfcGF0aChDYXRlZ29yeSAkY2F0ZWdvcnkpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jYXRlZ29yeV9wYXRoKCRjYXRlZ29yeSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV91cmwoQ2F0ZWdvcnkgJGNhdGVnb3J5KSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfY2F0ZWdvcnlfdXJsKCRjYXRlZ29yeSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saXN0KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2xpc3QoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RyZWUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfdHJlZSgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBidWxrX3Jlb3JkZXIoYXJyYXkgJGRhdGEpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmJ1bGtfcmVvcmRlcigkZGF0YSk7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.CategoryQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CgovKioKICogdGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBjYXRlZ29yeSBxdWVyeSBleHByZXNzaW9uCiAqLwpjbGFzcyBDYXRlZ29yeVF1ZXJ5RXhwcmVzc2lvbgp7CiAgICBwcml2YXRlICRjYXRlZ29yeV9tYW5hZ2VyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChJQ2F0ZWdvcnlNYW5hZ2VyICRobWdyKQogICAgewogICAgICAgICR0aGlzLT5jYXRlZ29yeV9tYW5hZ2VyID0gJGhtZ3I7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9leHBhbmRfY2F0ZWdvcmllcygkbGlzdCkKICAgIHsKICAgICAgICBpZiggIWlzX2ludCgkbGlzdCkgJiYgIWlzX2FycmF5KCRsaXN0KSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggaXNfaW50KCRsaXN0KSApICRsaXN0ID0gWyAkbGlzdCBdOwoKICAgICAgICAkZmluZF9jYXRlZ29yeSA9IGZ1bmN0aW9uKGludCAkaWQsIGFycmF5ICR0cmVlKSB1c2UgKCYkZmluZF9jYXRlZ29yeSkgewogICAgICAgICAgICBmb3JlYWNoKCAkdHJlZSBhcyAkbm9kZSApIHsKICAgICAgICAgICAgICAgIGlmKCAkbm9kZS0+aWQgPT09ICRpZCApIHJldHVybiAkbm9kZTsKICAgICAgICAgICAgICAgIGlmKCAkbm9kZS0+Y2hpbGRyZW4gKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlcyA9ICRmaW5kX2NhdGVnb3J5KCRpZCwgJG5vZGUtPmNoaWxkcmVuKTsKICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyApIHJldHVybiAkcmVzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJGxpc3RfY2hpbGRyZW4gPSBmdW5jdGlvbihDYXRlZ29yeVRyZWVOb2RlICRub2RlKSB1c2UgKCYkbGlzdF9jaGlsZHJlbikgewogICAgICAgICAgICAkb3V0ID0gWyRub2RlLT5pZF07CiAgICAgICAgICAgIGlmKCAkbm9kZS0+Y2hpbGRyZW4gKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkbm9kZS0+Y2hpbGRyZW4gYXMgJGNoaWxkICkgewogICAgICAgICAgICAgICAgICAgICRyZXMgPSAkbGlzdF9jaGlsZHJlbigkY2hpbGQpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkcmVzICkgJG91dCA9IGFycmF5X21lcmdlKCRvdXQsICRyZXMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH07CgogICAgICAgICR0cmVlID0gJHRoaXMtPmNhdGVnb3J5X21hbmFnZXItPmdldF90cmVlKCk7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRpdGVtICkgewogICAgICAgICAgICBpZiggIWlzX2ludCgkaXRlbSkgfHwgJGl0ZW0gPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwcm92aWRlZCBpbiBhcnJheSB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICAvLyBmaW5kIHRoaXMgaXRlbSBpbiB0aGUgaGllcmFyY2h5IHRyZWUKICAgICAgICAgICAgJG5vZGUgPSAkZmluZF9jYXRlZ29yeSgkaXRlbSwgJHRyZWUpOwogICAgICAgICAgICBpZiggISRub2RlICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGNhdGVnb3J5IHdpdGggaWQgJy4kaXRlbS4nIGluICcuX19NRVRIT0RfXyk7CiAgICAgICAgICAgICRvdXQgPSAkb3V0ICsgJGxpc3RfY2hpbGRyZW4oJG5vZGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoYXJyYXkgJHN0YXRlbWVudCwgSVF1ZXJ5QnVpbGRlciAkYnVpbGRlcikKICAgIHsKICAgICAgICBpZiggY291bnQoJHN0YXRlbWVudCkgPCAyIHx8IGNvdW50KCRzdGF0ZW1lbnQpID4gMykgewogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCJJbnZhbGlkIGZvcm1hdCBmb3IgY2F0ZWdvcnkgc3RhdGVtZW50LiAgZm9ybWF0IGlzOiAgY2F0ZWdvcnk6aWRbKGludCkgd2l0aGNoaWxkcmVuXSIpOwogICAgICAgIH0KICAgICAgICAkY2F0X2lkID0gKGludCkkc3RhdGVtZW50WzFdOwogICAgICAgICR3aXRoX2NoaWxkcmVuID0gY2dlX3BhcmFtOjpnZXRfYm9vbCgkc3RhdGVtZW50LChzdHJpbmcpMik7CiAgICAgICAgaWYoICRjYXRfaWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiSW52YWxpZCBmb3JtYXQgZm9yIGNhdGVnb3J5IHN0YXRlbWVudC4gIGZvcm1hdCBpczogIGNhdGVnb3J5OmlkWyhpbnQpIHdpdGhjaGlsZHJlbl0iKTsKICAgICAgICAkbGlzdCA9ICRzdHIgPSBudWxsOwogICAgICAgIGlmKCAkd2l0aF9jaGlsZHJlbiApIHsKICAgICAgICAgICAgJGxpc3QgPSAkdGhpcy0+X2V4cGFuZF9jYXRlZ29yaWVzKCRjYXRfaWQpOwogICAgICAgIH0KICAgICAgICBpZiggJGxpc3QgKSB7CiAgICAgICAgICAgICRsaXN0ID0gWyRjYXRfaWRdICsgJGxpc3Q7CiAgICAgICAgICAgICRzdHIgPSAnQ0MuY2F0ZWdvcnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGxpc3QpLicpJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkc3RyID0gJ0NDLmNhdGVnb3J5X2lkID0gJy4kYnVpbGRlci0+YXJnKCRjYXRfaWQpOwogICAgICAgIH0KCiAgICAgICAgJG91dCA9IFsKICAgICAgICAgICAgJ2pvaW5fY2xhdXNlJyA9PiAnSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIENDIE9OIENDLmNvbXBhbnlfaWQgPSAlVEFCTEUlLmlkJywKICAgICAgICAgICAgJ3doZXJlX2NsYXVzZScgPT4gJHN0cgogICAgICAgICAgICBdOwoKICAgICAgICByZXR1cm4gKG9iamVjdCkgJG91dDsKICAgIH0KCn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CategoryTreeNode.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQ2F0ZWdvcnlUcmVlTm9kZQp7CiAgICBwcml2YXRlICRyZWY7CiAgICBwcml2YXRlICRkZXB0aDsKICAgIHByaXZhdGUgJGNoaWxkcmVuOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChDYXRlZ29yeSAkY2F0LCBpbnQgJGRlcHRoLCBhcnJheSAkY2hpbGRyZW4gPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5yZWYgPSAkY2F0OwogICAgICAgICR0aGlzLT5kZXB0aCA9ICRkZXB0aDsKICAgICAgICAkdGhpcy0+Y2hpbGRyZW4gPSAkY2hpbGRyZW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KHN0cmluZyAka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdyZWYnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJlZjsKCiAgICAgICAgY2FzZSAnZGVwdGgnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmRlcHRoOwoKICAgICAgICBjYXNlICdjaGlsZHJlbic6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2hpbGRyZW47CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmVmLT5fX2dldCgka2V5KTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGgoc3RyaW5nICRrZXksICR2YWwpCiAgICB7CiAgICAgICAgaWYoICRrZXkgPT0gJ3JlZicgJiYgJHZhbCBpbnN0YW5jZW9mIENhdGVnb3J5ICkgewogICAgICAgICAgICAkdGhpcy0+cmVmID0gJHZhbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.CDQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgpjbGFzcyBDRFF1ZXJ5IGltcGxlbWVudHMgSVF1ZXJ5CnsKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfbGlzdDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIGFycmF5ICRzdGF0ZW1lbnRzID0gbnVsbCApCiAgICB7CiAgICAgICAgaWYoIGlzX251bGwoJHN0YXRlbWVudHMpICkgJHN0YXRlbWVudHMgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkc3RhdGVtZW50cyBhcyAkb25lICkgewogICAgICAgICAgICBpZiggIWlzX3N0cmluZygkb25lKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fbGlzdCA9ICRzdGF0ZW1lbnRzOwogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmV3aW5kKCkgeyByZXNldCgkdGhpcy0+X2xpc3QpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjdXJyZW50KCkgeyByZXR1cm4gY3VycmVudCgkdGhpcy0+X2xpc3QpOyB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBrZXkoKSB7IHJldHVybiBrZXkoJHRoaXMtPl9saXN0KTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbmV4dCgpIHsgcmV0dXJuIG5leHQoJHRoaXMtPl9saXN0KTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gdmFsaWQoKSB7IHJldHVybiAoJHRoaXMtPmtleSgpICE9PSBudWxsKTsgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY291bnQoKSB7IHJldHVybiBjb3VudCgkdGhpcy0+X2xpc3QpOyB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFwcGVuZF9zdGF0ZW1lbnQoc3RyaW5nICRzdG10KSA6IElRdWVyeQogICAgewogICAgICAgICRvYmogPSBjbG9uZSAkdGhpczsKICAgICAgICAkb2JqLT5fbGlzdFtdID0gJHN0bXQ7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgLy8gdG9kbzogcHV0IHRoaXMgaW50byB0aGUgaW50ZXJmYWNlCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVwbGFjZV9zdGF0ZW1lbnQoc3RyaW5nICRwcmVmaXgsIHN0cmluZyAkc3RtdCkgOiBJUXVlcnkKICAgIHsKICAgICAgICAkbGlzdCA9IFtdOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5fbGlzdCBhcyAkb25lICkgewogICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkb25lLCAkcHJlZml4KSApIGNvbnRpbnVlOwogICAgICAgICAgICAkbGlzdFtdID0gJG9uZTsKICAgICAgICB9CiAgICAgICAgJGxpc3RbXSA9ICRzdG10OwogICAgICAgICRvYmogPSBjbG9uZSAkdGhpczsKICAgICAgICAkb2JqLT5fbGlzdCA9ICRsaXN0OwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYW5kX2V4cHIoc3RyaW5nICRleHByKQogICAgewogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5fbGlzdCBhcyAkb25lICkgewogICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkb25lLCdhbmQ6Jy4kZXhwci4nOicpICkgJG91dCA9ICRvbmU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0b19zdHJpbmcoKSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiBpbXBsb2RlKCd8JywgJHRoaXMtPl9saXN0KTsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CDQueryFactory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX3BhcmFtOwoKLy8gdGhpcyBjbGFzcyBpcyB1c2VmdWwgZm9yIGNyZWF0aW5nIGNkcWllcmllcyBnaXZlbiBhIHZhcmlldHkgb2YgbWVhbnMKY2xhc3MgQ0RRdWVyeUZhY3RvcnkgaW1wbGVtZW50cyBJUXVlcnlGYWN0b3J5CnsKICAgIHByaXZhdGUgJGZpZWxkc29ydGVyOwogICAgcHJpdmF0ZSAkcXVlcnlfZXhwcmVzc2lvbnMgPSBbXTsKICAgIHByaXZhdGUgJGZyb250ZW5kX3F1ZXJ5X2NhbGxiYWNrczsKCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY3JlYXRlX3F1ZXJ5YnVpbGRlcigpIDogSVF1ZXJ5QnVpbGRlcgogICAgewogICAgICAgIHJldHVybiBuZXcgQ0RRdWVyeUxhbmdUb1NxbEJ1aWxkZXIoJHRoaXMtPnF1ZXJ5X2V4cHJlc3Npb25zLCAkdGhpcy0+ZmllbGRzb3J0ZXIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZWdpc3Rlcl9maWVsZF9zb3J0ZXIoY2FsbGFibGUgJGNiKSA6IHZvaWQKICAgIHsKICAgICAgICBpZiggJHRoaXMtPmZpZWxkc29ydGVyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQXR0ZW1wdCB0byByZWdpc3RlciBmaWVsZHNvcnRlciBtb3JlIHRoYW4gb25jZScpOwogICAgICAgICR0aGlzLT5maWVsZHNvcnRlciA9ICRjYjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXJfcXVlcnlfZXhwcmVzc2lvbihzdHJpbmcgJGV4cHIsIGNhbGxhYmxlICRjYikgOiB2b2lkCiAgICB7CiAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJGV4cHIsJHRoaXMtPnF1ZXJ5X2V4cHJlc3Npb25zKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigicXVlcnkgZXhwcmVzc2lvbiAkZXhwciBhbHJlYWR5IHJlZ2lzdGVyZWQiKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPnF1ZXJ5X2V4cHJlc3Npb25zWyRleHByXSA9ICRjYjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX2Zyb250ZW5kX3ByZXByb2Nlc3NvcihjYWxsYWJsZSAkY2IpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5mcm9udGVuZF9xdWVyeV9jYWxsYmFja3NbXSA9ICRjYjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfcXVlcnkoSVF1ZXJ5ICRpbikgOiBTcWxRdWVyeQogICAgewogICAgICAgICRidWlsZGVyID0gJHRoaXMtPmNyZWF0ZV9xdWVyeWJ1aWxkZXIoKTsKICAgICAgICBmb3JlYWNoKCRpbiBhcyAkc3RhdGVtZW50KSB7CiAgICAgICAgICAgICRidWlsZGVyID0gJGJ1aWxkZXItPmFkZF9zdHJpbmdfc3RhdGVtZW50KCRzdGF0ZW1lbnQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGJ1aWxkZXItPmJ1aWxkKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9xdWVyeV9mcm9tX3N0YXRlbWVudHMoYXJyYXkgJHN0YXRlbWVudHMpIDogSVF1ZXJ5CiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBDRFF1ZXJ5KCRzdGF0ZW1lbnRzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX2Zyb250ZW5kX3F1ZXJ5X2Zyb21fc3RhdGVtZW50cyhhcnJheSAkc3RhdGVtZW50cykgOiBJUXVlcnkKICAgIHsKICAgICAgICAvLyBhbHNvIGRvZXMgdGhlIHByZWZpbHRlciBzdHVmZi4KICAgICAgICBpZiggJHRoaXMtPmZyb250ZW5kX3F1ZXJ5X2NhbGxiYWNrcyApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZyb250ZW5kX3F1ZXJ5X2NhbGxiYWNrcyBhcyAkY2IgKSB7CiAgICAgICAgICAgICAgICAkc3RhdGVtZW50cyA9ICRjYigkc3RhdGVtZW50cyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5jcmVhdGVfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKCRzdGF0ZW1lbnRzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRqdXN0X3F1ZXJ5X2Zvcl9wYWdlKElRdWVyeSAkcXVlcnksIGludCAkcGFnZSwgaW50ICRsaW1pdCA9IG51bGwpIDogSVF1ZXJ5CiAgICB7CiAgICAgICAgJGdldF9leHByID0gZnVuY3Rpb24oc3RyaW5nICRpbikgdXNlICgkcXVlcnkpIHsKICAgICAgICAgICAgZm9yZWFjaCgkcXVlcnkgYXMgJGV4cHIpIHsKICAgICAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRleHByLCRpbikgKSByZXR1cm4gJGV4cHI7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICAkbGltaXQgPSAkZ2V0X2V4cHIoJ2xpbWl0OicpOwogICAgICAgIGlmKCAkbGltaXQgKSAkbGltaXQgPSAoaW50KSBzdWJzdHIoJGxpbWl0LDYpOwogICAgICAgIGlmKCAkbGltaXQgPCAxICkgJGxpbWl0ID0gMTAwMDsKICAgICAgICAkcGFnZSA9IG1heCgxLCRwYWdlKTsKICAgICAgICByZXR1cm4gJHF1ZXJ5LT5yZXBsYWNlX3N0YXRlbWVudCgnb2Zmc2V0JywgJ29mZnNldDonLigkcGFnZSAtIDEpKiRsaW1pdCk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9zdGF0ZW1lbnRzX2Zyb21fcGFyYW1zKGFycmF5ICRwYXJhbXMpIDogYXJyYXkKICAgIHsKICAgICAgICAvLyBoYW5kbGVzICdlbmNvZGVkJyBvciAncXVlcnknIChzdHJpbmd8YXJyYXkpIG9yICdxdWVyeV8jIycKICAgICAgICAvLyBhbmQgbGltaXQgcGFyYW0uCiAgICAgICAgJHN0YXRlbWVudHMgPSBbXTsKICAgICAgICBpZiggY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywgJ2VuY29kZWQnKSApIHsKICAgICAgICAgICAgLy8gdGhlIGVuY29kZWQgcXVlcnkgZG9lcyBub3QgZ28gdGhyb3VnaCBmdXRoZXIgZmlsdGVyaW5nLi4uIG5vIHByZXByb2Nlc3NvcnMsIG9yIGxpbWl0IGlzIG1vZGlmaWVkLgogICAgICAgICAgICAkc3RhdGVtZW50cyA9ICR0aGlzLT5kZWNvZGVfcXVlcnkoY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2VuY29kZWQnKSk7CiAgICAgICAgICAgICRoYXZlX2VuY29kZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdxdWVyeScpICkgewogICAgICAgICAgICBpZiggaXNfc3RyaW5nKCRwYXJhbXNbJ3F1ZXJ5J10pICkgewogICAgICAgICAgICAgICAgJHN0YXRlbWVudHMgPSAkdGhpcy0+c2NyaXB0X3RvX3N0YXRlbWVudHMoJHBhcmFtc1sncXVlcnknXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkc3RhdGVtZW50cyA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZ19hcnJheSgkcGFyYW1zLCdxdWVyeScpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ3F1ZXJ5XzEnKSApIHsKICAgICAgICAgICAgJHRtcCA9IG51bGw7CiAgICAgICAgICAgIGZvciggJGkgPSAxOyAkaSA8IDEwMDsgJGkrKyApIHsKICAgICAgICAgICAgICAgICRrZXkgPSAncXVlcnlfJy4kaTsKICAgICAgICAgICAgICAgIGlmKCAhY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywgJGtleSkgKSBicmVhazsKICAgICAgICAgICAgICAgICRzdGF0ZW1lbnRzW10gPSB0cmltKGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCRrZXkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoICgkbGltaXQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnbGltaXQnKSkgPiAwICkgewogICAgICAgICAgICAkc3RhdGVtZW50c1tdID0gJ2xpbWl0OicuJGxpbWl0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHN0YXRlbWVudHM7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9xdWVyeV9mcm9tX3BhcmFtcyhhcnJheSAkcGFyYW1zKSA6IElRdWVyeQogICAgewogICAgICAgICRzdGF0ZW1lbnRzID0gJHRoaXMtPmdldF9zdGF0ZW1lbnRzX2Zyb21fcGFyYW1zKCRwYXJhbXMpOwogICAgICAgICRxdWVyeSA9ICR0aGlzLT5jcmVhdGVfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKCRzdGF0ZW1lbnRzKTsKICAgICAgICBpZiggKCRwYWdlID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3BhZ2UnKSkgPiAwICkgewogICAgICAgICAgICAkcXVlcnkgPSAkdGhpcy0+YWRqdXN0X3F1ZXJ5X2Zvcl9wYWdlKCRxdWVyeSwgJHBhZ2UpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHF1ZXJ5OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfZnJvbnRlbmRfcXVlcnlfZnJvbV9wYXJhbXMoYXJyYXkgJHBhcmFtcyApIDogSVF1ZXJ5CiAgICB7CiAgICAgICAgLy8gc2FtZSBhcyBjcmVhdGVfcXVlcnlfZnJvbV9wYXJhbXMgYnV0IGVuc3VyZXMgdGhhdCBmcm9udGVuZCBwcmVwcm9jZXNzaW5nIHN0YXRlbWVudHMKICAgICAgICAvLyBhcmUgYWRkZWQKICAgICAgICAkc3RhdGVtZW50cyA9ICR0aGlzLT5nZXRfc3RhdGVtZW50c19mcm9tX3BhcmFtcygkcGFyYW1zKTsKICAgICAgICAkcXVlcnkgPSAkdGhpcy0+Y3JlYXRlX2Zyb250ZW5kX3F1ZXJ5X2Zyb21fc3RhdGVtZW50cygkc3RhdGVtZW50cyk7CiAgICAgICAgaWYoICgkcGFnZSA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdwYWdlJykpID4gMCApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPmFkanVzdF9xdWVyeV9mb3JfcGFnZSgkcXVlcnksICRwYWdlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRxdWVyeTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2NyaXB0X3RvX3N0YXRlbWVudHMoc3RyaW5nICRzY3JpcHQpIDogYXJyYXkKICAgIHsKICAgICAgICAvLyBzcGxpdCBldmVyeXRoaW5nIGJ5IHwgY2hhcmFjdGVyCiAgICAgICAgLy8gYW5kIHRoZW4gY3JlYXRlIHRoZSBxdWVyeQogICAgICAgIC8vIG5vdyBwcm9jZXNzIHRoZSBzY3JpcHQgaW50byBjb21tYW5kcy4KICAgICAgICAkdG1wID0gc3RyX2dldGNzdigkc2NyaXB0LCAnfCcsICciJywgJ1xcJyk7CgogICAgICAgICRzY3JpcHQgPSBbXTsKICAgICAgICBmb3JlYWNoKCR0bXAgYXMgJHN0bXQpIHsKICAgICAgICAgICAgJHN0bXQgPSB0cmltKCRzdG10KTsKICAgICAgICAgICAgaWYoICEkc3RtdCApIGNvbnRpbnVlOwogICAgICAgICAgICAkc2NyaXB0W10gPSAkc3RtdDsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkc2NyaXB0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfcXVlcnlfZnJvbV9zY3JpcHQoc3RyaW5nICRzY3JpcHQpIDogSVF1ZXJ5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5jcmVhdGVfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKCR0aGlzLT5zY3JpcHRfdG9fc3RhdGVtZW50cygkc2NyaXB0KSk7CiAgICB9CgogICAgLy8gQHRvZG8gYWRkIHRoaXMgdG8gdGhlIGludGVyZmFjZQogICAgcHVibGljIGZ1bmN0aW9uIGVuY29kZV9xdWVyeShJUXVlcnkgJHF1ZXJ5KQogICAgewogICAgICAgICRvdXQgPSAkcXVlcnktPnRvX3N0cmluZygpOwogICAgICAgICRvdXQgPSBzaGExKF9fRklMRV9fLiRvdXQpLic6OicuYmFzZTY0X2VuY29kZSgkb3V0KTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICAvLyBAdG9kbyBhZGQgdGhpcyB0byB0aGUgaW50ZXJmYWNlCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVjb2RlX3F1ZXJ5KHN0cmluZyAkZW5jb2RlZCkgOiBhcnJheQogICAgewogICAgICAgIGxpc3QoJHNpZywgJGVuY29kZWQpID0gZXhwbG9kZSgnOjonLCRlbmNvZGVkLDIpOwogICAgICAgICRzdHIgPSBiYXNlNjRfZGVjb2RlKCRlbmNvZGVkKTsKICAgICAgICBpZiggc2hhMShfX0ZJTEVfXy4kc3RyKSAhPSAkc2lnICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdDb3VsZCBub3QgdmFsaWRhdGUgZW5jb2RlZCBxdWVyeScpOwoKICAgICAgICByZXR1cm4gJHRoaXMtPnNjcmlwdF90b19zdGF0ZW1lbnRzKCRzdHIpOwogICAgfQoKfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CDQueryLangToSqlBuilder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX2FycmF5Owp1c2UgY2dlX3BhcmFtOwoKY2xhc3MgQ0RRdWVyeWxhbmdUb1NxbEJ1aWxkZXIgaW1wbGVtZW50cyBJUXVlcnlCdWlsZGVyCnsKICAgIC8vIFthbmR8b3J8c29ydGJ5fHNvcnRvcmRlcnxsaW1pdHxvZmZzZXRdOmZpZWxkOmV4cHI6dmFsXQogICAgLy8gYW5kOnVybDpuZToKICAgIC8vIGFuZDpjaXR5OlNXOlRPUk9OVE8KICAgIHByaXZhdGUgJGV4cHJlc3Npb25zOwogICAgcHJpdmF0ZSAkZmllbGRzb3J0ZXI7CgogICAgcHJpdmF0ZSAkY29sdW1ucyA9IFsgJyVUQUJMRSUuKicgXTsKICAgIHByaXZhdGUgJGpvaW5zID0gW107CiAgICBwcml2YXRlICRhbmQgPSBbXTsKICAgIHByaXZhdGUgJG9yID0gW107CiAgICBwcml2YXRlICRoYXZpbmcgPSBbXTsKICAgIHByaXZhdGUgJHNvcnRieSA9ICclVEFCTEUlLmNvbXBhbnlfbmFtZSc7CiAgICBwcml2YXRlICRzb3J0b3JkZXIgPSAnQVNDJzsKICAgIHByaXZhdGUgJGxpbWl0ID0gMTAwMDsKICAgIHByaXZhdGUgJG9mZnNldCA9IDA7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRleHByZXNzaW9ucywgY2FsbGFibGUgJGZpZWxkc29ydGVyKQogICAgewogICAgICAgICR0aGlzLT5yZWdpc3Rlcl9zdGFuZGFyZF9leHByZXNzaW9ucygpOwogICAgICAgICR0aGlzLT5leHByZXNzaW9ucyA9ICR0aGlzLT5leHByZXNzaW9ucyArICRleHByZXNzaW9uczsKICAgICAgICAkdGhpcy0+ZmllbGRzb3J0ZXIgPSAkZmllbGRzb3J0ZXI7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlZ2lzdGVyX3N0YW5kYXJkX2V4cHJlc3Npb25zKCkKICAgIHsKICAgICAgICAkdGhpcy0+ZXhwcmVzc2lvbnNbJ25hbWUnXSA9IFsgJHRoaXMsICdwcm9jZXNzX2NvbHVtbl9zdGF0ZW1lbnQnIF07CiAgICAgICAgJHRoaXMtPmV4cHJlc3Npb25zWydjb21wYW55X25hbWUnXSA9IFsgJHRoaXMsICdwcm9jZXNzX2NvbHVtbl9zdGF0ZW1lbnQnIF07CiAgICAgICAgJHRoaXMtPmV4cHJlc3Npb25zWydhZGRyZXNzJ10gPSBbICR0aGlzLCAncHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50JyBdOwogICAgICAgICR0aGlzLT5leHByZXNzaW9uc1sndGVscGhvbmUnXSA9IFsgJHRoaXMsICdwcm9jZXNzX2NvbHVtbl9zdGF0ZW1lbnQnIF07CiAgICAgICAgJHRoaXMtPmV4cHJlc3Npb25zWydmYXgnXSA9IFsgJHRoaXMsICdwcm9jZXNzX2NvbHVtbl9zdGF0ZW1lbnQnIF07CiAgICAgICAgJHRoaXMtPmV4cHJlc3Npb25zWydjb250YWN0X2VtYWlsJ10gPSBbICR0aGlzLCAncHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50JyBdOwogICAgICAgICR0aGlzLT5leHByZXNzaW9uc1snd2Vic2l0ZSddID0gWyAkdGhpcywgJ3Byb2Nlc3NfY29sdW1uX3N0YXRlbWVudCcgXTsKICAgICAgICAkdGhpcy0+ZXhwcmVzc2lvbnNbJ3BpY3R1cmUnXSA9IFsgJHRoaXMsICdwcm9jZXNzX2NvbHVtbl9zdGF0ZW1lbnQnIF07CiAgICAgICAgJHRoaXMtPmV4cHJlc3Npb25zWydsb2dvJ10gPSBbICR0aGlzLCAncHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50JyBdOwogICAgICAgICR0aGlzLT5leHByZXNzaW9uc1snc3RhdHVzJ10gPSBbICR0aGlzLCAncHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50JyBdOwogICAgICAgICR0aGlzLT5leHByZXNzaW9uc1sndXJsJ10gPSBbICR0aGlzLCAncHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50JyBdOwogICAgICAgICR0aGlzLT5leHByZXNzaW9uc1snb3duZXInXSA9IFsgJHRoaXMsICdwcm9jZXNzX2NvbHVtbl9zdGF0ZW1lbnQnIF07CiAgICAgICAgJHRoaXMtPmV4cHJlc3Npb25zWydvd25lcl9pZCddID0gWyAkdGhpcywgJ3Byb2Nlc3NfY29sdW1uX3N0YXRlbWVudCcgXTsKICAgICAgICAkdGhpcy0+ZXhwcmVzc2lvbnNbJ2lkJ10gPSBbICR0aGlzLCAncHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50JyBdOwogICAgICAgICR0aGlzLT5leHByZXNzaW9uc1snbW9kaWZpZWRfZGF0ZSddID0gWyAkdGhpcywgJ3Byb2Nlc3NfY29sdW1uX3N0YXRlbWVudCcgXTsKICAgICAgICAkdGhpcy0+ZXhwcmVzc2lvbnNbJ2NyZWF0ZV9kYXRlJ10gPSBbICR0aGlzLCAncHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50JyBdOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB3aWxkY2FyZChzdHJpbmcgJHN0cikgOiBzdHJpbmcKICAgIHsKICAgICAgICAkc3RyID0gc3RyX3JlcGxhY2UoJyUnLCdcJScsJHN0cik7CiAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCdfJywnXF8nLCRzdHIpOwogICAgICAgICRzdHIgPSBzdHJfcmVwbGFjZSgnKicsJyUnLCAkc3RyKTsKICAgICAgICByZXR1cm4gJHN0cjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYXJnKCRhcmcpCiAgICB7CiAgICAgICAgaWYoIGlzX3N0cmluZygkYXJnKSApIHJldHVybiAiJyIuYWRkc2xhc2hlcygkYXJnKS4iJyI7CiAgICAgICAgaWYoIGlzX3NjYWxhcigkYXJnKSApIHJldHVybiAkYXJnOwogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCB1c2UgYXJndW1lbnQgb2YgdHlwZSAnLmdldHR5cGUoJGFyZykuJyBpbiBxdWVyeScpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0b19pbnRfYXJyYXkoJGlucHV0KSA6IGFycmF5CiAgICB7CiAgICAgICAgaWYoIGlzX3N0cmluZygkaW5wdXQpICkgJGlucHV0ID0gZXhwbG9kZSgnLCcsICRpbnB1dCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkaW5wdXQpICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ1ZhbHVlIGNhbm5vdCBiZSBleHByZXNzZWQgYXMgaW50ZWdlciBhcnJheScpOwogICAgICAgICRpbnB1dCA9IGFycmF5X21hcChmdW5jdGlvbigkaXRlbSl7CiAgICAgICAgICAgICAgICBpZiggaXNfaW50KCRpdGVtKSApIHJldHVybiAkaXRlbTsKICAgICAgICAgICAgICAgIGlmKCAhaXNfc3RyaW5nKCRpdGVtKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdWYWx1ZSBjYW5ub3QgYmUgZXhwcmVzc2VkIGFzIGludGVnZXIgYXJyYXknKTsKICAgICAgICAgICAgICAgIHJldHVybiAoaW50KSAkaXRlbTsKICAgICAgICAgICAgfSwgJGlucHV0KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYXNzZXJ0X3Bvc2l0aXZlX2ludF9hcnJheShhcnJheSAkaW5wdXQpIDogYXJyYXkKICAgIHsKICAgICAgICAkb3V0ID0gYXJyYXlfbWFwKGZ1bmN0aW9uKCRpdGVtKXsKICAgICAgICAgICAgICAgIGlmKCAhaXNfaW50KCRpdGVtKSB8fCAkaXRlbSA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignVmFsdWUgY2Fubm90IGJlIGV4cHJlc3NlZCBhIHBvc2l0aXZlIGludGVnZXIgYXJyYXknKTsKICAgICAgICAgICAgfSwgJGlucHV0KTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gX2FkZF9xdWVyeV9hbmQoc3RyaW5nICRrZXksIHN0cmluZyAkc3FsKSA6IHNlbGYKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHRoaXMtPmFuZFska2V5XSkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdEdXBsaWNhdGUgYW5kIHF1ZXJ5IGFyZ3VtZW50IGZvciAnLiRrZXkpOwogICAgICAgICRvYmogPSBjbG9uZSAkdGhpczsKICAgICAgICAkb2JqLT5hbmRbJGtleV0gPSAkc3FsOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfYWRkX3F1ZXJ5X29yKHN0cmluZyAkc3FsKSA6IHNlbGYKICAgIHsKICAgICAgICAkb2JqID0gY2xvbmUgJHRoaXM7CiAgICAgICAgJG9iai0+b3JbXSA9ICRzcWw7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9hZGRfcXVlcnlfaGF2aW5nKHN0cmluZyAka2V5LCBzdHJpbmcgJHNxbCkgOiBzZWxmCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5oYXZpbmdbJGtleV0pICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignRHVwbGljYXRlIGFuZCBxdWVyeSBhcmd1bWVudCBmb3IgJy4ka2V5KTsKICAgICAgICAkb2JqID0gY2xvbmUgJHRoaXM7CiAgICAgICAgJG9iai0+aGF2aW5nWyRrZXldID0gJHNxbDsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcHJvY2Vzc19jb2x1bW5fc3RhdGVtZW50KGFycmF5ICRzdGF0ZW1lbnQsIElRdWVyeUJ1aWxkZXIgJGJ1aWxkZXIpCiAgICB7CiAgICAgICAgLy8gW2ZpZWxkLGV4cHIsdmFsXQogICAgICAgIGlmKCBjb3VudCgkc3RhdGVtZW50KSAhPSAzICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBmaWVsZCBzdGF0ZW1lbnQ6ICcuaW1wbG9kZSgnOicsJHN0YXRlbWVudCkpOwogICAgICAgICRmaWVsZCA9IHRyaW0oJHN0YXRlbWVudFswXSk7CiAgICAgICAgJGV4cHIgPSB0cmltKCRzdGF0ZW1lbnRbMV0pOwogICAgICAgICR2YWx1ZSA9IHRyaW0oJHN0YXRlbWVudFsyXSk7CiAgICAgICAgJHR5cGUgPSAnUyc7CgogICAgICAgIHN3aXRjaCggJGZpZWxkICkgewogICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgIGNhc2UgJ2NvbXBhbnlfbmFtZSc6CiAgICAgICAgICAgICRmaWVsZCA9ICdjb21wYW55X25hbWUnOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlOiBpZiBpdCBpcyAtMSBvciBlbXB0eSwgZG8gbm90IGFkZCBhIGNsYXVzZS4KICAgICAgICAgICAgaWYoIChpbnQpJHZhbHVlIDwgMCApICR2YWx1ZSA9ICcnOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndXJsJzoKICAgICAgICBjYXNlICdhZGRyZXNzJzoKICAgICAgICBjYXNlICd0ZWxlcGhvbmUnOgogICAgICAgIGNhc2UgJ2FkZHJlc3MnOgogICAgICAgIGNhc2UgJ2ZheCc6CiAgICAgICAgY2FzZSAnY29udGFjdF9lbWFpbCc6CiAgICAgICAgY2FzZSAnd2Vic2l0ZSc6CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdwaWN0dXJlJzoKICAgICAgICBjYXNlICdsb2dvJzoKICAgICAgICAgICAgJGZpZWxkID0gJGZpZWxkLidfbG9jYXRpb24nOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnb3duZXInOgogICAgICAgIGNhc2UgJ293bmVyX2lkJzoKICAgICAgICAgICAgJGZpZWxkID0gJ293bmVyX2lkJzsKICAgICAgICAgICAgJHZhbHVlID0gKGludCkgJHZhbHVlOwogICAgICAgICAgICAkdHlwZSA9ICdJJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICAkdmFsdWUgPSAoaW50KSAkdmFsdWU7CiAgICAgICAgICAgICR0eXBlID0gJ0knOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnbW9kaWZpZWRfZGF0ZSc6CiAgICAgICAgY2FzZSAnY3JlYXRlX2RhdGUnOgogICAgICAgICAgICAkdmFsdWUgPSAoaW50KSBzdHJ0b3RpbWUoJHZhbHVlKTsKICAgICAgICAgICAgaWYoICR2YWx1ZSA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVlICR2YWx1ZSBzcGVjaWZpZWQgZm9yIHZhbHVlX3NpbmNlJyk7CiAgICAgICAgICAgICR0eXBlID0gJ0knOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBmaWVsZCBzdGF0ZW1lbnQ6ICcuaW1wbG9kZSgnOicuJHN0YXRlbWVudCkpOwogICAgICAgIH0KCiAgICAgICAgJHN0ciA9IG51bGw7CiAgICAgICAgJGNvbHVtbiA9ICclVEFCTEUlLicuJGZpZWxkOwogICAgICAgIHN3aXRjaCggc3RydG91cHBlcigkZXhwcikgKSB7CiAgICAgICAgY2FzZSAnRVEnOgogICAgICAgICAgICAkc3RyID0gIiRjb2x1bW4gPSAiLiR0aGlzLT5hcmcoJHZhbHVlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnTkUnOgogICAgICAgICAgICAkc3RyID0gIiRjb2x1bW4gIT0gIi4kdGhpcy0+YXJnKCR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0xUJzoKICAgICAgICAgICAgaWYoICR0eXBlICE9ICdJJyApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdXNlIG9mIGNvbXBhcmlzb24gb3BlcmF0b3Igb24gc3RyaW5nIGNvbHVtbiAnLiRmaWVsZCk7CiAgICAgICAgICAgICRzdHIgPSAiJGNvbHVtbiA8ICIuJHRoaXMtPmFyZygkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdMRSc6CiAgICAgICAgICAgIGlmKCAkdHlwZSAhPSAnSScgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHVzZSBvZiBjb21wYXJpc29uIG9wZXJhdG9yIG9uIHN0cmluZyBjb2x1bW4gJy4kZmllbGQpOwogICAgICAgICAgICAkc3RyID0gIiRjb2x1bW4gPD0gIi4kdGhpcy0+YXJnKCR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0dUJzoKICAgICAgICAgICAgaWYoICR0eXBlICE9ICdJJyApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdXNlIG9mIGNvbXBhcmlzb24gb3BlcmF0b3Igb24gc3RyaW5nIGNvbHVtbiAnLiRmaWVsZCk7CiAgICAgICAgICAgICRzdHIgPSAiJGNvbHVtbiA+ICIuJHRoaXMtPmFyZygkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdHRSc6CiAgICAgICAgICAgIGlmKCAkdHlwZSAhPSAnSScgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHVzZSBvZiBjb21wYXJpc29uIG9wZXJhdG9yIG9uIHN0cmluZyBjb2x1bW4gJy4kZmllbGQpOwogICAgICAgICAgICAkc3RyID0gIiRjb2x1bW4gPj0gIi4kdGhpcy0+YXJnKCR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdTVyc6CiAgICAgICAgY2FzZSAnU1RBUlRTV0lUSCc6CiAgICAgICAgICAgIGlmKCAkdHlwZSAhPSAnUycgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHVzZSBvZiBzdHJpbmcgb3BlcmF0b3Igb24gaW50ZWdlciBjb2x1bW4gJy4kZmllbGQpOwogICAgICAgICAgICAkc3RyID0gIiRjb2x1bW4gTElLRSAiLiRidWlsZGVyLT5hcmcoJGJ1aWxkZXItPndpbGRjYXJkKCR2YWx1ZS4nKicpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnRVcnOgogICAgICAgIGNhc2UgJ0VORFNXSVRIJzoKICAgICAgICAgICAgaWYoICR0eXBlICE9ICdTJyApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdXNlIG9mIHN0cmluZyBvcGVyYXRvciBvbiBpbnRlZ2VyIGNvbHVtbiAnLiRmaWVsZCk7CiAgICAgICAgICAgICRzdHIgPSAiJGNvbHVtbiBMSUtFICIuJGJ1aWxkZXItPmFyZygkYnVpbGRlci0+d2lsZGNhcmQoJyonLiR2YWx1ZSkpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdSRUdFWFAnOgogICAgICAgICAgICBpZiggJHR5cGUgIT0gJ1MnICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB1c2Ugb2Ygc3RyaW5nIG9wZXJhdG9yIG9uIGludGVnZXIgY29sdW1uICcuJGZpZWxkKTsKICAgICAgICAgICAgJHN0ciA9ICIkY29sdW1uIFJFR0VYUCAiLiRidWlsZGVyLT5hcmcoJHZhbHVlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnQ09OVEFJTlMnOgogICAgICAgICAgICBpZiggJHR5cGUgIT0gJ1MnICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB1c2Ugb2Ygc3RyaW5nIG9wZXJhdG9yIG9uIGludGVnZXIgY29sdW1uICcuJGZpZWxkKTsKICAgICAgICAgICAgJHN0ciA9ICIkY29sdW1uIExJS0UgIi4kYnVpbGRlci0+YXJnKCRidWlsZGVyLT53aWxkY2FyZCgnKicuJHZhbHVlLicqJykpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdMSUtFJzoKICAgICAgICAgICAgaWYoICR0eXBlICE9ICdTJyApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdXNlIG9mIHN0cmluZyBvcGVyYXRvciBvbiBpbnRlZ2VyIGNvbHVtbiAnLiRmaWVsZCk7CiAgICAgICAgICAgIGlmKCBzdHJwb3MoJHZhbHVlLCcqJykgPT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgLy8gc2FtZSBhcyBjb250YWlucy4KICAgICAgICAgICAgICAgICRzdHIgPSAiJGNvbHVtbiBMSUtFICIuJGJ1aWxkZXItPmFyZygkYnVpbGRlci0+d2lsZGNhcmQoJyonLiR2YWx1ZS4nKicpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRzdHIgPSAiJGNvbHVtbiBMSUtFICIuJGJ1aWxkZXItPmFyZygkYnVpbGRlci0+d2lsZGNhcmQoJHZhbHVlKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJGV4cHIuJyBpcyBhbiBpbnZhbGlkIG9wZXJhdG9yIGZvciAnLiRmaWVsZCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHN0cjsKICAgIH0KCiAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aF9zb3J0YnkoJGlucHV0KSA6IHNlbGYKICAgIHsKICAgICAgICBpZiggIWlzX3N0cmluZygkaW5wdXQpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBzb3J0YnkgdmFsdWUnKTsKCiAgICAgICAgJG9iaiA9IGNsb25lICR0aGlzOwogICAgICAgIGlmKCBzdGFydHN3aXRoKCRpbnB1dCwnZmllbGQ6JykgKSB7CiAgICAgICAgICAgIGlmKCAhJHRoaXMtPmZpZWxkc29ydGVyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigibm8gZmllbGQgc29ydGluZyBjYWxsYmFjayBzcGVjaWZpZWQiKTsKICAgICAgICAgICAgJHNvcnRlciA9ICR0aGlzLT5maWVsZHNvcnRlcjsKICAgICAgICAgICAgaWYoICFpc19jYWxsYWJsZSgkc29ydGVyKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIm5vIGNhbGxhYmxlIGZpZWxkIHNvcnRpbmcgY2FsbGJhY2siKTsKICAgICAgICAgICAgJGlucHV0ID0gc3Vic3RyKCRpbnB1dCw2KTsKICAgICAgICAgICAgJHJlcyA9ICRzb3J0ZXIoJGlucHV0KTsKICAgICAgICAgICAgaWYoICFpc19vYmplY3QoJHJlcykgfHwgIWlzc2V0KCRyZXMtPm5ld19jb2x1bW4pIHx8ICFpc3NldCgkcmVzLT5zb3J0YnkpICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBvdXRwdXQgZnJvbSBmaWVsZCBzb3J0aW5nIGNhbGxiYWNrJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGlzc2V0KCRyZXMtPmpvaW5fY2xhdXNlKSAmJiAkcmVzLT5qb2luX2NsYXVzZSApICRvYmotPmpvaW5zW10gPSAkcmVzLT5qb2luX2NsYXVzZTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRyZXMtPm5ld19jb2x1bW4pICYmICRyZXMtPm5ld19jb2x1bW4gKSB7CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRyZXMtPm5ld19jb2x1bW4sJG9iai0+Y29sdW1ucykgKSAkb2JqLT5jb2x1bW5zW10gPSAkcmVzLT5uZXdfY29sdW1uOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRvYmotPnNvcnRieSA9ICRyZXMtPnNvcnRieTsKICAgICAgICAgICAgcmV0dXJuICRvYmo7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBzd2l0Y2goJGlucHV0KSB7CiAgICAgICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICBjYXNlICdjb21wYW55X25hbWUnOgogICAgICAgICAgICAgICAgJG9iai0+c29ydGJ5ID0gJyVUQUJMRSUuY29tcGFueV9uYW1lJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdkaXN0YW5jZSc6CiAgICAgICAgICAgICAgICAvLyByZXF1aXJlcyByYWRpdXMgYW5kIHBhcmFtZXRlcgogICAgICAgICAgICAgICAgJG9iai0+c29ydGJ5ID0gJ2Rpc3RhbmNlJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgICAgIGNhc2UgJ2FkZHJlc3MnOgogICAgICAgICAgICBjYXNlICdwaG9uZSc6CiAgICAgICAgICAgIGNhc2UgJ2ZheCc6CiAgICAgICAgICAgIGNhc2UgJ3dlYnNpdGUnOgogICAgICAgICAgICAgICAgJG9iai0+c29ydGJ5ID0gJyVUQUJMRSUuJy4kaW5wdXQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnb3duZXInOgogICAgICAgICAgICBjYXNlICdvd25lcl9pZCc6CiAgICAgICAgICAgICAgICAkb2JqLT5zb3J0YnkgPSAnJVRBQkxFJS5vd25lcl9pZCc7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICBjYXNlICdjb250YWN0X2VtYWlsJzoKICAgICAgICAgICAgICAgICRvYmotPnNvcnRieSA9ICclVEFCTEUlLmNvbnRhY3RfZW1haWwnOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2NyZWF0ZWQnOgogICAgICAgICAgICBjYXNlICdjcmVhdGVfZGF0ZSc6CiAgICAgICAgICAgICAgICAkb2JqLT5zb3J0YnkgPSAnJVRBQkxFJS5jcmVhdGVfZGF0ZSc7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnbW9kaWZpZWQnOgogICAgICAgICAgICBjYXNlICdtb2RpZmllZF9kYXRlJzoKICAgICAgICAgICAgICAgICRvYmotPnNvcnRieSA9ICclVEFCTEUlLm1vZGlmaWVkX2RhdGUnOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRpbnB1dCwkdGhpcy0+Y29sdW1ucykgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3Qgc29ydCBieSB1bmtub3duIGNvbHVtbiAnLiRpbnB1dCk7CiAgICAgICAgICAgICAgICAkb2JqLT5zb3J0YnkgPSAkaW5wdXQ7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aF9zb3J0b3JkZXIoJGlucHV0KSA6IHNlbGYKICAgIHsKICAgICAgICBpZiggIWlzX3N0cmluZygkaW5wdXQpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBzb3J0IG9yZGVyIHZhbHVlJyk7CiAgICAgICAgJGlucHV0ID0gc3RydG91cHBlcigkaW5wdXQpOwogICAgICAgIHN3aXRjaCgkaW5wdXQpIHsKICAgICAgICBjYXNlICdBU0MnOgogICAgICAgIGNhc2UgJ0RFU0MnOgogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHNvcnQgb3JkZXIgdmFsdWUnKTsKICAgICAgICB9CiAgICAgICAgJG9iaiA9IGNsb25lICR0aGlzOwogICAgICAgICRvYmotPnNvcnRvcmRlciA9ICRpbnB1dDsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aF9saW1pdChpbnQgJGxpbWl0KSA6IHNlbGYKICAgIHsKICAgICAgICBpZiggJGxpbWl0IDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgbGltaXQgaW4gcXVlcnknKTsKICAgICAgICAkb2JqID0gY2xvbmUgJHRoaXM7CiAgICAgICAgJG9iai0+bGltaXQgPSAkbGltaXQ7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhfb2Zmc2V0KGludCAkb2Zmc2V0KSA6IHNlbGYKICAgIHsKICAgICAgICBpZiggJG9mZnNldCA8IDAgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIG9mZnNldCBpbiBxdWVyeScpOwogICAgICAgICRvYmogPSBjbG9uZSAkdGhpczsKICAgICAgICAkb2JqLT5vZmZzZXQgPSAkb2Zmc2V0OwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfYW5kKGFycmF5ICRzdGF0ZW1lbnQpIDogc2VsZgogICAgewogICAgICAgIGlmKCBlbXB0eSgkc3RhdGVtZW50KSB8fCBjZ2VfYXJyYXk6OmlzX2hhc2goJHN0YXRlbWVudCkgfHwgY291bnQoJHN0YXRlbWVudCkgPCAyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkZXhwciA9ICRzdGF0ZW1lbnRbMF07CgogICAgICAgIGlmKCAhYXJyYXlfa2V5X2V4aXN0cygkZXhwciwgJHRoaXMtPmV4cHJlc3Npb25zKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgb3IgdW5rbm93biBvcGVyYW5kICcuJGV4cHIpOwoKICAgICAgICAkZnVuYyA9ICR0aGlzLT5leHByZXNzaW9uc1skZXhwcl07CiAgICAgICAgaWYoICFpc19jYWxsYWJsZSgkZnVuYykgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdoYW5kbGVyIGZvciAnLiRleHByLicgaXMgbm90IGNhbGxhYmxlJyk7CiAgICAgICAgJHJlcyA9ICRmdW5jKCRzdGF0ZW1lbnQsICR0aGlzKTsKICAgICAgICBpZiggaXNfc3RyaW5nKCRyZXMpICkgewogICAgICAgICAgICAkb2JqID0gJHRoaXMtPl9hZGRfcXVlcnlfYW5kKCRleHByLCAkcmVzKTsKICAgICAgICAgICAgcmV0dXJuICRvYmo7CiAgICAgICAgfSBlbHNlIGlmKCBpc19vYmplY3QoJHJlcykgJiYKICAgICAgICAgICAgICAgICAgICggKGlzc2V0KCRyZXMtPndoZXJlX2NsYXVzZSkgJiYgJHJlcy0+d2hlcmVfY2xhdXNlKSB8fAogICAgICAgICAgICAgICAgICAgICAoaXNzZXQoJHJlcy0+aGF2aW5nX2NsYXVzZSkgJiYgJHJlcy0+aGF2aW5nX2NsYXVzZSAmJiBpc3NldCgkcmVzLT5uZXdfY29sdW1uKSAmJiAkcmVzLT5uZXdfY29sdW1uKSApICkgewogICAgICAgICAgICAka2V5ID0gKGlzc2V0KCRyZXMtPmtleSkgJiYgaXNfc3RyaW5nKCRyZXMtPmtleSkgJiYgc3RybGVuKCRyZXMtPmtleSkpID8gdHJpbSgkcmVzLT5rZXkpIDogJGV4cHI7CiAgICAgICAgICAgICRvYmogPSBjbG9uZSAkdGhpczsKICAgICAgICAgICAgaWYoIGlzc2V0KCRyZXMtPndoZXJlX2NsYXVzZSkgKSB7CiAgICAgICAgICAgICAgICAkb2JqID0gJHRoaXMtPl9hZGRfcXVlcnlfYW5kKCRrZXksICRyZXMtPndoZXJlX2NsYXVzZSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb2JqID0gJHRoaXMtPl9hZGRfcXVlcnlfaGF2aW5nKCRrZXksICRyZXMtPmhhdmluZ19jbGF1c2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCBpc3NldCgkcmVzLT5qb2luX2NsYXVzZSkgJiYgJHJlcy0+am9pbl9jbGF1c2UgKSAkb2JqLT5qb2luc1tdID0gJHJlcy0+am9pbl9jbGF1c2U7CiAgICAgICAgICAgIGlmKCBpc3NldCgkcmVzLT5uZXdfY29sdW1uKSAmJiAkcmVzLT5uZXdfY29sdW1uICkgewogICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkcmVzLT5uZXdfY29sdW1uLCRvYmotPmNvbHVtbnMpICkgJG9iai0+Y29sdW1uc1tdID0gJHJlcy0+bmV3X2NvbHVtbjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJG9iajsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX29yKGFycmF5ICRzdGF0ZW1lbnQpIDogc2VsZgogICAgewogICAgICAgIGlmKCBlbXB0eSgkc3RhdGVtZW50KSB8fCBjZ2VfYXJyYXk6OmlzX2hhc2goJHN0YXRlbWVudCkgfHwgY291bnQoJHN0YXRlbWVudCkgPCAyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkZXhwciA9ICRzdGF0ZW1lbnRbMF07CgogICAgICAgIGlmKCAhYXJyYXlfa2V5X2V4aXN0cygkZXhwciwgJHRoaXMtPmV4cHJlc3Npb25zKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgb3IgdW5rbm93biBvcGVyYW5kICcuJGV4cHIpOwoKICAgICAgICAkZnVuYyA9ICR0aGlzLT5leHByZXNzaW9uc1skZXhwcl07CiAgICAgICAgaWYoICFpc19jYWxsYWJsZSgkZnVuYykgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdoYW5kbGVyIGZvciAnLiRleHByLicgaXMgbm90IGNhbGxhYmxlJyk7CiAgICAgICAgJHJlcyA9ICRmdW5jKCRzdGF0ZW1lbnQsICR0aGlzKTsKICAgICAgICBpZiggaXNfc3RyaW5nKCRyZXMpICkgewogICAgICAgICAgICAkb2JqID0gJHRoaXMtPl9hZGRfcXVlcnlfb3IoJHJlcyk7CiAgICAgICAgICAgIHJldHVybiAkb2JqOwogICAgICAgIH0gZWxzZSBpZiggaXNfb2JqZWN0KCRyZXMpICYmIGlzc2V0KCRyZXMtPndoZXJlX2NsYXVzZSkgJiYgJHJlcy0+d2hlcmVfY2xhdXNlICkgewogICAgICAgICAgICAkb2JqID0gY2xvbmUgJHRoaXM7CiAgICAgICAgICAgICRvYmogPSAkdGhpcy0+X2FkZF9xdWVyeV9vcigkcmVzLT53aGVyZV9jbGF1c2UpOwogICAgICAgICAgICBpZiggaXNzZXQoJHJlcy0+am9pbl9jbGF1c2UpICYmICRyZXMtPmpvaW5fY2xhdXNlICkgJG9iai0+am9pbnNbXSA9ICRyZXMtPmpvaW5fY2xhdXNlOwogICAgICAgICAgICBpZiggaXNzZXQoJHJlcy0+bmV3X2NvbHVtbikgJiYgJHJlcy0+bmV3X2NvbHVtbiApIHsKICAgICAgICAgICAgICAgIGlmKCAhaW5fYXJyYXkoJHJlcy0+bmV3X2NvbHVtbiwkb2JqLT5jb2x1bW5zKSApICRvYmotPmNvbHVtbnNbXSA9ICRyZXMtPm5ld19jb2x1bW47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRvYmo7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gdmFsaWQgcmVzdWx0cyByZXR1cm5lZCBmcm9tIGV4cHJlc3Npb24gaGFuZGxlcicpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX3N0cmluZ19zdGF0ZW1lbnQoc3RyaW5nICRzdGF0ZW1lbnQpIDogc2VsZgogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIC8vIHBhcnNlIHRoZSBhcmd1bWVudCBpbnRvIHBhcnRzCiAgICAgICAgICAgICRzdGF0ZW1lbnQgPSB0cmltKCRzdGF0ZW1lbnQpOwogICAgICAgICAgICBpZiggISRzdGF0ZW1lbnQgKSByZXR1cm4gJHRoaXM7CiAgICAgICAgICAgICRwYXJ0cyA9IHN0cl9nZXRjc3YoKHN0cmluZykkc3RhdGVtZW50LCAnOicsICciJywgJ1xcJyk7CiAgICAgICAgICAgIGlmKCBjb3VudCgkcGFydHMpIDwgMiApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ2luc3VmZmljaWVudCBwYXJ0cyBpbiBzdGF0ZW1lbnQnKTsKICAgICAgICAgICAgJHBhcnRzID0gYXJyYXlfbWFwKGZ1bmN0aW9uKCRpdGVtKXsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJpbSgkaXRlbSk7CiAgICAgICAgICAgICAgICB9LCAkcGFydHMpOwoKICAgICAgICAgICAgc3dpdGNoKCBzdHJ0b2xvd2VyKCRwYXJ0c1swXSkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2FuZCc6CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmFkZF9hbmQoYXJyYXlfc2xpY2UoJHBhcnRzLDEpKTsKCiAgICAgICAgICAgIGNhc2UgJ29yJzoKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+YWRkX29yKGFycmF5X3NsaWNlKCRwYXJ0cywxKSk7CgogICAgICAgICAgICBjYXNlICdzb3J0YnknOgogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT53aXRoX3NvcnRieShpbXBsb2RlKCc6JyxhcnJheV9zbGljZSgkcGFydHMsMSkpKTsKCiAgICAgICAgICAgIGNhc2UgJ3NvcnRvcmRlcic6CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPndpdGhfc29ydG9yZGVyKCRwYXJ0c1sxXSk7CgogICAgICAgICAgICBjYXNlICdsaW1pdCc6CiAgICAgICAgICAgICAgICAkdmFsID0gKGludCkgJHBhcnRzWzFdOwogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT53aXRoX2xpbWl0KCR2YWwpOwoKICAgICAgICAgICAgY2FzZSAnb2Zmc2V0JzoKICAgICAgICAgICAgICAgICR2YWwgPSAoaW50KSAkcGFydHNbMV07CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPndpdGhfb2Zmc2V0KCR2YWwpOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgb3BlcmFuZCAnLiRwYXJ0c1swXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgICRjbGFzcyA9IGdldF9jbGFzcygkZSk7CiAgICAgICAgICAgICRzdHIgPSAnUHJvYmxlbSBwYXJzaW5nICcuJHN0YXRlbWVudC4nIC0gJy4kZS0+R2V0TWVzc2FnZSgpOwogICAgICAgICAgICAkcmVmbGVjdGlvbk9iamVjdCA9IG5ldyBcUmVmbGVjdGlvbk9iamVjdCgkZSk7CiAgICAgICAgICAgICRyZWZsZWN0aW9uT2JqZWN0UHJvcCA9ICRyZWZsZWN0aW9uT2JqZWN0LT5nZXRQcm9wZXJ0eSgnbWVzc2FnZScpOwogICAgICAgICAgICAkcmVmbGVjdGlvbk9iamVjdFByb3AtPnNldEFjY2Vzc2libGUodHJ1ZSk7CiAgICAgICAgICAgICRyZWZsZWN0aW9uT2JqZWN0UHJvcC0+c2V0VmFsdWUoJGUsICRzdHIpOwogICAgICAgICAgICAkcmVmbGVjdGlvbk9iamVjdFByb3AtPnNldEFjY2Vzc2libGUoZmFsc2UpOwogICAgICAgICAgICB0aHJvdyAkZTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGJ1aWxkKCkgOiBTcWxRdWVyeQogICAgewogICAgICAgIC8vIHZhbGlkYXRlIHRoZSBzb3J0YnkuLi4gc29tZSBvZiB0aGVtIHJlcXVpcmUgdGhhdCB3ZSBoYXZlIGNlcnRhaW4gYW5kIGNvbmRpdGlvbnMgc3BlY2lmaWVkCiAgICAgICAgLy8gaWYoICR0aGlzLT5zb3J0YnkgPT0gJ2Rpc3RhbmNlJyAmJiAhYXJyYXlfa2V5X2V4aXN0cygncmFkaXVzJywgJHRoaXMtPmhhdmluZykgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3Qgc29ydCBieSBkaXN0YW5jZSBpbiBhIHF1ZXJ5IHdpdGhvdXQgc3BlY2lmeWluZyBhIHJhZGl1cyBhcmd1bWVudCcpOwoKICAgICAgICAvLyBTRUxFQ1QgKkNPTFVNTlMgRlJPTSAqVEFCTEUgW0pPSU5TXSAoV0hFUkUgQU5EX09QVDEgQU5EIEFORF9PUFRfMiBBTkQgKE9SX09QVDEgT1IgT1JfT1BUMikgT1JERVIgQlkgU09SVEJZIFNPUlRPUkRFUiBMSU1JVCBYIE9GRlNFVCBZCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgU1FMX0NBTENfRk9VTkRfUk9XUyAnLmltcGxvZGUoJywgJywkdGhpcy0+Y29sdW1ucykuJyBGUk9NICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzICVUQUJMRSUnOwogICAgICAgIGlmKCAhZW1wdHkoJHRoaXMtPmpvaW5zKSApIHsKICAgICAgICAgICAgJHNxbCAuPSAnICcgLiBpbXBsb2RlKCcgJywkdGhpcy0+am9pbnMpOwogICAgICAgIH0KICAgICAgICBpZiggIWVtcHR5KCR0aGlzLT5hbmQpIHx8ICFlbXB0eSgkdGhpcy0+b3IpICkgewogICAgICAgICAgICAkc3FsIC49ICcgV0hFUkUgJzsKICAgICAgICAgICAgaWYoICFlbXB0eSgkdGhpcy0+YW5kKSApIHsKICAgICAgICAgICAgICAgICRzcWwgLj0gaW1wbG9kZSgnIEFORCAnLGFycmF5X3ZhbHVlcygkdGhpcy0+YW5kKSk7CiAgICAgICAgICAgICAgICBpZiggIWVtcHR5KCR0aGlzLT5vcikgKSAkc3FsIC49ICcgQU5EICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICFlbXB0eSgkdGhpcy0+b3IpICkgewogICAgICAgICAgICAgICAgJHNxbCAuPSAnKCcgLiBpbXBsb2RlKCcgT1IgJyxhcnJheV92YWx1ZXMoJHRoaXMtPm9yKSkuICcpJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiggIWVtcHR5KCR0aGlzLT5oYXZpbmcpICkgewogICAgICAgICAgICAkc3FsIC49ICcgSEFWSU5HICc7CiAgICAgICAgICAgICRzcWwgLj0gaW1wbG9kZSgnIEFORCAnLGFycmF5X3ZhbHVlcygkdGhpcy0+aGF2aW5nKSk7CiAgICAgICAgfQogICAgICAgICRzcWwgLj0gJyBPUkRFUiBCWSAnLiR0aGlzLT5zb3J0Ynk7CiAgICAgICAgJHNxbCAuPSAnICcgLiAkdGhpcy0+c29ydG9yZGVyOwogICAgICAgICRzcWwgLj0gJyBMSU1JVCAnLiR0aGlzLT5saW1pdDsKICAgICAgICAkc3FsIC49ICcgT0ZGU0VUICcuJHRoaXMtPm9mZnNldDsKCiAgICAgICAgJHNxbCA9IHN0cl9yZXBsYWNlKCclVEFCTEUlJywgJ0NEXycsICRzcWwpOwogICAgICAgIHJldHVybiBuZXcgU3FsUXVlcnkoJHNxbCwgJHRoaXMtPm9mZnNldCwgJHRoaXMtPmxpbWl0KTsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_jquery_upload_handler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICogalF1ZXJ5IEZpbGUgVXBsb2FkIFBsdWdpbiBQSFAgRXhhbXBsZSA1LjUKICogaHR0cHM6Ly9naXRodWIuY29tL2JsdWVpbXAvalF1ZXJ5LUZpbGUtVXBsb2FkCiAqCiAqIENvcHlyaWdodCAyMDEwLCBTZWJhc3RpYW4gVHNjaGFuCiAqIGh0dHBzOi8vYmx1ZWltcC5uZXQKICoKICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlOgogKiBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAogKi8KZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKYWJzdHJhY3QgY2xhc3MgY2RfanF1ZXJ5X3VwbG9hZF9oYW5kbGVyCnsKICAgIHByb3RlY3RlZCAkb3B0aW9uczsKCiAgICBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkb3B0aW9ucz1udWxsKSB7CiAgICAgICAgJHRoaXMtPm9wdGlvbnMgPSBhcnJheSgKICAgICAgICAgICAgJ3NjcmlwdF91cmwnID0+ICR0aGlzLT5nZXRGdWxsVXJsKCkuJy8nLmJhc2VuYW1lKF9fRklMRV9fKSwKICAgICAgICAgICAgJ3VwbG9hZF9kaXInID0+IF9fRElSX18uJy9maWxlcy8nLAogICAgICAgICAgICAndXBsb2FkX3VybCcgPT4gJHRoaXMtPmdldEZ1bGxVcmwoKS4nL2ZpbGVzLycsCiAgICAgICAgICAgICdwYXJhbV9uYW1lJyA9PiAnZmlsZXMnLAogICAgICAgICAgICAvLyBUaGUgcGhwLmluaSBzZXR0aW5ncyB1cGxvYWRfbWF4X2ZpbGVzaXplIGFuZCBwb3N0X21heF9zaXplCiAgICAgICAgICAgIC8vIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBmb2xsb3dpbmcgbWF4X2ZpbGVfc2l6ZSBzZXR0aW5nOgogICAgICAgICAgICAnbWF4X2ZpbGVfc2l6ZScgPT4gbnVsbCwKICAgICAgICAgICAgJ21pbl9maWxlX3NpemUnID0+IDEsCiAgICAgICAgICAgICdhY2NlcHRfZmlsZV90eXBlcycgPT4gJy8uKyQvaScsCiAgICAgICAgICAgICdtYXhfbnVtYmVyX29mX2ZpbGVzJyA9PiBudWxsLAogICAgICAgICAgICAvLyBTZXQgdGhlIGZvbGxvd2luZyBvcHRpb24gdG8gZmFsc2UgdG8gZW5hYmxlIG5vbi1tdWx0aXBhcnQgdXBsb2FkczoKICAgICAgICAgICAgJ2Rpc2NhcmRfYWJvcnRlZF91cGxvYWRzJyA9PiBmYWxzZQogICAgICAgICAgICApOwogICAgICAgIGlmIChpc19hcnJheSgkb3B0aW9ucykgJiYgY291bnQoJG9wdGlvbnMpKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRvcHRpb25zIGFzICRrZXkgPT4gJHZhbHVlICkgewogICAgICAgICAgICAgICAgJHRoaXMtPm9wdGlvbnNbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gZ2V0RnVsbFVybCgpIHsKICAgICAgCXJldHVybgogICAgICAgICAgICAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJ2h0dHBzOi8vJyA6ICdodHRwOi8vJykuCiAgICAgICAgICAgIChpc3NldCgkX1NFUlZFUlsnUkVNT1RFX1VTRVInXSkgPyAkX1NFUlZFUlsnUkVNT1RFX1VTRVInXS4nQCcgOiAnJykuCiAgICAgICAgICAgIChpc3NldCgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pID8gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIDogKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBTJ10pICYmICRfU0VSVkVSWydTRVJWRVJfUE9SVCddID09PSA0NDMgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfU0VSVkVSWydTRVJWRVJfUE9SVCddID09PSA4MCA/ICcnIDogJzonLiRfU0VSVkVSWydTRVJWRVJfUE9SVCddKSkpLgogICAgICAgICAgICBzdWJzdHIoJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ10sMCwgc3RycnBvcygkX1NFUlZFUlsnU0NSSVBUX05BTUUnXSwgJy8nKSk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRfZmlsZV9vYmplY3QoJGZpbGVfbmFtZSkgewogICAgICAgICRmaWxlX3BhdGggPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX2RpciddLiRmaWxlX25hbWU7CiAgICAgICAgaWYgKGlzX2ZpbGUoJGZpbGVfcGF0aCkgJiYgJGZpbGVfbmFtZVswXSAhPT0gJy4nKSB7CiAgICAgICAgICAgICRmaWxlID0gbmV3IFxzdGRDbGFzcygpOwogICAgICAgICAgICAkZmlsZS0+bmFtZSA9ICRmaWxlX25hbWU7CiAgICAgICAgICAgICRmaWxlLT5zaXplID0gZmlsZXNpemUoJGZpbGVfcGF0aCk7CiAgICAgICAgICAgICRmaWxlLT51cmwgPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX3VybCddLnJhd3VybGVuY29kZSgkZmlsZS0+bmFtZSk7CiAgICAgICAgICAgICRmaWxlLT5kZWxldGVfdXJsID0gJHRoaXMtPm9wdGlvbnNbJ3NjcmlwdF91cmwnXQogICAgICAgICAgICAgICAgLic/ZmlsZT0nLnJhd3VybGVuY29kZSgkZmlsZS0+bmFtZSk7CiAgICAgICAgICAgICRmaWxlLT5kZWxldGVfdHlwZSA9ICdERUxFVEUnOwogICAgICAgICAgICByZXR1cm4gJGZpbGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gZ2V0X2ZpbGVfb2JqZWN0cygpIHsKICAgICAgICByZXR1cm4gYXJyYXlfdmFsdWVzKGFycmF5X2ZpbHRlcihhcnJheV9tYXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFskdGhpcywgJ2dldF9maWxlX29iamVjdCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FuZGlyKCR0aGlzLT5vcHRpb25zWyd1cGxvYWRfZGlyJ10pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpKTsKICAgIH0KCiAgICAvLyB0aGlzIGlzIHRoZSBjYWxsYmFjayB0aGF0IGhhbmRsZXMgY2hlY2tpbmcgdGhhdCB0aGUgZmlsZSBpcyBhY2NlcHRhYmxlIHRvIHVwbG9hZAogICAgLy8gcmV0dXJuIHN0cmluZyBvciBudWxsCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaGFzX2Vycm9yKHN0cmluZyAkdXBsb2FkZWRfZmlsZSwgb2JqZWN0ICRmaWxlLCAkZXJyb3IsIGludCAkdG90YWxfc2l6ZSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRlcnJvcikgcmV0dXJuICRlcnJvcjsKICAgICAgICBpZiAoIXByZWdfbWF0Y2goJHRoaXMtPm9wdGlvbnNbJ2FjY2VwdF9maWxlX3R5cGVzJ10sICRmaWxlLT5uYW1lKSkgcmV0dXJuICdhY2NlcHRGaWxlVHlwZXMnOwogICAgICAgIGlmICgkdXBsb2FkZWRfZmlsZSAmJiBpc191cGxvYWRlZF9maWxlKCR1cGxvYWRlZF9maWxlKSkgewogICAgICAgICAgICAkZmlsZV9zaXplID0gZmlsZXNpemUoJHVwbG9hZGVkX2ZpbGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRmaWxlX3NpemUgPSAkX1NFUlZFUlsnQ09OVEVOVF9MRU5HVEgnXTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydtYXhfZmlsZV9zaXplJ10gJiYgKAogICAgICAgICAgICAgICAgJGZpbGVfc2l6ZSA+ICR0aGlzLT5vcHRpb25zWydtYXhfZmlsZV9zaXplJ10gfHwKICAgICAgICAgICAgICAgICRmaWxlLT5zaXplID4gJHRoaXMtPm9wdGlvbnNbJ21heF9maWxlX3NpemUnXSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgIHJldHVybiAnbWF4RmlsZVNpemUnOwogICAgICAgIH0KICAgICAgICBpZiggJHRoaXMtPm9wdGlvbnNbJ21heF9maWxlX3NpemUnXSAmJiAkdG90YWxfc2l6ZSAmJiAkdG90YWxfc2l6ZSA+ICR0aGlzLT5vcHRpb25zWydtYXhfZmlsZV9zaXplJ10gKSB7CiAgICAgICAgICAgIHJldHVybiAnbWF4RmlsZVNpemUnOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ21pbl9maWxlX3NpemUnXSAmJgogICAgICAgICAgICAkZmlsZV9zaXplIDwgJHRoaXMtPm9wdGlvbnNbJ21pbl9maWxlX3NpemUnXSkgewogICAgICAgICAgICByZXR1cm4gJ21pbkZpbGVTaXplJzsKICAgICAgICB9CiAgICAgICAgaWYgKGlzX2ludCgkdGhpcy0+b3B0aW9uc1snbWF4X251bWJlcl9vZl9maWxlcyddKSAmJiAoCiAgICAgICAgICAgICAgICBjb3VudCgkdGhpcy0+Z2V0X2ZpbGVfb2JqZWN0cygpKSA+PSAkdGhpcy0+b3B0aW9uc1snbWF4X251bWJlcl9vZl9maWxlcyddKQogICAgICAgICAgICApIHsKICAgICAgICAgICAgcmV0dXJuICdtYXhOdW1iZXJPZkZpbGVzJzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRlcnJvcjsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRqdXN0X2ZpbGVuYW1lKCRuYW1lLCAkdHlwZSkgewogICAgICAgIC8vIFJlbW92ZSBwYXRoIGluZm9ybWF0aW9uIGFuZCBkb3RzIGFyb3VuZCB0aGUgZmlsZW5hbWUsIHRvIHByZXZlbnQgdXBsb2FkaW5nCiAgICAgICAgLy8gaW50byBkaWZmZXJlbnQgZGlyZWN0b3JpZXMgb3IgcmVwbGFjaW5nIGhpZGRlbiBzeXN0ZW0gZmlsZXMuCiAgICAgICAgLy8gQWxzbyByZW1vdmUgY29udHJvbCBjaGFyYWN0ZXJzIGFuZCBzcGFjZXMgKFx4MDAuLlx4MjApIGFyb3VuZCB0aGUgZmlsZW5hbWU6CiAgICAgICAgJGZpbGVfbmFtZSA9IHRyaW0oYmFzZW5hbWUoc3RyaXBzbGFzaGVzKCRuYW1lKSksICIuXHgwMC4uXHgyMCIpOwogICAgICAgIC8qCiAgICAgICAgLy8gQWRkIG1pc3NpbmcgZmlsZSBleHRlbnNpb24gZm9yIGtub3duIGltYWdlIHR5cGVzOgogICAgICAgIGlmIChzdHJwb3MoJGZpbGVfbmFtZSwgJy4nKSA9PT0gZmFsc2UgJiYKICAgICAgICAgICAgcHJlZ19tYXRjaCgnL15pbWFnZVwvKGdpZnxqcGU/Z3xwbmcpLycsICR0eXBlLCAkbWF0Y2hlcykpIHsKICAgICAgICAgICAgJGZpbGVfbmFtZSAuPSAnLicuJG1hdGNoZXNbMV07CiAgICAgICAgfQogICAgICAgICovCiAgICAgICAgcmV0dXJuICRmaWxlX25hbWU7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFmdGVyX3VwbG9hZGVkX2ZpbGUoJGZpbGVvYmplY3QpIHt9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBoYW5kbGVfZmlsZV91cGxvYWQoJHVwbG9hZGVkX2ZpbGUsICRuYW1lLCAkc2l6ZSwgJHR5cGUsICRlcnJvciwgJG1heHNpemUgPSBudWxsKSB7CiAgICAgICAgJGZpbGUgPSBuZXcgXHN0ZENsYXNzKCk7CiAgICAgICAgJGZpbGUtPm5hbWUgPSAkdGhpcy0+YWRqdXN0X2ZpbGVuYW1lKCRuYW1lLCAkdHlwZSk7CiAgICAgICAgJGZpbGUtPnNpemUgPSBpbnR2YWwoJHNpemUpOwogICAgICAgICRmaWxlLT50eXBlID0gJHR5cGU7CiAgICAgICAgJGVycm9yID0gJHRoaXMtPmhhc19lcnJvcigkdXBsb2FkZWRfZmlsZSwgJGZpbGUsICRlcnJvciwgJG1heHNpemUpOwogICAgICAgIGlmICghJGVycm9yICYmICRmaWxlLT5uYW1lKSB7CiAgICAgICAgICAgICRmaWxlX3BhdGggPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX2RpciddLiRmaWxlLT5uYW1lOwogICAgICAgICAgICBAbWtkaXIoJHRoaXMtPm9wdGlvbnNbJ3VwbG9hZF9kaXInXSwwNzc3LFRSVUUpOwogICAgICAgICAgICAkdG1wID0gKGlzX2ZpbGUoJGZpbGVfcGF0aCkpP2ZpbGVzaXplKCRmaWxlX3BhdGgpOjA7CiAgICAgICAgICAgICRhcHBlbmRfZmlsZSA9ICEkdGhpcy0+b3B0aW9uc1snZGlzY2FyZF9hYm9ydGVkX3VwbG9hZHMnXSAmJgogICAgICAgICAgICAgICAgaXNfZmlsZSgkZmlsZV9wYXRoKSAmJiAkbWF4c2l6ZSAmJiAkbWF4c2l6ZSA+IGZpbGVzaXplKCRmaWxlX3BhdGgpOwogICAgICAgICAgICBjbGVhcnN0YXRjYWNoZSgpOwogICAgICAgICAgICBpZiAoJHVwbG9hZGVkX2ZpbGUgJiYgaXNfdXBsb2FkZWRfZmlsZSgkdXBsb2FkZWRfZmlsZSkpIHsKICAgICAgICAgICAgICAgIC8vIG11bHRpcGFydC9mb3JtZGF0YSB1cGxvYWRzIChQT1NUIG1ldGhvZCB1cGxvYWRzKQogICAgICAgICAgICAgICAgaWYgKCRhcHBlbmRfZmlsZSkgewogICAgICAgICAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKAogICAgICAgICAgICAgICAgICAgICAgICAkZmlsZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICBmb3BlbigkdXBsb2FkZWRfZmlsZSwgJ3InKSwKICAgICAgICAgICAgICAgICAgICAgICAgRklMRV9BUFBFTkQKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbW92ZV91cGxvYWRlZF9maWxlKCR1cGxvYWRlZF9maWxlLCAkZmlsZV9wYXRoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIE5vbi1tdWx0aXBhcnQgdXBsb2FkcyAoUFVUIG1ldGhvZCBzdXBwb3J0KQogICAgICAgICAgICAgICAgZmlsZV9wdXRfY29udGVudHMoCiAgICAgICAgICAgICAgICAgICAgJGZpbGVfcGF0aCwKICAgICAgICAgICAgICAgICAgICBmb3BlbigncGhwOi8vaW5wdXQnLCAncicpLAogICAgICAgICAgICAgICAgICAgICRhcHBlbmRfZmlsZSA/IEZJTEVfQVBQRU5EIDogMAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGZpbGVfc2l6ZSA9IGZpbGVzaXplKCRmaWxlX3BhdGgpOwogICAgICAgICAgICBpZiAoJGZpbGVfc2l6ZSA9PT0gJGZpbGUtPnNpemUpIHsKICAgICAgICAgICAgICAgICRmaWxlLT51cmwgPSAkdGhpcy0+b3B0aW9uc1sndXBsb2FkX3VybCddLnJhd3VybGVuY29kZSgkZmlsZS0+bmFtZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoJHRoaXMtPm9wdGlvbnNbJ2Rpc2NhcmRfYWJvcnRlZF91cGxvYWRzJ10pIHsKICAgICAgICAgICAgICAgIHVubGluaygkZmlsZV9wYXRoKTsKICAgICAgICAgICAgICAgICRmaWxlLT5lcnJvciA9ICdhYm9ydCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGZpbGUtPnNpemUgPSAkZmlsZV9zaXplOwogICAgICAgICAgICAkZmlsZS0+ZGVsZXRlX3VybCA9ICR0aGlzLT5vcHRpb25zWydzY3JpcHRfdXJsJ10KICAgICAgICAgICAgICAgIC4nP2ZpbGU9Jy5yYXd1cmxlbmNvZGUoJGZpbGUtPm5hbWUpOwogICAgICAgICAgICAkZmlsZS0+ZGVsZXRlX3R5cGUgPSAnREVMRVRFJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZmlsZS0+ZXJyb3IgPSAkZXJyb3I7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkZmlsZTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0KCkgewogICAgICAgICRmaWxlX25hbWUgPSBpc3NldCgkX1JFUVVFU1RbJ2ZpbGUnXSkgPwogICAgICAgICAgICBiYXNlbmFtZShzdHJpcHNsYXNoZXMoJF9SRVFVRVNUWydmaWxlJ10pKSA6IG51bGw7CiAgICAgICAgaWYgKCRmaWxlX25hbWUpIHsKICAgICAgICAgICAgJGluZm8gPSAkdGhpcy0+Z2V0X2ZpbGVfb2JqZWN0KCRmaWxlX25hbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRpbmZvID0gJHRoaXMtPmdldF9maWxlX29iamVjdHMoKTsKICAgICAgICB9CiAgICAgICAgaGVhZGVyKCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsKICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRpbmZvKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcG9zdCgpIHsKICAgICAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydfbWV0aG9kJ10pICYmICRfUkVRVUVTVFsnX21ldGhvZCddID09PSAnREVMRVRFJykgcmV0dXJuICR0aGlzLT5kZWxldGUoKTsKICAgICAgICAkbWF4ZmlsZXNpemUgPSBudWxsOwogICAgICAgIGlmKCBpc3NldCgkX1NFUlZFUlsnSFRUUF9DT05URU5UX1JBTkdFJ10pICkgewogICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnLycsJF9TRVJWRVJbJ0hUVFBfQ09OVEVOVF9SQU5HRSddLDIpOwogICAgICAgICAgICBpZiggY291bnQoJHRtcCkgPT0gMiApIHsKICAgICAgICAgICAgICAgICRzaXplID0gKGludCkgJHRtcFsxXTsKICAgICAgICAgICAgICAgIGlmKCAkc2l6ZSA+IDAgKSAkbWF4ZmlsZXNpemUgPSAkc2l6ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdXBsb2FkID0gaXNzZXQoJF9GSUxFU1skdGhpcy0+b3B0aW9uc1sncGFyYW1fbmFtZSddXSkgPyAgJF9GSUxFU1skdGhpcy0+b3B0aW9uc1sncGFyYW1fbmFtZSddXSA6IG51bGw7CiAgICAgICAgJGluZm8gPSBhcnJheSgpOwogICAgICAgIGlmICgkdXBsb2FkICYmIGlzX2FycmF5KCR1cGxvYWRbJ3RtcF9uYW1lJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCR1cGxvYWRbJ3RtcF9uYW1lJ10gYXMgJGluZGV4ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5oYW5kbGVfZmlsZV91cGxvYWQoCiAgICAgICAgICAgICAgICAgICAgJHVwbG9hZFsndG1wX25hbWUnXVskaW5kZXhdLAogICAgICAgICAgICAgICAgICAgIGlzc2V0KCRfU0VSVkVSWydIVFRQX1hfRklMRV9OQU1FJ10pID8KICAgICAgICAgICAgICAgICAgICAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddIDogJHVwbG9hZFsnbmFtZSddWyRpbmRleF0sCiAgICAgICAgICAgICAgICAgICAgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1NJWkUnXSkgPwogICAgICAgICAgICAgICAgICAgICRfU0VSVkVSWydIVFRQX1hfRklMRV9TSVpFJ10gOiAkdXBsb2FkWydzaXplJ11bJGluZGV4XSwKICAgICAgICAgICAgICAgICAgICBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfVFlQRSddKSA/CiAgICAgICAgICAgICAgICAgICAgJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1RZUEUnXSA6ICR1cGxvYWRbJ3R5cGUnXVskaW5kZXhdLAogICAgICAgICAgICAgICAgICAgICR1cGxvYWRbJ2Vycm9yJ11bJGluZGV4XSwKICAgICAgICAgICAgICAgICAgICAkbWF4ZmlsZXNpemUKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJHRoaXMtPmFmdGVyX3VwbG9hZGVkX2ZpbGUoJHJlcyk7CgogICAgICAgICAgICAgICAgJGluZm9bXSA9ICRyZXM7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2VpZiAoJHVwbG9hZCB8fCBpc3NldCgkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddKSkgewogICAgICAgICAgICAkcmVzID0gJHRoaXMtPmhhbmRsZV9maWxlX3VwbG9hZCgKICAgICAgICAgICAgICAgIGlzc2V0KCR1cGxvYWRbJ3RtcF9uYW1lJ10pID8gJHVwbG9hZFsndG1wX25hbWUnXSA6IG51bGwsCiAgICAgICAgICAgICAgICAvL2lzc2V0KCRfU0VSVkVSWydIVFRQX1hfRklMRV9OQU1FJ10pID8gJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX05BTUUnXSA6IChpc3NldCgkdXBsb2FkWyduYW1lJ10pID8gaXNzZXQoJHVwbG9hZFsnbmFtZSddKSA6IG51bGwpLAogICAgICAgICAgICAgICAgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX05BTUUnXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddIDogJHVwbG9hZFsnbmFtZSddLAogICAgICAgICAgICAgICAgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1NJWkUnXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfU0laRSddIDogJHVwbG9hZFsnc2l6ZSddLAogICAgICAgICAgICAgICAgaXNzZXQoJF9TRVJWRVJbJ0hUVFBfWF9GSUxFX1RZUEUnXSkgPyAkX1NFUlZFUlsnSFRUUF9YX0ZJTEVfVFlQRSddIDogJHVwbG9hZFsndHlwZSddLAogICAgICAgICAgICAgICAgaXNzZXQoJHVwbG9hZFsnZXJyb3InXSkgPyAkdXBsb2FkWydlcnJvciddIDogbnVsbCwKICAgICAgICAgICAgICAgICRtYXhmaWxlc2l6ZQogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgJHRoaXMtPmFmdGVyX3VwbG9hZGVkX2ZpbGUoJHJlcyk7CiAgICAgICAgICAgICRpbmZvW10gPSAkcmVzOwogICAgICAgIH0KCiAgICAgICAgLy8gY2FsZ3V5CiAgICAgICAgaWYoIGVtcHR5KCRpbmZvKSApIHJldHVybjsKICAgICAgICBpZiggY291bnQoJGluZm8pID09IDEgJiYgaXNzZXQoJGluZm9bMF0tPmVycm9yKSApIHsKICAgICAgICAgICAgIGhlYWRlcigiSFRUUC8xLjAgNDAwICIuJGluZm9bMF0tPmVycm9yKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAvLyBjYWxndXkKCiAgICAgICAgaGVhZGVyKCdWYXJ5OiBBY2NlcHQnKTsKICAgICAgICAkanNvbiA9IGpzb25fZW5jb2RlKCRpbmZvKTsKICAgICAgICAkcmVkaXJlY3QgPSBpc3NldCgkX1JFUVVFU1RbJ3JlZGlyZWN0J10pID8KICAgICAgICAgICAgc3RyaXBzbGFzaGVzKCRfUkVRVUVTVFsncmVkaXJlY3QnXSkgOiBudWxsOwogICAgICAgIGlmICgkcmVkaXJlY3QpIHsKICAgICAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJy5zcHJpbnRmKCRyZWRpcmVjdCwgcmF3dXJsZW5jb2RlKCRqc29uKSkpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChpc3NldCgkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgJiYKICAgICAgICAgICAgKHN0cnBvcygkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSwgJ2FwcGxpY2F0aW9uL2pzb24nKSAhPT0gZmFsc2UpKSB7CiAgICAgICAgICAgIGhlYWRlcignQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uJyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGVhZGVyKCdDb250ZW50LXR5cGU6IHRleHQvcGxhaW4nKTsKICAgICAgICB9CiAgICAgICAgZWNobyAkanNvbjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKCkgewogICAgICAgICRmaWxlX25hbWUgPSBpc3NldCgkX1JFUVVFU1RbJ2ZpbGUnXSkgPyBiYXNlbmFtZShzdHJpcHNsYXNoZXMoJF9SRVFVRVNUWydmaWxlJ10pKSA6IG51bGw7CiAgICAgICAgJGZpbGVfcGF0aCA9ICR0aGlzLT5vcHRpb25zWyd1cGxvYWRfZGlyJ10uJGZpbGVfbmFtZTsKICAgICAgICAkc3VjY2VzcyA9IGlzX2ZpbGUoJGZpbGVfcGF0aCkgJiYgJGZpbGVfbmFtZVswXSAhPT0gJy4nICYmIHVubGluaygkZmlsZV9wYXRoKTsKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbicpOwogICAgICAgIGVjaG8ganNvbl9lbmNvZGUoJHN1Y2Nlc3MpOwogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3NzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.cd_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKdXNlIENvbXBhbnlEaXJlY3Rvcnlcc2V0dGluZ3M7CnVzZSBDb21wYW55RGlyZWN0b3J5XElDYXRlZ29yeU1hbmFnZXI7CgpmaW5hbCBjbGFzcyBjZF91dGlscwp7CiAgICBwcml2YXRlICRjYXRlZ29yeV9tZ3I7CiAgICBwcml2YXRlICRtb2Q7CiAgICBwcml2YXRlICRzZXR0aW5nczsKICAgIHByaXZhdGUgc3RhdGljICRfaW5zdGFuY2U7CgogICAgcHJpdmF0ZSBzdGF0aWMgJF9yb3V0ZXNfbG9hZGVkID0gRkFMU0U7CiAgICBwcml2YXRlIHN0YXRpYyAkX2NhdGVnb3JpZXM7CiAgICBwcml2YXRlIHN0YXRpYyAkX2ZpZWxkZGVmczsKICAgIHByaXZhdGUgc3RhdGljICRfZmllbGRpbmZvX3ByZWxvYWQ7CiAgICBwcml2YXRlIHN0YXRpYyAkX2dlb2xvY2F0b3I7CiAgICBwcml2YXRlIHN0YXRpYyAkX2hpZXJhcmNoeTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoQ29tcGFueURpcmVjdG9yeSAkbW9kLCBJQ2F0ZWdvcnlNYW5hZ2VyICRjYXRtLCBzZXR0aW5ncyAkc2V0dGluZ3MpCiAgICB7CiAgICAgICAgaWYoIHNlbGY6OiRfaW5zdGFuY2UgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdPbmx5IG9uZSBpbnN0YW5jZSBvZiAnLl9fQ0xBU1NfXy4nIGlzIGFsbG93ZWQnKTsKICAgICAgICBzZWxmOjokX2luc3RhbmNlID0gJHRoaXM7CiAgICAgICAgJHRoaXMtPm1vZCA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPmNhdGVnb3J5X21nciA9ICRjYXRtOwogICAgICAgICR0aGlzLT5zZXR0aW5ncyA9ICRzZXR0aW5nczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIGdldF9pbnN0YW5jZSgpIDogY2RfdXRpbHMKICAgIHsKICAgICAgICBpZiggIXNlbGY6OiRfaW5zdGFuY2UgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBpbnN0YW5jZSBvZiAnLl9fQ0xBU1NfXyk7CiAgICAgICAgcmV0dXJuIHNlbGY6OiRfaW5zdGFuY2U7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gbG9hZF9yb3V0ZXMoKQogICAgewogICAgICAgIGlmKCBzZWxmOjokX3JvdXRlc19sb2FkZWQgKSByZXR1cm47CiAgICAgICAgY21zX3JvdXRlX21hbmFnZXI6OmxvYWRfcm91dGVzKCk7CiAgICAgICAgc2VsZjo6JF9yb3V0ZXNfbG9hZGVkID0gVFJVRTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHNtYXJ0eV9oaWVyYnJlYWRjcnVtYigkcGFyYW1zLCRzbWFydHkpCiAgICB7CiAgICAgICAgJG1vZCA9IHNlbGY6OmdldF9pbnN0YW5jZSgpLT5tb2Q7CiAgICAgICAgJGRlbGltaXRlciA9ICcgfCAnOwogICAgICAgICRyYXcgPSAwOwogICAgICAgICRoaWVyID0gLTE7CiAgICAgICAgJHBhZ2UgPSAkc21hcnR5LT5nZXRfdGVtcGxhdGVfdmFycygncGFnZV9pZCcpOwogICAgICAgICRjbGFzcyA9IG51bGw7CiAgICAgICAgJGFzc2lnbiA9IG51bGw7CiAgICAgICAgJHVybHBhcm1zID0gYXJyYXkoKTsKCiAgICAgICAgZm9yZWFjaCggJHBhcmFtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgICBjYXNlICdyYXcnOgogICAgICAgICAgICAgICAgJHJhdyA9IGNtc190b19ib29sKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnaGllcic6CiAgICAgICAgICAgICAgICAkaGllciA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2RlbGltJzoKICAgICAgICAgICAgICAgICRkZWxpbWl0ZXIgPSAkdmFsdWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnY2xhc3MnOgogICAgICAgICAgICAgICAgJGNsYXNzID0gJHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2Fzc2lnbic6CiAgICAgICAgICAgICAgICAkYXNzaWduID0gJHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3BhZ2UnOgogICAgICAgICAgICAgICAgJHBhZ2UgPSAoaW50KSRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHZhbHVlLCRwYWdlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgJHVybHBhcm1zWyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCAkaGllciA8IDEgKSByZXR1cm47CiAgICAgICAgaWYoICRwYWdlIDwgMSApIHJldHVybjsgLy8gbm90aGluZyB0byBsaW5rIHRvLgoKICAgICAgICAvLyBnZXQgdGhlIGNvbXBsZXRlIHBhdGggdG8gdGhpcyBoaWVyYXJjaHkuCiAgICAgICAgJGhpZXJkYXRhID0gc2VsZjo6Z2V0X2hpZXJhcmNoeSgpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJGhpZXJkYXRhKSB8fCBjb3VudCgkaGllcmRhdGEpID09IDAgKSByZXR1cm47CgogICAgICAgICRkYXRhID0gYXJyYXkoKTsKICAgICAgICAkZm4gPSBmdW5jdGlvbigkaWQpIHVzZSAoJGhpZXJkYXRhLCYkZGF0YSwmJGZuLCYkbW9kLCRwYWdlLCR1cmxwYXJtcykgewogICAgICAgICAgICBmb3JlYWNoKCAkaGllcmRhdGEgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgIGlmKCAkb25lWydpZCddID09ICRpZCApIHsKICAgICAgICAgICAgICAgICAgICAvLyBmb3VuZCB0aGUgaXRlbS4uIGJ1aWxkIHRoZSB1cmwKICAgICAgICAgICAgICAgICAgICAkdXJscGFybXNbJ2hpZXInXSA9ICRpZDsKICAgICAgICAgICAgICAgICAgICAkb25lWyd1cmwnXSA9ICRtb2QtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCdkZWZhdWx0JywkcGFnZSwkdXJscGFybXMpOwogICAgICAgICAgICAgICAgICAgIGFycmF5X3Vuc2hpZnQoJGRhdGEsJG9uZSk7IC8vIHB1c2ggdGhpcyBpdGVtIHRvIHRoZSBmcm9udCBvZiB0aGUgbGlzdC4KICAgICAgICAgICAgICAgICAgICBpZiggJG9uZVsncGFyZW50X2lkJ10gIT0gLTEgKSAkZm4oJG9uZVsncGFyZW50X2lkJ10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICAkZm4oJGhpZXIpOwoKICAgICAgICBpZiggY291bnQoJGRhdGEpID09IDAgKSByZXR1cm47CgogICAgICAgIC8vIG5vdyBoYXZlIHRvIGRlY2lkZSBvbiBvdXRwdXQgZm9ybWF0LgogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGlmKCAkcmF3ID09IEZBTFNFICkgewogICAgICAgICAgICAvLyBoYXZlIHRvIGJ1aWxkIGxpbmtzLgogICAgICAgICAgICAkYWRkdGV4dCA9ICcnOwogICAgICAgICAgICBpZiggJGNsYXNzICkgJGFkZHRleHQ9JyBjbGFzcz0iJy4kY2xhc3MuJyInOwogICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICR0bXBbXSA9ICc8YSBocmVmPSInLiRvbmVbJ3VybCddLiciJy4kYWRkdGV4dC4nPicuJG9uZVsnbmFtZSddLic8L2E+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkb3V0ID0gaW1wbG9kZSgkZGVsaW1pdGVyLCR0bXApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJG91dCA9ICRkYXRhOwogICAgICAgIH0KCiAgICAgICAgaWYoICRhc3NpZ24gKSB7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkYXNzaWduLCRvdXQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZ1bmN0aW9uIGdldF9nZW9sb2NhdG9yKCkKICAgIHsKICAgICAgICBpZiggc2VsZjo6JF9nZW9sb2NhdG9yICE9IG51bGwgKSByZXR1cm4gc2VsZjo6JF9nZW9sb2NhdG9yOwoKICAgICAgICAkbW9kdWxlX2xpc3QgPSBNb2R1bGVPcGVyYXRpb25zOjpnZXRfbW9kdWxlc193aXRoX2NhcGFiaWxpdHkoJ2dlb2xvY2F0ZScpOwogICAgICAgIGlmKCBpc19hcnJheSgkbW9kdWxlX2xpc3QpICYmIGNvdW50KCRtb2R1bGVfbGlzdCkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRtb2R1bGVfbGlzdCBhcyAkbW5hbWUgKSB7CiAgICAgICAgICAgICAgICAkcmVzID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCRtbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggaXNfb2JqZWN0KCRyZXMpICYmIG1ldGhvZF9leGlzdHMoJHJlcywnR2V0SWNvbkxpc3QnKSAmJiBtZXRob2RfZXhpc3RzKCRyZXMsJ0dldEljb25zRnVsbCcpICkgewogICAgICAgICAgICAgICAgICAgIHNlbGY6OiRfZ2VvbG9jYXRvciA9ICRyZXM7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjcmVhdGVfZnVsbHRleHRfaW5kZXgoKQogICAgewogICAgICAgIC8vIEB0b2RvOiBtb3ZlIG1lIHRvIHV0aWxzIGNsYXNzCiAgICAgICAgLy8gbm90ZTogcmVxdWlyZXMgbXlJU0FNIG9yIGEgcmVjZW50IHZlcnNpb24gb2YgSW5ub0RCIHRoYXQgc3VwcG9ydHMgZnVsbHRleHQKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCiAgICAgICAgLy8gZmlyc3QsIGRyb3AgdGhlIGluZGV4KGVzKSBpZiB0aGV5IGV4aXN0CiAgICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BJbmRleFNRTCgnY2RfZnQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJyk7CiAgICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wSW5kZXhTUUwoJ2NkX2Z0X2Z2JyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscycpOwogICAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICAgLy8gbm93IGNyZWF0ZSB0aGUgaW5kZXgoZXMpCiAgICAgICAgJGRiLT5FeGVjdXRlKCdBTFRFUiBUQUJMRSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEFERCBGVUxMVEVYVCBJTkRFWCBjZF9mdCAoY29tcGFueV9uYW1lLGFkZHJlc3Msd2Vic2l0ZSxkZXRhaWxzKScpOwogICAgICAgICRkYi0+RXhlY3V0ZSgnQUxURVIgVEFCTEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyBBREQgRlVMTFRFWFQgSU5ERVggY2RfZnRfZnYgKHZhbHVlKScpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2ZldV91c2VycygpCiAgICB7CiAgICAgICAgLy8gZ2V0IHVzZXIgaW5mb3JtYXRpb24KICAgICAgICAkZmV1ID0gc2VsZjo6Z2V0X2luc3RhbmNlKCktPm1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgICAgICBpZiggIWlzX29iamVjdCgkZmV1KSApIHJldHVybiBbXTsKCiAgICAgICAgJHF1ZXJ5ID0gJGZldS0+Y3JlYXRlX25ld19xdWVyeSgpOwogICAgICAgICR1c2VycyA9ICRmZXUtPmdldF9xdWVyeV9yZXN1bHRzKCRxdWVyeSk7CiAgICAgICAgJHVzZXJzID0gJGZldS0+dXNlcnNldF90b19saXN0KCR1c2Vycyk7CiAgICAgICAgcmV0dXJuICR1c2VyczsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lib/class.Company.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY2dlX2FycmF5Owp1c2UgSnNvblNlcmlhbGl6YWJsZTsKCmNsYXNzIENvbXBhbnkgaW1wbGVtZW50cyBKc29uU2VyaWFsaXphYmxlCnsKICAgIHByaXZhdGUgJF9kYXRhID0gWwogICAgICAgICdpZCc9Pm51bGwsCiAgICAgICAgJ2NvbXBhbnlfbmFtZSc9Pm51bGwsICdhZGRyZXNzJz0+bnVsbCwgJ3RlbGVwaG9uZSc9Pm51bGwsICdmYXgnPT5udWxsLCAnY29udGFjdF9lbWFpbCc9Pm51bGwsICd3ZWJzaXRlJz0+bnVsbCwgJ2RldGFpbHMnPT5udWxsLAogICAgICAgICdwaWN0dXJlX2xvY2F0aW9uJz0+bnVsbCwgJ2xvZ29fbG9jYXRpb24nPT5udWxsLCAnbGF0aXR1ZGUnPT5udWxsLCAnbG9uZ2l0dWRlJz0+bnVsbCwgJ2hpZXJfaWQnPT5udWxsLAogICAgICAgICdzdGF0dXMnPT4nZHJhZnQnLCAndXJsJz0+bnVsbCwgJ293bmVyX2lkJz0+bnVsbCwgJ2NyZWF0ZV9kYXRlJz0+bnVsbCwgJ21vZGlmaWVkX2RhdGUnPT5udWxsCiAgICAgICAgXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJGRhdGEpCiAgICB7CiAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApIHsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAgICAgICAgICAgICBpZiggJHZhbCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBpZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2hpZXJfaWQnOgogICAgICAgICAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgewogICAgICAgICAgICAgICAgICAgICR2YWwgPSAoaW50KSAkdmFsOwogICAgICAgICAgICAgICAgICAgIGlmKCAkdmFsIDwgLTEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBoaWVyX2lkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnb3duZXJfaWQnOgogICAgICAgICAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgewogICAgICAgICAgICAgICAgICAgICR2YWwgPSAoaW50KSAkdmFsOwogICAgICAgICAgICAgICAgICAgIGlmKCAkdmFsIDwgLTEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBvd25lcl9pZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2NyZWF0ZV9kYXRlJzoKICAgICAgICAgICAgY2FzZSAnbW9kaWZpZWRfZGF0ZSc6CiAgICAgICAgICAgIGNhc2UgJ2NvbXBhbnlfbmFtZSc6CiAgICAgICAgICAgIGNhc2UgJ2FkZHJlc3MnOgogICAgICAgICAgICBjYXNlICd0ZWxlcGhvbmUnOgogICAgICAgICAgICBjYXNlICdmYXgnOgogICAgICAgICAgICBjYXNlICdjb250YWN0X2VtYWlsJzoKICAgICAgICAgICAgY2FzZSAnd2Vic2l0ZSc6CiAgICAgICAgICAgIGNhc2UgJ3BpY3R1cmVfbG9jYXRpb24nOiAgLy8gZmlsZW5hbWUgd2l0aG91dCBwYXRoCiAgICAgICAgICAgIGNhc2UgJ2xvZ29fbG9jYXRpb24nOiAvLyBmaWxlbmFtZSB3aXRob3V0IHBhdGgKICAgICAgICAgICAgY2FzZSAndXJsJzoKICAgICAgICAgICAgY2FzZSAnZGV0YWlscyc6CiAgICAgICAgICAgICAgICBpZiggIWlzX251bGwoJHZhbCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGVtcHR5KCR2YWwpICkgJHZhbCA9IG51bGw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdsYXRpdHVkZSc6CiAgICAgICAgICAgIGNhc2UgJ2xvbmdpdHVkZSc6CiAgICAgICAgICAgICAgICBpZiggIWlzX251bGwoJHZhbCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHZhbCA9IChmbG9hdCkgJHZhbDsKICAgICAgICAgICAgICAgICAgICBpZiggJHZhbCA+IDE4MC4wMDAwMDAxIHx8ICR2YWwgPCAtMTgwLjAwMDAwMDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBsYXQvbG9uZyBwYXNzZWQgdG8gIi5fX01FVEhPRF9fKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ3N0YXR1cyc6CiAgICAgICAgICAgICAgICAkdmFsID0gc3RydG9sb3dlcigkdmFsKTsKICAgICAgICAgICAgICAgIHN3aXRjaCggJHZhbCApIHsKICAgICAgICAgICAgICAgIGNhc2UgJ2RyYWZ0JzoKICAgICAgICAgICAgICAgIGNhc2UgJ3B1Ymxpc2hlZCc6CiAgICAgICAgICAgICAgICBjYXNlICdkaXNhYmxlZCc6CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgc3RhdHVzIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdjYXRlZ29yaWVzJzoKICAgICAgICAgICAgICAgIC8vIGV4cGVjdCBhbiBhcnJheSBvZiBjYXRuYW1lID0+IENvbXBhbnlDYXRlZ29yeUluZm8KICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdmFsKSApIHsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHZhbFswXSkpIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGNhdGVnb3J5IGRhdGEgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgICAgICAgICAgICAgJGZpcnN0X2tleSA9IGtleSgkdmFsKTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdmaWVsZHMnOgogICAgICAgICAgICAgICAgLy8gZXhwZWN0IGFuIGFycmF5IG9mIGZpZWxkbmFtZSA9PiB2YWx1ZSAodmFsdWUgY2FuIGJlIGFuIGFycmF5KQogICAgICAgICAgICAgICAgaWYoICR2YWwgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICFpc19hcnJheSgkdmFsKSB8fCAhY2dlX2FycmF5Ojppc19oYXNoKCR2YWwpICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgZmllbGQgZGF0YSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdmFsIGFzICRrZXkyID0+ICR0bXAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc19vYmplY3QoJHRtcCkgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBmaWVsZCBkYXRhIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoc3RyaW5nICRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCRrZXkpIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnb3duZXJfaWQnOgogICAgICAgIGNhc2UgJ2hpZXJfaWQnOgogICAgICAgICAgICBpZiggIWlzX251bGwoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjb21wYW55X25hbWUnOgogICAgICAgIGNhc2UgJ2FkZHJlc3MnOgogICAgICAgIGNhc2UgJ3RlbGVwaG9uZSc6CiAgICAgICAgY2FzZSAnZmF4JzoKICAgICAgICBjYXNlICdjb250YWN0X2VtYWlsJzoKICAgICAgICBjYXNlICd3ZWJzaXRlJzoKICAgICAgICBjYXNlICdwaWN0dXJlX2xvY2F0aW9uJzoKICAgICAgICBjYXNlICdsb2dvX2xvY2F0aW9uJzoKICAgICAgICBjYXNlICdzdGF0dXMnOgogICAgICAgIGNhc2UgJ3VybCc6CiAgICAgICAgY2FzZSAnZGV0YWlscyc6CiAgICAgICAgY2FzZSAnY3JlYXRlX2RhdGUnOgogICAgICAgIGNhc2UgJ21vZGlmaWVkX2RhdGUnOgogICAgICAgICAgICBpZiggIWlzX251bGwoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdsYXRpdHVkZSc6CiAgICAgICAgY2FzZSAnbG9uZ2l0dWRlJzoKICAgICAgICAgICAgaWYoICFpc19udWxsKCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gKGZsb2F0KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjYXRlZ29yaWVzJzoKICAgICAgICBjYXNlICdmaWVsZHMnOgogICAgICAgICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldChzdHJpbmcgJGtleSwgJHZhbCkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIHNldHRhYmxlIHByb3BlcnR5IG9mICIuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aChzdHJpbmcgJGtleSwgJHZhbCkgOiBzZWxmCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+X2RhdGE7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICBjYXNlICdvd25lcl9pZCc6CiAgICAgICAgY2FzZSAnaGllcl9pZCc6CiAgICAgICAgY2FzZSAnY29tcGFueV9uYW1lJzoKICAgICAgICBjYXNlICdhZGRyZXNzJzoKICAgICAgICBjYXNlICd0ZWxlcGhvbmUnOgogICAgICAgIGNhc2UgJ2ZheCc6CiAgICAgICAgY2FzZSAnY29udGFjdF9lbWFpbCc6CiAgICAgICAgY2FzZSAnd2Vic2l0ZSc6CiAgICAgICAgY2FzZSAncGljdHVyZV9sb2NhdGlvbic6CiAgICAgICAgY2FzZSAnbG9nb19sb2NhdGlvbic6CiAgICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgICBjYXNlICd1cmwnOgogICAgICAgIGNhc2UgJ2xhdGl0dWRlJzoKICAgICAgICBjYXNlICdsb25naXR1ZGUnOgogICAgICAgIGNhc2UgJ2RldGFpbHMnOgogICAgICAgICAgICAkZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IHNlbGYoJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckZpZWxkcygpIDogc2VsZgogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPl9kYXRhOwogICAgICAgICRkYXRhWydmaWVsZHMnXSA9IG51bGw7CiAgICAgICAgcmV0dXJuIG5ldyBzZWxmKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aEZpZWxkKGludCAkZmRpZCwgJHZhbCkgOiBzZWxmCiAgICB7CiAgICAgICAgaWYoICRmZGlkIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGZpZWxkIGlkIHBhc3NlZCB0byAiLl9fTUVUSE9EX18pOwoKICAgICAgICAkZGF0YSA9ICR0aGlzLT5fZGF0YTsKICAgICAgICBpZiggaXNfbnVsbCgkdmFsKSApIHsKICAgICAgICAgICAgaWYoIGlzc2V0KCRkYXRhWydmaWVsZHMnXVskZmRpZF0pICkgdW5zZXQoJGRhdGFbJ2ZpZWxkcyddWyRmZGlkXSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkZGF0YVsnZmllbGRzJ11bJGZkaWRdID0gJHZhbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBzZWxmKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJDYXRlZ29yaWVzKCkgOiBzZWxmCiAgICB7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+X2RhdGE7CiAgICAgICAgJGRhdGFbJ2NhdGVnb3JpZXMnXSA9IG51bGw7CiAgICAgICAgcmV0dXJuIG5ldyBzZWxmKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gd2l0aENhdGVnb3J5KGludCAkY2F0aWQsIHN0cmluZyAkZXh0cmExID0gbnVsbCwgc3RyaW5nICRleHRyYTIgPSBudWxsLCBzdHJpbmcgJGV4dHJhMyA9IG51bGwpIDogc2VsZgogICAgewogICAgICAgIGlmKCAkY2F0aWQgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oIkludmFsaWQgY2F0ZWdvcnkgaWQgcGFzc2VkIHRvICIuX19NRVRIT0RfXyk7CgogICAgICAgICRkYXRhID0gJHRoaXMtPl9kYXRhOwogICAgICAgICRkYXRhWydjYXRlZ29yaWVzJ11bJGNhdGlkXSA9IFsgJ2V4dHJhMSc9PiRleHRyYTEsICdleHRyYTInPT4kZXh0cmEyLCAnZXh0cmEzJz0+JGV4dHJhMyBdOwogICAgICAgIHJldHVybiBuZXcgc2VsZigkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGhvdXRDYXRlZ29yeShzdHJpbmcgJGNhdGlkKSA6IHNlbGYKICAgIHsKICAgICAgICBpZiggISRjYXRpZCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBjYXRlZ29yeSBpZCBwYXNzZWQgdG8gIi5fX01FVEhPRF9fKTsKCiAgICAgICAgJGRhdGEgPSAkdGhpcy0+X2RhdGE7CiAgICAgICAgaWYoIGlzc2V0KCRkYXRhWydjYXRlZ29yaWVzJ11bJGNhdGlkXSkgKSB1bnNldCgkZGF0YVsnY2F0ZWdvcmllcyddWyRjYXRpZF0pOwogICAgICAgIHJldHVybiBuZXcgc2VsZigkZGF0YSk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2VhcmNoX3dvcmRzKGFycmF5ICRwYXJhbXMgPSBudWxsKQogICAgewogICAgICAgIC8vIHRoaXMgZ29lcyBpbiB0aGUgbWFuYWdlcgogICAgfQoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gSnNvblNlcmlhbGl6ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGF0YTsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyDirectoryJQueryUploadHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQWxidW1VcGxvYWRIYW5kbGVyIGV4dGVuZHMgY2RfanF1ZXJ5X3VwbG9hZF9oYW5kbGVyCnsKICAgIHByaXZhdGUgJG1ncjsKICAgIHByaXZhdGUgJGNvbXBhbnk7CiAgICBwcml2YXRlICRhbGJ1bWZpZWxkOwoKICAgIGZ1bmN0aW9uIF9fY29uc3RydWN0KENvbXBhbnlNYW5hZ2VyICRtZ3IsIENvbXBhbnkgJGNvbXBhbnksIEZpZWxkRGVmaW5pdGlvbiAkYWxidW1maWVsZCwgJG9wdGlvbnM9bnVsbCkKICAgIHsKICAgICAgICBpZiggJGNvbXBhbnktPmlkIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGNvbXBhbnkgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgaWYoICRhbGJ1bWZpZWxkLT50eXBlICE9ICdhbGJ1bScgfHwgJGFsYnVtZmllbGQtPmlkIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGFsYnVtIGZpZWxkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5tZ3IgPSAkbWdyOwogICAgICAgICR0aGlzLT5jb21wYW55ID0gJGNvbXBhbnk7CiAgICAgICAgJHRoaXMtPmFsYnVtZmllbGQgPSAkYWxidW1maWVsZDsKCiAgICAgICAgaWYoICFpc19hcnJheSgkb3B0aW9ucykgKSB7CiAgICAgICAgICAgICRvcHRpb25zID0gW107CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNzZXQoJG9wdGlvbnNbJ2FjY2VwdF9maWxlX3R5cGVzJ10pICkgewogICAgICAgICAgICAkZGF0YSA9ICR0aGlzLT5hbGJ1bWZpZWxkLT5kYXRhOwogICAgICAgICAgICBpZiggJGRhdGEgKSB7CiAgICAgICAgICAgICAgICAkZXh0cyA9IGV4cGxvZGUoJywnLCRkYXRhKTsKICAgICAgICAgICAgICAgICRzdHIgPSAnL1wuKCcuaW1wbG9kZSgnfCcsJGV4dHMpLicpJC9pJzsKICAgICAgICAgICAgICAgICRvcHRpb25zWydhY2NlcHRfZmlsZV90eXBlcyddID0gJHN0cjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRvcHRpb25zKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWZ0ZXJfdXBsb2FkZWRfZmlsZSgkZmlsZW9iamVjdCkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCRmaWxlb2JqZWN0LT5lcnJvcikgfHwgJGZpbGVvYmplY3QtPmVycm9yID09ICcnICkgewogICAgICAgICAgICAkZmlsZXMgPSAkdGhpcy0+Y29tcGFueS0+ZmllbGRzOwogICAgICAgICAgICBpZiggISRmaWxlcyB8fCAhaW5fYXJyYXkoJGZpbGVvYmplY3QtPm5hbWUsJGZpbGVzKSApIHsKICAgICAgICAgICAgICAgICRmaWxlc1tdID0gJGZpbGVvYmplY3QtPm5hbWU7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29tcGFueSA9ICR0aGlzLT5jb21wYW55LT53aXRoRmllbGQoJGFsYnVtZmllbGQtPmlkLCRmaWxlcyk7CiAgICAgICAgICAgICAgICAkdGhpcy0+bWdyLT5zYXZlKCRjb21wYW55KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB1bnNldCgkZmlsZW9iamVjdC0+ZGVsZXRlX3VybCk7CiAgICAgICAgdW5zZXQoJGZpbGVvYmplY3QtPmRlbGV0ZV90eXBlKTsKICAgIH0KfQoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcRGF0YWJhc2VcQ29ubmVjdGlvbiBhcyBEYXRhYmFzZTsKdXNlIFNwbFN1YmplY3Q7CnVzZSBjbXNfY29uZmlnIGFzIGNvbmZpZzsKdXNlIGNnZV9kaXI7CnVzZSBjbXNfcm91dGVfbWFuYWdlcjsKCmNsYXNzIENvbXBhbnlNYW5hZ2VyIGltcGxlbWVudHMgSUNvbXBhbnlNYW5hZ2VyLCBTcGxTdWJqZWN0CnsKICAgIC8vIEB0b2RvOiBnZXQgcmlkIG9mIGZkbWdyIGFuZCBjYXRtZ3IgZXhjZXB0IGluIHZhbGlkYXRlLgogICAgdXNlIE9ic2VydmFibGU7ICAvLyB0cmFpdAoKICAgIHByaXZhdGUgJHVybHNsdWdfaGVscGVyOwogICAgcHJpdmF0ZSAkZmRtZ3I7CiAgICBwcml2YXRlICRjYXRtZ3I7CiAgICBwcml2YXRlICRkYjsKICAgIHByaXZhdGUgJGxhbmc7CiAgICBwcml2YXRlICRzZXR0aW5nczsKICAgIHByaXZhdGUgJGNvbmZpZzsKICAgIHByaXZhdGUgJGZpbGVfcm9vdF9wYXRoOwogICAgcHJpdmF0ZSAkZmlsZV9yb290X3VybDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoRGF0YWJhc2UgJGRiLCBJRmllbGREZWZNYW5hZ2VyICRmZG1nciwgSUNhdGVnb3J5TWFuYWdlciAkY2F0bWdyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElVcmxTbHVnSGVscGVyICRoZWxwZXIsIGNhbGxhYmxlICRsYW5nLCBzZXR0aW5ncyAkc2V0dGluZ3MsIGNvbmZpZyAkY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyAkZmlsZV9yb290X3BhdGgsIHN0cmluZyAkZmlsZV9yb290X3VybCkKICAgIHsKICAgICAgICAkdGhpcy0+ZGIgPSAkZGI7CiAgICAgICAgJHRoaXMtPmZkbWdyID0gJGZkbWdyOwogICAgICAgICR0aGlzLT5jYXRtZ3IgPSAkY2F0bWdyOwogICAgICAgICR0aGlzLT51cmxzbHVnX2hlbHBlciA9ICRoZWxwZXI7CiAgICAgICAgJHRoaXMtPmxhbmcgPSAkbGFuZzsKICAgICAgICAkdGhpcy0+c2V0dGluZ3MgPSAkc2V0dGluZ3M7CiAgICAgICAgJHRoaXMtPmNvbmZpZyA9ICRjb25maWc7CiAgICAgICAgJHRoaXMtPmZpbGVfcm9vdF9wYXRoID0gJGZpbGVfcm9vdF9wYXRoOwogICAgICAgICR0aGlzLT5maWxlX3Jvb3RfdXJsID0gJGZpbGVfcm9vdF91cmw7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxhbmcoKQogICAgewogICAgICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheSgkdGhpcy0+bGFuZywgJGFyZ3MpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfbmV3X2NvbXBhbnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgcmV0dXJuIG5ldyBDb21wYW55KCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9pZChpbnQgJGlkKSA6IENvbXBhbnkKICAgIHsKICAgICAgICAvLyBnZXQgdGhlIHJvdwogICAgICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLiR0aGlzLT5jb21wYW55X3RhYmxlX25hbWUoKS4nIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+R2V0Um93KCRzcWwsIFskaWRdKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRyb3cpICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGNvbXBhbnkgd2l0aCBpZCAnLiRpZCk7CgogICAgICAgIC8vIGdldCB0aGUgZmllbGR2YWxzCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgZmllbGRkZWZfaWQsdmFsdWUgRlJPTSAnLiR0aGlzLT5jb21wYW55X2ZpZWxkdmFsc190YWJsZV9uYW1lKCkuJyBXSEVSRSBjb21wYW55X2lkID0gPyc7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+ZGItPkdldEFycmF5KCRzcWwsIFskaWRdKTsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBpZiggIWVtcHR5KCRsaXN0KSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJGZyb3cgKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICRmaWVsZGRlZiA9ICR0aGlzLT5mZG1nci0+bG9hZF9ieV9pZCgoaW50KSRmcm93WydmaWVsZGRlZl9pZCddKTsKICAgICAgICAgICAgICAgICAgICAvLyB0b2RvOiBpZiBhcnJheSBjb252ZXJ0IHRoaXMgdGhpbmcuCiAgICAgICAgICAgICAgICAgICAgJHZhbHVlID0gQHVuc2VyaWFsaXplKCRmcm93Wyd2YWx1ZSddKTsKICAgICAgICAgICAgICAgICAgICBpZiggISR2YWx1ZSApICR2YWx1ZSA9ICRmcm93Wyd2YWx1ZSddOwogICAgICAgICAgICAgICAgICAgICRvdXRbJGZpZWxkZGVmLT5pZF0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCggXE91dE9mQm91bmRzRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRyb3dbJ2ZpZWxkcyddID0gJG91dDsKCiAgICAgICAgLy8gZ2V0IHRoZSBjYXRlZ29yaWVzCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgY2F0ZWdvcnlfaWQsIGV4dHJhMSwgZXh0cmEyLCBleHRyYTMgRlJPTSAnLiR0aGlzLT5jb21wYW55X2NhdGVnb3JpZXNfdGFibGVfbmFtZSgpLicgV0hFUkUgY29tcGFueV9pZCA9ID8nOwogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgICRsaXN0ID0gJHRoaXMtPmRiLT5HZXRBcnJheSgkc3FsLCBbJGlkXSk7CiAgICAgICAgaWYoICFlbXB0eSgkbGlzdCkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRjcm93ICkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAkY2F0ZWdvcnlfaWQgPSAoaW50KSAkY3Jvd1snY2F0ZWdvcnlfaWQnXTsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkY3Jvd1snY2F0ZWdvcnlfaWQnXSk7CiAgICAgICAgICAgICAgICAgICAgJG91dFskY2F0ZWdvcnlfaWRdID0gJGNyb3c7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjYXRjaCggXE91dE9mQm91bmRzRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRyb3dbJ2NhdGVnb3JpZXMnXSA9ICRvdXQ7CgogICAgICAgIC8vIG5vdyBidWlsZCB0aGUgY29tcGFueSBvYmplY3QKICAgICAgICByZXR1cm4gJHRoaXMtPmNyZWF0ZV9uZXdfY29tcGFueSgkcm93KTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbG9hZF9maWVsZHZhbHNfZm9yX2NvbXBhbmllcyhhcnJheSAkaWRsaXN0KSA6IGFycmF5CiAgICB7CiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgY29tcGFueV9pZCxmaWVsZGRlZl9pZCx2YWx1ZSBGUk9NICcuJHRoaXMtPmNvbXBhbnlfZmllbGR2YWxzX3RhYmxlX25hbWUoKS4nIFdIRVJFIGNvbXBhbnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkbGlzdCkuJykKICAgICAgICAgICAgICAgIE9SREVSIEJZIGNvbXBhbnlfaWQsIGZpZWxkZGVmX2lkJzsKICAgICAgICAkbGlzdCA9ICR0aGlzLT5kYi0+R2V0QXJyYXkoJHNxbCk7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgIGlmKCAhZW1wdHkoJGxpc3QpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkcm93ICkgewogICAgICAgICAgICAgICAgJGNvbXBhbnlfaWQgPSAoaW50KSRyb3dbJ2NvbXBhbnlfaWQnXTsKICAgICAgICAgICAgICAgICRmaWVsZF9pZCA9IChpbnQpJHJvd1snZmllbGRkZWZfaWQnXTsKICAgICAgICAgICAgICAgICR2YWx1ZSA9IEB1bnNlcmlhbGl6ZSgkcm93Wyd2YWx1ZSddKTsKICAgICAgICAgICAgICAgIGlmKCAhJHZhbHVlICkgJHZhbHVlID0gJHJvd1sndmFsdWUnXTsKICAgICAgICAgICAgICAgIHVuc2V0KCRyb3dbJ2NvbXBhbnlfaWQnXSwkcm93WydmaWVsZGRlZl9pZCddKTsKICAgICAgICAgICAgICAgICRvdXRbJGNvbXBhbnlfaWRdWyRmaWVsZF9pZF0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxvYWRfY2F0ZWdvcmllc19mb3JfY29tcGFuaWVzKGFycmF5ICRpZGxpc3QpIDogYXJyYXkKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBjb21wYW55X2lkLGNhdGVnb3J5X2lkLGV4dHJhMSxleHRyYTIsZXh0cmEzIEZST00gJy4kdGhpcy0+Y29tcGFueV9jYXRlZ29yaWVzX3RhYmxlX25hbWUoKS4nIFdIRVJFIGNvbXBhbnlfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJGlkbGlzdCkuJykKICAgICAgICAgICAgICAgIE9SREVSIEJZIGNvbXBhbnlfaWQnOwogICAgICAgICRsaXN0ID0gJHRoaXMtPmRiLT5HZXRBcnJheSgkc3FsKTsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgaWYoICFlbXB0eSgkbGlzdCkgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRyb3cgKSB7CiAgICAgICAgICAgICAgICAkY29tcGFueV9pZCA9IChpbnQpJHJvd1snY29tcGFueV9pZCddOwogICAgICAgICAgICAgICAgJGNhdGVnb3J5X2lkID0gKGludCkkcm93WydjYXRlZ29yeV9pZCddOwogICAgICAgICAgICAgICAgdW5zZXQoJHJvd1snY29tcGFueV9pZCddLCRyb3dbJ2NhdGVnb3J5X2lkJ10pOwogICAgICAgICAgICAgICAgJG91dFskY29tcGFueV9pZF1bJGNhdGVnb3J5X2lkXSA9ICRyb3c7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfcXVlcnkoU3FsUXVlcnkgJHFyeSkgOiBDb21wYW55U2V0CiAgICB7CiAgICAgICAgaWYoIHN0cmlwb3MoJHFyeS0+c3FsLCAnU0VMRUNUJykgIT09IDAgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGlucHV0IHF1ZXJ5IChTRUxFQ1QpIGluICcuX19NRVRIT0RfXyk7CiAgICAgICAgaWYoICFwcmVnX21hdGNoKCcvRlJPTVxzKycuJHRoaXMtPmNvbXBhbnlfdGFibGVfbmFtZSgpLicvaScsJHFyeS0+c3FsKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgaW5wdXQgcXVlcnkgKEZST00pIGluICcuX19NRVRIT0RfXyk7CiAgICAgICAgaWYoIHN0cnBvcygkcXJ5LT5zcWwsICdTUUxfQ0FMQ19GT1VORF9ST1dTJykgPT09IEZBTFNFICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBpbnB1dCBxdWVyeSAoU1FMX0NBTENfRk9VTkRfUk9XUykgaW4gJy5fX01FVEhPRF9fKTsKICAgICAgICAkcm93cyA9ICR0aGlzLT5kYi0+R2V0QXJyYXkoJHFyeS0+c3FsKTsKICAgICAgICAkdG90YWxfbWF0Y2hlcyA9IChpbnQpICR0aGlzLT5kYi0+R2V0T25lKCdTRUxFQ1QgRk9VTkRfUk9XUygpJyk7CgogICAgICAgICRycyA9IG51bGw7CiAgICAgICAgaWYoIGVtcHR5KCRyb3dzKSApIHsKICAgICAgICAgICAgJHJzID0gbmV3IENvbXBhbnlTZXQobnVsbCwgJHRvdGFsX21hdGNoZXMsICRxcnktPm9mZnNldCwgJHFyeS0+bGltaXQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIGhhdmUgdG8gYnVpbGQgc29tZSBvYmplY3RzCiAgICAgICAgICAgICRpZHMgPSBhcnJheV9tYXAoZnVuY3Rpb24oJHJvdyl7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRyb3dbJ2lkJ107CiAgICAgICAgICAgICAgICB9LCRyb3dzKTsKICAgICAgICAgICAgLy8gbG9hZCB0aGUgZmllbGR2YWxzIGZvciB0aGVzZSBpZHMgaW50byBhIHRlbXBvcmFyeSBzdHJ1Y3R1cmUKICAgICAgICAgICAgJGZpZWxkdmFscyA9ICR0aGlzLT5sb2FkX2ZpZWxkdmFsc19mb3JfY29tcGFuaWVzKCRpZHMpOwogICAgICAgICAgICAvLyBsb2FkIHRoZSBjYXRlZ29yaWVzIHRoZXNlIGlkcyBhcmUgaW4sIGludG8gYSB0ZW1wb3Jhcnkgc3RydWN0dXJlCiAgICAgICAgICAgICRjYXRlZ29yaWVzID0gJHRoaXMtPmxvYWRfY2F0ZWdvcmllc19mb3JfY29tcGFuaWVzKCRpZHMpOwoKICAgICAgICAgICAgJGxpc3QgPSBudWxsOwogICAgICAgICAgICBmb3JlYWNoKCAkcm93cyBhcyAkcm93ICkgewogICAgICAgICAgICAgICAgJGNvbXBhbnlfaWQgPSAoaW50KSAkcm93WydpZCddOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRmaWVsZHZhbHNbJGNvbXBhbnlfaWRdKSApIHsKICAgICAgICAgICAgICAgICAgICAkcm93WydmaWVsZHMnXSA9ICRmaWVsZHZhbHNbJGNvbXBhbnlfaWRdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRjYXRlZ29yaWVzWyRjb21wYW55X2lkXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJvd1snY2F0ZWdvcmllcyddID0gJGNhdGVnb3JpZXNbJGNvbXBhbnlfaWRdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGxpc3RbXSA9ICR0aGlzLT5jcmVhdGVfbmV3X2NvbXBhbnkoJHJvdyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJzID0gbmV3IENvbXBhbnlTZXQoJGxpc3QsICR0b3RhbF9tYXRjaGVzLCAkcXJ5LT5vZmZzZXQsICRxcnktPmxpbWl0KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyczsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGUoQ29tcGFueSAkY29tcGFueSkKICAgIHsKICAgICAgICBpZiggISRjb21wYW55LT5jb21wYW55X25hbWUgKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdub2NvbXBhbnluYW1lZ2l2ZW4nKSk7CiAgICAgICAgaWYoICEkY29tcGFueS0+dXJsICYmICR0aGlzLT5zZXR0aW5ncy0+dXJsX3JlcXVpcmVkICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXJyb3JfdXJscmVxdWlyZWQnKSk7CgogICAgICAgIGlmKCAhaW5fYXJyYXkoJGNvbXBhbnktPnN0YXR1cyxbJ3B1Ymxpc2hlZCcsJ2RyYWZ0JywnZGlzYWJsZWQnXSkgKSB0aHJvdyBuZXcgIFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXJyb3JfaW52YWxpZHN0YXR1cycpKTsKCiAgICAgICAgaWYoICEkdGhpcy0+c2V0dGluZ3MtPmFsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMgKSB7CiAgICAgICAgICAgIC8vIGNoZWNrIGZvciBkdXBsaWNhdGUgY29tcGFueQogICAgICAgICAgICAkdG1wID0gbnVsbDsKICAgICAgICAgICAgaWYoICRjb21wYW55LT5pZCA+IDAgKSB7CiAgICAgICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCBGUk9NICcuJHRoaXMtPmNvbXBhbnlfdGFibGVfbmFtZSgpLicgV0hFUkUgY29tcGFueV9uYW1lID0gPyBBTkQgaWQgIT0gPyc7CiAgICAgICAgICAgICAgICAkdG1wID0gJHRoaXMtPmRiLT5HZXRPbmUoJHNxbCwgWyRjb21wYW55LT5jb21wYW55X25hbWUsICRjb21wYW55LT5pZF0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLiR0aGlzLT5jb21wYW55X3RhYmxlX25hbWUoKS4nIFdIRVJFIGNvbXBhbnlfbmFtZSA9ID8nOwogICAgICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskY29tcGFueS0+Y29tcGFueV9uYW1lXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICR0bXAgPiAwICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXJyb3JfZHVwbGljYXRlX2NvbXBhbnknLCAkY29tcGFueS0+Y29tcGFueV9uYW1lKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBpZiB3ZSBoYXZlIGZpZWxkcywgdmFsaWRhdGUgdGhhdCB0aGV5IGFyZSB2YWxpZAogICAgICAgIGlmKCAhZW1wdHkoJHRoaXMtPl9kYXRhWydmaWVsZHMnXSkgKSB7CiAgICAgICAgICAgICRmZGlkcyA9IGFycmF5X2tleXMoJHRoaXMtPl9kYXRhWydmaWVsZHMnXSk7CiAgICAgICAgICAgICRmZF9saXN0ID0gJHRoaXMtPmZkbWdyLT5nZXRfbGlzdCgpOwogICAgICAgICAgICBpZiggISRmZF9saXN0ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignV2UgaGF2ZSBmaWVsZHMgaW4gdGhlIGNvbXBhbnksIGJ1dCBubyBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlJyk7CiAgICAgICAgICAgICRkaWZmID0gYXJyYXlfZGlmZigkZmRpZHMsIGFycmF5X2tleXMoJGZkX2xpc3QpKTsKICAgICAgICAgICAgaWYoICFlbXB0eSgkZGlmZikgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdXZSBoYXZlIGZpZWxkcyBpbiB0aGUgY29tcGFueSB0aGF0IGFyZSBub3QgdmFsaWQgZmllbGRzJyk7CiAgICAgICAgfQoKICAgICAgICAvLyBpZiB3ZSBoYXZlIGNhdGVnb3JpZXMsIHZhbGlkYXRlIHRoZSBpZHMKICAgICAgICBpZiggIWVtcHR5KCR0aGlzLT5fZHRhWydjYXRlZ29yaWVzJ10pICkgewogICAgICAgICAgICAkY2F0aWRzID0gYXJyYXlfa2V5cygkdGhpcy0+X2RhdGFbJ2NhdGVnb3JpZXMnXSk7CiAgICAgICAgICAgICRjYXRfbGlzdCA9ICR0aGlzLT5jYXRtZ3ItPmdldF9saXN0KCk7CiAgICAgICAgICAgIGlmKCAhJGNhdF9saXN0ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignV2UgaGF2ZSBjYXRlZ29yaWVzIGluIHRoZSBjb21wYW55LCBidXQgbm8gY2F0ZWdvcmllcyBpbiB0aGUgZGF0YWJhc2UnKTsKICAgICAgICAgICAgJGRpZmYgPSBhcnJheV9kaWZmKCRjYXRpZHMsIGFycmF5X2tleXMoJGNhdF9saXN0KSk7CiAgICAgICAgICAgIGlmKCAhZW1wdHkoJGRpZmYpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignV2UgaGF2ZSBjYXRlZ29yaWVzIGluIHRoZSBjb21wYW55IHRoYXQgYXJlIG5vdCB2YWxpZCBmaWVsZHMnKTsKICAgICAgICB9CgogICAgICAgIC8vIHRvZG9pZiB3ZSBoYXZlIGEgdXJsLCB2YWxpZGF0ZSBpdAogICAgICAgICRjb21wYW55LT51cmwgJiYgJHRoaXMtPnVybHNsdWdfaGVscGVyLT52YWxpZGF0ZV91cmxfZm9yX2NvbXBhbnkoJGNvbXBhbnkpOwoKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5zZXJ0X2ZpZWxkdmFscyhDb21wYW55ICRvYmopCiAgICB7CiAgICAgICAgJGZpZWxkcyA9ICRvYmotPmZpZWxkczsKICAgICAgICBpZiggIWVtcHR5KCRmaWVsZHMpICkgewogICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcuJHRoaXMtPmNvbXBhbnlfZmllbGR2YWxzX3RhYmxlX25hbWUoKS4nIChjb21wYW55X2lkLCBmaWVsZGRlZl9pZCwgdmFsdWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sTk9XKCksTk9XKCkpJzsKICAgICAgICAgICAgZm9yZWFjaCggJGZpZWxkcyBhcyAkZmRpZCA9PiAkdmFsICkgewogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR2YWwpICkgJHZhbCA9IHNlcmlhbGl6ZSgkdmFsKTsKICAgICAgICAgICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbICRvYmotPmlkLCAkZmRpZCwgJHZhbCBdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaW5zZXJ0X2NhdGVnb3JpZXMoQ29tcGFueSAkb2JqKQogICAgewogICAgICAgICRjYXRzID0gJG9iai0+Y2F0ZWdvcmllczsKICAgICAgICBpZiggIWVtcHR5KCRjYXRzKSApIHsKICAgICAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLiR0aGlzLT5jb21wYW55X2NhdGVnb3JpZXNfdGFibGVfbmFtZSgpLicgKGNvbXBhbnlfaWQsIGNhdGVnb3J5X2lkLCBleHRyYTEsIGV4dHJhMiwgZXh0cmEzLCBjcmVhdGVfZGF0ZSwgbW9kaWZpZWRfZGF0ZSkKICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyxOT1coKSxOT1coKSknOwogICAgICAgICAgICBmb3JlYWNoKCAkY2F0cyBhcyAkY2F0aWQgPT4gJGV4dHJhICkgewogICAgICAgICAgICAgICAgJHRoaXMtPmRiLT5FeGVjdXRlKCRzcWwsIFskb2JqLT5pZCwgJGNhdGlkLCAkZXh0cmFbJ2V4dHJhMSddLCAkZXh0cmFbJ2V4dHJhMiddLCAkZXh0cmFbJ2V4dHJhMyddXSApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpbnNlcnQoQ29tcGFueSAkb2JqKSA6IENvbXBhbnkKICAgIHsKICAgICAgICAvLyBpbnNlcnQgdGhlIHJlY29yZAogICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdGhpcy0+Y29tcGFueV90YWJsZV9uYW1lKCkuJwogICAgICAgICAgICAgKGNvbXBhbnlfbmFtZSwgYWRkcmVzcywgdGVsZXBob25lLCBmYXgsIGNvbnRhY3RfZW1haWwsCiAgICAgICAgICAgICAgd2Vic2l0ZSwgZGV0YWlscywgcGljdHVyZV9sb2NhdGlvbiwgbG9nb19sb2NhdGlvbiwKICAgICAgICAgICAgICBzdGF0dXMsIGxhdGl0dWRlLCBsb25naXR1ZGUsIG93bmVyX2lkLCBoaWVyX2lkLCB1cmwsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSknOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLAogICAgICAgICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5jb21wYW55X25hbWUsICRvYmotPmFkZHJlc3MsICRvYmotPnRlbGVwaG9uZSwgJG9iai0+ZmF4LCAkb2JqLT5jb250YWN0X2VtYWlsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+d2Vic2l0ZSwgJG9iai0+ZGV0YWlscywgJG9iai0+cGljdHVyZV9sb2NhdGlvbiwgJG9iai0+bG9nb19sb2NhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPnN0YXR1cywgJG9iai0+bGF0aXR1ZGUsICRvYmotPmxvbmdpdHVkZSwgJG9iai0+b3duZXJfaWQsICRvYmotPmhpZXJfaWQsICRvYmotPnVybAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSk7CgogICAgICAgIC8vIGdldCB0aGUgbmV3IGlkCiAgICAgICAgJG5ld19pZCA9IChpbnQpICR0aGlzLT5kYi0+SW5zZXJ0X0lEKCk7CiAgICAgICAgJG9iaiA9ICRvYmotPndpdGgoJ2lkJywgJG5ld19pZCk7CgogICAgICAgIC8vIGluc2VydCB0aGUgZmllbGR2YWxzCiAgICAgICAgJHRoaXMtPmluc2VydF9maWVsZHZhbHMoJG9iaik7CgogICAgICAgIC8vIGluc2VydCB0aGUgY2F0ZWdvcmllcyAoaWYgYW55KQogICAgICAgICR0aGlzLT5pbnNlcnRfY2F0ZWdvcmllcygkb2JqKTsKCiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHVwZGF0ZShDb21wYW55ICRvYmopIDogQ29tcGFueQogICAgewogICAgICAgIC8vIHVwZGF0ZSB0aGUgcmVjb3JkCiAgICAgICAgJHNxbCA9ICdVUERBVEUgJy4kdGhpcy0+Y29tcGFueV90YWJsZV9uYW1lKCkuJyBTRVQKICAgICAgICAgICAgY29tcGFueV9uYW1lID0gPywKICAgICAgICAgICAgYWRkcmVzcyA9ID8sCiAgICAgICAgICAgIHRlbGVwaG9uZSA9ID8sCiAgICAgICAgICAgIGZheCA9ID8sCiAgICAgICAgICAgIGNvbnRhY3RfZW1haWwgPSA/LAogICAgICAgICAgICB3ZWJzaXRlID0gPywKICAgICAgICAgICAgZGV0YWlscyA9ID8sCiAgICAgICAgICAgIHBpY3R1cmVfbG9jYXRpb24gPSA/LAogICAgICAgICAgICBsb2dvX2xvY2F0aW9uID0gPywKICAgICAgICAgICAgc3RhdHVzID0gPywKICAgICAgICAgICAgbGF0aXR1ZGUgPSA/LAogICAgICAgICAgICBsb25naXR1ZGUgPSA/LAogICAgICAgICAgICBvd25lcl9pZCA9ID8sCiAgICAgICAgICAgIGhpZXJfaWQgPSA/LAogICAgICAgICAgICB1cmwgPSA/LAogICAgICAgICAgICBtb2RpZmllZF9kYXRlID0gTk9XKCkKICAgICAgICAgICAgd2hlcmUgaWQgPSA/JzsKICAgICAgICAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgJG9iai0+Y29tcGFueV9uYW1lLCAkb2JqLT5hZGRyZXNzLCAkb2JqLT50ZWxlcGhvbmUsICRvYmotPmZheCwgJG9iai0+Y29udGFjdF9lbWFpbCwKICAgICAgICAgICAgICAgICRvYmotPndlYnNpdGUsICRvYmotPmRldGFpbHMsICRvYmotPnBpY3R1cmVfbG9jYXRpb24sICRvYmotPmxvZ29fbG9jYXRpb24sCiAgICAgICAgICAgICAgICAkb2JqLT5zdGF0dXMsICRvYmotPmxhdGl0dWRlLCAkb2JqLT5sb25naXR1ZGUsICRvYmotPm93bmVyX2lkLCAkb2JqLT5oaWVyX2lkLCAkb2JqLT51cmwsCiAgICAgICAgICAgICAgICAkb2JqLT5pZAogICAgICAgICAgICAgICAgXSk7CgogICAgICAgIC8vIGNsZWFyIHRoZSBmaWVsZGRlZnMKICAgICAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuJHRoaXMtPmNvbXBhbnlfZmllbGR2YWxzX3RhYmxlX25hbWUoKS4nIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKICAgICAgICAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwgWyRvYmotPmlkXSApOwoKICAgICAgICAvLyBpbnNlcnQgdGhlIGZpZWxkZGVmcwogICAgICAgICR0aGlzLT5pbnNlcnRfZmllbGR2YWxzKCRvYmopOwoKICAgICAgICAvLyBjbGVhciB0aGUgY2F0ZWdvcmllcwogICAgICAgICRzcWwgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+Y29tcGFueV9jYXRlZ29yaWVzX3RhYmxlX25hbWUoKS4nIFdIRVJFIGNvbXBhbnlfaWQgPSA/JzsKICAgICAgICAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwgWyRvYmotPmlkXSApOwoKICAgICAgICAvLyBpbnNlcnQgdGhlIGNhdGVnb3JpZXMKICAgICAgICAkdGhpcy0+aW5zZXJ0X2NhdGVnb3JpZXMoJG9iaik7CgogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKENvbXBhbnkgJGNvbXBhbnkpIDogQ29tcGFueQogICAgewogICAgICAgICR0aGlzLT52YWxpZGF0ZSgkY29tcGFueSk7CiAgICAgICAgJHRoaXMtPkJlZ2luVHJhbnMoKTsKICAgICAgICBpZiggJGNvbXBhbnktPmlkIDwgMSApIHsKICAgICAgICAgICAgJGNvbXBhbnkgPSAkdGhpcy0+aW5zZXJ0KCRjb21wYW55KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY29tcGFueSA9ICR0aGlzLT51cGRhdGUoJGNvbXBhbnkpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+bm90aWZ5KCk7CiAgICAgICAgJHRoaXMtPkNvbW1pdFRyYW5zKCk7CiAgICAgICAgcmV0dXJuICRjb21wYW55OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJHRoaXMtPkJlZ2luVHJhbnMoKTsKICAgICAgICBpZiggJGNvbXBhbnktPmlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBkZWxldGUgYSBjb21wYW55IHRoYXQgaGFzIG5vdCB5ZXQgYmVlbiBzYXZlZCcpOwogICAgICAgICRzcWwgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+Y29tcGFueV9maWVsZHZhbHNfdGFibGVfbmFtZSgpLicgV0hFUkUgY29tcGFueV9pZCA9ID8nOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJGNvbXBhbnktPmlkXSk7CiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLiR0aGlzLT5jb21wYW55X2NhdGVnb3JpZXNfdGFibGVfbmFtZSgpLicgV0hFUkUgY29tcGFueV9pZCA9ID8nOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJGNvbXBhbnktPmlkXSk7CiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLiR0aGlzLT5jb21wYW55X3RhYmxlX25hbWUoKS4nIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHRoaXMtPmRiLT5FeGVjdXRlKCRzcWwsIFskY29tcGFueS0+aWRdKTsKCiAgICAgICAgLy8gYW5kIGRlbGV0ZSBhbGwgdGhlIGZpbGVzIGF0dGFjaGVkLgogICAgICAgICRkaXIgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRjb21wYW55LT5pZCk7CiAgICAgICAgcmVjdXJzaXZlX2RlbGV0ZSgkZGlyKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdpZCcsbnVsbCk7CiAgICAgICAgJHRoaXMtPm5vdGlmeSgpOwogICAgICAgICR0aGlzLT5Db21taXRUcmFucygpOwoKICAgICAgICByZXR1cm4gJGNvbXBhbnk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueShDb21wYW55ICRjb21wYW55KSA6IENvbXBhbnkKICAgIHsKICAgICAgICAkcmVjdXJzaXZlX2NvcHkgPSBmdW5jdGlvbihzdHJpbmcgJHNyYywgc3RyaW5nICRkc3QpIHVzZSAoJiRyZWN1cnNpdmVfY29weSkgewogICAgICAgICAgICAkZGlyID0gb3BlbmRpcigkc3JjKTsKICAgICAgICAgICAgQG1rZGlyKCRkc3QpOwogICAgICAgICAgICB3aGlsZSgoICRmaWxlID0gcmVhZGRpcigkZGlyKSkgKSB7CiAgICAgICAgICAgICAgICBpZiggc3RhcnRzd2l0aCgkZmlsZSwnLicpICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiAoIGlzX2Rpcigkc3JjIC4gJy8nIC4gJGZpbGUpICkgewogICAgICAgICAgICAgICAgICAgICRyZWN1cnNpdmVfY29weSgkc3JjIC4nLycuICRmaWxlLCAkZHN0IC4nLycuICRmaWxlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGNvcHkoJHNyYyAuJy8nLiAkZmlsZSwkZHN0IC4nLycuICRmaWxlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjbG9zZWRpcigkZGlyKTsKICAgICAgICB9OwoKICAgICAgICBpZiggJGNvbXBhbnktPmlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBjb3B5IGEgY29tcGFueSB0aGF0IGhhcyBub3QgeWV0IGJlZW4gc2F2ZWQnKTsKCiAgICAgICAgJHNyY2RpciA9ICR0aGlzLT5nZXRfY29tcGFueV9maWxlX3BhdGgoJGNvbXBhbnktPmlkKTsKICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCdpZCcsbnVsbCk7CiAgICAgICAgJGNvbXBhbnkgPSAkdGhpcy0+c2F2ZSgkY29tcGFueSk7IC8vIGFsc28gdmFsZGlhdGVzCiAgICAgICAgLy8gd2Ugbm93IGhhdmUgYSBuZXcgaWQKCiAgICAgICAgaWYoIGlzX2Rpcigkc3JjZGlyKSApIHsKICAgICAgICAgICAgJGRlc3RkaXIgPSAkdGhpcy0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRjb21wYW55LT5pZCk7CiAgICAgICAgICAgICRyZWN1cnNpdmVfY29weSgkc3JjZGlyLCAkZGVzdGRpcik7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+bm90aWZ5KCk7CiAgICAgICAgcmV0dXJuICRjb21wYW55OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfY29tcGFueV9maWxlcyhDb21wYW55ICRjb21wYW55LCBhcnJheSAkZmlsZW5hbWVzKSA6IHZvaWQKICAgIHsKICAgICAgICAvLyB0aGlzIHdpbGwgZGVsZXRlIGFueSB0aHVtYiBvciBwcmV2aWV3IGZpbGVzIGZvciBhbiB1cGxvYWQuCiAgICAgICAgaWYoICRjb21wYW55LT5pZCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignQ2Fubm90IGRlbGV0ZSBmaWxlcyBmcm9tIGEgY29tcGFueSB0aGF0IGhhcyBub3QgeWV0IGJlZW4gc2F2ZWQnKTsKICAgICAgICBpZiggZW1wdHkoJGZpbGVuYW1lcykgKSByZXR1cm47CiAgICAgICAgJGRpciA9ICR0aGlzLT5nZXRfY29tcGFueV9maWxlX3BhdGgoJGNvbXBhbnktPmlkKTsKICAgICAgICBpZiggIWlzX2RpcigkZGlyKSApIHJldHVybjsKICAgICAgICBmb3JlYWNoKCAkZmlsZW5hbWVzIGFzICRmbiApIHsKICAgICAgICAgICAgJGZpbGVzID0gZ2xvYigkZGlyLicvKicuYmFzZW5hbWUoJGZuKSk7CiAgICAgICAgICAgIGlmKCBlbXB0eSgkZmlsZXMpICkgY29udGludWU7CiAgICAgICAgICAgIGZvcmVhY2goICRmaWxlcyBhcyAkZmlsZSApIHsKICAgICAgICAgICAgICAgIGlmKCAhaXNfd3JpdGFibGUoJGZpbGUpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignTm8gd3JpdGUgYWNjZXNzIHRvIGZpbGUgYXQgJy4kZmlsZSk7CiAgICAgICAgICAgICAgICB1bmxpbmsoJGZpbGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3B5X2NvbXBhbnlfZmlsZXMoQ29tcGFueSAkY29tcGFueSwgYXJyYXkgJGZpbGVuYW1lcykgOiB2b2lkCiAgICB7CiAgICAgICAgaWYoICRjb21wYW55LT5pZCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignQ2Fubm90IGNvcHkgZmlsZXMgdG8gYSBjb21wYW55IHRoYXQgaGFzIG5vdCB5ZXQgYmVlbiBzYXZlZCcpOwogICAgICAgIGlmKCBlbXB0eSgkZmlsZW5hbWVzKSApIHJldHVybjsKICAgICAgICAkZGlyID0gJHRoaXMtPmdldF9jb21wYW55X2ZpbGVfcGF0aCgkY29tcGFueS0+aWQpOwogICAgICAgIGlmKCAhaXNfZGlyKCRkaXIpICkgY2dlX2Rpcjo6bWtkaXJyKCRkaXIpOwogICAgICAgIGlmKCAhaXNfZGlyKCRkaXIpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgYXQgJy4kZGlyKTsKICAgICAgICBpZiggIWlzX3dyaXRhYmxlKCRkaXIpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IHdyaXRlIHRvIGRpcmVjdG9yeSBhdCAnLiRkaXIpOwoKICAgICAgICAkcm9vdF9wYXRoID0gcmVhbHBhdGgoJHRoaXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10pOwogICAgICAgICR1cGxvYWRzX3BhdGggPSByZWFscGF0aCgkdGhpcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXSk7CiAgICAgICAgZm9yZWFjaCggJGZpbGVuYW1lcyBhcyAkZm4gKSB7CiAgICAgICAgICAgICRycCA9IHJlYWxwYXRoKCRmbik7CiAgICAgICAgICAgIGlmKCAhJHJwIHx8ICFpc19maWxlKCRmbikgKSAkcnAgPSByZWFscGF0aCgkdGhpcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXS4nLycuJGZuKTsKICAgICAgICAgICAgaWYoICEkcnAgfHwgIWlzX2ZpbGUoJHJwKSApICRycCA9IHJlYWxwYXRoKCR0aGlzLT5jb25maWdbJ3Jvb3RfcGF0aCddLicvJy4kZm4pOwogICAgICAgICAgICBpZiggISRycCB8fCAhaXNfZmlsZSgkcnApICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignRmlsZSBub3QgZm91bmQ6ICcuJGZuKTsKICAgICAgICAgICAgaWYoICFzdGFydHN3aXRoKCRycCwgJHVwbG9hZHNfcGF0aCkgJiYgIXN0YXJ0c3dpdGgoJHJwLCRyb290X3BhdGgpICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGNvcHkgaW52YWxpZCBmaWxlICcuJGZuKTsKICAgICAgICAgICAgY29weSgkcnAsICRkaXIuJy8nLmJhc2VuYW1lKCRmbikpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbXBhbnlfZmlsZV9wYXRoKGludCAkaWQpIDogc3RyaW5nCiAgICB7CiAgICAgICAgaWYoICRpZCA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBjb21wYW55IGlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIHJldHVybiAkdGhpcy0+ZmlsZV9yb290X3BhdGguJy9pZCcuJGlkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29tcGFueV9maWxlX3VybChpbnQgJGlkKSA6IHN0cmluZwogICAgewogICAgICAgIGlmKCAkaWQgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgY29tcGFueSBpZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICByZXR1cm4gJHRoaXMtPmZpbGVfcm9vdF91cmwuJy9pZCcuJGlkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21wYW55X3RhYmxlX25hbWUoKSB7IHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gY29tcGFueV9jYXRlZ29yaWVzX3RhYmxlX25hbWUoKSB7IHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gY29tcGFueV9maWVsZHZhbHNfdGFibGVfbmFtZSgpIHsgcmV0dXJuIENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyc7IH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX293bmVyc2hpcF9mb3IoaW50ICR1aWQpCiAgICB7CiAgICAgICAgJHNxbCA9ICdVUERBVEUgJy4kdGhpcy0+Y29tcGFueV90YWJsZV9uYW1lKCkuJyBTRVQgb3duZXJfaWQgPSBOVUxMIFdIRVJFIG93bmVyX2lkID0gPyc7CiAgICAgICAgJHRoaXMtPmRiLT5FeGVjdXRlKCRzcWwsIFskdWlkXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZV9hbGxfb3duZXJzaGlwKCkKICAgIHsKICAgICAgICAkc3FsID0gJ1VQREFURSAnLiR0aGlzLT5jb21wYW55X3RhYmxlX25hbWUoKS4nIFNFVCBvd25lcl9pZCA9IE5VTEwgV0hFUkUgb3duZXJfaWQgPiAwJzsKICAgICAgICAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwgWyR1aWRdKTsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManagerAuditDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgpjbGFzcyBDb21wYW55TWFuYWdlckF1ZGl0RGVjb3JhdG9yIGltcGxlbWVudHMgSUNvbXBhbnlNYW5hZ2VyCnsKICAgIHByaXZhdGUgJHBhcmVudDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoSUNvbXBhbnlNYW5hZ2VyICRwYXJlbnQpCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudCA9ICRwYXJlbnQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9uZXdfY29tcGFueShhcnJheSAkZGF0YSA9IFtdKSA6IENvbXBhbnkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Y3JlYXRlX25ld19jb21wYW55KCRkYXRhKTsKICAgIH0KCiAgICAvKioKICAgICAqIExvYWQgYSBjb21wYW55IGdpdmVuIGl0cyBpZC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRpZAogICAgICogQHJldHVybiBDb21wYW55CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogQ29tcGFueQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X2lkKCRpZCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2FkIGFydGljbGVzIGdpdmVuIGEgZmlsdGVyIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gY2RfY29tcGFueV9maWx0ZXIgJGZpbHRlcgogICAgICogQHJldHVybiBDb21wYW55U2V0CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X3F1ZXJ5KFNxbFF1ZXJ5ICRxdWVyeSkgOiBDb21wYW55U2V0CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYnlfcXVlcnkoJHF1ZXJ5KTsKICAgIH0KCiAgICAvKioKICAgICAqIFNhdmUgYSBjb21wYW55CiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEByZXR1cm4gQ29tcGFueQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZShDb21wYW55ICRjb21wYW55KSA6IENvbXBhbnkKICAgIHsKICAgICAgICAkcmVzID0gJHRoaXMtPnBhcmVudC0+c2F2ZSgkY29tcGFueSk7CiAgICAgICAgYXVkaXQoJHJlcy0+aWQsICdDb21wYW55RGlyZWN0b3J5JywgJ0NvbXBhbnkgc2F2ZWQnKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBhIGNvbXBhbnkKICAgICAqCiAgICAgKiBAcGFyYW0gQ29tcGFueSAkY29tcGFueQogICAgICogQHJldHVybiBDb21wYW55CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5wYXJlbnQtPmRlbGV0ZSgkY29tcGFueSk7CiAgICAgICAgYXVkaXQoJGNvbXBhbnktPmlkLCAnQ29tcGFueURpcmVjdG9yeScsICdDb21wYW55IGRlbGV0ZWQnKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvKioKICAgICAqIENvcHkgYSBjb21wYW55LgogICAgICogVGhpcyBtZXRob2Qgd2lsbCBjb3B5IGFuIGVudGlyZSBjb21wYW55LgogICAgICogSXQgd2lsbCB1c2Ugc2V0dGluZ3MgdG8gZGV0ZXJtaW5lIGlmIGEgbmV3IHVybCBpcyB0byBiZSBnZW5lcmF0ZWQKICAgICAqIGl0IHdpbGwgY29weSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wYW55CiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEByZXR1cm4gQ29tcGFueSB0aGUgbmV3IGNvbXBhbnkgd2l0aCBhIG5ldyBpZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueShDb21wYW55ICRjb21wYW55KSA6IENvbXBhbnkKICAgIHsKICAgICAgICAkcmVzID0gJHRoaXMtPnBhcmVudC0+Y29weV9jb21wYW55KCRjb21wYW55KTsKICAgICAgICBhdWRpdCgkcmVzLT5pZCwgJ0NvbXBhbnlEaXJlY3RvcnknLCAnQ29tcGFueSBjb3BpZWQgZnJvbSAnLiRjb21wYW55LT5pZCk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLyoqCiAgICAgKiBEZWxldGUgdGhlIG5hbWVkIGZpbGVzIGZyb20gdGhlIGNvbXBhbnkgZGlyZWN0b3J5LgogICAgICogVGhpcyBpcyBqdXN0IGEgaG91c2VrZWVwaW5nIG1lY2hhbmlzbSwgaXQgZG9lcyBub3QgYWx0ZXIgdGhlIGNvbXBhbnkgb2JqZWN0LgogICAgICogVGhlIGNvbXBhbnkgbXVzdCBoYXZlIGFuIGV4aXN0aW5nIGlkCiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEBwYXJhbSBzdHJpbmdbXSBUaGUgYXJyYXkgb2YgZmlsZW5hbWVzIHRvIHJlbW92ZSBmcm9tIHRoZSBjb21wYW55IGZpbGVzIGRpcmVjdG9yeS4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2NvbXBhbnlfZmlsZXMoQ29tcGFueSAkY29tcGFueSwgYXJyYXkgJGZpbGVuYW1lcykgOiB2b2lkCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudC0+ZGVsZXRlX2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICRmaWxlbmFtZXMpOwogICAgfQoKICAgIC8qKgogICAgICogQ29weSBmaWxlcyBmcm9tIGEgc291cmNlIGxvY2F0aW9uIGludG8gdGhlIGNvbXBhbnkgZGlyZWN0b3J5LgogICAgICogVGhpcyBpcyBhIGhvdXNla2VlcGluZyBtZWNoYW5pc20gdXNlZCB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgY29tcGFueSB0byBtb3ZlIHJlbGF0ZWQgZmlsZXMgaW50byB0aGVpciBwZXJtYW5lbnQgbG9jYXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEBwYXJhbSBzdHJpbmdbXSBUaGUgYXJyYXkgb2YgZmlsZW5hbWVzIHRvIHJlbW92ZSBmcm9tIHRoZSBjb21wYW55IGZpbGVzIGRpcmVjdG9yeS4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY29weV9jb21wYW55X2ZpbGVzKENvbXBhbnkgJGNvbXBhbnksIGFycmF5ICRuZXdfZmlsZXMpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQtPmNvcHlfY29tcGFueV9maWxlcygkY29tcGFueSwgJG5ld19maWxlcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2ZpbGVfcGF0aChpbnQgJGlkKSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfY29tcGFueV9maWxlX3BhdGgoJGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbXBhbnlfZmlsZV91cmwoaW50ICRpZCkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NvbXBhbnlfZmlsZV91cmwoJGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX293bmVyc2hpcF9mb3IoaW50ICR1aWQpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnJlbW92ZV9vd25lcnNoaXBfZm9yKCR1aWQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVfYWxsX293bmVyc2hpcCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnJlbW92ZV9hbGxfb3duZXJzaGlwKCk7CiAgICB9Cgp9IC8vIGludGVyZmFjZQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManagerAutoURLDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZF91dGlsczsKCmNsYXNzIENvbXBhbnlNYW5hZ2VyQXV0b1VSTERlY29yYXRvciBpbXBsZW1lbnRzIElDb21wYW55TWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CiAgICBwcml2YXRlICRoZWxwZXI7CiAgICBwcml2YXRlICRzZXR0aW5nczsKICAgIHByaXZhdGUgJGxhbmc7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDb21wYW55TWFuYWdlciAkcGFyZW50LCBJVXJsU2x1Z0hlbHBlciAkaGVscGVyLCBzZXR0aW5ncyAkc2V0dGluZ3MsIGNhbGxhYmxlICRsYW5nKQogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQgPSAkcGFyZW50OwogICAgICAgICR0aGlzLT51cmxzbHVnX2hlbHBlciA9ICRoZWxwZXI7CiAgICAgICAgJHRoaXMtPnNldHRpbmdzID0gJHNldHRpbmdzOwogICAgICAgICR0aGlzLT5sYW5nID0gJGxhbmc7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxhbmcoKQogICAgewogICAgICAgICRhcmdzID0gZnVuY19nZXRfYXJncygpOwogICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuY19hcnJheSgkdGhpcy0+bGFuZywgJGFyZ3MpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfbmV3X2NvbXBhbnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9uZXdfY29tcGFueSgkZGF0YSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2FkIGEgY29tcGFueSBnaXZlbiBpdHMgaWQuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkaWQKICAgICAqIEByZXR1cm4gQ29tcGFueQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9pZChpbnQgJGlkKSA6IENvbXBhbnkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9pZCgkaWQpOwogICAgfQoKICAgIC8qKgogICAgICogTG9hZCBhcnRpY2xlcyBnaXZlbiBhIGZpbHRlciBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIGNkX2NvbXBhbnlfZmlsdGVyICRmaWx0ZXIKICAgICAqIEByZXR1cm4gQ29tcGFueVNldAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9xdWVyeShTcWxRdWVyeSAkcXVlcnkpIDogQ29tcGFueVNldAogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X3F1ZXJ5KCRxdWVyeSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTYXZlIGEgY29tcGFueQogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcmV0dXJuIENvbXBhbnkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgaWYoICEkY29tcGFueS0+dXJsICYmICgkdGhpcy0+c2V0dGluZ3MtPnVybF9hdXRvY3JlYXRlIHx8ICR0aGlzLT5zZXR0aW5ncy0+dXJsX3JlcXVpcmVkKSApIHsKICAgICAgICAgICAgaWYoICEkdGhpcy0+c2V0dGluZ3MtPnVybF9hdXRvY3JlYXRlICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+bGFuZygndXJsX3JlcXVpcmVkJykpOwoKICAgICAgICAgICAgJG5ld191cmwgPSAkdGhpcy0+dXJsc2x1Z19oZWxwZXItPmdlbmVyYXRlX3VybCgkY29tcGFueS0+Y29tcGFueV9uYW1lKTsKICAgICAgICAgICAgaWYoICEkbmV3X3VybCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2Vycm9yX2ludmFsaWRuYW1lJykpOwogICAgICAgICAgICAvLyBpZiggJHRoaXMtPnVybHNsdWdfaGVscGVyLT52YWxpZGF0ZV91cmwoJG5ld191cmwsICRjb21wYW55LT5pZCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdlcnJvcl9pbnZhbGlkdXJsJykpOwogICAgICAgICAgICAkY29tcGFueSA9ICRjb21wYW55LT53aXRoKCd1cmwnLCRuZXdfdXJsKTsKICAgICAgICB9CgogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5zYXZlKCRjb21wYW55KTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBhIGNvbXBhbnkKICAgICAqCiAgICAgKiBAcGFyYW0gQ29tcGFueSAkY29tcGFueQogICAgICogQHJldHVybiBDb21wYW55CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5wYXJlbnQtPmRlbGV0ZSgkY29tcGFueSk7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLyoqCiAgICAgKiBDb3B5IGEgY29tcGFueS4KICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgY29weSBhbiBlbnRpcmUgY29tcGFueS4KICAgICAqIEl0IHdpbGwgdXNlIHNldHRpbmdzIHRvIGRldGVybWluZSBpZiBhIG5ldyB1cmwgaXMgdG8gYmUgZ2VuZXJhdGVkCiAgICAgKiBpdCB3aWxsIGNvcHkgYW55IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29tcGFueQogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcmV0dXJuIENvbXBhbnkgdGhlIG5ldyBjb21wYW55IHdpdGggYSBuZXcgaWQuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjb3B5X2NvbXBhbnkoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgaWYoICEkdGhpcy0+c2V0dGluZ3MtPmFsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMgKSB7CiAgICAgICAgICAgIC8vIGdvdHRhIGFkanVzdCB0aGUgY29tcGFueSBuYW1lLgogICAgICAgICAgICAvLyBnZXQgdGhlIGxhc3Qgd29yZCBvdXQgb2YgdGhlIGNvbXBhbnkgbmFtZQogICAgICAgICAgICAkY29tcGFueV9uYW1lID0gJGNvbXBhbnktPmNvbXBhbnlfbmFtZTsKICAgICAgICAgICAgJG51bSA9IDI7CiAgICAgICAgICAgIGlmKCBwcmVnX21hdGNoKCcvXHNcKChbMC05XXsxLDN9KVwpJC8nLCAkY29tcGFueV9uYW1lLCAkbWF0Y2hlcykgKSB7CiAgICAgICAgICAgICAgICAkbnVtID0gKGludCkgJG1hdGNoZXNbMV0gKyAxOwogICAgICAgICAgICAgICAgJGNvbXBhbnlfbmFtZSA9IHN1YnN0cigkY29tcGFueV9uYW1lLDAsc3RybGVuKCRtYXRjaGVzWzBdKSAqIC0xKSAuICIgKCRudW0pIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRjb21wYW55X25hbWUgPSAiJGNvbXBhbnlfbmFtZSAoJG51bSkiOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ2NvbXBhbnlfbmFtZScsICRjb21wYW55X25hbWUpOwogICAgICAgIH0KCiAgICAgICAgJG9sZF91cmwgPSAkY29tcGFueS0+dXJsOwogICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ3VybCcsIG51bGwpOwogICAgICAgIGlmKCAkb2xkX3VybCAmJiAoJHRoaXMtPnNldHRpbmdzLT51cmxfcmVxdWlyZWQgfHwgJHRoaXMtPnNldHRpbmdzLT51cmxfYXV0b2NyZWF0ZSkgKSB7CiAgICAgICAgICAgIC8vIG9sZCBjb21wYW55IGhhZCBhIHVybCwgIGFuZCB1cmxzIGFyZSByZXF1aXJlZCwgc28gY3JlYXRlIGEgbmV3IHVybAogICAgICAgICAgICAkbmV3X3VybCA9ICR0aGlzLT51cmxzbHVnX2hlbHBlci0+Z2VuZXJhdGVfdXJsKCRjb21wYW55LT5jb21wYW55X25hbWUpOwogICAgICAgICAgICBpZiggISRuZXdfdXJsICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXJyb3JfaW52YWxpZG5hbWUnKSk7CiAgICAgICAgICAgICRjb21wYW55ID0gJGNvbXBhbnktPndpdGgoJ3VybCcsJG5ld191cmwpOwogICAgICAgIH0KICAgICAgICAkY29tcGFueSA9ICR0aGlzLT5wYXJlbnQtPmNvcHlfY29tcGFueSgkY29tcGFueSk7CiAgICAgICAgcmV0dXJuICRjb21wYW55OwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSBuYW1lZCBmaWxlcyBmcm9tIHRoZSBjb21wYW55IGRpcmVjdG9yeS4KICAgICAqIFRoaXMgaXMganVzdCBhIGhvdXNla2VlcGluZyBtZWNoYW5pc20sIGl0IGRvZXMgbm90IGFsdGVyIHRoZSBjb21wYW55IG9iamVjdC4KICAgICAqIFRoZSBjb21wYW55IG11c3QgaGF2ZSBhbiBleGlzdGluZyBpZAogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcGFyYW0gc3RyaW5nW10gVGhlIGFycmF5IG9mIGZpbGVuYW1lcyB0byByZW1vdmUgZnJvbSB0aGUgY29tcGFueSBmaWxlcyBkaXJlY3RvcnkuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9jb21wYW55X2ZpbGVzKENvbXBhbnkgJGNvbXBhbnksIGFycmF5ICRmaWxlbmFtZXMpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQtPmRlbGV0ZV9jb21wYW55X2ZpbGVzKCRjb21wYW55LCAkZmlsZW5hbWVzKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvcHkgZmlsZXMgZnJvbSBhIHNvdXJjZSBsb2NhdGlvbiBpbnRvIHRoZSBjb21wYW55IGRpcmVjdG9yeS4KICAgICAqIFRoaXMgaXMgYSBob3VzZWtlZXBpbmcgbWVjaGFuaXNtIHVzZWQgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGNvbXBhbnkgdG8gbW92ZSByZWxhdGVkIGZpbGVzIGludG8gdGhlaXIgcGVybWFuZW50IGxvY2F0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcGFyYW0gc3RyaW5nW10gVGhlIGFycmF5IG9mIGZpbGVuYW1lcyB0byByZW1vdmUgZnJvbSB0aGUgY29tcGFueSBmaWxlcyBkaXJlY3RvcnkuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueV9maWxlcyhDb21wYW55ICRjb21wYW55LCBhcnJheSAkbmV3X2ZpbGVzKSA6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50LT5jb3B5X2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICRuZXdfZmlsZXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29tcGFueV9maWxlX3BhdGgoaW50ICRpZCkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2ZpbGVfdXJsKGludCAkaWQpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jb21wYW55X2ZpbGVfdXJsKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZV9vd25lcnNoaXBfZm9yKGludCAkdWlkKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5yZW1vdmVfb3duZXJzaGlwX2ZvcigkdWlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX2FsbF9vd25lcnNoaXAoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5yZW1vdmVfYWxsX293bmVyc2hpcCgpOwogICAgfQp9IC8vIGludGVyZmFjZQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManagerFileCacheDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgY21zX2NhY2hlX2RyaXZlciBhcyBjYWNoZV9kcml2ZXI7CgpjbGFzcyBDb21wYW55TWFuYWdlckZpbGVDYWNoZURlY29yYXRvciBpbXBsZW1lbnRzIElDb21wYW55TWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CiAgICBwcml2YXRlICRjYWNoZV9kcml2ZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDb21wYW55TWFuYWdlciAkcGFyZW50LCBjYWNoZV9kcml2ZXIgJGRyaXZlcikKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50ID0gJHBhcmVudDsKICAgICAgICAkdGhpcy0+Y2FjaGVfZHJpdmVyID0gJGRyaXZlcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX25ld19jb21wYW55KGFycmF5ICRkYXRhID0gW10pIDogQ29tcGFueQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jcmVhdGVfbmV3X2NvbXBhbnkoJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogQ29tcGFueQogICAgewogICAgICAgIGlmKCAoJG9iaiA9ICR0aGlzLT5jYWNoZV9kcml2ZXItPmdldCgkaWQsX19GSUxFX18pKSApIHsKICAgICAgICAgICAgcmV0dXJuICRvYmo7CiAgICAgICAgfQogICAgICAgICRvYmogPSAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X2lkKCRpZCk7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+c2V0KCRpZCwkb2JqLF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9xdWVyeShTcWxRdWVyeSAkcXVlcnkpIDogQ29tcGFueVNldAogICAgewogICAgICAgIGlmKCAoJG9iaiA9ICR0aGlzLT5jYWNoZV9kcml2ZXItPmdldCgoc3RyaW5nKSRxdWVyeSwgX19GSUxFX18pKSApIHsKICAgICAgICAgICAgcmV0dXJuICRvYmo7CiAgICAgICAgfQogICAgICAgICRvYmogPSAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X3F1ZXJ5KCRxdWVyeSk7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+c2V0KChzdHJpbmcpJHF1ZXJ5LCAkb2JqLCBfX0ZJTEVfXyk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+Y2xlYXIoX19GSUxFX18pOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5zYXZlKCRjb21wYW55KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKENvbXBhbnkgJGNvbXBhbnkpIDogQ29tcGFueQogICAgewogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPmNsZWFyKF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+ZGVsZXRlKCRjb21wYW55KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY29weV9jb21wYW55KENvbXBhbnkgJGNvbXBhbnkpIDogQ29tcGFueQogICAgewogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPmNsZWFyKF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Y29weV9jb21wYW55KCRjb21wYW55KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2NvbXBhbnlfZmlsZXMoQ29tcGFueSAkY29tcGFueSwgYXJyYXkgJGZpbGVuYW1lcykgOiB2b2lkCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudC0+ZGVsZXRlX2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICRmaWxlbmFtZXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3B5X2NvbXBhbnlfZmlsZXMoQ29tcGFueSAkY29tcGFueSwgYXJyYXkgJG5ld19maWxlcykgOiB2b2lkCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudC0+Y29weV9jb21wYW55X2ZpbGVzKCRjb21wYW55LCAkbmV3X2ZpbGVzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbXBhbnlfZmlsZV9wYXRoKGludCAkaWQpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jb21wYW55X2ZpbGVfcGF0aCgkaWQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29tcGFueV9maWxlX3VybChpbnQgJGlkKSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfY29tcGFueV9maWxlX3VybCgkaWQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVfb3duZXJzaGlwX2ZvcihpbnQgJHVpZCkKICAgIHsKICAgICAgICAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5jbGVhcihfX0ZJTEVfXyk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnJlbW92ZV9vd25lcnNoaXBfZm9yKCR1aWQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVfYWxsX293bmVyc2hpcCgpCiAgICB7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+Y2xlYXIoX19GSUxFX18pOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5yZW1vdmVfYWxsX293bmVyc2hpcCgpOwogICAgfQoKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManagerHookDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xIb29rTWFuYWdlcjsKCmNsYXNzIENvbXBhbnlNYW5hZ2VySG9va0RlY29yYXRvciBpbXBsZW1lbnRzIElDb21wYW55TWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDb21wYW55TWFuYWdlciAkcGFyZW50KQogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQgPSAkcGFyZW50OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfbmV3X2NvbXBhbnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9uZXdfY29tcGFueSgkZGF0YSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2FkIGEgY29tcGFueSBnaXZlbiBpdHMgaWQuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkaWQKICAgICAqIEByZXR1cm4gQ29tcGFueQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9pZChpbnQgJGlkKSA6IENvbXBhbnkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9pZCgkaWQpOwogICAgfQoKICAgIC8qKgogICAgICogTG9hZCBhcnRpY2xlcyBnaXZlbiBhIGZpbHRlciBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIGNkX2NvbXBhbnlfZmlsdGVyICRmaWx0ZXIKICAgICAqIEByZXR1cm4gQ29tcGFueVNldAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9xdWVyeShTcWxRdWVyeSAkcXVlcnkpIDogQ29tcGFueVNldAogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X3F1ZXJ5KCRxdWVyeSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTYXZlIGEgY29tcGFueQogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcmV0dXJuIENvbXBhbnkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZVNhdmVDb21wYW55JywkY29tcGFueSk7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5wYXJlbnQtPnNhdmUoJGNvbXBhbnkpOwogICAgICAgIEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDb21wYW55RGlyZWN0b3J5OjpBZnRlclNhdmVDb21wYW55JywkcmVzKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBhIGNvbXBhbnkKICAgICAqCiAgICAgKiBAcGFyYW0gQ29tcGFueSAkY29tcGFueQogICAgICogQHJldHVybiBDb21wYW55CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUNvbXBhbnknLCRjb21wYW55KTsKICAgICAgICAkcmVzID0gJHRoaXMtPnBhcmVudC0+ZGVsZXRlKCRjb21wYW55KTsKICAgICAgICBIb29rTWFuYWdlcjo6ZG9faG9vaygnQ29tcGFueURpcmVjdG9yeTo6QWZ0ZXJEZWxldGVDb21wYW55JywkcmVzKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvKioKICAgICAqIENvcHkgYSBjb21wYW55LgogICAgICogVGhpcyBtZXRob2Qgd2lsbCBjb3B5IGFuIGVudGlyZSBjb21wYW55LgogICAgICogSXQgd2lsbCB1c2Ugc2V0dGluZ3MgdG8gZGV0ZXJtaW5lIGlmIGEgbmV3IHVybCBpcyB0byBiZSBnZW5lcmF0ZWQKICAgICAqIGl0IHdpbGwgY29weSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wYW55CiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEByZXR1cm4gQ29tcGFueSB0aGUgbmV3IGNvbXBhbnkgd2l0aCBhIG5ldyBpZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueShDb21wYW55ICRjb21wYW55KSA6IENvbXBhbnkKICAgIHsKICAgICAgICBIb29rTWFuYWdlcjo6ZG9faG9vaygnQ29tcGFueURpcmVjdG9yeTo6QmVmb3JlQ29weUNvbXBhbnknLCRjb21wYW55KTsKICAgICAgICAkcmVzID0gJHRoaXMtPnBhcmVudC0+Y29weV9jb21wYW55KCRjb21wYW55KTsKICAgICAgICBIb29rTWFuYWdlcjo6ZG9faG9vaygnQ29tcGFueURpcmVjdG9yeTo6QmVmb3JlQ29weUNvbXBhbnknLCRyZXMpOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSBuYW1lZCBmaWxlcyBmcm9tIHRoZSBjb21wYW55IGRpcmVjdG9yeS4KICAgICAqIFRoaXMgaXMganVzdCBhIGhvdXNla2VlcGluZyBtZWNoYW5pc20sIGl0IGRvZXMgbm90IGFsdGVyIHRoZSBjb21wYW55IG9iamVjdC4KICAgICAqIFRoZSBjb21wYW55IG11c3QgaGF2ZSBhbiBleGlzdGluZyBpZAogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcGFyYW0gc3RyaW5nW10gVGhlIGFycmF5IG9mIGZpbGVuYW1lcyB0byByZW1vdmUgZnJvbSB0aGUgY29tcGFueSBmaWxlcyBkaXJlY3RvcnkuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9jb21wYW55X2ZpbGVzKENvbXBhbnkgJGNvbXBhbnksIGFycmF5ICRmaWxlbmFtZXMpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQtPmRlbGV0ZV9jb21wYW55X2ZpbGVzKCRjb21wYW55LCAkZmlsZW5hbWVzKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvcHkgZmlsZXMgZnJvbSBhIHNvdXJjZSBsb2NhdGlvbiBpbnRvIHRoZSBjb21wYW55IGRpcmVjdG9yeS4KICAgICAqIFRoaXMgaXMgYSBob3VzZWtlZXBpbmcgbWVjaGFuaXNtIHVzZWQgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGNvbXBhbnkgdG8gbW92ZSByZWxhdGVkIGZpbGVzIGludG8gdGhlaXIgcGVybWFuZW50IGxvY2F0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcGFyYW0gc3RyaW5nW10gVGhlIGFycmF5IG9mIGZpbGVuYW1lcyB0byByZW1vdmUgZnJvbSB0aGUgY29tcGFueSBmaWxlcyBkaXJlY3RvcnkuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueV9maWxlcyhDb21wYW55ICRjb21wYW55LCBhcnJheSAkbmV3X2ZpbGVzKSA6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50LT5jb3B5X2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICRuZXdfZmlsZXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29tcGFueV9maWxlX3BhdGgoaW50ICRpZCkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2ZpbGVfdXJsKGludCAkaWQpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jb21wYW55X2ZpbGVfdXJsKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZV9vd25lcnNoaXBfZm9yKGludCAkdWlkKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5yZW1vdmVfb3duZXJzaGlwX2ZvcigkdWlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX2FsbF9vd25lcnNoaXAoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5yZW1vdmVfYWxsX293bmVyc2hpcCgpOwogICAgfQoKfSAvLyBpbnRlcmZhY2U=]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManagerMemoryCacheDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQ29tcGFueU1hbmFnZXJNZW1vcnlDYWNoZURlY29yYXRvciBpbXBsZW1lbnRzIElDb21wYW55TWFuYWdlcgp7CiAgICAvLyBjYWNoZXMgY29tcGFuaWVzIGZvciBvbmUgcmVxdWVzdC4KICAgIC8vIHVzZWZ1bCBmb3IgY2FsbHMgdG8ge2NkX2dldGNvbXBhbnl9IGV0Yy4gb3IgYW55dGhpbmcgdGhhdCBjYWxscyBsb2FkX2J5X2lkIGZyb20gc21hcnR5LgogICAgcHJpdmF0ZSAkcGFyZW50OwogICAgcHJpdmF0ZSAkY29tcGFuaWVzID0gW107CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDb21wYW55TWFuYWdlciAkcGFyZW50KQogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQgPSAkcGFyZW50OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfbmV3X2NvbXBhbnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9uZXdfY29tcGFueSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBDb21wYW55CiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5jb21wYW5pZXNbJGlkXSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y29tcGFuaWVzWyRpZF07CiAgICAgICAgfQogICAgICAgICRvYmogPSAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X2lkKCRpZCk7CiAgICAgICAgJHRoaXMtPmNvbXBhbmllc1skaWRdID0gJG9iajsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9xdWVyeShTcWxRdWVyeSAkcXVlcnkpIDogQ29tcGFueVNldAogICAgewogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X3F1ZXJ5KCRxdWVyeSk7CiAgICAgICAgZm9yZWFjaCgkcmVzIGFzICRjb21wYW55KSB7CiAgICAgICAgICAgICR0aGlzLT5jb21wYW5pZXNbJGNvbXBhbnktPmlkXSA9ICRjb21wYW55OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZShDb21wYW55ICRjb21wYW55KSA6IENvbXBhbnkKICAgIHsKICAgICAgICAkdGhpcy0+Y29tcGFuaWVzID0gW107CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnNhdmUoJGNvbXBhbnkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJHRoaXMtPmNvbXBhbmllcyA9IFtdOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGNvbXBhbnkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3B5X2NvbXBhbnkoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJHRoaXMtPmNvbXBhbmllcyA9IFtdOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jb3B5X2NvbXBhbnkoJGNvbXBhbnkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVfY29tcGFueV9maWxlcyhDb21wYW55ICRjb21wYW55LCBhcnJheSAkZmlsZW5hbWVzKSA6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50LT5kZWxldGVfY29tcGFueV9maWxlcygkY29tcGFueSwgJGZpbGVuYW1lcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueV9maWxlcyhDb21wYW55ICRjb21wYW55LCBhcnJheSAkbmV3X2ZpbGVzKSA6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50LT5jb3B5X2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICRuZXdfZmlsZXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29tcGFueV9maWxlX3BhdGgoaW50ICRpZCkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2ZpbGVfdXJsKGludCAkaWQpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jb21wYW55X2ZpbGVfdXJsKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZV9vd25lcnNoaXBfZm9yKGludCAkdWlkKQogICAgewogICAgICAgICR0aGlzLT5jb21wYW5pZXMgPSBbXTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+cmVtb3ZlX293bmVyc2hpcF9mb3IoJHVpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZV9hbGxfb3duZXJzaGlwKCkKICAgIHsKICAgICAgICAkdGhpcy0+Y29tcGFuaWVzID0gW107CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnJlbW92ZV9hbGxfb3duZXJzaGlwKCk7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManagerSearchDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgU2VhcmNoOwoKY2xhc3MgQ29tcGFueU1hbmFnZXJTZWFyY2hEZWNvcmF0b3IgaW1wbGVtZW50cyBJQ29tcGFueU1hbmFnZXIKewogICAgcHJpdmF0ZSAkcGFyZW50OwogICAgcHJpdmF0ZSAkc2VhcmNoX21vZHVsZTsKICAgIHByaXZhdGUgJHNlYXJjaF9oZWxwZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDb21wYW55TWFuYWdlciAkcGFyZW50LCBTZWFyY2ggJHNlYXJjaCwgSVNlYXJjaEhlbHBlciAkc2hlbHBlcikKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50ID0gJHBhcmVudDsKICAgICAgICAkdGhpcy0+c2VhcmNoX21vZHVsZSA9ICRzZWFyY2g7CiAgICAgICAgJHRoaXMtPnNlYXJjaF9oZWxwZXIgPSAkc2hlbHBlcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX25ld19jb21wYW55KGFycmF5ICRkYXRhID0gW10pIDogQ29tcGFueQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jcmVhdGVfbmV3X2NvbXBhbnkoJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogQ29tcGFueQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X2lkKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfcXVlcnkoU3FsUXVlcnkgJHF1ZXJ5KSA6IENvbXBhbnlTZXQKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9xdWVyeSgkcXVlcnkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKENvbXBhbnkgJGNvbXBhbnkpIDogQ29tcGFueQogICAgewogICAgICAgICRjb21wYW55ID0gJHRoaXMtPnBhcmVudC0+c2F2ZSgkY29tcGFueSk7CiAgICAgICAgaWYoICRjb21wYW55LT5zdGF0dXMgPT0gJ3B1Ymxpc2hlZCcgKSB7CiAgICAgICAgICAgICR0ZXh0ID0gJHRoaXMtPnNlYXJjaF9oZWxwZXItPmdldF9zZWFyY2hfd29yZHMoJGNvbXBhbnkpOwogICAgICAgICAgICAkdGhpcy0+c2VhcmNoX21vZHVsZS0+QWRkV29yZHMoJ0NvbXBhbnlEaXJlY3RvcnknLCAkY29tcGFueS0+aWQsICdjb21wYW55JywgJHRleHQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5zZWFyY2hfbW9kdWxlLT5EZWxldGVXb3JkcygnQ29tcGFueURpcmVjdG9yeScsICRjb21wYW55LT5pZCwgJ2NvbXBhbnknKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb21wYW55OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJHRoaXMtPnNlYXJjaF9tb2R1bGUtPkRlbGV0ZVdvcmRzKCdDb21wYW55RGlyZWN0b3J5JywgJGNvbXBhbnktPmlkLCAnY29tcGFueScpOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGNvbXBhbnkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb3B5X2NvbXBhbnkoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNvcHlfY29tcGFueSgkY29tcGFueSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9jb21wYW55X2ZpbGVzKENvbXBhbnkgJGNvbXBhbnksIGFycmF5ICRmaWxlbmFtZXMpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQtPmRlbGV0ZV9jb21wYW55X2ZpbGVzKCRjb21wYW55LCAkZmlsZW5hbWVzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY29weV9jb21wYW55X2ZpbGVzKENvbXBhbnkgJGNvbXBhbnksIGFycmF5ICRuZXdfZmlsZXMpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQtPmNvcHlfY29tcGFueV9maWxlcygkY29tcGFueSwgJG5ld19maWxlcyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2ZpbGVfcGF0aChpbnQgJGlkKSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfY29tcGFueV9maWxlX3BhdGgoJGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbXBhbnlfZmlsZV91cmwoaW50ICRpZCkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NvbXBhbnlfZmlsZV91cmwoJGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX293bmVyc2hpcF9mb3IoaW50ICR1aWQpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnJlbW92ZV9vd25lcnNoaXBfZm9yKCR1aWQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVfYWxsX293bmVyc2hpcCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnJlbW92ZV9hbGxfb3duZXJzaGlwKCk7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanyManagerStaticRouteDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDbXNSb3V0ZTsKCi8qKgogKiBJZiB3ZSBoYXZlIGEgZGV0YWlscGFnZS4uLiBhbmQgYSBjb21wYW55IGhhcyBhICd1cmwgc2x1ZycgdGhlbiB3ZSBjYW4gY3JlYXRlIHN0YXRpYyByb3V0ZXMuCiAqIHRoaXMgZGVjb3JhdG9yIGhhbmRsZXMgYWxsIG9mIHRoYXQKICovCmNsYXNzIENvbXBhbnlNYW5hZ2VyU3RhdGljUm91dGVEZWNvcmF0b3IgaW1wbGVtZW50cyBJQ29tcGFueU1hbmFnZXIKewogICAgcHJpdmF0ZSAkcGFyZW50OwogICAgcHJpdmF0ZSAkcm91dGVfbWFuYWdlcjsKICAgIHByaXZhdGUgJGRldGFpbHBhZ2U7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDb21wYW55TWFuYWdlciAkcGFyZW50LCByb3V0ZV9tYW5hZ2VyX3N0dWIgJHJvdXRlX21hbmFnZXIsIGludCAkZGV0YWlscGFnZSkKICAgIHsKICAgICAgICBpZiggJGRldGFpbHBhZ2UgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgZGV0YWlsIHBhZ2UgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHRoaXMtPnBhcmVudCA9ICRwYXJlbnQ7CiAgICAgICAgJHRoaXMtPnJvdXRlX21hbmFnZXIgPSAkcm91dGVfbWFuYWdlcjsKICAgICAgICAkdGhpcy0+ZGV0YWlscGFnZSA9ICRkZXRhaWxwYWdlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfbmV3X2NvbXBhbnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9uZXdfY29tcGFueSgkZGF0YSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBMb2FkIGEgY29tcGFueSBnaXZlbiBpdHMgaWQuCiAgICAgKgogICAgICogQHBhcmFtIGludCAkaWQKICAgICAqIEByZXR1cm4gQ29tcGFueQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9pZChpbnQgJGlkKSA6IENvbXBhbnkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9pZCgkaWQpOwogICAgfQoKICAgIC8qKgogICAgICogTG9hZCBhcnRpY2xlcyBnaXZlbiBhIGZpbHRlciBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIGNkX2NvbXBhbnlfZmlsdGVyICRmaWx0ZXIKICAgICAqIEByZXR1cm4gQ29tcGFueVNldAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9xdWVyeShTcWxRdWVyeSAkcXVlcnkpIDogQ29tcGFueVNldAogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X3F1ZXJ5KCRxdWVyeSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBTYXZlIGEgY29tcGFueQogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcmV0dXJuIENvbXBhbnkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgJGNvbXBhbnkgPSAkdGhpcy0+cGFyZW50LT5zYXZlKCRjb21wYW55KTsKICAgICAgICAkcGFybXMgPSBbJ2FjdGlvbic9PidkZXRhaWxzJywgJ3JldHVybmlkJz0+JHRoaXMtPmRldGFpbHBhZ2UsICdjb21waWQnPT4kY29tcGFueS0+aWRdOwogICAgICAgICRyb3V0ZSA9IENtc1JvdXRlOjpuZXdfYnVpbGRlcigkY29tcGFueS0+dXJsLCAnQ29tcGFueURpcmVjdG9yeScsICRjb21wYW55LT5pZCwgJHBhcm1zLCBUUlVFKTsKICAgICAgICAkdGhpcy0+cm91dGVfbWFuYWdlci0+YWRkX3N0YXRpYygkcm91dGUpOwogICAgICAgIHJldHVybiAkY29tcGFueTsKICAgIH0KCiAgICAvKioKICAgICAqIERlbGV0ZSBhIGNvbXBhbnkKICAgICAqCiAgICAgKiBAcGFyYW0gQ29tcGFueSAkY29tcGFueQogICAgICogQHJldHVybiBDb21wYW55CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ29tcGFueSAkY29tcGFueSkgOiBDb21wYW55CiAgICB7CiAgICAgICAgLy8gcmVtb3ZlIHN0YXRpYyByb3V0ZSBmb3IgdGhpcyB0aGluZwogICAgICAgIGlmKCAkY29tcGFueS0+dXJsICkgJHRoaXMtPnJvdXRlX21hbmFnZXItPmRlbF9zdGF0aWMoJycsJ0NvbXBhbnlEaXJlY3RvcnknLCAkY29tcGFueS0+aWQpOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGNvbXBhbnkpOwogICAgfQoKICAgIC8qKgogICAgICogQ29weSBhIGNvbXBhbnkuCiAgICAgKiBUaGlzIG1ldGhvZCB3aWxsIGNvcHkgYW4gZW50aXJlIGNvbXBhbnkuCiAgICAgKiBJdCB3aWxsIHVzZSBzZXR0aW5ncyB0byBkZXRlcm1pbmUgaWYgYSBuZXcgdXJsIGlzIHRvIGJlIGdlbmVyYXRlZAogICAgICogaXQgd2lsbCBjb3B5IGFueSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbXBhbnkKICAgICAqCiAgICAgKiBAcGFyYW0gQ29tcGFueSAkY29tcGFueQogICAgICogQHJldHVybiBDb21wYW55IHRoZSBuZXcgY29tcGFueSB3aXRoIGEgbmV3IGlkLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY29weV9jb21wYW55KENvbXBhbnkgJGNvbXBhbnkpIDogQ29tcGFueQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jb3B5X2NvbXBhbnkoJGNvbXBhbnkpOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIHRoZSBuYW1lZCBmaWxlcyBmcm9tIHRoZSBjb21wYW55IGRpcmVjdG9yeS4KICAgICAqIFRoaXMgaXMganVzdCBhIGhvdXNla2VlcGluZyBtZWNoYW5pc20sIGl0IGRvZXMgbm90IGFsdGVyIHRoZSBjb21wYW55IG9iamVjdC4KICAgICAqIFRoZSBjb21wYW55IG11c3QgaGF2ZSBhbiBleGlzdGluZyBpZAogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcGFyYW0gc3RyaW5nW10gVGhlIGFycmF5IG9mIGZpbGVuYW1lcyB0byByZW1vdmUgZnJvbSB0aGUgY29tcGFueSBmaWxlcyBkaXJlY3RvcnkuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9jb21wYW55X2ZpbGVzKENvbXBhbnkgJGNvbXBhbnksIGFycmF5ICRmaWxlbmFtZXMpIDogdm9pZAogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQtPmRlbGV0ZV9jb21wYW55X2ZpbGVzKCRjb21wYW55LCAkZmlsZW5hbWVzKTsKICAgIH0KCiAgICAvKioKICAgICAqIENvcHkgZmlsZXMgZnJvbSBhIHNvdXJjZSBsb2NhdGlvbiBpbnRvIHRoZSBjb21wYW55IGRpcmVjdG9yeS4KICAgICAqIFRoaXMgaXMgYSBob3VzZWtlZXBpbmcgbWVjaGFuaXNtIHVzZWQgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGNvbXBhbnkgdG8gbW92ZSByZWxhdGVkIGZpbGVzIGludG8gdGhlaXIgcGVybWFuZW50IGxvY2F0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBDb21wYW55ICRjb21wYW55CiAgICAgKiBAcGFyYW0gc3RyaW5nW10gVGhlIGFycmF5IG9mIGZpbGVuYW1lcyB0byByZW1vdmUgZnJvbSB0aGUgY29tcGFueSBmaWxlcyBkaXJlY3RvcnkuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueV9maWxlcyhDb21wYW55ICRjb21wYW55LCBhcnJheSAkbmV3X2ZpbGVzKSA6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50LT5jb3B5X2NvbXBhbnlfZmlsZXMoJGNvbXBhbnksICRuZXdfZmlsZXMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY29tcGFueV9maWxlX3BhdGgoaW50ICRpZCkgOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2ZpbGVfdXJsKGludCAkaWQpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9jb21wYW55X2ZpbGVfdXJsKCRpZCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHJlbW92ZV9vd25lcnNoaXBfZm9yKGludCAkdWlkKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5yZW1vdmVfb3duZXJzaGlwX2ZvcigkdWlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX2FsbF9vd25lcnNoaXAoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5yZW1vdmVfYWxsX293bmVyc2hpcCgpOwogICAgfQoKfSAvLyBpbnRlcmZhY2UK]]></data>
	</file>
	<file>
	  <filename>/lib/class.CompanySet.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgQ29tcGFueVNldCBleHRlbmRzIEZpbHRlclJlc3VsdHNldAp7CiAgICAvKioKICAgICAqIENvbnN0cnVjdCBhbiBVcGxvYWRTZXQKICAgICAqCiAgICAgKiBAcGFyYW0gVXBsb2FkRmlsdGVyICRmaWx0ZXIgVGhlIGZpbHRlciB1c2VkIHRvIGNyZWF0ZSB0aGUgYXJyYXkgb2YgbWF0Y2hlcy4gIEZvciB1c2UgaW4gcGFnaW5hdGlvbi4KICAgICAqIEBwYXJhbSBpbnQgJHRvdGFsTWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHVwbG9hZHMgdGhhdCBtYXRjaCB0aGUgZmlsdGVyLgogICAgICogQHBhcmFtIGFycmF5ICRtYXRjaGVzIFRoZSBtYXRjaGVzIGxvYWRlZCBmcm9tIHRoZSBkYXRhYmFzZS4gICBNYXkgYmUgPD0gJHRvdGFsTWF0Y2hlcwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoIGFycmF5ICRtYXRjaGVzID0gbnVsbCwgaW50ICR0b3RhbE1hdGNoZXMsIGludCAkb2Zmc2V0LCBpbnQgJGxpbWl0KQogICAgewogICAgICAgIGlmKCAkb2Zmc2V0ID49ICR0b3RhbE1hdGNoZXMgJiYgJG9mZnNldCAhPSAwICYmICFpc19udWxsKCRtYXRjaGVzKSkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgaW5mb3JtYXRpb24gcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCggJG1hdGNoZXMsICR0b3RhbE1hdGNoZXMsICRvZmZzZXQsICRsaW1pdCApOwogICAgfQoKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldDefinition.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgRmllbGREZWZpbml0aW9uCnsKICAgIC8vIHNvbWUgZmllbGRzIHVzZSB0aGUgJ2RhdGEnIGZpZWxkIHRvIHNhdmUgZmlsZSBleHRlbnNpb25zCiAgICBwcml2YXRlICRfZGF0YSA9IFsgJ2lkJz0+bnVsbCwgJ25hbWUnPT5udWxsLCAndHlwZSc9Pm51bGwsICdtYXhfbGVuZ3RoJz0+bnVsbCwgJ2l0ZW1fb3JkZXInPT5udWxsLCAnYWRtaW5fb25seSc9Pm51bGwsICdwdWJsaWMnPT5udWxsLCAnZHJvcGRvd25fZGF0YSc9Pm51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnPT5udWxsIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRkYXRhKQogICAgewogICAgICAgIGZvcmVhY2goICRkYXRhIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgICAgICAgICBpZiggaXNfbnVsbCgkdmFsKSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiggKGludCkkdmFsIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpICR2YWw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ21heF9sZW5ndGgnOgogICAgICAgICAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgJHZhbCA9IChpbnQpICR2YWw7CiAgICAgICAgICAgICAgICBpZiggJHZhbCA9PSAwICkgJHZhbCA9IG51bGw7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdpdGVtX29yZGVyJzoKICAgICAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApIHsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAgICAgICAgICAgICBpZiggJHZhbCA8IDAgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBpdGVtX29yZGVyIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnYWRtaW5fb25seSc6CiAgICAgICAgICAgIGNhc2UgJ3B1YmxpYyc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBjbXNfdG9fYm9vbCgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgIGNhc2UgJ3R5cGUnOgogICAgICAgICAgICBjYXNlICdkcm9wZG93bl9kYXRhJzoKICAgICAgICAgICAgY2FzZSAnZGF0YSc6ICAgLy8gc29tZSBmaWVsZHMgbWF5IHVzZSB0aGlzIHN0cmluZwogICAgICAgICAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgJHZhbCA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldChzdHJpbmcgJGtleSkKICAgIHsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnaWQnOgogICAgICAgIGNhc2UgJ21heF9sZW5ndGgnOgogICAgICAgIGNhc2UgJ2l0ZW1fb3JkZXInOgogICAgICAgICAgICBpZiggIWlzX251bGwoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICd0eXBlJzoKICAgICAgICBjYXNlICdkcm9wZG93bl9kYXRhJzoKICAgICAgICBjYXNlICdkYXRhJzoKICAgICAgICAgICAgaWYoICFpc19udWxsKCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gdHJpbSgkdGhpcy0+X2RhdGFbJGtleV0pOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnYWRtaW5fb25seSc6CiAgICAgICAgY2FzZSAncHVibGljJzoKICAgICAgICAgICAgaWYoICFpc19udWxsKCR0aGlzLT5fZGF0YVska2V5XSkgKSByZXR1cm4gKGJvb2wpICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgZ2V0dGFibGUgcHJvcGVydHkgb2YgIi5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoc3RyaW5nICRrZXksICR2YWwpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGgoc3RyaW5nICRrZXksICR2YWwpIDogc2VsZgogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPl9kYXRhOwogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnbWF4X2xlbmd0aCc6CiAgICAgICAgY2FzZSAnaXRlbV9vcmRlcic6CiAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgY2FzZSAndHlwZSc6CiAgICAgICAgY2FzZSAnZHJvcGRvd25fZGF0YSc6CiAgICAgICAgY2FzZSAnZGF0YSc6CiAgICAgICAgY2FzZSAnYWRtaW5fb25seSc6CiAgICAgICAgY2FzZSAncHVibGljJzoKICAgICAgICAgICAgJGRhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYW4gYWRqdXN0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgc2VsZigkZGF0YSk7CiAgICB9Cn0gLy8gY2xzc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldDefManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcRGF0YWJhc2VcQ29ubmVjdGlvbiBhcyBEYXRhYmFzZTsKdXNlIFNwbHN1YmplY3Q7CgpjbGFzcyBGaWVsZERlZk1hbmFnZXIgaW1wbGVtZW50cyBJRmllbGREZWZNYW5hZ2VyLCBJRGVjb3JhdGVkLCBTcGxTdWJqZWN0CnsKICAgIHVzZSBPYnNlcnZhYmxlOyAgLy8gdHJhaXQKCiAgICBwcml2YXRlICRkYjsKICAgIHByaXZhdGUgJGxhbmc7CiAgICBwcml2YXRlICRsYXN0X2RlY29yYXRvcjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoRGF0YWJhc2UgJGRiLCBjYWxsYWJsZSAkbGFuZykKICAgIHsKICAgICAgICAkdGhpcy0+ZGIgPSAkZGI7CiAgICAgICAgJHRoaXMtPmxhbmcgPSAkbGFuZzsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gbGFuZygpCiAgICB7CiAgICAgICAgJGFyZ3MgPSBmdW5jX2dldF9hcmdzKCk7CiAgICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KCR0aGlzLT5sYW5nLCAkYXJncyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9maWVsZGRlZihhcnJheSAkZGF0YSA9IFtdKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgICRkYXRhID0gYXJyYXlfbWVyZ2UoWydhZG1pbl9vbmx5Jz0+ZmFsc2UsICdwdWJsaWMnPT50cnVlXSwgJGRhdGEpOwogICAgICAgIHJldHVybiBuZXcgRmllbGREZWZpbml0aW9uKCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9pZChpbnQgJGlkKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLiR0aGlzLT50YWJsZV9uYW1lKCkuJyBXSEVSRSBpZCA9ID8nOwogICAgICAgICRyb3cgPSAkdGhpcy0+ZGItPkdldFJvdygkc3FsLCBbJGlkXSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcm93KSApIHRocm93IG5ldyBcT3V0T2ZCb3VuZHNFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaWVsZGRlZiB3aXRoIHRoZSBpZCAnLiRpZCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5jcmVhdGVfZmllbGRkZWYoJHJvdyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfbmFtZShzdHJpbmcgJG5hbWUpIDogRmllbGREZWZpbml0aW9uCiAgICB7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+Z2V0X2xpc3QoKTsKICAgICAgICBpZiggISRsaXN0ICkgdGhyb3cgbmV3IFxPdXRPZkJvdW5kc0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgZmllbGRkZWYgd2l0aCB0aGUgbmFtZSAnLiRuYW1lKTsKICAgICAgICAkbGlzdCA9IGFycmF5X2ZsaXAoJGxpc3QpOwogICAgICAgIGlmKCAhaXNzZXQoJGxpc3RbJG5hbWVdKSApIHRocm93IG5ldyBcT3V0T2ZCb3VuZHNFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGZpZWxkZGVmIHdpdGggdGhlIG5hbWUgJy4kbmFtZSk7CiAgICAgICAgJGZkaWQgPSAkbGlzdFskbmFtZV07CiAgICAgICAgcmV0dXJuICR0aGlzLT5sb2FkX2J5X2lkKCRmZGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9hbGwoKQogICAgewogICAgICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLiR0aGlzLT50YWJsZV9uYW1lKCkuJyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKICAgICAgICAkbGlzdCA9ICR0aGlzLT5kYi0+R2V0QXJyYXkoJHNxbCk7CiAgICAgICAgaWYoIGVtcHR5KCRsaXN0KSApIHJldHVybjsKCiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJHJvdyApIHsKICAgICAgICAgICAgJG91dFtdID0gbmV3IEZpZWxkRGVmaW5pdGlvbigkcm93KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfcHVibGljKCkKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy4kdGhpcy0+dGFibGVfbmFtZSgpLicgV0hFUkUgcHVibGljID0gMSBPUkRFUiBCWSBpdGVtX29yZGVyJzsKICAgICAgICAkbGlzdCA9ICR0aGlzLT5kYi0+R2V0QXJyYXkoJHNxbCk7CiAgICAgICAgaWYoIGVtcHR5KCRsaXN0KSApIHJldHVybjsKCiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJHJvdyApIHsKICAgICAgICAgICAgJG91dFtdID0gbmV3IEZpZWxkRGVmaW5pdGlvbigkcm93KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saXN0KCkKICAgIHsKICAgICAgICAkYWxsID0gJHRoaXMtPmxvYWRfYWxsKCk7CiAgICAgICAgaWYoICEkYWxsICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkYWxsIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRvdXRbJG9uZS0+aWRdID0gJG9uZS0+bmFtZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlKEZpZWxkRGVmaW5pdGlvbiAkZGVmKQogICAgewogICAgICAgIGlmKCAhJGRlZi0+bmFtZSApIHRocm93IG5ldyBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ25vbmFtZWdpdmVuJykpOwogICAgICAgIGlmKCBwcmVnX21hdGNoKCcvW15cdyBcK1wuXCZdLycsJGRlZi0+bmFtZSkgKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdiYWRuYW1lZ2l2ZW4nKSk7CiAgICAgICAgaWYoIHN0cnBvcygkZGVmLT5uYW1lLCAnfCcpICE9PSBGQUxTRSApIHRocm93IG5ldyBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2JhZG5hbWVnaXZlbicpKTsKICAgICAgICBpZiggJGRlZi0+aWQgPiAwICkgewogICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCBGUk9NICcuJHRoaXMtPnRhYmxlX25hbWUoKS4nIFdIRVJFIG5hbWUgPSA/IEFORCBpZCAhPSA/JzsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskZGVmLT5uYW1lLCAkZGVmLT5pZF0pOwogICAgICAgICAgICBpZiggJHRtcCA+IDAgKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdlcnJvcl9kdXBsaWNhdGVfZmllbGRkZWYnKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCBGUk9NICcuJHRoaXMtPnRhYmxlX25hbWUoKS4nIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskZGVmLT5uYW1lXSk7CiAgICAgICAgICAgIGlmKCAkdG1wID4gMCApIHRocm93IG5ldyBcQ21zSW52YWxpZERhdGFFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2Vycm9yX2R1cGxpY2F0ZV9maWVsZGRlZicpKTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGluc2VydChGaWVsZERlZmluaXRpb24gJGRlZikgOiBGaWVsZERlZmluaXRpb24KICAgIHsKICAgICAgICAvLyBzZWxlY3QgYSBuZXcgaXRlbV9vcmRlcgogICAgICAgICRzcWwgPSAnU0VMRUNUIENPQUxFU0NFKE1BWChpdGVtX29yZGVyKSwwKSsxIEZST00gJy4kdGhpcy0+dGFibGVfbmFtZSgpOwogICAgICAgICRpdGVtX29yZGVyID0gKGludCkgJHRoaXMtPmRiLT5HZXRPbmUoJHNxbCk7CiAgICAgICAgJGRlZiA9ICRkZWYtPndpdGgoJ2l0ZW1fb3JkZXInLCAkaXRlbV9vcmRlcik7CgogICAgICAgICRzcWwgPSAnSU5TRVJUIElOVE8gJy4kdGhpcy0+dGFibGVfbmFtZSgpLicgKG5hbWUsIHR5cGUsIG1heF9sZW5ndGgsIGl0ZW1fb3JkZXIsIGFkbWluX29ubHksIHB1YmxpYywgZHJvcGRvd25fZGF0YSwgZGF0YSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpCiAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyxOT1coKSxOT1coKSknOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJGRlZi0+bmFtZSwgJGRlZi0+dHlwZSwgJGRlZi0+bWF4X2xlbmd0aCwgJGRlZi0+aXRlbV9vcmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkZWYtPmFkbWluX29ubHksICRkZWYtPnB1YmxpYywgJGRlZi0+ZHJvcGRvd25fZGF0YSwgJGRlZi0+ZGF0YV0gKTsKICAgICAgICAkbmV3X2lkID0gKGludCkgJHRoaXMtPmRiLT5JbnNlcnRfSUQoKTsKICAgICAgICAkZGVmID0gJGRlZi0+d2l0aCgnaWQnLCRuZXdfaWQpOwogICAgICAgIHJldHVybiAkZGVmOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiB1cGRhdGUoRmllbGREZWZpbml0aW9uICRkZWYpIDogRmllbGREZWZpbml0aW9uCiAgICB7CiAgICAgICAgJHNxbCA9ICdVUERBVEUgJy4kdGhpcy0+dGFibGVfbmFtZSgpLicgU0VUIG5hbWUgPSA/LCB0eXBlID0gPywgbWF4X2xlbmd0aCA9ID8sIGl0ZW1fb3JkZXIgPSA/LAogICAgICAgICAgICAgICAgYWRtaW5fb25seSA9ID8sIHB1YmxpYyA9ID8sIGRyb3Bkb3duX2RhdGEgPSA/LCBkYXRhID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpCiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJGRlZi0+bmFtZSwgJGRlZi0+dHlwZSwgJGRlZi0+bWF4X2xlbmd0aCwgJGRlZi0+aXRlbV9vcmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkZWYtPmFkbWluX29ubHksICRkZWYtPnB1YmxpYywgJGRlZi0+ZHJvcGRvd25fZGF0YSwgJGRlZi0+ZGF0YSwgJGRlZi0+aWQgXSk7CiAgICAgICAgcmV0dXJuICRkZWY7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoRmllbGREZWZpbml0aW9uICRkZWYpIDogRmllbGREZWZpbml0aW9uCiAgICB7CiAgICAgICAgJHRoaXMtPnZhbGlkYXRlKCRkZWYpOwogICAgICAgIGlmKCAkZGVmLT5pZCA+IDAgKSB7CiAgICAgICAgICAgICRkZWYgPSAkdGhpcy0+dXBkYXRlKCRkZWYpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRkZWYgPSAkdGhpcy0+aW5zZXJ0KCRkZWYpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+bm90aWZ5KCk7CiAgICAgICAgcmV0dXJuICRkZWY7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShGaWVsZERlZmluaXRpb24gJGRlZikgOiBGaWVsZERlZmluaXRpb24KICAgIHsKICAgICAgICBpZiggJGRlZi0+aWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IGRlbGV0ZSBhIGZpZWxkIGRlZmluaXRpb24gdGhhdCBoYXMgbm90IGJlZW4gc2F2ZWQnKTsKCiAgICAgICAgJHNxbCA9ICdVUERBVEUgJy4kdGhpcy0+dGFibGVfbmFtZSgpLicgU0VUIGl0ZW1fb3JkZXIgPSBpdGVtX29yZGVyIC0gMSBXSEVSRSBpdGVtX29yZGVyID4gPyc7CiAgICAgICAgJHRoaXMtPmRiLT5FeGVjdXRlKCRzcWwsIFskZGVmLT5pdGVtX29yZGVyXSk7CgogICAgICAgICRzcWwgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+dmFsc190YWJsZSgpLicgV0hFUkUgZmllbGRkZWZfaWQgPSA/JzsKICAgICAgICAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwgWyRkZWYtPmlkXSk7CgogICAgICAgICRzcWwgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+dGFibGVfbmFtZSgpLicgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwgWyRkZWYtPmlkXSk7CiAgICAgICAgJHRoaXMtPm5vdGlmeSgpOwogICAgICAgIHJldHVybiAkZGVmLT53aXRoKCdpZCcsbnVsbCktPndpdGgoJ2l0ZW1fb3JkZXInLG51bGwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmlyc3RfZmllbGRfb2ZfdHlwZShzdHJpbmcgJHR5cGUpCiAgICB7CiAgICAgICAgaWYoICEkdHlwZSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIHR5cGUgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuJHRoaXMtPnRhYmxlX25hbWUoKS4nIFdIRVJFIHR5cGUgPSA/JzsKICAgICAgICAkcm93ID0gJHRoaXMtPmRiLT5HZXRSb3coJHNxbCwgWyR0eXBlXSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkcm93KSApIHJldHVybjsKICAgICAgICByZXR1cm4gJHRoaXMtPmNyZWF0ZV9maWVsZGRlZigkcm93KTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkdHlwZXNfbGlzdCgpIDogYXJyYXkKICAgIHsKICAgICAgICAkYXJyID0gWwogICAgICAgICAgICAndGV4dGJveCcgPT4gJHRoaXMtPmxhbmcoJ2ZpZWxkX3RleHRib3gnKSwKICAgICAgICAgICAgJ251bWJlcicgPT4gJHRoaXMtPmxhbmcoJ2ZpZWxkX251bWJlcicpLAogICAgICAgICAgICAnZGF0ZScgPT4gJHRoaXMtPmxhbmcoJ2ZpZWxkX2RhdGUnKSwKICAgICAgICAgICAgJ3RlbCcgPT4gJHRoaXMtPmxhbmcoJ2ZpZWxkX3RlbCcpLAogICAgICAgICAgICAnY2hlY2tib3gnID0+ICR0aGlzLT5sYW5nKCdmaWVsZF9jaGVja2JveCcpLAogICAgICAgICAgICAndGV4dGFyZWEnID0+ICR0aGlzLT5sYW5nKCdmaWVsZF90ZXh0YXJlYScpLAogICAgICAgICAgICAnZHJvcGRvd24nID0+ICR0aGlzLT5sYW5nKCdmaWVsZF9kcm9wZG93bicpLAogICAgICAgICAgICAnbXVsdGlzZWxlY3QnID0+ICR0aGlzLT5sYW5nKCdmaWVsZF9tdWx0aXNlbGVjdCcpLAogICAgICAgICAgICAnaW1hZ2UnID0+ICR0aGlzLT5sYW5nKCdmaWVsZF9pbWFnZScpLAogICAgICAgICAgICAnZmlsZScgPT4gJHRoaXMtPmxhbmcoJ2ZpZWxkX2ZpbGUnKQogICAgICAgICAgICBdOwogICAgICAgICRhcnJbJ2FsYnVtJ10gPSAkdGhpcy0+TGFuZygnZmllbGRfYWxidW0nKTsKICAgICAgICByZXR1cm4gJGFycjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlX2ZpZWxkX29yZGVyKGFycmF5ICRmaWVsZGRlZnMsIGFycmF5ICRvcmRlcikKICAgIHsKICAgICAgICBpZiggZW1wdHkoJGZpZWxkZGVmcykgfHwgIWlzc2V0KCRmaWVsZGRlZnNbMF0pIHx8ICEgJGZpZWxkZGVmc1swXSBpbnN0YW5jZW9mIEZpZWxkRGVmaW5pdGlvbiApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgZmllbGRkZWZzIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIH0KICAgICAgICAkZmllbGRzID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRmZCApIHsKICAgICAgICAgICAgJGZpZWxkc1skZmQtPmlkXSA9ICRmZDsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5kYi0+QmVnaW5UcmFucygpOwoKICAgICAgICAvLyBhIGxpdHRsZSB0cmljayB0byBmaXggdGhlIGlzc3VlIHdpdGggaXRlbV9vcmRlciBoYXZpbmcgYSB1bmlxdWUgaW5kZXguCiAgICAgICAgJHNxbCA9ICdVUERBVEUgJy4kdGhpcy0+dGFibGVfbmFtZSgpLicgU0VUIGl0ZW1fb3JkZXIgPSBpdGVtX29yZGVyICogLTEnOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsKTsKCiAgICAgICAgZm9yKCAkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCRvcmRlcik7ICRpZHgrKyApIHsKICAgICAgICAgICAgJGZkaWQgPSAoaW50KSAkb3JkZXJbJGlkeF07CiAgICAgICAgICAgICRmbGQgPSAkZmllbGRzWyRmZGlkXS0+d2l0aCgnaXRlbV9vcmRlcicsICRpZHgrMSk7CiAgICAgICAgICAgICR0aGlzLT5nZXRfbGFzdF9kZWNvcmF0b3IoKS0+c2F2ZSgkZmxkKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmRiLT5Db21taXRUcmFucygpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0YWJsZV9uYW1lKCkgeyByZXR1cm4gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIHZhbHNfdGFibGUoKSB7IHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMnOyB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9sYXN0X2RlY29yYXRvcihvYmplY3QgJG9iaikKICAgIHsKICAgICAgICBpZiggISAkb2JqIGluc3RhbmNlb2YgSUZpZWxkRGVmTWFuYWdlciApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGlucHV0IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5sYXN0X2RlY29yYXRvciA9ICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9sYXN0X2RlY29yYXRvcigpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5sYXN0X2RlY29yYXRvciApIHJldHVybiAkdGhpcy0+bGFzdF9kZWNvcmF0b3I7CiAgICAgICAgcmV0dXJuICR0aGlzOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldDefManagerAuditDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgpjbGFzcyBGaWVsZERlZk1hbmFnZXJBdWRpdERlY29yYXRvciBpbXBsZW1lbnRzIElGaWVsZERlZk1hbmFnZXIKewogICAgcHJpdmF0ZSAkcGFyZW50OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChJRmllbGREZWZNYW5hZ2VyICRwYXJlbnQpCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudCA9ICRwYXJlbnQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9maWVsZGRlZihhcnJheSAkb3B0cyA9IFtdKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jcmVhdGVfZmllbGRkZWYoJG9wdHMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogRmllbGREZWZpbml0aW9uCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYnlfaWQoJGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9uYW1lKHN0cmluZyAkbmFtZSkgOiBGaWVsZERlZmluaXRpb24KICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9uYW1lKCRuYW1lKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9wdWJsaWMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX3B1YmxpYygpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2FsbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYWxsKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saXN0KCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2xpc3QoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZShGaWVsZERlZmluaXRpb24gJGRlZikgOiBGaWVsZERlZmluaXRpb24KICAgIHsKICAgICAgICAkcmVzID0gJHRoaXMtPnBhcmVudC0+c2F2ZSgkZGVmKTsKICAgICAgICBhdWRpdCgkcmVzLT5pZCwnQ29tcGFueURpcmVjdG9yeScsJ0ZpZWxkIGRlZmluaXRpb24gc2F2ZWQnKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKEZpZWxkRGVmaW5pdGlvbiAkZGVmKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGRlZik7CiAgICAgICAgYXVkaXQoJGRlZi0+aWQsJ0NvbXBhbnlEaXJlY3RvcnknLCdGaWVsZCBkZWZpbml0aW9uIGRlbGV0ZWQnKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpcnN0X2ZpZWxkX29mX3R5cGUoc3RyaW5nICR0eXBlKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfZmlyc3RfZmllbGRfb2ZfdHlwZSgkdHlwZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZHR5cGVzX2xpc3QoKSA6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9maWVsZHR5cGVzX2xpc3QoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlX2ZpZWxkX29yZGVyKGFycmF5ICRmaWVsZGRlZnMsIGFycmF5ICRvcmRlcikKICAgIHsKICAgICAgICBhdWRpdCgkZGVmLT5pZCwnQ29tcGFueURpcmVjdG9yeScsJ0ZpZWxkIGRlZmluaXRpb25zIHJlb3JkZXJlZCcpOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT51cGRhdGVfZmllbGRfb3JkZXIoJGZpZWxkZGVmcywgJG9yZGVyKTsKICAgIH0KCn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldDefManagerCacheDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjbXNfY2FjaGVfZHJpdmVyIGFzIGNhY2hlX2RyaXZlcjsKCmNsYXNzIEZpZWxkRGVmTWFuYWdlckNhY2hlRGVjb3JhdG9yIGltcGxlbWVudHMgSUZpZWxkRGVmTWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CiAgICBwcml2YXRlICRjYWNoZV9kcml2ZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElGaWVsZERlZk1hbmFnZXIgJHBhcmVudCwgY2FjaGVfZHJpdmVyICRkcml2ZXIpCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudCA9ICRwYXJlbnQ7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlciA9ICRkcml2ZXI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9maWVsZGRlZihhcnJheSAkb3B0cyA9IFtdKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jcmVhdGVfZmllbGRkZWYoJG9wdHMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogRmllbGREZWZpbml0aW9uCiAgICB7CiAgICAgICAgaWYoICgkb2JqID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KCRpZCxfX0ZJTEVfXykpICkgewogICAgICAgICAgICByZXR1cm4gJG9iajsKICAgICAgICB9CiAgICAgICAgJG9iaiA9ICR0aGlzLT5wYXJlbnQtPmxvYWRfYnlfaWQoJGlkKTsKICAgICAgICAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5zZXQoJGlkLCRvYmosX19GSUxFX18pOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X25hbWUoc3RyaW5nICRuYW1lKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgIC8vIGRvbid0IGNhY2hlIGhlcmUuLiAgd2Uga25vdyB0aGF0IHRoaXMgdGhpbmcgdXNlcyBsb2FkX2J5X2lkIGFuZCBnZXRfbGlzdCB3aGljaCBhcmUgYWxyZWFkeSBjYWNoZWQuCiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYnlfbmFtZSgkbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfcHVibGljKCkKICAgIHsKICAgICAgICBpZiggKCRvYmogPSAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5nZXQoX19NRVRIT0RfXyxfX0ZJTEVfXykpICkgewogICAgICAgICAgICByZXR1cm4gJG9iajsKICAgICAgICB9CiAgICAgICAgJG9iaiA9ICR0aGlzLT5wYXJlbnQtPmxvYWRfcHVibGljKCk7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+c2V0KF9fTUVUSE9EX18sJG9iaiwgX19GSUxFX18pOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2FsbCgpCiAgICB7CiAgICAgICAgaWYoICgkcmVzID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19GSUxFX18pKSApIHsKICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgfQogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5sb2FkX2FsbCgpOwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldChfX01FVEhPRF9fLCRyZXMsX19GSUxFX18pOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGlzdCgpCiAgICB7CiAgICAgICAgaWYoICgkcmVzID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19GSUxFX18pKSApIHsKICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgfQogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5nZXRfbGlzdCgpOwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldChfX01FVEhPRF9fLCRyZXMsX19GSUxFX18pOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKEZpZWxkRGVmaW5pdGlvbiAkZGVmKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPmNsZWFyKF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+c2F2ZSgkZGVmKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKEZpZWxkRGVmaW5pdGlvbiAkZGVmKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPmNsZWFyKF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+ZGVsZXRlKCRkZWYpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmlyc3RfZmllbGRfb2ZfdHlwZShzdHJpbmcgJHR5cGUpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9maXJzdF9maWVsZF9vZl90eXBlKCR0eXBlKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkdHlwZXNfbGlzdCgpIDogYXJyYXkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2ZpZWxkdHlwZXNfbGlzdCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1cGRhdGVfZmllbGRfb3JkZXIoYXJyYXkgJGZpZWxkZGVmcywgYXJyYXkgJG9yZGVyKQogICAgewogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPmNsZWFyKF9fRklMRV9fKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+dXBkYXRlX2ZpZWxkX29yZGVyKCRmaWVsZGRlZnMsICRvcmRlcik7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldDefManagerHookDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xIb29rTWFuYWdlcjsKCgpjbGFzcyBGaWVsZERlZk1hbmFnZXJIb29rRGVjb3JhdG9yIGltcGxlbWVudHMgSUZpZWxkRGVmTWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElGaWVsZERlZk1hbmFnZXIgJHBhcmVudCkKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50ID0gJHBhcmVudDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX2ZpZWxkZGVmKGFycmF5ICRvcHRzID0gW10pIDogRmllbGREZWZpbml0aW9uCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9maWVsZGRlZigkb3B0cyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBGaWVsZERlZmluaXRpb24KICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9pZCgkaWQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X25hbWUoc3RyaW5nICRuYW1lKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2J5X25hbWUoJG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX3B1YmxpYygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfcHVibGljKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYWxsKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9hbGwoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xpc3QoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfbGlzdCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKEZpZWxkRGVmaW5pdGlvbiAkZGVmKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgIEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDb21wYW55RGlyZWN0b3J5OjpCZWZvcmVTYXZlRmllbGREZWYnLCAkZGVmKTsKICAgICAgICAkcmVzID0gJHRoaXMtPnBhcmVudC0+c2F2ZSgkZGVmKTsKICAgICAgICBIb29rTWFuYWdlcjo6ZG9faG9vaygnQ29tcGFueURpcmVjdG9yeTo6QWZ0ZXJTYXZlRmllbGREZWYnLCAkcmVzKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKEZpZWxkRGVmaW5pdGlvbiAkZGVmKSA6IEZpZWxkRGVmaW5pdGlvbgogICAgewogICAgICAgIEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDb21wYW55RGlyZWN0b3J5OjpCZWZvcmVEZWxldGVGaWVsZERlZicsICRkZWYpOwogICAgICAgICRyZXMgPSAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGRlZik7CiAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OkFmdGVyRGVsZXRlRmllbGREZWYnLCAkcmVzKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpcnN0X2ZpZWxkX29mX3R5cGUoc3RyaW5nICR0eXBlKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfZmlyc3RfZmllbGRfb2ZfdHlwZSgkdHlwZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maWVsZHR5cGVzX2xpc3QoKSA6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9maWVsZHR5cGVzX2xpc3QoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlX2ZpZWxkX29yZGVyKGFycmF5ICRmaWVsZGRlZnMsIGFycmF5ICRvcmRlcikKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+dXBkYXRlX2ZpZWxkX29yZGVyKCRmaWVsZGRlZnMsICRvcmRlcik7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.FieldQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgovKioKICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSAnZmllbGQnIHF1ZXJ5IGV4cHJlc3Npb24KICovCmNsYXNzIEZpZWxkUXVlcnlFeHByZXNzaW9uCnsKICAgIHByaXZhdGUgJGZpZWxkZGVmX21hbmFnZXI7CiAgICBwcml2YXRlICRqb2luX2NvdW50ID0gMDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoSUZpZWxkRGVmTWFuYWdlciAkbWdyKQogICAgewogICAgICAgICR0aGlzLT5maWVsZGRlZl9tYW5hZ2VyID0gJG1ncjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoYXJyYXkgJHN0YXRlbWVudCwgSVF1ZXJ5QnVpbGRlciAkYnVpbGRlcikKICAgIHsKICAgICAgICAvLyBmb3JtYXQ6IFtmaWVsZG5hbWU6ZXhwcjp2YWx1ZVs6dHlwZV1dCiAgICAgICAgaWYoIGNvdW50KCRzdGF0ZW1lbnQpIDwgNCB8fCBjb3VudCgkc3RhdGVtZW50KSA+IDUgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBmaWVsZCBleHByZXNzaW9uOiBmb3JtYXQgZmllbGQ6RklFTEROQU1FOkVYUFI6VkFMVUVbOlRZUEVdJyk7CiAgICAgICAgJGZpZWxkbmFtZSA9ICRleHByID0gJHZhbHVlID0gJHR5cGUgPSBudWxsOwogICAgICAgICRmaWVsZG5hbWUgPSB0cmltKCRzdGF0ZW1lbnRbMV0pOwogICAgICAgICRleHByID0gdHJpbSgkc3RhdGVtZW50WzJdKTsKICAgICAgICAkdmFsdWUgPSB0cmltKCRzdGF0ZW1lbnRbM10pOwogICAgICAgICR0eXBlID0gKGlzc2V0KCRzdGF0ZW1lbnRbNF0pKSA/IHRyaW0oJHN0YXRlbWVudFs1XSkgOiBudWxsOwoKICAgICAgICAkbGlzdCA9ICR0aGlzLT5maWVsZGRlZl9tYW5hZ2VyLT5nZXRfbGlzdCgpOwogICAgICAgIGlmKCBlbXB0eSgkbGlzdCkgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYSBmaWVsZGRlZiBuYW1lZCAnLiRmaWVsZG5hbWUpOwogICAgICAgICRsaXN0ID0gYXJyYXlfZmxpcCgkbGlzdCk7CiAgICAgICAgaWYoICFpc3NldCgkbGlzdFskZmllbGRuYW1lXSkgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYSBmaWVsZGRlZiBuYW1lZCAnLiRmaWVsZG5hbWUpOwogICAgICAgICRmZGlkID0gJGxpc3RbJGZpZWxkbmFtZV07CiAgICAgICAgdW5zZXQoJGxpc3QpOwoKICAgICAgICAvLyByZXNvbHZlIHRoZSB0eXBlCiAgICAgICAgaWYoICR0eXBlICkgewogICAgICAgICAgICBzd2l0Y2goICR0eXBlICkgewogICAgICAgICAgICBjYXNlICdTJzoKICAgICAgICAgICAgY2FzZSAnRic6CiAgICAgICAgICAgIGNhc2UgJ0knOgogICAgICAgICAgICBjYXNlICdVJzoKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCR0eXBlLicgaXMgYW4gaW52YWxpZCBmaWVsZCB0eXBlIGluIGEgZmllbGQgZXhwcmVzc2lvbiAodmFsaWQgdmFsdWVzIGFyZSBTLCBGLCBJKScpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkZmxkbmFtZSA9IGZ1bmN0aW9uKHN0cmluZyAkbmFtZSwgc3RyaW5nICR0eXBlKSB7CiAgICAgICAgICAgIHN3aXRjaCggJHR5cGUgKSB7CiAgICAgICAgICAgIGNhc2UgJ0YnOgogICAgICAgICAgICByZXR1cm4gIkNBU1QoJG5hbWUudmFsdWUgQVMgRE9VQkxFKSI7CiAgICAgICAgICAgIGNhc2UgJ0knOgogICAgICAgICAgICByZXR1cm4gIkNBU1QoJG5hbWUudmFsdWUgQVMgU0lHTkVEKSI7CiAgICAgICAgICAgIGNhc2UgJ1UnOgogICAgICAgICAgICByZXR1cm4gIkNBU1QoJG5hbWUudmFsdWUgQVMgVU5TSUdORUQpIjsKICAgICAgICAgICAgY2FzZSAnUyc6CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAiJG5hbWUudmFsdWUiOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJGNsZWFuYXJnID0gZnVuY3Rpb24oc3RyaW5nICR2YWx1ZSwgc3RyaW5nICR0eXBlKQogICAgICAgIHsKICAgICAgICAgICAgc3dpdGNoKCAkdHlwZSApIHsKICAgICAgICAgICAgY2FzZSAnRic6CiAgICAgICAgICAgIGlmKCBpc19udW1lcmljKCR2YWx1ZSkgKSByZXR1cm4gKGZsb2F0KSR2YWx1ZTsKICAgICAgICAgICAgY2FzZSAnSSc6CiAgICAgICAgICAgIGNhc2UgJ1UnOgogICAgICAgICAgICBpZiggaXNfbnVtZXJpYygkdmFsdWUpICkgcmV0dXJuIChpbnQpJHZhbHVlOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgLy8gcmVzb2x2ZSB0aGUgZXhwcmVzc29uCiAgICAgICAgJHN0ciA9IG51bGw7CiAgICAgICAgJGpvaW5fY291bnQgPSAkdGhpcy0+am9pbl9jb3VudCsrOwogICAgICAgICRqb2luX25hbWUgPSAiRkV7JGpvaW5fY291bnR9IjsKICAgICAgICBzd2l0Y2goIHN0cnRvdXBwZXIoJGV4cHIpICkgewogICAgICAgIGNhc2UgJ0VRJzoKICAgICAgICAgICAgaWYoICR0eXBlID09ICdTJyApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJ0eXBlIFMgaXMgYW4gaW52YWxpZCBmaWVsZCB0eXBlIGluIGEgJGV4cHIgZmllbGQgZXhwcmVzc2lvbiIpOwogICAgICAgICAgICAkc3RyID0gJGZsZG5hbWUoJGpvaW5fbmFtZSwkdHlwZSkuJyA9ICcuJGJ1aWxkZXItPmFyZygkY2xlYW5hcmcoJHZhbHVlLCR0eXBlKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ05FJzoKICAgICAgICAgICAgaWYoICR0eXBlID09ICdTJyApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJ0eXBlIFMgaXMgYW4gaW52YWxpZCBmaWVsZCB0eXBlIGluIGEgJGV4cHIgZmllbGQgZXhwcmVzc2lvbiIpOwogICAgICAgICAgICAkc3RyID0gJGZsZG5hbWUoJGpvaW5fbmFtZSwkdHlwZSkuJyAhPSAnLiRidWlsZGVyLT5hcmcoJHZhbHVlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnTFQnOgogICAgICAgICAgICBpZiggJHR5cGUgPT0gJ1MnICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oInR5cGUgUyBpcyBhbiBpbnZhbGlkIGZpZWxkIHR5cGUgaW4gYSAkZXhwciBmaWVsZCBleHByZXNzaW9uIik7CiAgICAgICAgICAgICRzdHIgPSAkZmxkbmFtZSgkam9pbl9uYW1lLCR0eXBlKS4nIDwgJy4kYnVpbGRlci0+YXJnKCR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0xFJzoKICAgICAgICAgICAgaWYoICR0eXBlID09ICdTJyApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJ0eXBlIFMgaXMgYW4gaW52YWxpZCBmaWVsZCB0eXBlIGluIGEgJGV4cHIgZmllbGQgZXhwcmVzc2lvbiIpOwogICAgICAgICAgICAkc3RyID0gJGZsZG5hbWUoJGpvaW5fbmFtZSwkdHlwZSkuJyA8PSAnLiRidWlsZGVyLT5hcmcoJHZhbHVlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnR1QnOgogICAgICAgICAgICBpZiggJHR5cGUgPT0gJ1MnICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oInR5cGUgUyBpcyBhbiBpbnZhbGlkIGZpZWxkIHR5cGUgaW4gYSAkZXhwciBmaWVsZCBleHByZXNzaW9uIik7CiAgICAgICAgICAgICRzdHIgPSAkZmxkbmFtZSgkam9pbl9uYW1lLCR0eXBlKS4nID4gJy4kYnVpbGRlci0+YXJnKCRjbGVhbmFyZygkdmFsdWUsJHR5cGUpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnR0UnOgogICAgICAgICAgICBpZiggJHR5cGUgPT0gJ1MnICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oInR5cGUgUyBpcyBhbiBpbnZhbGlkIGZpZWxkIHR5cGUgaW4gYSAkZXhwciBmaWVsZCBleHByZXNzaW9uIik7CiAgICAgICAgICAgICRzdHIgPSAkZmxkbmFtZSgkam9pbl9uYW1lLCR0eXBlKS4nID49ICcuJGJ1aWxkZXItPmFyZygkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnU1cnOgogICAgICAgIGNhc2UgJ1NUQVJUU1dJVEgnOgogICAgICAgICAgICBpZiggJHR5cGUgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigidHlwZSBpcyBpbnZhbGlkIGluIGEgJGV4cHIgZmllbGQgZXhwcmVzc2lvbiIpOwogICAgICAgICAgICAkc3RyID0gIiRqb2luX25hbWUudmFsdWUgTElLRSAiLiRidWlsZGVyLT5hcmcoJGJ1aWxkZXItPndpbGRjYXJkKCR2YWx1ZS4nKicpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnRVcnOgogICAgICAgIGNhc2UgJ0VORFNXSVRIJzoKICAgICAgICAgICAgaWYoICR0eXBlICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oInR5cGUgaXMgaW52YWxpZCBpbiBhICRleHByIGZpZWxkIGV4cHJlc3Npb24iKTsKICAgICAgICAgICAgJHN0ciA9ICIkam9pbl9uYW1lLnZhbHVlIExJS0UgIi4kYnVpbGRlci0+YXJnKCRidWlsZGVyLT53aWxkY2FyZCgnKicuJHZhbHVlKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdSRUdFWFAnOgogICAgICAgICAgICBpZiggJHR5cGUgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigidHlwZSBpcyBpbnZhbGlkIGluIGEgJGV4cHIgZmllbGQgZXhwcmVzc2lvbiIpOwogICAgICAgICAgICAkc3RyID0gIiRqb2luX25hbWUudmFsdWUgUkVHRVhQICIuJGJ1aWxkZXItPmFyZygkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdDT05UQUlOUyc6CiAgICAgICAgICAgIGlmKCAkdHlwZSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJ0eXBlIGlzIGludmFsaWQgaW4gYSAkZXhwciBmaWVsZCBleHByZXNzaW9uIik7CiAgICAgICAgICAgICRzdHIgPSAiJGpvaW5fbmFtZS52YWx1ZSBMSUtFICIuJGJ1aWxkZXItPmFyZygkYnVpbGRlci0+d2lsZGNhcmQoJyonLiR2YWx1ZS4nKicpKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnTElLRSc6CiAgICAgICAgICAgIC8vIHR5cGUgaGFzIHRvIGJlIGVtcHR5CiAgICAgICAgICAgIGlmKCAkdHlwZSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJ0eXBlIGlzIGludmFsaWQgaW4gYSAkZXhwciBmaWVsZCBleHByZXNzaW9uIik7CiAgICAgICAgICAgICRzdHIgPSAiJGpvaW5fbmFtZS52YWx1ZSBMSUtFICIuJGJ1aWxkZXItPmFyZygkYnVpbGRlci0+d2lsZGNhcmQoJHZhbHVlKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCIkZXhwciBpcyBub3QgYSB2YWxpZCBmaWVsZCBvZXByYXRvciIpOwogICAgICAgIH0KCiAgICAgICAgLy8gbm93IHdlIGNhbiBidWlsZCB0aGUgZGFtbmVkIHRoaW5nCiAgICAgICAgJG9iaiA9IG5ldyBcU3RkQ2xhc3M7CiAgICAgICAgJG9iai0+d2hlcmVfY2xhdXNlID0gJHN0cjsKICAgICAgICAkb2JqLT5qb2luX2NsYXVzZSA9ICcgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgJy4kam9pbl9uYW1lLicgT04gJVRBQkxFJS5pZCA9ICcuJGpvaW5fbmFtZS4nLmNvbXBhbnlfaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EICcuJGpvaW5fbmFtZS4nLmZpZWxkZGVmX2lkID0gJy4kYnVpbGRlci0+YXJnKCRmZGlkKTsKICAgICAgICAkb2JqLT5uZXdfY29sdW1uID0gInskam9pbl9uYW1lfS52YWx1ZSBhcyBgeyRmaWVsZG5hbWV9YCI7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.FulltextQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgovKioKICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSAnZnVsbHRleHQnIHF1ZXJ5IGV4cHJlc3Npb24KICovCmNsYXNzIEZ1bGx0ZXh0UXVlcnlFeHByZXNzaW9uCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2ludm9rZShhcnJheSAkc3RhdGVtZW50LCBJUXVlcnlCdWlsZGVyICRidWlsZGVyKQogICAgewogICAgICAgIGlmKCAhaXNzZXQoJHN0YXRlbWVudFsxXSkgfHwgIWlzX3N0cmluZygkc3RhdGVtZW50WzFdKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uc3Npb24oJ05vIHBocmFzZSBkZXRlY3RlZCcpOwogICAgICAgICRvdXQgPSBuZXcgXFN0ZENsYXNzOwogICAgICAgICRwaHJhc2UgPSB0cmltKCRzdGF0ZW1lbnRbMV0pOwogICAgICAgICRzdHIgPSAnKE1BVENIKCVUQUJMRSUuY29tcGFueV9uYW1lLCVUQUJMRSUuYWRkcmVzcywlVEFCTEUlLndlYnNpdGUsJVRBQkxFJS5kZXRhaWxzKSBBR0FJTlNUICg/IElOIEJPT0xFQU4gTU9ERSkgT1IgTUFUQ0goRlZfQS52YWx1ZSkgQUdBSU5TVCAoPyBJTiBCT09MRUFOIE1PREUpKSc7CiAgICAgICAgJG91dC0+d2hlcmVfY2xhdXNlID0gc3RyX3JlcGxhY2UoJz8nLCRidWlsZGVyLT5hcmcoJHBocmFzZSksJHN0cik7CiAgICAgICAgJG91dC0+am9pbl9jbGF1c2UgPSAnIExFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIEZWX0EgT04gJVRBQkxFJS5pZCA9IEZWX0EuY29tcGFueV9pZCc7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.GeoCodingResult.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgovKioKICogSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgYXJlIGltbXV0YWJsZS4KICovCmNsYXNzIEdlb0NvZGluZ1Jlc3VsdCBpbXBsZW1lbnRzIFxKc29uU2VyaWFsaXphYmxlCnsKICAgIHByaXZhdGUgJF9kYXRhID0gWyAnaW5wdXRfYWRkcmVzcyc9Pm51bGwsICdsYXRpdHVkZSc9Pm51bGwsJ2xvbmdpdHVkZSc9Pm51bGwsJ2NvbmZpZGVuY2UnPT5udWxsIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHN0cmluZyAkaW5wdXRfYWRkcmVzcywgZmxvYXQgJGxhdGl0dWRlLCBmbG9hdCAkbG9uZ2l0dWRlLCBmbG9hdCAkY29uZmlkZW5jZSkKICAgIHsKICAgICAgICAkaW5wdXRfYWRkcmVzcyA9IHRyaW0oJGlucHV0X2FkZHJlc3MpOwogICAgICAgIGlmKCAhJGlucHV0X2FkZHJlc3MgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBpbnB1dCBhZGRyZXNzIHByb3ZpZGVkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgaWYoICRsYXRpdHVkZSA8IC0xODAuMDAwMDAwMSB8fCAkbGF0aXR1ZGUgPiAxODAuMDAwMDAwMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGxhdGl0dWRlIHByb3ZpZGVkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgaWYoICRsb25naXR1ZGUgPCAtMTgwLjAwMDAwMDEgfHwgJGxvbmdpdHVkZSA+IDE4MC4wMDAwMDAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgbG9uZ2l0dWRlIHByb3ZpZGVkIHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgaWYoICRjb25maWRlbmNlIDwgMCB8fCAkY29uZmlkZW5jZSA+IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBjb25maWRlbmNlIHByb3ZpZGVkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICR0aGlzLT5fZGF0YVsnaW5wdXRfYWRkcmVzcyddID0gJGlucHV0X2FkZHJlc3M7CiAgICAgICAgJHRoaXMtPl9kYXRhWydsYXRpdHVkZSddID0gJGxhdGl0dWRlOwogICAgICAgICR0aGlzLT5fZGF0YVsnbG9uZ2l0dWRlJ10gPSAkbG9uZ2l0dWRlOwogICAgICAgICR0aGlzLT5fZGF0YVsnY29uZmlkZW5jZSddID0gJGNvbmZpZGVuY2U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KHN0cmluZyAka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpbnB1dF9hZGRyZXNzJzoKICAgICAgICBjYXNlICdpbnB1dCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ2lucHV0X2FkZHJlc3MnXTsKCiAgICAgICAgY2FzZSAnbGF0aXR1ZGUnOgogICAgICAgIGNhc2UgJ2xhdCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ2xhdGl0dWRlJ107CgogICAgICAgIGNhc2UgJ2xvbmdpdHVkZSc6CiAgICAgICAgY2FzZSAnbG9uZyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ2xvbmdpdHVkZSddOwoKICAgICAgICBjYXNlICdjb25maWRlbmNlJzoKICAgICAgICBjYXNlICdzY29yZSc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGFbJ2NvbmZpZGVuY2UnXTsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldChzdHJpbmcgJGtleSwgJHZhbCkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIHNldHRhYmxlIHByb3BlcnR5IG9mICIuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24ganNvblNlcmlhbGl6ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fZGF0YTsKICAgIH0KfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgSGllcmFyY2h5CnsKICAgIHByaXZhdGUgJF9kYXRhID0gWydpZCc9Pm51bGwsICduYW1lJz0+bnVsbCwgJ29sZF9wYXJlbnQnPT5udWxsLCAncGFyZW50X2lkJz0+bnVsbCwgJ2lvcmRlcic9Pm51bGwsICdoaWVyYXJjaHknPT5udWxsLCAnbG9uZ19uYW1lJz0+bnVsbCBdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChhcnJheSAkZGF0YSkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkZGF0YSBhcyAka2V5ID0+ICR2YWwgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgewogICAgICAgICAgICAgICAgICAgICR2YWwgPSAoaW50KSAkdmFsOwogICAgICAgICAgICAgICAgICAgIGlmKCAkdmFsIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGlkIHBhc3NlZCB0byAnLl9fQ0xBU1NfXyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdvbGRfcGFyZW50JzoKICAgICAgICAgICAgY2FzZSAncGFyZW50X2lkJzoKICAgICAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApIHsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAgICAgICAgICAgICBpZiggJHZhbCA8IDEgJiYgJHZhbCAhPSAtMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIHBhcmVudF9pZCBwYXNzZWQgdG8gJy5fX0NMQVNTX18pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAnaW9yZGVyJzoKICAgICAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApIHsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAgICAgICAgICAgICBpZiggJHZhbCA8IDAgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBpb3JkZXIgcGFzc2VkIHRvICcuX19DTEFTU19fKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICAgICAgaWYoICFpc19udWxsKCR2YWwpICkgewogICAgICAgICAgICAgICAgICAgICR2YWwgPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJHZhbCApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIG5hbWUgcGFzc2VkIHRvICcuX19DTEFTU19fKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ2hpZXJhcmNoeSc6CiAgICAgICAgICAgIGNhc2UgJ2xvbmdfbmFtZSc6CiAgICAgICAgICAgICAgICBpZiggIWlzX251bGwoJHZhbCkgKSAkdmFsID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KHN0cmluZyAka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnb2xkX3BhcmVudCc6CiAgICAgICAgY2FzZSAncGFyZW50X2lkJzoKICAgICAgICBjYXNlICdpb3JkZXInOgogICAgICAgICAgICBpZiggIWlzX251bGwoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICdoaWVyYXJjaHknOgogICAgICAgIGNhc2UgJ2xvbmdfbmFtZSc6CiAgICAgICAgICAgIGlmKCAhaXNfbnVsbCgkdGhpcy0+X2RhdGFbJGtleV0pICkgcmV0dXJuIChzdHJpbmcpICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgZ2V0dGFibGUgcHJvcGVydHkgb2YgIi5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoc3RyaW5nICRrZXksICR2YWwpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHdpdGgoc3RyaW5nICRrZXksICR2YWwpIDogc2VsZgogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPl9kYXRhOwogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnb2xkX3BhcmVudCc6CiAgICAgICAgY2FzZSAncGFyZW50X2lkJzoKICAgICAgICBjYXNlICdpb3JkZXInOgogICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgIGNhc2UgJ2hpZXJhcmNoeSc6CiAgICAgICAgY2FzZSAnbG9uZ19uYW1lJzoKICAgICAgICAgICAgJGRhdGFbJGtleV0gPSAkdmFsOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYW4gYWRqdXN0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgc2VsZigkZGF0YSk7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.HierarchyManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ01TTVNcRGF0YWJhc2VcQ29ubmVjdGlvbiBhcyBEYXRhYmFzZTsKdXNlIFNwbFN1YmplY3Q7CgpjbGFzcyBIaWVyYXJjaHlNYW5hZ2VyIGltcGxlbWVudHMgSUhpZXJhcmNoeU1hbmFnZXIsIFNwbFN1YmplY3QsIElEZWNvcmF0ZWQKewogICAgdXNlIE9ic2VydmFibGU7ICAvLyB0cmFpdAoKICAgIHByaXZhdGUgJGRiOwogICAgcHJpdmF0ZSAkbGFuZzsKICAgIHByaXZhdGUgJGxhc3RfZGVjb3JhdG9yOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChEYXRhYmFzZSAkZGIsIGNhbGxhYmxlICRsYW5nKQogICAgewogICAgICAgICR0aGlzLT5kYiA9ICRkYjsKICAgICAgICAkdGhpcy0+bGFuZyA9ICRsYW5nOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBsYW5nKCkKICAgIHsKICAgICAgICAkYXJncyA9IGZ1bmNfZ2V0X2FyZ3MoKTsKICAgICAgICByZXR1cm4gY2FsbF91c2VyX2Z1bmNfYXJyYXkoJHRoaXMtPmxhbmcsICRhcmdzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX2hpZXJhcmNoeShhcnJheSAkZGF0YSA9IFtdKSA6IEhpZXJhcmNoeQogICAgewogICAgICAgICRkYXRhID0gYXJyYXlfbWVyZ2UoWydwYXJlbnRfaWQnPT4tMV0sICRkYXRhKTsKICAgICAgICByZXR1cm4gbmV3IEhpZXJhcmNoeSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYWxsKCkKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy4kdGhpcy0+aGllcmFyY2h5X3RhYmxlKCkuJyBPUkRFUiBCWSBoaWVyYXJjaHknOwogICAgICAgICRhcnIgPSAkdGhpcy0+ZGItPkdldEFycmF5KCRzcWwpOwogICAgICAgIGlmKCAhJGFyciApIHJldHVybjsKCiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggJGFyciBhcyAkcm93ICkgewogICAgICAgICAgICAkb3V0W10gPSAkdGhpcy0+Y3JlYXRlX2hpZXJhcmNoeSgkcm93KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBIaWVyYXJjaHkKICAgIHsKICAgICAgICBpZiggJGlkIDwgMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJJbnZhbGlkIGlkIHBhc3NlZCB0byAiLl9fTUVUSE9EX18pOwoKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy4kdGhpcy0+aGllcmFyY2h5X3RhYmxlKCkuJyBXSEVSRSBpZCA9ID8nOwogICAgICAgICRyb3cgPSAkdGhpcy0+ZGItPkdldFJvdygkc3FsLCBbICRpZCBdKTsKICAgICAgICBpZiggIWlzX2FycmF5KCRyb3cpICkgdGhyb3cgbmV3IFxPdXRPZkJvdW5kc0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgYSBjYXRlZ29yeSB3aXRoIGlkICcuJGlkKTsKICAgICAgICByZXR1cm4gJHRoaXMtPmNyZWF0ZV9oaWVyYXJjaHkoJHJvdyk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHZhbGlkYXRlKEhpZXJhcmNoeSAkb2JqKQogICAgewogICAgICAgIGlmKCAkb2JqLT5wYXJlbnRfaWQgPT09IDAgfHwgJG9iai0+cGFyZW50X2lkIDwgLTEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgdXBkYXRlIGEgaGllcmFyY2h5IHdpdGggYW4gaW52YWxpZCBwYXJlbnQgaWQnKTsKICAgICAgICBpZiggISRvYmotPm5hbWUgKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdub25hbWVnaXZlbicpKTsKICAgICAgICBpZiggcHJlZ19tYXRjaCgnL1teXHcgXCtcLlwmXS8nLCRvYmotPm5hbWUpICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+bGFuZygnYmFkbmFtZWdpdmVuJykpOwogICAgICAgIGlmKCBzdHJwb3MoJG9iai0+bmFtZSwgJ3wnKSAhPT0gRkFMU0UgKSB0aHJvdyBuZXcgXENtc0ludmFsaWREYXRhRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdiYWRuYW1lZ2l2ZW4nKSk7CgogICAgICAgICR0bXAgPSAtMTsKICAgICAgICBpZiggJG9iai0+aWQgPiAwICkgewogICAgICAgICAgICAvLyB0b2RvOiBtYWtlIHN1cmUgdGhhdCBpZiB3ZSBtb3ZlZCB0aGlzIHRoaW5nLCB3ZSBkaWQgbm90IG1vdmUgaXQgdG8gYSBjaGlsZCBvZiBpdHNlbGYuCiAgICAgICAgICAgIC8vIHRoaXMgcGFnZSBoYXMgbG9uZyBuYW1lIGxpa2UgQXxCfEMgIG1ha2Ugc3VyZSB0aGF0IHRoZSBuZXcgcGFyZW50IGxvbmcgbmFtZSBkb2VzIG5vdCBzdGFydCB3aXRoIGl0LgogICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCBGUk9NICcuJHRoaXMtPmhpZXJhcmNoeV90YWJsZSgpLicgV0hFUkUgaWQgPSA/IEFORCBsb25nX25hbWUgTElLRSA/JzsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskb2JqLT5wYXJlbnRfaWQsICRvYmotPmxvbmdfbmFtZS4nJSddKTsKICAgICAgICAgICAgaWYoICR0bXAgPiAwICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmVudCcpKTsKCiAgICAgICAgICAgICRzcWwgPSAnU0VMRUNUIGlkIEZST00gJy4kdGhpcy0+aGllcmFyY2h5X3RhYmxlKCkuJyBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBuYW1lID0gPyBBTkQgaWQgIT0gPyc7CiAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+ZGItPkdldE9uZSgkc3FsLCBbJG9iai0+cGFyZW50X2lkLCAkb2JqLT5uYW1lLCAkb2JqLT5pZF0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLiR0aGlzLT5oaWVyYXJjaHlfdGFibGUoKS4nIFdIRVJFIHBhcmVudF9pZCA9ID8gQU5EIG5hbWUgPSA/JzsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskb2JqLT5wYXJlbnRfaWQsICRvYmotPm5hbWVdKTsKICAgICAgICB9CiAgICAgICAgaWYoICR0bXAgPiAwICkgdGhyb3cgbmV3IFxDbXNJbnZhbGlkRGF0YUV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXJyb3JfZHVwbGljYXRlX2hpZXJhcmNoeScpKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdXBkYXRlKEhpZXJhcmNoeSAkb2JqKSA6IEhpZXJhcmNoeQogICAgewogICAgICAgIGlmKCAkb2JqLT5pZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgdXBkYXRlIGEgY2F0ZWdvcnkgd2l0aCBubyBpZCcpOwogICAgICAgIGlmKCAkb2JqLT5pb3JkZXIgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2Fubm90IHVwZGF0ZSBhIGNhdGVnb3J5IHdpdGggYW4gaW52YWxpZCBpdGVtIG9yZGVyJyk7CgogICAgICAgIGlmKCAkb2JqLT5vbGRfcGFyZW50ID4gMCAmJiAkb2JqLT5vbGRfcGFyZW50ICE9ICRvYmotPnBhcmVudF9pZCApIHsKICAgICAgICAgICAgLy8gY2hhbmdlZCB0aGUgcGFyZW50CiAgICAgICAgICAgIC8vIGdvdHRhIHVwZGF0ZSB0aGUgaW9yZGVyCiAgICAgICAgICAgICRzcWwgPSAnVVBEQVRFICcuJHRoaXMtPmhpZXJhcmNoeV90YWJsZSgpLicgU0VUIGlvcmRlciA9IGlvcmRlciAtIDEgV0hFUkUgcGFyZW50X2lkID0gPyBBTkQgaW9yZGVyID4gPyc7CiAgICAgICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJG9iai0+b2xkX3BhcmVudCwgJG9iai0+aW9yZGVyXSk7CgogICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBDT0FMRVNDRShNQVgoaW9yZGVyKSwwKSsxIEZST00gJy4kdGhpcy0+aGllcmFyY2h5X3RhYmxlKCkuJyBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKICAgICAgICAgICAgJG9iaiA9ICRvYmotPndpdGgoJ2lvcmRlcicsICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskb2JqLT5wYXJlbnRfaWRdKSk7CiAgICAgICAgfQoKICAgICAgICAkc3FsID0gJ1VQREFURSAnLiR0aGlzLT5oaWVyYXJjaHlfdGFibGUoKS4nIFNFVCBuYW1lID0gPywgcGFyZW50X2lkID0gPywgaW9yZGVyID0gPywKICAgICAgICAgICAgICAgIGhpZXJhcmNoeSA9ID8sIGxvbmdfbmFtZSA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICAkdGhpcy0+ZGItPkV4ZWN1dGUoJHNxbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9iai0+bmFtZSwgJG9iai0+cGFyZW50X2lkLCAkb2JqLT5pb3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5oaWVyYXJjaHksICRvYmotPmxvbmdfbmFtZSwgJG9iai0+aWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpbnNlcnQoSGllcmFyY2h5ICRvYmopIDogSGllcmFyY2h5CiAgICB7CiAgICAgICAgaWYoICRvYmotPmlkID4gMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBpbnNlcnQgYSBoaWVyYXJjaHkgdGhhdCBhbHJlYWR5IGhhcyBhbiBpZCcpOwogICAgICAgICRzcWwgPSAnU0VMRUNUIENPQUxFU0NFKE1BWChpb3JkZXIpLDApKzEgRlJPTSAnLiR0aGlzLT5oaWVyYXJjaHlfdGFibGUoKS4nIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgICAgICRvYmogPSAkb2JqLT53aXRoKCdpb3JkZXInLCAkdGhpcy0+ZGItPkdldE9uZSgkc3FsLCBbJG9iai0+cGFyZW50X2lkXSkpOwoKICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcuJHRoaXMtPmhpZXJhcmNoeV90YWJsZSgpLicgKG5hbWUsIHBhcmVudF9pZCwgaW9yZGVyKSBWQUxVRVMgKD8sPyw/KSc7CiAgICAgICAgJGRiciA9ICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvYmotPm5hbWUsICRvYmotPnBhcmVudF9pZCwgJG9iai0+aW9yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pOwogICAgICAgICRvYmogPSAkb2JqLT53aXRoKCdpZCcsICR0aGlzLT5kYi0+SW5zZXJ0X0lEKCkpOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKEhpZXJhcmNoeSAkb2JqKSA6IEhpZXJhcmNoeQogICAgewogICAgICAgICR0aGlzLT52YWxpZGF0ZSgkb2JqKTsKICAgICAgICAkdGhpcy0+ZGItPkJlZ2luVHJhbnMoKTsKICAgICAgICBpZiggJG9iai0+aWQgPiAwICkgewogICAgICAgICAgICAkb3V0ID0gJHRoaXMtPnVwZGF0ZSgkb2JqKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRvdXQgPSAkdGhpcy0+aW5zZXJ0KCRvYmopOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+Y2FsY3VsYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICAgICAgICAkdGhpcy0+bm90aWZ5KCk7CiAgICAgICAgJHRoaXMtPmRiLT5Db21taXRUcmFucygpOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoSGllcmFyY2h5ICRvYmopIDogSGllcmFyY2h5CiAgICB7CiAgICAgICAgaWYoICRvYmotPmlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBkZWxldGUgaGllcmFyY2h5IHRoYXQgaGFzIG5vdCBiZWVuIHNhdmVkJyk7CgogICAgICAgICRzcWwgPSAnU0VMRUNUIGNvdW50KGlkKSBGUk9NICcuJHRoaXMtPmhpZXJhcmNoeV90YWJsZSgpLicgV0hFUkUgcGFyZW50X2lkID0gPyc7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsIFskb2JqLT5pZF0pOwogICAgICAgIGlmKCAkdG1wID4gMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBkZWxldGUgaGllcmFyY2h5IHRoYXQgaGFzIGNoaWxkcmVuJyk7CgogICAgICAgICR0aGlzLT5kYi0+QmVnaW5UcmFucygpOwogICAgICAgICRzcWwgPSAnVVBEQVRFICcuJHRoaXMtPmNvbXBhbmllc190YWJsZSgpLicgU0VUIGhpZXJfaWQgPSAtMSBXSEVSRSBoaWVyX2lkID0gPyc7CiAgICAgICAgJHRoaXMtPmRiLT5FeGVjdXRlKCRzcWwsIFskb2JqLT5pZF0pOwogICAgICAgICRzcWwgPSAnREVMRVRFIEZST00gJy4kdGhpcy0+aGllcmFyY2h5X3RhYmxlKCkuJyBXSEVSRSBpZCA9ID8nOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJG9iai0+aWRdKTsKICAgICAgICAkc3FsID0gJ1VQREFURSAnLiR0aGlzLT5oaWVyYXJjaHlfdGFibGUoKS4nIFNFVCBpb3JkZXIgPSBpb3JkZXIgLSAxIFdIRVJFIHBhcmVudF9pZCA9ID8gQU5EIGlvcmRlciA+ID8nOwogICAgICAgICR0aGlzLT5kYi0+RXhlY3V0ZSgkc3FsLCBbJG9iai0+cGFyZW50X2lkLCAkb2JqLT5pb3JkZXJdKTsKCiAgICAgICAgJHRoaXMtPmNhbGN1bGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CiAgICAgICAgJHRoaXMtPm5vdGlmeSgpOwogICAgICAgICR0aGlzLT5kYi0+Q29tbWl0VHJhbnMoKTsKICAgICAgICByZXR1cm4gJG9iai0+d2l0aCgnaWQnLG51bGwpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGlzdCgpCiAgICB7CiAgICAgICAgJHRyZWUgPSAkdGhpcy0+Z2V0X3RyZWUoKTsKICAgICAgICBpZiggISR0cmVlICkgcmV0dXJuOwogICAgICAgICRvdXQgPSBudWxsOwoKICAgICAgICAkZnVuYyA9IGZ1bmN0aW9uKCRub2RlcykgdXNlICgmJG91dCwgJiRmdW5jKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRub2RlcyBhcyAkbm9kZSApIHsKICAgICAgICAgICAgICAgICRvdXRbJG5vZGUtPmlkXSA9IHN0cl9yZXBlYXQoJyA+ICcsICRub2RlLT5kZXB0aCkgLiAkbm9kZS0+bmFtZTsKICAgICAgICAgICAgICAgIGlmKCAkbm9kZS0+Y2hpbGRyZW4gKSAkZnVuYygkbm9kZS0+Y2hpbGRyZW4pOwogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICAkZnVuYygkdHJlZSk7CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmVlKCkKICAgIHsKICAgICAgICAkbGlzdCA9ICR0aGlzLT5sb2FkX2FsbCgpOwogICAgICAgIGlmKCAhJGxpc3QgKSByZXR1cm47CgogICAgICAgICRnZXRfdHJlZSA9IGZ1bmN0aW9uKCRwYXJlbnRfaWQgPSAtMSwgJGRlcHRoID0gMCkgdXNlICgmJHRyZWUsICRsaXN0LCAmJGRhdGEsICYkZ2V0X3RyZWUpIHsKICAgICAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggJG9uZS0+cGFyZW50X2lkICE9ICRwYXJlbnRfaWQgKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAkdG1wID0gJGdldF90cmVlKCRvbmUtPmlkLCRkZXB0aCsxKTsKICAgICAgICAgICAgICAgICRuZXdfb2JqID0gbmV3IEhpZXJhcmNoeVRyZWVOb2RlKCRvbmUsJGRlcHRoLCR0bXApOwogICAgICAgICAgICAgICAgJG91dFtdID0gJG5ld19vYmo7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRvdXQ7CiAgICAgICAgfTsKCiAgICAgICAgJHRyZWUgPSAkZ2V0X3RyZWUoKTsKICAgICAgICByZXR1cm4gJHRyZWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maXJzdF9ieV9uYW1lKHN0cmluZyAkbmFtZSkKICAgIHsKICAgICAgICBpZiggISRuYW1lICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgbmFtZSBwcm92aWRlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICRhbGwgPSAkdGhpcy0+bG9hZF9hbGwoKTsKICAgICAgICBpZiggISRhbGwgKSByZXR1cm47CgogICAgICAgIGZvcmVhY2goJGFsbCBhcyAkaGllcl9vYikgewogICAgICAgICAgICBpZiggJGhpZXJfb2ItPm5hbWUgPT0gJG5hbWUgKSByZXR1cm4gJGhpZXJfb2I7CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjYWxjdWxhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpCiAgICB7CiAgICAgICAgJGNhbGNfZnVuYyA9IGZ1bmN0aW9uKCRub2Rlcywgc3RyaW5nICRwYXJlbnRfbG9uZ19uYW1lLCBzdHJpbmcgJHBhcmVudF9oaWVyYXJjaHkpIHVzZSAoJiRjYWxjX2Z1bmMpIHsKICAgICAgICAgICAgZm9yZWFjaCggJG5vZGVzIGFzICRub2RlICkgewogICAgICAgICAgICAgICAgJGxvbmdfbmFtZSA9ICRub2RlLT5uYW1lOwogICAgICAgICAgICAgICAgaWYoICRwYXJlbnRfbG9uZ19uYW1lICkgJGxvbmdfbmFtZSA9ICRwYXJlbnRfbG9uZ19uYW1lLicgfCAnLiRsb25nX25hbWU7CiAgICAgICAgICAgICAgICAkaGllcmFyY2h5ID0gc3RyX3BhZCgoc3RyaW5nKSAkbm9kZS0+aW9yZGVyLCA1LCcwJywgU1RSX1BBRF9MRUZUKTsKICAgICAgICAgICAgICAgIGlmKCAkcGFyZW50X2hpZXJhcmNoeSApICRoaWVyYXJjaHkgPSAkcGFyZW50X2hpZXJhcmNoeS4nLicuJGhpZXJhcmNoeTsKICAgICAgICAgICAgICAgICRjYXQgPSAkbm9kZS0+cmVmOwogICAgICAgICAgICAgICAgJGNhdCA9ICRjYXQtPndpdGgoJ2hpZXJhcmNoeScsICRoaWVyYXJjaHkpLT53aXRoKCdsb25nX25hbWUnLCAkbG9uZ19uYW1lKTsKICAgICAgICAgICAgICAgICRub2RlID0gJG5vZGUtPndpdGgoJ3JlZicsICRjYXQpOwogICAgICAgICAgICAgICAgJHRoaXMtPnVwZGF0ZSgkY2F0KTsKCiAgICAgICAgICAgICAgICAkY2hpbGRyZW4gPSAkbm9kZS0+Y2hpbGRyZW47CiAgICAgICAgICAgICAgICBpZiggJGNoaWxkcmVuICkgJGNhbGNfZnVuYygkY2hpbGRyZW4sICRsb25nX25hbWUsICRoaWVyYXJjaHkpOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJGNhbGNfZnVuYygkdGhpcy0+Z2V0X3RyZWUoKSwgJycsICcnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2xhc3RfZGVjb3JhdG9yKG9iamVjdCAkb2JqKQogICAgewogICAgICAgIGlmKCAhICRvYmogaW5zdGFuY2VvZiBJSGllcmFyY2h5TWFuYWdlciApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGlucHV0IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5sYXN0X2RlY29yYXRvciA9ICRvYmo7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9sYXN0X2RlY29yYXRvcigpCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5sYXN0X2RlY29yYXRvciApIHJldHVybiAkdGhpcy0+bGFzdF9kZWNvcmF0b3I7CiAgICAgICAgcmV0dXJuICR0aGlzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBidWxrX3Jlb3JkZXIoYXJyYXkgJGRhdGEpCiAgICB7CiAgICAgICAgJGFsbCA9ICR0aGlzLT5nZXRfbGFzdF9kZWNvcmF0b3IoKS0+bG9hZF9hbGwoKTsKICAgICAgICBpZiggZW1wdHkoJGFsbCkgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDYW5ub3QgcmVvcmRlciBoaWVyYXJjaGllcyB3aGVuIHRoZXJlIGFyZSBub25lJyk7CiAgICAgICAgaWYoIGNvdW50KCRhbGwpICE9IGNvdW50KCRkYXRhKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGRhdGEgcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkYXJyID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkYWxsIGFzICRjYXQgKSB7CiAgICAgICAgICAgICRhcnJbJGNhdC0+aWRdID0gJGNhdDsKICAgICAgICB9CiAgICAgICAgdW5zZXQoJGFsbCk7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICR0aGlzLT5kYi0+QmVnaW5UcmFucygpOwogICAgICAgICAgICBmb3JlYWNoKCAkZGF0YSBhcyAkaGllcmlkID0+ICRyb3cgKSB7CiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRhcnJbJGhpZXJpZF0pICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ2F0ZWdvcnkgd2l0aCBpZCAnLiRjYXRpZC4nIG5vdCBmb3VuZCcpOwogICAgICAgICAgICAgICAgJGhpZXIgPSAkYXJyWyRoaWVyaWRdOwogICAgICAgICAgICAgICAgJGhpZXIgPSAkaGllci0+d2l0aCgncGFyZW50X2lkJywgJHJvd1sncGFyZW50X2lkJ10pLT53aXRoKCdpb3JkZXInLCAkcm93Wydpb3JkZXInXSk7CiAgICAgICAgICAgICAgICAkdGhpcy0+dXBkYXRlKCRoaWVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+Y2FsY3VsYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICAgICAgICAgICAgJHRoaXMtPm5vdGlmeSgpOwogICAgICAgICAgICAkdGhpcy0+ZGItPkNvbW1pdFRyYW5zKCk7CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAkdGhpcy0+ZGItPlJvbGxiYWNrVHJhbnMoKTsKICAgICAgICAgICAgdGhyb3cgJGU7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjb21wYW5pZXNfdGFibGUoKQogICAgewogICAgICAgIHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBoaWVyYXJjaHlfdGFibGUoKQogICAgewogICAgICAgIHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9oaWVyJzsKICAgIH0KfSAvLyBjbGFzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.HierarchyManagerAuditDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xIb29rTWFuYWdlcjsKCmNsYXNzIEhpZXJhcmNoeU1hbmFnZXJBdWRpdERlY29yYXRvciBpbXBsZW1lbnRzIElIaWVyYXJjaHlNYW5hZ2VyCnsKICAgIHByaXZhdGUgJHBhcmVudDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoSUhpZXJhcmNoeU1hbmFnZXIgJHBhcmVudCkKICAgIHsKICAgICAgICAkdGhpcy0+cGFyZW50ID0gJHBhcmVudDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX2hpZXJhcmNoeShhcnJheSAkZGF0YSA9IFtdKSA6IEhpZXJhcmNoeQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5jcmVhdGVfaGllcmFyY2h5KCRkYXRhKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9hbGwoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5sb2FkX2FsbCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogSGllcmFyY2h5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYnlfaWQoJGlkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZShIaWVyYXJjaHkgJGhpZXJhcmNoeSkgOiBIaWVyYXJjaHkKICAgIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5wYXJlbnQtPnNhdmUoJGhpZXJhcmNoeSk7CiAgICAgICAgYXVkaXQoJGRhdGEtPmlkLCdDb21wYW55RGlyZWN0b3J5JywgJ0hpZXJhcmNoeSBzYXZlZCcpOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKEhpZXJhcmNoeSAkaGllcmFyY2h5KSA6IEhpZXJhcmNoeQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPnBhcmVudC0+ZGVsZXRlKCRoaWVyYXJjaHkpOwogICAgICAgIGF1ZGl0KCRoaWVyYXJjaHktPmlkLCdDb21wYW55RGlyZWN0b3J5JywgJ0hpZXJhcmNoeSBkZWxldGVkJyk7CiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGlzdCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF9saXN0KCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmVlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X3RyZWUoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgZmlyc3QgaGllcmFyY2h5IChpZiBhbnkpIHdpdGggdGhlIHByb3ZpZGVkIG5hbWUuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQogICAgICogQHJldHVybiBIaWVyYXJjaHl8bnVsbAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpcnN0X2J5X25hbWUoc3RyaW5nICRuYW1lKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfZmlyc3RfYnlfbmFtZSgkbmFtZSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGJ1bGtfcmVvcmRlcihhcnJheSAkZGF0YSkKICAgIHsKICAgICAgICBhdWRpdCgnJywnQ29tcGFueURpcmVjdG9yeScsJ1Jlb3JkZXJlZCBoaWVyYXJjaGllcycpOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5idWxrX3Jlb3JkZXIoJGRhdGEpOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.HierarchyManagerCacheDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjbXNfY2FjaGVfZHJpdmVyIGFzIGNhY2hlX2RyaXZlcjsKCmNsYXNzIEhpZXJhcmNoeU1hbmFnZXJDYWNoZURlY29yYXRvciBpbXBsZW1lbnRzIElIaWVyYXJjaHlNYW5hZ2VyCnsKICAgIHByaXZhdGUgJHBhcmVudDsKICAgIHByaXZhdGUgJGNhY2hlX2RyaXZlcjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoSUhpZXJhcmNoeU1hbmFnZXIgJHBhcmVudCwgY2FjaGVfZHJpdmVyICRkcml2ZXIpCiAgICB7CiAgICAgICAgJHRoaXMtPnBhcmVudCA9ICRwYXJlbnQ7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlciA9ICRkcml2ZXI7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9oaWVyYXJjaHkoYXJyYXkgJGRhdGEgPSBbXSkgOiBIaWVyYXJjaHkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Y3JlYXRlX2hpZXJhcmNoeSgkZGF0YSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYWxsKCkKICAgIHsKICAgICAgICBpZiggKCRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19DTEFTU19fKSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5sb2FkX2FsbCgpOwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldChfX01FVEhPRF9fLCAkZGF0YSwgX19DTEFTU19fKTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBIaWVyYXJjaHkKICAgIHsKICAgICAgICBpZiggKCRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KCRpZCxfX0NMQVNTX18pKSApIHsKICAgICAgICAgICAgcmV0dXJuICRkYXRhOwogICAgICAgIH0KICAgICAgICAkZGF0YSA9ICR0aGlzLT5wYXJlbnQtPmxvYWRfYnlfaWQoJGlkKTsKICAgICAgICAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5zZXQoX19NRVRIT0RfXywgJGRhdGEsIF9fQ0xBU1NfXyk7CiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKEhpZXJhcmNoeSAkaGllcmFyY2h5KSA6IEhpZXJhcmNoeQogICAgewogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPmNsZWFyKF9fQ0xBU1NfXyk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPnNhdmUoJGhpZXJhcmNoeSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShIaWVyYXJjaHkgJGhpZXJhcmNoeSkgOiBIaWVyYXJjaHkKICAgIHsKICAgICAgICAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5jbGVhcihfX0NMQVNTX18pOwogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5kZWxldGUoJGhpZXJhcmNoeSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saXN0KCkKICAgIHsKICAgICAgICBpZiggKCRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19DTEFTU19fKSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5nZXRfbGlzdCgpOwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldChfX01FVEhPRF9fLCAkZGF0YSwgX19DTEFTU19fKTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF90cmVlKCkKICAgIHsKICAgICAgICBpZiggKCRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19DTEFTU19fKSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5nZXRfdHJlZSgpOwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldChfX01FVEhPRF9fLCAkZGF0YSwgX19DTEFTU19fKTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGZpcnN0IGhpZXJhcmNoeSAoaWYgYW55KSB3aXRoIHRoZSBwcm92aWRlZCBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICAqIEByZXR1cm4gSGllcmFyY2h5fG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maXJzdF9ieV9uYW1lKHN0cmluZyAkbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2ZpcnN0X2J5X25hbWUoJG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBidWxrX3Jlb3JkZXIoYXJyYXkgJGRhdGEpCiAgICB7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5wYXJlbnQtPmJ1bGtfcmVvcmRlcigkZGF0YSk7CiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+Y2xlYXIoX19DTEFTU19fKTsKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.HierarchyManagerHookDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xIb29rTWFuYWdlcjsKCmNsYXNzIEhpZXJhcmNoeU1hbmFnZXJIb29rRGVjb3JhdG9yIGltcGxlbWVudHMgSUhpZXJhcmNoeU1hbmFnZXIKewogICAgcHJpdmF0ZSAkcGFyZW50OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChJSGllcmFyY2h5TWFuYWdlciAkcGFyZW50KQogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQgPSAkcGFyZW50OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfaGllcmFyY2h5KGFycmF5ICRkYXRhID0gW10pIDogSGllcmFyY2h5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmNyZWF0ZV9oaWVyYXJjaHkoJGRhdGEpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2FsbCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmxvYWRfYWxsKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBIaWVyYXJjaHkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+bG9hZF9ieV9pZCgkaWQpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKEhpZXJhcmNoeSAkaGllcmFyY2h5KSA6IEhpZXJhcmNoeQogICAgewogICAgICAgIEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDb21wYW55RGlyZWN0b3J5OjpCZWZvcmVTYXZlSGllcmFyY2h5JywgJGhpZXJhcmNoeSk7CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5zYXZlKCRoaWVyYXJjaHkpOwogICAgICAgIEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDb21wYW55RGlyZWN0b3J5OjpBZnRlclNhdmVIaWVyYXJjaHknLCAkZGF0YSk7CiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoSGllcmFyY2h5ICRoaWVyYXJjaHkpIDogSGllcmFyY2h5CiAgICB7CiAgICAgICAgSG9va01hbmFnZXI6OmRvX2hvb2soJ0NvbXBhbnlEaXJlY3Rvcnk6OkJlZm9yZURlbGV0ZUhpZXJhcmNoeScsICRoaWVyYXJjaHkpOwogICAgICAgICRkYXRhID0gJHRoaXMtPnBhcmVudC0+ZGVsZXRlKCRoaWVyYXJjaHkpOwogICAgICAgIEhvb2tNYW5hZ2VyOjpkb19ob29rKCdDb21wYW55RGlyZWN0b3J5OjpBZnRlckRlbGV0ZUhpZXJhcmNoeScsICRoaWVyYXJjaHkpOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xpc3QoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cGFyZW50LT5nZXRfbGlzdCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHJlZSgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmdldF90cmVlKCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGZpcnN0IGhpZXJhcmNoeSAoaWYgYW55KSB3aXRoIHRoZSBwcm92aWRlZCBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICAqIEByZXR1cm4gSGllcmFyY2h5fG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maXJzdF9ieV9uYW1lKHN0cmluZyAkbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnBhcmVudC0+Z2V0X2ZpcnN0X2J5X25hbWUoJG5hbWUpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBidWxrX3Jlb3JkZXIoYXJyYXkgJGRhdGEpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5wYXJlbnQtPmJ1bGtfcmVvcmRlcigkZGF0YSk7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.HierarchyQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBjZ2VfcGFyYW07CgovKioKICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSAnaGllcicgcXVlcnkgZXhwcmVzc2lvbgogKi8KY2xhc3MgSGllcmFyY2h5UXVlcnlFeHByZXNzaW9uCnsKICAgIHByaXZhdGUgJGhpZXJhcmNoeV9tYW5hZ2VyOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChJSGllcmFyY2h5TWFuYWdlciAkaG1ncikKICAgIHsKICAgICAgICAkdGhpcy0+aGllcmFyY2h5X21hbmFnZXIgPSAkaG1ncjsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZXhwYW5kX2hpZXJhcmNoaWVzKCRsaXN0KQogICAgewogICAgICAgIGlmKCAhaXNfaW50KCRsaXN0KSAmJiAhaXNfYXJyYXkoJGxpc3QpICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgZGF0YSBwcm92aWRlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCBpc19pbnQoJGxpc3QpICkgJGxpc3QgPSBbICRsaXN0IF07CgogICAgICAgICRmaW5kX2hpZXJhcmNoeSA9IGZ1bmN0aW9uKGludCAkaWQsIGFycmF5ICR0cmVlKSB1c2UgKCYkZmluZF9oaWVyYXJjaHkpIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRyZWUgYXMgJG5vZGUgKSB7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmlkID09PSAkaWQgKSByZXR1cm4gJG5vZGU7CiAgICAgICAgICAgICAgICBpZiggJG5vZGUtPmNoaWxkcmVuICkgewogICAgICAgICAgICAgICAgICAgICRyZXMgPSAkZmluZF9oaWVyYXJjaHkoJGlkLCAkbm9kZS0+Y2hpbGRyZW4pOwogICAgICAgICAgICAgICAgICAgIGlmKCAkcmVzICkgcmV0dXJuICRyZXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICAkbGlzdF9jaGlsZHJlbiA9IGZ1bmN0aW9uKEhpZXJhcmNoeVRyZWVOb2RlICRub2RlKSB1c2UgKCYkbGlzdF9jaGlsZHJlbikgewogICAgICAgICAgICAkb3V0ID0gWyRub2RlLT5pZF07CiAgICAgICAgICAgIGlmKCAkbm9kZS0+Y2hpbGRyZW4gKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkbm9kZS0+Y2hpbGRyZW4gYXMgJGNoaWxkICkgewogICAgICAgICAgICAgICAgICAgICRyZXMgPSAkbGlzdF9jaGlsZHJlbigkY2hpbGQpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhZW1wdHkoJHJlcykgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXQgPSBhcnJheV9tZXJnZSgkb3V0LCRyZXMpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICB9OwoKICAgICAgICAkdHJlZSA9ICR0aGlzLT5oaWVyYXJjaHlfbWFuYWdlci0+Z2V0X3RyZWUoKTsKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJGl0ZW0gKSB7CiAgICAgICAgICAgIGlmKCAhaXNfaW50KCRpdGVtKSB8fCAkaXRlbSA8IDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCBkYXRhIHByb3ZpZGVkIGluIGFycmF5IHRvICcuX19NRVRIT0RfXyk7CiAgICAgICAgICAgIC8vIGZpbmQgdGhpcyBpdGVtIGluIHRoZSBoaWVyYXJjaHkgdHJlZQogICAgICAgICAgICAkbm9kZSA9ICRmaW5kX2hpZXJhcmNoeSgkaXRlbSwgJHRyZWUpOwogICAgICAgICAgICBpZiggISRub2RlICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIGhpZXJhcmNoeSB3aXRoIGlkICcuJGl0ZW0uJyBpbiAnLl9fTUVUSE9EX18pOwogICAgICAgICAgICAkb3V0ID0gJG91dCArICRsaXN0X2NoaWxkcmVuKCRub2RlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9faW52b2tlKGFycmF5ICRzdGF0ZW1lbnQsIElRdWVyeUJ1aWxkZXIgJGJ1aWxkZXIpCiAgICB7CiAgICAgICAgaWYoIGNvdW50KCRzdGF0ZW1lbnQpIDwgMiB8fCBjb3VudCgkc3RhdGVtZW50KSA+IDMpIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIkludmFsaWQgZm9ybWF0IGZvciBoaWVyIGNvbW1hbmQuICBmb3JtYXQgaXM6ICBoZWlyOmlkWyhpbnQpIHdpdGhjaGlsZHJlbl0iKTsKICAgICAgICAkaGllcl9pZCA9IChpbnQpJHN0YXRlbWVudFsxXTsKICAgICAgICAkd2l0aF9jaGlsZHJlbiA9IGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHN0YXRlbWVudCwoc3RyaW5nKTIpOwogICAgICAgIGlmKCAkaGllcl9pZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCJJbnZhbGlkIGZvcm1hdCBmb3IgaGllciBjb21tYW5kLiAgZm9ybWF0IGlzOiAgaGVpcjppZFsoaW50KSB3aXRoY2hpbGRyZW5dIik7CiAgICAgICAgJGxpc3QgPSAkc3RyID0gbnVsbDsKICAgICAgICBpZiggJHdpdGhfY2hpbGRyZW4gKSB7CiAgICAgICAgICAgICRsaXN0ID0gJHRoaXMtPmV4cGFuZF9oaWVyYXJjaGllcygkaGllcl9pZCk7CiAgICAgICAgfQogICAgICAgIGlmKCAkbGlzdCApIHsKICAgICAgICAgICAgJGxpc3QgPSBbJGhpZXJfaWRdICsgJGxpc3Q7CiAgICAgICAgICAgICRzdHIgPSAnJVRBQkxFJS5oaWVyX2lkIElOICgnLmltcGxvZGUoJywnLCRsaXN0KS4nKSc7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHN0ciA9ICclVEFCTEUlLmhpZXJfaWQgPSAnLiRidWlsZGVyLT5hcmcoJGhpZXJfaWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHN0cjsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.HierarchyTreeNode.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgSGllcmFyY2h5VHJlZU5vZGUKewogICAgcHJpdmF0ZSAkcmVmOwogICAgcHJpdmF0ZSAkZGVwdGg7CiAgICBwcml2YXRlICRjaGlsZHJlbjsKICAgIHByaXZhdGUgJGNvdW50OwogICAgcHJpdmF0ZSAkdG90YWw7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEhpZXJhcmNoeSAkY2F0LCBpbnQgJGRlcHRoLCBhcnJheSAkY2hpbGRyZW4gPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5yZWYgPSAkY2F0OwogICAgICAgICR0aGlzLT5kZXB0aCA9ICRkZXB0aDsKICAgICAgICAkdGhpcy0+Y2hpbGRyZW4gPSAkY2hpbGRyZW47CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KHN0cmluZyAka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdyZWYnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJlZjsKCiAgICAgICAgY2FzZSAnZGVwdGgnOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPmRlcHRoOwoKICAgICAgICBjYXNlICdjaGlsZHJlbic6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Y2hpbGRyZW47CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmVmLT5fX2dldCgka2V5KTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KHN0cmluZyAka2V5LCAkdmFsKQogICAgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgc2V0dGFibGUgcHJvcGVydHkgb2YgIi5fX0NMQVNTX18pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB3aXRoKHN0cmluZyAka2V5LCAkdmFsKQogICAgewogICAgICAgIGlmKCAka2V5ID09ICdyZWYnICYmICR2YWwgaW5zdGFuY2VvZiBIaWVyYXJjaHkgKSB7CiAgICAgICAgICAgICR0aGlzLT5yZWYgPSAkdmFsOwogICAgICAgIH0KICAgICAgICBlbHNlaWYoICRrZXkgPT0gJ2NoaWxkcmVuJyAmJiBpc19hcnJheSgkdmFsKSApIHsKICAgICAgICAgICAgJHRoaXMtPmNoaWxkcmVuID0gJHZhbDsKICAgICAgICB9CiAgICAgICAgZWxzZWlmKCAka2V5ID09ICdjb3VudCcgKSB7CiAgICAgICAgICAgICR0aGlzLT5jb3VudCA9IChpbnQpICR2YWw7CiAgICAgICAgfQogICAgICAgIGVsc2VpZiggJGtleSA9PSAndG90YWwnICkgewogICAgICAgICAgICAkdGhpcy0+dG90YWwgPSAoaW50KSAkdmFsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXM7CiAgICB9Cgp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.IdlistQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgovKioKICogVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSAnZnVsbHRleHQnIHF1ZXJ5IGV4cHJlc3Npb24KICovCmNsYXNzIElkTGlzdFF1ZXJ5RXhwcmVzc2lvbgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoYXJyYXkgJHN0YXRlbWVudCwgSVF1ZXJ5QnVpbGRlciAkYnVpbGRlcikKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCRzdGF0ZW1lbnRbMV0pIHx8ICFpc19zdHJpbmcoJHN0YXRlbWVudFsxXSkgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbnNzaW9uKCdObyBpZGxpc3Qgc3BlY2lmaWVkJyk7CiAgICAgICAgJHRtcCA9ICRzdGF0ZW1lbnRbMV07CiAgICAgICAgaWYoIGlzX3N0cmluZygkdG1wKSApICR0bXAgPSBleHBsb2RlKCcsJywgJHRtcCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uc3Npb24oJ0ludmFsaWQgaWRsaXN0IHN0YXRlbWVudCcpOwogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICRvbmUgPSAoaW50KSAkb25lOwogICAgICAgICAgICBpZiggJG9uZSA+IDAgJiYgIWluX2FycmF5KCRvbmUsJG91dCkgKSAkb3V0W10gPSAkb25lOwogICAgICAgIH0KICAgICAgICBpZiggZW1wdHkoJG9uZSkgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignTm8gdmFsaWQgY29tcGFueSBpZHMgc3BlY2lmaWVkJyk7CiAgICAgICAgJHN0ciA9ICclVEFCTEUlLmlkIElOICgnLmltcGxvZGUoJywnLCAkb3V0KS4nKSc7CiAgICAgICAgcmV0dXJuICRzdHI7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.LinkDefinitionGenerator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgXENHRXh0ZW5zaW9uc1xMaW5rRGVmaW5pdGlvbiBBUyBCQVNFOwoKY2xhc3MgTGlua0RlZmluaXRpb25HZW5lcmF0b3IgaW1wbGVtZW50cyBCQVNFXExpbmtEZWZpbml0aW9uR2VuZXJhdG9yCnsKICAgIHByaXZhdGUgJG1vZDsKICAgIHByaXZhdGUgJHNldHRpbmdzOwogICAgcHJpdmF0ZSAkX2RhdGFyZWY7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KENvbXBhbnlEaXJlY3RvcnkgJG1vZCwgc2V0dGluZ3MgJHNldHRpbmdzKQogICAgewogICAgICAgICR0aGlzLT5tb2QgPSAkbW9kOwogICAgICAgICR0aGlzLT5zZXR0aW5ncyA9ICRzZXR0aW5nczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RhdGFyZWYoQkFTRVxEYXRhUmVmICRkYXRhcmVmKQogICAgewogICAgICAgICR0aGlzLT5fZGF0YXJlZiA9ICRkYXRhcmVmOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGlua2RlZmluaXRpb24oKQogICAgewogICAgICAgICRkciA9ICR0aGlzLT5fZGF0YXJlZjsKICAgICAgICBpZiggJGRyLT5rZXkxICE9ICR0aGlzLT5tb2QtPkdldE5hbWUoKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbihfX0NMQVNTX18uJyBEb2VzIG5vdCBrbm93IGhvdyB0byBoYW5kbGUgdGhlIHByb3ZpZGVkIERhdGFSZWYnKTsKCiAgICAgICAgJHBhZ2VpZCA9IGNtc191dGlsczo6Z2V0X2N1cnJlbnRfcGFnZWlkKCk7CiAgICAgICAgaWYoICRwYWdlaWQgPCAxICkgJHBhZ2VpZCA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCktPkdldERlZmF1bHRDb250ZW50KCk7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5zZXR0aW5ncy0+ZGV0YWlscGFnZTsKICAgICAgICBpZiggJHRtcCA+IDAgKSAkcGFnZWlkID0gJHRtcDsKCiAgICAgICAgJGNvbXBhbnkgPSBcY2RfdXRpbHM6OmdldF9jb21wYW55KCRkci0+a2V5MiwkcGFnZWlkLEZBTFNFLFRSVUUpOwogICAgICAgIGlmKCAhaXNfb2JqZWN0KCRjb21wYW55KSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbihfX0NMQVNTX18uJyBDb21wYW55IHdpdGggaWQgJy4kZHItPmtleTIuJyBjb3VsZCBub3QgYmUgcmVhZCcpOwogICAgICAgICRsaW5rZGVmbiA9IG5ldyBCQVNFXExpbmtEZWZpbml0aW9uKCk7CiAgICAgICAgJGxpbmtkZWZuLT5ocmVmID0gJGNvbXBhbnktPmNhbm9uaWNhbDsKICAgICAgICAkbGlua2RlZm4tPnRleHQgPSAkY29tcGFueS0+Y29tcGFueV9uYW1lOwogICAgICAgICRsaW5rZGVmbi0+aWQgPSAkZHItPmtleTI7CgogICAgICAgIGlmKCAhY21zbXMoKS0+aXNfZnJvbnRlbmRfcmVxdWVzdCgpICkgewogICAgICAgICAgICAvLyB0ZXN0IGlmIHRoaXMgdXNlciBoYXMgdGhlIHBlcm0gdG8gZWRpdCB0aGlzIGNvbXBhbnkuCiAgICAgICAgICAgIGlmKCAkbW9kLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpICkgewogICAgICAgICAgICAgICAgJGxpbmtkZWZuLT50aXRsZSA9ICRtb2QtPkxhbmcoJ2VkaXQnKTsKICAgICAgICAgICAgICAgICRsaW5rZGVmbi0+aHJlZiA9ICRtb2QtPmNyZWF0ZV91cmwoJ20xXycsJ2VkaXRjb21wYW55JywnJyxhcnJheSgnY29tcGlkJz0+JGRyLT5rZXkyKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGZvciBmcm9udGVuZCBhY3Rpb25zIHdlIGNvdWxkIGxpbmsgdG8gdGhlIGZlc3VibWl0IHN0dWZmIElGIHRoZSB1c2VyIGlzIHRoZSBvd25lcgogICAgICAgIC8vIEFORCB3ZSBoYXZlIGEgcGFnZWlkLi4uCiAgICAgICAgcmV0dXJuICRsaW5rZGVmbjsKICAgIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/class.MetaQueryCacheDecorator.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xEYXRhYmFzZVxDb25uZWN0aW9uIGFzIERhdGFiYXNlOwp1c2UgY21zX2NhY2hlX2RyaXZlciBhcyBjYWNoZV9kcml2ZXI7CnVzZSBTcGxTdWJqZWN0OwoKY2xhc3MgTWV0YVF1ZXJ5Q2FjaGVEZWNvcmF0b3IgaW1wbGVtZW50cyBJTWV0YVF1ZXJ5TWFuYWdlcgp7CiAgICBwcml2YXRlICRwYXJlbnQ7CiAgICBwcml2YXRlICRjYWNoZV9kcml2ZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElNZXRhUXVlcnlNYW5hZ2VyICRwYXJlbnQsIGNhY2hlX2RyaXZlciAkZHJpdmVyKQogICAgewogICAgICAgICR0aGlzLT5wYXJlbnQgPSAkcGFyZW50OwogICAgICAgICR0aGlzLT5jYWNoZV9kcml2ZXIgPSAkZHJpdmVyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1cGRhdGUoU3BsU3ViamVjdCAkc3ViamVjdCkKICAgIHsKICAgICAgICAvLyB3aGV2ZXIgb25lIG9mIG91ciB3YXRjaGVkIG9iamVjdHMgY2hhbmdlcyB3ZSBjbGVhciBvdXIgY2FjaGUuCiAgICAgICAgJHRoaXMtPmNhY2hlX2RyaXZlci0+Y2xlYXIoX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2hpZXJhcmNoeV9jb3VudHMoKQogICAgewogICAgICAgIGlmKCAoJGRhdGEgPSAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5nZXQoX19NRVRIT0RfXyxfX0NMQVNTX18pKSApIHsKICAgICAgICAgICAgcmV0dXJuICRkYXRhOwogICAgICAgIH0KICAgICAgICAkZGF0YSA9ICR0aGlzLT5wYXJlbnQtPmdldF9oaWVyYXJjaHlfY291bnRzKCk7CiAgICAgICAgaWYoICRkYXRhICkgJHRoaXMtPmNhY2hlX2RyaXZlci0+c2V0KF9fTUVUSE9EX18sJGRhdGEsX19DTEFTU19fKTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9oaWVyYXJjaHlfdHJlZV93aXRoX2NvdW50cyhJSGllcmFyY2h5TWFuYWdlciAkaG1ncikKICAgIHsKICAgICAgICBpZiggKCRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19DTEFTU19fKSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5nZXRfaGllcmFyY2h5X3RyZWVfd2l0aF9jb3VudHMoJGhtZ3IpOwogICAgICAgIGlmKCAkZGF0YSApICR0aGlzLT5jYWNoZV9kcml2ZXItPnNldChfX01FVEhPRF9fLCAkZGF0YSwgX19DTEFTU19fKTsKICAgICAgICByZXR1cm4gJGRhdGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9jb3VudHMoKQogICAgewogICAgICAgIGlmKCAoJGRhdGEgPSAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5nZXQoX19NRVRIT0RfXyxfX0NMQVNTX18pKSApIHsKICAgICAgICAgICAgcmV0dXJuICRkYXRhOwogICAgICAgIH0KICAgICAgICAkZGF0YSA9ICR0aGlzLT5wYXJlbnQtPmdldF9jYXRlZ29yeV9jb3VudHMoKTsKICAgICAgICBpZiggJGRhdGEgKSAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5zZXQoX19NRVRIT0RfXywkZGF0YSxfX0NMQVNTX18pOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3RyZWVfd2l0aF9jb3VudHMoSUNhdGVnb3J5TWFuYWdlciAkaG1ncikKICAgIHsKICAgICAgICBpZiggKCRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19DTEFTU19fKSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5nZXRfY2F0ZWdvcnlfdHJlZV93aXRoX2NvdW50cygkaG1ncik7CiAgICAgICAgaWYoICRkYXRhICkgJHRoaXMtPmNhY2hlX2RyaXZlci0+c2V0KF9fTUVUSE9EX18sICRkYXRhLCBfX0NMQVNTX18pOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FscGhhYmV0aWNfY291bnRzKCkKICAgIHsKICAgICAgICBpZiggKCRkYXRhID0gJHRoaXMtPmNhY2hlX2RyaXZlci0+Z2V0KF9fTUVUSE9EX18sX19DTEFTU19fKSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CiAgICAgICAgJGRhdGEgPSAkdGhpcy0+cGFyZW50LT5nZXRfYWxwaGFiZXRpY19jb3VudHMoKTsKICAgICAgICBpZiggJGRhdGEgKSAkdGhpcy0+Y2FjaGVfZHJpdmVyLT5zZXQoX19NRVRIT0RfXywgJGRhdGEsIF9fQ0xBU1NfXyk7CiAgICAgICAgcmV0dXJuICRkYXRhOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.MetaQueryManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xEYXRhYmFzZVxDb25uZWN0aW9uIGFzIERhdGFiYXNlOwp1c2UgY2dlX2FycmF5Owp1c2UgU3BsU3ViamVjdDsKCmNsYXNzIE1ldGFRdWVyeU1hbmFnZXIgaW1wbGVtZW50cyBJTWV0YVF1ZXJ5TWFuYWdlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoRGF0YWJhc2UgJGRiKQogICAgewogICAgICAgICR0aGlzLT5kYiA9ICRkYjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlKFNwbFN1YmplY3QgJHN1YmplY3QpCiAgICB7CiAgICAgICAgLy8gZG9lcyBub3RoaW5nLgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X2NvdW50cygpCiAgICB7CiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaGllcl9pZCxDT1VOVChpZCkgQVMgY291bnQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzCiAgICAgICAgICAgICAgICBXSEVSRSBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgICBHUk9VUCBCWSBoaWVyX2lkCiAgICAgICAgICAgICAgICBPUkRFUiBCWSBoaWVyX2lkJzsKICAgICAgICAkdG1wID0gJHRoaXMtPmRiLT5HZXRBcnJheSgkc3FsLCBbICdwdWJsaXNoZWQnXSApOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgJG91dCA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCdoaWVyX2lkJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X3RyZWVfd2l0aF9jb3VudHMoSUhpZXJhcmNoeU1hbmFnZXIgJGhtZ3IpCiAgICB7CiAgICAgICAgJGNvdW50X2xpc3QgPSAkdGhpcy0+Z2V0X2hpZXJhcmNoeV9jb3VudHMoKTsKCiAgICAgICAgLy8gZ2V0IHRoZSBjb3VudChzKQogICAgICAgICRfdHJlZV93aXRoX2NvdW50ID0gZnVuY3Rpb24oJHRyZWUsICYkbmV3X3RyZWUpIHVzZSgmJF90cmVlX3dpdGhfY291bnQsICRjb3VudF9saXN0KSB7CiAgICAgICAgICAgIGZvcmVhY2goJHRyZWUgYXMgJG5vZGUpIHsKICAgICAgICAgICAgICAgICRjb3VudCA9IGlzc2V0KCRjb3VudF9saXN0WyRub2RlLT5pZF0pID8gJGNvdW50X2xpc3RbJG5vZGUtPmlkXVsnY291bnQnXSA6IDA7CiAgICAgICAgICAgICAgICAkbmV3X25vZGUgPSAob2JqZWN0KSBbJ2lkJz0+JG5vZGUtPmlkLCAnbmFtZSc9PiRub2RlLT5uYW1lLCAnZGVwdGgnPT4kbm9kZS0+ZGVwdGggKyAxLCAnY291bnQnPT4kY291bnQgXTsKICAgICAgICAgICAgICAgIGlmKCAkbm9kZS0+Y2hpbGRyZW4gKSB7CiAgICAgICAgICAgICAgICAgICAgJGFyciA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgJG51bSA9ICRfdHJlZV93aXRoX2NvdW50KCRub2RlLT5jaGlsZHJlbiwgJGFycik7CiAgICAgICAgICAgICAgICAgICAgaWYoICRhcnIgKSAkbmV3X25vZGUtPmNoaWxkcmVuID0gJGFycjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRuZXdfdHJlZVtdID0gJG5ld19ub2RlOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJF90cmVlX3dpdGhfdG90YWxzID0gZnVuY3Rpb24oJiR0cmVlKSB1c2UgKCYkX3RyZWVfd2l0aF90b3RhbHMpIHsKICAgICAgICAgICAgJHRvdGFsID0gMDsKICAgICAgICAgICAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkgewogICAgICAgICAgICAgICAgJHRvdGFsICs9ICRub2RlLT5jb3VudDsKICAgICAgICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRub2RlLT5jaGlsZHJlbikgKSB7CiAgICAgICAgICAgICAgICAgICAgJG51bSA9ICRfdHJlZV93aXRoX3RvdGFscygkbm9kZS0+Y2hpbGRyZW4pOwogICAgICAgICAgICAgICAgICAgICR0b3RhbCArPSAkbnVtOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG5vZGUtPnRvdGFsID0gJG51bSArICRub2RlLT5jb3VudDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJHRvdGFsOwogICAgICAgIH07CgogICAgICAgICRuZXdfdHJlZSA9IG51bGw7CiAgICAgICAgJGhpZXJfdHJlZSA9ICRobWdyLT5nZXRfdHJlZSgpOwoJaWYoICEkaGllcl90cmVlICkgcmV0dXJuOwogICAgICAgICRfdHJlZV93aXRoX2NvdW50KCRoaWVyX3RyZWUsICRuZXdfdHJlZSk7CiAgICAgICAgdW5zZXQoJGhpZXJfdHJlZSwgJGNvdW50X2xpc3QpOwogICAgICAgICRfdHJlZV93aXRoX3RvdGFscygkbmV3X3RyZWUpOwogICAgICAgIHJldHVybiAkbmV3X3RyZWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9jb3VudHMoKQogICAgewogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgICRzcWwgPSAnU0VMRUNUIGNhdGVnb3J5X2lkLENPVU5UKGNvbXBhbnlfaWQpIEFTIGNvdW50IEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQ0MKICAgICAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTiAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBDTyBPTiBDQy5jb21wYW55X2lkID0gQ08uaWQKICAgICAgICAgICAgICAgIFdIRVJFIENPLnN0YXR1cyA9ID8KICAgICAgICAgICAgICAgIEdST1VQIEJZIENDLmNhdGVnb3J5X2lkCiAgICAgICAgICAgICAgICBPUkRFUiBCWSBDQy5jYXRlZ29yeV9pZCc7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5kYi0+R2V0QXJyYXkoJHNxbCwgWyAncHVibGlzaGVkJ10gKTsKICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgICAgICAgICAgICRvdXQgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnY2F0ZWdvcnlfaWQnKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV90cmVlX3dpdGhfY291bnRzKElDYXRlZ29yeU1hbmFnZXIgJGNtZ3IpCiAgICB7CiAgICAgICAgJGNvdW50X2xpc3QgPSAkdGhpcy0+Z2V0X2NhdGVnb3J5X2NvdW50cygpOwoKICAgICAgICAvLyB0aGlzIHBhcnQgaXMgY29tbW9uIHdpdGggdGhlIGhpZXJhcmNoeSBzdHVmZgogICAgICAgICRfdHJlZV93aXRoX2NvdW50ID0gZnVuY3Rpb24oJHRyZWUsICYkbmV3X3RyZWUpIHVzZSgmJF90cmVlX3dpdGhfY291bnQsICRjb3VudF9saXN0KSB7CiAgICAgICAgICAgIGZvcmVhY2goJHRyZWUgYXMgJG5vZGUpIHsKICAgICAgICAgICAgICAgICRjb3VudCA9IGlzc2V0KCRjb3VudF9saXN0WyRub2RlLT5pZF0pID8gJGNvdW50X2xpc3RbJG5vZGUtPmlkXVsnY291bnQnXSA6IDA7CiAgICAgICAgICAgICAgICAkbmV3X25vZGUgPSAob2JqZWN0KSBbJ2lkJz0+JG5vZGUtPmlkLCAnbmFtZSc9PiRub2RlLT5uYW1lLCAnZGVwdGgnPT4kbm9kZS0+ZGVwdGggKyAxLCAnY291bnQnPT4kY291bnQgXTsKICAgICAgICAgICAgICAgIGlmKCAkbm9kZS0+Y2hpbGRyZW4gKSB7CiAgICAgICAgICAgICAgICAgICAgJGFyciA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgJG51bSA9ICRfdHJlZV93aXRoX2NvdW50KCRub2RlLT5jaGlsZHJlbiwgJGFycik7CiAgICAgICAgICAgICAgICAgICAgaWYoICRhcnIgKSAkbmV3X25vZGUtPmNoaWxkcmVuID0gJGFycjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRuZXdfdHJlZVtdID0gJG5ld19ub2RlOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJF90cmVlX3dpdGhfdG90YWxzID0gZnVuY3Rpb24oJiR0cmVlKSB1c2UgKCYkX3RyZWVfd2l0aF90b3RhbHMpIHsKICAgICAgICAgICAgJHRvdGFsID0gMDsKICAgICAgICAgICAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkgewogICAgICAgICAgICAgICAgJHRvdGFsICs9ICRub2RlLT5jb3VudDsKICAgICAgICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRub2RlLT5jaGlsZHJlbikgKSB7CiAgICAgICAgICAgICAgICAgICAgJG51bSA9ICRfdHJlZV93aXRoX3RvdGFscygkbm9kZS0+Y2hpbGRyZW4pOwogICAgICAgICAgICAgICAgICAgICR0b3RhbCArPSAkbnVtOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG5vZGUtPnRvdGFsID0gJG51bSArICRub2RlLT5jb3VudDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJHRvdGFsOwogICAgICAgIH07CgogICAgICAgICRuZXdfdHJlZSA9IG51bGw7CiAgICAgICAgJGNhdF90cmVlID0gJGNtZ3ItPmdldF90cmVlKCk7CglpZiggISRjYXRfdHJlZSApIHJldHVybjsKICAgICAgICAkX3RyZWVfd2l0aF9jb3VudCgkY2F0X3RyZWUsICRuZXdfdHJlZSk7CiAgICAgICAgdW5zZXQoJGhpZXJfdHJlZSwgJGNvdW50X2xpc3QpOwogICAgICAgICRfdHJlZV93aXRoX3RvdGFscygkbmV3X3RyZWUpOwogICAgICAgIHJldHVybiAkbmV3X3RyZWU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9hbHBoYWJldGljX2NvdW50cygpCiAgICB7CiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgVUNBU0UoU1VCU1RSKGNvbXBhbnlfbmFtZSwxLDEpKSBBUyBhbHBoYSwgQ09VTlQoaWQpIEFTIGNudAogICAgICAgICAgICAgICAgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSBzdGF0dXMgPSA/CiAgICAgICAgICAgICAgICBHUk9VUCBCWSAgVUNBU0UoU1VCU1RSKGNvbXBhbnlfbmFtZSwxLDEpKSc7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+ZGItPkdldEFycmF5KCRzcWwsIFsgJ3B1Ymxpc2hlZCcgXSk7CiAgICAgICAgaWYoIGVtcHR5KCRsaXN0KSApIHJldHVybjsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkcm93ICkgewogICAgICAgICAgICAkb3V0WyRyb3dbJ2FscGhhJ11dID0gKGludCkgJHJvd1snY250J107CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9IC8vIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.RadiusQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgpjbGFzcyBSYWRpdXNRdWVyeUV4cHJlc3Npb24KewogICAgLyoKCSAgJHN0ciA9ICcoU0VMRUNUIDM5NTkgKiBhY29zKGNvcyhyYWRpYW5zKCcuJGNvb3Jkc1snbGF0J10uJykpCiAgICAgICAgICAgICAgICAgKiBjb3MocmFkaWFucyhDLmxhdGl0dWRlKSkKICAgICAgICAgICAgICAgICAqIGNvcyhyYWRpYW5zKEMubG9uZ2l0dWRlKSAtIHJhZGlhbnMoJy4kY29vcmRzWydsb25nJ10uJykpCiAgICAgICAgICAgICAgICAgKyBzaW4ocmFkaWFucygnLiRjb29yZHNbJ2xhdCddLicpKQogICAgICAgICAgICAgICAgICogc2luKHJhZGlhbnMoQy5sYXRpdHVkZSkpKSkgQVMgZGlzdGFuY2UnOwoJICAkY29sdW1uc1tdID0gJHN0cjsKCSAgJGhjb2x1bW5zW10gPSAkc3RyOwoJICAkaGF2aW5nW10gPSAnZGlzdGFuY2UgPD0gJy4oaW50KSRyYWQ7CiAgICAgKi8KCiAgICBwdWJsaWMgZnVuY3Rpb24gcmFkaXVzX21pbGVzKGFycmF5ICRzdGF0ZW1lbnQsIElRdWVyeUJ1aWxkZXIgJGJ1aWxkZXIpCiAgICB7CiAgICAgICAgaWYoIGNvdW50KCRzdGF0ZW1lbnQpICE9IDQgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkIGV4cHJlc3Npb246IGZvcm1hdCByYWRpdXNfbWlsZXM6KGZsb2F0KSByYWRpdXM6KGZsb2F0KSBsYXRpdHVkZTooZmxvYXQpIGxvbmdpdHVkZScpOwogICAgICAgIH0KICAgICAgICAkbWlsZXMgPSAoZmxvYXQpICRzdGF0ZW1lbnRbMV07CiAgICAgICAgJGxhdGl0dWRlID0gKGZsb2F0KSAkc3RhdGVtZW50WzJdOwogICAgICAgICRsb25naXR1ZGUgPSAoZmxvYXQpICRzdGF0ZW1lbnRbM107CiAgICAgICAgaWYoICRtaWxlcyA8IDAuMDAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ0ludmFsaWQgcmFkaXVzIG9mICcuJG1pbGVzLicgbWlsZXMnKTsKICAgICAgICBpZiggJGxhdGl0dWRlIDwgLTE4MC4wMDAwMDEgfHwgJGxhdGl0dWRlID4gMTgwLjAwMDAwMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGxhdGl0dWRlJyk7CiAgICAgICAgaWYoICRsb25naXR1ZGUgPCAtMTgwLjAwMDAwMSB8fCAkbG9uZ2l0dWRlID4gMTgwLjAwMDAwMSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGxvbmdpdHVkZScpOwoKICAgICAgICAkc3RyID0gJyhTRUxFQ1QgMzk1OSAqIGFjb3MoY29zKHJhZGlhbnMoJy4kbGF0aXR1ZGUuJykpCiAgICAgICAgICAgICAgICAgKiBjb3MocmFkaWFucyglVEFCTEUlLmxhdGl0dWRlKSkKICAgICAgICAgICAgICAgICAqIGNvcyhyYWRpYW5zKCVUQUJMRSUubG9uZ2l0dWRlKSAtIHJhZGlhbnMoJy4kbG9uZ2l0dWRlLicpKQogICAgICAgICAgICAgICAgICsgc2luKHJhZGlhbnMoJy4kbGF0aXR1ZGUuJykpCiAgICAgICAgICAgICAgICAgKiBzaW4ocmFkaWFucyglVEFCTEUlLmxhdGl0dWRlKSkpKSBBUyBkaXN0YW5jZSc7CiAgICAgICAgJG91dCA9IG5ldyBcU3RkQ2xhc3M7CiAgICAgICAgJG91dC0+bmV3X2NvbHVtbiA9ICRzdHI7CiAgICAgICAgJG91dC0+aGF2aW5nX2NsYXVzZSA9ICJkaXN0YW5jZSA8PSAkbWlsZXMiOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiByYWRpdXNfa20oYXJyYXkgJHN0YXRlbWVudCwgSVF1ZXJ5QnVpbGRlciAkYnVpbGRlcikKICAgIHsKICAgICAgICAvLyBmb3JtYXQgaXM6IHJhZGl1c19rbTpyYWRpdXM6ZnJvbV9sYXQ6ZnJvbV9sb25nCiAgICAgICAgaWYoIGNvdW50KCRzdGF0ZW1lbnQpICE9IDQgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkIGV4cHJlc3Npb246IGZvcm1hdCByYWRpdXNfa206KGZsb2F0KSByYWRpdXM6KGZsb2F0KSBsYXRpdHVkZTooZmxvYXQpIGxvbmdpdHVkZScpOwogICAgICAgIH0KICAgICAgICAka20gPSAoZmxvYXQpICRzdGF0ZW1lbnRbMV07CiAgICAgICAgaWYoICRrbSA8IDAuMDEgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCByYWRpdXMgb2YgJy4ka20uJyBtaWxlcycpOwogICAgICAgICRzdGF0ZW1lbnRbMF0gPSAoZmxvYXQpIHNwcmludGYoJyUuNWYnLCAka20gLyAxLjYyNSk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWRpdXNfbWlsZXMoJHN0YXRlbWVudCwgJGJ1aWxkZXIpOwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/class.route_manager_stub.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDbXNSb3V0ZTsKdXNlIGNtc19yb3V0ZV9tYW5hZ2VyOwoKY2xhc3Mgcm91dGVfbWFuYWdlcl9zdHViCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRfc3RhdGljKENtc1JvdXRlICRyb3V0ZSkKICAgIHsKICAgICAgICByZXR1cm4gY21zX3JvdXRlX21hbmFnZXI6OmFkZF9zdGF0aWMoJHJvdXRlKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsX3N0YXRpYyhzdHJpbmcgJHRlcm0sIHN0cmluZyAka2V5MSA9IG51bGwsIHN0cmluZyAka2V5MiA9IG51bGwsIHN0cmluZyAka2V5MyA9IG51bGwpIDogYm9vbAogICAgewogICAgICAgIHJldHVybiBjbXNfcm91dGVfbWFuYWdlcjo6ZGVsX3N0YXRpYygkdGVybSwgJGtleTEsICRrZXkyLCAka2V5Myk7CiAgICB9Cgp9IC8vIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.SearchHelper.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgU2VhcmNoSGVscGVyIGltcGxlbWVudHMgSVNlYXJjaEhlbHBlcgp7CiAgICBwcml2YXRlICRjYXRlZ29yeV9tYW5hZ2VyOwogICAgcHJpdmF0ZSAkZmllbGRlZl9tYW5hZ2VyOwogICAgcHJpdmF0ZSAkaGllcmFyY2h5X21hbmFnZXI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KElDYXRlZ29yeU1hbmFnZXIgJGNhdG1nciwgSUZpZWxkZGVmTWFuYWdlciAkZmRtZ3IsIElIaWVyYXJjaHlNYW5hZ2VyICRobWdyKQogICAgewogICAgICAgICR0aGlzLT5jYXRlZ29yeV9tYW5hZ2VyID0gJGNhdG1ncjsKICAgICAgICAkdGhpcy0+ZmllbGRkZWZfbWFuYWdlciA9ICRmZG1ncjsKICAgICAgICAkdGhpcy0+aGllcmFyY2h5X21hbmFnZXIgPSAkaG1ncjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3NlYXJjaF93b3JkcyhDb21wYW55ICRjb21wYW55KSA6IHN0cmluZwogICAgewogICAgICAgICR0ZXJtcyA9IFsKICAgICAgICAgICAgJGNvbXBhbnktPmNvbXBhbnlfbmFtZSwKICAgICAgICAgICAgJGNvbXBhbnktPmNvbXBhbnlfbmFtZSwgLy8geWVzLCB0d2ljZSAuLi4gaW5jcmVhc2VkIHNjb3JlLgogICAgICAgICAgICAkY29tcGFueS0+YWRkcmVzcywKICAgICAgICAgICAgJGNvbXBhbnktPnRlbGVwaG9uZSwKICAgICAgICAgICAgJGNvbXBhbnktPndlYnNpdGUsCiAgICAgICAgICAgICRjb21wYW55LT5jb250YWN0X2VtYWlsLAogICAgICAgICAgICAkY29tcGFueS0+ZmF4LAogICAgICAgICAgICAoJGNvbXBhbnktPmRldGFpbHMpID8gc3RyaXBfdGFncygkY29tcGFueS0+ZGV0YWlscykgOiBudWxsCiAgICAgICAgICAgIF07CgogICAgICAgIGlmKCAkY29tcGFueS0+aGllcl9pZCA+IDAgKSB7CiAgICAgICAgICAgICRoaWVyID0gJHRoaXMtPmhpZXJhcmNoeV9tYW5hZ2VyLT5sb2FkX2J5X2lkKCRjb21wYW55LT5oaWVyX2lkKTsKICAgICAgICAgICAgJHRlcm1zW10gPSAkaGllci0+bG9uZ19uYW1lOwogICAgICAgIH0KCiAgICAgICAgLy8gd2Ugb25seSBpbmRleCB0aGUgJ3B1YmxpYycgZmllbGRzCiAgICAgICAgLy8gYW5kIG9ubHkgdGhlIHRleHQgb25lcz8/CiAgICAgICAgaWYoICRjb21wYW55LT5maWVsZHMgKSB7CiAgICAgICAgICAgICRmaWVsZGRlZnMgPSAkdGhpcy0+ZmllbGRkZWZfbWFuYWdlci0+bG9hZF9wdWJsaWMoKTsKICAgICAgICAgICAgaWYoICFlbXB0eSgkZmllbGRkZWZzKSApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJGZpZWxkICkgewogICAgICAgICAgICAgICAgICAgIGlmKCAoJGZpZWxkLT50eXBlID09ICd0ZXh0Ym94JyB8fCAkZmllbGQtPnR5cGUgPT0gJ3RleHRhcmVhJykgJiYgaXNzZXQoJGNvbXBhbnktPmZpZWxkc1skZmllbGQtPmlkXSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRlcm1zW10gPSBzdHJpcF90YWdzKCRjb21wYW55LT5maWVsZHNbJGZpZWxkLT5pZF0pOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoICRjb21wYW55LT5jYXRlZ29yaWVzICkgewogICAgICAgICAgICAkY2F0cyA9ICR0aGlzLT5jYXRlZ29yeV9tYW5hZ2VyLT5sb2FkX2J1bGsoYXJyYXlfa2V5cygkY29tcGFueS0+Y2F0ZWdvcmllcykpOwogICAgICAgICAgICBmb3JlYWNoKCAkY2F0cyBhcyAkY2F0ICkgewogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRjb21wYW55LT5jYXRlZ29yaWVzWyRjYXQtPmlkXSkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRlcm1zW10gPSAkY2F0LT5sb25nX25hbWU7CiAgICAgICAgICAgICAgICAgICAgJHRlcm1zW10gPSAkY29tcGFueS0+Y2F0ZWdvcmllc1skY2F0LT5pZF1bJ2V4dHJhMSddOwogICAgICAgICAgICAgICAgICAgICR0ZXJtc1tdID0gJGNvbXBhbnktPmNhdGVnb3JpZXNbJGNhdC0+aWRdWydleHRyYTInXTsKICAgICAgICAgICAgICAgICAgICAkdGVybXNbXSA9ICRjb21wYW55LT5jYXRlZ29yaWVzWyRjYXQtPmlkXVsnZXh0cmEzJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBpbXBsb2RlKCcgJywkdGVybXMpOwogICAgfQoKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ29tcGFueURpcmVjdG9yeTsKdXNlIGNnZV91c2Vyb3BzOwoKLyoqCiAqIEEgY2xhc3MgcmVwcmVzZW50aW5nIGFsbCBvZiBDRCdzIGNvbmZpZyBlbnRyaWVzLgogKgogKiBAcHJvcGVydHktcmVhZCBzdHJpbmd8aW50ICRkZXRhaWxwYWdlIEEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgZm9yIGRldGFpbCB2aWV3cyB3aGVuIHByZXR0eSBVUkxTIGFyZSBlbmFibGVkIEFORCB0aGUgcmVjb3JkIGhhcyBhIHVybCBzbHVnLgogKiBAcHJvcGVydHktcmVhZCBib29sICRhbGxvd19kdXBsaWNhdGVfY29tcGFueW5hbWVzID0gZmFsc2UKICogQHByb3BlcnR5LXJlYWQgYm9vbCAkYWRtaW53eXNpd3lnCiAqIEBwcm9wZXJ0eS1yZWFkIGJvb2wgJGZyb250ZW5kX2NyZWF0ZSAtIENhbiBGRVUgdXNlcnMgY3JlYXRlIG5ldyByZWNvcmRzCiAqIEBwcm9wZXJ0eS1yZWFkIGJvb2wgJGZyb250ZW5kX2RlbGV0ZSAtIENhbiBGRVUgVXNlcnMgZGVsZXRlIHRoZWlyIG93biByZWNvcmRzPwogKiBAcHJvcGVydHktcmVhZCBpbnQgICRmcm9udGVuZF9tYXhyZWNvcmRzIC0gdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlY29yZHMgYSBGRVUgdXNlciBjYW4gbWFuYWdlICh1bmxlc3MgZ2l2ZW4gdG8gdGhlbSBieSBhZG1pbnMpCiAqIEBwcm9wZXJ0eS1yZWFkIGJvb2wgJGZyb250ZW5kX2ltcG9ydCAtIE9wdGlvbmFsbHkgZW5hYmxlIGZyb250ZW5kIENTViBpbXBvcnQgZnVuY3Rpb25hbGl0eQogKiBAcHJvcGVydHktcmVhZCBzdHJpbmcgJGZyb250ZW5kX25ld3N0YXR1cyAtIFN0YXR1cyBmb3IgbmV3IHJlY29yZHMgY3JlYXRlZCBvbiB0aGUgZnJvbnRlbmQKICogQHByb3BlcnR5LXJlYWQgYm9vbCAkZnJvbnRlbmRfY2hhbmdlc3RhdHVzIC0gQ2FuIEZFVSB1c2VycyBjaGFuZ2UgdGhlIHN0YXR1cyBvZiB0aGVpciByZWNvcmRzLgogKiBAcHJvcGVydHktcmVhZCBib29sICRmcm9udGVuZF9lbWFpbG9uYWRkIC0gT3B0aW9uYWxseSBlbWFpbCB1c2VycyB3aGVuIGEgY29tcGFueSBpcyBhZGRlZCAoTk9URE9ORSkKICogQHByb3BlcnR5LXJlYWQgYm9vbCAkZnJvbnRlbmRfZW1haWxvbmVkaXQgLSBPcHRpb25hbGx5IGVtYWlsIHVzZXJzIHdobmUgYSBjb21wYW55IGlzIGVkaXRlZCAoTk9URE9ORSkKICogQHByb3BlcnR5LXJlYWQgYm9vbCAkZnJvbnRlbmRfZW1haWxncm91cCAtIFRoZSBuYW1lIG9mIHRoZSBhZG1pbiBncm91cCB0byBzZW5kIHRoZSBlbWFpbCB0by4KICogQHByb3BlcnR5LXJlYWQgYm9vbCAkdXJsX3JlcXVpcmVkIC0gb25seSBmb3IgYWRtaW4gcmVxdWVzdHMsIGVhY2ggcmVjb3JkIG11c3QgaGF2ZSBhIHVybCBzbHVnIGluIG9yZGVyIHRvIHNhdmUKICogQHByb3BlcnR5LXJlYWQgYm9vbCAkdXJsX2F1dG9jcmVhdGUgLSBGb3IgZnJvbnRlbmQgYW5kIGFkbWluIGVkaXRpbmcsIGF1dG8tY3JlYXRlIHVybCBzbHVncyBvbiBzYXZpbmcgaWYgbm9uIGV4aXN0CiAqIEBwcm9wZXJ0eS1yZWFkIHN0cmluZyAkdXJscHJlZml4ID0gY29tcGFuaWVzLCAgVXNlZCBmb3IgcHJldHR5IHVybHMgd2l0aG91dCB1cmxzbHVncy4uICB1c2VkIHRvIGRldGVybWluZSBhIHByZWZpeAogKi8KY2xhc3Mgc2V0dGluZ3MKewogICAgcHJpdmF0ZSAkX2RhdGEgPSBbJ2RldGFpbHBhZ2UnID0+IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAnYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcycgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAnYWRtaW53eXNpd3lnJyA9PiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgJ2FsbG93X2V4cGlyZWRfb3duZXJzJyA9PiB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgJ2Zyb250ZW5kX2NyZWF0ZScgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAnZnJvbnRlbmRfZGVsZXRlJyA9PiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICdmcm9udGVuZF9tYXhyZWNvcmRzJyA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgJ2Zyb250ZW5kX25ld3N0YXR1cycgPT4gbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnID0+IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgJ2Zyb250ZW5kX2ltcG9ydCcgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAnZnJvbnRlbmRfZW1haWxvbmFkZCcgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAnZnJvbnRlbmRfZW1haWxvbmVkaXQnID0+IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgJ2Zyb250ZW5kX2VtYWlsZ3JvdXAnID0+IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAndXJsX3JlcXVpcmVkJyA9PiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICd1cmxfYXV0b2NyZWF0ZScgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAndXJscHJlZml4JyA9PiAnY29tcGFuaWVzJwogICAgICAgIF07CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KENvbXBhbnlEaXJlY3RvcnkgJG1vZCwgYXJyYXkgJGluKQogICAgewogICAgICAgIGZvcmVhY2goJGluIGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgaWYoICFzdGFydHN3aXRoKCRrZXksJ2NkXycpICkgY29udGludWU7CiAgICAgICAgICAgICRrZXkgPSBzdWJzdHIoJGtleSwzKTsKICAgICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgICBjYXNlICdkZXRhaWxwYWdlJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnZnJvbnRlbmRfbWF4cmVjb3Jkcyc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2Zyb250ZW5kX2VtYWlsZ3JvdXAnOgogICAgICAgICAgICAgICAgaWYoICR2YWwgJiYgKHN0cmluZykoaW50KSR2YWwgIT0gJHZhbCApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBjZ2VfdXNlcm9wczo6Z2V0X2dyb3VwaWQoJHZhbCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpICR2YWw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAndXJscHJlZml4JzoKICAgICAgICAgICAgICAgIGlmKCAhZW1wdHkoJHZhbCkgKSAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2Zyb250ZW5kX25ld3N0YXR1cyc6CiAgICAgICAgICAgICAgICAkdmFsID0gdHJpbSgkdmFsKTsKICAgICAgICAgICAgICAgIHN3aXRjaCggJHZhbCApIHsKICAgICAgICAgICAgICAgIGNhc2UgJ3B1Ymxpc2hlZCc6CiAgICAgICAgICAgICAgICBjYXNlICdkcmFmdCc6CiAgICAgICAgICAgICAgICBjYXNlICdkaXNhYmxlZCc6CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJHZhbDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdhbGxvd19leHBpcmVkX293bmVycyc6CiAgICAgICAgICAgIGNhc2UgJ2FsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMnOgogICAgICAgICAgICBjYXNlICdhZG1pbnd5c2l3eWcnOgogICAgICAgICAgICBjYXNlICdmcm9udGVuZF9jcmVhdGUnOgogICAgICAgICAgICBjYXNlICdmcm9udGVuZF9kZWxldGUnOgogICAgICAgICAgICBjYXNlICdmcm9udGVuZF9jaGFuZ2VzdGF0dXMnOgogICAgICAgICAgICBjYXNlICdmcm9udGVuZF9pbXBvcnQnOgogICAgICAgICAgICBjYXNlICdmcm9udGVuZF9lbWFpbG9uYWRkJzoKICAgICAgICAgICAgY2FzZSAnZnJvbnRlbmRfZW1haWxvbmVkaXQnOgogICAgICAgICAgICBjYXNlICd1cmxfcmVxdWlyZWQnOgogICAgICAgICAgICBjYXNlICd1cmxfYXV0b2NyZWF0ZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSBjbXNfdG9fYm9vbCgkdmFsKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKCAkbW9kLT5jbXMtPmlzX2Zyb250ZW5kX3JlcXVlc3QoKSApIHsKICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyd1cmxfcmVxdWlyZWQnXSA9IGZhbHNlOwogICAgICAgIH0KCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KHN0cmluZyAka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdkZXRhaWxwYWdlJzoKICAgICAgICBjYXNlICdmcm9udGVuZF9tYXhyZWNvcmRzJzoKICAgICAgICBjYXNlICdmcm9udGVuZF9lbWFpbGdyb3VwJzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICR0aGlzLT5fZGF0YVska2V5XTsKICAgICAgICBjYXNlICdmcm9udGVuZF9uZXdzdGF0dXMnOgogICAgICAgIGNhc2UgJ3VybHByZWZpeCc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgY2FzZSAnYWxsb3dfZXhwaXJlZF9vd25lcnMnOgogICAgICAgIGNhc2UgJ2FsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMnOgogICAgICAgIGNhc2UgJ2FkbWlud3lzaXd5Zyc6CiAgICAgICAgY2FzZSAnZnJvbnRlbmRfY3JlYXRlJzoKICAgICAgICBjYXNlICdmcm9udGVuZF9kZWxldGUnOgogICAgICAgIGNhc2UgJ2Zyb250ZW5kX2NoYW5nZXN0YXR1cyc6CiAgICAgICAgY2FzZSAnZnJvbnRlbmRfaW1wb3J0JzoKICAgICAgICBjYXNlICdmcm9udGVuZF9lbWFpbG9uYWRkJzoKICAgICAgICBjYXNlICdmcm9udGVuZF9lbWFpbG9uZWRpdCc6CiAgICAgICAgY2FzZSAndXJsX3JlcXVpcmVkJzoKICAgICAgICBjYXNlICd1cmxfYXV0b2NyZWF0ZSc6CiAgICAgICAgICAgIHJldHVybiAoYm9vbCkgJHRoaXMtPl9kYXRhWyRrZXldOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIGdldHRhYmxlIHByb3BlcnR5IG9mICIuX19DTEFTU19fKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KHN0cmluZyAka2V5LCR2YWwpCiAgICB7CiAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBzZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICB9Cgp9IC8vIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.SmartyPlugins.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5Owp1c2UgQ29tcGFueURpcmVjdG9yeTsKdXNlIGNnZV9wYXJhbTsKCmNsYXNzIFNtYXJ0eVBsdWdpbnMKewogICAgcHJpdmF0ZSAkbW9kOwogICAgcHJpdmF0ZSAkY29tcGFueV9tYW5hZ2VyOwogICAgcHJpdmF0ZSAkZmllbGRkZWZfbWFuYWdlcjsKICAgIHByaXZhdGUgJGNhdGVnb3J5X21hbmFnZXI7CiAgICBwcml2YXRlICRoaWVyYXJjaHlfbWFuYWdlcjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoQ29tcGFueURpcmVjdG9yeSAkbW9kLAogICAgICAgIElDb21wYW55TWFuYWdlciAkbWdyLCBJRmllbGREZWZNYW5hZ2VyICRmZG1nciwgSUNhdGVnb3J5TWFuYWdlciAkY2F0bWdyLCBJSGllcmFyY2h5TWFuYWdlciAkaG1ncikKICAgIHsKICAgICAgICAkdGhpcy0+bW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+Y29tcGFueV9tYW5hZ2VyID0gJG1ncjsKICAgICAgICAkdGhpcy0+ZmllbGRkZWZfbWFuYWdlciA9ICRmZG1ncjsKICAgICAgICAkdGhpcy0+Y2F0ZWdvcnlfbWFuYWdlciA9ICRjYXRtZ3I7CiAgICAgICAgJHRoaXMtPmhpZXJhcmNoeV9tYW5hZ2VyID0gJGhtZ3I7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9pbml0anMoJHBhcmFtcywkc21hcnR5KQogICAgewogICAgICAgIGRpZShfX01FVEhPRF9fLicgaXMgbm90IHVzZWQnKTsKICAgICAgICBzdGF0aWMgJGNudCA9IDA7CgogICAgICAgIGlmKCAkY250ID09IDAgKSB7CiAgICAgICAgICAgIC8vIHdlIG9ubHkgZG8gdGhpcyBvbmNlLgogICAgICAgICAgICAkY250Kys7CiAgICAgICAgICAgICRzY3JpcHR1cmwgPSAkdGhpcy0+bW9kLT5HZXRNb2R1bGVVUkxQYXRoKCkuJy9saWIvanF1ZXJ5LmNvbXBkaXIuanMnOwogICAgICAgICAgICAkYWpheF91cmwgPSAkdGhpcy0+bW9kLT5jcmVhdGVfdXJsKCdjbnRudDAxJywnYWpheF9zZWxjb21wYW55JykuJyZhbXA7c2hvd3RlbXBsYXRlPWZhbHNlJzsKICAgICAgICAgICAgJGFqYXhfdXJsID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJGFqYXhfdXJsKTsKCiAgICAgICAgICAgICR0eHQgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBjb21wZGlyX2Nob29zZWNvbXBhbnlfYWpheF91cmwgPSAiJy4kYWpheF91cmwuJyI7PC9zY3JpcHQ+Jy4iXG4iOwogICAgICAgICAgICAkdHh0IC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInLiRzY3JpcHR1cmwuJyI+PC9zY3JpcHQ+Jy4iXG4iOwoKICAgICAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApIHsKICAgICAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkdHh0KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJHR4dDsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9nZXRjb21wYW55KCRwYXJhbXMsJHNtYXJ0eSkKICAgIHsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaWQnKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJywgJGlkKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGFueScsICRpZCk7CiAgICAgICAgJGFzc2lnbiA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnYXNzaWduJyk7CgogICAgICAgICRjb21wYW55ID0gbnVsbDsKICAgICAgICB0cnkgewogICAgICAgICAgICAkY29tcGFueSA9ICR0aGlzLT5jb21wYW55X21hbmFnZXItPmxvYWRfYnlfaWQoJGlkKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxPdXRPZkJvdW5kc0V4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgLy8gbm90aGluZyBoZXJlcgogICAgICAgIH0KCiAgICAgICAgaWYoICRhc3NpZ24gKSB7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkYXNzaWduLCAkY29tcGFueSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb21wYW55OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzbWFydHlfZ2V0Y2F0ZWdvcnkoJHBhcmFtcywkc21hcnR5KQogICAgewogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgICRjYXRlZ29yeSA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjYXRlZ29yeScpOwogICAgICAgICRhc3NpZ24gPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnYXNzaWduJyk7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRvdXQgPSAkdGhpcy0+Y2F0ZWdvcnlfbWFuYWdlci0+bG9hZF9ieV9pZCgkY2F0ZWdvcnkpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXE91dG9mQm91bmRzRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgfQoKICAgICAgICBpZiggJGFzc2lnbiApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRhc3NpZ24sICRvdXQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzbWFydHlfZ2V0aGllcmFyY2h5KCRwYXJhbXMsJHNtYXJ0eSkKICAgIHsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICAkaGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2gnKTsKICAgICAgICAkaGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2hpZXInLCRoaWQpOwogICAgICAgICRoaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaGllcmFyY2h5JywkaGlkKTsKICAgICAgICAkYXNzaWduID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwoKICAgICAgICB0cnkgewogICAgICAgICAgICAkb3V0ID0gJHRoaXMtPmhpZXJhcmNoeV9tYW5hZ2VyLT5sb2FkX2J5X2lkKCRoaWQpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXE91dG9mQm91bmRzRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgfQoKICAgICAgICBpZiggJGFzc2lnbiApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRvdXQpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzbWFydHlfaGllcmJyZWFkY3J1bWIoJHBhcmFtcywkc21hcnR5KQogICAgewogICAgICAgICRkZWxpbWl0ZXIgPSAnIHwgJzsKICAgICAgICAkcmF3ID0gMDsKICAgICAgICAkaGllciA9IC0xOwogICAgICAgICRwYWdlID0gKGludCkgJHNtYXJ0eS0+Z2V0X3RlbXBsYXRlX3ZhcnMoJ3BhZ2VfaWQnKTsKICAgICAgICAkY2xhc3MgPSBudWxsOwogICAgICAgICRhc3NpZ24gPSBudWxsOwogICAgICAgICR1cmxwYXJtcyA9IGFycmF5KCk7CgogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICAgICAgY2FzZSAncmF3JzoKICAgICAgICAgICAgICAgICRyYXcgPSBjbXNfdG9fYm9vbCgkdmFsdWUpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2hpZXInOgogICAgICAgICAgICAgICAgJGhpZXIgPSAoaW50KSR2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdkZWxpbSc6CiAgICAgICAgICAgICAgICAkZGVsaW1pdGVyID0gJHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2NsYXNzJzoKICAgICAgICAgICAgICAgICRjbGFzcyA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdhc3NpZ24nOgogICAgICAgICAgICAgICAgJGFzc2lnbiA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdwYWdlJzoKICAgICAgICAgICAgICAgICRwYWdlID0gKGludCkkdGhpcy0+bW9kLT5yZXNvbHZlX2FsaWFzX29yX2lkKCR2YWx1ZSwkcGFnZSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICR1cmxwYXJtc1ska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggJGhpZXIgPCAxICkgcmV0dXJuOwogICAgICAgIGlmKCAkcGFnZSA8IDEgKSByZXR1cm47IC8vIG5vdGhpbmcgdG8gbGluayB0by4KCiAgICAgICAgLy8gZ2V0IHRoZSBjb21wbGV0ZSBwYXRoIHRvIHRoaXMgaGllcmFyY2h5LgogICAgICAgICRkYXQgPSBudWxsOwogICAgICAgIHdoaWxlKCRoaWVyID4gMCApIHsKICAgICAgICAgICAgJG9iaiA9ICR0aGlzLT5oaWVyYXJjaHlfbWFuYWdlci0+bG9hZF9ieV9pZCgkaGllcik7ICAvLyBob3BlIGl0J3MgY2FjaGVkCiAgICAgICAgICAgICRyZWMgPSBbCiAgICAgICAgICAgICAgICAnaWQnPT4kaGllciwgJ25hbWUnPT4kb2JqLT5uYW1lLCAncGFyZW50X2lkJz0+JG9iai0+cGFyZW50X2lkLAogICAgICAgICAgICAgICAgJ3VybCc9PiR0aGlzLT5tb2QtPmNyZWF0ZV91cmwoJ2NudG50MDEnLCdkZWZhdWx0JywkcGFnZSxbJ2hpZXInPT4kaGllcl0pCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICAkZGF0YVtdID0gJHJlYzsKICAgICAgICAgICAgJGhpZXIgPSAkb2JqLT5wYXJlbnRfaWQ7CiAgICAgICAgfQogICAgICAgIGlmKCAkZGF0YSApICRkYXRhID0gYXJyYXlfcmV2ZXJzZSgkZGF0YSk7CgogICAgICAgIC8vIG5vdyBoYXZlIHRvIGRlY2lkZSBvbiBvdXRwdXQgZm9ybWF0LgogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGlmKCAkcmF3ID09IEZBTFNFICkgewogICAgICAgICAgICAvLyBoYXZlIHRvIGJ1aWxkIGxpbmtzLgogICAgICAgICAgICAkYWRkdGV4dCA9ICcnOwogICAgICAgICAgICBpZiggJGNsYXNzICkgJGFkZHRleHQ9JyBjbGFzcz0iJy4kY2xhc3MuJyInOwogICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICR0bXBbXSA9ICc8YSBocmVmPSInLiRvbmVbJ3VybCddLiciJy4kYWRkdGV4dC4nPicuJG9uZVsnbmFtZSddLic8L2E+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkb3V0ID0gaW1wbG9kZSgkZGVsaW1pdGVyLCAkdG1wKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRvdXQgPSAkZGF0YTsKICAgICAgICB9CgogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJGFzc2lnbiwkb3V0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc21hcnR5X2dldGZpZWxkZGVmKCRwYXJhbXMsJHNtYXJ0eSkKICAgIHsKICAgICAgICAkb3V0ID0gJGZkaWQgPSAkZmRuYW1lID0gbnVsbDsKICAgICAgICAkZmRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdmJyk7CiAgICAgICAgJGZkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZmllbGQnLCRmZGlkKTsKICAgICAgICBpZiggJGZkaWQgPCAxICkgewogICAgICAgICAgICAkZmRuYW1lID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ25hbWUnKTsKICAgICAgICAgICAgJGZkbmFtZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmaWVsZG5hbWUnLCRmZG5hbWUpOwogICAgICAgIH0KICAgICAgICAkYXNzaWduID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwoKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiggJGZkaWQgKSB7CiAgICAgICAgICAgICAgICAkb3V0ID0gJHRoaXMtPmZpZWxkZGVmX21hbmFnZXItPmxvYWRfYnlfaWQoJGZkaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRmZG5hbWUgKSB7CiAgICAgICAgICAgICAgICAkb3V0ID0gJHRoaXMtPmZpZWxkZGVmX21hbmFnZXItPmxvYWRfYnlfbmFtZSgkZmRuYW1lKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjYXRjaCggXE91dG9mQm91bmRzRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAvLyBkbyBub3RoaW5nCiAgICAgICAgfQoKICAgICAgICBpZiggJGFzc2lnbiApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRhc3NpZ24sJG91dCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9nZXRmaWxldXJsKCRwYXJhbXMsJHNtYXJ0eSkKICAgIHsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaWQnKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJywgJGlkKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGFueScsICRpZCk7CiAgICAgICAgJGFzc2lnbiA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhc3NpZ24nKTsKCiAgICAgICAgJG91dCA9ICR0aGlzLT5jb21wYW55X21hbmFnZXItPmdldF9jb21wYW55X2ZpbGVfdXJsKCRpZCk7CgogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJGFzc2lnbiwkb3V0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc21hcnR5X2dldGZpbGVwYXRoKCRwYXJhbXMsJHNtYXJ0eSkKICAgIHsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaWQnKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJywgJGlkKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGFueScsICRpZCk7CiAgICAgICAgJGFzc2lnbiA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhc3NpZ24nKTsKCiAgICAgICAgJG91dCA9ICR0aGlzLT5jb21wYW55X21hbmFnZXItPmdldF9jb21wYW55X2ZpbGVfcGF0aCgkaWQpOwoKICAgICAgICBpZiggJGFzc2lnbiApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRhc3NpZ24sJG91dCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9nZXRpbWdwYXRoKCRwYXJhbXMsJHNtYXJ0eSkKICAgIHsKICAgICAgICAkb3V0ID0gbnVsbDsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaWQnKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJywgJGlkKTsKICAgICAgICAkaWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGFueScsICRpZCk7CiAgICAgICAgJHZhbCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCd2Jyk7CiAgICAgICAgJHZhbCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCd2YWx1ZScsICR2YWwpOwogICAgICAgICRhc3NpZ24gPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnYXNzaWduJyk7CgogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGlmKCAkb3V0ICYmICR2YWwgKSB7CiAgICAgICAgICAgICRwYXRoID0gJHRoaXMtPmNvbXBhbnlfbWFuYWdlci0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRpZCk7CiAgICAgICAgICAgICR0ZXN0ID0gWyAndGh1bWJfJy4kdmFsLCAncHJldmlld18nLiR2YWwsICR2YWwgXTsKICAgICAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJHRlc3QgKSB7CiAgICAgICAgICAgICAgICAkdGVzdCA9ICRwYXRoLicvJy4kdGVzdDsKICAgICAgICAgICAgICAgIGlmKCBpc19maWxlKCR0ZXN0KSApIHsKICAgICAgICAgICAgICAgICAgICAkb3V0ID0gJHRlc3Q7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJGFzc2lnbiwkb3V0KTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc21hcnR5X2dldGltZ3VybCgkcGFyYW1zLCRzbWFydHkpCiAgICB7CiAgICAgICAgJG91dCA9IG51bGw7CiAgICAgICAgJGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2lkJyk7CiAgICAgICAgJGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBpZCcsICRpZCk7CiAgICAgICAgJGlkID0gY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NvbXBhbnknLCAkaWQpOwogICAgICAgICR2YWwgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywndicpOwogICAgICAgICR2YWwgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywndmFsdWUnLCAkdmFsKTsKICAgICAgICAkYXNzaWduID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwoKICAgICAgICBpZiggJG91dCAmJiAkdmFsICkgewogICAgICAgICAgICAkcGF0aCA9ICR0aGlzLT5jb21wYW55X21hbmFnZXItPmdldF9jb21wYW55X2ZpbGVfcGF0aCgkaWQpOwogICAgICAgICAgICAkdXJsID0gJHRoaXMtPmNvbXBhbnlfbWFuYWdlci0+Z2V0X2NvbXBhbnlfZmlsZV91cmwoJGlkKTsKICAgICAgICAgICAgJHRlc3QgPSBbICd0aHVtYl8nLiR2YWwsICdwcmV2aWV3XycuJHZhbCwgJHZhbCBdOwogICAgICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkdGVzdCApIHsKICAgICAgICAgICAgICAgIGlmKCBpc19maWxlKCRwYXRoLicvJy4kdGVzdCkgKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dCA9ICR1cmwuJy8nLiR0ZXN0OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggJGFzc2lnbiApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRhc3NpZ24sJG91dCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNtYXJ0eV9jYXRlZ29yeV9pbWFnZSgkcGFyYW1zLCAkc21hcnR5KQogICAgewogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgICRpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjYXRlZ29yeScsICRpZCk7CiAgICAgICAgJGFzc2lnbiA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhc3NpZ24nKTsKCiAgICAgICAgJGNhdCA9ICR0aGlzLT5jYXRlZ29yeV9tYW5hZ2VyLT5sb2FkX2J5X2lkKCRpZCk7CiAgICAgICAgaWYoICRjYXQgJiYgJGNhdC0+aW1hZ2UgKSB7CiAgICAgICAgICAgICRvdXQgPSAkdGhpcy0+Y2F0ZWdvcnlfbWFuYWdlci0+Z2V0X2NhdGVnb3J5X3VybCgkY2F0KS4nLycuJGNhdC0+aW1hZ2U7CiAgICAgICAgfQogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJGFzc2lnbiwgJG91dCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRtaW5fZmlsZV90aHVtYigkcGFyYW1zLCAkdGVtcGxhdGUpCiAgICB7CiAgICAgICAgJGNvbXBpZCA9IGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjb21waWQnKTsKICAgICAgICAkZmlsZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnbmFtZScpOwogICAgICAgICRmaWxlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdmaWxlJywgJGZpbGUpOwogICAgICAgICRmaWxlID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsICdmJywgJGZpbGUpOwogICAgICAgICRhc3NpZ24gPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnYXNzaWduJyk7CgogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIGlmKCAkZmlsZSApIHsKICAgICAgICAgICAgJGJhc2VwYXRoID0gJHRoaXMtPmNvbXBhbnlfbWFuYWdlci0+Z2V0X2NvbXBhbnlfZmlsZV9wYXRoKCRjb21waWQpOwogICAgICAgICAgICAkYmFzZXVybCA9ICR0aGlzLT5jb21wYW55X21hbmFnZXItPmdldF9jb21wYW55X2ZpbGVfdXJsKCRjb21waWQpOwogICAgICAgICAgICAkc3JjZmlsZSA9IHJlYWxwYXRoKCRiYXNlcGF0aC4nLycuJGZpbGUpOwogICAgICAgICAgICBpZiggJHNyY2ZpbGUgJiYgaXNfZmlsZSgkc3JjZmlsZSkgKSB7CiAgICAgICAgICAgICAgICAvLyBzZWUgaWYgd2UgaGF2ZSBhIHRodW1ibmFpbAogICAgICAgICAgICAgICAgJHRodW1iID0gcmVhbHBhdGgoJGJhc2VwYXRoLicvdGh1bWJfJy4kZmlsZSk7CiAgICAgICAgICAgICAgICAkZm10ID0gJHVybCA9IG51bGw7CiAgICAgICAgICAgICAgICBpZiggJHRodW1iICYmIGlzX2ZpbGUoJHRodW1iKSApewogICAgICAgICAgICAgICAgICAgIC8vIHVzZSB0aGUgdGh1bWJuYWlsCiAgICAgICAgICAgICAgICAgICAgJHVybCA9ICRiYXNldXJsLicvJy4kdGh1bWI7CiAgICAgICAgICAgICAgICAgICAgJGZtdCA9ICc8aW1nIHNyYz0iJXMiIGFsdD0iIi8+JzsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gdXNlIHRoZSBtYWluIGZpbGUKICAgICAgICAgICAgICAgICAgICAkdXJsID0gJGJhc2V1cmwuJy8nLiRmaWxlOwogICAgICAgICAgICAgICAgICAgICRmbXQgPSAnPGltZyBzcmM9IiVzIiB3aWR0aD0iNzUiIGFsdD0iIi8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRvdXQgPSBzcHJpbnRmKCRmbXQsJHVybCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkdGVtcGxhdGUtPmFzc2lnbigkYXNzaWduLCRvdXQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkb3V0OwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRtaW5fZmlsZV91cmwoJHBhcmFtcywgJHRlbXBsYXRlKQogICAgewogICAgICAgICRjb21waWQgPSBjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJyk7CiAgICAgICAgJGZpbGUgPSBjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywgJ25hbWUnKTsKICAgICAgICAkZmlsZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnZmlsZScsICRmaWxlKTsKICAgICAgICAkZmlsZSA9IGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCAnZicsICRmaWxlKTsKICAgICAgICAkYXNzaWduID0gY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2Fzc2lnbicpOwoKICAgICAgICAkdXJsID0gbnVsbDsKICAgICAgICBpZiggJGZpbGUgKSB7CiAgICAgICAgICAgICRiYXNlcGF0aCA9ICR0aGlzLT5jb21wYW55X21hbmFnZXItPmdldF9jb21wYW55X2ZpbGVfcGF0aCgkY29tcGlkKTsKICAgICAgICAgICAgJGJhc2V1cmwgPSAkdGhpcy0+Y29tcGFueV9tYW5hZ2VyLT5nZXRfY29tcGFueV9maWxlX3VybCgkY29tcGlkKTsKICAgICAgICAgICAgJHNyY2ZpbGUgPSByZWFscGF0aCgkYmFzZXBhdGguJy8nLiRmaWxlKTsKICAgICAgICAgICAgaWYoICRzcmNmaWxlICYmIGlzX2ZpbGUoJHNyY2ZpbGUpICkgewogICAgICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGhhdmUgYSB0aHVtYm5haWwKICAgICAgICAgICAgICAgICR0aHVtYiA9IHJlYWxwYXRoKCRiYXNlcGF0aC4nL3RodW1iXycuJGZpbGUpOwogICAgICAgICAgICAgICAgaWYoICR0aHVtYiAmJiBpc19maWxlKCR0aHVtYikgKXsKICAgICAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIHRodW1ibmFpbAogICAgICAgICAgICAgICAgICAgICR1cmwgPSAkYmFzZXVybC4nLycuJHRodW1iOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIG1haW4gZmlsZQogICAgICAgICAgICAgICAgICAgICR1cmwgPSAkYmFzZXVybC4nLycuJGZpbGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCAkYXNzaWduICkgewogICAgICAgICAgICAkdGVtcGxhdGUtPmFzc2lnbigkYXNzaWduLCR1cmwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkdXJsOwogICAgICAgIH0KICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.SqlQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgU3FsUXVlcnkKewogICAgcHJpdmF0ZSAkc3FsOwogICAgcHJpdmF0ZSAkb2Zmc2V0OwogICAgcHJpdmF0ZSAkbGltaXQ7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHN0cmluZyAkc3FsLCBpbnQgJG9mZnNldCwgaW50ICRsaW1pdCkKICAgIHsKICAgICAgICBpZiggc3RyaXBvcygkc3FsLCAnc2VsZWN0JykgIT09IDAgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignc3FsIHF1ZXJ5IG11c3Qgc3RhcnQgd2l0aCBzZWxlY3Qgd2hlbiBwcm92aWRlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCAkb2Zmc2V0IDwgMCApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZXRuKCdJbnZhbGlkIG9mZnNldCBwcm92aWRlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCAkbGltaXQgPCAxICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1ldG4oJ0ludmFsaWQgbGltaXQgcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggc3RyaXBvcygkc3FsLCAib2Zmc2V0ICRvZmZzZXQiKSA9PT0gRkFMU0UgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignc3FsIHF1ZXJ5IG11c3QgY29udGFpbiBvZmZzZXQgY2xhdXNlIHdoZW4gcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICBpZiggc3RyaXBvcygkc3FsLCAibGltaXQgJGxpbWl0IikgPT09IEZBTFNFICkgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ3NxbCBxdWVyeSBtdXN0IGNvbnRhaW4gbGltaXQgY2xhdXNlIHdoZW4gcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+c3FsID0gJHNxbDsKICAgICAgICAkdGhpcy0+b2Zmc2V0ID0gJG9mZnNldDsKICAgICAgICAkdGhpcy0+bGltaXQgPSAkbGltaXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KHN0cmluZyAka2V5KQogICAgewogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdzcWwnOgogICAgICAgICAgICByZXR1cm4gdHJpbSgkdGhpcy0+c3FsKTsKCiAgICAgICAgY2FzZSAnb2Zmc2V0JzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICR0aGlzLT5vZmZzZXQ7CgogICAgICAgIGNhc2UgJ2xpbWl0JzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICR0aGlzLT5saW1pdDsKCiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBwcm9wZXJ0eSBvZiAiLl9fQ0xBU1NfXyk7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX3NldChzdHJpbmcgJGtleSwgJHZhbCkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCIka2V5IGlzIG5vdCBhIHNldHRhYmxlIHByb3BlcnR5IG9mICIuX19DTEFTU19fKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX190b3N0cmluZygpIDogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5zcWw7CiAgICB9Cn0gLy8gY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.TmpUploadHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgVG1wVXBsb2FkSGFuZGxlciBleHRlbmRzIGNkX2pxdWVyeV91cGxvYWRfaGFuZGxlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoYXJyYXkgJG9wdGlvbnMpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgkb3B0aW9ucyk7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.TmpUploadManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgVG1wVXBsb2FkTWFuYWdlciBpbXBsZW1lbnRzIElUbXBVcGxvYWRNYW5hZ2VyCnsKICAgIHByaXZhdGUgJGd1aWQ7CiAgICBwcml2YXRlICR0bXBfcGF0aDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3Qoc3RyaW5nICRndWlkLCBzdHJpbmcgJHRtcF9wYXRoKQogICAgewogICAgICAgIGlmKCAhaXNfZGlyKCR0bXBfcGF0aCkgKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignSW52YWxpZCB0bXBfcGF0aCBwcm92aWRlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5ndWlkID0gJGd1aWQ7CiAgICAgICAgJHRoaXMtPnRtcF9wYXRoID0gJHRtcF9wYXRoOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdG1wX3BhdGgoKSA6IHN0cmluZwogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+dG1wX3BhdGg7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV91cGxvYWRfaGFuZGxlcihzdHJpbmcgJHBhcmFtX25hbWUpIDogY2RfanF1ZXJ5X3VwbG9hZF9oYW5kbGVyCiAgICB7CiAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgYSBndWlkCiAgICAgICAgJG9wdGlvbnMgPSBbJ2d1aWQnPT4kdGhpcy0+Z3VpZCwgJ3BhcmFtX25hbWUnPT4kcGFyYW1fbmFtZSBdOwoKICAgICAgICAvLyBjcmVhdGUgdGhlIGRlc3RpbmF0aW9uIHBhdGgKICAgICAgICAkZGVzdF9wYXRoID0gJHRoaXMtPnRtcF9wYXRoLicvJy4kdGhpcy0+Z3VpZDsKICAgICAgICBpZiggIWlzX2RpcigkZGVzdF9wYXRoKSApIHsKICAgICAgICAgICAgJHJlcyA9IG1rZGlyKCRkZXN0X3BhdGgsIDA3NTUsIHRydWUpOwogICAgICAgICAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJ0NvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5IGF0ICcuJGRlc3RfcGF0aCk7CiAgICAgICAgfQogICAgICAgIC8vIGFuZCB0aGVuIGNyZWF0ZSB0aGUgb2JqZWN0CiAgICAgICAgJG9wdGlvbnNbJ3VwbG9hZF9kaXInXSA9ICRkZXN0X3BhdGguJy8nOwogICAgICAgICRvcHRpb25zWyd1cGxvYWRfdXJsJ10gPSAnJzsKICAgICAgICByZXR1cm4gbmV3IFRtcFVwbG9hZEhhbmRsZXIoJG9wdGlvbnMpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X3VwbG9hZGVkX2ZpbGVzKCkgOiBhcnJheQogICAgewogICAgICAgICRmaWxlcyA9IGdsb2IoJHRoaXMtPnRtcF9wYXRoLicvJy4kdGhpcy0+Z3VpZC4nLyonKTsKICAgICAgICBpZiggZW1wdHkoJGZpbGVzKSApICRmaWxlcyA9IFtdOwogICAgICAgIHJldHVybiAkZmlsZXM7CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/class.UrlSlugHelper.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBDTVNNU1xEYXRhYmFzZVxDb25uZWN0aW9uIGFzIERhdGFiYXNlOwp1c2UgY21zX3JvdXRlX21hbmFnZXI7CgpjbGFzcyBVcmxTbHVnSGVscGVyIGltcGxlbWVudHMgSVVybFNsdWdIZWxwZXIKewogICAgcHJpdmF0ZSAkZGI7CiAgICBwcml2YXRlICRtc2c7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KERhdGFiYXNlICRkYiwgc3RyaW5nICRlcnJvcl9tc2cpCiAgICB7CiAgICAgICAgJHRoaXMtPmRiID0gJGRiOwogICAgICAgICR0aGlzLT5tc2cgPSAkZXJyb3JfbXNnOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV91cmxfZm9yX2NvbXBhbnkoQ29tcGFueSAkY29tcGFueSkKICAgIHsKICAgICAgICBpZiggISRjb21wYW55LT51cmwgKSByZXR1cm47CgogICAgICAgIC8vIGNoZWNrIHRoZSBwcm92aWRlZC9nZW5lcmF0ZWQgdXJsLgogICAgICAgICR0dXJsID0gdHJpbSgkY29tcGFueS0+dXJsLCIgL1x0XHJcblwwXHgwOCIpOwogICAgICAgIGlmKCBlbXB0eSgkdHVybCkgfHwgc3RhcnRzd2l0aCgkdHVybCwnLycpIHx8IGVuZHN3aXRoKCR0dXJsLCcvJykgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPm1zZyk7CgogICAgICAgIC8vIGNoZWNrIGZvciBpbnZhbGlkIGNoYXJzLgogICAgICAgICR0cmFuc2xhdGVkID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkdHVybCxmYWxzZSx0cnVlKTsKICAgICAgICBpZiggc3RydG9sb3dlcigkdHJhbnNsYXRlZCkgIT0gc3RydG9sb3dlcigkdHVybCkgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPm1zZyk7CgogICAgICAgICRyb3V0ZSA9IGNtc19yb3V0ZV9tYW5hZ2VyOjpmaW5kX21hdGNoKCR0dXJsLFRSVUUpOwogICAgICAgIGlmKCBpc19vYmplY3QoJHJvdXRlKSApIHsKICAgICAgICAgICAgLy8gZm91bmQgYSBtYXRjaGluZyB1cmwsIGp1c3QgZ290dGEgY29uZmlybSB0aGF0IHRoZSByb3V0ZSBkb2Vzbid0IG1hdGNoIHRoaXMgY29tcGFueQogICAgICAgICAgICAkZGVmID0gJHJvdXRlLT5nZXRfZGVmYXVsdHMoKTsKICAgICAgICAgICAgaWYoICRjb21wYW55LT5pZCApIHsKICAgICAgICAgICAgICAgIGlmKCAkcm91dGUtPmdldF9kZXN0KCkgIT0gJ0NvbXBhbnlEaXJlY3RvcnknIHx8ICFpc3NldCgkZGVmWydjb21waWQnXSkgfHwgJGRlZlsnY29tcGlkJ10gIT0gJGNvbXBhbnktPmlkICkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+bXNnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+bXNnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gbmV4dCB3ZSBjaGVjayB0aGUgbG9jYWwgZGF0YWJhc2UuCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBXSEVSRSB1cmwgPSA/JzsKICAgICAgICAkdGhlX2lkID0gKGludCkgJHRoaXMtPmRiLT5HZXRPbmUoJHNxbCxbJHR1cmxdKTsKICAgICAgICBpZiggJHRoZV9pZCApIHsKICAgICAgICAgICAgaWYoICRjb21wYW55LT5pZCApIHsKICAgICAgICAgICAgICAgIGlmKCAkY29tcGFueS0+aWQgIT0gJHRoZV9pZCApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPm1zZyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPm1zZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBsb2FkX3JvdXRlcygpCiAgICB7CiAgICAgICAgc3RhdGljICRmbGFnOwogICAgICAgIGlmKCAhJGZsYWcgKSB7CiAgICAgICAgICAgIGNtc19yb3V0ZV9tYW5hZ2VyOjpsb2FkX3JvdXRlcygpOwogICAgICAgICAgICAkZmxhZyA9IDE7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZW5lcmF0ZV91cmwoc3RyaW5nICRjb21wYW55X25hbWUpIDogc3RyaW5nCiAgICB7CiAgICAgICAgLy8gdG9kbzogbW92ZSBtZSBpbnRvIENvbXBhbnlNYW5hZ2VyCiAgICAgICAgJHR1cmwgPSAnJzsKICAgICAgICBpZiggJGNvbXBhbnlfbmFtZSA9PSAnJyApIHJldHVybiAkdHVybDsKICAgICAgICAkdG5hbWUgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKCRjb21wYW55X25hbWUpOwoKICAgICAgICAkdGhpcy0+bG9hZF9yb3V0ZXMoKTsKICAgICAgICAkc3VmZml4ID0gJyc7CiAgICAgICAgJGNvdW50ID0gMTsKICAgICAgICAkdG5hbWUgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCR0bmFtZSxmYWxzZSx0cnVlKTsKICAgICAgICB3aGlsZSggJHR1cmwgPT0gJycgJiYgJGNvdW50IDwgMTAwICkgewogICAgICAgICAgICAkdG1wID0gc3RydG9sb3dlcigkdG5hbWUpOwogICAgICAgICAgICAkdG1wIC49ICRzdWZmaXg7CiAgICAgICAgICAgICR0bXAgPSB0cmltKCR0bXAsIiAvXHRcclxuXDBceDA4Iik7CgogICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhpcyB1cmwgaXNuJ3QgdGFrZW4uCiAgICAgICAgICAgICRleGlzdHMgPSBudWxsOwogICAgICAgICAgICAkcm91dGUgPSBjbXNfcm91dGVfbWFuYWdlcjo6ZmluZF9tYXRjaCgkdG1wKTsKICAgICAgICAgICAgaWYoICEkcm91dGUgKSB7CiAgICAgICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCBGUk9NICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIFdIRVJFIHVybCA9ID8nOwogICAgICAgICAgICAgICAgJGV4aXN0cyA9IChpbnQpICR0aGlzLT5kYi0+R2V0T25lKCRzcWwsWyR0bXBdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiggJHJvdXRlIHx8ICRleGlzdHMgPiAwKSB7CiAgICAgICAgICAgICAgICAkY291bnQrKzsKICAgICAgICAgICAgICAgICRzdWZmaXggPSAnLScuJGNvdW50OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgLy8gZm91bmQgb25lLgogICAgICAgICAgICAgICAgJHR1cmwgPSAkdG1wOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkdHVybDsKICAgIH0KfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.Utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKY2xhc3MgVXRpbHMKewogICAgcHVibGljIGZ1bmN0aW9uIGRlY29kZV9kcm9wZG93bl9kYXRhKCRzdHIpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkc3RyKSApIHsKICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoIlxuIiwkc3RyKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkc3RyOwogICAgICAgIH0KCiAgICAgICAgJHRtcDIgPSBhcnJheSgpOwogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewogICAgICAgICAgICBpZiggc3RycG9zKCR0bXBbJGldLCc9JykgPT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgJHRtcDJbdHJpbSgkdG1wWyRpXSldID0gdHJpbSgkdG1wWyRpXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBsaXN0KCRva2V5LCRvdmFsdWUpID0gZXhwbG9kZSgnPScsJHRtcFskaV0sMik7CiAgICAgICAgICAgICAgICAkb2tleSA9IHRyaW0oJG9rZXkpOwogICAgICAgICAgICAgICAgJG92YWx1ZSA9IHRyaW0oJG92YWx1ZSk7CiAgICAgICAgICAgICAgICBpZiggJG9rZXkgJiYgISRvdmFsdWUgKSAkb3ZhbHVlID0gJG9rZXk7CiAgICAgICAgICAgICAgICAvL2lmKCAhJG9rZXkgJiYgJG92YWx1ZSApICRva2V5ID0gJG92YWx1ZTsKICAgICAgICAgICAgICAgICR0bXAyWyRva2V5XSA9ICRvdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYXJyYXlfZmxpcCgkdG1wMik7CiAgICAgICAgcmV0dXJuICR0bXAyOwogICAgfQoKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.ValidOwnerQueryExpression.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBGcm9udEVuZFVzZXJzOwoKLyoqCiAqIFRoaXMgY2xhc3MgaGFuZGxlcyB0aGUgJ2Z1bGx0ZXh0JyBxdWVyeSBleHByZXNzaW9uCiAqLwpjbGFzcyBWYWxpZE93bmVyUXVlcnlFeHByZXNzaW9uCnsKICAgIHByaXZhdGUgJGZldTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoRnJvbnRFbmRVc2VycyAkZmV1ID0gbnVsbCkKICAgIHsKICAgICAgICAkdGhpcy0+ZmV1ID0gJGZldTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoYXJyYXkgJHN0YXRlbWVudCwgSVF1ZXJ5QnVpbGRlciAkYnVpbGRlcikKICAgIHsKICAgICAgICAvLyBpZiB3ZSBkb24ndCBoYXZlIEZFVSwgZXZlbiBpZiB3ZSBnZXQgaGVyZS4uIHdlIGlnbm9yZSBpdC4KICAgICAgICBpZiggISR0aGlzLT5mZXUgKSByZXR1cm47CgogICAgICAgIC8vIGFuZHxvcjp2YWxpZHVzZXI6MQogICAgICAgIGlmKCAhaXNzZXQoJHN0YXRlbWVudFsxXSkgfHwgIWlzX3N0cmluZygkc3RhdGVtZW50WzFdKSApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uc3Npb24oJ05vIGlkbGlzdCBzcGVjaWZpZWQnKTsKICAgICAgICAkZmxhZyA9IGNtc190b19ib29sKCRzdGF0ZW1lbnRbMV0pOwoKICAgICAgICAvLyBub3RlLCB0aGlzIHF1ZXJ5IGNhbm5vdCBjYWNoZQogICAgICAgIC8vIHNvIHdlIGludHJvZHVjZSBhIGp1bmsgY29uZGl0aW9uIHNvIHRoYXQgdGhlIHF1ZXJ5IHdpbGwgY2hhbmdlIGVhY2ggdGltZS4KICAgICAgICAkdGltZSA9IHRpbWUoKTsKICAgICAgICAkb3V0ID0gKG9iamVjdCkgWwogICAgICAgICAgICAnam9pbl9jbGF1c2UnID0+ICdMRUZUIEpPSU4gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfZmV1c2Vyc191c2VycyBGRVUgT04gRkVVLmlkID0gJVRBQkxFJS5vd25lcl9pZCcsCiAgICAgICAgICAgICd3aGVyZV9jbGF1c2UnID0+ICcoQ09BTEVTQ0UoJVRBQkxFJS5vd25lcl9pZCwtMSkgPCAwIE9SIChGRVUuZGlzYWJsZWQgIT0gMSBBTkQgRkVVLmV4cGlyZXMgPiBOT1coKSkpIEFORCAoJy4kdGltZS4nICE9IDApJwogICAgICAgICAgICBdOwogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9IC8vIGNsYXNz]]></data>
	</file>
	<file>
	  <filename>/lib/interface.ICategoryManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKaW50ZXJmYWNlIElDYXRlZ29yeU1hbmFnZXIKewoKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfY2F0ZWdvcnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDYXRlZ29yeTsKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2FsbCgpOwogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBDYXRlZ29yeTsKCiAgICAvKioKICAgICAqIExvYWQgbXVsdGlwbGUgY2F0ZWdvcmllcyBieSBpZC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50W10gJGxpc3QgVGhlIGxpc3Qgb2YgY2F0ZWdvcnkgaWRzIHRvIGxvYWQKICAgICAqIEByZXR1cm4gQ2F0ZWdvcnlbXQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9idWxrKGFycmF5ICRsaXN0KSA6IGFycmF5OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlKENhdGVnb3J5ICRjYXRlZ29yeSkgOiBDYXRlZ29yeTsKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGUoQ2F0ZWdvcnkgJGNhdGVnb3J5KSA6IENhdGVnb3J5OwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9saXN0KCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3RyZWUoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfY2F0ZWdvcnlfcGF0aChDYXRlZ29yeSAkY2F0ZWdvcnkpIDogc3RyaW5nOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV91cmwoQ2F0ZWdvcnkgJGNhdGVnb3J5KSA6IHN0cmluZzsKICAgIHB1YmxpYyBmdW5jdGlvbiBidWxrX3Jlb3JkZXIoYXJyYXkgJGRhdGEpOwp9IC8vIGludGVyZmFjZQo=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.ICompanyManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgppbnRlcmZhY2UgSUNvbXBhbnlNYW5hZ2VyCnsKICAgIC8qKgogICAgICogR2l2ZW4gYW4gaW5wdXQgYXJyYXksIGNyZWF0ZSBhIG5ldyBjb21wYW55LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIHdpbGwgYXBwbHkgZGVmYXVsdHMuCiAgICAgKgogICAgICogQHJldHVybiBDb21wYW55CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfbmV3X2NvbXBhbnkoYXJyYXkgJGRhdGEgPSBbXSkgOiBDb21wYW55OwoKICAgIC8qKgogICAgICogTG9hZCBhIGNvbXBhbnkgZ2l2ZW4gaXRzIGlkLgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGlkCiAgICAgKiBAcmV0dXJuIENvbXBhbnkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfaWQoaW50ICRpZCkgOiBDb21wYW55OwoKICAgIC8qKgogICAgICogTG9hZCBhcnRpY2xlcyBnaXZlbiBhIGZpbHRlciBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIGNkX2NvbXBhbnlfZmlsdGVyICRmaWx0ZXIKICAgICAqIEByZXR1cm4gQ29tcGFueVNldAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9ieV9xdWVyeShTcWxRdWVyeSAkcXVlcnkpIDogQ29tcGFueVNldDsKCiAgICAvKioKICAgICAqIFNhdmUgYSBjb21wYW55CiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEByZXR1cm4gQ29tcGFueQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2F2ZShDb21wYW55ICRjb21wYW55KSA6IENvbXBhbnk7CgogICAgLyoqCiAgICAgKiBEZWxldGUgYSBjb21wYW55CiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEByZXR1cm4gQ29tcGFueQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlKENvbXBhbnkgJGNvbXBhbnkpIDogQ29tcGFueTsKCiAgICAvKioKICAgICAqIENvcHkgYSBjb21wYW55LgogICAgICogVGhpcyBtZXRob2Qgd2lsbCBjb3B5IGFuIGVudGlyZSBjb21wYW55LgogICAgICogSXQgd2lsbCB1c2Ugc2V0dGluZ3MgdG8gZGV0ZXJtaW5lIGlmIGEgbmV3IHVybCBpcyB0byBiZSBnZW5lcmF0ZWQKICAgICAqIGl0IHdpbGwgY29weSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb21wYW55CiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEByZXR1cm4gQ29tcGFueSB0aGUgbmV3IGNvbXBhbnkgd2l0aCBhIG5ldyBpZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNvcHlfY29tcGFueShDb21wYW55ICRjb21wYW55KSA6IENvbXBhbnk7CgogICAgLyoqCiAgICAgKiBEZWxldGUgdGhlIG5hbWVkIGZpbGVzIGZyb20gdGhlIGNvbXBhbnkgZGlyZWN0b3J5LgogICAgICogVGhpcyBpcyBqdXN0IGEgaG91c2VrZWVwaW5nIG1lY2hhbmlzbSwgaXQgZG9lcyBub3QgYWx0ZXIgdGhlIGNvbXBhbnkgb2JqZWN0LgogICAgICogVGhlIGNvbXBhbnkgbXVzdCBoYXZlIGFuIGV4aXN0aW5nIGlkCiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEBwYXJhbSBzdHJpbmdbXSBUaGUgYXJyYXkgb2YgZmlsZW5hbWVzIHRvIHJlbW92ZSBmcm9tIHRoZSBjb21wYW55IGZpbGVzIGRpcmVjdG9yeS4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2NvbXBhbnlfZmlsZXMoQ29tcGFueSAkY29tcGFueSwgYXJyYXkgJGZpbGVuYW1lcykgOiB2b2lkOwoKICAgIC8qKgogICAgICogQ29weSBmaWxlcyBmcm9tIGEgc291cmNlIGxvY2F0aW9uIGludG8gdGhlIGNvbXBhbnkgZGlyZWN0b3J5LgogICAgICogVGhpcyBpcyBhIGhvdXNla2VlcGluZyBtZWNoYW5pc20gdXNlZCB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgY29tcGFueSB0byBtb3ZlIHJlbGF0ZWQgZmlsZXMgaW50byB0aGVpciBwZXJtYW5lbnQgbG9jYXRpb24uCiAgICAgKgogICAgICogQHBhcmFtIENvbXBhbnkgJGNvbXBhbnkKICAgICAqIEBwYXJhbSBzdHJpbmdbXSBUaGUgYXJyYXkgb2YgZmlsZW5hbWVzIHRvIHJlbW92ZSBmcm9tIHRoZSBjb21wYW55IGZpbGVzIGRpcmVjdG9yeS4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY29weV9jb21wYW55X2ZpbGVzKENvbXBhbnkgJGNvbXBhbnksIGFycmF5ICRuZXdfZmlsZXMpIDogdm9pZDsKCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbXBhbnlfZmlsZV9wYXRoKGludCAkaWQpIDogc3RyaW5nOwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jb21wYW55X2ZpbGVfdXJsKGludCAkaWQpIDogc3RyaW5nOwoKICAgIHB1YmxpYyBmdW5jdGlvbiByZW1vdmVfb3duZXJzaGlwX2ZvcihpbnQgJHVpZCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gcmVtb3ZlX2FsbF9vd25lcnNoaXAoKTsKfSAvLyBpbnRlcmZhY2U=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IDecorated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgppbnRlcmZhY2UgSURlY29yYXRlZAp7CiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2xhc3RfZGVjb3JhdG9yKG9iamVjdCAkb2JqKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGFzdF9kZWNvcmF0b3IoKTsKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IFieldDefManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKaW50ZXJmYWNlIElGaWVsZERlZk1hbmFnZXIKewogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9maWVsZGRlZihhcnJheSAkb3B0cyA9IFtdKSA6IEZpZWxkRGVmaW5pdGlvbjsKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogRmllbGREZWZpbml0aW9uOwogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfYnlfbmFtZShzdHJpbmcgJG5hbWUpIDogRmllbGREZWZpbml0aW9uOwogICAgcHVibGljIGZ1bmN0aW9uIGxvYWRfcHVibGljKCk7CiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9hbGwoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbGlzdCgpOwogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoRmllbGREZWZpbml0aW9uICRkZWYpIDogRmllbGREZWZpbml0aW9uOwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShGaWVsZERlZmluaXRpb24gJGRlZikgOiBGaWVsZERlZmluaXRpb247CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9maXJzdF9maWVsZF9vZl90eXBlKHN0cmluZyAkdHlwZSk7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkdHlwZXNfbGlzdCgpIDogYXJyYXk7CiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlX2ZpZWxkX29yZGVyKGFycmF5ICRmaWVsZGRlZnMsIGFycmF5ICRvcmRlcik7Cn0gLy8gaW50ZXJmYWNl]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IGeoCoder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgppbnRlcmZhY2UgSUdlb0NvZGVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2NhdGVfYnlfc3RyaW5nKHN0cmluZyAkZnVsbF9hZGRyZXNzKSA6IEdlb0NvZGluZ1Jlc3VsdDsKCn0gLy8gaW50ZXJmYWNl]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IHierarchyManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgppbnRlcmZhY2UgSUhpZXJhcmNoeU1hbmFnZXIKewogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9oaWVyYXJjaHkoYXJyYXkgJGRhdGEgPSBbXSkgOiBIaWVyYXJjaHk7CiAgICBwdWJsaWMgZnVuY3Rpb24gbG9hZF9hbGwoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBsb2FkX2J5X2lkKGludCAkaWQpIDogSGllcmFyY2h5OwogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoSGllcmFyY2h5ICRoaWVyYXJjaHkpIDogSGllcmFyY2h5OwogICAgcHVibGljIGZ1bmN0aW9uIGRlbGV0ZShIaWVyYXJjaHkgJGhpZXJhcmNoeSkgOiBIaWVyYXJjaHk7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2xpc3QoKTsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdHJlZSgpOwoKICAgIC8qKgogICAgICogR2V0IHRoZSBmaXJzdCBoaWVyYXJjaHkgKGlmIGFueSkgd2l0aCB0aGUgcHJvdmlkZWQgbmFtZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcmV0dXJuIEhpZXJhcmNoeXxudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmlyc3RfYnlfbmFtZShzdHJpbmcgJG5hbWUpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBidWxrX3Jlb3JkZXIoYXJyYXkgJGRhdGEpOwp9IC8vIGludGVyZmFjZQo=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IMetaQueryManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBTcGxPYnNlcnZlcjsKdXNlIFNwbFN1YmplY3Q7CgppbnRlcmZhY2UgSU1ldGFRdWVyeU1hbmFnZXIgZXh0ZW5kcyBTcGxPYnNlcnZlcgp7CiAgICAvKioKICAgICAqIFJldHVybiBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBoaWVyYXJjaHlfaWRzIGFuZCBjb3VudHMgb2YgY29tcGFuaWVzIGluIHRoYXQgY2F0ZWdvcnkuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheXxudWxsCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X2NvdW50cygpOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X3RyZWVfd2l0aF9jb3VudHMoSUhpZXJhcmNoeU1hbmFnZXIgJGhtZ3IpOwoKICAgIC8qKgogICAgICogUmV0dXJuIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIGhpZXJhcmNoeV9pZHMgYW5kIGNvdW50cyBvZiBjb21wYW5pZXMgaW4gdGhhdCBjYXRlZ29yeS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5fG51bGwKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yeV9jb3VudHMoKTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3RyZWVfd2l0aF9jb3VudHMoSUNhdGVnb3J5TWFuYWdlciAkaG1ncik7CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGNvdW50IG9mIGNvbXBhbmllcyBieSB0aGUgbGV0dGVyL251bWJlciB0aGF0IHRoZWlyIG5hbWUgYmVnaW5zIHdpdGguCiAgICAgKgogICAgICogQHJldHVybiBhcnJheXxudWxsIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIExFVFRFUiA9PiBjb3VudAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FscGhhYmV0aWNfY291bnRzKCk7Cgp9IC8vIGludGVyZmFjZTs=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IQuery.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBJdGVyYXRvcjsKdXNlIENvdW50YWJsZTsKCmludGVyZmFjZSBJUXVlcnkgZXh0ZW5kcyBJdGVyYXRvciwgQ291bnRhYmxlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBhcHBlbmRfc3RhdGVtZW50KHN0cmluZyAkc3RtdCkgOiBJUXVlcnk7CiAgICBwdWJsaWMgZnVuY3Rpb24gdG9fc3RyaW5nKCkgOiBzdHJpbmc7Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IQueryBuilder.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKaW50ZXJmYWNlIElRdWVyeUJ1aWxkZXIKewogICAgcHVibGljIGZ1bmN0aW9uIHdpbGRjYXJkKHN0cmluZyAkc3RyKSA6IHN0cmluZzsKICAgIHB1YmxpYyBmdW5jdGlvbiBhcmcoJGFyZyk7CiAgICBwdWJsaWMgZnVuY3Rpb24gdG9faW50X2FycmF5KCRpbnB1dCkgOiBhcnJheTsKICAgIHB1YmxpYyBmdW5jdGlvbiBhc3NlcnRfcG9zaXRpdmVfaW50X2FycmF5KGFycmF5ICRpbnB1dCkgOiBhcnJheTsKCn0=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IQueryFactory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgppbnRlcmZhY2UgSVF1ZXJ5RmFjdG9yeQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfcXVlcnkoSVF1ZXJ5ICRpbikgOiBTcWxRdWVyeTsKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKGFycmF5ICRzdGF0ZW1lbnRzKSA6IElRdWVyeTsKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfZnJvbnRlbmRfcXVlcnlfZnJvbV9zdGF0ZW1lbnRzKGFycmF5ICRzdGF0ZW1lbnRzKSA6IElRdWVyeTsKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGp1c3RfcXVlcnlfZm9yX3BhZ2UoSVF1ZXJ5ICRxdWVyeSwgaW50ICRwYWdlLCBpbnQgJGxpbWl0ID0gbnVsbCkgOiBJUXVlcnk7CiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX2Zyb250ZW5kX3F1ZXJ5X2Zyb21fcGFyYW1zKGFycmF5ICRwYXJhbXMpIDogSVF1ZXJ5OwogICAgcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9xdWVyeV9mcm9tX3NjcmlwdChzdHJpbmcgJHNjcmlwdCkgOiBJUXVlcnk7Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/lib/interface.ISearchHelper.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7Cm5hbWVzcGFjZSBDb21wYW55RGlyZWN0b3J5OwoKaW50ZXJmYWNlIElTZWFyY2hIZWxwZXIKewoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfc2VhcmNoX3dvcmRzKENvbXBhbnkgJGNvbXBhbnkpIDogc3RyaW5nOwoKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.ITmpUploadManager.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgppbnRlcmZhY2UgSVRtcFVwbG9hZE1hbmFnZXIKewoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdG1wX3BhdGgoKSA6IHN0cmluZzsKICAgIHB1YmxpYyBmdW5jdGlvbiBjcmVhdGVfdXBsb2FkX2hhbmRsZXIoc3RyaW5nICRwYXJhbV9uYW1lKSA6IGNkX2pxdWVyeV91cGxvYWRfaGFuZGxlcjsKICAgIHB1YmxpYyBmdW5jdGlvbiBsaXN0X3VwbG9hZGVkX2ZpbGVzKCkgOiBhcnJheTsKfSAvLyBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/interface.IUrlSlugHelper.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CgppbnRlcmZhY2UgSVVybFNsdWdIZWxwZXIKewoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZV91cmxfZm9yX2NvbXBhbnkoQ29tcGFueSAkY29tcGFueSk7CiAgICBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfdXJsKHN0cmluZyAkY29tcGFueV9uYW1lKSA6IHN0cmluZzsKCn0gLy8gaW50ZXJmYWNl]]></data>
	</file>
	<file>
	  <filename>/lib/trait.Observable.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIENvbXBhbnlEaXJlY3Rvcnk7CnVzZSBTcGxPYnNlcnZlcjsKdXNlIFNwbE9iamVjdFN0b3JhZ2U7Cgp0cmFpdCBPYnNlcnZhYmxlCnsKICAgIHByaXZhdGUgJF9vYnNlcnZlcnM7CgogICAgcHVibGljIGZ1bmN0aW9uIGF0dGFjaCggU3BsT2JzZXJ2ZXIgJG9ic2VydmVyICkgOiB2b2lkCiAgICB7CiAgICAgICAgaWYoIGlzX251bGwoJHRoaXMtPl9vYnNlcnZlcnMpICkgJHRoaXMtPl9vYnNlcnZlcnMgPSBuZXcgU3BsT2JqZWN0U3RvcmFnZTsKICAgICAgICAkdGhpcy0+X29ic2VydmVycy0+YXR0YWNoKCRvYnNlcnZlcik7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRldGFjaCggU3BsT2JzZXJ2ZXIgJG9ic2VydmVyICkgOiB2b2lkCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fb2JzZXJ2ZXJzICkgJHRoaXMtPl9vYnNlcnZlcnMtPmRldGFjaCgkb2JzZXJ2ZXIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBub3RpZnkoKSA6IHZvaWQKICAgIHsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X29ic2VydmVycyBhcyAkb2JzZXJ2ZXIgKSB7CiAgICAgICAgICAgICRvYnNlcnZlci0+dXBkYXRlKCR0aGlzKTsKICAgICAgICB9CiAgICB9Cn0gLy8gY2xhc3M=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc3LjInKSA8IDAgKSByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNy4yIHJlcXVpcmVkIjsKCiRkYiA9ICR0aGlzLT5nZXRfZXh0ZW5kZWRfZGIoKTsKJHRhYm9wdGFycmF5ID0gWydteXNxbCcgPT4gJ1RZUEU9SW5ub0RCJ107CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgljb21wYW55X25hbWUgQygyNTUpIE5PVE5VTEwsCglhZGRyZXNzIFgsCgl0ZWxlcGhvbmUgQyg1MCksCglmYXggQyg1MCksCgljb250YWN0X2VtYWlsIEMoMjU1KSwKCXdlYnNpdGUgQygyNTUpLAoJZGV0YWlscyBYLAoJcGljdHVyZV9sb2NhdGlvbiBDKDI1NSksCglsb2dvX2xvY2F0aW9uIEMoMjU1KSwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKICAgIHN0YXR1cyBDKDUwKSBOT1ROVUxMLAogICAgbGF0aXR1ZGUgRiwKICAgIGxvbmdpdHVkZSBGLAogICAgb3duZXJfaWQgSSwKICAgIGhpZXJfaWQgSSwKICAgIHVybCBDKDI1NSkKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENNU19EQl9QUkVGSVguIm1vZHVsZV9jb21wZGlyX2NvbXBhbmllcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCglpZCBJIEtFWSBBVVRPLAoJbmFtZSBDKDI1NSkgTk9UTlVMTCwKICAgIGltYWdlICBDKDI1NSksCiAgICBkZXNjcmlwdGlvbiBYLAogICAgcGFyZW50X2lkIEkgTk9UTlVMTCwKICAgIGl0ZW1fb3JkZXIgSSBOT1ROVUxMLAogICAgaGllcmFyY2h5IEMoMjU1KSBOT1ROVUxMLAogICAgbG9uZ19uYW1lIFggTk9UTlVMTCwKICAgIGV4dHJhMSAgQygyNTUpLAogICAgZXh0cmEyICBDKDI1NSksCiAgICBleHRyYTMgIEMoMjU1KQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ01TX0RCX1BSRUZJWC4ibW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcyIsJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCWNvbXBhbnlfaWQgSSBLRVkgTk9UTlVMTCwKCWNhdGVnb3J5X2lkIEkgS0VZIE5PVE5VTEwsCiAgICBleHRyYTEgQygyNTUpLAogICAgZXh0cmEyIEMoMjU1KSwKICAgIGV4dHJhMyBDKDI1NSksCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENNU19EQl9QUkVGSVguIm1vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCglpZCBJIEtFWSBBVVRPLAoJbmFtZSBDKDI1NSkgTk9UTlVMTCwKCXR5cGUgQyg1MCkgTk9UTlVMTCwKCW1heF9sZW5ndGggSSwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKICAgIGl0ZW1fb3JkZXIgSSBOT1ROVUxMLAogICAgYWRtaW5fb25seSBJLAogICAgcHVibGljIEksCiAgICBkcm9wZG93bl9kYXRhIFgsCiAgICBkYXRhIFgKIjsKLyogbm90ZTogcHVibGljIGZpZWxkIGlzIG5vdCB1c2VkIGluIHYyKyAqLwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ01TX0RCX1BSRUZJWC4ibW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzIiwgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCWNvbXBhbnlfaWQgSSBLRVkgTk9UTlVMTCwKCWZpZWxkZGVmX2lkIEkgS0VZIE5PVE5VTEwsCgl2YWx1ZSBYLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChDTVNfREJfUFJFRklYLiJtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCWRhdGVfc2VhcmNoZWQgIi5DTVNfQURPREJfRFQuIiBOT1ROVUxMLAogICAgaXBfYWRkcmVzcyAgQygyNTUpLAogICAgZmV1X3VpZCAgICAgSQoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoQ01TX0RCX1BSRUZJWC4ibW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgogICBzZWFyY2hfaWQgSSBLRVkgTk9UTlVMTCwKICAgbmFtZSBDKDI1NSkgS0VZIE5PVE5VTEwsCiAgIHZhbCAgQygyNTUpIE5PVE5VTEwKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENNU19EQl9QUkVGSVguIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzX3ZhcnMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgogICBzZWFyY2hfaWQgSSBLRVkgTk9UTlVMTCwKICAgY29tcGFueV9pZCBJIEtFWSBOT1ROVUxMCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChDTVNfREJfUFJFRklYLiJtb2R1bGVfY29tcGRpcl9zZWFyY2hzdGF0c19yZXMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTywKCW5hbWUgQygyNTUpIE5PVE5VTEwsCglwYXJlbnRfaWQgSSBOT1ROVUxMLAogICAgaW9yZGVyIEkgTk9UTlVMTCwKCWhpZXJhcmNoeSBDKDI1NSkgTk9UTlVMTCwKCWxvbmdfbmFtZSBYIE5PVE5VTEwKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKENNU19EQl9QUkVGSVguIm1vZHVsZV9jb21wZGlyX2hpZXIiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKIyBGb3JlaWduIGtleSByZWxhdGlvbnNoaXBzCiRzcWwgPSAnQUxURVIgVEFCTEUgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgQUREIEZPUkVJR04gS0VZIChoaWVyX2lkKSBSRUZFUkVOQ0VTICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfaGllciAoaWQpJzsKJGRiLT5FeGVjdXRlKCRzcWwpOwokc3FsID0gJ0FMVEVSIFRBQkxFICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIEFERCBGT1JFSUdOIEtFWSAoY2F0ZWdvcnlfaWQpIFJFRkVSRU5DRVMgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIChpZCknOwokZGItPkV4ZWN1dGUoJHNxbCk7CiRzcWwgPSAnQUxURVIgVEFCTEUgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgQUREIEZPUkVJR04gS0VZIChjb21wYW55X2lkKSBSRUZFUkVOQ0VTICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIChpZCknOwokZGItPkV4ZWN1dGUoJHNxbCk7CiRzcWwgPSAnQUxURVIgVEFCTEUgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMgQUREIEZPUkVJR04gS0VZIChmaWVsZGRlZl9pZCkgUkVGRVJFTkNFUyAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyAoaWQpJzsKJGRiLT5FeGVjdXRlKCRzcWwpOwokc3FsID0gJ0FMVEVSIFRBQkxFICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIEFERCBGT1JFSUdOIEtFWSAoY29tcGFueV9pZCkgUkVGRVJFTkNFUyAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyAoaWQpJzsKJGRiLT5FeGVjdXRlKCRzcWwpOwoKIyBJbmRleGVzCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9jb21wX25hbWUnLCBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCdjb21wYW55X25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NhdGdfbmFtZScsQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY2F0ZWdvcmllcycsJ25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NhdGdfaW9yZGVyJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzJywncGFyZW50X2lkLGl0ZW1fb3JkZXInKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2NvbXBjYXQnLENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcycsJ2NhdGVnb3J5X2lkLGNvbXBhbnlfaWQnLCBbJ1VOSVFVRSddKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjb21wZGlyX2ZpZWxkZGVmJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCduYW1lLGlkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY29tcGRpcl9maWVsZGRlZicsQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzMicsJ25hbWUnLCBbJ1VOSVFVRSddKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9zdGF0dXMnLENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsJ3N0YXR1cycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NkX2NvbXBfdXJsJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCAndXJsJywgWydVTklRVUUnXSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfY29tcF91cmwyJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCdzdGF0dXMsdXJsJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfY29tcF9oaWVyJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCdoaWVyX2lkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfZmxkX25hbWUnLENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsJ25hbWUnLCBbJ1VOSVFVRSddKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9mbGRfb3JkZXInLENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsJ2l0ZW1fb3JkZXInLCBbJ1VOSVFVRSddKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9jb21wX2xhdGxuZycsQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnbGF0aXR1ZGUsIGxvbmdpdHVkZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojCiMgVGVtcGxhdGVzCiMKCiNTZXQgUGVybWlzc2lvbgokdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IENvbXBhbnkgRGlyZWN0b3J5JywgJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpOwpjZF91dGlsczo6Y3JlYXRlX2Z1bGx0ZXh0X2luZGV4KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0gJHRoaXMtPkdldERiKCk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKLy8gbm90ZTogYmVjYXVzZSBvZiBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzLCB0aGUgb3JkZXIgdGhhdCB0YWJsZXMgYXJlIGRyb3BwZWQgaXMgaW1wb3J0YW50LgoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggQ01TX0RCX1BSRUZJWC4ibW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBDTVNfREJfUFJFRklYLiJtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBDTVNfREJfUFJFRklYLiJtb2R1bGVfY29tcGRpcl9maWVsZHZhbHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENNU19EQl9QUkVGSVguIm1vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggQ01TX0RCX1BSRUZJWC4ibW9kdWxlX2NvbXBkaXJfc2VhcmNoc3RhdHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENNU19EQl9QUkVGSVguIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzX3ZhcnMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIENNU19EQl9QUkVGSVguIm1vZHVsZV9jb21wZGlyX3NlYXJjaHN0YXRzX3JlcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggQ01TX0RCX1BSRUZJWC4ibW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBDTVNfREJfUFJFRklYLiJtb2R1bGVfY29tcGRpcl9oaWVyIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBDb21wYW55IERpcmVjdG9yeScpOwoKcmVjdXJzaXZlX2RlbGV0ZSgkdGhpcy0+Y29uZmlnWyd1cGxvYWRzX3BhdGgnXS4nL2NvbXBhbnlkaXJlY3RvcnknKTsK]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENvbXBhbnlEaXJlY3RvcnkgKGMpIDIwMDQtNiBieSBUZWQgS3VscCAodGVkQGNtc21hZGVzaW1wbGUub3JnKQojICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE0IGJ5IFJvYmVydCBDYW1wYmVsbCAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIwojICBBbiBhZGRvbiBtb2R1bGUgZm9yIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyBtYW5hZ2VtZW50IG9mIGFuZCB2YXJpb3VzIHdheXMgdG8gZGlzcGxheQojICBjb21wYW55IGluZm9ybWF0aW9uIGZvciB1c2UgaW4gZGlyZWN0b3JpZXMgZXRjLgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1LTIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBob21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNy4yJykgPCAwICkgewogICAgcmV0dXJuICJNaW5pbXVtIFBIUCB2ZXJzaW9uIG9mIDcuMiByZXF1aXJlZCI7Cn0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS4yMi40LjknKSA8IDAgKSB7CiAgICByZXR1cm4gIkNhbm5vdCB1cGdyYWRlIGZyb20gdGhpcyBvbGQgb2YgYSB2ZXJzaW9uLiAgUGxlYXNlIHVwZ3JhZGUgdG8gMS4yMi41IG9yIGdyZWF0ZXIgZmlyc3QiOwp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzEuMjMnKSA8IDAgKSB7CiAgICByZXR1cm4gJ1NvcnJ5Li4uIHlvdSBjYW5ub3QgdXBncmFkZSBmcm9tIGEgdmVyc2lvbiBwcmlvciB0byAxLjIzLnguICBQbGVhc2UgdXBncmFkZSB0byB0aGF0IHZlcnNpb24gZmlyc3QnOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcxLjI0JykgPCAwICkgewogICAgLy8gY29udmVydCB0ZW1wbGF0ZXMgaW50byBmaWxlcwoKICAgICRjcmVhdGVfdGVtcGxhdGVfZmlsZXNfZnJvbV9kYXRhYmFzZSA9IGZ1bmN0aW9uKHN0cmluZyAkcHJlZml4KSB7CiAgICAgICAgJGxpc3QgPSAkdGhpcy0+TGlzdFRlbXBsYXRlc1dpdGhQcmVmaXgoJHByZWZpeCk7CiAgICAgICAgaWYoIGVtcHR5KCRsaXN0KSApIHJldHVybjsKCiAgICAgICAgJGNvbmZpZyA9ICR0aGlzLT5HZXRDb25maWcoKTsKICAgICAgICAkZGlyID0gJGNvbmZpZ1snYXNzZXRzX3BhdGgnXS4nL21vZHVsZV9jdXN0b20vJy4kdGhpcy0+R2V0TmFtZSgpLicvdGVtcGxhdGVzJzsKICAgICAgICBpZiggIWlzX2RpcigkZGlyKSApIHsKICAgICAgICAgICAgJHJlcyA9IG1rZGlyKCRkaXIsMDc1NSxUUlVFKTsKICAgICAgICAgICAgaWYoICEkcmVzICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCdDYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAnLiRkaXIpOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoKCAkbGlzdCBhcyAkbmFtZSApIHsKICAgICAgICAgICAgJG91dGZpbGUgPSAkZGlyLicvJy4kbmFtZS4nLnRwbCc7CiAgICAgICAgICAgICRzcmMgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJG5hbWUpOwogICAgICAgICAgICBmaWxlX3B1dF9jb250ZW50cygkb3V0ZmlsZSwgJHNyYyk7CiAgICAgICAgfQogICAgfTsKCiAgICAvLyBzdW1tYXJ5IHRlbXBsYXRlcwogICAgJGNyZWF0ZV90ZW1wbGF0ZV9maWxlc19mcm9tX2RhdGFiYXNlKCdzdW1tYXJ5XycpOwogICAgLy8gZGV0YWlsIHRlbXBsYXRlcwogICAgJGNyZWF0ZV90ZW1wbGF0ZV9maWxlc19mcm9tX2RhdGFiYXNlKCdkZXRhaWxfJyk7CiAgICAvLyBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlcwogICAgJGNyZWF0ZV90ZW1wbGF0ZV9maWxlc19mcm9tX2RhdGFiYXNlKCdjYXRlZ29yeWxpc3RfJyk7CiAgICAvLyBoaWVyYXJjaHkgbGlzdCB0ZW1wbGF0ZXMKICAgICRjcmVhdGVfdGVtcGxhdGVfZmlsZXNfZnJvbV9kYXRhYmFzZSgnaGllcmxpc3RfJyk7CiAgICAvLyBhYmNsaXN0CiAgICAkY3JlYXRlX3RlbXBsYXRlX2ZpbGVzX2Zyb21fZGF0YWJhc2UoJ2FiY2xpc3RfJyk7CiAgICAvLyBzZWFyY2gKICAgICRjcmVhdGVfdGVtcGxhdGVfZmlsZXNfZnJvbV9kYXRhYmFzZSgnbmV3c2VhcmNoXycpOwogICAgLy8gc3RhdHNzdW1tYXJ5CiAgICAkY3JlYXRlX3RlbXBsYXRlX2ZpbGVzX2Zyb21fZGF0YWJhc2UoJ3N0YXRzc3VtbWFyeV8nKTsKICAgIC8vIGZyb250ZW5kZm9ybQogICAgJGNyZWF0ZV90ZW1wbGF0ZV9maWxlc19mcm9tX2RhdGFiYXNlKCdmcm9udGVuZGZvcm1fJyk7CiAgICAvLyBmcm9udGVuZGxpc3QKICAgICRjcmVhdGVfdGVtcGxhdGVfZmlsZXNfZnJvbV9kYXRhYmFzZSgnZnJvbnRlbmRsaXN0XycpOwogICAgLy8gZnJvbnRlbmRpbXBvcnQKICAgICRjcmVhdGVfdGVtcGxhdGVfZmlsZXNfZnJvbV9kYXRhYmFzZSgnZnJvbnRlbmRhbGJ1bV8nKTsKCiAgICAkc3JjID0gJHRoaXMtPkdldFRlbXBsYXRlKENPTVBBTllESVJfRlJPTlRFTkRJTVBPUlRfVEVNUExBVEUpOwogICAgZmlsZV9wdXRfY29udGVudHMoJHRoaXMtPmNvbmZpZ1snYXNzZXRzX3BhdGgnXS4nL21vZHVsZV9jdXN0b20vJy4kdGhpcy0+R2V0TmFtZSgpLicvdGVtcGxhdGVzL2Zyb250ZW5kX2ltcG9ydC50cGwnLCAkc3JjKTsKCiAgICAvLyB0b2RvOiBjb252ZXJ0IHByZWZlcmVuY2VzIGludG8gL2Fzc2V0cy9jb25maWdzL2NvbXBhbnlkaXJlY3RvcnkuanNvbgogICAgJGFyciA9IFsKICAgICAgICAndXJsX3JlcXVpcmVkJyA9PiAoYm9vbCkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybF9yZXF1aXJlZCcpLAogICAgICAgICd1cmxfYXV0b2NyZWF0ZScgPT4gKGJvb2wpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxfYXV0b2NyZWF0ZScpLAogICAgICAgICdkZXRhaWxwYWdlJyA9PiAoaW50KSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpLAogICAgICAgICdzb3J0b3JkZXInID0+IHRyaW0oJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NvcnRvcmRlcicpKSwKICAgICAgICAnc29ydGJ5JyA9PiB0cmltKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknKSksCiAgICAgICAgJ2FsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXMnID0+IChib29sKSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dfZHVwbGljYXRlX2NvbXBhbnluYW1lcycpLAogICAgICAgICdhbGxvd19leHBpcmVkX293bmVycycgPT4gKGJvb2wpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9zaG93ZXhwaXJlZCcpLAogICAgICAgICdhZG1pbnd5c2l3eWcnID0+IChib29sKSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRtaW53eXNpd3lnJyksCiAgICAgICAgJ2Zyb250ZW5kX2NyZWF0ZScgPT4gKGJvb2wpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZGNyZWF0ZScpLAogICAgICAgICdmcm9udGVuZF9kZWxldGUnID0+IChib29sKSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRkZWxldGUnKSwKICAgICAgICAnZnJvbnRlbmRfaW1wb3J0JyA9PiAoYm9vbCkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kaW1wb3J0JyksCiAgICAgICAgJ2Zyb250ZW5kX251bXJlY29yZHMnID0+IChpbnQpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZG51bXJlY29yZHMnKSwKICAgICAgICAnZnJvbnRlbmRfbmV3c3RhdHVzJyA9PiB0cmltKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZG5ld3N0YXR1cycpKSwKICAgICAgICAnZnJvbnRlbmRfY2hhbmdlc3RhdHVzJyA9PiAoYm9vbCkgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Zyb250ZW5kY2hhbmdlc3RhdHVzJyksCiAgICAgICAgJ2Zyb250ZW5kX2VtYWlsb25hZGQnID0+IChib29sKSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZnJvbnRlbmRfZW1haWxvbmFkZCcpLAogICAgICAgICdmcm9udGVuZF9lbWFpbG9uZWRpdCcgPT4gKGJvb2wpICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbG9uZWRpdCcpLAogICAgICAgICdmcm9udGVuZF9lbWFpbGdyb3VwJyA9PiB0cmltKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdmcm9udGVuZF9lbWFpbGdyb3VwJykpCiAgICAgICAgXTsKICAgICRmaWxlID0gJHRoaXMtPmNvbmZpZ1snYXNzZXRzX3BhdGgnXS4nL2NvbmZpZ3MvJy4kdGhpcy0+R2V0TmFtZSgpLicuanNvbic7CiAgICAkZGlyID0gZGlybmFtZSgkZmlsZSk7CiAgICBpZiggIWlzX2RpcigkZGlyKSApIHsKICAgICAgICAkcmVzID0gbWtkaXIoJGRpciwwNzU1LHRydWUpOwogICAgICAgIGlmKCAhJHJlcyApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignQ2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJy4kcmVzKTsKICAgIH0KICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCBqc29uX2VuY29kZSgkYXJyLCBKU09OX1BSRVRUWV9QUklOVCkpOwoKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9mbGRfcHVibGljJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jb21wZGlyX2ZpZWxkZGVmcycsJ3B1YmxpYycpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfY29tcF9sYXRsbmcnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJywnbGF0aXR1ZGUsIGxvbmdpdHVkZScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgIC8vIHRvZG86IHNvbWV0aW1lIGxhdGVyIGRlbGV0ZSBhbGwgdGVtcGxhdGVzIGFuZCBwcmVmZXJlbmNlcy4KfQoKaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMS45MDInKSA8IDAgKSB7CiAgICAkZGIgPSAkdGhpcy0+Z2V0X2V4dGVuZGVkX2RiKCk7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgogICAgLy8gdG9kbzogaWYgZmV1IGlzIGZvdW5kIG1ha2Ugc3VyZSB0aGF0IGl0cyBhYm92ZSB2ZXJzaW9uIDIuMAogICAgLy8gc2V0IHNvbWUgZmllbGRzIHRvIG5vdG51bGwgaW4gc29tZSBjb2x1bW5zCiAgICAkc3FsYXJyID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcycsICdjb21wYW55X25hbWUgQygyNTUpIE5PVE5VTEwsIHN0YXR1cyBDKDI1NSkgTk9UTlVMTCcpOwogICAgJGRpY3QtPkV4ZWN1dGVTUWxBcnJheSgkc3FsYXJyKTsKCiAgICAkc3FsYXJyID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSBDKDI1NSkgTk9UTlVMTCwgcGFyZW50X2lkIEkgTk9UTlVMTCwgaXRlbV9vcmRlciBJIE5PVE5VTEwsIGhpZXJhcmNoeSBDKDI1NSkgTk9UTlVMTCwgbG9uZ19uYW1lIFggTk9UTlVMTCcpOwogICAgJGRpY3QtPkV4ZWN1dGVTUWxBcnJheSgkc3FsYXJyKTsKCiAgICAkc3FsYXJyID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wYW55X2lkIEkgS0VZIE5PVE5VTEwsIGNhdGVnb3J5X2lkIEkgS0VZIE5PVE5VTEwnKTsKICAgICRkaWN0LT5FeGVjdXRlU1FsQXJyYXkoJHNxbGFycik7CgogICAgJHNxbGFyciA9ICRkaWN0LT5BbHRlckNvbHVtblNRTChDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCAnbmFtZSBDKDI1NSkgTk9UTlVMTCwgdHlwZSBDKDUwKSBOT1ROVUxMLCBpdGVtX29yZGVyIEkgTk9UTlVMTCcpOwogICAgJGRpY3QtPkV4ZWN1dGVTUWxBcnJheSgkc3FsYXJyKTsKCiAgICAkc3FsYXJyID0gJGRpY3QtPkFsdGVyQ29sdW1uU1FMKENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscycsICdjb21wYW55X2lkIEkgS0VZIE5PVE5VTEwsIGNhdGVnb3J5X2lkIEkgS0VZIE5PVE5VTEwnKTsKICAgICRkaWN0LT5FeGVjdXRlU1FsQXJyYXkoJHNxbGFycik7CgogICAgJHNxbGFyciA9ICRkaWN0LT5BbHRlckNvbHVtblNRTChDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9oaWVyJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUgQygyNTUpIE5PVE5VTEwsIHBhcmVudF9pZCBJIE5PVE5VTEwsIGlvcmRlciBJIE5PVE5VTEwsIGhpZXJhcmNoeSBDKDI1NSkgTk9UTlVMTCwgbG9uZ19uYW1lIFggTk9UTlVMTCcpOwogICAgJGRpY3QtPkV4ZWN1dGVTUWxBcnJheSgkc3FsYXJyKTsKCiAgICAvLyBtaWdyYXRlIHRvIElubm9EQgogICAgJHRhYmxlcyA9IG51bGw7CiAgICAkdGFibGVzW10gPSBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9oaWVyJzsKICAgICR0YWJsZXNbXSA9IENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMnOwogICAgJHRhYmxlc1tdID0gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGRkZWZzJzsKICAgICR0YWJsZXNbXSA9IENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyc7CiAgICAkdGFibGVzW10gPSBDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMnOwogICAgJHRhYmxlc1tdID0gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzJzsKICAgICRzcWxfaSA9ICdBTFRFUiBUQUJMRSAlcyBFTkdJTkU9SW5ub0RCJzsKICAgIGZvcmVhY2goICR0YWJsZXMgYXMgJG9uZSApIHsKICAgICAgICAkc3FsID0gc3ByaW50Zigkc3FsX2ksICRvbmUpOwogICAgICAgICRkYi0+RXhlY3V0ZSgkc3FsKTsKICAgIH0KCiAgICAkZGItPkJlZ2luVHJhbnMoKTsKCiAgICAvLyBjbGVhbiB1cCBhbGwgb2YgdGhlIGNvbXBhbnlfY2F0ZWdvcmllcyB0aGF0IGFyZSBub3QgaW4gY2F0ZWdvcmllcwogICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NhdGVnb3JpZXMgT1JERVIgQlkgaGllcmFyY2h5JzsKICAgICRsaXN0ID0gJGRiLT5HZXRDb2woJHNxbCk7CiAgICBpZiggIWVtcHR5KCRsaXN0KSApIHsKICAgICAgICAkbGlzdCA9IGFycmF5X21hcChmdW5jdGlvbigkaWQpewogICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpICRpZDsKICAgICAgICAgICAgfSwgJGxpc3QpOwogICAgICAgICRzdHIgPSBpbXBsb2RlKCcsJywkbGlzdCk7CiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBXSEVSRSBjYXRlZ29yeV9pZCBOT1QgSU4gKCcuJHN0ci4nKSc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgfQoKICAgIC8vIGNsZWFuIHVwIGFsbCBvZiB0aGUgY29tcGFueSBjYXRlZ29yaWVzIHRoYXQgd2UgZG8gbm90IGhhdmUgY29tcGFuaWVzIGZvcgogICAgJGNvbXBhbnlfbGlzdCA9IG51bGw7CiAgICAkc3FsID0gJ1NFTEVDVCBESVNUSU5DVCBpZCBGUk9NICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzJzsKICAgICRsaXN0ID0gJGRiLT5HZXRjb2woJHNxbCk7CiAgICBpZiggIWVtcHR5KCRsaXN0KSApIHsKICAgICAgICAkY29tcGFueV9saXN0ID0gYXJyYXlfbWFwKGZ1bmN0aW9uKCRpZCl7CiAgICAgICAgICAgICAgICByZXR1cm4gKGludCkgJGlkOwogICAgICAgICAgICB9LCAkbGlzdCk7CiAgICAgICAgJHN0ciA9IGltcGxvZGUoJywnLCRjb21wYW55X2xpc3QpOwogICAgICAgICRzcWwgPSAnU0VMRUNUIGNhdGVnb3J5X2lkIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW55X2NhdGVnb3JpZXMgV0hFUkUgY29tcGFueV9pZCBOT1QgSU4gKCcuJHN0ci4nKSc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgfQoKICAgIC8vIGNsZWFuIHVwIGFsbCBvZiB0aGUgZmllbGR2YWxzIHRoYXQgYXJlIG5vdCBpbiBmaWVsZGRlZnMKICAgICRzcWwgPSAnU0VMRUNUIGlkIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnOwogICAgJGxpc3QgPSAkZGItPkdldENvbCgkc3FsKTsKICAgIGlmKCAhZW1wdHkoJGxpc3QpICkgewogICAgICAgICRsaXN0ID0gYXJyYXlfbWFwKGZ1bmN0aW9uKCRpZCl7CiAgICAgICAgICAgICAgICByZXR1cm4gKGludCkgJGlkOwogICAgICAgICAgICB9LCAkbGlzdCk7CiAgICAgICAgJHN0ciA9IGltcGxvZGUoJywnLCRsaXN0KTsKICAgICAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIFdIRVJFIGZpZWxkZGVmX2lkIE5PVCBJTiAoJy4kc3RyLicpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICB9CgogICAgLy8gY2xlYW4gdXAgYWxsIG9mIHRoZSBmaWVsZHZhbHMgdGhhdCBhcmUgbm90IHdpdGggY29tcGFuaWVzCiAgICBpZiggIWVtcHR5KCRjb21wYW55X2xpc3QpICkgewogICAgICAgICRzdHIgPSBpbXBsb2RlKCcsJywgJGNvbXBhbnlfbGlzdCk7CiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2ZpZWxkdmFscyBXSEVSRSBjb21wYW55X2lkIE5PVCBJTiAoJy4kc3RyLicpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICB9CgogICAgLy8gY2xlYW4gdXAgYWxsIG9mIHRoZSBjb21wYW5pZXMgdGhhdCBoYXZlIGludmFsaWQgaGllcnMKICAgICRzcWwgPSAnU0VMRUNUIGlkIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9oaWVyJzsKICAgICRsaXN0ID0gJGRiLT5HZXRDb2woJHNxbCk7CiAgICBpZiggIWVtcHR5KCRsaXN0KSApIHsKICAgICAgICAkbGlzdCA9IGFycmF5X21hcChmdW5jdGlvbigkaWQpewogICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpICRpZDsKICAgICAgICAgICAgfSwgJGxpc3QpOwogICAgICAgICRzdHIgPSBpbXBsb2RlKCcsJywkbGlzdCk7CiAgICAgICAgJHNxbCA9ICdVUERBVEUgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUIGhpZXJfaWQgPSBOVUxMIFdIRVJFIGhpZXJfaWQgPiAwIEFORCBoaWVyX2lkIE5PVCBJTiAoJy4kc3RyLicpJzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICB9CgogICAgLy8gY2xlYW4gdXAgYWxsIG9mIHRoZSBjb21wYW5pZXMgdGhhdCB3ZSBkbyBub3QgaGF2ZSBhIHZhbGlkIG93bmVyIGZvciAoaWYgd2UgaGF2ZSApCiAgICAkZmV1ID0gJHRoaXMtPmNtcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKCAhJGZldSApIHsKICAgICAgICAkc3FsID0gJ1VQREFURSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyBTRVQgb3duZXJfaWQgPSBOVUxMIFdIRVJFIG93bmVyX2lkID4gMCc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgfSBlbHNlIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCBGUk9NICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2ZldXNlcnNfdXNlcnMnOwogICAgICAgICRsaXN0ID0gJGRiLT5HZXRDb2woJHNxbCk7CiAgICAgICAgaWYoICFlbXB0eSgkbGlzdCkgKSB7CiAgICAgICAgICAgICRsaXN0ID0gYXJyYXlfbWFwKGZ1bmN0aW9uKCRpZCl7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChpbnQpICRpZDsKICAgICAgICAgICAgICAgIH0sICRsaXN0KTsKICAgICAgICAgICAgJHN0ciA9IGltcGxvZGUoJywnLCRsaXN0KTsKICAgICAgICAgICAgJHNxbCA9ICdVUERBVEUgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgU0VUIG93bmVyX2lkID0gTlVMTCBXSEVSRSBvd25lcl9pZCA+IDAgQU5EIG93bmVyX2lkIE5PVCBJTiAoJy4kc3RyLicpJzsKICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgIH0KICAgIH0KCiAgICAkZGItPkNvbW1pdFRyYW5zKCk7CgogICAgLy8gY3JlYXRlIG5ldyBpbmRleGVzCiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NvbXBkaXJfY29tcGNhdDInLENNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcycsJ2NhdGVnb3J5X2lkLGNvbXBhbnlfaWQnLCBbJ1VOSVFVRSddKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2NvbXBkaXJfZmllbGRkZWYyJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMyJywnbmFtZScsIFsnVU5JUVVFJ10pOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnY2RfY29tcF91cmwyJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMnLCAndXJsJywgWydVTklRVUUnXSk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdjZF9mbGRfb3JkZXIyJyxDTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMnLCdpdGVtX29yZGVyJywgWydVTklRVUUnXSk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKICAgIC8vIGNyZWF0ZSBmb3JlaWduIGtleSByZWxhdGlvbnNoaXBzCiAgICAkc3FsID0gJ0FMVEVSIFRBQkxFICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFuaWVzIEFERCBGT1JFSUdOIEtFWSAoaGllcl9pZCkgUkVGRVJFTkNFUyAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2hpZXIgKGlkKSc7CiAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAkc3FsID0gJ0FMVEVSIFRBQkxFICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfY29tcGFueV9jYXRlZ29yaWVzIEFERCBGT1JFSUdOIEtFWSAoY2F0ZWdvcnlfaWQpIFJFRkVSRU5DRVMgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jYXRlZ29yaWVzIChpZCknOwogICAgJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgJHNxbCA9ICdBTFRFUiBUQUJMRSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbnlfY2F0ZWdvcmllcyBBREQgRk9SRUlHTiBLRVkgKGNvbXBhbnlfaWQpIFJFRkVSRU5DRVMgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9jb21wYW5pZXMgKGlkKSc7CiAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAkc3FsID0gJ0FMVEVSIFRBQkxFICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIEFERCBGT1JFSUdOIEtFWSAoZmllbGRkZWZfaWQpIFJFRkVSRU5DRVMgJy5DTVNfREJfUFJFRklYLidtb2R1bGVfY29tcGRpcl9maWVsZGRlZnMgKGlkKSc7CiAgICAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAkc3FsID0gJ0FMVEVSIFRBQkxFICcuQ01TX0RCX1BSRUZJWC4nbW9kdWxlX2NvbXBkaXJfZmllbGR2YWxzIEFERCBGT1JFSUdOIEtFWSAoY29tcGFueV9pZCkgUkVGRVJFTkNFUyAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9jb21wZGlyX2NvbXBhbmllcyAoaWQpJzsKICAgICRkYi0+RXhlY3V0ZSgkc3FsKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9ICJDb21wYW55RGlyZWN0b3J5Igp2ZXJzaW9uID0gMS45MDIKYXV0aG9yID0gImNhbGd1eTEwMDAiCmF1dGhvcmVtYWlsID0gImNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciCm1pbmNtc3ZlcnNpb24gPSAiMi4yLjEwIgpsYXp5bG9hZGFkbWluID0gMApsYXp5bG9hZGZyb250ZW5kID0gMApbZGVwZW5kc10KQ0dFeHRlbnNpb25zID0gMS42NApDR1NpbXBsZVNtYXJ0eSA9IDEuOQpKUXVlcnlUb29scyA9IDEuNApDR1NtYXJ0SW1hZ2UgPSAxLjIxCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/.#editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/.#editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/admin_ajax_get_album.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHNjb3BlZD4KdWwuY29tcGFueV9hbGJ1bSB7CiAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZSAhaW1wb3J0YW50OwogICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7Cn0KdWwuY29tcGFueV9hbGJ1bSBsaSB7CiAgIHBhZGRpbmc6IDAuNWVtOwogICBtYXJnaW46IDAuNWVtOwogICBkaXNwbGF5OiBibG9jazsKICAgaGVpZ2h0OiA4MHB4OwogICB3aWR0aDogMzAlOwogICBmbG9hdDogbGVmdDsKICAgYm9yZGVyOiAxcHggc29saWQgZ3JlZW47Cn0KdWwuY29tcGFueV9hbGJ1bSBhW2RhdGEtZGVsZXRlXSB7CiAgIG1hcmdpbi1yaWdodDogMC41ZW07Cn0KdWwuY29tcGFueV9hbGJ1bSBsaSBzcGFuIHsKICAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50OwogICBtYXJnaW4tbGVmdDogMC41ZW07Cn0KdWwuY29tcGFueV9hbGJ1bSBsaSBpbWcgewogICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7Cn0KPC9zdHlsZT4KCntpZiAhZW1wdHkoJGRhdGEpfQo8dWwgY2xhc3M9ImNvbXBhbnlfYWxidW0iPgogICAge2ZvcmVhY2ggJGRhdGEgYXMgJG9uZX0KICAgICAgIDxsaSBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iIGRhdGEtbmFtZT0ieyRvbmV9Ij4KICAgICAgICAgICA8ZGl2PgoJICAgICAgIDxhIGRhdGEtZGVsZXRlIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9Ij57YWRtaW5faWNvbiBpY29uPSdkZWxldGUuZ2lmJ308L2E+CiAgICAgICAgICAgICAgIDxpbWcgc3JjPSJ7JHVybF9iYXNlfS97JG9uZX0iIGFsdD0ieyRvbmV9IiBoZWlnaHQ9Ijc1Ij4KICAgICAgICAgICAgICAgPHNwYW4+eyRvbmV9PC9zcGFuPgoJICAgPC9kaXY+CiAgICAgICA8L2xpPgogICAgey9mb3JlYWNofQo8L3VsPgp7ZWxzZX0KICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdub19hbGJ1bV9pbWFnZXMnKX08L2Rpdj4Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_categories_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKe2lmICFpc3NldCgkYWN0aW9ucGFyYW1zLmFqYXgpfQo8c2NyaXB0PgokKGZ1bmN0aW9uKCl7CiAgJCgnYS5kZWxfY2F0JykuY2xpY2soZnVuY3Rpb24oZSkgewogICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhcmV5b3VzdXJlJyl9Jyk7CiAgfSk7CiAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9pbmZvLCNyZW9yZGVyX2NhdGVnb3J5X29wdHMnKS5oaWRlKCk7CgogICQoJ2EjcmVvcmRlcl9jYXRlZ29yeV9tb2RlX2NhbmNlbCcpLmNsaWNrKGZ1bmN0aW9uKGUpIHsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfaW5mbywjcmVvcmRlcl9jYXRlZ29yeV9vcHRzJykudG9nZ2xlKCk7CiAgICAkKCdkaXYjY2F0bGlzdF9vcHRzJykudG9nZ2xlKCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0IHNwYW4ucmVwZWF0ZWQnKS5zaG93KCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0IGRpdi5oaWVyaWNvbicpLnNob3coKTsKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3QgdWwnKS5hZGRDbGFzcygnbm9pbmRlbnQnKTsKCiAgICB2YXIgdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2NhdGVnb3JpZXNfdGFiIGFqYXg9MSB1cmxvbmx5PTEganNmcmllbmRseT0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCcpLmxvYWQodXJsKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnYSNyZW9yZGVyX2NhdGVnb3J5X21vZGVfc3VibWl0JykuY2xpY2soZnVuY3Rpb24oZSkgewogICAgJCgnI3Jlb3JkZXJfY2F0ZWdvcnlfbW9kZV9pbmZvLCNyZW9yZGVyX2NhdGVnb3J5X29wdHMnKS50b2dnbGUoKTsKICAgICQoJ2RpdiNjYXRsaXN0X29wdHMnKS50b2dnbGUoKTsKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3Qgc3Bhbi5yZXBlYXRlZCcpLnNob3coKTsKICAgICQoJ2RpdiNjYXRlZ29yeWxpc3QgZGl2LmhpZXJpY29uJykuc2hvdygpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCB1bCcpLmFkZENsYXNzKCdub2luZGVudCcpOwoKICAgIHZhciBsaXN0ID0gJCgnZGl2I2NhdGVnb3J5bGlzdCA+IHVsJykubmVzdGVkU29ydGFibGUoJ3NlcmlhbGl6ZScpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCA+IHVsJykubmVzdGVkU29ydGFibGUoJ2Rlc3Ryb3knKTsKICAgIHZhciB1cmwgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fYWpheF9jYXRlZ29yeW9yZGVyIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAkLnBvc3QodXJsLGxpc3QsCiAgICAgIGZ1bmN0aW9uKGRhdGEsdGV4dFN0YXR1cyxqcVhIUikgewogICAgICAgIHZhciB1cmwgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fY2F0ZWdvcmllc190YWIgYWpheD0xIHVybG9ubHk9MSBqc2ZyaWVuZGx5PTF9JnNob3d0ZW1wbGF0ZT1mYWxzZSc7CiAgICAgICAgJCgnZGl2I2NhdGVnb3J5bGlzdCcpLmxvYWQodXJsKTsKICAgICAgfQogICAgKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnYSNyZW9yZGVyX2NhdGVnb3J5X21vZGUnKS5jbGljayhmdW5jdGlvbihlKXsKICAgICQoJyNyZW9yZGVyX2NhdGVnb3J5X21vZGVfaW5mbywjcmVvcmRlcl9jYXRlZ29yeV9vcHRzJykudG9nZ2xlKCk7CgogICAgJCgnZGl2I2NhdGxpc3Rfb3B0cycpLnRvZ2dsZSgpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCBzcGFuLnJlcGVhdGVkJykuaGlkZSgpOwogICAgJCgnZGl2I2NhdGVnb3J5bGlzdCBkaXYuaGllcmljb24nKS5oaWRlKCk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0IHVsJykucmVtb3ZlQ2xhc3MoJ25vaW5kZW50Jyk7CiAgICAkKCdkaXYjY2F0ZWdvcnlsaXN0ID4gdWwnKS5uZXN0ZWRTb3J0YWJsZSh7CiAgICAgIGRpc2FibGVOZXN0aW5nOiAnbm8tbmVzdCcsCiAgICAgIGZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlLAogICAgICBoYW5kbGU6ICdkaXYnLAogICAgICBpdGVtczogJ2xpJywKICAgICAgb3BhY2l0eTogLjYsCiAgICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXInLAogICAgICB0YWJTaXplOiAyMCwKICAgICAgdG9sZXJhbmNlOiAncG9pbnRlcicsCiAgICAgIGxpc3RUeXBlOiAndWwnLAogICAgICB0b2xlcmFuY2VFbGVtZW50OiAnPiBkaXYnCiAgICB9KTsKICB9KTsKfSk7Cjwvc2NyaXB0PgoKPGRpdiBpZD0icmVvcmRlcl9jYXRlZ29yeV9tb2RlX2luZm8iIGNsYXNzPSJpbmZvcm1hdGlvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPkxhbmcoJ3Jlb3JkZXJfbW9kZScpfTwvZGl2Pgo8ZGl2IGlkPSJyZW9yZGVyX2NhdGVnb3J5X29wdHMiIGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPGEgaWQ9InJlb3JkZXJfY2F0ZWdvcnlfbW9kZV9jYW5jZWwiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0nZmFsc2UuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnY2FuY2VsJyl9IHskbW9kLT5MYW5nKCdjYW5jZWwnKX08L2E+Jm5ic3A7CiAgPGEgaWQ9InJlb3JkZXJfY2F0ZWdvcnlfbW9kZV9zdWJtaXQiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0ndHJ1ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdzdWJtaXQnKX0geyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYT4KPC9kaXY+CjxkaXYgaWQ9ImNhdGxpc3Rfb3B0cyIgY2xhc3M9InBhZ2VvcHRpb25zIj4KICA8YSBpZD0iYWRkX2NhdGVnb3J5IiBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VkaXRfY2F0ZWdvcnl9Ij57YWRtaW5faWNvbiBpY29uPSduZXdvYmplY3QuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZGNhdGVnb3J5Jyl9PC9hPgogIHtpZiBpc3NldCgkY2F0ZWdvcmllcyl9CiAgPGEgaWQ9InJlb3JkZXJfY2F0ZWdvcnlfbW9kZSI+e2NnaW1hZ2UgY2xhc3M9InN5c3RlbWljb24iIGltYWdlPSdpY29ucy9zeXN0ZW0vcmVvcmRlci5naWYnIGFsdD0kbW9kLT5MYW5nKCdyZW9yZGVyJyl9IHskbW9kLT5MYW5nKCdyZW9yZGVyJyl9PC9hPgogIHsvaWZ9CjwvZGl2Pgp7L2lmfSB7KiBhamF4ICp9Cgp7aWYgaXNzZXQoJGNhdGVnb3JpZXMpfQp7ZnVuY3Rpb24gZG9jYXR9Cjx1bCBjbGFzcz0ibm9pbmRlbnQiPgogIHtmb3JlYWNoICRsaXN0IGFzICRub2RlfQogICAge2Ntc19hY3Rpb25fdXJsIG1vZHVsZT1Db21wYW55RGlyZWN0b3J5IGFjdGlvbj1hZG1pbl9lZGl0X2NhdGVnb3J5IGNhdGlkPSRub2RlLT5pZCBhc3NpZ249J2VkaXRfdXJsJ30KICAgIHtjbXNfYWN0aW9uX3VybCBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fZGVsX2NhdGVnb3J5IGNhdGlkPSRub2RlLT5pZCBhc3NpZ249J2RlbGV0ZV91cmwnfQogICAgPGxpIGlkPSJ7JGFjdGlvbmlkfWNhdF97JG5vZGUtPmlkfSI+CiAgICAgIHtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CiAgICAgIDxkaXYgY2xhc3M9ImxhYmVsIGhpZXJub2RlIHskcm93Y2xhc3N9Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJoaWVyaWQiPgoJICAgPHNwYW4+eyRub2RlLT5pZH08L3NwYW4+Cgk8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJoaWVybmFtZSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0icmVwZWF0ZWQiPntyZXBlYXQgc3RyaW5nPScmbmJzcDsmZ3Q7Jm5ic3A7JyB0aW1lcz0kbm9kZS0+ZGVwdGh9PC9zcGFuPjxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskbm9kZS0+bmFtZX08L2E+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iaGllcmljb24iPgogICAgICAgICAgPGEgaHJlZj0ieyRlZGl0X3VybH0iIGNsYXNzPSJlZGl0X2NhdCIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57YWRtaW5faWNvbiBpY29uPSdlZGl0LmdpZid9PC9hPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImhpZXJpY29uIj4KCSAge2lmICEkbm9kZS0+Y2hpbGRyZW59CiAgICAgICAgICA8YSBocmVmPSJ7JGRlbGV0ZV91cmx9IiBjbGFzcz0iZGVsX2NhdCIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYT4KCSAgey9pZn0KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIHtpZiAkbm9kZS0+Y2hpbGRyZW59e2RvY2F0IGxpc3Q9JG5vZGUtPmNoaWxkcmVufXsvaWZ9CiAgICA8L2xpPgogIHsvZm9yZWFjaH0KPC91bD4Key9mdW5jdGlvbn0KCjxkaXYgaWQ9ImNhdGVnb3J5bGlzdCIgY2xhc3M9ImhpZXJsaXN0IGNmIj4KICB7ZG9jYXQgbGlzdD0kY2F0ZWdvcmllc30KPC9kaXY+CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_companies_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHNjb3BlZD4KI2NvbXBhbnlmaWx0ZXIgewogICBkaXNwbGF5OiBub25lOwp9CiNidWxrem9uZSB7CiAgIGRpc3BsYXk6IG5vbmU7Cn0KZGl2LnBhZ2VvcHRpb25zIGEgewogICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Cjwvc3R5bGU+CjxzY3JpcHQ+CiQoZnVuY3Rpb24oKXsKICAgICQoJyNzZWxfYWxsJykuY2xpY2soZnVuY3Rpb24oKXsKICAgICAgIGxldCBjaGVja2VkID0gJCh0aGlzKS5pcygnOmNoZWNrZWQnKQogICAgICAgJCgnaW5wdXQuYnVsaycpLnByb3AoJ2NoZWNrZWQnLGNoZWNrZWQpCiAgICAgICBpZiggY2hlY2tlZCApIHsKICAgICAgICAgICAkKCcjYnVsa3pvbmUnKS5zaG93KCkKICAgICAgIH0gZWxzZSB7CgkgICAkKCcjYnVsa3pvbmUnKS5oaWRlKCkKICAgICAgIH0KICAgIH0pCiAgICAkKCdpbnB1dC5idWxrJykuY2xpY2soZnVuY3Rpb24oKXsKICAgICAgIGxldCBsZW4gPSAkKCdpbnB1dC5idWxrJykubGVuZ3RoCiAgICAgICBsZXQgY2hlY2tlZCA9ICQoJ2lucHV0LmJ1bGs6Y2hlY2tlZCcpLmxlbmd0aAogICAgICAgaWYoIGxlbiA9PSBjaGVja2VkICkgewogICAgICAgICAgICQoJyNzZWxfYWxsJykucHJvcCgnY2hlY2tlZCcsdHJ1ZSkKCSAgICQoJyNidWxrem9uZScpLnNob3coKQogICAgICAgfSBlbHNlIGlmKCBjaGVja2VkID09IDAgKSB7CiAgICAgICAgICAgJCgnI3NlbF9hbGwnKS5wcm9wKCdjaGVja2VkJyxmYWxzZSkKCSAgICQoJyNidWxrem9uZScpLmhpZGUoKQogICAgICAgfSBlbHNlIHsKICAgICAgICAgICAkKCcjc2VsX2FsbCcpLnByb3AoJ2NoZWNrZWQnLGZhbHNlKQogICAgICAgICAgICQoJyNidWxrem9uZScpLnNob3coKQogICAgICAgfQogICAgfSkKICAgICQoJ1tuYW1lPWJ1bGtfc3VibWl0XScpLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgIGxldCBsZW4gPSAkKCdpbnB1dC5idWxrJykubGVuZ3RoCiAgICAgICBpZiggbGVuIDwgMSApIHJldHVybiBmYWxzZQogICAgICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjb25maXJtX2J1bGsnKX0nKQogICAgfSkKICAgICQoJyN0b2dnbGVfZmlsdGVyJykuY2xpY2soZnVuY3Rpb24oKXsKICAgICAgICQoJyNjb21wYW55ZmlsdGVyJykudG9nZ2xlKCkKICAgIH0pCiAgICAkKCdbbmFtZT1wYWdlXScpLmNoYW5nZShmdW5jdGlvbigpewogICAgICAgICQodGhpcykuY2xvc2VzdCgnZm9ybScpLnN1Ym1pdCgpOwogICAgfSkKCiAgICAkKCdhLmRlbGNvbXBhbnknKS5jbGljayhmdW5jdGlvbihldil7CiAgICAgICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhcmV5b3VzdXJlJyl9JykKICAgIH0pCn0pCjwvc2NyaXB0PgoKPGZpZWxkc2V0IGlkPSJjb21wYW55ZmlsdGVyIj4KICAgICA8bGVnZW5kPnskbW9kLT5MYW5nKCdmaWx0ZXInKX08L2xlZ2VuZD4KICAgICB7Zm9ybV9zdGFydH0KICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgIAkgIDxkaXYgY2xhc3M9ImdyaWRfNiI+eyogbGVmdCAqfQoJICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnbmFtZScpfTo8L2xhYmVsPgoJCSAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CgkJICAgCTxpbnB1dCBjbGFzcz0iZ3JpZF8xMiIgdHlwZT0idGV4dCIgbmFtZT0iZmlsdGVyX2FuZDpuYW1lOkxJS0U6IiB2YWx1ZT0ieyRmaWx0ZXJbJ2FuZDpuYW1lOkxJS0U6J119Ii8+CgkJCTxwPnskbW9kLT5MYW5nKCdpbmZvX2ZpbHRlcl9uYW1lJyl9PC9wPgoJCSAgIDwvZGl2PgoJICAgICAgIDwvZGl2PgoJICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnYWRkcmVzcycpfTo8L2xhYmVsPgoJCSAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CgkJICAgCTxpbnB1dCBjbGFzcz0iZ3JpZF8xMiIgdHlwZT0idGV4dCIgbmFtZT0iZmlsdGVyX2FuZDphZGRyZXNzOkxJS0U6IiB2YWx1ZT0ieyRmaWx0ZXJbJ2FuZDphZGRyZXNzOkxJS0U6J119Ii8+CgkJCTxwPnskbW9kLT5MYW5nKCdpbmZvX2ZpbHRlcl9hZGRyZXNzJyl9PC9wPgoJCSAgIDwvZGl2PgoJICAgICAgIDwvZGl2PgoKCSAgICAgICB7aWYgIWVtcHR5KCRjYXRlZ29yaWVzKX0KCSAgICAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2NhdGVnb3J5Jyl9OjwvbGFiZWw+CgkJICAgCTxkaXYgY2xhc3M9ImdyaWRfOCI+CgkJICAgCSAgICA8c2VsZWN0IG5hbWU9ImZpbHRlcl9hbmQ6Y2F0ZWdvcnk6IiBjbGFzcz0iZ3JpZF8xMiI+CgkJCSAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yaWVzIHNlbGVjdGVkPSRmaWx0ZXJbJ2FuZDpjYXRlZ29yeTonXX0KCQkJICAgIDwvc2VsZWN0PgoJCSAgICAgICAgPC9kaXY+CgkgICAgICAgICAgIDwvZGl2PgoJICAgICAgIHsvaWZ9CgoJICAgICAgIHtpZiAhZW1wdHkoJGhpZXJhcmNoaWVzKX0KCSAgICAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L2xhYmVsPgoJCSAgIAk8ZGl2IGNsYXNzPSJncmlkXzgiPgoJCSAgIAkgICAgPHNlbGVjdCBuYW1lPSJmaWx0ZXJfYW5kOmhpZXI6IiBjbGFzcz0iZ3JpZF8xMiI+CgkJCSAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaGllcyBzZWxlY3RlZD0kZmlsdGVyWydhbmQ6aGllcjonXX0KCQkJICAgIDwvc2VsZWN0PgoJCSAgICAgICAgPC9kaXY+CgkgICAgICAgICAgIDwvZGl2PgoJICAgICAgIHsvaWZ9CiAgICAgICAgICA8L2Rpdj4KCgkgIDxkaXYgY2xhc3M9ImdyaWRfNSI+eyogcmlnaHQgKn0KCSAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3N0YXR1cycpfTo8L2xhYmVsPgoJCSAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CgkJICAgCTxzZWxlY3QgbmFtZT0iZmlsdGVyX2FuZDpzdGF0dXM6RVE6IiBjbGFzcz0iZ3JpZF8xMiI+CgkJCSAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHN0YXR1c2VzIHNlbGVjdGVkPSRmaWx0ZXJbJ2FuZDpzdGF0dXM6J118ZGVmYXVsdDpudWxsfQoJCQk8L3NlbGVjdD4KCQkgICA8L2Rpdj4KCSAgICAgICA8L2Rpdj4KCSAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3BhZ2VsaW1pdCcpfTo8L2xhYmVsPgoJCSAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CgkJICAgCTxzZWxlY3QgbmFtZT0iZmlsdGVyX2xpbWl0OiIgY2xhc3M9ImdyaWRfMTIiPgoJCQkgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRwYWdlbGltaXRzIHNlbGVjdGVkPSRmaWx0ZXJbJ2xpbWl0OiddfGRlZmF1bHQ6NTB9CgkJCTwvc2VsZWN0PgoJCSAgIDwvZGl2PgoJICAgICAgIDwvZGl2PgoJICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnc29ydGJ5Jyl9OjwvbGFiZWw+CgkJICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KCQkgICAJPHNlbGVjdCBuYW1lPSJmaWx0ZXJfc29ydGJ5OiIgY2xhc3M9ImdyaWRfMTIiPgoJCQkgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzb3J0aW5ncyBzZWxlY3RlZD0kZmlsdGVyWydzb3J0Ynk6J119CgkJCTwvc2VsZWN0PgoJCSAgIDwvZGl2PgoJICAgICAgIDwvZGl2PgoJICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnc29ydG9yZGVyJyl9OjwvbGFiZWw+CgkJICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KCQkgICAJPHNlbGVjdCBuYW1lPSJmaWx0ZXJfc29ydG9yZGVyOiIgY2xhc3M9ImdyaWRfMTIiPgoJCQkgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzb3J0b3JkZXJzIHNlbGVjdGVkPSRmaWx0ZXJbJ3NvcnRvcmRlcjonXX0KCQkJPC9zZWxlY3Q+CgkJICAgPC9kaXY+CgkgICAgICAgPC9kaXY+CgkgIDwvZGl2PgogICAgIDwvZGl2PgoKICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICAgPGJ1dHRvbiBuYW1lPSJmaWx0ZXJfc3VibWl0Ij57JG1vZC0+TGFuZygnc3VibWl0Jyl9PC9idXR0b24+CiAgICAgICAgICA8YnV0dG9uIG5hbWU9ImZpbHRlcl9yZXNldCI+eyRtb2QtPkxhbmcoJ3Jlc2V0Jyl9PC9idXR0b24+CiAgICAgPC9kaXY+CiAgICAge2Zvcm1fZW5kfQo8L2ZpZWxkc2V0PgoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogICAgIDxkaXYgc3R5bGU9ImZsb2F0OiBsZWZ0OyB3aWR0aDogNjAlOyI+CiAgICAgICAgIDxhIGlkPSJ0b2dnbGVfZmlsdGVyIj57YWRtaW5faWNvbiBpY29uPSdlZGl0LmdpZicgYWx0PScnfSB7JG1vZC0+TGFuZygnZWRpdF9maWx0ZXInKX0KICAgICAgICAgICAgIHtpZiAkZmlsdGVyX2FwcGxpZWR9PHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPih7JG1vZC0+TGFuZygnaW51c2UnKX0pPC9zcGFuPnsvaWZ9CiAgICAgICAgIDwvYT4KICAgICAgICAgPHNwYW4+fCB7JG1vZC0+TGFuZygnaW5mb19yZWNvcmRzX21hdGNoaW5nJywkaXRlbXMtPnRvdGFsKX0gfDwvc3Bhbj4KICAgICAgICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X2NvbXBhbnl9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2FkZGNvbXBhbnknKX0iPgogICAgICAgICAgICAge2FkbWluX2ljb24gaWNvbj0nbmV3b2JqZWN0LmdpZid9IHskbW9kLT5MYW5nKCdhZGRjb21wYW55Jyl9CiAgICAgICAgIDwvYT4KCiAgICAgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5faW1wb3J0X2ttbH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnaW1wb3J0X2ttbCcpfSI+CiAgICAgICAgICAgICB7YWRtaW5faWNvbiBpY29uPSdpbXBvcnQuZ2lmJ30geyRtb2QtPkxhbmcoJ2ltcG9ydF9rbWwnKX0KICAgICAgICAgPC9hPgogICAgICAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2ltcG9ydF9jc3Z9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2ltcG9ydGNzdicpfSI+CiAgICAgICAgICAgICB7YWRtaW5faWNvbiBpY29uPSdpbXBvcnQuZ2lmJ30geyRtb2QtPkxhbmcoJ2ltcG9ydGNzdicpfQogICAgICAgICA8L2E+CiAgICAgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZXhwb3J0X2Nzdn0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZXhwb3J0Y3N2Jyl9Ij4KICAgICAgICAgICAgIHthZG1pbl9pY29uIGljb249J2V4cG9ydC5naWYnfSB7JG1vZC0+TGFuZygnZXhwb3J0Y3N2Jyl9CiAgICAgICAgIDwvYT4KICAgICA8L2Rpdj4KCiAgICAge2lmICFlbXB0eSgkaXRlbXMpICYmICRpdGVtcy0+cGFnZWNvdW50ID4gMX0KICAgICA8ZGl2IHN0eWxlPSJmbG9hdDogcmlnaHQ7Ij4KICAgICAgICAge2Zvcm1fc3RhcnR9CiAgICAgICAgICAgIDxsYWJlbD57JG1vZC0+TGFuZygncGFnZScpfToKCSAgICAgICAgPHNlbGVjdCBuYW1lPSJwYWdlIj4KCQkgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRpdGVtcy0+cGFnZUFycmF5KCkgc2VsZWN0ZWQ9JGl0ZW1zLT5wYWdlfQoJCTwvc2VsZWN0PgoJICAgIDwvbGFiZWw+Cgkge2Zvcm1fZW5kfQogICAgIDwvZGl2PgogICAgIHsvaWZ9CjwvZGl2PgoKe2lmICFlbXB0eSgkaXRlbXMpfQoKICAgIHtmb3JtX3N0YXJ0IGFjdGlvbj1hZG1pbl9idWxrfQogICAgICAgIDx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIGNtc19zb3J0YWJsZSB0YWJsZXNvcnRlciI+CgkgICAgICAgPHRoZWFkPgoJICAgICAgICAgICAgPHRyPgoJCSAgICA8dGg+eyRtb2QtPkxhbmcoJ2lkJyl9PC90aD4KCQkgICAgPHRoPnskbW9kLT5MYW5nKCdjb21wYW55Jyl9PC90aD4KCQkgICAgPHRoPnskbW9kLT5MYW5nKCdvd25lcicpfTwvdGg+CgkJICAgIDx0aD57JG1vZC0+TGFuZygnd2Vic2l0ZScpfTwvdGg+CgkJICAgIDx0aD57JG1vZC0+TGFuZygndXJsJyl9PC90aD4KCQkgICAgPHRoPnskbW9kLT5MYW5nKCdzdGF0dXMnKX08L3RoPgoJCSAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57KiBlZGl0ICp9PC90aD4KCQkgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+eyogY29weSAqfTwvdGg+CgkJICAgIDx0aCBjbGFzcz0icGFnZWljb24iPnsqIGRlbGV0ZSAqfTwvdGg+CiAgCQkgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ic2VsX2FsbCIgdmFsdWU9Ii0xIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3NlbGVjdF9hbGwnKX0iLz48L3RoPgoJCSAgICA8L3RyPgoJICAgICAgIDwvdGhlYWQ+CgkgICAgICAgPHRib2R5PgoJCSAgICB7Zm9yZWFjaCAkaXRlbXMgYXMgJGl0ZW19CgkJICAgICAgICB7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VkaXRfY29tcGFueSBjb21waWQ9JGl0ZW0tPmlkIGFzc2lnbj1lZGl0X3VybH0KCQkgICAgICAgIDx0cj4KCQkJPHRkPnskaXRlbS0+aWR9PC90ZD4KCQkJPHRkPjxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskaXRlbS0+Y29tcGFueV9uYW1lfTwvYT48L3RkPgoJCQk8dGQ+e2lmICRpdGVtLT5vd25lcl9pZCA+IDAgJiYgaXNzZXQoJHVzZXJzWyRpdGVtLT5vd25lcl9pZF0pfXskdXNlcnNbJGl0ZW0tPm93bmVyX2lkXX17L2lmfTwvdGQ+CgkJCTx0ZD57JGl0ZW0tPndlYnNpdGV8c3RyaXBfdGFnc3x0cnVuY2F0ZTo4MH08L3RkPgoJCQk8dGQ+eyRpdGVtLT51cmx8dHJ1bmNhdGU6ODB9PC90ZD4KCQkJPHRkPgoJCQkgICAge2lmICRpdGVtLT5zdGF0dXMgIT0gJ3B1Ymxpc2hlZCd9CgkJCSAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiBvcmFuZ2U7Ij57JG1vZC0+TGFuZygkaXRlbS0+c3RhdHVzKX08L3NwYW4+CgkJCSAgICB7ZWxzZX0KICAJCQkgICAgICAgIHskbW9kLT5MYW5nKCRpdGVtLT5zdGF0dXMpfQoJCQkgICAgey9pZn0KCQkJPC90ZD4KCQkJPHRkPgoJCQkgICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9jb3B5X2NvbXBhbnkgY29tcGlkPSRpdGVtLT5pZH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnY29weScpfSI+CgkJCSAgICAgICAge2FkbWluX2ljb24gaWNvbj0nY29weS5naWYnfQoJCQkgICAgPC9hPgoJCQk8L3RkPgoJCQk8dGQ+PGEgaHJlZj0ieyRlZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+e2FkbWluX2ljb24gaWNvbj0nZWRpdC5naWYnfTwvYT48L3RkPgoJCQk8dGQ+CgkJCSAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2RlbGV0ZV9jb21wYW55IGNvbXBpZD0kaXRlbS0+aWR9IiBjbGFzcz0iZGVsY29tcGFueSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPgoJCQkgICAgICAgIHthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfQoJCQkgICAgPC9hPgoJCQk8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJidWxrW10iIHZhbHVlPSJ7JGl0ZW0tPmlkfSIgY2xhc3M9ImJ1bGsiLz48L3RkPgoJCQk8L3RyPgoJCSAgICB7L2ZvcmVhY2h9CgkgICAgICAgPC90Ym9keT4KCTwvdGFibGU+CgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KICAgICAgICAgICAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X2NvbXBhbnl9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2FkZGNvbXBhbnknKX0iPgogICAgICAgICAgICAgICAge2FkbWluX2ljb24gaWNvbj0nbmV3b2JqZWN0LmdpZid9IHskbW9kLT5MYW5nKCdhZGRjb21wYW55Jyl9CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGRpdiBpZD0iYnVsa3pvbmUiIGNsYXNzPSJwYWdlb3B0aW9ucyIgc3R5bGU9ImZsb2F0OiByaWdodDsiPgoJICAgICAgICA8bGFiZWw+eyRtb2QtPkxhbmcoJ3dpdGhfc2VsZWN0ZWQnKX06CgkgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImJ1bGthY3Rpb24iPgogIAkJICAgICAgICA8b3B0aW9uIHZhbHVlPSJkZWxldGUiPnskbW9kLT5MYW5nKCdkZWxldGUnKX08L29wdGlvbj4KCQkgICAgICAgIDxvcHRpb24gdmFsdWU9ImRpc2FibGUiPnskbW9kLT5MYW5nKCdkaXNhYmxlJyl9PC9vcHRpb24+CgkJICAgICAgICA8b3B0aW9uIHZhbHVlPSJwdWJsaXNoIj57JG1vZC0+TGFuZygncHVibGlzaCcpfTwvb3B0aW9uPgoJCSAgICAgICAgPG9wdGlvbiB2YWx1ZT0iY3JlYXRldXJscyI+eyRtb2QtPkxhbmcoJ2J1bGtfY3JlYXRldXJsX3doZW5fZW1wdHknKX08L29wdGlvbj4KCQkgICAgPC9zZWxlY3Q+CgkgICAgICAgIDwvbGFiZWw+CgkgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJidWxrX3N1Ym1pdCI+eyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YnIvPgogICAge2Zvcm1fZW5kfQoKCntlbHNlfQoKICAgIDxkaXYgY2xhc3M9InBhZ2VlcnJvcmNvbnRhaW5lciI+CiAgICAgICAgIHskbW9kLT5MYW5nKCdlcnJvcl9ub2ZpbHRlcm1hdGNoZXMnKX0KICAgIDwvZGl2PgoKey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_editcompany.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovL3ZhciBjb21waWQgPSAneyRjb21waWR8ZGVmYXVsdDonJ30nOwp2YXIgYWN0aW9uaWQgPSAneyRhY3Rpb25pZH0nOwp2YXIgZ2VvY29kZXVybCAgPSAne21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NvbXBhbnlEaXJlY3RvcnknIGFjdGlvbj0nZ2VvbG9jYXRlJyB1cmxvbmx5PTEganNmcmllbmRseT0xfScgKyAnJnN1cHByZXNzb3V0cHV0PWZhbHNlJzsKdmFyIGNoZWNrdXJsID0gJ3ttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPSdDb21wYW55RGlyZWN0b3J5JyBhY3Rpb249J2NoZWNrdXJsJyB1cmxvbmx5PTEganNmcmllbmRseT0xfScgKyAnJnNob3d0ZW1wbGF0ZT1mYWxzZSc7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJy5leHBhbmRpdCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAkKHRoaXMpLnBhcmVudCgpLm5leHQoJy5leHBhbmRhYmxlJykuc2xpZGVUb2dnbGUoMTAwMCk7CiAgfSk7CiAgJCgnI2J0bl9sb29rdXAnKS5saXZlKCdjbGljaycsZnVuY3Rpb24oKXsKICAgIHZhciB0bXAgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShhY3Rpb25pZCsnYWRkcmVzcycpOwogICAgdmFyIGFkZHJlc3MgPSB0bXBbMF0udmFsdWU7CgogICAgdmFyIGxhdCA9IDA7CiAgICB2YXIgbG9uZyA9IDA7CiAgICBqUXVlcnkucG9zdChnZW9jb2RldXJsLCAneyRhY3Rpb25pZH1hZGRyZXNzPScrYWRkcmVzcywKICAJZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICBpZiggZGF0YS5zdGF0dXMgPT0gJ3N1Y2Nlc3MnICkgewogICAgICAgICAgICAgIGxhdCA9IGRhdGEubGF0OyBsb25nPWRhdGEubG9uOwoKICAgICAgICAgICAgICB2YXIgbGF0ZmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShhY3Rpb25pZCsnbGF0aXR1ZGUnKVswXTsKICAgICAgICAgICAgICB2YXIgbG9uZ2ZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoYWN0aW9uaWQrJ2xvbmdpdHVkZScpWzBdOwogIAkgICAgICBsYXRmaWVsZC52YWx1ZSA9IGxhdDsKCSAgICAgIGxvbmdmaWVsZC52YWx1ZSA9IGxvbmc7CiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9Cgl9LCdqc29uJyk7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CgogICQoJ1tuYW1lPWJ0bl9nZXR1cmxdJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudCgkKCcjbmFtZXRleHQnKS52YWwoKSk7CiAgICB2YXIgdHVybCA9IGVuY29kZVVSSUNvbXBvbmVudCgkKCcjdXJsdGV4dCcpLnZhbCgpKTsKICAgIGlmKCB0dXJsICE9ICcnICkgewogICAgICBhbGVydCgneyRtb2QtPkxhbmcoJ2Vycm9yX3VybG5vdGVtcHR5Jyl9Jyk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICB2YXIgdXJsID0gY2hlY2t1cmwucmVwbGFjZSgvYW1wOy9nLCcnKTsKICAgIGpRdWVyeS5wb3N0KHVybCwnbTFfY2RfbmFtZT0nK25hbWUsCiAgICAJICBmdW5jdGlvbihkYXRhKSB7CgkgICAgaWYoIGRhdGEuc3RhdHVzID09ICdPSycgKSB7CiAgICAgICAgICAgICAgJCgnI3VybHRleHQnKS52YWwoZGF0YS51cmwpOwoJICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCAnanNvbicgKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnW25hbWU9YnRuX2NoZWNrdXJsXScpLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoalF1ZXJ5KCcjbmFtZXRleHQnKS52YWwoKSk7CiAgICB2YXIgdHVybCA9IGVuY29kZVVSSUNvbXBvbmVudChqUXVlcnkoJyN1cmx0ZXh0JykudmFsKCkpOwogICAgaWYoIHR1cmwgPT0gJycgKSByZXR1cm47CgogICAgdmFyIHVybCA9IGNoZWNrdXJsLnJlcGxhY2UoL2FtcDsvZywnJyk7CiAgICBqUXVlcnkucG9zdCh1cmwsJ20xX2NkX25hbWU9JytuYW1lKycmbTFfY2RfdXJsPScrdHVybCwKCWZ1bmN0aW9uKGRhdGEpIHsKCSAgaWYoIGRhdGEuc3RhdHVzID09ICdPSycgKSB7CgkgICAgYWxlcnQoJ3VybCBpcyBva2F5Jyk7CgkgIH0gZWxzZSB7CgkgICAgYWxlcnQoJ3Byb2JsZW1zIHdpdGggdGhlIFVSTCcpCgkgIH0KICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9LCAnanNvbicgKTsKICAgIHJldHVybiBmYWxzZTsKICB9KTsKCiAgJCgnaW5wdXQuY2F0X3NlbCcpLmNoYW5nZShmdW5jdGlvbigpewogICAgaWYoICQodGhpcykuaXMoJzpjaGVja2VkJykgKSB7CiAgICAgICQodGhpcykucGFyZW50KCkubmV4dCgnYS5jYXRfZXh0cmFpbmZvJykuc2hvdygpOwogICAgfSBlbHNlIHsKICAgICAgJCh0aGlzKS5wYXJlbnQoKS5uZXh0KCdhLmNhdF9leHRyYWluZm8nKS5oaWRlKCk7CiAgICB9CiAgfSkKICAkKCdpbnB1dC5jYXRfc2VsJykudHJpZ2dlcignY2hhbmdlJyk7CgogICQoJ2EuY2F0X2V4dHJhaW5mbycpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgY2F0aWQgPSAkKHRoaXMpLmRhdGEoJ2NhdGlkJykKICAgIHZhciBjYXRuYW1lID0gJCh0aGlzKS5kYXRhKCdjYXRuYW1lJykKICAgIHZhciBlMSA9ICJpbnB1dFtuYW1lPSd7JGFjdGlvbmlkfWNhdGVnb3J5X2V4dHJhMVtpZC0iK2NhdGlkKyJdJ10iOwogICAgdmFyIGUyID0gImlucHV0W25hbWU9J3skYWN0aW9uaWR9Y2F0ZWdvcnlfZXh0cmEyW2lkLSIrY2F0aWQrIl0nXSI7CiAgICB2YXIgZTMgPSAiaW5wdXRbbmFtZT0neyRhY3Rpb25pZH1jYXRlZ29yeV9leHRyYTNbaWQtIitjYXRpZCsiXSddIjsKICAgICQoJyNjYXRfZXh0cmExJykudmFsKCQoZTEpLnZhbCgpKTsKICAgICQoJyNjYXRfZXh0cmEyJykudmFsKCQoZTIpLnZhbCgpKTsKICAgICQoJyNjYXRfZXh0cmEzJykudmFsKCQoZTMpLnZhbCgpKTsKICAgICQoJyNjYXRfZXh0cmFpbmZvX2RsZycpLmF0dHIoJ3RpdGxlJywneyRtb2QtPkxhbmcoJ2NhdF9leHRyYWluZm8nKX06ICcrY2F0bmFtZSkuZGlhbG9nKHsKICAgICAgbW9kYWw6IHRydWUsCiAgICAgIGhlaWdodDogJ2F1dG8nLAogICAgICBidXR0b25zOiBbCiAgICAgICAgewogICAgICAgICAgdGV4dDogJ3skbW9kLT5MYW5nKCdzdWJtaXQnKX0nLAoJICBjbGljazogZnVuY3Rpb24oKSB7CgkgICAgJChlMSkudmFsKCQoJyNjYXRfZXh0cmExJykudmFsKCkpOwoJICAgICQoZTIpLnZhbCgkKCcjY2F0X2V4dHJhMicpLnZhbCgpKTsKCSAgICAkKGUzKS52YWwoJCgnI2NhdF9leHRyYTMnKS52YWwoKSk7CgkgICAgJCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7CgkgIH0KCX0KICAgICAgXQogICAgfSk7CiAgfSkKICAvKiBqUXVlcnkoJ2EuZmFuY3lib3gnKS5mYW5jeWJveCgpOyAqLwp9KTsKPC9zY3JpcHQ+Cgp7JHN0YXJ0Zm9ybX0KPGgzPgp7aWYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KICB7JG1vZC0+TGFuZygncHJvbXB0X2VkaXRjb21wYW55Jyl9OiB7JGNvbXBhbnlfbmFtZX0gKHskY29tcGlkfSkKe2Vsc2V9CiAgeyRtb2QtPkxhbmcoJ3Byb21wdF9hZGRjb21wYW55Jyl9CnsvaWZ9CjwvaDM+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgIHskaGlkZGVufQogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDwvcD4KPC9kaXY+Cgp7JG1vZC0+U3RhcnRUYWJIZWFkZXJzKCl9CnskbW9kLT5TZXRUYWJIZWFkZXIoJ2NvbXBhbnknLCRtb2QtPkxhbmcoJ2NvbXBhbnknKSl9CnskbW9kLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkcycsJG1vZC0+TGFuZygnZmllbGRzJykpfQp7aWYgaXNzZXQoJGFsYnVtX2ZpZWxkX2V4aXN0cykgJiYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KeyRtb2QtPlNldFRhYkhlYWRlcignYWxidW0nLCRtb2QtPkxhbmcoJ2FsYnVtJykpfQp7L2lmfQp7JG1vZC0+RW5kVGFiSGVhZGVycygpfQoKeyRtb2QtPlN0YXJ0VGFiQ29udGVudCgpfQp7JG1vZC0+U3RhcnRUYWIoJ2NvbXBhbnknKX0KPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzYiPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPip7JG5hbWV0ZXh0fTo8L3A+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im5hbWV0ZXh0IiBjbGFzcz0iZ3JpZF8xMiIgbmFtZT0ieyRhY3Rpb25pZH1leF9jb21wYW55X25hbWUiIHZhbHVlPSJ7JGNvbXBhbnlfbmFtZX0iIG1heGxlbmd0aD0iMjU1IiByZXF1aXJlZC8+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFkZHJlc3N0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hZGRyZXNzIiB2YWx1ZT0ieyRhZGRyZXNzfSIgY2xhc3M9ImdyaWRfMTIiLz4KICAgICAgICAgICAgICAgICAge2lmICFlbXB0eSgkY2FuX2dlb2NvZGUpICYmICRjYW5fZ2VvY29kZX0KCQkgIDxici8+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYnRuX2xvb2t1cCIgaWQ9ImJ0bl9sb29rdXAiIHZhbHVlPSJ7JG1vZC0+TGFuZygnbG9va3VwJyl9Ii8+CiAgICAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyBjb29yZHMiPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0ZWxlcGhvbmV0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dHRlbGVwaG9uZX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGZheHRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0ZmF4fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW1haWx0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGVtYWlsfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd2Vic2l0ZXRleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0d2Vic2l0ZX08L3A+Cgk8L2Rpdj4KICA8L2Rpdj57KiAuZ3JpZF82ICp9CiAgPGRpdiBjbGFzcz0iZ3JpZF82Ij4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN0YXR1c3RleHR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0c3RhdHVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPntpZiAkdXJsX3JlcXVpcmVkfSp7L2lmfXskbW9kLT5MYW5nKCd1cmwnKX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InVybHRleHQiIG5hbWU9InskYWN0aW9uaWR9dXJsIiB2YWx1ZT0ieyR1cmx9IiBzaXplPSIzMCIgbWF4bGVuZ3RoPSIyNTUiPiZuYnNwOwogICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJidG5fZ2V0dXJsIiBpZD0iYnRuX2dldHVybCIgdmFsdWU9InskbW9kLT5MYW5nKCdnZXR1cmwnKX0iLz4KICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iYnRuX2NoZWNrdXJsIiBpZD0iYnRuX2NoZWNrdXJsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NoZWNrJyl9Ii8+CiAgICAgICAgICAgICAgICA8L3A+Cgk8L2Rpdj4KCgl7aWYgJGNhdGVnb3JpZXNjb3VudCBndCAwfQogICAgICAgIDxmaWVsZHNldD4KICAgICAgICAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2NhdGVnb3JpZXMnKX06PC9sZWdlbmQ+CgkgIDxkaXYgc3R5bGU9Im1heC1oZWlnaHQ6IDMwZW07IG92ZXJmbG93LXk6IGF1dG87IHBhZGRpbmctdG9wOiA1cHg7IHBhZGRpbmctYm90dG9tOiA1cHg7Ij4KCSAge2ZvcmVhY2ggJGNhdGVnb3JpZXMgYXMgJGNhdGVnb3J5fQoJICAgIDxsYWJlbD4KCSAgICAgIHtyZXBlYXQgc3RyaW5nPScmbmJzcDsmbmJzcDsnIHRpbWVzPSRjYXRlZ29yeS0+ZGVwdGh9CgkgICAgICA8aW5wdXQgY2xhc3M9ImNhdF9zZWwiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWNhdGVnb3J5W2lkLXskY2F0ZWdvcnktPmlkfV0iIHZhbHVlPSJ0cnVlIiB7aWYgJGNhdGVnb3J5LT52YWx1ZXxkZWZhdWx0OjAgPT0gMX1jaGVja2VkPSJjaGVja2VkInsvaWZ9Lz4geyRjYXRlZ29yeS0+bmFtZX0KCSAgICA8L2xhYmVsPgoJICAgIDxhIGNsYXNzPSJjYXRfZXh0cmFpbmZvIiBkYXRhLWNhdG5hbWU9InskY2F0ZWdvcnktPm5hbWV9IiBkYXRhLWNhdGlkPSJ7JGNhdGVnb3J5LT5pZH0iPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0naWNvbnMvc3lzdGVtL2V4cGFuZC5naWYnIGFsdD0iZm9vIn08L2E+CgkgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieyRhY3Rpb25pZH1jYXRlZ29yeV9leHRyYTFbaWQteyRjYXRlZ29yeS0+aWR9XSIgdmFsdWU9InskY2F0ZWdvcnktPmV4dHJhMV92YWx8ZGVmYXVsdDonJ30iLz4KCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNhdGVnb3J5X2V4dHJhMltpZC17JGNhdGVnb3J5LT5pZH1dIiB2YWx1ZT0ieyRjYXRlZ29yeS0+ZXh0cmEyX3ZhbHxkZWZhdWx0OicnfSIvPgoJICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9Y2F0ZWdvcnlfZXh0cmEzW2lkLXskY2F0ZWdvcnktPmlkfV0iIHZhbHVlPSJ7JGNhdGVnb3J5LT5leHRyYTNfdmFsfGRlZmF1bHQ6Jyd9Ii8+CgkgICAge2lmICEkY2F0ZWdvcnlAbGFzdH08YnIvPnsvaWZ9CgkgIHsvZm9yZWFjaH0KCSAgPC9kaXY+CiAgICAgICAgPC9maWVsZHNldD4KCXsvaWZ9CgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX06PC9wPgogICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dGhpZXJwb3N9PC9wPgogICAgICAgIDwvZGl2Pgp7aWYgaXNzZXQoJGZldV91c2Vycyl9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ293bmVyJyl9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfW93bmVyX2lkIj4KICAgICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRmZXVfdXNlcnMgc2VsZWN0ZWQ9JG93bmVyX2lkfQogICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgIDwvcD4KCTwvZGl2Pgp7L2lmfQoKICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNmIj48L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGRpdiBjbGFzcz0iZ3JpZF8xMiI+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZXRhaWxzdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRkZXRhaWxzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskaW1hZ2V0ZXh0fTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+CgkJICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1pbWFnZXVwbG9hZCIvPgoJCSAge2lmICRpbWFnZWN1cnJlbnQgbmUgJyd9eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06IHskaW1hZ2VjdXJyZW50fXskaW1hZ2VjdXJyZW50aGlkZGVufXsvaWZ9CgkJPC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRsb2dvdGV4dH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPgoJCSAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9bG9nb3VwbG9hZCIvPgoJCSAge2lmICRsb2dvY3VycmVudCBuZSAnJ317JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTogeyRsb2dvY3VycmVudH17JGxvZ29jdXJyZW50aGlkZGVufXsvaWZ9CgkJPC9wPgoJPC9kaXY+CiAgPC9kaXY+CjwvZGl2Pgp7JG1vZC0+RW5kVGFiKCl9eyogY29tcGFueSAqfQoKeyRtb2QtPlN0YXJ0VGFiKCdmaWVsZHMnKX0KCXtpZiAkY3VzdG9tZmllbGRzY291bnQgZ3QgMH0KCQl7Zm9yZWFjaCBmcm9tPSRjdXN0b21maWVsZHMgaXRlbT1jdXN0b21maWVsZH0KICAgICAgICAgICAgICAgIHtpZiAkY3VzdG9tZmllbGQtPnR5cGUgIT0gJ2FsYnVtJ30KCQkJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjdXN0b21maWVsZC0+bmFtZX0gKHskY3VzdG9tZmllbGQtPnR5cGV9KTo8L3A+CgkJCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGN1c3RvbWZpZWxkLT5pbnB1dF9ib3h9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lmIGlzc2V0KCRjdXN0b21maWVsZC0+dGh1bWJfdXJsKX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIvPjxhIGNsYXNzPSJmYW5jeWJveCIgaHJlZj0ieyRjdXN0b21maWVsZC0+aW1hZ2VfdXJsfSI+PGltZyBzcmM9InskY3VzdG9tZmllbGQtPnRodW1iX3VybH0iPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7L2lmfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KCQkJPC9kaXY+CiAgICAgICAgICAgICAgICB7L2lmfQoJCXsvZm9yZWFjaH0KICAgICAgICB7ZWxzZX0KICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOiByZWQ7Ij57JG1vZC0+TGFuZygnaW5mb19ub2ZpZWxkcycpfTwvcD4KCXsvaWZ9CnskbW9kLT5FbmRUYWIoKX17KiBmaWVsZHMgKn0KCnsqIGJlZ2luIGFsYnVtIHRhYiAqfQp7aWYgaXNzZXQoJGFsYnVtX2ZpZWxkX2V4aXN0cykgJiYgaXNzZXQoJGNvbXBpZCkgJiYgJGNvbXBpZH0KeyRtb2QtPlN0YXJ0VGFiKCdhbGJ1bScpfQp7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6Q29tcGFueURpcmVjdG9yeTtlZGl0Y29tcGFueV9hbGJ1bS50cGwnfQp7JG1vZC0+RW5kVGFiKCl9CnsvaWZ9CnsqIGVuZCBhbGJ1bSB0YWIgKn0KCnskbW9kLT5FbmRUYWJDb250ZW50KCl9CnskZW5kZm9ybX0KCjxkaXYgaWQ9ImNhdF9leHRyYWluZm9fZGxnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIj57JG1vZC0+TGFuZygnaW5mb19jYXRlZ29yeV9leHRyYWluZm8nKX08L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnZXh0cmExJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5mbyI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY2F0X2V4dHJhMSIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICA8L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2V4dHJhMicpfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWluZm8iPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNhdF9leHRyYTIiIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdleHRyYTMnKX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbmZvIj4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJjYXRfZXh0cmEzIiBzaXplPSI4MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgIDwvcD4KICA8L2Rpdj4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_category.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRjYXRlZ29yeS0+aWQgPCAxfQogIDxoMz57JG1vZC0+TGFuZygnYWRkX2NhdGVnb3J5Jyl9PC9oMz4Ke2Vsc2V9CiAgPGgzPnskbW9kLT5MYW5nKCdlZGl0X2NhdGVnb3J5Jyl9PC9oMz4Key9pZn0KCntmb3JtX3N0YXJ0IGNhdGlkPSRjYXRlZ29yeS0+aWR9CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgbmFtZT0ic3VibWl0Ij57JG1vZC0+TGFuZygnc3VibWl0Jyl9PC9idXR0b24+CiAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJjYW5jZWwiIGZvcm1ub3ZhbGlkYXRlPnskbW9kLT5MYW5nKCdjYW5jZWwnKX08L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGJyLz4KICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj4qeyRtb2QtPkxhbmcoJ25hbWUnKX06PC9sYWJlbD4KCSA8aW5wdXQgY2xhc3M9ImdyaWRfOCIgdHlwZT0idGV4dCIgbmFtZT0ibmFtZSIgdmFsdWU9InskY2F0ZWdvcnktPm5hbWV9IiBtYXhsZW5ndGg9IjI1NSIgcmVxdWlyZWQvPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+KnskbW9kLT5MYW5nKCdwYXJlbnQnKX06PC9sYWJlbD4KCSA8c2VsZWN0IG5hbWU9InBhcmVudF9pZCIgY2xhc3M9ImdyaWRfOCI+CgkgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY2F0ZWdvcnlfbGlzdCBzZWxlY3RlZD0kY2F0ZWdvcnktPnBhcmVudF9pZH0KCSA8L3NlbGVjdD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTo8L2xhYmVsPgoJIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgIAkgICAgIHtjZ2VfdGV4dGFyZWEgd3lzaXd5Zz0xIG5hbWU9ZGVzY3JpcHRpb24gY29udGVudD0kY2F0ZWdvcnktPmRlc2NyaXB0aW9uIGNsYXNzPSJncmlkXzgifQoJIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgIAkgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdpbWFnZXRleHQnKX06PC9sYWJlbD4KICAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImltYWdlIiBjbGFzcz0iZ3JpZF84Ii8+CiAgICA8L2Rpdj4KICAgIHtpZiAkY2F0ZWdvcnktPmltYWdlfQogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgPGRpdiBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnY3VycmVudF92YWx1ZScpfTwvZGl2PgoJIDxkaXYgY2xhc3M9ImdyaWRfOCI+CgkgICAgIDxzcGFuPnskY2F0ZWdvcnktPmltYWdlfTwvc3Bhbj4KCSAgICAgPGJyLz4KCSAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIG5hbWU9ImRlbGltYWdlIj4geyRtb2QtPkxhbmcoJ2RlbGV0ZScpfTwvbGFiZWw+CgkgPC9kaXY+CiAgICA8L2Rpdj4KICAgIHsvaWZ9CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgCSA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2V4dHJhMScpfTo8L2xhYmVsPgoJIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZ3JpZF84IiBuYW1lPSJleHRyYTEiIHZhbHVlPSJ7JGNhdGVnb3J5LT5leHRyYTF9IiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgCSA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2V4dHJhMicpfTo8L2xhYmVsPgoJIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZ3JpZF84IiBuYW1lPSJleHRyYTIiIHZhbHVlPSJ7JGNhdGVnb3J5LT5leHRyYTJ9IiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgCSA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2V4dHJhMycpfTo8L2xhYmVsPgoJIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZ3JpZF84IiBuYW1lPSJleHRyYTMiIHZhbHVlPSJ7JGNhdGVnb3J5LT5leHRyYTN9IiBtYXhsZW5ndGg9IjI1NSIvPgogICAgPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_company.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KJChmdW5jdGlvbigpewogICAgdmFyIGdlbnVybF91cmwgPSAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nYWpheF9jaGVja191cmwnIGZvcmpzPTF9JnNob3d0ZW1wbGF0ZT1mYWxzZScKICAgIHZhciBnZW9jb2RlX3VybCA9ICd7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdhamF4X2dlb2xvY2F0ZScgZm9yanM9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJwoKICAgICQoJ1tuYW1lPWJ0bl9nZXR1cmxdJykuY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCkKCWxldCB0bmFtZSA9ICQoJ1tuYW1lPWNvbXBhbnlfbmFtZV0nKS52YWwoKQoJbGV0IHR1cmwgPSAkKCdbbmFtZT11cmxdJykudmFsKCkKCWlmKCB0dXJsICE9ICcnICkgewoJICAgIGFsZXJ0KCd7JG1vZC0+TGFuZygnZXJyb3JfdXJsbm90ZW1wdHknKX0nKQoJICAgIHJldHVybgoJfQoKCSQuYWpheCh7CgkgICAgdXJsOiBnZW51cmxfdXJsLAoJICAgIG1ldGhvZDogJ3Bvc3QnLAoJICAgIGRhdGE6IHsKCSAgICAgICAgbmFtZTogdG5hbWUKICAgICAgICAgICAgfQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSl7CgkgICAgaWYoIGRhdGEudXJsICkgJCgnW25hbWU9dXJsXScpLnZhbChkYXRhLnVybCkKICAgICAgICB9KQogICAgfSkKCiAgICAkKCdbbmFtZT1idG5fY2hlY2t1cmxdJykuY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCkKCWxldCB0bmFtZSA9ICQoJ1tuYW1lPWNvbXBhbnlfbmFtZV0nKS52YWwoKQoJbGV0IHR1cmwgPSAkKCdbbmFtZT11cmxdJykudmFsKCkKCWlmKCB0dXJsID09ICcnICkgcmV0dXJuCgoJJC5hamF4KHsKCSAgICB1cmw6IGdlbnVybF91cmwsCgkgICAgbWV0aG9kOiAncG9zdCcsCgkgICAgZGF0YTogewoJICAgICAgICBuYW1lOiB0bmFtZSwKCSAgICAgICAgdXJsOiB0dXJsCiAgICAgICAgICAgIH0KICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpewoJICAgIGFsZXJ0KCd7JG1vZC0+TGFuZygnbXNnX3VybG9rYXknKX0nKQogICAgICAgIH0pLmZhaWwoZnVuY3Rpb24oeGhyLHRleHRTdGF0dXMsZXJyb3JUaHJvd24pewoJICAgIGFsZXJ0KCdlcnJvciAnK2Vycm9yVGhyb3duKQoJfSkKICAgIH0pCgogICAgJCgnW25hbWU9YnRuX2dlb2NvZGVdJykuY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgIGV2LnByZXZlbnREZWZhdWx0KCkKCWxldCBhZGRyZXNzID0gJCgnW25hbWU9YWRkcmVzc10nKS52YWwoKQoJaWYoIGFkZHJlc3MgPT0gJycgKSByZXR1cm4KCWxldCBsYXRmbGQgPSAkKCdbbmFtZT1sYXRpdHVkZV0nKQoJbGV0IGxuZ2ZsZCA9ICQoJ1tuYW1lPWxvbmdpdHVkZV0nKQoJaWYoIGxhdGZsZC52YWwoKSAhPSAnJyB8fCBsbmdmbGQudmFsKCkgIT0gJycgKSB7CgkgICAgYWxlcnQoJ3skbW9kLT5MYW5nKCdtc2dfY29vcmRzZXhpc3QnKX0nKQoJICAgIHJldHVybgogICAgICAgIH0KCgkkLmFqYXgoewoJICAgIHVybDogZ2VvY29kZV91cmwsCgkgICAgbWV0aG9kOiAncG9zdCcsCgkgICAgZGF0YTogewoJICAgICAgICBhZGRyZXNzOiBhZGRyZXNzCiAgICAgICAgICAgIH0KICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKGRhdGEpewoJICAgIGlmKCBkYXRhLmxhdGl0dWRlICYmIGRhdGEubG9uZ2l0dWRlICYmIGRhdGEuY29uZmlkZW5jZSA+IDAgKSB7CgkgICAgICAgIGxhdGZsZC52YWwoZGF0YS5sYXRpdHVkZSkKCQlsbmdmbGQudmFsKGRhdGEubG9uZ2l0dWRlKQogICAgICAgICAgICB9CiAgICAgICAgfSkuZmFpbChmdW5jdGlvbih4aHIsdGV4dFN0YXR1cyxlcnJvclRocm93bil7CgkgICAgYWxlcnQoJ2Vycm9yICcrZXJyb3JUaHJvd24pCgl9KQogICAgfSkKfSkKPC9zY3JpcHQ+Cgp7Zm9ybV9zdGFydCBjb21waWQ9JGNvbXBhbnktPmlkIGd1aWQ9JHJlcV9ndWlkfQo8aDM+CiAgICB7aWYgJGNvbXBhbnktPmlkID4gMH0KICAgICAgICB7JG1vZC0+TGFuZygncHJvbXB0X2VkaXRjb21wYW55Jyl9OiB7JGNvbXBhbnktPmNvbXBhbnlfbmFtZX0gKHskY29tcGFueS0+aWR9KQogICAge2Vsc2V9CiAgICAgICAgeyRtb2QtPkxhbmcoJ3Byb21wdF9hZGRjb21wYW55Jyl9CiAgICB7L2lmfQo8L2gzPgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiPnskbW9kLT5MYW5nKCdzdWJtaXQnKX08L2J1dHRvbj4KICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJjYW5jZWwiIGZvcm1ub3ZhbGlkYXRlPnskbW9kLT5MYW5nKCdjYW5jZWwnKX08L2J1dHRvbj4KICAgIHtpZiAkY29tcGFueS0+aWQgPiAwICYmICRoYXZlX2FsYnVtX2ZpZWxkfQogICAgICAgIDxidXR0b24gZGF0YS1ocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VkaXRfY29tcGFueV9hbGJ1bSBjb21waWQ9JGNvbXBhbnktPmlkfSIgZm9ybW5vdmFsaWRhdGU+eyRtb2QtPkxhbmcoJ2FsYnVtJyl9IC4uLjwvYnV0dG9uPgogICAgey9pZn0KPC9kaXY+Cgp7KiB0YWIgaGVhZGVycyAqfQp7JG1vZC0+U3RhcnRUYWJIZWFkZXJzKCl9CnskbW9kLT5TZXRUYWJIZWFkZXIoJ2NvbXBhbnknLCRtb2QtPkxhbmcoJ2NvbXBhbnknKSl9CntpZiAhZW1wdHkoJGZpZWxkZGVmcyl9CiAgICB7JG1vZC0+U2V0VGFiSGVhZGVyKCdmaWVsZHMnLCRtb2QtPkxhbmcoJ2Fzc29jX2RhdGEnKSl9CnsvaWZ9CntpZiAhZW1wdHkoJGNhdGVnb3JpZXMpfQogICAgeyRtb2QtPlNldFRhYkhlYWRlcignY2F0ZWdvcmllcycsJG1vZC0+TGFuZygnY2F0ZWdvcmllcycpKX0Key9pZn0KeyRtb2QtPkVuZFRhYkhlYWRlcnMoKX0KCgp7KiB0YWIgY29udGVudCAqfQp7JG1vZC0+U3RhcnRUYWJDb250ZW50KCl9Cgp7KiBjb21wYW55IHRhYiAqfQp7JG1vZC0+U3RhcnRUYWIoJ2NvbXBhbnknKX0KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxkaXYgY2xhc3M9ImdyaWRfNiI+CiAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj4qeyRtb2QtPkxhbmcoJ25hbWUnKX06PC9sYWJlbD4KICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibmFtZXRleHQiIGNsYXNzPSJncmlkXzgiIG5hbWU9ImNvbXBhbnlfbmFtZSIgdmFsdWU9InskY29tcGFueS0+Y29tcGFueV9uYW1lfSIgbWF4bGVuZ3RoPSIyNTUiIHJlcXVpcmVkLz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPip7JG1vZC0+TGFuZygnYWRkcmVzcycpfTo8L2xhYmVsPgogICAJICAgICA8dGV4dGFyZWEgY2xhc3M9ImdyaWRfOCIgbmFtZT0iYWRkcmVzcyIgcm93cz0iMyI+eyRjb21wYW55LT5hZGRyZXNzfTwvdGV4dGFyZWE+CiAgICAgICAgPC9kaXY+CiAgICAgICAge2lmICRjYW5fZ2VvY29kZX0KICAgIAkgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgICAgCSA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+Jm5ic3A7PC9sYWJlbD4KCQkgPGJ1dHRvbiBjbGFzcz0iZ3JpZF84IiB0eXBlPSJzdWJtaXQiIG5hbWU9ImJ0bl9nZW9jb2RlIj57JG1vZC0+TGFuZygnbG9va3VwJyl9PC9idXR0b24+CiAgICAJICAgIDwvZGl2PgogICAgICAgIHsvaWZ9CiAgICAJPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygndGVsZXBob25lJyl9PC9sYWJlbD4KCSAgICAgPGlucHV0IG5hbWU9InRlbGVwaG9uZSIgdmFsdWU9InskY29tcGFueS0+dGVsZXBob25lfSIgY2xhc3M9ImdyaWRfOCIgdHlwZT0idGVsIi8+CiAgICAgICAgPC9kaXY+CiAgICAgCSA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnZmF4Jyl9PC9sYWJlbD4KCSAgICAgIDxpbnB1dCBuYW1lPSJmYXgiIHZhbHVlPSJ7JGNvbXBhbnktPmZheH0iIGNsYXNzPSJncmlkXzgiIHR5cGU9InRlbCIvPgogICAgICAgICA8L2Rpdj4KICAgIAk8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdjb250YWN0ZW1haWwnKX08L2xhYmVsPgoJICAgICA8aW5wdXQgbmFtZT0iY29udGFjdF9lbWFpbCIgdmFsdWU9InskY29tcGFueS0+Y29udGFjdF9lbWFpbH0iIGNsYXNzPSJncmlkXzgiIHR5cGU9ImVtYWlsIi8+CiAgICAgICAgPC9kaXY+CiAgICAJPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnd2Vic2l0ZScpfTwvbGFiZWw+CgkgICAgIDxpbnB1dCBuYW1lPSJ3ZWJzaXRlIiB2YWx1ZT0ieyRjb21wYW55LT53ZWJzaXRlfSIgY2xhc3M9ImdyaWRfOCIgdHlwZT0idXJsIi8+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj57KiAuZ3JpZF82ICp9CgogICAgPGRpdiBjbGFzcz0iZ3JpZF82Ij4KICAgIAkgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj4qeyRtb2QtPkxhbmcoJ3N0YXR1cycpfTwvbGFiZWw+CgkgICAgICA8c2VsZWN0IG5hbWU9InN0YXR1cyIgY2xhc3M9ImdyaWRfOCI+CgkgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdGF0dXNfbGlzdCBzZWxlY3RlZD0kY29tcGFueS0+c3RhdHVzfQoJICAgICAgPC9zZWxlY3Q+CgkgPC9kaXY+CiAgICAgCSA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnbGF0aXR1ZGUnKX08L2xhYmVsPgoJICAgICAgPGlucHV0IG5hbWU9ImxhdGl0dWRlIiB2YWx1ZT0ieyRjb21wYW55LT5sYXRpdHVkZX0iIGNsYXNzPSJncmlkXzgiIHR5cGU9Im51bWJlciIgc3RlcD0iMC4wMDAwMDAxIi8+CiAgICAgICAgIDwvZGl2PgogICAgIAkgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2xvbmdpdHVkZScpfTwvbGFiZWw+CgkgICAgICA8aW5wdXQgbmFtZT0ibG9uZ2l0dWRlIiB2YWx1ZT0ieyRjb21wYW55LT5sb25naXR1ZGV9IiBjbGFzcz0iZ3JpZF84IiB0eXBlPSJudW1iZXIiIHN0ZXA9IjAuMDAwMDAwMSIvPgogICAgICAgICA8L2Rpdj4KCSA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPntpZiAkdXJsX3JlcXVpcmVkfSp7L2lmfXskbW9kLT5MYW5nKCd1cmwnKX08L2xhYmVsPgoJICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ1cmx0ZXh0IiBuYW1lPSJ1cmwiIHZhbHVlPSJ7JGNvbXBhbnktPnVybH0iIGNsYXNzPSJncmlkXzgiIHtpZiAkdXJsX3JlcXVpcmVkfXJlcXVpcmVkey9pZn0vPgoJIDwvZGl2PgoJIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+Jm5ic3A7PC9sYWJlbD4KCSAgICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CgkgICAgICAgICAgPGJ1dHRvbiBuYW1lPSJidG5fZ2V0dXJsIj57JG1vZC0+TGFuZygnZ2V0dXJsJyl9PC9idXR0b24+CgkgICAgICAgICAgPGJ1dHRvbiBuYW1lPSJidG5fY2hlY2t1cmwiPnskbW9kLT5MYW5nKCdjaGVjaycpfTwvYnV0dG9uPgoJICAgICAgPC9kaXY+CgkgPC9kaXY+CgoJIHtpZiAhZW1wdHkoJHVzZXJzKX0KCSA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ293bmVyJyl9PC9sYWJlbD4KCSAgICAgPHNlbGVjdCBjbGFzcz0iZ3JpZF84IiBuYW1lPSJvd25lcl9pZCI+CgkgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHVzZXJzIHNlbGVjdGVkPSRjb21wYW55LT5vd25lcl9pZH0KCSAgICAgPC9zZWxlY3Q+CgkgPC9kaXY+Cgkgey9pZn0KCgkgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX08L2xhYmVsPgoJICAgICA8c2VsZWN0IGNsYXNzPSJncmlkXzgiIG5hbWU9ImhpZXJfaWQiPgoJICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaHlfbGlzdCBzZWxlY3RlZD0kY29tcGFueS0+aGllcl9pZH0KCSAgICAgPC9zZWxlY3Q+CgkgPC9kaXY+CiAgICA8L2Rpdj57KiBncmlkXzYgKn0KPC9kaXY+Cjxici8+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2RldGFpbHMnKX08L2xhYmVsPgogICAgIDxici8+CiAgICAge2NnZV93eXNpd3lnIHd5c2l3eWc9JHVzZV93eXNpd3lnIG5hbWU9J2RldGFpbHMnIHZhbHVlPSRjb21wYW55LT5kZXRhaWxzIHJvd3M9OCBjbGFzcz0iZ3JpZF85In0KPC9kaXY+Cjxici8+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdsb2dvdGV4dCcpfTwvbGFiZWw+CiAgICAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgICAgICB7Y21zX2ZpbGVwaWNrZXIgbmFtZT0nbG9nb19sb2NhdGlvbicgdmFsdWU9JGNvbXBhbnktPmxvZ29fbG9jYXRpb259Cgl7aWYgJGNvbXBhbnktPmxvZ29fbG9jYXRpb24gJiYgJGNvbXBhbnktPmlkfQoJICAge2NkX2FkbWluX2ZpbGVfdGh1bWIgY29tcGlkPSRjb21wYW55LT5pZCBmaWxlPSRjb21wYW55LT5sb2dvX2xvY2F0aW9ufQoJey9pZn0KICAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdpbWFnZXRleHQnKX08L2xhYmVsPgogICAgIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgICAge2Ntc19maWxlcGlja2VyIG5hbWU9J3BpY3R1cmVfbG9jYXRpb24nIHZhbHVlPSRjb21wYW55LT5waWN0dXJlX2xvY2F0aW9ufQoJe2lmICRjb21wYW55LT5sb2dvX2xvY2F0aW9uICYmICRjb21wYW55LT5pZH0KCSAgIHtjZF9hZG1pbl9maWxlX3RodW1iIGNvbXBpZD0kY29tcGFueS0+aWQgZmlsZT0kY29tcGFueS0+cGljdHVyZV9sb2NhdGlvbn0KCXsvaWZ9CiAgICAgPC9kaXY+CjwvZGl2PgoKeyRtb2QtPkVuZFRhYigpfXsqIGNvbXBhbnkgKn0KCnsqIGZpZWxkcyB0YWIgKn0Ke2lmICFlbXB0eSgkZmllbGRkZWZzKX0KICAgIHskbW9kLT5TdGFydFRhYignZmllbGRzJyl9CiAgICB7aW5jbHVkZSBmaWxlPSdtb2R1bGVfZmlsZV90cGw6Q29tcGFueURpcmVjdG9yeTthZG1pbl9lZGl0X2NvbXBhbnlfZmllbGRzLnRwbCd9CiAgICB7JG1vZC0+RW5kVGFiKCl9eyogZmllbGRzICp9CnsvaWZ9Cgp7KiBjYXRlZ29yaWVzIHRhYiAqfQp7aWYgIWVtcHR5KCRjYXRlZ29yaWVzKX0KICAgIHskbW9kLT5TdGFydFRhYignY2F0ZWdvcmllcycpfQogICAge2luY2x1ZGUgZmlsZT0nbW9kdWxlX2ZpbGVfdHBsOkNvbXBhbnlEaXJlY3Rvcnk7YWRtaW5fZWRpdF9jb21wYW55X2NhdGVnb3JpZXMudHBsJ30KICAgIHskbW9kLT5FbmRUYWIoKX17KiBjYXRlZ29yaWVzICp9CnsvaWZ9Cgp7JG1vZC0+RW5kVGFiQ29udGVudCgpfQp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_company_album.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnanNfcmVxdWlyZSBsaWI9ZmlsZXVwbG9hZH0KPHNjcmlwdD4KJChmdW5jdGlvbigpewogICAgdmFyIGZvcm0gPSAkKCdmb3JtI3VwbG9hZGZvcm0nKQogICAgdmFyIGZpbGVpbnB1dCA9ICQoJ2lucHV0I2ZpbGVpbnB1dCcpCiAgICB2YXIgZGlzcGxheV96b25lID0gJCgnI2FsYnVtX3pvbmUnKQogICAgdmFyIGRyb3B6b25lID0gJCgnI2Ryb3B6b25lJykKICAgIHZhciBlcnJvcl9tZXNzYWdlcyA9IHsKICAgICAgICBhY2NlcHRGaWxlVHlwZXM6ICd7JG1vZC0+TGFuZygnZXJyX3VwbG9hZF9iYWRmaWxldHlwZScpfScsCiAgICAgICAgbWF4RmlsZVNpemU6ICd7JG1vZC0+TGFuZygnZXJyX3VwbG9hZF9tYXhmaWxlc2l6ZScpfScsCgltaW5GaWxlU2l6ZTogJ3skbW9kLT5MYW5nKCdlcnJfdXBsb2FkX21pbmZpbGVzaXplJyl9JywKCW1heE51bWJlck9mRmlsZXM6ICd7JG1vZC0+TGFuZygnZXJyX3VwbG9hZF9tYXhOdW1iZXJPZkZpbGVzJyl9JwogICAgfQoKICAgIGZ1bmN0aW9uIHVwZGF0ZV9hbGJ1bSgpIHsKICAgICAgICBjbXNfYnVzeSgpCiAgICAgICAgbGV0IGl0ZW1zID0gW107CglsZXQgZGF0YSA9IHt9CiAgICAgICAgJCgndWwuY29tcGFueV9hbGJ1bSA+IGxpJyxkaXNwbGF5X3pvbmUpLmVhY2goZnVuY3Rpb24oaXRlbSl7CiAgICAgICAgICAgIGl0ZW1zLnB1c2goJCh0aGlzKS5kYXRhKCduYW1lJykpCiAgICAgICAgfSkKCWlmKCBpdGVtcy5sZW5ndGggPT0gMCApIHsKCSAgICBkYXRhLm5vdGhpbmcgPSAxCiAgICAgICAgfSBlbHNlIHsKCSAgICBkYXRhLml0ZW1zID0gaXRlbXMKICAgICAgICB9CiAgICAgICAgcmV0dXJuICQuYWpheCh7CiAgICAgICAgICAgIHVybDogJ3tjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fYWpheF91cGRhdGVfYWxidW0gZm9yanM9MSBjb21waWQ9JGNvbXBhbnktPmlkIGZkaWQ9JGZpZWxkZGVmLT5pZH0mc2hvd3RlbXBsYXRlZmFsc2UnLAogICAgICAgICAgICBjYWNoZTogZmFsc2UsCgkgICAgbWV0aG9kOiAncG9zdCcsCgkgICAgZGF0YTogZGF0YSwKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uKCl7CgkgICAgY21zX2J1c3koZmFsc2UpCiAgICAgICAgfSkuZmFpbChmdW5jdGlvbih4aHIsIHR4dFN0YXR1cywgZXJyb3JUaHJvd24pIHsKCSAgICBjbXNfYnVzeShmYWxzZSkKICAgICAgICB9KQogICAgfQoKICAgIGZ1bmN0aW9uIHJlZnJlc2hfZ2FsbGVyeSgpIHsKICAgICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSBmb3IgdGhlIGZpZWxkIGZyb20gYWpheAoJICQuYWpheCh7CgkgICAgdXJsOiAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9hamF4X2dldF9hbGJ1bSBmb3Jqcz0xIGNvbXBpZD0kY29tcGFueS0+aWQgZmRpZD0kZmllbGRkZWYtPmlkfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAoJICAgIGNhY2hlOiBmYWxzZSwKICAgICAgICAgfSkudGhlbihmdW5jdGlvbihpbl9odG1sKXsKCSAgICBkaXNwbGF5X3pvbmUuaHRtbChpbl9odG1sKQoJICAgICQoJ3VsLmNvbXBhbnlfYWxidW0nLGRpc3BsYXlfem9uZSkuc29ydGFibGUoewoJICAgICAgICBzdG9wOiBmdW5jdGlvbihldikgewoJICAgICAgICAgICAgZGlzcGxheV96b25lLnRyaWdnZXIoJ2FmdGVyX3Jlb3JkZXInKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQoJICAgICQoJ2FbZGF0YS1kZWxldGVdJyxkaXNwbGF5X3pvbmUpLm9uKCdjbGljaycsZnVuY3Rpb24oZXYpewogICAgICAgICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCdsaScpLnJlbW92ZSgpCgkJZGlzcGxheV96b25lLnRyaWdnZXIoJ2FmdGVyX2RlbGV0ZScpCiAgICAgICAgICAgIH0pCiAgICAgICAgIH0pCiAgICB9CgogICAgZGlzcGxheV96b25lLm9uKCdhZnRlcl9kZWxldGUnLCBmdW5jdGlvbihldil7CiAgICAgICAgdXBkYXRlX2FsYnVtKCkudGhlbihmdW5jdGlvbigpewoJICAgIC8vIG5vdGhpbmcgaGVyZSBhdCB0aGlzIHRpbWUKCX0pCiAgICB9KQoKICAgIGRpc3BsYXlfem9uZS5vbignYWZ0ZXJfcmVvcmRlcicsZnVuY3Rpb24oZXYpewogICAgICAgIHVwZGF0ZV9hbGJ1bSgpLnRoZW4oZnVuY3Rpb24oKXsKCSAgICBsb2NhdGlvbi5yZWxvYWQoKQoJfSkKICAgIH0pCgogICAgLy8vIHRoZSB2YXJpb3VzIGhhbmRsZXJzIGFuZCBpbml0aWFsaXphdGlvbgoKICAgIGRyb3B6b25lLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgICAkKCdpbnB1dFt0eXBlPWZpbGVdJyxmb3JtKS5maXJzdCgpLnRyaWdnZXIoJ2NsaWNrJykKICAgIH0pCgogICAgZmlsZWlucHV0LmZpbGV1cGxvYWQoewogICAgICAgIGRhdGFUeXBlOiAnanNvbicsCgltYXhDaHVua1NpemU6IDE1MDAwMDAsCgl1cmw6ICd7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2FqYXhfdXBsb2FkX2FsYnVtIGZvcmpzPTF9JnNob3d0ZW1wbGF0ZT1mYWxzZScsCglmb3JtOiBudWxsLAoJYWRkOiBmdW5jdGlvbihldiwgZGF0YSkgewoJICAgIGNtc19idXN5KCkKCSAgICBkYXRhLmZvcm1EYXRhID0gewoJICAgICAgICBjb21waWQ6IHskY29tcGFueS0+aWR9LAoJCWZkaWQ6IHskZmllbGRkZWYtPmlkfQogICAgICAgICAgICB9LAoJICAgIGRhdGEuc3VibWl0KCkudGhlbihmdW5jdGlvbigpewoJICAgICAgICBmb3JtLmdldCgwKS5yZXNldCgpCgkgICAgICAgIHJlZnJlc2hfZ2FsbGVyeSgpCgkgICAgICAgIGNtc19idXN5KGZhbHNlKQogICAgICAgICAgICB9KQoJfSwKCWZhaWw6IGZ1bmN0aW9uKGV2LCBkYXRhKSB7CiAgICAgICAgICAgIGZvcm0uZ2V0KDApLnJlc2V0KCkKCSAgICBjbXNfYnVzeShmYWxzZSkKCSAgICBsZXQga2V5ID0gZGF0YS5lcnJvclRocm93bjsKCSAgICBhbGVydChlcnJvcl9tZXNzYWdlc1trZXldKyAnICgnK2tleSsnKScpOwogICAgICAgIH0KICAgIH0pCgogICAgLy8gQ29uc3RydWN0b3IKICAgIHJlZnJlc2hfZ2FsbGVyeSgpCn0pCjwvc2NyaXB0PgoKPGgzPgogICAgeyRtb2QtPkxhbmcoJ2VkaXRfYWxidW0nKX06IHskY29tcGFueS0+Y29tcGFueV9uYW1lfSAoeyRjb21wYW55LT5pZH0pCjwvaDM+Cgp7Zm9ybV9zdGFydCBjb21waWQ9JGNvbXBhbnktPmlkIGlkPSJ1cGxvYWRmb3JtIn0KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZWlucHV0IiBuYW1lPSJmaWxlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiLz4Ke2Zvcm1fZW5kfQo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGRpdiBjbGFzcz0iZ3JpZF8xMSBpbmZvcm1hdGlvbiIgaWQ9ImRyb3B6b25lIj57JG1vZC0+TGFuZygnZHJhZ19vcl9jbGlja190b191cGxvYWQnKX08L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiBwYWdlb3B0aW9ucyI+CiAgICAgPGJ1dHRvbiBkYXRhLWhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZWRpdF9jb21wYW55IGNvbXBpZD0kY29tcGFueS0+aWR9Ij57JG1vZC0+TGFuZygnbGJsX2JhY2snKX08L2J1dHRvbj4KPC9kaXY+Cgo8ZGl2IGlkPSJhbGJ1bV96b25lIj48L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_company_categories.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHNjb3BlZD4KI2NhdGxpc3QgdWwgewogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9CiNjYXRsaXN0IC5jYXRfZXh0cmFpbmZvX3pvbmUgewogICAgZGlzcGxheTogbm9uZTsKfQojY2F0bGlzdCAuY2F0LWhhcy1leHRyYSB7CiAgICBkaXNwbGF5OiBub25lOwp9Cjwvc3R5bGU+Cgo8c2NyaXB0PgokKGZ1bmN0aW9uKCl7CiAgICAkKCcjY2F0bGlzdCBhLmNhdF9leHRyYWluZm9fdG9nZ2xlJykuY2xpY2soZnVuY3Rpb24oKXsKICAgICAgICAvLyB0b2dnbGUgdGhlIGVkaXQgZmllbGRzCiAgICAgICAJbGV0IHBhcmVudCA9ICQodGhpcykuY2xvc2VzdCgnLmNhdGVnb3J5X2luZm8nKQoJJCgnLmNhdF9leHRyYWluZm9fem9uZScscGFyZW50KS50b2dnbGUoKQogICAgfSkKICAgICQoJyNjYXRsaXN0IGlucHV0W3R5cGU9dGV4dF0nKS5jaGFuZ2UoZnVuY3Rpb24oZXYpewogICAgICAgCWxldCBwYXJlbnQgPSAkKHRoaXMpLmNsb3Nlc3QoJy5jYXRlZ29yeV9pbmZvJykKCWxldCBmX2V4dHJhMSA9ICQoJ2lucHV0LmV4dHJhMScscGFyZW50KS52YWwoKQoJbGV0IGZfZXh0cmEyID0gJCgnaW5wdXQuZXh0cmEyJyxwYXJlbnQpLnZhbCgpCglsZXQgZl9leHRyYTMgPSAkKCdpbnB1dC5leHRyYTMnLHBhcmVudCkudmFsKCkKCWxldCB0eHQgPSBmX2V4dHJhMSArIGZfZXh0cmEyICsgZl9leHRyYTMKCWlmKCB0eHQubGVuZ3RoICkgewoJICAgICQoJy5jYXQtaGFzLWV4dHJhJyxwYXJlbnQpLnNob3coKQogICAgICAgIH0gZWxzZSB7CgkgICAgJCgnLmNhdC1oYXMtZXh0cmEnLHBhcmVudCkuaGlkZSgpCiAgICAgICAgfQogICAgICAgIC8vIHdoZW4gYW4gZWRpdCBmaWVsZCBpcyBjaGFuZ2VkLCB3ZSBhbmFseXplIHRoZSBwZWVycwoJLy8gYW5kIGlmIHRoZXJlIGlzIHRleHQuLi4gd2Ugc2hvdyB0aGUgY2F0LWhhcy1leHRyYSBmaWVsZAogICAgfSkKICAgICQoJyNjYXRsaXN0IGlucHV0W3R5cGU9dGV4dF0nKS50cmlnZ2VyKCdjaGFuZ2UnKQp9KQo8L3NjcmlwdD4KCntmdW5jdGlvbiBkcmF3X2NhdH0KICAgIDx1bCBjbGFzcz0iY2F0ZWdvcnlfbGlzdCI+CiAgICAgICAge2ZvcmVhY2ggJGxpc3QgYXMgJGNhdH0KICAgICAgICAgICAgPGxpIGNsYXNzPSJjYXRlZ29yeV9pbmZvIiBkYXRhLWNhdGlkPSJ7JGNhdC0+aWR9Ij4KCSAgICAgICA8ZGl2IGNsYXNzPSJjYXRlZ29yeV9pbmZvIj4KCSAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICAgICAgICA8bGFiZWw+CgkgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBuYW1lPSJjYXRfeyRjYXQtPmlkfSIge2lmICRjb21wYW55LT5jYXRlZ29yaWVzWyRjYXQtPmlkXXxkZWZhdWx0Om51bGx9Y2hlY2tlZHsvaWZ9Lz4KCQkgICAgICAgeyRjYXQtPm5hbWV9IDxlbSBjbGFzcz0iY2F0LWhhcy1leHRyYSI+Kio8L2VtPgoJCSAgIDwvbGFiZWw+CgkJICAgPGEgY2xhc3M9ImNhdF9leHRyYWluZm9fdG9nZ2xlIj57YWRtaW5faWNvbiBpY29uPSdleHBhbmQuZ2lmJ308L2E+CgkgICAgICAgPC9kaXY+CgkgICAgICAgPGRpdiBjbGFzcz0iY2F0X2V4dHJhaW5mb196b25lIj4KCSAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgICAgICAgICAJIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnZXh0cmExJyl9PC9sYWJlbD4KCSAgICAgICAgICAgIAkgPGlucHV0IGNsYXNzPSJncmlkXzkgZXh0cmExIiB0eXBlPSJ0ZXh0IiBuYW1lPSJjYXRfZXh0cmExX3skY2F0LT5pZH0iIHZhbHVlPSJ7JGNvbXBhbnktPmNhdGVnb3JpZXNbJGNhdC0+aWRdWydleHRyYTEnXXxkZWZhdWx0Om51bGx9Ii8+CgkJICAgIDwvZGl2PgoJICAgICAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgICAgICAgIAkgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdleHRyYTInKX08L2xhYmVsPgoJICAgICAgICAgICAgCSA8aW5wdXQgY2xhc3M9ImdyaWRfOSBleHRyYTIiIHR5cGU9InRleHQiIG5hbWU9ImNhdF9leHRyYTJfeyRjYXQtPmlkfSIgdmFsdWU9InskY29tcGFueS0+Y2F0ZWdvcmllc1skY2F0LT5pZF1bJ2V4dHJhMiddfGRlZmF1bHQ6bnVsbH0iLz4KCQkgICAgPC9kaXY+CgkgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICAgICAgICAgCSA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2V4dHJhMycpfTwvbGFiZWw+CgkgICAgICAgICAgICAJIDxpbnB1dCBjbGFzcz0iZ3JpZF85IGV4dHJhMyIgdHlwZT0idGV4dCIgbmFtZT0iY2F0X2V4dHJhM197JGNhdC0+aWR9IiB2YWx1ZT0ieyRjb21wYW55LT5jYXRlZ29yaWVzWyRjYXQtPmlkXVsnZXh0cmEzJ118ZGVmYXVsdDpudWxsfSIvPgoJCSAgICA8L2Rpdj4KCSAgICAgICA8L2Rpdj4KCSAgICAgICA8L2Rpdj57KiB3cmFwcGVyICp9CgkgICAgICAge2lmICRjYXQtPmNoaWxkcmVufQoJICAgICAgICAgICB7ZHJhd19jYXQgbGlzdD0kY2F0LT5jaGlsZHJlbn0KCSAgICAgICB7L2lmfQogICAJICAgIDwvbGk+CiAgICAgICAgey9mb3JlYWNofQogICAgPC91bD4Key9mdW5jdGlvbn0KCntpZiAhZW1wdHkoJGNhdGVnb3JpZXMpfQogICAgPGRpdiBpZD0iY2F0bGlzdCI+CiAgICAgICAge2RyYXdfY2F0IGxpc3Q9JGNhdGVnb3JpZXN9CiAgICA8L2Rpdj4Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_company_fields.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2ZvcmVhY2ggJGZpZWxkZGVmcyBhcyAkZGVmfQogICAgeyRmaWVsZHZhbD0kY29tcGFueS0+ZmllbGRzWyRkZWYtPmlkXXxkZWZhdWx0Om51bGx9CiAgICB7aWYgJGRlZi0+dHlwZSA9PSAndGV4dGJveCd9CiAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskZGVmLT5uYW1lfTo8L2xhYmVsPgoJICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfOCIgbmFtZT0iZmllbGRfeyRkZWYtPmlkfSIgdmFsdWU9InskZmllbGR2YWx9Ii8+Cgk8L2Rpdj4KICAgIHtlbHNlaWYgJGRlZi0+dHlwZSA9PSAnbnVtYmVyJ30KICAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRkZWYtPm5hbWV9OjwvbGFiZWw+CgkgICAgIDxpbnB1dCBjbGFzcz0iZ3JpZF84IiB0eXBlPSJudW1iZXIiIG5hbWU9ImZpZWxkX3skZGVmLT5pZH0iIHZhbHVlPSJ7JGZpZWxkdmFsfSIvPgoJPC9kaXY+CiAgICB7ZWxzZWlmICRkZWYtPnR5cGUgPT0gJ2RhdGUnfQogICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JGRlZi0+bmFtZX06PC9sYWJlbD4KCSAgICAgPGlucHV0IGNsYXNzPSJncmlkXzgiIHR5cGU9ImRhdGUiIG5hbWU9ImZpZWxkX3skZGVmLT5pZH0iIHZhbHVlPSJ7JGZpZWxkdmFsfSIvPgoJPC9kaXY+CiAgICB7ZWxzZWlmICRkZWYtPnR5cGUgPT0gJ3RlbCd9CiAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskZGVmLT5uYW1lfTo8L2xhYmVsPgoJICAgICA8aW5wdXQgY2xhc3M9ImdyaWRfOCIgdHlwZT0idGVsIiBuYW1lPSJmaWVsZF97JGRlZi0+aWR9IiB2YWx1ZT0ieyRmaWVsZHZhbH0iLz4KCTwvZGl2PgogICAge2Vsc2VpZiAkZGVmLT50eXBlID09ICdjaGVja2JveCd9CiAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskZGVmLT5uYW1lfTo8L2xhYmVsPgoJICAgICA8cCBjbGFzcz0iZ3JpZF84Ij4KCSAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjAiIG5hbWU9ImZpZWxkX3skZGVmLT5pZH0iLz4KCSAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMSIgbmFtZT0iZmllbGRfeyRkZWYtPmlkfSIge2lmICRmaWVsZHZhbH1jaGVja2Vkey9pZn0vPgoJICAgICA8L3A+Cgk8L2Rpdj4KICAgIHtlbHNlaWYgJGRlZi0+dHlwZSA9PSAndGV4dGFyZWEnfQogICAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CgkgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JGRlZi0+bmFtZX06PC9sYWJlbD4KCSAgICAgPHAgY2xhc3M9ImdyaWRfOCI+CgkgICAgICAgIHtjZ2VfdGV4dGFyZWEgd3lzaXd5Zz0kdXNlX3d5c2l3eWcgbmFtZT0iZmllbGRfeyRkZWYtPmlkfSIgdmFsdWU9JGZpZWxkdmFsfQoJICAgICA8L3A+Cgk8L2Rpdj4KICAgIHtlbHNlaWYgJGRlZi0+dHlwZSA9PSAnZHJvcGRvd24nfQogICAgICAgIHtjZF9maWVsZF9vcHRpb25zIGZpZWxkPSRkZWYtPmlkIGFzc2lnbj0nb3B0cyd9CiAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskZGVmLT5uYW1lfTo8L2xhYmVsPgoJICAgICA8c2VsZWN0IGNsYXNzPSJncmlkXzgiIG5hbWU9ImZpZWxkX3skZGVmLT5pZH0iPgoJICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRvcHRzIHNlbGVjdGVkPSRmaWVsZHZhbH0KCSAgICAgPC9zZWxlY3Q+Cgk8L2Rpdj4KICAgIHtlbHNlaWYgJGRlZi0+dHlwZSA9PSAnbXVsdGlzZWxlY3QnfQogICAgICAgIHtjZF9maWVsZF9vcHRpb25zIGZpZWxkPSRkZWYtPmlkIGFzc2lnbj0nb3B0cyd9CiAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskZGVmLT5uYW1lfTo8L2xhYmVsPgoJICAgICA8c2VsZWN0IGNsYXNzPSJncmlkXzgiIG5hbWU9ImZpZWxkX3skZGVmLT5pZH1bXSIgbXVsdGlwbGUgc2l6ZT0iNSI+CgkgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9wdHMgZmllbGQ9JGRlZi0+aWQgc2VsZWN0ZWQ9JGZpZWxkdmFsfQoJICAgICA8L3NlbGVjdD4KCTwvZGl2PgogICAge2Vsc2VpZiAkZGVmLT50eXBlID09ICdpbWFnZSd9CiAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskZGVmLT5uYW1lfTo8L2xhYmVsPgoJICAgICA8ZGl2IGNsYXNzPSJncmlkXzciPgoJICAgICAgICAgeyRmaWVsZHZhbD0kZmllbGR2YWx8ZGVmYXVsdDpudWxsfQogICAgICAgICAgICAgICAgIHtjbXNfZmlsZXBpY2tlciB0eXBlPSJpbWFnZSIgbmFtZT0iZmllbGRfeyRkZWYtPmlkfSIgdmFsdWU9JGZpZWxkdmFsfQoJCSB7aWYgJGNvbXBhbnktPmlkICYmICRmaWVsZHZhbH0KCSAgIAkgICAgIHtjZF9hZG1pbl9maWxlX3RodW1iIGNvbXBpZD0kY29tcGFueS0+aWQgZmlsZT0kZmllbGR2YWx9CgkgICAgICAgICB7L2lmfQoJICAgICA8L2Rpdj4KCTwvZGl2PgogICAge2Vsc2VpZiAkZGVmLT50eXBlID09ICdmaWxlJ30KICAgICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgoJICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRkZWYtPm5hbWV9OjwvbGFiZWw+CgkgICAgIDxkaXYgY2xhc3M9ImdyaWRfNyI+CiAgICAgICAgICAgICAgICAge2Ntc19maWxlcGlja2VyIG5hbWU9ImZpZWxkX3skZGVmLT5pZH0iIHZhbHVlPSRmaWVsZHZhbH0KCQkge2lmICRjb21wYW55LT5pZCAmJiAkZmllbGR2YWx9CgkgICAJICAgICB7Y2RfYWRtaW5fZmlsZV91cmwgY29tcGlkPSRjb21wYW55LT5pZCBmaWxlPSRmaWVsZHZhbCBhc3NpZ249J3VybCd9CgkJICAgICB7aWYgIWVtcHR5KCR1cmwpfTxhIGhyZWY9InskdXJsfSI+eyRmaWVsZHZhbH08L2E+ey9pZn0KCSAgICAgICAgIHsvaWZ9CgkgICAgIDwvZGl2PgoJPC9kaXY+CiAgICB7ZWxzZWlmICRkZWYtPnR5cGUgPT0gJ2FsYnVtJ30KICAgICAgICB7KiBub3RoaW5nIGhlcmUsIGl0IGdldHMgaXRzIG93biB0YWIgb25jZSB3ZSBoYXZlIHNhdmVkIHRoaXMgdGhpbmcgb25jZSAqfQogICAge2Vsc2V9CiAgICAgICAgeyRkZWYtPnR5cGV9IC0geyRkZWYtPm5hbWV9PGJyLz4KICAgIHsvaWZ9CnsvZm9yZWFjaH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_fielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlPgojYWRtaW5fZWRpdF9maWVsZGRlZiAuZmlsZSB7CiAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDsKICAgcGFkZGluZy1sZWZ0OiAwOwp9Cjwvc3R5bGU+CjxzY3JpcHQ+CiQoZnVuY3Rpb24oKXsKICAgIHZhciBmb3JtID0gJCgnI2FkbWluX2VkaXRfZmllbGRkZWYnKQogICAgJCgnW25hbWU9dHlwZV0nLGZvcm0pLmNoYW5nZShmdW5jdGlvbihldil7CiAgICAgICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7CiAgICAgICAgJCgnLm9wdGZpZWxkcycsZm9ybSkuaGlkZSgpOwoJJCgnLicrdmFsLGZvcm0pLnNob3coKTsKICAgIH0pCiAgICAkKCdbbmFtZT10eXBlXScpLnRyaWdnZXIoJ2NoYW5nZScpCn0pCjwvc2NyaXB0PgoKPGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRkZWRpdGZpZWxkJyl9PC9oMz4KCntmb3JtX3N0YXJ0IGZkaWQ9JGZpZWxkZGVmLT5pZCBpZD0iYWRtaW5fZWRpdF9maWVsZGRlZiJ9CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCI+eyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYnV0dG9uPgogICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJjYW5jZWwiIGZvcm1ub3ZhbGlkYXRlPnskbW9kLT5MYW5nKCdjYW5jZWwnKX08L2J1dHRvbj4KPC9kaXY+Cjxici8+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPip7JG1vZC0+TGFuZygnbmFtZScpfTwvbGFiZWw+CiAgICAgPGlucHV0IGNsYXNzPSJncmlkXzgiIG5hbWU9Im5hbWUiIHZhbHVlPSJ7JGZpZWxkZGVmLT5uYW1lfSIgbWF4bGVuZ3RoPSIyNTUiIHJlcXVpcmVkLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPip7JG1vZC0+TGFuZygndHlwZScpfTwvbGFiZWw+CiAgICAgPHNlbGVjdCBjbGFzcz0iZ3JpZF84IiBuYW1lPSJ0eXBlIiBpZD0iZmxkdHBlIj4KICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRmaWVsZHR5cGVzIHNlbGVjdGVkPSRmaWVsZGRlZi0+dHlwZX0KICAgICA8L3NlbGVjdD4KPC9kaXY+Cgo8ZGl2IGlkPSJtYXhsZW5ndGgiIGNsYXNzPSJvcHRmaWVsZHMgY19mdWxsIGNmIHRleHRib3ggdGV4dGFyZWEgbnVtYmVyIGRhdGUgdGVsIj4KICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ21heGxlbmd0aCcpfTwvbGFiZWw+CiAgICAgPGlucHV0IGNsYXNzPSJncmlkXzgiIG5hbWU9Im1heGxlbmd0aCIgdmFsdWU9InskZmllbGRkZWYtPm1heF9sZW5ndGh9IiB0eXBlPSJudW1iZXIiIG1pbj0iMCIgc3RlcD0iMSIvPgo8L2Rpdj4KPGRpdiBpZD0iZHJvcGRvd25fb3B0aW9ucyIgY2xhc3M9Im9wdGZpZWxkcyBkcm9wZG93biBtdWx0aXNlbGVjdCI+CiAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2Ryb3Bkb3duX29wdGlvbnMnKX08L2xhYmVsPgogICAgICAgICAgPHRleHRhcmVhIG5hbWU9ImRyb3Bkb3duX2RhdGEiIGNsYXNzPSJncmlkXzgiIHJvd3M9IjYiPnskZmllbGRkZWYtPmRyb3Bkb3duX2RhdGF9PC90ZXh0YXJlYT4KICAgICA8L2Rpdj4KICAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPiZuYnNwOzwvbGFiZWw+CiAgICAgICAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JG1vZC0+TGFuZygnaW5mb19kcm9wZG93bl9vcHRpb25zJyl9PC9wPgogICAgIDwvZGl2Pgo8L2Rpdj4KPGRpdiBpZD0iZmlsZV9leHRlbnNpb25zIiBjbGFzcz0ib3B0ZmllbGRzIGltYWdlIGZpbGUgYWxidW0iPgogICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF9leHRlbnNpb25zJyl9PC9sYWJlbD4KICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZ3JpZF84IiBuYW1lPSJkYXRhIiB2YWx1ZT0ieyRmaWVsZGRlZi0+ZGF0YX0iIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgPC9kaXY+CiAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj4mbmJzcDs8L2xhYmVsPgogICAgICAgICAgPHAgY2xhc3M9ImdyaWRfOCI+eyRtb2QtPkxhbmcoJ2luZm9fZXh0ZW5zaW9ucycpfTwvcD4KICAgICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnYWRtaW5fb25seScpfTwvbGFiZWw+CiAgICAgPHNlbGVjdCBjbGFzcz0iZ3JpZF84IiBuYW1lPSJhZG1pbl9vbmx5Ij4KICAgICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRmaWVsZGRlZi0+YWRtaW5fb25seX0KICAgICA8L3NlbGVjdD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPiZuYnNwOzwvbGFiZWw+CiAgICAgPHAgY2xhc3M9ImdyaWRfOCI+eyRtb2QtPkxhbmcoJ2luZm9fdXNlcmVkaXQnKX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+Jm5ic3A7PC9sYWJlbD4KICAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JG1vZC0+TGFuZygnaW5mb191c2VydmlldycpfTwvcD4KPC9kaXY+Cgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_hier.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdhZGRlZGl0X2hpZXJhcmNoeScpfTwvaDM+Cgp7Zm9ybV9zdGFydCBoaWVyaWQ9JGhpZXJhcmNoeS0+aWR9CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICAgICA8YnV0dG9uIG5hbWU9InN1Ym1pdCI+eyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYnV0dG9uPgogICAgICAgICA8YnV0dG9uIG5hbWU9ImNhbmNlbCIgZm9ybW5vdmFsaWRhdGU+eyRtb2QtPkxhbmcoJ2NhbmNlbCcpfTwvYnV0dG9uPgogICAgPC9kaXY+CiAgICA8YnIvPgogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIAkgPGxhYmVsIGNsYXNzPSJncmlkXzIiPip7JG1vZC0+TGFuZygnbmFtZScpfTwvbGFiZWw+CgkgPGlucHV0IGNsYXNzPSJncmlkXzkiIG5hbWU9Im5hbWUiIHZhbHVlPSJ7JGhpZXJhcmNoeS0+bmFtZX0iIHJlcXVpcmVkLz4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIAkgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwYXJlbnQnKX08L2xhYmVsPgoJIDxzZWxlY3QgY2xhc3M9ImdyaWRfOSIgbmFtZT0icGFyZW50X2lkIj4KCSAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyX2xpc3Qgc2VsZWN0ZWQ9JGhpZXJhcmNoeS0+cGFyZW50X2lkfQoJIDwvc2VsZWN0PgogICAgPC9kaXY+Cntmb3JtX2VuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_fielddefs_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlPgojcmVvcmRlcl9maWVsZGRlZnNfem9uZSB7CiAgIGRpc3BsYXk6IG5vbmU7Cn0KPC9zdHlsZT4KCjxzY3JpcHQ+CiQoZnVuY3Rpb24oKXsKICAgIHZhciByZW9yZGVyX2J0biA9ICQoJ2EjcmVvcmRlcl9maWVsZGRlZnNfYnRuJykKICAgIHZhciBjYW5jZWxfYnRuID0gJCgnYSNyZW9yZGVyX2ZpZWxkZGVmX21vZGVfY2FuY2VsJykKICAgIHZhciBzdWJtaXRfYnRuID0gJCgnYSNyZW9yZGVyX2ZpZWxkZGVmX21vZGVfc3VibWl0JykKICAgIHZhciByZW9yZGVyX3pvbmUgPSAkKCcjcmVvcmRlcl9maWVsZGRlZnNfem9uZScpCiAgICB2YXIgbGlzdF96b25lID0gJCgndGJvZHkjZmllbGRkZWZfbGlzdCcpCiAgICBsZXQgcmVvcmRlcl91cmwgPSAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9vcmRlcl9maWVsZHMgZm9yanM9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJwoKICAgIHJlb3JkZXJfYnRuLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgICAkKHRoaXMpLmhpZGUoKQogICAgICAgIHJlb3JkZXJfem9uZS5zaG93KCkKCWxpc3Rfem9uZS5zb3J0YWJsZSgpCiAgICB9KQogICAgY2FuY2VsX2J0bi5jbGljayhmdW5jdGlvbihldil7CiAgICAgICAgLy8gdG9kbyBhamF4eSBzdHVmZgoJbG9jYXRpb24ucmVsb2FkKCkKICAgIH0pCiAgICBzdWJtaXRfYnRuLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgICAvLyB0b2RvIGFqYXh5IHN0dWZmCglsZXQgYXJyID0gW107CgkkKCd0cicsbGlzdF96b25lKS5lYWNoKGZ1bmN0aW9uKGl0ZW0pewoJICAgIGxldCBpZCA9ICQodGhpcykuYXR0cignaWQnKQoJICAgIGFyci5wdXNoKGlkKQogICAgICAgIH0pCgkkLnBvc3QocmVvcmRlcl91cmwsIHsKCSAgICBvcmRlcjogYXJyCiAgICAgICAgfSkudGhlbihmdW5jdGlvbigpewoJICAgIGxvY2F0aW9uLnJlbG9hZCgpCiAgICAgICAgfSkKICAgIH0pCiAgICAkKCdhLmRlbF9mbGQnKS5jbGljayhmdW5jdGlvbihldil7CiAgICAgICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhcmV5b3VzdXJlJyl9JykKICAgIH0pCn0pCjwvc2NyaXB0PgoKPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgogICAgPGEgaWQ9ImZpZWxkbGlzdF9hZGRsaW5rIiBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VkaXRfZmllbGRkZWZ9Ij57YWRtaW5faWNvbiBpY29uPSduZXdvYmplY3QuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZGZpZWxkZGVmJyl9PC9hPgogICAge2lmICFlbXB0eSgkYWxsX2RlZnMpfQogICAgICAgPGEgaWQ9InJlb3JkZXJfZmllbGRkZWZzX2J0biI+e2FkbWluX2ljb24gaWNvbj0ncmVvcmRlci5naWYnfSB7JG1vZC0+TGFuZygncmVvcmRlcicpfTwvYT4KICAgIHsvaWZ9CjwvZGl2PgoKe2lmICFlbXB0eSgkYWxsX2RlZnMpfQo8ZGl2IGlkPSJyZW9yZGVyX2ZpZWxkZGVmc196b25lIj4KICAgIDxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7Ij57JG1vZC0+TGFuZygncmVvcmRlcl9tb2RlJyl9PC9kaXY+CiAgICA8ZGl2IGlkPSJyZW9yZGVyX2ZpZWxkZGVmX29wdHMiIGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgICAgICAgPGEgaWQ9InJlb3JkZXJfZmllbGRkZWZfbW9kZV9jYW5jZWwiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0nZmFsc2UuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnY2FuY2VsJyl9IHskbW9kLT5MYW5nKCdjYW5jZWwnKX08L2E+Jm5ic3A7CiAgICAgICAgPGEgaWQ9InJlb3JkZXJfZmllbGRkZWZfbW9kZV9zdWJtaXQiPntjZ2ltYWdlIGNsYXNzPSJzeXN0ZW1pY29uIiBpbWFnZT0ndHJ1ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdzdWJtaXQnKX0geyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYT4KICAgIDwvZGl2Pgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogICAgPHRoZWFkPgogICAgICAgIDx0cj4KICAgICAgCSAgICA8dGg+eyRtb2QtPkxhbmcoJ2lkJyl9PC90aD4KICAgICAgCSAgICA8dGg+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgICAJICAgIDx0aD57JG1vZC0+bGFuZygndHlwZScpfTwvdGg+CiAgICAgIAkgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keSBpZD0iZmllbGRkZWZfbGlzdCI+CiAgICAgICAge2ZvcmVhY2ggZnJvbT0kYWxsX2RlZnMgaXRlbT1lbnRyeX0KICAgIAkgICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KCSAgICB7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFkbWluX2VkaXRfZmllbGRkZWYgZmRpZD0kZW50cnktPmlkIGFzc2lnbj0nZWRpdF91cmwnfQoJICAgIHtjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZGVsX2ZpZWxkZGVmIGZkaWQ9JGVudHJ5LT5pZCBhc3NpZ249J2RlbF91cmwnfQogICAgCSAgICA8dHIgaWQ9ImZpZWxkX3skZW50cnktPmlkfSIgY2xhc3M9Inskcm93Y2xhc3N9Ij4KCSAgICAgICAgPHRkPnskZW50cnktPmlkfTwvdGQ+CiAgICAgIAkgICAgICAgIDx0ZD4KCQkgICAgPGEgaHJlZj0ieyRlZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+eyRlbnRyeS0+bmFtZX08L2E+CgkJPC90ZD4KICAgICAgCSAgICAJPHRkPgoJCSAgICB7Y2FwdHVyZSBhc3NpZ249J3RtcCd9ZmllbGRfeyRlbnRyeS0+dHlwZX17L2NhcHR1cmV9CgkJICAgIHtpZiAkZW50cnktPnR5cGUgPT0gJ2FsYnVtJ30KCQkgICAgICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogZ3JlZW47Ij57JG1vZC0+TGFuZygkdG1wKX08L3NwYW4+CgkJICAgIHtlbHNlfQogICAgICAgICAgICAgICAgICAgICAgICB7JG1vZC0+TGFuZygkdG1wKX0KCQkgICAgey9pZn0KCQk8L3RkPgogICAgICAJICAgIAk8dGQ+CgkJICAgIDxhIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnthZG1pbl9pY29uIGljb249J2VkaXQuZ2lmJ308L2E+CgkJPC90ZD4KICAgICAgCSAgICAJPHRkPgoJCSAgICA8YSBjbGFzcz0iZGVsX2ZsZCIgaHJlZj0ieyRkZWxfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYT4KCQk8L3RkPgogICAgICAgICAgICA8L3RyPgogICAgICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_hier_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlPgojcmVvcmRlcl9oaWVyX3pvbmUgewogICAgZGlzcGxheTogbm9uZTsKfQo8L3N0eWxlPgoKPHNjcmlwdD4KJChmdW5jdGlvbigpewogICAgJCgnI3Jlb3JkZXJfaGllcl96b25lJykuaGlkZSgpOwogICAgdmFyIHJlb3JkZXJfYnRuID0gJCgnYSNyZW9yZGVyX2hpZXJfYnRuJykKICAgIHZhciBjYW5jZWxfYnRuID0gJCgnYSNyZW9yZGVyX2hpZXJfbW9kZV9jYW5jZWwnKQogICAgdmFyIHN1Ym1pdF9idG4gPSAkKCdhI3Jlb3JkZXJfaGllcl9tb2RlX3N1Ym1pdCcpCiAgICB2YXIgcmVvcmRlcl96b25lID0gJCgnI3Jlb3JkZXJfaGllcl96b25lJykKICAgIHZhciBoaWVybGlzdCA9ICQoJyNoaWVybGlzdCcpCiAgICB2YXIgbGlzdF96b25lID0gJCgnI2hpZXJsaXN0ID4gdWwnKQogICAgbGV0IHJlb3JkZXJfdXJsID0gJ3tjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fb3JkZXJfaGllciBmb3Jqcz0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnCgogICAgcmVvcmRlcl9idG4uY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgICQodGhpcykuaGlkZSgpCgkkKCdzcGFuLnJlcGVhdGVkJywgbGlzdF96b25lKS5oaWRlKCkKCSQoJ2Rpdi5oaWVyaWNvbicsIGxpc3Rfem9uZSkuaGlkZSgpCgkkKCd1bCcsaGllcmxpc3QpLnJlbW92ZUNsYXNzKCdub2luZGVudCcpCiAgICAgICAgcmVvcmRlcl96b25lLnNob3coKQoKCWxpc3Rfem9uZS5uZXN0ZWRTb3J0YWJsZSh7CiAgICAgICAgICAgIGRpc2FibGVOZXN0aW5nOiAnbm8tbmVzdCcsCiAgICAgICAgICAgIGZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlLAogICAgICAgICAgICBoYW5kbGU6ICdkaXYnLAogICAgICAgICAgICBpdGVtczogJ2xpJywKICAgICAgICAgICAgb3BhY2l0eTogLjYsCiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXInLAogICAgICAgICAgICB0YWJTaXplOiAyMCwKICAgICAgICAgICAgdG9sZXJhbmNlOiAncG9pbnRlcicsCiAgICAgICAgICAgIGxpc3RUeXBlOiAndWwnLAogICAgICAgICAgICB0b2xlcmFuY2VFbGVtZW50OiAnPiBkaXYnCiAgICAgICAgIH0pCiAgICB9KQoKICAgIGNhbmNlbF9idG4uY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgIC8vIHRvZG8gYWpheHkgc3R1ZmYKCWxvY2F0aW9uLnJlbG9hZCgpCiAgICB9KQoKICAgIHN1Ym1pdF9idG4uY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgIHZhciBsaXN0ID0gbGlzdF96b25lLm5lc3RlZFNvcnRhYmxlKCdzZXJpYWxpemUnKQoJbGlzdF96b25lLm5lc3RlZFNvcnRhYmxlKCdkZXN0cm95JykKCSQucG9zdChyZW9yZGVyX3VybCxsaXN0KS50aGVuKGZ1bmN0aW9uKCl7CgkgICAgbG9jYXRpb24ucmVsb2FkKCkKICAgICAgICB9KQogICAgfSkKCiAgICAkKCdhLmRlbF9oaWVyJykuY2xpY2soZnVuY3Rpb24oZXYpewogICAgICAgIHJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnYXJleW91c3VyZScpfScpCiAgICB9KQp9KQo8L3NjcmlwdD4KCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj4KICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fZWRpdF9oaWVyfSIgdGl0bGU9InskbW9kLT5MYW5nKCdhZGRoaWVyJyl9Ij57YWRtaW5faWNvbiBpY29uPSduZXdvYmplY3QuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZGhpZXInKX08L2E+CiAgICB7aWYgIWVtcHR5KCRoaWVyKX0KICAgICAgICA8YSBpZD0icmVvcmRlcl9oaWVyX2J0biIgdGl0bGU9InskbW9kLT5MYW5nKCdyZW9yZGVyJyl9Ij57YWRtaW5faWNvbiBpY29uPSdyZW9yZGVyLmdpZid9IHskbW9kLT5MYW5nKCdyZW9yZGVyJyl9PC9hPgogICAgey9pZn0KPC9kaXY+Cgp7aWYgIWVtcHR5KCRoaWVyKX0KPGRpdiBpZD0icmVvcmRlcl9oaWVyX3pvbmUiPgogICAgPGRpdiBpZD0icmVvcmRlcl9oaWVyX21vZGVfaW5mbyIgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7Ij57JG1vZC0+TGFuZygncmVvcmRlcl9tb2RlJyl9PC9kaXY+CiAgICA8ZGl2IGlkPSJyZW9yZGVyX2hpZXJfb3B0cyIgY2xhc3M9InBhZ2VvcHRpb25zIj4KICAgIAkgPGEgaWQ9InJlb3JkZXJfaGllcl9tb2RlX2NhbmNlbCIgdGl0bGU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iPnthZG1pbl9pY29uIGljb249J2ZhbHNlLmdpZid9IHskbW9kLT5MYW5nKCdjYW5jZWwnKX08L2E+Jm5ic3A7CiAgCSA8YSBpZD0icmVvcmRlcl9oaWVyX21vZGVfc3VibWl0IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSI+e2FkbWluX2ljb24gaWNvbj0ndHJ1ZS5naWYnfSB7JG1vZC0+TGFuZygnc3VibWl0Jyl9PC9hPgogICAgPC9kaXY+CjwvZGl2PgoKe2Z1bmN0aW9uIGRvaGllcn0KPHVsIGNsYXNzPSJub2luZGVudCI+CiAgICB7Zm9yZWFjaCAkbGlzdCBhcyAkbm9kZX0KICAgICAgICB7Y21zX2FjdGlvbl91cmwgbW9kdWxlPUNvbXBhbnlEaXJlY3RvcnkgYWN0aW9uPWFkbWluX2VkaXRfaGllciBoaWVyaWQ9JG5vZGUtPmlkIGFzc2lnbj0nZWRpdF91cmwnfQogICAgICAgIHtjbXNfYWN0aW9uX3VybCBtb2R1bGU9Q29tcGFueURpcmVjdG9yeSBhY3Rpb249YWRtaW5fZGVsX2hpZXIgaGllcmlkPSRub2RlLT5pZCBhc3NpZ249J2RlbGV0ZV91cmwnfQoJPGxpIGlkPSJoaWVyX3skbm9kZS0+aWR9Ij4KICAgICAgICAgICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KCSAgICA8ZGl2IGNsYXNzPSJsYWJlbCBoaWVybm9kZSB7JHJvd2NsYXNzfSI+CgkgICAgICAgICA8ZGl2IGNsYXNzPSJoaWVyaWQiPgoJCSAgICAgIDxzcGFuPnskbm9kZS0+aWR9PC9zcGFuPgoJCSA8L2Rpdj4KCSAgICAJIDxkaXYgY2xhc3M9ImhpZXJuYW1lIj4KCQkgICAgICA8c3BhbiBjbGFzcz0icmVwZWF0ZWQiPntyZXBlYXQgc3RyaW5nPScmbmJzcDsmZ3Q7Jm5ic3A7JyB0aW1lcz0kbm9kZS0+ZGVwdGh9PC9zcGFuPgoJCSAgICAgIDxhIGNsYXNzPSJlZGl0X2hpZXIiIGhyZWY9InskZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnskbm9kZS0+bmFtZX08L2E+CgkgICAgCSA8L2Rpdj4KCQkgPGRpdiBjbGFzcz0iaGllcmljb24iPgogICAgICAgICAgCSAgICAgIDxhIGhyZWY9InskZWRpdF91cmx9IiBjbGFzcz0iZWRpdF9oaWVyIiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXQnKX0iPnthZG1pbl9pY29uIGljb249J2VkaXQuZ2lmJ308L2E+CiAgICAgICAgCSA8L2Rpdj4KICAgICAgICAJIDxkaXYgY2xhc3M9ImhpZXJpY29uIj4KCSAgCSAgICAgIHtpZiAhJG5vZGUtPmNoaWxkcmVufQogICAgICAgICAgCSAgICAgIDxhIGhyZWY9InskZGVsZXRlX3VybH0iIGNsYXNzPSJkZWxfaGllciIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYT4KCSAgCSAgICAgIHsvaWZ9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgoJICAgIDwvZGl2PgogICAgICAgICAgICB7aWYgJG5vZGUtPmNoaWxkcmVufXtkb2hpZXIgbGlzdD0kbm9kZS0+Y2hpbGRyZW59ey9pZn0KCTwvbGk+CiAgICB7L2ZvcmVhY2h9CjwvdWw+CnsvZnVuY3Rpb259Cgo8ZGl2IGlkPSJoaWVybGlzdCIgY2xhc3M9ImhpZXJsaXN0IGNmIj4KICB7ZG9oaWVyIGxpc3Q9JGhpZXJ9CjwvZGl2PgoKey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_csv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRjc3YnKX08L2gzPgo8c2NyaXB0PgokKGZ1bmN0aW9uKCl7CiAgICQoJ1tuYW1lPWZpbGVdJykuY2hhbmdlKGZ1bmN0aW9uKGV2KXsKICAgICAgJCgnW25hbWU9c2Nhbl0nKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpCiAgIH0pCn0pCjwvc2NyaXB0PgoKPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPnskbW9kLT5MYW5nKCdpbmZvX2ltcG9ydF9zdGVwMScpfTwvZGl2PgoKe2lmICEkZHVwbGljYXRlX25hbWVzX2FsbG93ZWR9CiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj57JG1vZC0+TGFuZygnd2Fybl9pbXBvcnRfZHVwbGljYXRlY29tcGFueW5hbWVzJyl9PC9kaXY+CnsvaWZ9Cgp7Zm9ybV9zdGFydH0KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxidXR0b24gbmFtZT0ic2NhbiIgZGlzYWJsZWQ+eyRtb2QtPkxhbmcoJ3Byb21wdF9zY2FuJyl9PC9idXR0b24+CiAgICA8YnV0dG9uIG5hbWU9ImNhbmNlbCIgZm9ybW5vdmFsaWRhdGU+eyRtb2QtPkxhbmcoJ2NhbmNlbCcpfTwvYnV0dG9uPgo8L2Rpdj4KPGJyLz4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2RlbGltZXRlcicpfTo8L2xhYmVsPgogICAgPGRpdiBjbGFzcz0iZ3JpZF8zIj4KICAgICAgICA8aW5wdXQgbmFtZT0iZGVsaW1pdGVyIiBzaXplPSIzIiBtYXhsZW5ndGg9IjEiIHZhbHVlPSJ7JHNldHRpbmdzLT5kZWxpbWV0ZXJ9IiByZXF1aXJlZC8+CiAgICA8L2Rpdj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2VuY2xvc3VyZScpfTo8L2xhYmVsPgogICAgPGRpdiBjbGFzcz0iZ3JpZF8zIj4KICAgICAgICA8aW5wdXQgbmFtZT0iZW5jbG9zdXJlIiBzaXplPSIzIiBtYXhsZW5ndGg9IjEiIHZhbHVlPSd7JHNldHRpbmdzLT5lbmNsb3N1cmV9JyByZXF1aXJlZC8+CiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L2xhYmVsPgogICAgPHNlbGVjdCBjbGFzcz0iZ3JpZF8zIiBuYW1lPSJoaWVyYXJjaHkiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kaGllcmFyY2h5X2xpc3Qgc2VsZWN0ZWQ9JHNldHRpbmdzLT5oaWVyYXJjaHl9CiAgICA8L3NlbGVjdD4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX06PC9sYWJlbD4KICAgIDxzZWxlY3QgY2xhc3M9ImdyaWRfMyIgbmFtZT0iY2F0ZWdvcnkiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY2F0ZWdvcnlfbGlzdCBzZWxlY3RlZD0kc2V0dGluZ3MtPmNhdGVnb3J5fQogICAgPC9zZWxlY3Q+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdkZmx0c3RhdHVzJyl9OjwvbGFiZWw+CiAgICA8c2VsZWN0IG5hbWU9InN0YXR1cyIgY2xhc3M9ImdyaWRfMyIgcmVxdWlyZWQ+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdGF0dXNlcyBzZWxlY3RlZD0kc2V0dGluZ3MtPnN0YXR1c30KICAgIDwvc2VsZWN0PgoKICAgIHtpZiAkaGF2ZV9nZW9jb2Rlcn0KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnbG9va3VwJyl9OjwvbGFiZWw+CiAgICA8c2VsZWN0IG5hbWU9Imdlb2NvZGUiIGNsYXNzPSJncmlkXzMiPgogICAgICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBzZWxlY3RlZD0kc2V0dGluZ3MtPmdlb2NvZGV9CiAgICA8L3NlbGVjdD4KICAgIHsvaWZ9CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdpbXBvcnRfZmlsZW5hbWUnKX06PC9sYWJlbD4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiBjbGFzcz0iZ3JpZF82Ii8+CjwvZGl2Pgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_csv2.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHNjb3BlZD4KdGFibGUjaW1wb3J0X3RhYmxlIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgd2lkdGg6IDk1JTsKICAgIG1heC1oZWlnaHQ6IDMwZW07CiAgICBkaXNwbGF5OiBibG9jazsKICAgIG92ZXJmbG93OiBzY3JvbGw7Cn0KdGFibGUjaW1wb3J0X3RhYmxlIHRyIHRkOmZpcnN0LWNoaWxkIHsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIGxpZ2h0Z3JheTsKfQp0YWJsZSNpbXBvcnRfdGFibGUgdHIgdGQ6bnRoLWNoaWxkKGV2ZW4pIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKfQp0YWJsZSNpbXBvcnRfdGFibGUgdHIgdGQgewogICAgcGFkZGluZy1sZWZ0OiAwLjVlbTsKICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgZ3JheTsKfQo8L3N0eWxlPgo8aDM+eyRtb2QtPkxhbmcoJ2ltcG9ydGNzdicpfTwvaDM+Cgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtb2QtPkxhbmcoJ2luZm9faW1wb3J0X3N0ZXAyJyl9PC9kaXY+Cgp7Zm9ybV9zdGFydCBmaWxlPSRmaWxlbmFtZX0KPHRhYmxlIGlkPSJpbXBvcnRfdGFibGUiPgogICAgPHRib2R5PgogICAgICAgIDx0cj4KCSAgICAgIDx0ZD5NYXA8L3RkPgoJICAgICAge2ZvciAkbGkgPSAwIHRvICRubGluZXMtMSBzdGVwIDF9CgkgICAgICAgICAgPHRkPkxpbmV7JGxpKzF9PC90ZD4KICAgICAgICAgICAgICB7L2Zvcn0KCTwvdHI+CiAgICAgICAge2ZvciAkY29sID0gMCB0byAkbmNvbHMtMSBzdGVwIDF9CiAgICAgICAgICAgPHRyPgoJICAgICAgPHRkPgoJICAgICAgICAgIDxzZWxlY3QgbmFtZT0ibWFwW3skY29sfV0iPgoJCSAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY29sdW1ucyBzZWxlY3RlZD0kbWFwWyRjb2xdfGRlZmF1bHQ6bnVsbH0KCQkgIDwvc2VsZWN0PgoJICAgICAgPC90ZD4KCSAgICAgIHtmb3IgJGxpID0gMCB0byAkbmxpbmVzLTEgc3RlcCAxfQoJICAgICAgICAgIDx0ZD57JGxpbmVzWyRsaV1bJGNvbF18bmwyYnJ9PC90ZD4KCSAgICAgIHsvZm9yfQogIAkgICA8L3RyPgogICAgICAgIHsvZm9yfQogICAgPC90Ym9keT4KPC90YWJsZT4KPGhyLz4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2ltcG9ydF9zdGFydHJlY29yZCcpfTo8L2xhYmVsPgogICAgPGlucHV0IHR5cGU9Im51bWJlciIgbmFtZT0ic3RhcnRfcmVjb3JkIiB2YWx1ZT0ieyRzdGFydF9yZWNvcmR9IiBtaW49IjEiIHN0ZXA9IjEiLz4KPC9kaXY+Cjxici8+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICA8YnV0dG9uIG5hbWU9ImltcG9ydCI+SW1wb3J0PC9idXR0b24+CiAgICA8YnV0dG9uIG5hbWU9ImNhbmNlbCI+eyRtb2QtPkxhbmcoJ2NhbmNlbCcpfTwvYnV0dG9uPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_csv3.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRjc3YnKX08L2gzPgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X251bWltcG9ydGVkJyl9OjwvbGFiZWw+CiAgICA8cCBjbGFzcz0iZ3JpZF84Ij57JG51bV9zYXZlZH08L3A+CjwvZGl2PgoKe2lmICFlbXB0eSgkZXJyb3JzKX0KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2Vycm9ycycpfTo8L2xhYmVsPgogICAgPHAgY2xhc3M9ImdyaWRfOCI+CiAgICAgICAge2ZvcmVhY2ggJGVycm9ycyBhcyAkZXJyb3J9CgkgICAgPHNwYW4+eyRlcnJvcn08L3NwYW4+e2lmICEkZXJyb3JAbGFzdH08YnIvPnsvaWZ9Cgl7L2ZvcmVhY2h9CiAgICA8L3A+CjwvZGl2Pgp7L2lmfQoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj4mbmJzcDsKICAgIDxwIGNsYXNzPSJncmlkXzgiPgogICAgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249ZGVmYXVsdGFkbWlufSI+eyRtb2QtPkxhbmcoJ2xibF9iYWNrJyl9PC9hPgogICAgPC9wPgo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_import_kml.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfa21sJyl9PC9oMz4KCntpZiAhaXNzZXQoJGZpbmlzaGVkKSAmJiAhJGFsbG93X2R1cGxpY2F0ZV9jb21wYW55bmFtZXN9CiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj57JG1vZC0+TGFuZygnd2Fybl9pbXBvcnRfZHVwbGljYXRlY29tcGFueW5hbWVzJyl9PC9kaXY+CntlbHNlaWYgaXNzZXQoJGZpbmlzaGVkKX0KICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAJIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X251bWltcG9ydGVkJyl9OjwvbGFiZWw+CiAgCSA8cCBjbGFzcz0iZ3JpZF84Ij57JGltcG9ydGVkfTwvcD4KICAgIDwvZGl2PgogICAge2lmIGlzc2V0KCRpbXBvcnRfZXJyb3JzKX0KICAgICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KCSAgICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X251bWVycm9ycycpfTo8L2xhYmVsPgoJICAgICAgPHAgY2xhc3M9ImdyaWRfOCI+e2NvdW50KCRpbXBvcnRfZXJyb3JzKX08L3A+CiAgIAkgPC9kaXY+CgkgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAJICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfZXJyb3JzJyl9OjwvbGFiZWw+CiAgIAkgICAgICA8dWwgY2xhc3M9ImdyaWRfOCI+CgkgICAgICAgICAge2ZvcmVhY2ggZnJvbT0kaW1wb3J0X2Vycm9ycyBpdGVtPSdvbmUnfQoJCSAgICAgIDxsaT57JG9uZX08L2xpPgogICAgICAgICAgICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgPC9kaXY+CiAgICB7L2lmfQp7L2lmfQoKe2Zvcm1fc3RhcnR9CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfa21sZmlsZScpfTo8L2xhYmVsPgogIDxpbnB1dCBjbGFzcz0iZ3JpZF84IiB0eXBlPSJmaWxlIiBuYW1lPSJrbWxmaWxlIiBzaXplPSI1MCIvPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfcmVxdWlyZV9hZGRyZXNzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJyZXF1aXJlX2FkZHJlc3MiIHZhbHVlPSIxIi8+CiAgPC9kaXY+CjwvZGl2PgoKe2lmICRjYW5fZG9fbG9va3VwcyA9PSAxfQo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2NvbnZlcnRfYWRkcmVzcycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZG9fY29udmVydF9hZGRyZXNzIiB2YWx1ZT0iMSIvPgogIDwvZGl2Pgo8L2Rpdj4Key9pZn0KCntpZiAhZW1wdHkoJGNhdGVnb3J5bGlzdCl9CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdjYXRlZ29yeScpfTo8L2xhYmVsPgogIDxzZWxlY3QgbmFtZT0iY2F0ZWdvcnkiIGNsYXNzPSJncmlkXzgiPgogICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kY2F0ZWdvcnlsaXN0fQogIDwvc2VsZWN0Pgo8L2Rpdj4Key9pZn0KCntpZiAhZW1wdHkoJGhpZXJhcmNoeWxpc3QpfQo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnaGllcmFyY2h5Jyl9OjwvbGFiZWw+CiAgPHNlbGVjdCBuYW1lPSJoaWVyYXJjaHkiIGNsYXNzPSJncmlkXzgiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRoaWVyYXJjaHlsaXN0fQogIDwvc2VsZWN0Pgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3RhdHVzJyl9PC9sYWJlbD4KICA8c2VsZWN0IG5hbWU9InN0YXR1cyIgY2xhc3M9ImdyaWRfMyI+e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdGF0dXNlc308L3NlbGVjdD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCI+eyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYnV0dG9uPgogICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9ImNhbmNlbCI+eyRtb2QtPkxhbmcoJ2NhbmNlbCcpfTwvYnV0dG9uPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></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/frontendimport_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRpZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb21wdF9pbXBvcnRfdGVtcGxhdGUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8dGV4dGFyZWEgbmFtZT0ieyRhY3Rpb25pZH1mZWltcG9ydF90ZW1wbGF0ZSI+eyRmZWltcG9ydF90ZW1wbGF0ZX08L3RleHRhcmVhPgogICAgPGJyLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9ZmVpbXBvcnRfc3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1mZWltcG9ydF9yZXNldCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldHRvZmFjdG9yeScpfSIvPgogIDwvcD4KPC9kaXY+CnskaWZvcm1lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_abclist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogZGVmYXVsdCBhYmNsaXN0IHRlbXBsYXRlICp9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cm5hdi5hYmNsaXN0IHVsIHsKICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9Cm5hdi5hYmNsaXN0IGxpLmN1cnJlbnQgYSB7CiAgIGNvbG9yOiByZWQ7Cn0KbmF2LmFiY2xpc3QgbGkgewogICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgIG1hcmdpbi1yaWdodDogMC41ZW07Cn0KPC9zdHlsZT4KCntpZiAhZW1wdHkoJGVycm9yKX0KICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JGVycm9yfTwvZGl2Pgp7ZWxzZX0KICAgPG5hdiBjbGFzcz0iYWJjbGlzdCI+CiAgICAgPHVsPgogICAgICAge2ZvcmVhY2ggJGFiY2xpc3QgYXMgJGxldHRlciA9PiAkY291bnR9CiAgICAgICAgIDxsaSB7aWYgJGxldHRlciA9PSAkY3VycmVudH1jbGFzcz0iY3VycmVudCJ7L2lmfT4KCSAgIHtpZiAkY291bnQgPCAxfQoJICAgICB7JGxldHRlcn0KCSAgIHtlbHNlfQogIAkgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249YWJjbGlzdCBuYW1lPSRsZXR0ZXJ9Ij57JGxldHRlcn08L2E+CgkgICB7L2lmfQoJIDwvbGk+CiAgICAgICB7L2ZvcmVhY2h9CiAgICAgPC91bD4KICAgPC9uYXY+CgogICB7aWYgIWVtcHR5KCRpdGVtcyl9CiAgICAgIDxoMz5JdGVtczwvaDM+CiAgICAgIHsqIHBhZ2luYXRpb24gKn0KICAgICAge2lmICRpdGVtcy0+cGFnZWNvdW50ID4gMX0KICAgICAgICAgPGRpdiBjbGFzcz0icm93IHRleHQtcmlnaHQiPgoJICAgIHtmb3JtX3N0YXJ0IG5hbWU9JGN1cnJlbnR9CgkgICAgICAgPGxhYmVsPnskbW9kLT5MYW5nKCdwYWdlJyl9OgogIAkgICAgICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1wYWdlIj4KCQkgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRpdGVtcy0+cGFnZUFycmF5KCkgc2VsZWN0ZWQ9JGl0ZW1zLT5wYWdlfQoJICAgICAgICAgICA8L3NlbGVjdD4KCQkgICA8YnV0dG9uPnskbW9kLT5MYW5nKCdzdWJtaXQnKX08L2J1dHRvbj4KCSAgICAgICA8L2xhYmVsPgoJICAgIHtmb3JtX2VuZH0KCSA8L2Rpdj4KICAgICAgey9pZn0KCiAgICAgIHtmb3JlYWNoICRpdGVtcyBhcyAkZW50cnl9CiAgICAgICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpDb21wYW55RGlyZWN0b3J5O29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCd9CiAgICAgIHsvZm9yZWFjaH0KICAgey9pZn0Key9pZn0=]]></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_advsearch_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Zvcm1fc3RhcnQgc2VhcmNoX25hbWU9JHNlYXJjaF9uYW1lfQogICAgeyogcGhyYXNlIHNlYXJjaCAqfQogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIj57JG1vZC0+TGFuZygncGhyYXNlJyl9PC9sYWJlbD4KICAgIAk8aW5wdXQgY2xhc3M9ImNvbC1tZC05IiB0eXBlPSJ0ZXh0IiBuYW1lPSJwaHJhc2UiIHZhbHVlPSJ7JHNhdmVkLnBocmFzZXxkZWZhdWx0OicnfSIvPgogICAgPC9kaXY+CgogICAgeyogbmFtZSBzdWJzdHJpbmcgc2VhcmNoICp9CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMiPnskbW9kLT5MYW5nKCduYW1lJyl9PC9sYWJlbD4KICAgICAgICA8aW5wdXQgY2xhc3M9ImNvbC1tZC05IiB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIiB2YWx1ZT0ieyRzYXZlZC5uYW1lfGRlZmF1bHQ6Jyd9Ii8+CiAgICA8L2Rpdj4KCiAgICB7KiBhZGRyZXNzIHN1YnN0cmluZyBzZWFyY2ggKn0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPHAgY2xhc3M9ImNvbC1tZC0zIj57JG1vZC0+TGFuZygnYWRkcmVzcycpfTwvcD4KICAgICAgICA8aW5wdXQgY2xhc3M9ImNvbC1tZC05IiB0eXBlPSJ0ZXh0IiBuYW1lPSJhZGRyZXNzIiBzaXplPSI0MCIgdmFsdWU9Inskc2F2ZWQuYWRkcmVzc3xkZWZhdWx0OicnfSIvPgogICAgPC9kaXY+CgogICAgeyogYWR2YW5jZWQgZmlsdGVyaW5nIG9uIGhpZXJhcmNoaWVzICp9CiAgICB7Y2RfaGllcl9vcHRpb25zIGFzc2lnbj1vcHRzfQogICAge2lmICFlbXB0eSgkb3B0cyl9CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgCSAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIj57JG1vZC0+TGFuZygnaGllcmFyY2h5Jyl9OjwvbGFiZWw+CiAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9ImNvbC1tZC05IiBuYW1lPSJoaWVyIj4KICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kc2F2ZWQuaGllcnxkZWZhdWx0Om51bGx9CiAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgIDwvZGl2PgogICAgey9pZn0KCiAgICB7KiBhZHZhbmNlZCBmaWx0ZXJpbmcgb24gY2F0ZWdvcmllcyAqfQogICAge2NkX2hpZXJfb3B0aW9ucyBhc3NpZ249b3B0c30KICAgIHtpZiAhZW1wdHkoJG9wdHMpfQogICAgICAgIHskb3B0cz1bJyc9PiRtb2QtPkxhbmcoJ2FueScpXSskb3B0c30KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgoJICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMiPnskbW9kLT5MYW5nKCdjYXRlZ29yaWVzJyl9OjwvbGFiZWw+CiAJICAgIDxkaXYgY2xhc3M9ImNvbC1tZC05Ij4KCSAgICAgICAge2ZvcmVhY2ggJG9wdHMgYXMgJGNhdF9pZCA9PiAkY2F0X25hbWV9CgkJICAgPGxhYmVsPgoJCSAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9ImNhdGVnb3J5W10iIHZhbHVlPSJ7JGNhdF9pZH0iIHtpZiBpbl9hcnJheSgkY2F0X2lkLCAkc2F2ZWQuY2F0ZWdvcnl8ZGVmYXVsdDpbXSl9Y2hlY2tlZHsvaWZ9Lz4KCQkgICAgICAgeyRjYXRfbmFtZX0KCQkgICA8L2xhYmVsPgoJCSAgIHtpZiAhJGNhdF9uYW1lQGxhc3R9PGJyLz57L2lmfQoJCXsvZm9yZWFjaH0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICB7L2lmfQoKICAgIHsqIGZvciBsYXQvbG9uZyByYWRpdXMgc2VhcmNoZXMgKn0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyI+eyRtb2QtPkxhbmcoJ2Nvb3JkaW5hdGVzJyl9PC9sYWJlbD4KICAgICAgICB7KiBub3RlLCBpZiB2YWx1ZXMgYXJlIHN1cHBsaWVkIGZvciBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIHRoZW4gcG9zdGFsIGNvZGUgaXMgaWdub3JlZCAqfQoJPGRpdiBjbGFzcz0iY29sLW1kLTkgcm93Ij4KICAgICAgCSAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC02Ij57JG1vZC0+TGFuZygnbGF0aXR1ZGUnKX06CgkgICAgICAgIDxpbnB1dCBpZD0ibGF0aXR1ZGUiIHR5cGU9Im51bWJlciIgc3RlcD0iMC4wMDAwMDEiIG1pbj0iLTE4MC4wIiBtYXg9IjE4MC4wIiBuYW1lPSJsYXQiIG1heGxlbmd0aD0iMTAiIHZhbHVlPSJ7JHNhdmVkLmxhdHxkZWZhdWx0OicnfSIvPgoJICAgIDwvbGFiZWw+CiAgICAgIAkgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtNiI+eyRtb2QtPkxhbmcoJ2xvbmdpdHVkZScpfToKCSAgICAgICAgPGlucHV0IGlkPSJsb25naXR1ZGUiIHR5cGU9Im51bWJlciIgc3RlcD0iMC4wMDAwMDEiIG1pbj0iLTE4MC4wIiBtYXg9IjE4MC4wIiBuYW1lPSJsb25nIiBtYXhsZW5ndGg9IjEwIiB2YWx1ZT0ieyRzYXZlZC5sb25nfGRlZmF1bHQ6Jyd9Ii8+CgkgICAgPC9sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgIAkgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyI+eyRtb2QtPkxhbmcoJ3JhZGl1cycpfSA8ZW0+KGttKTwvZW0+OjwvbGFiZWw+CiAgICAgICAgIHthc3NpZ24gdmFyPSdyYWRpdXNlcycgdmFsdWU9WzEwPT4xMCwyNT0+MjUsNTA9PjUwLDEwMD0+MTAwXX0KICAgICAgICAgPHNlbGVjdCBjbGFzcz0iY29sLW1kLTkiIG5hbWU9InJhZGl1c19rbSI+CiAgICAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHJhZGl1c2VzIHNlbGVjdGVkPSRzYXZlZC5yYWRpdXNfa218ZGVmYXVsdDpudWxsfQogICAgICAgICA8L3NlbGVjdD4KICAgIDwvZGl2PgoKICAgIHsqIGZpbGx0ZXJpbmcgb24gY3VzdG9tIGZpZWxkcyAqfQogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIj5DdXN0b20gRmllbGQgdmFsdWUgdGVzdDo8L2xhYmVsPgoJPGlucHV0IGNsYXNzPSJjb2wtbWQtOSIgbmFtZT0iZm9vZmllbGQiIHZhbHVlPSJ7JHNhdmVkLmZvb2ZpZWxkfGRlZmF1bHQ6bnVsbH0iLz4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGJ1dHRvbj57JG1vZC0+TGFuZygnc3VibWl0Jyl9PC9idXR0b24+CiAgICAgICAgPGJ1dHRvbiBuYW1lPSJyZXNldCI+eyRtb2QtPkxhbmcoJ3Jlc2V0Jyl9PC9idXR0b24+CiAgICA8L2Rpdj4Ke2Zvcm1fZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_categorylist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Z1bmN0aW9uIGRvX2NhdGVnb3JpZXN9Cjx1bD4KICB7Zm9yZWFjaCAkbGlzdCBhcyAkb2JqfQogIDxsaT4KICAgIHsqIG5vdGUuLi4gdGhlIGNvdW50IHJlcHJlc2VudHMgdGhlIHN1bSBvZiB0aGUgY29tcGFuaWVzIG1hdGNoaW5nIHRoZSBxdWVyeSBpbiB0aGlzIGNhdGVnb3J5LCBhbmQgYWxsIGNoaWxkcmVuICp9CiAgICB7aWYgaXNzZXQoJG9iai0+Y291bnQpICYmICRvYmotPmNvdW50IGd0IDB9CiAgICAgIHtjZF9lbmNvZGVfcXVlcnkgcXVlcnk9ImFuZDpzdGF0dXM6ZXE6cHVibGlzaGVkfGFuZDpjYXRlZ29yeTp7JG9iai0+aWR9OjF8bGltaXQ6MTUiIGFzc2lnbj0nZW5jb2RlZCd9CiAgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249ZGVmYXVsdCBjYXRlZ29yeWlkPSRvYmotPmlkIHJldHVybmlkPSRzdW1tYXJ5cGFnZX0iPnskb2JqLT5uYW1lfGVzY2FwZX08L2E+ICA8ZW0+KHskb2JqLT5jb3VudH0pPC9lbT4KICAgIHtlbHNlfQogICAgICB7JG9iai0+bmFtZXxlc2NhcGV9IDxlbT4oMCk8L2VtPgogICAgey9pZn0KICAgIHtpZiBpc3NldCgkb2JqLT5jaGlsZHJlbikgJiYgY291bnQoJG9iai0+Y2hpbGRyZW4pfXtkb19jYXRlZ29yaWVzIGxpc3Q9JG9iai0+Y2hpbGRyZW59ey9pZn0KICA8L2xpPgogIHsvZm9yZWFjaH0KPC91bD4Key9mdW5jdGlvbn0Ke2RvX2NhdGVnb3JpZXMgbGlzdD0kY2F0ZWdvcnlsaXN0fQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogQ29tcGFueURpcmVjdG9yeSBEZXRhaWwgVGVtcGxhdGUgKn0Ke3N0cmlwfQo8YXJ0aWNsZSBjbGFzcz0iQ29tcGFueURpcmVjdG9yeUl0ZW0iPgogIHtjZF9nZXRmaWxldXJsIGNvbXBpZD0kZW50cnktPmlkIGFzc2lnbj1maWxlX3VybF9iYXNlfQogIHtjbXNfYWN0aW9uX3VybCBhY3Rpb249ZGV0YWlsIGNvbXBpZD0kZW50cnktPmlkIGFzc2lnbj0nY2Fub25pY2FsJ30KICB7YXNzaWduIHZhcj0nY2Fub25pY2FsJyB2YWx1ZT0kY2Fub25pY2FsIHNjb3BlPSdnbG9iYWwnfXsqIGNtc21zIHYyLjIueCAqfQogIHsqIGZvciBjbXNtcyAyLjMrOiB7Y21zX3BhZ2VzdHItPnNldCBjYW5vbmljYWw9JGNhbm9uaWNhbH0gKn0KCiAgPGRpdiBjbGFzcz0icm93Ij4KICAgICA8ZGl2IGNsYXNzPSJzcGFuMTAiPgogICAgICAgPGg0PgogICAgICAgICAgIHtpZiAkZW50cnktPmxvZ29fbG9jYXRpb24gbmUgJyd9CgkgICAgICAgPGltZyBzcmM9InskZmlsZV91cmxfYmFzZX0veyRlbnRyeS0+bG9nb19sb2NhdGlvbn0iIHdpZHRoPSIxNTAiIGFsdD0ieyRlbnRyeS0+bG9nb19sb2NhdGlvbn0iLz4KCSAgIHsvaWZ9CgkgICB7aWYgaXNzZXQoJGl0ZW1zKX0KCSAgICAgICB7KiB3ZSBhcmUgaW4gYSBzdW1tYXJ5IHZpZXcgKn0KCSAgICAgICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWRldGFpbHMgY29tcGlkPSRlbnRyeS0+aWR9Ij57JGVudHJ5LT5jb21wYW55X25hbWV9PC9hPgoJICAge2Vsc2V9CgkgICAgICAgeyRlbnRyeS0+Y29tcGFueV9uYW1lfQoJICAgey9pZn0KICAgICAgIDwvaDQ+CiAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj57JG1vZC0+TGFuZygnYWRkcmVzcycpfTwvZGl2PgoJICAgPGRpdiBjbGFzcz0iY29sLW1kLTgiPnskZW50cnktPmFkZHJlc3N8bmwyYnJ9PC9kaXY+CiAgICAgICA8L2Rpdj4KICAgICAgIHsqIGZvciB0ZXN0aW5nLCBzbyB5b3UgY2FuIHNlZSB0aGUgY2Fub25pY2FsIFVSSSAqfQogICAgICAge2lmICRlbnRyeS0+d2Vic2l0ZSBuZSAnJ30KICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KCSAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPnskbW9kLT5MYW5nKCd3ZWJzaXRlJyl9PC9kaXY+CgkgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC04Ij48YSBocmVmPSJ7JGVudHJ5LT53ZWJzaXRlfSI+eyRlbnRyeS0+d2Vic2l0ZX08L2E+PC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgICAgey9pZn0KICAgICAgIHtpZiAkZW50cnktPnRlbGVwaG9uZSBuZSAnJ30KICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KCSAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTMiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygndGVsZXBob25lJyl9PC9kaXY+CgkgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC04Ij48YSBocmVmPSJ0ZWw6eyRlbnRyeS0+dGVsZXBob25lfSI+eyRlbnRyeS0+dGVsZXBob25lfTwvYT48L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQogICAgICAge2lmICRlbnRyeS0+ZmF4IG5lICcnfQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgoJICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMyI+eyRDb21wYW55RGlyZWN0b3J5LT5MYW5nKCdmYXgnKX08L2Rpdj4KCSAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTgiPnskZW50cnktPmZheH08L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQoKICAgICAgIHtpZiAkZW50cnktPmNvbnRhY3RfZW1haWwgbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CgkgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2NvbnRhY3RlbWFpbCcpfTwvZGl2PgoJICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+CgkgICAgICAgICB7bWFpbHRvIGFkZHJlc3M9JGVudHJ5LT5jb250YWN0X2VtYWlsIGVuY29kZT1oZXh9CiAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQoKICAgICAgIHtpZiAkZW50cnktPnBpY3R1cmVfbG9jYXRpb24gbmUgJyd9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CgkgICAgeyogcGVyc29uYWxseSwgSSB3b3VsZCB1c2UgQ0dTbWFydEltYWdlIGhlcmUgKn0KCSAgICA8aW1nIHNyYz0ieyRmaWxlX3VybF9iYXNlfS97JGVudHJ5LT5waWN0dXJlX2xvY2F0aW9ufSIgd2lkdGg9IjE1MCIgYWx0PSJ7JGVudHJ5LT5waWN0dXJlX2xvY2F0aW9ufSIvPgogICAgICAgICA8L2Rpdj4KICAgICAgIHsvaWZ9CgogICAgICAge2lmICRlbnRyeS0+aGllcl9pZCA+IDB9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CgkgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0zIj57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2hpZXJhcmNoeScpfTwvZGl2PgoJICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+e2NkX2hpZXJicmVhZGNydW1iIHBhZ2U9JHN1bW1hcnlwYWdlIGhpZXI9JGVudHJ5LT5oaWVyX2lkIGhpZXJfY2hpbGRyZW49MX08L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICB7L2lmfQoKICAgICAgIHtpZiAkZW50cnktPmNhdGVnb3JpZXN9CiAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY29sLW1kLTMiPnskQ29tcGFueURpcmVjdG9yeS0+TGFuZygnY2F0ZWdvcmllcycpfTwvc3Bhbj4KCSAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTgiPgogICAgICAgICAgICAge2ZvcmVhY2ggJGVudHJ5LT5jYXRlZ29yaWVzIGFzICRjYXRfaWQgPT4gJHJlY30KCSAgIAkge2NkX2dldGNhdGVnb3J5IGNhdGVnb3J5PSRjYXRfaWQgYXNzaWduPSdjYXRlZ29yeSd9CgkgICAJIHtjbXNfYWN0aW9uX3VybCBhY3Rpb249ZGVmYXVsdCBjYXRlZ29yeWlkPSRjYXRfaWQgdXJsb25seT0xIGFzc2lnbj11cmx9CiAgICAgICAgICAgCSA8YSBocmVmPSJ7JHVybH0iIHRpdGxlPSJ7JGNhdGVnb3J5LT5kZXNjcmlwdGlvbnxzdHJpcF90YWdzfHN1bW1hcml6ZTo0MH0iPnskY2F0ZWdvcnktPm5hbWV9PC9hPntpZiAhJHJlY0BsYXN0fSwgey9pZn0KICAgICAgICAgICAgIHsvZm9yZWFjaH0KCSAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgICAgey9pZn0KCiAgICAgICB7aWYgJGVudHJ5LT5kZXRhaWxzIG5lICcnfQogICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgoJICAgICA8c3BhbiBjbGFzcz0iY29sLW1kLTMiPnskbW9kLT5MYW5nKCdkZXRhaWxzJyl9PC9zcGFuPgoJICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+eyRlbnRyeS0+ZGV0YWlsc308L2Rpdj4KCSA8L2Rpdj4KICAgICAgIHsvaWZ9CgogICAgICAge2lmICRlbnRyeS0+ZmllbGRzIH0KICAgICAgICAgICB7KiBoYW5kbGUgZXZlcnl0aGluZyBidXQgaW1hZ2VzICp9CiAgICAgICAgICAge2ZvcmVhY2ggJGVudHJ5LT5maWVsZHMgYXMgJGZpZWxkX2lkID0+ICR2YWx1ZX0KCSAgICAgICB7KiBmb3IgbXVsdGlzZWxlY3QgYW5kIG90aGVyIGZpZWxkcywgJHZhbHVlIG1heSBiZSBhbiBhcnJheSAqfQoJICAgICAgIHtjZF9nZXRmaWVsZGRlZiBmaWVsZD0kZmllbGRfaWQgYXNzaWduPSdjdXN0b21maWVsZCd9CgkgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAge2lmICRjdXN0b21maWVsZC0+dHlwZSA9PSAnaW1hZ2UnfQoJICAgICAgICAgICB7JHVybD0ieyRmaWxlX3VybF9iYXNlfS97JHZhbHVlfSJ9CgkgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb2wtbWQtMyI+eyRjdXN0b21maWVsZC0+bmFtZX06PC9zcGFuPiA8YSBocmVmPSJ7JHVybH0iPjxpbWcgc3JjPSJ7JHVybH0iIHdpZHRoPSIxMDAiIGFsdD0ieyR2YWx1ZX0iLz48L2E+CiAgICAgICAgICAgICAgIHtlbHNlaWYgJGN1c3RvbWZpZWxkLT50eXBlID09ICdmaWxlJ30KCSAgICAgICAgICAgeyR1cmw9InskZmlsZV91cmxfYmFzZX0veyR2YWx1ZX0ifQogICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbC1tZC0zIj57JGN1c3RvbWZpZWxkLT5uYW1lfTo8L3NwYW4+IDxhIGNsYXNzPSJjb2wtbWQtOCIgaHJlZj0ieyR1cmx9Ij57JHZhbHVlfTwvYT4KICAgICAgICAgICAgICAge2Vsc2VpZiAkY3VzdG9tZmllbGQtPnR5cGUgPT0gJ2FsYnVtJ30KCSAgICAgICAgICAgeyogaGFuZGxlZCBiZWxvdyBpbiB0aGlzIGV4YW1wbGUgKn0KCSAgICAgICB7ZWxzZWlmICRjdXN0b21maWVsZC0+dHlwZSA9PSAnbXVsdGlzZWxlY3QnfQogICAgICAgICAgICAgICAJICAgPHNwYW4gY2xhc3M9ImNvbC1tZC0zIj57JGN1c3RvbWZpZWxkLT5uYW1lfTo8L3NwYW4+CiAgICAgICAgICAgICAgIAkgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+e2lmIGlzX2FycmF5KCR2YWx1ZSl9e2ltcGxvZGUoJzxici8+JywgJHZhbHVlKX17L2lmfTwvZGl2PgogICAgICAgICAgICAgICB7ZWxzZWlmICRjdXN0b21maWVsZC0+bmFtZSA9PSAndGV4dGFyZWExJ30KCSAgICAgICAgICAgeyogd2Uga25vdyB0aGF0IHRoaXMgaXMgYSB0ZXh0YXJlYSwgd2l0aG91dCBhIHd5c2l3eWcuLiBzbyB3ZSB1c2UgbmwyYnIgb24gdGhlIHZhbHVlICp9CiAgICAgICAgICAgICAgIAkgICA8c3BhbiBjbGFzcz0iY29sLW1kLTMiPnskY3VzdG9tZmllbGQtPm5hbWV9Ojwvc3Bhbj4KICAgICAgICAgICAgICAgCSAgIDxkaXYgY2xhc3M9ImNvbC1tZC04Ij57JHZhbHVlfHN0cmlwX3RhZ3N8bmwyYnJ9PC9kaXY+CgkgICAgICAge2Vsc2V9CiAgICAgICAgICAgICAgIAkgICA8c3BhbiBjbGFzcz0iY29sLW1kLTMiPnskY3VzdG9tZmllbGQtPm5hbWV9Ojwvc3Bhbj4KICAgICAgICAgICAgICAgCSAgIDxkaXYgY2xhc3M9ImNvbC1tZC04Ij57JHZhbHVlfTwvZGl2PgogICAgICAgICAgICAgICB7L2lmfQoJICAgICAgIDwvZGl2PgogICAgICAgICAgIHsvZm9yZWFjaH0KCiAgICAgICAgICAgeyogdGhpcyBpcyBhbiBleGFtcGxlIG9mIGhhbmRsaW5nIGEgY3VzdG9tIGZpZWxkIGJ5IGl0J3MgbmFtZSBpbiB3aGF0ZXZlciBvcmRlciB3ZSB3YW50ICp9CgkgICB7Y2RfZ2V0ZmllbGRkZWYgbmFtZT0nYWxidW0xJyBhc3NpZ249J2N1c3RvbWZpZWxkJ30KCSAgIHtpZiAkY3VzdG9tZmllbGQgJiYgaXNzZXQoJGVudHJ5LT5maWVsZHNbJGN1c3RvbWZpZWxkLT5pZF0pfQoJICAgICAgIHskdmFsdWU9JGVudHJ5LT5maWVsZHNbeyRjdXN0b21maWVsZC0+aWR9XX0KCSAgICAgICB7KiAkdmFsdWUgc2hvdWxkIGJlIGFuIGFycmF5LCBhbmQgY3VzdG9tZmllbGQtPnR5cGUgc2hvdWxkIGJlIGFsYnVtICp9CgkgICAgICAgeyR1cmxfYmFzZT0ieyRmaWxlX3VybF9iYXNlfS9hbGJ1bV97JGN1c3RvbWZpZWxkLT5pZH0ifQoJICAgICAgIDxzcGFuIGNsYXNzPSJjb2wtbWQtMyI+eyRjdXN0b21maWVsZC0+bmFtZX06PC9zcGFuPgogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+CgkgICAgICAgICAgIHtmb3JlYWNoICR2YWx1ZSBhcyAkZmlsZW5hbWV9CgkgICAgICAgICAgICAgICB7KiBpdCBpcyBwcm9iYWJseSBhIGdvb2QgaWRlYSB0byB1c2UgQ0dTbWFydEltYWdlIHRvIG1hbmFnZSB0aGUgdGh1bWJuYWlscyBoZXJlICp9CgkgICAgICAgICAgICAgICB7JHVybD0ieyR1cmxfYmFzZX0veyRmaWxlbmFtZX0ifQoJICAgICAgICAgICAgICAgPGEgaHJlZj0ieyR1cmx9Ij48aW1nIHNyYz0ieyR1cmx9IiB3aWR0aD0iMTAwIiBhbHQ9InskZmlsZW5hbWV9Ii8+PC9hPgoJICAgICAgICAgICB7L2ZvcmVhY2h9CgkgICAgICAgPC9kaXY+CgkgICB7L2lmfQoKICAgICAgIHsvaWZ9CgogICAgIDwvZGl2PnsqIHNwYW4xMCAqfQogIDwvZGl2PnsqIHRvcCByb3cgKn0KPC9hcnRpY2xlPgp7L3N0cmlwfQ==]]></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[e2NnY3NzX2FkZH0KW2RhdGEtbmFtZT1kcm9wem9uZV0gewogICAgY3Vyc29yOiBwb2ludGVyOwp9CmFbZGF0YS1pdGVtLWRlbF0gewogICAgY3Vyc29yOiBwb2ludGVyOwp9CnsqIGZvcm1hdCB0aGUgYWxidW0gKn0KW2RhdGEtYWxidW0taXRlbV0gewogICAgZGlzcGxheTogYmxvY2s7CiAgICB3aWR0aDogMzAlOwogICAgbWF4LWhlaWdodDogMTMwcHg7CiAgICBtYXJnaW46IDAuNWVtOwogICAgcGFkZGluZzogMC41ZW07CiAgICBmbG9hdDogbGVmdDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGxpZ2h0Z3JheTsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKfQpbZGF0YS1hbGJ1bS1pdGVtXSBpbWcgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgbWF4LWhlaWdodDogMTAwcHg7Cn0Key9jZ2Nzc19hZGR9CntjZ2pzX3JlcXVpcmUgbGliPSd1aSxmaWxldXBsb2FkJ30KCjxzY3JpcHQgZGVmZXI+CnsqIHRoaXMgc2NyaXB0IGlzIGRlZmVycmVkIHNvIHRoYXQgaXQgbG9hZHMgYWZ0ZXIgdGhlIGNnanMgc3R1ZmYsIGFzc3VtaW5nIHRoYXQge2NnanNfcmVuZGVyfSBpcyBjYWxsZWQgbmVhciB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIHRlbWxhdGUgKn0KJChmdW5jdGlvbigpewogICAgdmFyIGZvcm0gPSAkKCdmb3JtW2RhdGEtbmFtZT11cGxvYWRmb3JtXScpCiAgICB2YXIgZmlsZWlucHV0ID0gJCgnaW5wdXRbbmFtZT1maWxlXScsZm9ybSkKICAgIHZhciBkaXNwbGF5X3pvbmUgPSAkKCdbZGF0YS1uYW1lPWFsYnVtX3pvbmVdJykKICAgIHZhciB0ZW1wbGF0ZSA9ICQoJ2RpdltkYXRhLW5hbWU9aW1hZ2Vfc2tlbF0nKQogICAgdmFyIGRyb3B6b25lID0gJCgnW2RhdGEtbmFtZT1kcm9wem9uZV0nKQogICAgdmFyIGVycm9yX21lc3NhZ2VzID0gewogICAgICAgIGFjY2VwdEZpbGVUeXBlczogJ3skbW9kLT5MYW5nKCdlcnJfdXBsb2FkX2JhZGZpbGV0eXBlJyl9JywKICAgICAgICBtYXhGaWxlU2l6ZTogJ3skbW9kLT5MYW5nKCdlcnJfdXBsb2FkX21heGZpbGVzaXplJyl9JywKCW1pbkZpbGVTaXplOiAneyRtb2QtPkxhbmcoJ2Vycl91cGxvYWRfbWluZmlsZXNpemUnKX0nLAoJbWF4TnVtYmVyT2ZGaWxlczogJ3skbW9kLT5MYW5nKCdlcnJfdXBsb2FkX21heE51bWJlck9mRmlsZXMnKX0nCiAgICB9CgogICAgZnVuY3Rpb24gZHJhd19pbWFnZShkYXRhKSB7CiAgICAgICAgLy8gZHJhdyBvbmUgaW1hZ2UKICAgICAgICBsZXQgZWxlbSA9ICQoJ1tkYXRhLWFsYnVtLWl0ZW1dJywgdGVtcGxhdGUpLmNsb25lKCkKCSQoZWxlbSkuYXR0cignZGF0YS1uYW1lJyxkYXRhLm5hbWUpCgkkKCdbZGF0YS1pdGVtLWltZ10nLCBlbGVtKS5hdHRyKCdzcmMnLGRhdGEudXJsKS5hdHRyKCdhbHQnLGRhdGEubmFtZSkKCSQoJ1tkYXRhLWl0ZW0tbmFtZV0nLCBlbGVtKS50ZXh0KGRhdGEubmFtZSkKCWRpc3BsYXlfem9uZS5hcHBlbmQoZWxlbSkKICAgIH0KCiAgICBmdW5jdGlvbiBjbGVhcl9nYWxsZXJ5KCkgewogICAgICAgIGRpc3BsYXlfem9uZS5lbXB0eSgpCiAgICB9CgogICAgZnVuY3Rpb24gcmVmcmVzaF9nYWxsZXJ5KCkgewogICAgICAgICQuYWpheCh7CgkgICAgdXJsOiAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hamF4X2dldF9hbGJ1bSBmb3Jqcz0xIGNvbXBpZD0kY29tcGFueS0+aWQgZmRpZD0kZmllbGRkZWYtPmlkfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAoJICAgIGNhY2hlOiBmYWxzZQogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24oZGF0YSl7CgkgICAgY2xlYXJfZ2FsbGVyeSgpCgkgICAgaWYoIGRhdGEubGVuZ3RoICkgewoJICAgICAgICBmb3IoIGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKysgKSB7CgkJICAgIGRyYXdfaW1hZ2UoZGF0YVtpXSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICB9CgogICAgZnVuY3Rpb24gdXBkYXRlX2FsYnVtKCkgewogICAgICAgIGxldCBpdGVtcyA9IFtdCglsZXQgZGF0YT0ge30KCSQoJ1tkYXRhLWFsYnVtLWl0ZW1dJyxkaXNwbGF5X3pvbmUpLmVhY2goZnVuY3Rpb24oaWR4LGl0ZW0pewoJICAgIGl0ZW1zLnB1c2goJCh0aGlzKS5kYXRhKCduYW1lJykpCiAgICAgICAgfSkKCWlmKCBpdGVtcy5sZW5ndGggPT0gMCApIHsKCSAgICBkYXRhLm5vdGhpbmcgPSAxCiAgICAgICAgfSBlbHNlIHsKCSAgIGRhdGEuaXRlbXMgPSBpdGVtcwogICAgICAgIH0KCS8vIGRvIHRoZSBhamF4IGNhbGwKCXJldHVybiAkLmFqYXgoewoJICAgIHVybDogJ3tjbXNfYWN0aW9uX3VybCBhY3Rpb249YWpheF91cGRhdGVfYWxidW0gZm9yanM9MSBjb21waWQ9JGNvbXBhbnktPmlkIGZkaWQ9JGZpZWxkZGVmLT5pZH0mc2hvd3RlbXBsYXRlPWZhbHNlJywKCSAgICBjYWNoZTogZmFsc2UsCgkgICAgbWV0aG9kOiAncG9zdCcsCgkgICAgZGF0YTogZGF0YQogICAgICAgIH0pCiAgICB9CgogICAgLy8vIHZhcmlvdXMgaGFuZGxlcnMKICAgIGRyb3B6b25lLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgICAkKCdpbnB1dFt0eXBlPWZpbGVdJyxmb3JtKS5maXJzdCgpLnRyaWdnZXIoJ2NsaWNrJykKICAgIH0pCgogICAgZGlzcGxheV96b25lLm9uKCdjbGljaycsJ2FbZGF0YS1pdGVtLWRlbF0nLGZ1bmN0aW9uKGV2KXsKICAgICAgICBsZXQgY29udGFpbmVyID0gJCh0aGlzKS5jbG9zZXN0KCdbZGF0YS1hbGJ1bS1pdGVtXScpCgljb250YWluZXIucmVtb3ZlKCkKCXVwZGF0ZV9hbGJ1bSgpLnRoZW4ocmVmcmVzaF9nYWxsZXJ5KQogICAgfSkKCiAgICBmaWxlaW5wdXQuZmlsZXVwbG9hZCh7CiAgICAgICAgZGF0YVRwZTogJ2pzb24nLAoJbWF4Q2h1bmtTaXplOiAxNTAwMDAwLAoJdXJsOiAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hamF4X3VwbG9hZF9hbGJ1bSBmb3Jqcz0xIGNvbXBpZD0kY29tcGFueS0+aWQgZmRpZD0kZmllbGRkZWYtPmlkfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAoJZm9ybTogbnVsbCwKCWFkZDogZnVuY3Rpb24oZXYsIGRhdGEpIHsKCSAgICBkYXRhLmZvcm1EYXRhID0gewoJICAgICAgICBjb21waWQ6IHskY29tcGFueS0+aWR9LAoJCWZkaWQ6IHskZmllbGRkZWYtPmlkfQogICAgICAgICAgICB9LAoJICAgIGRhdGEuc3VibWl0KCkudGhlbihmdW5jdGlvbigpewoJICAgICAgICBmb3JtLmdldCgwKS5yZXNldCgpCgkgICAgICAgIHJlZnJlc2hfZ2FsbGVyeSgpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSwKCWZhaWw6IGZ1bmN0aW9uKGV2LCBkYXRhKSB7CgkgICAgZm9ybS5nZXQoMCkucmVzZXQoKQoJICAgIGxldCBrZXkgPSBkYXRhLmVycm9yVGhyb3duCgkgICAgYWxlcnQoZXJyb3JfbWVzc2FnZXNba2V5XSsgJyAoJytrZXkrJyknKTsKICAgICAgICB9CiAgICB9KQoKICAgIC8vLyBhbmQgc3RhcnR1cAogICAgcmVmcmVzaF9nYWxsZXJ5KCkKCn0pCjwvc2NyaXB0PgoKeyogeW91IGNhbiBtb2RpZnkgZnJvbSBoZXJlIGZvcndhcmQgLi4uIGRvIG5vdCBjaGFuZ2UgdGhlIG5hbWVzIG9mIHZhcmlvdXMgZWxlbWVudHMgICp9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9hbGJ1bScpfTogeyRjb21wYW55LT5jb21wYW55X25hbWV9PC9oMz4KCntmb3JtX3N0YXJ0IGNvbXBpZD0kY29tcGFueS0+aWQgZmRpZD0kZmllbGRkZWYtPmlkIGZvcm0tZGF0YS1uYW1lPSd1cGxvYWRmb3JtJyBpZD0idXBsb2FkZm9ybSJ9CiAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPgp7Zm9ybV9lbmR9CjxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iIGRhdGEtbmFtZT0iZHJvcHpvbmUiPnskbW9kLT5MYW5nKCdkcmFnX29yX2NsaWNrX3RvX3VwbG9hZCcpfTwvZGl2PgoKPGRpdiBkYXRhLW5hbWU9ImltYWdlX3NrZWwiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+CiAgIHsqIHRoaXMgaXMgdGhlIHRlbXBsYXRlICp9CiAgIDxkaXYgZGF0YS1hbGJ1bS1pdGVtIGNsYXNzPSJhbGJ1bS1pdGVtIj4KICAgICAgIDxpbWcgc3JjPSIiIHdpZHRoPSIxMDAiIGFsdD0iIiBkYXRhLWl0ZW0taW1nLz4KICAgICAgIDxhIGRhdGEtaXRlbS1kZWw+WFg8L2E+CiAgICAgICA8c3BhbiBkYXRhLWl0ZW0tbmFtZT48L3NwYW4+CiAgIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9InJvdy1mbHVpZCI+CiAgICA8YSBocmVmPSJ7Y21zX3NlbGZsaW5rIGhyZWY9JHBhZ2VfaWR9IiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij57JG1vZC0+TGFuZygnbGJsX2JhY2snKX08L2E+CjwvZGl2PgoKPGRpdiBkYXRhLW5hbWU9ImFsYnVtX3pvbmUiPjwvZGl2Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHNjb3BlZD4KZGl2LmZpbGVfYXJlYSB7CiAgICBkaXNwbGF5OiBub25lOwp9Cjwvc3R5bGU+Cgp7KiB0aGlzIGZvcm0gcmVxdWlyZXMganF1ZXJ5LXVpIGFuZCB0aGUgYmx1ZWltcC1maWxlIHVwbG9hZCBsaWJyYXJpZXMuICBZb3UgY2FuIGVpdGhlciBpbmNsdWRlIHRoZW0geW91cnNlbGYgc29tZSBvdGhlciB3YXksIG9yIGVuc3VyZSB0aGF0IHtjZ2pzX3JlbmRlcn0gaXMgYXQgdGhlIGJvdHRvbSBvZnlvdXIgcGFnZSB0ZW1wbGF0ZSAqfQp7Y2dqc19yZXF1aXJlIGxpYj0ndWksIGZpbGV1cGxvYWQnfQo8c2NyaXB0IGRlZmVyPgppZiggdHlwZW9mIGpRdWVyeSA9PSAndW5kZWZpbmVkJyApIGFsZXJ0KCdqUXVlcnkgaXMgcmVxdXJpZWQgZm9yIHRoaXMgdGVtcGxhdGUnKTsKJChmdW5jdGlvbigpewogICAgdmFyIGdlb2NvZGVfdXJsID0gJ3tjbXNfYWN0aW9uX3VybCBhY3Rpb249J2FqYXhfZ2VvbG9jYXRlJyBmb3Jqcz0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnCgogICAgJCgnI2VkaXRfYWxidW0nKS5jbGljayhmdW5jdGlvbihldil7CiAgICAgICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjb25maXJtX2VkaXRfYWxidW0nKX0nKQogICAgfSkKCiAgICAkKCdbZGF0YS11cGxvYWQtYXNdJykuZWFjaChmdW5jdGlvbihpZHgsZWwpewogICAgICAgbGV0IGNvbnRhaW5lciA9ICQoZWwpCiAgICAgICBsZXQgZmllbGRfbmFtZSA9IGNvbnRhaW5lci5hdHRyKCdkYXRhLXVwbG9hZC1hcycpCiAgICAgICBsZXQgaGlkZGVuID0gJCgnaW5wdXRbbmFtZT0nK2ZpZWxkX25hbWUrJ10nLCBjb250YWluZXIpCiAgICAgICBsZXQgdXBsb2FkX2VsID0gJCgnaW5wdXRbdHlwZT1maWxlXScsIGNvbnRhaW5lcikKICAgICAgIGlmKCBoaWRkZW4udmFsKCkgIT0gJycgKSAkKCcuZmlsZV9hcmVhJyxjb250YWluZXIpLnNob3coKQoKICAgICAgIHVwbG9hZF9lbC5maWxldXBsb2FkKHsKICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLAoJICAgcGFyYW1OYW1lOiAnZmlsZScsCgkgICBtYXhDaHVua1NpemU6IDE1MDAwMDAsCgkgICB1cmw6ICd7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFqYXhfdXBsb2FkX3RtcCBmb3Jqcz0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAoJICAgZm9ybTogbnVsbCwKCSAgIGFkZDogZnVuY3Rpb24oZXYsIGRhdGEpIHsKCSAgICAgICBkYXRhLmZvcm1EYXRhID0gewoJICAgICAgICAgICBndWlkOiAneyRyZXFfZ3VpZH0nCiAgICAgICAgICAgICAgIH0sCgkgICAgICAgZGF0YS5zdWJtaXQoKS50aGVuKGZ1bmN0aW9uKCl7CgkgICAgICAgICAgIC8vIG5lZWQgdG8gZ2V0IHRoZSB1cGxvYWQgbmFtZSBJTlRPIHQKCQkgICBsZXQgZmlsZSA9IGRhdGEuZmlsZXNbMF0ubmFtZQoJCSAgIGxldCBwYXJhbU5hbWUgPSBkYXRhLnBhcmFtTmFtZQoJCSAgICQoJ1tuYW1lPScrZmllbGRfbmFtZSsnXScsIGNvbnRhaW5lcikudmFsKGZpbGUpCgkJICAgJCgnW2RhdGEtdXBsb2FkLW5hbWVdJywgY29udGFpbmVyKS50ZXh0KGZpbGUpCgkJICAgJCgnLmZpbGVfYXJlYScsIGNvbnRhaW5lcikuc2hvdygpCiAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgfQogICAgICAgIH0pCiAgICB9KQogICAgJCgnW2RhdGEtZGVsZXRlXScpLmNoYW5nZShmdW5jdGlvbihldil7CiAgICAgICAgbGV0IGNvbnRhaW5lciA9ICQodGhpcykuY2xvc2VzdCgnW2RhdGEtdXBsb2FkLWFzXScpCgkkKCcuZmlsZV9hcmVhJywgY29udGFpbmVyKS5oaWRlKCkKCSQoJ1tkYXRhLXVwbG9hZC1uYW1lXScsIGNvbnRhaW5lcikudGV4dCgnJykKCSQoJ2lucHV0W3R5cGU9ZmlsZV0nLCBjb250YWluZXIpLnZhbCgnJykKCSQoJ2lucHV0W3R5cGU9aGlkZGVuXScsIGNvbnRhaW5lcikudmFsKCcnKQogICAgfSkKCiAgICAkKCdbZGF0YS1nZW9jb2RlXScpLmNsaWNrKGZ1bmN0aW9uKGV2KXsKICAgICAgICBldi5wcmV2ZW50RGVmYXVsdCgpCglsZXQgYWRkcmVzcyA9ICQoJ1tuYW1lPWFkZHJlc3NdJykudmFsKCkKCWlmKCBhZGRyZXNzID09ICcnICkgcmV0dXJuCglsZXQgbGF0ZmxkID0gJCgnW25hbWU9bGF0aXR1ZGVdJykKCWxldCBsbmdmbGQgPSAkKCdbbmFtZT1sb25naXR1ZGVdJykKCWlmKCBsYXRmbGQudmFsKCkgIT0gJycgfHwgbG5nZmxkLnZhbCgpICE9ICcnICkgewoJICAgIGFsZXJ0KCd7JG1vZC0+TGFuZygnbXNnX2Nvb3Jkc2V4aXN0Jyl9JykKCSAgICByZXR1cm4KICAgICAgICB9CgoJJC5hamF4KHsKCSAgICB1cmw6IGdlb2NvZGVfdXJsLAoJICAgIG1ldGhvZDogJ3Bvc3QnLAoJICAgIGRhdGE6IHsKCSAgICAgICAgYWRkcmVzczogYWRkcmVzcwogICAgICAgICAgICB9CiAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKXsKCSAgICBpZiggZGF0YS5sYXRpdHVkZSAmJiBkYXRhLmxvbmdpdHVkZSAmJiBkYXRhLmNvbmZpZGVuY2UgPiAwICkgewoJICAgICAgICBsYXRmbGQudmFsKGRhdGEubGF0aXR1ZGUpCgkJbG5nZmxkLnZhbChkYXRhLmxvbmdpdHVkZSkKICAgICAgICAgICAgfQogICAgICAgIH0pLmZhaWwoZnVuY3Rpb24oeGhyLHRleHRTdGF0dXMsZXJyb3JUaHJvd24pewoJICAgIGFsZXJ0KCdlcnJvciAnK2Vycm9yVGhyb3duKQoJfSkKICAgIH0pCn0pOwo8L3NjcmlwdD4KCntmdW5jdGlvbiBmaWxlX3VwbG9hZF9maWVsZH0KICAgIDxkaXYgZGF0YS11cGxvYWQtYXM9InskX25hbWV9Ij4KICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JF9uYW1lfSIgdmFsdWU9InskX3ZhbHVlfSIvPnsqIHN0b3JlcyB0aGUgdmFsdWUgb24gZm9ybSBzdWJtaXNzaW9uICp9CiAgICAJPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JF9wcm9tcHR9OjwvbGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBzaXplPSI1MCIgYWNjZXB0PSJ7JF9hY2NlcHR9Ii8+CiAgICAgICAgPC9kaXY+CiAgICAJPGRpdiBjbGFzcz0iZmlsZV9hcmVhIHJvdyI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMiPiZuYnNwOzwvbGFiZWw+eyogZW1wdHkgKn0KCSAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+CgkgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMiIGRhdGEtdXBsb2FkLW5hbWU+eyRfdmFsdWV9PC9sYWJlbD4KCSAgICAgCTxsYWJlbCBjbGFzcz0iY29sLW1kLTgiPgoJICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBkYXRhLWRlbGV0ZSBuYW1lPSJkZWxfbG9nbyIgdmFsdWU9IjEiLz4geyRtb2QtPkxhbmcoJ2RlbGV0ZScpfQoJICAgICAgICA8L2xhYmVsPgoJICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CnsvZnVuY3Rpb259Cgp7aWYgJGNvbXBhbnktPmlkID4gMX0KICAgIDxoND57JG1vZC0+TGFuZygnZWRpdGNvbXBhbnknKX08L2g0Pgp7ZWxzZX0KICAgIDxoND57JG1vZC0+TGFuZygnYWRkY29tcGFueScpfTwvaDQ+CnsvaWZ9Cgp7aWYgIWVtcHR5KCRmaW5hbF9tZXNzYWdlKX0KCiAgICB7KiB0aGUgY29tcGFueSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZWRpdGVkLiAgV2UgY2FuIGNob29zZSB0byBkaXNwbGF5IGEgbWVzc2FnZSwgb3IgdG8gcmVkaXJlY3Qgc29tZXdoZXJlICp9CiAgICB7KiBzZWUgdGhlIHtjbXNfc2VsZmxpbmsgaHJlZj0nc29tZV9hbGlhcyd9IGFuZCB7cmVkaXJlY3RfdG99IHBsdWdpbnMgKn0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPgogICAgICAgIDxkaXY+eyRmaW5hbF9tZXNzYWdlfTwvZGl2PgoJPGhyLz4KICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBocmVmPSJ7Y21zX3NlbGZsaW5rIGhyZWY9JHBhZ2VfaWR9Ij57JG1vZC0+TGFuZygnbGJsX2JhY2snKX08L2E+CiAgICA8L2Rpdj4KCntlbHNlfQoKICAgIHtpZiAhZW1wdHkoJG1lc3NhZ2UpfTxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciI+eyRtZXNzYWdlfTwvZGl2PnsvaWZ9CgogICAgeyogdGhpcyB0ZW1wbGF0ZSB1c2VzIGJvb3RzdHJhcDMgc3R5bGVzICp9CiAgICB7Zm9ybV9zdGFydCBjb21wYW55aWQ9JGNvbXBhbnktPmlkIGd1aWQ9JHJlcV9ndWlkfXtjZ2VfZm9ybV9jc3JmfQogICAgPGRpdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IiByb2xlPSJuYXZpZ2F0aW9uIj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIG5hbWU9InN1Ym1pdCI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tb2siPjwvc3Bhbj4geyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYnV0dG9uPgogICAgICAgIDxhIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIGhyZWY9IntjbXNfc2VsZmxpbmsgaHJlZj0kcGFnZV9pZH0iPnskbW9kLT5MYW5nKCdsYmxfYmFjaycpfTwvYT4KICAgIAl7aWYgJGNvbXBhbnktPmlkID4gMCAmJiAkaGF2ZV9hbGJ1bX0KICAgICAgICAgICAgPGEgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgaWQ9ImVkaXRfYWxidW0iIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249ZmVfZWRpdF9hbGJ1bSBjb21wYW55aWQ9JGNvbXBhbnktPmlkIGZkaWQ9JGhhdmVfYWxidW19Ij4KICAgICAgICAgICAgICAgeyRtb2QtPkxhbmcoJ2VkaXRfYWxidW0nKX0KCSAgICA8L2E+CiAgICAgICAgey9pZn0KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnY29tcGFueW5hbWUnKX06PC9sYWJlbD4KCTxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjb21wYW55X25hbWUiIHZhbHVlPSJ7JGNvbXBhbnktPmNvbXBhbnlfbmFtZX0iIG1heGxlbmd0aD0iMjU1IiBjbGFzcz0iY29sLW1kLTgiIHJlcXVpcmVkLz4KICAgIDwvZGl2PgoKICAgIHtpZiBpc3NldCgkc3RhdHVzZXMpfQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ3N0YXR1cycpfTo8L2xhYmVsPgoJICAgIDxzZWxlY3QgbmFtZT0ic3RhdHVzIiBjbGFzcz0iY29sLW1kLTgiPgogICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRzdGF0dXNlcyBzZWxlY3RlZD0kY29tcGFueS0+c3RhdHVzfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICA8L2Rpdj4KICAgIHsvaWZ9CgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdhZGRyZXNzJyl9OjwvbGFiZWw+CiAgICAJPHRleHRhcmVhIGlkPSJhZGRyZXNzIiBuYW1lPSJhZGRyZXNzIiBjbGFzcz0iY29sLW1kLTgiIHJvd3M9IjUiPnskY29tcGFueS0+YWRkcmVzc308L3RleHRhcmVhPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgCTxsYWJlbCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2xhdGl0dWRlJyl9OjwvbGFiZWw+CiAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgbmFtZT0ibGF0aXR1ZGUiIGlkPSJsYXRpdHVkZSIgdmFsdWU9InskY29tcGFueS0+bGF0aXR1ZGV9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIgbWluPSItMTgwIiBtYXg9IjE4MCIgc3RlcD0iMC4wMDAwMDEiLz4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdsb25naXR1ZGUnKX06PC9sYWJlbD4KICAgICAgICA8aW5wdXQgdHlwZT0ibnVtYmVyIiBuYW1lPSJsb25naXR1ZGUiIGlkPSJsb25naXR1ZGUiIHZhbHVlPSJ7JGNvbXBhbnktPmxvbmdpdHVkZX0iIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIiBtYXhsZW5ndGg9IjEwIiBtaW49Ii0xODAiIG1heD0iMTgwIiBzdGVwPSIwLjAwMDAwMSIvPgogICAgPC9kaXY+CiAgICB7aWYgJGNhbl9nZW9jb2RlfQogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPiZuYnNwOzwvbGFiZWw+Cgk8YnV0dG9uIGRhdGEtZ2VvY29kZT57JG1vZC0+TGFuZygnbG9va3VwJyl9PC9idXR0b24+CiAgICA8L2Rpdj4KICAgIHsvaWZ9CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ3RlbGVwaG9uZScpfTo8L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZWwiIG5hbWU9InRlbGVwaG9uZSIgdmFsdWU9InskY29tcGFueS0+dGVsZXBob25lfSIgbWF4bGVuZ3RoPSIyMCIgY2xhc3M9ImNvbC1tZC04Ii8+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnZmF4Jyl9OjwvbGFiZWw+CiAgICAJPGlucHV0IHR5cGU9InRlbCIgbmFtZT0iZmF4IiB2YWx1ZT0ieyRjb21wYW55LT5mYXh9IiBtYXhsZW5ndGg9IjIwIiBjbGFzcz0iY29sLW1kLTgiLz4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskbW9kLT5MYW5nKCdjb250YWN0ZW1haWwnKX06PC9sYWJlbD4KICAgIAk8aW5wdXQgdHlwZT0iZW1haWwiIG5hbWU9ImNvbnRhY3RfZW1haWwiIHZhbHVlPSJ7JGNvbXBhbnktPmNvbnRhY3RfZW1haWx9IiBjbGFzcz0iY29sLW1kLTgiLz4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgIAkgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnd2Vic2l0ZScpfTo8L2xhYmVsPgogICAgCSA8aW5wdXQgdHlwZT0idXJsIiBuYW1lPSJ3ZWJzaXRlIiB2YWx1ZT0ieyRjb21wYW55LT53ZWJzaXRlfSIgY2xhc3M9ImNvbC1tZC04Ii8+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAJIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2RldGFpbHMnKX06PC9sYWJlbD4KICAgIAkge2NnZV90ZXh0YXJlYSBuYW1lPWRldGFpbHMgd3lzaXd5Zz10cnVlIGNvbnRlbnQ9JGNvbXBhbnktPmRldGFpbHMgY2xhc3M9ImNvbC1tZC04In0KICAgIDwvZGl2PgoKICAgIHtmaWxlX3VwbG9hZF9maWVsZCBfcHJvbXB0PSRtb2QtPkxhbmcoJ2ltYWdldGV4dCcpIF9uYW1lPSdwaWN0dXJlX2xvY2F0aW9uJyBfdmFsdWU9JGNvbXBhbnktPnBpY3R1cmVfbG9jYXRpb24gX2FjY2VwdD0naW1hZ2UvKid9CiAgICB7ZmlsZV91cGxvYWRfZmllbGQgX3Byb21wdD0kbW9kLT5MYW5nKCdsb2dvdGV4dCcpIF9uYW1lPSdsb2dvX2xvY2F0aW9uJyBfdmFsdWU9JGNvbXBhbnktPmxvZ29fbG9jYXRpb24gX2FjY2VwdD0naW1hZ2UvKid9CgogICAge2lmICFlbXB0eSgkZmllbGRkZWZzKX0KICAgICAgICB7Zm9yZWFjaCAkZmllbGRkZWZzIGFzICRmZGlkID0+ICRmaWVsZGRlZn0KICAgICAgICAgICAgeyRmbGRfdmFsdWU9JGNvbXBhbnktPmZpZWxkc1skZmRpZF18ZGVmYXVsdDpudWxsfQogICAgICAgICAgICB7aWYgJGZpZWxkZGVmLT50eXBlICE9ICdhbGJ1bSd9CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgCSAJe2lmICRmaWVsZGRlZi0+dHlwZSA9PSAnaW1hZ2UnfQoJCSAgICB7ZmlsZV91cGxvYWRfZmllbGQgX3Byb21wdD0kZmllbGRkZWYtPm5hbWUgX25hbWU9ImZpZWxkX3skZmRpZH0iIF92YWx1ZT0kZmxkX3ZhbHVlIF9hY2NlcHQ9J2ltYWdlLyonfQogICAgICAgICAgICAgICAge2Vsc2VpZiAkZmllbGRkZWYtPnR5cGUgPT0gJ2ZpbGUnfQoJCSAgICB7ZmlsZV91cGxvYWRfZmllbGQgX3Byb21wdD0kZmllbGRkZWYtPm5hbWUgX25hbWU9ImZpZWxkX3skZmRpZH0iIF92YWx1ZT0kZmxkX3ZhbHVlIF9hY2NlcHQ9Jyd9CiAgICAgICAgICAgICAgICB7ZWxzZWlmICRmaWVsZGRlZi0+dHlwZSA9PSAnY2hlY2tib3gnfQogICAgIAkgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskZmllbGRkZWYtPm5hbWV9OiAtIHskZmllbGRkZWYtPnR5cGV9PC9sYWJlbD4KICAgICAgIAkJICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRfeyRmZGlkfSIgdmFsdWU9IjEiIHtpZiAkZmxkX3ZhbHVlfWNoZWNrZWR7L2lmfS8+CiAgICAgICAgICAgICAgICB7ZWxzZWlmICRmaWVsZGRlZi0+dHlwZSA9PSAndGVsJ30KICAgICAJICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JGZpZWxkZGVmLT5uYW1lfTogLSB7JGZpZWxkZGVmLT50eXBlfTwvbGFiZWw+CiAgICAgICAJCSAgICA8aW5wdXQgdHlwZT0idGVsIiBuYW1lPSJmaWVsZF97JGZkaWR9IiB2YWx1ZT0ieyRmbGRfdmFsdWV9IiBjbGFzcz0iY29sLW1kLTgiLz4KICAgICAgICAgICAgICAgIHtlbHNlaWYgJGZpZWxkZGVmLT50eXBlID09ICdudW1iZXInfQogICAgIAkgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskZmllbGRkZWYtPm5hbWV9OiAtIHskZmllbGRkZWYtPnR5cGV9PC9sYWJlbD4KICAgICAgIAkJICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIG5hbWU9ImZpZWxkX3skZmRpZH0iIHZhbHVlPSJ7JGZsZF92YWx1ZX0iIGNsYXNzPSJjb2wtbWQtOCIvPgogICAgICAgICAgICAgICAge2Vsc2VpZiAkZmllbGRkZWYtPnR5cGUgPT0gJ2RhdGUnfQogICAgIAkgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskZmllbGRkZWYtPm5hbWV9OiAtIHskZmllbGRkZWYtPnR5cGV9PC9sYWJlbD4KICAgICAgIAkJICAgIDxpbnB1dCB0eXBlPSJkYXRlIiBuYW1lPSJmaWVsZF97JGZkaWR9IiB2YWx1ZT0ieyRmbGRfdmFsdWV9IiBjbGFzcz0iY29sLW1kLTgiLz4KICAgICAJCXtlbHNlaWYgJGZpZWxkZGVmLT50eXBlID09ICd0ZXh0Ym94J30KICAgICAJICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JGZpZWxkZGVmLT5uYW1lfTogLSB7JGZpZWxkZGVmLT50eXBlfTwvbGFiZWw+CiAgICAgIAkJICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmaWVsZF97JGZkaWR9IiB2YWx1ZT0ieyRmbGRfdmFsdWV9IiBtYXhsZW5ndGg9IjI1NSIgY2xhc3M9ImNvbC1tZC04Ii8+CiAgICAgICAgICAgICAgICB7ZWxzZWlmICRmaWVsZGRlZi0+dHlwZSA9PSAndGV4dGFyZWEnfQogICAgIAkgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskZmllbGRkZWYtPm5hbWV9OiAtIHskZmllbGRkZWYtPnR5cGV9PC9sYWJlbD4KICAgICAgIAkJICAgIDx0ZXh0YXJlYSBuYW1lPSJmaWVsZF97JGZkaWR9IiByb3dzPSI1IiBjbGFzcz0iY29sLW1kLTgiPnskZmxkX3ZhbHVlfTwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICB7ZWxzZWlmICRmaWVsZGRlZi0+dHlwZSA9PSAnZHJvcGRvd24nfQogICAgIAkgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0zIHRleHQtcmlnaHQiPnskZmllbGRkZWYtPm5hbWV9OiAtIHskZmllbGRkZWYtPnR5cGV9PC9sYWJlbD4KCQkgICAge2NkX2ZpZWxkX29wdGlvbnMgZmllbGQ9JGZkaWQgYXNzaWduPSdvcHRzJ30KICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImZpZWxkX3skZmRpZH0iIGNsYXNzPSJjb2wtbWQtOCI+CiAgICAgICAgICAgICAgICAgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kb3B0cyBzZWxlY3RlZD0kZmxkX3ZhbHVlfQogICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAge2Vsc2VpZiAkZmllbGRkZWYtPnR5cGUgPT0gJ211bHRpc2VsZWN0J30KICAgICAJICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JGZpZWxkZGVmLT5uYW1lfTogLSB7JGZpZWxkZGVmLT50eXBlfTwvbGFiZWw+CgkJICAgIHtjZF9maWVsZF9vcHRpb25zIGZpZWxkPSRmZGlkIGFzc2lnbj0nb3B0cyd9CiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJmaWVsZF97JGZkaWR9W10iIHNpemU9IjMiIG11bHRpcGxlIGNsYXNzPSJjb2wtbWQtOCI+CgkJICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9wdHMgc2VsZWN0ZWQ9JGZsZF92YWx1ZX0KICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgIHsvaWZ9CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICB7L2lmfQogICAgICAgIHsvZm9yZWFjaH0KICAgIHsvaWZ9CgogICAge2lmICFlbXB0eSgkaGllcmFyY2h5X2xpc3QpfQogICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTMgdGV4dC1yaWdodCI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTo8L2xhYmVsPgogICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImhpZXJfaWQiIGNsYXNzPSJjb2wtbWQtOCI+CiAgICAgICAgICAgICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGhpZXJhcmNoeV9saXN0IHNlbGVjdGVkPSRjb21wYW55LT5oaWVyX2lkfQogICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICA8L2Rpdj4KICAgIHsvaWZ9CgogICAge2lmICFlbXB0eSgkY2F0ZWdvcnlfbGlzdCl9CiAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyB0ZXh0LXJpZ2h0Ij57JG1vZC0+TGFuZygnY2F0ZWdvcmllcycpfTo8L2xhYmVsPgoJICAgIHskc2VsX2NhdGVnb3JpZXM9bnVsbH0KCSAgICB7aWYgJGNvbXBhbnktPmNhdGVnb3JpZXN9CgkgICAgICAgIHskc2VsX2NhdGVnb3JpZXM9JGNvbXBhbnktPmNhdGVnb3JpZXN9CgkgICAgey9pZn0KICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJjYXRlZ29yaWVzW10iIG11bHRpcGxlIHNpemU9IjUiPgogICAgICAgICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yeV9saXN0IHNlbGVjdGVkPSRzZWxfY2F0ZWdvcmllc30KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgPC9kaXY+CiAgICB7L2lmfQoKICAgIHtmb3JtX2VuZH0Key9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendimport_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICFlbXB0eSgkZmluYWxfbXNnKX0KCiAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+CiAgICAgPGRpdj57JGZpbmFsX21zZ308L2Rpdj4KICAgICA8ZGl2PgogICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBocmVmPSJ7Y21zX3NlbGZsaW5rIGhyZWY9JHBhZ2VfaWR9Ij57JG1vZC0+TGFuZygnbGJsX2JhY2snKX08L2E+CiAgICAgPC9kaXY+CiAgPC9kaXY+Cgp7ZWxzZX0KCiAgICB7Zm9ybV9zdGFydH17Y2dlX2Zvcm1fY3NyZn0KICAgIAl7aWYgJG1heF9yZWNvcmRzID4gMH0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtb2QtPkxhbmcoJ21zZ19zbG90c3VzZWQnLCRudW1fcmVjb3JkcywkbWF4X3JlY29yZHMpfTwvZGl2PgogICAgICAgIHsvaWZ9CgogICAgCTxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWluZm8iPgoJICAgIDxkaXY+eyRtb2QtPkxhbmcoJ2luZm9fY3N2Zm9ybWF0Jyl9PC9kaXY+CgkgICAgPGRpdj48c3Ryb25nPnskbW9kLT5MYW5nKCdleGFtcGxlJyl9Ojwvc3Ryb25nPjwvZGl2PgoJICAgIDxwcmU+PGNvZGU+Y29tcGFueV9uYW1lLGY6b3duZXJfbmFtZSxhZGRyZXNzLGFkZHJlc3MsdGVsZXBob25lLGNvbnRhY3RfZW1haWwsd2Vic2l0ZSxkZXRhaWxzLGxhdGl0dWRlLGxvbmdpdHVkZQpBY21lIEluYyxTb21lIEJpZyBFeGVjdXRpdmUsIjEyMyBOb3doZXJlIEF2ZQpBbnl3aGVyZSBDaXR5CjEyMzQ1CkFaIiwiKzEyMzQ1Njc4OTAiLGluZm9AYWNtZWluYy5jb20saHR0cHM6Ly9hY21laW5jLmNvbSwiJmx0O3AmZ3Q7RGVzY3JpcHRpb24gTGluZSAxJmx0Oy9wJmd0OyZsdDtwJmd0OyZsdDtzdHJvbmcmZ3Q7RGVzY3JpcHRpb24mbHQ7L3N0cm9uZyZndDsgbGluZSAyJmx0O3AmZ3Q7IiwtMTIzLjQ1Njc4LC0zNC41Njc4OTwvY29kZT48L3ByZT4KCTwvZGl2PgoKCiAgICAgICAge2lmICRlcnJvcn0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtZGFuZ2VyIj57JGVycm9yfTwvZGl2PgogICAgICAgIHsvaWZ9CgogICAJPGRpdiBjbGFzcz0id2VsbCI+CiAgICAJICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0yIj57JG1vZC0+TGFuZygnZGVsaW1pdGVyJyl9OjwvbGFiZWw+CiAgICAgICAgCTxpbnB1dCBjbGFzcz0iY29sLW1kLTQiIHR5cGU9InRleHQiIG5hbWU9ImRlbGltZXRlciIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIiB2YWx1ZT0ieyRzZXR0aW5ncy0+ZGVsaW1ldGVyfSIvPgogICAgICAgIAk8bGFiZWwgY2xhc3M9ImNvbC1tZC0yIj57JG1vZC0+TGFuZygncHJvbXB0X2VuY2xvc3VyZScpfTo8L2xhYmVsPgoJCTxpbnB1dCBjbGFzcz0iY29sLW1kLTQiIHR5cGU9InRleHQiIG5hbWU9ImVuY2xvc3VyZSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIiB2YWx1ZT0neyRzZXR0aW5ncy0+ZW5jbG9zdXJlfScvPgogICAgCSAgICA8L2Rpdj4KICAgIAkgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLW1kLTIiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX06PC9sYWJlbD4KICAgICAgICAJPHNlbGVjdCBjbGFzcz0iY29sLW1kLTQiIG5hbWU9ImhpZXJhcmNoeSI+CiAgICAgICAgICAgCSAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGhpZXJhcmNoeV9saXN0IHNlbGVjdGVkPSRzZXR0aW5ncy0+aGllcmFyY2h5fQoJCTwvc2VsZWN0PgogICAgICAgIAk8bGFiZWwgY2xhc3M9ImNvbC1tZC0yIj57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX06PC9sYWJlbD4KICAgICAgICAJPHNlbGVjdCBjbGFzcz0iY29sLW1kLTQiIG5hbWU9ImNhdGVnb3J5IiBzZWxlY3RlZD0kc2V0dGluZ3MtPmNhdGVnb3J5PgogICAgICAgICAgIAkgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yeV9saXN0fQoJICAgIAk8L3NlbGVjdD4KICAgIAkgICAgPC9kaXY+CiAgICAJICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC0yIj57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX06PC9sYWJlbD4KICAgICAgICAJPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImZpbGUiIGNsYXNzPSJjb2wtbWQtOSIgYWNjZXB0PSJ0ZXh0L2NzdiIvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGhyLz4KICAgIAkgICAgPGRpdiBjbGFzcz0icm93LWZsdWlkIj4KICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgbmFtZT0ic3VibWl0Ij57JG1vZC0+TGFuZygnc3VibWl0Jyl9PC9idXR0b24+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiBocmVmPSJ7Y21zX3NlbGZsaW5rIGhyZWY9JHBhZ2VfaWR9Ij57JG1vZC0+TGFuZygnY2FuY2VsJyl9PC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIHtmb3JtX2VuZH0KCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendlist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGVtcGxhdGUgdG8gbGlzdCBhIHBhcnRpY3VsYXIgdXNlcnMgY29tcGFuaWVzIGFuZCBvcHRpb25hbGx5IGFsbG93IGVkaXRpbmcgKn0KPGRpdiBpZD0iY29tcGRpcl9mcm9udGVuZF9saXN0Ij4Ke2NnanNfYWRkfQokKGZ1bmN0aW9uKCl7CiAgICAkKCdhLmRlbGNvbXBhbnknKS5jbGljayhmdW5jdGlvbigpewogICAgICAgIHJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnYXJleW91c3VyZScpfScpCiAgICB9KQogICAgJCgnW25hbWU9cGFnZV0nKS5jaGFuZ2UoZnVuY3Rpb24oKXsKICAgICAgICAkKHRoaXMpLmNsb3Nlc3QoJ2Zvcm0nKS5zdWJtaXQoKQogICAgfSkKfSkKey9jZ2pzX2FkZH0KCntpZiAkbWF4X3JlY29yZHMgPiAwfQogICAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtaW5mbyI+eyRtb2QtPkxhbmcoJ2Zyb250ZW5kbGlzdF9yZWNvcmRjb3VudCcsJHJlY29yZHMtPnRvdGFsLCRtYXhfcmVjb3Jkcyl9PC9kaXY+CnsvaWZ9Cgp7aWYgJGNhbl9hZGR9CiAgICA8ZGl2IGNsYXNzPSJuYXZiYXIgbmF2YmFyLWRlZmF1bHQiIHJvbGU9Im5hdmlnYXRpb24iPgogICAgICAgIDxhIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBuYXZiYXItYnRuIiBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWZlX2VkaXR9Ij4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcGx1cyI+PC9zcGFuPiB7JG1vZC0+TGFuZygnYWRkY29tcGFueScpfQogICAgICAgIDwvYT4KICAgICAgICB7aWYgJGNhbl9pbXBvcnR9CiAgICAgICAgICAgIDxhIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBuYXZiYXItYnRuIiBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWZlX2ltcG9ydGNzdn0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24taW1wb3J0Ij48L3NwYW4+IHskbW9kLT5MYW5nKCdpbXBvcnRjc3YnKX0KICAgICAgICAgICAgPC9hPgogICAgICAgIHsvaWZ9CiAgICA8L2Rpdj4Key9pZn0KCntpZiBjb3VudCgkcmVjb3Jkcyl9CiAgICB7aWYgJHJlY29yZHMtPnBhZ2Vjb3VudCA+IDF9CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgCSB7Zm9ybV9zdGFydCBtZXRob2Q9Z2V0fTxsYWJlbCBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyI+CgkgICAgIHskbW9kLT5MYW5nKCdwYWdlJyl9OgoJICAgICA8c2VsZWN0IG5hbWU9InBhZ2UiPgoJICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRyZWNvcmRzLT5wYWdlQXJyYXkoKSBzZWxlY3RlZD0kcmVjb3Jkcy0+cGFnZX0KCSAgICAgPC9zZWxlY3Q+CgkgPC9sYWJlbD57Zm9ybV9lbmR9CiAgICA8L2Rpdj4KICAgIHsvaWZ9CgogICAgPHRhYmxlIGNsYXNzPSJ0YWJsZSI+CiAgICAgICAgPHRoZWFkPgogICAgICAJICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0aD57JG1vZC0+TGFuZygnaWQnKX08L3RoPgogICAgICAgIAk8dGg+eyRtb2QtPkxhbmcoJ25hbWUnKX08L3RoPgogICAgICAgIAk8dGg+eyRtb2QtPkxhbmcoJ3N0YXR1cycpfTwvdGg+CiAgICAgICAgCTx0aD57JG1vZC0+TGFuZygnY3JlYXRlZCcpfTwvdGg+CiAgICAgICAgCTx0aD57JG1vZC0+TGFuZygnbW9kaWZpZWQnKX08L3RoPgogICAgICAgIAl7aWYgJGhhdmVfYWxidW19PHRoIGNsYXNzPSJpY29uIj48L3RoPnsvaWZ9CiAgICAgICAgCTx0aCBjbGFzcz0iaWNvbiI+PC90aD4KICAgICAgICAJe2lmICRjYW5fZGVsZXRlfTx0aCBjbGFzcz0iaWNvbiI+PC90aD57L2lmfQogICAgICAJICAgICA8L3RyPgogICAgCSA8L3RoZWFkPgogICAgICAgICA8dGJvZHk+CiAgICAJICAgICB7Zm9yZWFjaCAkcmVjb3JkcyBhcyAkY29tcGFueX0KCSAgICAgICAgIHtjbXNfYWN0aW9uX3VybCBhY3Rpb249ZmVfZWRpdCBjb21wYW55aWQ9JGNvbXBhbnktPmlkIGFzc2lnbj0nZWRpdF91cmwnfQoJICAgICAgICAgPHRyPgogICAgICAgIAkgICAgIDx0ZD57JGNvbXBhbnktPmlkfTwvdGQ+CgkJICAgICA8dGQ+PGEgaHJlZj0ieyRlZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI8L2E+eyRjb21wYW55LT5jb21wYW55X25hbWV9PC90ZD48L3RkPgogICAgICAgIAkgICAgIDx0ZD57JG1vZC0+TGFuZygkY29tcGFueS0+c3RhdHVzKX08L3RkPgogICAgICAgIAkgICAgIDx0ZD57JGNvbXBhbnktPmNyZWF0ZV9kYXRlfGNtc19kYXRlX2Zvcm1hdH08L3RkPgogICAgICAgIAkgICAgIDx0ZD57JGNvbXBhbnktPm1vZGlmaWVkX2RhdGV8Y21zX2RhdGVfZm9ybWF0fTwvdGQ+CiAgICAgICAgCSAgICAge2lmICRoYXZlX2FsYnVtfTx0ZD48YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWZlX2VkaXRfYWxidW0gY29tcGFueWlkPSRjb21wYW55LT5pZCBmZGlkPSRoYXZlX2FsYnVtfSI+eyRtb2QtPkxhbmcoJ2FsYnVtJyl9PC9hPjwvdGQ+ey9pZn0KICAgICAgICAJICAgICA8dGQ+PGEgaHJlZj0ieyRlZGl0X3VybH0iPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWVkaXQiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+PC9zcGFuPjwvYT48L3RkPgogICAgICAgIAkgICAgIHtpZiAkY2FuX2RlbGV0ZX08dGQ+PGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1mZV9kZWxldGUgY29tcGFueWlkPSRjb21wYW55LT5pZH0iIGNsYXNzPSJkZWxjb21wYW55Ij48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZW1vdmUiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlJyl9Ij48L2E+PC90ZD57L2lmfQogICAgICAJCSA8L3RyPgogICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgp7L2lmfQoKPC9kaXY+eyogI2NvbXBkaXJfZnJvbnRlbmRfbGlzdCAqfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_hierlist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Z1bmN0aW9uIGRvX2hpZXJkYXRhIGRlcHRoPTF9CiAgPHVsIGNsYXNzPSJjZF9oaWVyLXskZGVwdGh9Ij4KICB7Zm9yZWFjaCAkZGF0YSBhcyAka2V5ID0+ICRpdGVtfQogICAgICA8bGk+CiAgICAgICAgICB7aWYgJGl0ZW0tPmNvdW50IGd0IDB9CgkgICAgICB7Y2RfZW5jb2RlX3F1ZXJ5IHF1ZXJ5PSJhbmQ6c3RhdHVzOmVxOnB1Ymxpc2hlZHxhbmQ6aGllcjp7JGl0ZW0tPmlkfToxfGxpbWl0OjE1IiBhc3NpZ249J2VuY29kZWQnfQogICAgICAgICAgICAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249ZGVmYXVsdCBoaWVyaWQ9JGl0ZW0tPmlkIHJldHVybmlkPSRzdW1tYXJ5cGFnZX0iPnskaXRlbS0+bmFtZX0gPGVtPih7JGl0ZW0tPmNvdW50fSk8L2VtPjwvYT4KICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICAgIHskaXRlbS0+bmFtZX0gPGVtPih7JGl0ZW0tPmNvdW50fSk8L2VtPgogICAgICAgICAgey9pZn0KICAgICAgICAgIHtpZiBpc3NldCgkaXRlbS0+Y2hpbGRyZW4pICYmIGNvdW50KCRpdGVtLT5jaGlsZHJlbikgPiAwfQogICAgICAgICAgICAgIHtkb19oaWVyZGF0YSBkZXB0aD0kZGVwdGgrMSBkYXRhPSRpdGVtLT5jaGlsZHJlbn0KICAgICAgICAgIHsvaWZ9CiAgICAgIDwvbGk+CiAgey9mb3JlYWNofQogIDwvdWw+CnsvZnVuY3Rpb259Cgp7ZG9faGllcmRhdGEgZGF0YT0kaGllcmRhdGF9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_searchstats_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VhcmNoIHN0YXRpc3RpY3Mgc3VtbWFyeSB2aWV3ICp9Cgp7KiB1c2FnZToge2V4cGFuZF9kZF9zZWxlY3RlZCBvcHRpb25zPWFycmF5X29wdGlvbnMgc2VsZWN0ZWQ9JHNlbGVjdGVkX2tleXMgKn0Ke2Z1bmN0aW9uIGV4cGFuZF9kZF9zZWxlY3RlZH0KICB7aWYgaXNfYXJyYXkoJHNlbGVjdGVkKSB8fCAkc2VsZWN0ZWQgIT0gJyd9CiAgICB7aWYgIWlzX2FycmF5KCRzZWxlY3RlZCl9eyRzZWxlY3RlZD1bJHNlbGVjdGVkXX17L2lmfQogICAgeyR2YWxzPVtdfQogICAge2ZvcmVhY2ggJHNlbGVjdGVkIGFzICRvbmV9CiAgICAgIHskdmFsc1tdPSRvcHRpb25zWyRvbmVdfQogICAgey9mb3JlYWNofQogICAge2ltcGxvZGUoJywgJywkdmFscyl9CiAgey9pZn0Key9mdW5jdGlvbn0KCntpZiBpc3NldCgkc2VhcmNoZXMpfQogIHsqIHRvZG86IG5hdmlnYXRpb24gc3R1ZmYgaGVyZSAqfQogIDx0YWJsZSBjbGFzcz0idGFibGUiPgogICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdzZWFyY2hfZGF0ZScpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdzZWFyY2hfaXAnKX08L3RoPgogICAgICAgIDx0aD57JG1vZC0+TGFuZygnc2VhcmNoX3BocmFzZScpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdzZWFyY2hfbmFtZScpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdzZWFyY2hfYWRkcmVzcycpfTwvdGg+CiAgICAgICAgPHRoPnskbW9kLT5MYW5nKCdzZWFyY2hfcG9zdGFsJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NlYXJjaF9oaWVyJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NlYXJjaF9jYXRlZ29yaWVzJyl9PC90aD4KCXsqCgkgIGV4YW1wbGUgY3VzdG9tIGZpZWxkcwogICAgICAgIDx0aD5NaW5pbmc6IHsgKiBhIGRyb3Bkb3duIGN1c3RvbSBmaWVsZCAqIH08L3RoPgogICAgICAgIDx0aD5tczE6IHsgKiBhIG11bHRpc2VsZWN0IGN1c3RvbSBmaWVsZCAqIH08L3RoPgoJKn0KICAgICAgPC90ZD4KICAgIDwvdGhlYWQ+CiAgICA8dGJvZHk+CiAgICB7Zm9yZWFjaCAkc2VhcmNoZXMgYXMgJHNlYXJjaH0KICAgICAgPHRyPgogICAgICAgIDx0ZD57JHNlYXJjaC5kYXRlX3NlYXJjaGVkfTwvdGQ+CiAgICAgICAgPHRkPnskc2VhcmNoLmlwX2FkZHJlc3N9PC90ZD4KICAgICAgICA8dGQ+eyRzZWFyY2gudmFscy5waHJhc2V9PC90ZD4KICAgICAgICA8dGQ+eyRzZWFyY2gudmFscy5uYW1lfGRlZmF1bHQ6Jyd9PC90ZD4KICAgICAgICA8dGQ+eyRzZWFyY2gudmFscy5hZGRkcmVzc3xkZWZhdWx0OicnfTwvdGQ+CiAgICAgICAgPHRkPnskc2VhcmNoLnZhbHMucG9zdGFsfGRlZmF1bHQ6Jyd9PC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICAge2lmIGlzc2V0KCRzZWFyY2gudmFscy5oaWVyKX0KICAgICAgICAgICAgIHskaGllcmFyY2hpZXNbJHNlYXJjaC52YWxzLmhpZXJdfQogICAgICAgICAgIHsvaWZ9CiAgICAgICAgPC90ZD4KICAgICAgICA8dGQ+CiAgICAgICAgICB7aWYgaXNzZXQoJHNlYXJjaC52YWxzLmNhdGVnb3J5KX0KICAgICAgICAgICAge2ZvcmVhY2ggJHNlYXJjaC52YWxzLmNhdGVnb3J5IGFzICRjYXRpZH0KICAgICAgICAgICAgICB7JGNhdHMyW109JGNhdGVnb3JpZXNbJHNlYXJjaC52YWxzLmNhdGVnb3J5XX0KICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgICB7aW1wbG9kZSgnLCAnLCRjYXRzMil9CiAgICAgICAgICB7L2lmfQogICAgICAgIDwvdGQ+Cgl7KiBob3cgdG8gdXNlIGRyb3Bkb3duIGZpZWxkcwogICAgICAgIDx0ZD4KCSAgIHtleHBhbmRfZGRfc2VsZWN0ZWQgb3B0aW9ucz0kZmllbGRzLk1pbmluZy5vcHRpb25zIHNlbGVjdGVkPSRzZWFyY2gudmFscy5maWVsZF9NaW5pbmd8ZGVmYXVsdDonJ30KCTwvdGQ+CiAgICAgICAgPHRkPgoJICAge2V4cGFuZF9kZF9zZWxlY3RlZCBvcHRpb25zPSRmaWVsZHMubXMxLm9wdGlvbnMgc2VsZWN0ZWQ9JHNlYXJjaC52YWxzLmZpZWxkX21zMXxkZWZhdWx0OicnfQoJPC90ZD4KCSp9CiAgICAgIDwvdHI+CiAgICB7L2ZvcmVhY2h9CiAgICA8L3Rib2R5PgogIDwvdGFibGU+CnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_search_query.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGhpcyB0ZW1wbGF0ZSBpcyBmZWQgdGhlIGRhdGEgZnJvbSB0aGUgYWR2YW5jZWQgdGhlIHNlYXJjaCBmb3JtLi4uIG5vIHZhbGlkYXRpb24gaGFzIGJlZW4gZG9uZSAqfQp7KiBvbmUgZW50cnkgcGVyIGxpbmUsIGRlZmluZSB0aGUgY2RxdWVyeSwgbmFtZXMgb2Ygc21hcnR5IHZhcmlhYmxlcyBtdXN0IG1hdGNoIHRob3NlIGluIHRoZSBpbnB1dCBmaWVsZHMgYWJvdmUuICp9CnsqIHRoZSBwaXBlIGNoYXJhY3RlciBpcyB1c2VkIHRvIHNlcGFyYXRlIHN0YXRlbWVudHMgKn0Ke2lmICFlbXB0eSgkcGhyYXNlKX1hbmQ6cGhyYXNlOiJ7JHBocmFzZX0ifHsvaWZ9CntpZiAhZW1wdHkoJG5hbWUpfWFuZDpuYW1lOkNPTlRBSU5TOiJ7JG5hbWV9Inx7L2lmfQp7aWYgIWVtcHR5KCRhZGRyZXNzKX1hbmQ6YWRkcmVzczpDT05UQUlOUzoieyRhZGRyZXNzfSJ8ey9pZn0Ke2lmICFlbXB0eSgkaGllcil9YW5kOmhpZXI6eyhpbnQpJGhpZXJ9OjF8ey9pZn0Ke2lmICFlbXB0eSgkY2F0ZWdvcnkpfQp7Zm9yZWFjaCAkY2F0ZWdvcnkgYXMgJGNhdF9pZH0KICAgICBvcjpjYXRlZ29yeTp7KGludCkkY2F0X2lkfToxfAp7L2ZvcmVhY2h9CnsvaWZ9CntpZiAhZW1wdHkoJGZvb2ZpZWxkKX1hbmQ6ZmllbGQ6dGV4dDFhOkNPTlRBSU5TOnskZm9vZmllbGR9fHsvaWZ9CntpZiAhZW1wdHkoJHJhZGl1c19rbSkgJiYgIWVtcHR5KCRsYXQpICYmICFlbXB0eSgkbG9uZyl9CmFuZDpyYWRpdXNfa206eyhmbG9hdCkkcmFkaXVzX2ttfTp7KGZsb2F0KSRsYXR9OnsoZmxvYXQpJGxvbmd9fAp7L2lmfQpsaW1pdDoxMHwK]]></data>
	</file>
	<file>
	  <filename>/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogQ29tcGFueURpcmVjdG9yeSBTdW1tYXJ5IFRlbXBsYXRlICp9CjxzY3JpcHQgZGVmZXI+CnRyeSB7CiAgICBpZiggIXdpbmRvdy5qUXVlcnkgfHwgIXdpbmRvdy5qUXVlcnkudWkgKSB0aHJvdyAiSlF1ZXJ5IGFuZCBKUXVlcnktVUkgaXMgcmVxdWlyZWQgZm9yIHRoZSBxdWlja2ZpbmQgZnVuY3Rpb25hbGl0eS4uLiB0aGlzIGNhbiBiZSByZW1vdmVkIgoKICAgICQoZnVuY3Rpb24oKXsKCS8vIHRoaXMgd2lsbCBvbmx5IHdvcmsgaW4gQ01TTVMgMi4zKyBpZiBwcmV0dHkgdXJscyBhcmUgZW5hYmxlZC4KICAgICAgICBsZXQgcXVpY2tmaW5kID0gJCgnI3F1aWNrZmluZCcpIC8vIHRoZSBlbGVtZW50CglsZXQgZGV0YWlsX3VybCA9ICd7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWRldGFpbHMgY29tcGlkPXh4eHggZm9yanM9MX0nCgoJcXVpY2tmaW5kLmF1dG9jb21wbGV0ZSh7CgkgICAgbWluTGVuZ3RoOiAzLAogICAgICAgICAgICBzZWxlY3Q6IGZ1bmN0aW9uKGV2ZW50LHVpKSB7CgkgICAgICAgIGlmKCBkZXRhaWxfdXJsLmluZGV4T2YoJ3h4eHgnKSAhPT0gLTEgKSB7CgkJICAgIHsqIG5vdGU6IHRoaXMgd2lsbCBub3QgYmUgYSBwcmV0dHkgdXJsLi4gYW5kIGl0IG1heSBiZSBvbiBhIGRpZmZlcmVudCBwYWdlIHNvIGhhdmluZyB0aGUgY2Fub25pY2FsIHVybCBzZXQgaXMgY3JpdGljYWwgKn0KCQkgICAgZGV0YWlsX3VybCA9IGRldGFpbF91cmwucmVwbGFjZSgneHh4eCcsIHVpLml0ZW0udmFsdWUpCgkJICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gZGV0YWlsX3VybAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9LAoJICAgIHNvdXJjZTogZnVuY3Rpb24ocmVxLCByZXNwb25zZSkgewoJICAgICAgICAkLmFqYXgoewoJCSAgICB1cmw6ICd7Y21zX2FjdGlvbl91cmwgYWN0aW9uPWFqYXhfY29tcGFueV9hdXRvY29tcGxldGUgZm9yanM9MX0mc2hvd3RlbXBsYXRlPWZhbHNlJywKCQkgICAgZGF0YVR5cGU6ICdqc29uJywKCQkgICAgY2FjaGU6IGZhbHNlLAoJCSAgICBkYXRhOiB7CgkJICAgICAgICB0ZXJtOiByZXEudGVybSwKCQkJbW9kZTogJ2xpa2UnCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbihkYXRhKXsKCQkgICAgcmVzcG9uc2UoZGF0YSkKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9KQoKICAgIH0pCn0KY2F0Y2goIGVyciApIHsKICAgIGNvbnNvbGUud2FybihlcnIpCn0KPC9zY3JpcHQ+Cgp7aWYgZW1wdHkoJHNlYXJjaF9kYXRhKX0KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtMyIgZm9yPSJxdWlja2ZpbmQiPnskbW9kLT5MYW5nKCdxdWlja2ZpbmQnKX06PC9sYWJlbD4KICAgICAgICA8aW5wdXQgY2xhc3M9ImNvbC1tZC04IiBpZD0icXVpY2tmaW5kIi8+CiAgICA8L2Rpdj4KCiAgICB7aWYgJGNhdGVnb3J5X2lkID4gMH0KCXtjZF9nZXRjYXRlZ29yeSBjYXRlZ29yeT0kY2F0ZWdvcnlfaWQgYXNzaWduPSdjYXQnfQoJe2lmICRjYXR9CgkgICAgPGhyLz4KCSAgICA8ZmllbGRzZXQ+CgkgICAgICAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2NhdGVnb3J5Jyl9OiB7JGNhdC0+bmFtZX08L2xlZ2VuZD4KCQk8ZGl2IGNsYXNzPSJyb3ciPgogIAkJICAgIHtpZiAkY2F0LT5pbWFnZX08aW1nIGNsYXNzPSJjb2wtc20tMiIgc3JjPSJ7Y2RfY2F0ZWdvcnlfaW1hZ2UgY2F0ZWdvcnk9JGNhdGVnb3J5X2lkfSIgYWx0PSJ7JGNhdC0+aW1hZ2V9Ii8+ey9pZn0KICAJICAgICAgICAgICAge2lmICRjYXQtPmRlc2NyaXB0aW9ufTxkaXYgY2xhc3M9ImNvbC1zbS0xMCI+eyRjYXQtPmRlc2NyaXB0aW9ufTwvZGl2PnsvaWZ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJyb3ciPgoJCSAgICAgPHNwYW4gY2xhc3M9ImNvbC1zbS0yIj57JG1vZC0+TGFuZygnZXh0cmExJyl9Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9ImNvbC1zbS0yIj57JGNhdC0+ZXh0cmExfTwvc3Bhbj4KCQkgICAgIDxzcGFuIGNsYXNzPSJjb2wtc20tMiI+eyRtb2QtPkxhbmcoJ2V4dHJhMicpfTo8L3NwYW4+IDxzcGFuIGNsYXNzPSJjb2wtc20tMiI+eyRjYXQtPmV4dHJhMn08L3NwYW4+CgkJICAgICA8c3BhbiBjbGFzcz0iY29sLXNtLTIiPnskbW9kLT5MYW5nKCdleHRyYTMnKX06PC9zcGFuPiA8c3BhbiBjbGFzcz0iY29sLXNtLTIiPnskY2F0LT5leHRyYTN9PC9zcGFuPgoJCTwvZGl2PgoJCTxoci8+CgkgICAgPC9maWVsZHNldD4KCXsvaWZ9CiAgICB7L2lmfQp7L2lmfQoKCntpZiAhZW1wdHkoJGl0ZW1zKX0KICAgIHsqIHBhZ2luYXRpb24gKn0KICAgIHtpZiAkaXRlbXMtPnBhZ2Vjb3VudCA+IDF9CiAgICAgICAgPGRpdiBjbGFzcz0icm93IHRleHQtcmlnaHQiPgoJICAgIHsqCgkgICAgICAgdGhpcyB0ZW1wbGF0ZSBpcyB1c2VkIGJ5IGJvdGggdGhlIGFkdmFuY2VkIHNlYXJjaCwgYW5kIGRlZmF1bHQvc3VtbWFyeSBhY3Rpb25zLgoJICAgICAgIHdlIHBhc3MgdGhlIHNlYXJjaCBuYW1lIChpZiB3ZSBoYXZlIGl0IGFyZ3VtZW50IGFsb25nIG9uIHRoZSBwYWdpbmF0aW9uIFVSTCBmb3IgdGhlIGFkdmFuY2VkIHNlYXJjaCBhY3Rpb24KCSAgICAgICBhbmQgdGhlIGVuY29kZWQgcXVlcnkgYWxvbmcgb24gdGhlIHBhZ2luYXRpb24gVVJMIGZvciB0aGUgc3VtbWFyeSBhY3Rpb24uCiAgICAgICAgICAgICp9CgkgICAge2Zvcm1fc3RhcnQgbWV0aG9kPWdldCBzZWFyY2hfbmFtZT0kc2VhcmNoX25hbWV8ZGVmYXVsdDpudWxsIGVuY29kZWQ9JGVuY29kZWR8ZGVmYXVsdDpudWxsfQoJICAgICAgICA8bGFiZWw+eyRtb2QtPkxhbmcoJ3BhZ2UnKX06CiAgCSAgICAgICAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1wYWdlIj4KCQkgICAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kaXRlbXMtPnBhZ2VBcnJheSgpIHNlbGVjdGVkPSRpdGVtcy0+cGFnZX0KCSAgICAgICAgICAgIDwvc2VsZWN0PgoJICAgICAgICA8L2xhYmVsPgoJCTxidXR0b24+eyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfTwvYnV0dG9uPgoJICAgIHtmb3JtX2VuZH0KCTwvZGl2PgogICAgey9pZn0KCiAgICB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICAgICAgIHtpbmNsdWRlIGZpbGU9J21vZHVsZV9maWxlX3RwbDpDb21wYW55RGlyZWN0b3J5O29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCd9CiAgICB7L2ZvcmVhY2h9Cgp7ZWxzZX0KICAgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWVycm9yIj57JENvbXBhbnlEaXJlY3RvcnktPkxhbmcoJ2Vycm9yX25vY29tcGFuaWVzbWF0Y2gnKX08L2Rpdj4Key9pZn0K]]></data>
	</file>
</module>
