<?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>SEOTools2</name>
	<version>1.1</version>
  <mincmsversion>1.10</mincmsversion>
	<help><![CDATA[PHN0eWxlPmRpdi5zZW8yIHAsIGRpdi5zZW8yIGxpLCBkaXYuc2VvMiBkaXYge21hcmdpbi1ib3R0b206IDEuMmVtO31saXtsaXN0LXN0eWxlLXR5cGU6c3F1YXJlfTwvc3R5bGU+CjxkaXYgY2xhc3M9InNlbzIiPgo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+U0VPVG9vbHMyIGhlbHBzIHlvdSB0byBnZXQgeW91ciBTRU8gKFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uKSByaWdodC4gVGhlIG1vZHVsZSBhZGRzIHNldmVyYWwgU0VPIGNhcGFiaWxpdGllcyB0byB5b3VyIENNU01TIGluc3RhbGxhdGlvbiBhbmQgYWxlcnRzIHlvdSBpZiB5b3UgbWlzc2VkIG91dCBvbiBzb21ldGhpbmcgU0VPIHJlbGF0ZWQuIEN1cnJlbnRseSwgdGhlIGZvbGxvd2luZyBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkOjwvcD4KPHVsPgo8bGk+IGdlbmVyYXRlcyBNZXRhIHRhZ3MgaW4gc3RhbmRhcmQgaHRtbCwgRHVibGluIENvcmUgYW5kIE9wZW5HcmFwaCBmb3JtYXRzPC9saT4KPGxpPiBhdXRvbWF0aWNhbGx5IGV4dHJhY3RzIGtleXdvcmRzIGZyb20geW91ciBwYWdlcyBhbmQgYWRkcyB0aGVtIHRvIHRoZSBtZXRhIHRhZ3MgYW5kIHBhZ2UgdGl0bGU8L2xpPgo8bGk+IGxldHMgeW91IGRldGVybWluZSB3aXRoIGEgc2luZ2xlIGNsaWNrIHdoZXRoZXIgY2VydGFpbiBwYWdlcyBzaG91bGQgYmUgaW5kZXhlZCBieSBzZWFyY2ggZW5naW5lcyBvciBub3Q8L2xpPgo8bGk+IGdlbmVyYXRlcyBhIHNpdGVtYXAueG1sIGZpbGUgd2l0aCB5b3VyIHBhZ2VzIHdoaWxlIGdpdmluZyB5b3UgZnVsbCBjb250cm9sIG92ZXIgdGhlIHByaW9yaXRpZXMgb2YgeW91ciBwYWdlczwvbGk+CjxsaT4gZ2VuZXJhdGVzIGEgcm9ib3RzLnR4dCBmaWxlIGV4cGxpY2l0bHkgZGlzYWxsb3dpbmcgYWNjZXNzIHRvIHBhZ2VzIHlvdSBkb24ndCB3YW50IHRvIGJlIGluZGV4ZWQ8L2xpPgo8bGk+IGFsZXJ0cyB5b3Ugd2hlbiB0aGVyZSBhcmUgc2V2ZXJhbCBwYWdlcyBmZWF0dXJpbmcgdGhlIHNhbWUgcGFnZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9uczwvbGk+CjxsaT4gYWxlcnRzIHlvdSB3aGVuIHZlcnkgc2hvcnQgcGFnZSBtZXRhIGRlc2NyaXB0aW9ucyBhcmUgZGV0ZWN0ZWQ8L2xpPgo8bGk+IGF1dG9tYXRpY2FsbHkgc3VibWl0cyB5b3VyIHNpdGVtYXAgZmlsZSB0byBHb29nbGUgd2hlbiB5b3UgY2hhbmdlIHlvdXIgY29udGVudDwvbGk+CjwvdWw+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5GaXJzdCwgb3BlbiBhbGwgdGVtcGxhdGVzIHdoZXJlIHlvdSB3YW50IGRvIHVzZSBTRU9Ub29sczIuIFJlbW92ZSB0aGUgY29tcGxldGUgJmx0O3RpdGxlJmd0OyB0YWcgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgbW9kdWxlIHRhZy4gWW91IG1heSBhbHNvIHdpc2ggdG8gcmVtb3ZlIHRoZSB7bWV0YWRhdGF9IHRhZy4gU2hvdWxkIHlvdSBlbGVjdCB0byBsZWF2ZSBpdCB0aGVyZSwgZW5zdXJlIHRoYXQgbm8gbWV0YSB0YWdzIGFyZSBkdXBsaWNhdGVkLiBSZW1vdmUgYW55IGR1cGxpY2F0ZXMgZnJvbSBTaXRlIEFkbWluIC0gR2xvYmFsIFNldHRpbmdzIC0gR2xvYmFsIE1ldGFkYXRhLiA8L3A+CjxwcmU+CntTRU9Ub29sczJ9CjwvcHJlPjxiciAvPgoKPHA+SWYgeW91IGxlZnQgdGhlIHttZXRhZGF0YX0gdGFnIGluIHRoZSB0ZW1wbGF0ZSwgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IHBsYWNlIHRoZSB7U0VPVG9vbHMyfSB0YWcgaW4gdGhlIEdsb2JhbCBNZXRhIHRleHRhcmVhLjwvcD4KPHA+PGVtPlRpcDwvZW0+OiBJZiB5b3UndmUgcmVtb3ZlZCB0aGUge21ldGFkYXRhfSB0YWcsIHJlbWVtYmVyIHRvIGFkZCB0aGUgPGVtPnNob3diYXNlID0gJ3RydWUnPC9lbT4gcGFyYW1ldGVyIHRvIG91dHB1dCB0aGUgJmx0O2Jhc2UmZ3Q7IHRhZy48L3A+CjxwPk5leHQsIGF0IHRoZSBib3R0b20gb2YgeW91ciB0ZW1wbGF0ZSAoYWZ0ZXIgdGhlIGNsb3NpbmcgJmx0Oy9ib2R5Jmd0OyB0YWcpLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBjb2RlOjwvcD4KPHByZT4Ke2NhcHR1cmUgYXNzaWduPSJtZXRhZGVzY3JpcHRpb24ifXtjb250ZW50IGJsb2NrPSJtZXRhZGVzY3JpcHRpb24iIGxhYmVsPSJQYWdlIERlc2NyaXB0aW9uIiBvbmVsaW5lPSJ0cnVlIn17L2NhcHR1cmV9CjwvcHJlPjxiciAvPgoKPHA+VGhpcyBpcyB3aGVyZSB5b3UnbGwgZW50ZXIgYSBzaG9ydCBwYWdlIGRlc2NyaXB0aW9uIChvbmUgb3IgdHdvIHNlbnRlbmNlcykgdGhhdCB3aWxsIGFwcGVhciBpbiB0aGUgc2VhcmNoIGVuZ2luZSdzIHJlc3VsdHMgYW5kIGlmLCBmb3IgZXhhbXBsZSwgc29tZW9uZSBzaGFyZXMgYSBsaW5rIHRvIHlvdXIgcGFnZSBvbiBmYWNlYm9vay48L3A+CjxwPlNlZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcvdmlld3RvcGljLnBocD9mPTQmdD02MTUxNiZoaWxpdD1zZW90b29sczIiPlNFT1Rvb2xzMiB3aXRoIGRldGFpbCBwYWdlczwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy92aWV3dG9waWMucGhwP2Y9NCZ0PTYxNTE1JmhpbGl0PXNlb3Rvb2xzMiI+U0VPVG9vbHMyIHdpdGggZ3JvdXBzIG9mIGtleXdvcmRzPC9hPiBmb3Igc29tZSBtb3JlIGNyZWF0aXZlIHdheXMgb2YgdXNpbmcgdGhlIG1ldGFkZXNjcmlwdGlvbiBhbmQga2V5d29yZCB2YXJpYWJsZXMuPC9wPgo8cD5Ob3csIHZpc2l0IHRoZSBhZG1pbiB0YWJzIGZvciA8ZW0+UGFnZSBUaXRsZSAmIE1ldGEgSW5mb3JtYXRpb248L2VtPiwgdGhlIDxlbT5TaXRlbWFwICYgQ3Jhd2xlciBTZXR0aW5nczwvZW0+IGFuZCB0aGUgPGVtPktleXdvcmQgR2VuZXJhdG9yIFNldHRpbmdzPC9lbT4gYW5kIGZpbGwgaW4gYWxsIHJlcXVpcmVkIGluZm9ybWF0aW9uIGZvciB5b3VyIHNpdGUuIFVuZGVyICJOYW1lIG9mIHBhZ2UgZGVzY3JpcHRpb24gY29udGVudCBibG9jayIgeW91IG5lZWQgdG8gZW50ZXIgdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgYmxvY2sgeW91IGp1c3QgYWRkZWQgdG8geW91ciB0ZW1wbGF0ZXMgKCJtZXRhZGVzY3JpcHRpb24iIGluIG91ciBleGFtcGxlKS48L3A+CjxwPlRoZSB0YWIgIlNFTyBBbGVydHMiIHdpbGwgYWxlcnQgeW91IGlmIGl0IGRldGVjdHMgYW55dGhpbmcgdGhhdCBpcyByZXF1aXJlZCBidXQgbm90IGFjdGl2YXRlZCBvciBmaWxsZWQgaW4uIFlvdSBzaG91bGQgYWxzbyBjb25zaWRlciBzaWduaW5nIHVwIHlvdXIKc2l0ZSB3aXRoIEdvb2dsZSBXZWJtYXN0ZXIgdG9vbHMuIFRoZXJlLCBzZWxlY3QgIk1ldGEgdGFnIHZhbGlkYXRpb24iIGFuZCBwYXN0ZSB0aGUgdmVyaWZpY2F0aW9uIGNvZGUgKHF1aXRlIGEgbG9uZyBzdHJpbmcgb2YgY2hhcmFjdGVycyBhbmQgbnVtYmVycykgaW50byB0aGUgYm94ICJWZXJpZmljYXRpb24gQ29kZSIgaW4gIlNFTyBTZXR0aW5ncyIgdG8gYXV0b21hdGljYWxseSB2ZXJpZnkgdGhhdCB5b3UgYXJlIHJlYWxseQp0aGUgb3duZXIgb2YgeW91ciBwYWdlIChubyBuZWVkIHRvIHBhc3RlIHRoZSBHb29nbGUgTWV0YS1jb2RlIGludG8geW91ciB0ZW1wbGF0ZSkuPC9wPgo8cD5BcyBzb29uIGFzIGV2ZXJ5dGhpbmcgaXMgc2V0IHVwLCBsb29rIGF0IHRoZSAiU0VPIEFsZXJ0cyIgdGFiIGFuZCBmaXggYWxsIHByb2JsZW1zIGRldGVjdGVkIGhlcmUuIFRha2UgY2FyZSB0byBpbnNlcnQgYSAodW5pcXVlKSBwYWdlIGRlc2NyaXB0aW9uIG9uIGV2ZXJ5IHBhZ2UgeW91IGVkaXQgaW4gdGhlIGZpZWxkIGxhYmVsbGVkICJQYWdlIERlc2NyaXB0aW9uIiBhdCB0aGUgYm90dG9tIG9mIHlvdXIgIkVkaXQgUGFnZSIgZm9ybS48L3A+CjxwPkdvIHRvIHRoZSA8ZW0+UGFnZSBzZXR0aW5nczwvZW0+IHRhYiB3aGVyZSB5b3UnbGwgZmluZCBhIGxpc3Qgb2YgYWxsIHBhZ2VzIHlvdSBoYXZlIGluIHlvdXIgc3lzdGVtLiBIZXJlLCB5b3UgY2FuOjwvcD4KPHVsPgo8bGk+U2V0IHlvdXIgb3duIGtleXdvcmRzIChpbnN0ZWFkIG9mIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBvbmVzKSBvciBPcGVuR3JhcGggdHlwZSBmb3IgY2VydGFpbiBwYWdlczwvbGk+CjxsaT5BZGp1c3QgdGhlIHNpdGVtYXAgcHJpb3JpdHkgKHdoaWNoIGlzIGF1dG8tY2FsY3VsYXRlZCBieSBkZWZhdWx0KSBvZiBhIHBhZ2UgdG8gaW5kaWNhdGUgdGhhdCBpdCBzaG91bGQKYmUgY29uc2lkZXJlZCBtb3JlIGltcG9ydGFudCBmb3Igc2VhcmNoIGVuZ2luZSBtYXRjaGVzIG9uIHlvdXIgcGFnZS48L2xpPgo8bGk+UHJldmVudCBhY3RpdmUgcGFnZXMgZnJvbSBiZWluZyBsaXN0ZWQgaW4gdGhlIFNpdGUgTWFwPC9saT4KPGxpPlNwZWNpZnkgd2hldGhlciByb2JvdHMgc2hvdWxkIGluZGV4IG9yIGZvbGxvdyB0aGUgcGFnZSBhbmQgbGlua3M8L2xpPgo8L3VsPgo8cD5TRU9Ub29sczIgd2lsbCBhbHNvIGF1dG9tYXRpY2FsbHkgaW5zZXJ0IGEgbGluayB0byB0aGUgaW1hZ2UgdG8gYmUgdXNlZCBhcyB0aGUgbWFpbiBpbWFnZSBvZiB5b3VyIHBhZ2UgaWYgeW91IHNlbGVjdCBhbiAiSW1hZ2UiIGZvciB0aGUgcGFnZSBmcm9tIHdpdGhpbiB5b3VyIHBhZ2UncyAiT3B0aW9ucyIgdGFiICh0aGlzIGlzIGltcG9ydGFudCBmb3IgcGVvcGxlIHN1Ym1pdHRpbmcgYSBsaW5rIHRvIHlvdXIgcGFnZSBlLmcuIG9uIGZhY2Vib29rKS4gQWxzbywgaWYgeW91IGFyZSB1c2luZyBPcGVuR3JhcGgsIHRoZSBpbWFnZSBzZWxlY3RlZCBoZXJlCndpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgT3BlbkdyYXBoIGltYWdlIHlvdSBzcGVjaWZpZWQgZnJvbSB3aXRoaW4gIlNFTyBTZXR0aW5ncyIuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHlvdSBuZWVkIHRvIHVwbG9hZCB0aG9zZSBpbWFnZXMgdG8geW91ciAvdXBsb2Fkcy9pbWFnZXMgZGlyZWN0b3J5LjwvcD4KPGgzPkNhbiBJIHVzZSBzbWFydHkgdmFyaWFibGVzPzwvaDM+CjxwPllvdSBjYW4gdXNlIGFsbCBzbWFydHkgdmFyaWFibGVzIGFuZCBVRFRzIHdpdGhpbiB0aGUgc2V0dGluZ3MgZmllbGRzIDxpPlBhZ2UgdGl0bGU8L2k+LCA8aT5NZXRhIHBhZ2UgdGl0bGU8L2k+LCA8aT5BdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBkZXNjcmlwdGlvbnM8L2k+LCA8aT5NZXRhIGNvcHlyaWdodDwvaT4sIDxpPkFkZGl0aW9uYWwgbWV0YSB0YWdzPC9pPiBhbmQgeW91ciBjdXN0b20gcGFnZSBkZXNjcmlwdGlvbiBibG9jay4gRW50ZXIgPGNvZGU+e2RlYnVnfTwvY29kZT4gdG8gc2VlIGEgbGlzdCBvZiBhbGwgYXZhaWxhYmxlIHZhcmlhYmxlcy48L3A+CjxoMz5XaGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBleHBvcnRlZCBieSBTRU9Ub29sczI/PC9oMz4KPGNvZGU+eyRzZW9fa2V5d29yZHN9PC9jb2RlPjogQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBhbGwga2V5d29yZHMgc2V0IGZvciB0aGUgcGFnZSAoaW5jbHVkaW5nIHRoZSBkZWZhdWx0IGtleXdvcmRzKTxiciAvPgo8Y29kZT57JHRpdGxlX2tleXdvcmRzfTwvY29kZT46IEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGtleXdvcmRzIHNldCBmb3IgdGhlIHBhZ2UgKGluY2x1ZGluZyB0aGUgZGVmYXVsdCBrZXl3b3Jkcyk8YnIgLz4KPGNvZGU+eyRkZWZhdWx0X2tleXdvcmRzfTwvY29kZT46IEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGRlZmF1bHQga2V5d29yZHM8YnIgLz4KPGNvZGU+eyRwYWdlX2tleXdvcmRzfTwvY29kZT46IEEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGtleXdvcmRzIHNldCBmb3IgdGhlIHBhZ2UgKHdpdGhvdXQgdGhlIGRlZmF1bHQga2V5d29yZHMpPGJyIC8+CjxwPjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQgb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDEyLCBDbGlwIE1hZ2ljIDxhIGhyZWY9Im1haWx0bzphZG1pbkBjbGlwbWFnaWMuY29tLmF1Ij4mbHQ7YWRtaW5AY2xpcG1hZ2ljLmNvbS5hdSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CjwvZGl2PjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3diYXNlPSJ0cnVlIiAtIFNldCB0aGlzIHBhcmFtZXRlciB0byA8Y29kZT5mYWxzZTwvY29kZT4gdG8gc3VwcHJlc3MgdGhlIG91dHB1dCBvZiB0aGUgYmFzZSBocmVmIHRhZy48L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBDbGlwIE1hZ2ljICZsdDthZG1pbkBjbGlwbWFnaWMuY29tLmF1Jmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIC0gMjUgSmFudWFyeSAyMDEyLiBJbml0aWFsIHJlbGVhc2UuIFRoaXMgaXMgYSBmb3JrIG9mIHRoZSBTRU9Ub29scyBtb2R1bGUgd2l0aCBDTVNNUyAxLjEwKyBjb21wYXRpYmlsaXR5LiBDaGFuZ2VzIGluY2x1ZGU6Cgk8dWw+CgkJPGxpPlNldCBwcmVmZXJlbmNlcyBvbiBpbnN0YWxsPC9saT4KCQk8bGk+UmVtb3ZlIHByZWZlcmVuY2VzIG9uIHVuaW5zdGFsbDwvbGk+CgkJPGxpPlJlcGxhY2UgYWxsIHJlZmVyZW5jZSB0byBIaWVyYXJjaHlNYW5hZ2VyIG9iamVjdHMgd2l0aCBDb250ZW50T3BlcmF0aW9ucyBvYmplY3RzPC9saT4KCQk8bGk+R2VuZXJhdGUgYWxsIGtleXdvcmRzLCBrZXl3b3JkIHN1Z2dlc3Rpb25zLCBkZXNjcmlwdGlvbnMgYW5kIGRlZmF1bHQgZGVzY3JpcHRpb25zPC9saT4KCQk8bGk+R2VuZXJhdGUgc2l0ZW1hcC54bWwgYW5kIHJvYm90cy50eHQgZmlsZXM8L2xpPgoJCTxsaT5SZXRhaW4gY2hlY2tib3ggcHJlZmVyZW5jZSBzZXR0aW5ncyBhZnRlciBzdWJtaXQ8L2xpPgoJCTxsaT5PbiBmcm9udGVuZCBwYWdlIGxvYWQsIGVuc3VyZSB0aGF0IGEgY29ycmVzcG9uZGluZyByZWNvcmQgZXhpc3RzIGluIHRoZSBzZW90b29sczIgZGF0YWJhc2UgdGFibGU8L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4wLjEgLSAyNSBKYW51YXJ5IDIwMTIuIE1pbm9yIGJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMiAtIDEgRmVicnVhcnkgMjAxMi4gQnVnIGZpeDwvbGk+CjxsaT5WZXJzaW9uIDEuMC4zIC0gMSBGZWJydWFyeSAyMDEyLiBCdWcgZml4PC9saT4KPGxpPlZlcnNpb24gMS4wLjQgLSAxIEZlYnJ1YXJ5IDIwMTIuIENvcnJlY3Rpb248L2xpPgo8bGk+VmVyc2lvbiAxLjAuNSAtIDYgRmVicnVhcnkgMjAxMi4gQWRkIGV2ZW50IGhhbmRsZXJzIHRvIHB1c2ggc2l0ZW1hcCB0byBHb29nbGUgd2VibWFzdGVyczwvbGk+CjxsaT5WZXJzaW9uIDEuMC42IC0gNSBNYXJjaCAyMDEyLiBJbXByb3ZlZCBoYW5kbGluZyBvZiBzc2wgdXJscyBhbmQgYnVnIGZpeCB3aGVuIHRoZXJlIGFyZSBubyBzaG9ydCBtZXRhIGRlc2NyaXB0aW9uczwvbGk+CjxsaT5WZXJzaW9uIDEuMC43IC0gOSBBcHJpbCAyMDEyLiBCdWcgZml4PC9saT4KPGxpPlZlcnNpb24gMS4wLjggLSA5IEFwcmlsIDIwMTIuIEJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuOSAtIDExIEFwcmlsIDIwMTIuCiAgICA8dWw+CiAgICAgICAgPGxpPk1vcmUgaW1wcm92ZW1lbnRzIHRvIHNzbCBoYW5kbGluZyBlc3BlY2lhbGx5IGluIHRoZSBzaXRlbWFwLnhtbCAodGhhbmtzIGFuZHJpZXNpbmZvc2Vydik8L2xpPgogICAgICAgIDxsaT5BYmlsaXR5IHRvIHNob3cgYW55IEFjdGl2ZSBwYWdlLCBub3QganVzdCBwYWdlcyB3aXRoIEFjdGl2ZSBhbmQgU2hvdyBJbiBNZW51IGluIHRoZSBzaXRlbWFwLnhtbCAodGhhbmtzIE1hdHQpPC9saT4KICAgIDwvdWw+CjxsaT5WZXJzaW9uIDEuMC4xMCAtIDI0IE1heSAyMDEyIC0gbW9zdGx5IGltcHJvdmVtZW50cyBpbiB0aGUgc2l0ZW1hcCBhcmVhLCBpZToKICAgIDx1bD4KICAgICAgICA8bGk+QWxsb3dzIHNpdGVtYXAgaW5kZXhpbmcgb2YgaW50ZXJuYWwgYW5kIGV4dGVybmFsIFVSTCBsaW5rczwvbGk+CiAgICAgICAgPGxpPkZpbHRlcnMgb3V0IEVycm9yIFBhZ2UgZnJvbSBzaXRlbWFwLnhtbDwvbGk+CiAgICA8L3VsPgo8bGk+VmVyc2lvbiAxLjAuMTEgLSAxNCBBdWd1c3QgMjAxMi4gQ01TTVMgMS4xMSBjb21wYXRpYmlsaXR5ICh0aGFua3MgbGVlcm95YnJ1biBhbmQgcG9zdGlmZm0pPC9saT4KPGxpPlZlcnNpb24gMS4xIC0gOCBTZXB0ZW1iZXIgMjAxMi4gQmV0dGVyIGZ1dHVyZS1wcm9vZmluZyBmb3IgQ01TTVMgMS4xMSBjb21wYXRpYmlsaXR5IGFuZCBhIGZldyBtb3JlIGZlYXR1cmVzCgk8dWw+CgkJPGxpPk9wdGlvbiB0byBpbmNsdWRlIGZvbGxvdy9ub2ZvbGxvdyBhcyB3ZWxsIGFzIGluZGV4L25vaW5kZXggdG8gbWV0YSByb2JvdHMgdGFnPC9saT4KCQk8bGk+SnF1ZXJ5IGFqYXggc3VwcG9ydCBmb3IgUHJpb3JpdHksIEluZGV4IGFuZCBGb2xsb3cgdG9nZ2xpbmcuPC9saT4KCQk8bGk+UHJvY2VzcyBzbWFydHkgdGFncyBpbiB0aGUgbWV0YSBkZXNjcmlwdGlvbiBhbmQgbWV0YSBjb3B5cmlnaHQgZmllbGRzPC9saT4KCQk8bGk+SW5jbHVkZSBtZXRhIHZpZXdwb3J0IHRhZyBieSBkZWZhdWx0IHRvIHRoZSBhZGRpdGlvbmFsIG1ldGEgdGFnczwvbGk+CgkJPGxpPktleXdvcmQgZWRpdCBzY3JlZW4gbm93IHNob3dzIGEgcHJldmlldyBvZiB0aGUgcGFnZSBjb250ZW50IGZvciBxdWljayByZWZlcmVuY2UsIGFzIHdlbGwgYXMgbGlua3MgdG8gZWRpdCBvciB2aWV3IHRoZSBmcm9udGVuZCB2ZXJzaW9uIG9mIHRoZSBwYWdlLjwvbGk+CgkJPGxpPlJlc3RydWN0dXJlZCBkZWZhdWx0YWRtaW4gdGFiIGZpbGVzIHRvIGJlIGEgbGl0dGxlIG1vcmUgbWFuYWdlYWJsZS48L2xpPgoJCTxsaT5PdXRwdXRzIG9ubHkgSFRNTDUgcmVnaXN0ZXJlZCBtZXRhIHRhZ3Mgd2hlbiBIVE1MNSBpcyBzcGVjaWZpZWQuIChUaGFua3MgdW5pcXUzKTwvbGk+CgkJPGxpPlVzZXMgY2Fub25pY2FsIFVSTCB3aGVuIGF2YWlsYWJsZS4gKFRoYW5rcyBpbmZvYW5kcmllcyk8L2xpPgoJPC91bD4KPC9saT4KPC91bD48YnIgLz4=]]></about>
	<description><![CDATA[Helps with SEO in general, automatically generating XML sitemaps and comprehensive meta descriptions]]></description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.changesettings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEFjdGlvbjogY2hhbmdlc2V0dGluZ3MKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoIkVkaXQgU0VPIFNldHRpbmdzIikpCnsKICByZXR1cm4gJHRoaXMtPkRpc3BsYXlFcnJvclBhZ2UoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FjY2Vzc2RlbmllZCcpKTsKfQoKLy8gUmVnZW5lcmF0ZSBTaXRlbWFwIGFuZCByb2JvdHMudHh0CmlmIChpc3NldCgkX1BPU1RbJ2RvX3JlZ2VuZXJhdGUnXSkpIHsKICAkdGhpcy0+Y3JlYXRlU2l0ZW1hcCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJywxKSA9PSAxKTsKICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9yb2JvdHMnLDEpID09IDEpIHsKICAgICR0aGlzLT5jcmVhdGVSb2JvdHNUWFQoKTsKICB9CiAgJHRoaXMtPmF1ZGl0KCJUZXN0IiwiU0VPIFRvb2xzIiwiTWFudWFsbHkgcmVnZW5lcmF0ZWQgc2l0ZW1hcC54bWwgYW5kIHJvYm90cy50eHQiKTsKICAkdGhpcy0+UmVkaXJlY3QoJHRoaXMtPmlkLCAnZGVmYXVsdGFkbWluJywgJycsIEFycmF5KCdtZXNzYWdlJz0+J3NpdGVtYXBfcmVnZW5lcmF0ZWQnLCd0YWInPT4nc2l0ZW1hcHNldHRpbmdzJykpOwp9CgppZiAoaXNzZXQoJF9QT1NUWydzYXZlX21ldGFfc2V0dGluZ3MnXSkpIHsKICAgCiAgJG1ldGFfc3RhbmRhcmQgPSBpc3NldCgkX1BPU1RbJ21ldGFfc3RhbmRhcmQnXSkgPyAxIDogMDsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9zdGFuZGFyZCcsJG1ldGFfc3RhbmRhcmQpOwoKICAkbWV0YV9kdWJsaW5jb3JlID0gaXNzZXQoJF9QT1NUWydtZXRhX2R1YmxpbmNvcmUnXSkgPyAxIDogMDsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9kdWJsaW5jb3JlJywkbWV0YV9kdWJsaW5jb3JlKTsKCiAgJG1ldGFfb3BlbmdyYXBoID0gaXNzZXQoJF9QT1NUWydtZXRhX29wZW5ncmFwaCddKSA/IDEgOiAwOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaCcsJG1ldGFfb3BlbmdyYXBoKTsKCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJywkX1BPU1RbJ2FkZGl0aW9uYWxfbWV0YV90YWdzJ10pOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCRfUE9TVFsnbWV0YV9wdWJsaXNoZXInXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfY29udHJpYnV0b3InLCRfUE9TVFsnbWV0YV9jb250cmlidXRvciddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9jb3B5cmlnaHQnLCRfUE9TVFsnbWV0YV9jb3B5cmlnaHQnXSk7CgogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2xvY2F0aW9uJywkX1BPU1RbJ21ldGFfbG9jYXRpb24nXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfcmVnaW9uJywkX1BPU1RbJ21ldGFfcmVnaW9uJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywkX1BPU1RbJ21ldGFfbGF0aXR1ZGUnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfbG9uZ2l0dWRlJywkX1BPU1RbJ21ldGFfbG9uZ2l0dWRlJ10pOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCRfUE9TVFsnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCRfUE9TVFsnbWV0YV9vcGVuZ3JhcGhfdHlwZSddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLCRfUE9TVFsnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2ltYWdlJywkX1BPU1RbJ21ldGFfb3BlbmdyYXBoX2ltYWdlJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCRfUE9TVFsnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicsJF9QT1NUWydtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbiddKTsKCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RpdGxlJywkX1BPU1RbJ3RpdGxlJ10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd0aXRsZV9tZXRhJywkX1BPU1RbJ3RpdGxlX21ldGEnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywkX1BPU1RbJ2Rlc2NyaXB0aW9uX2Jsb2NrJ10pOwoKCiAgJGRlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUgPSBpc3NldCgkX1BPU1RbJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnXSkgPyAxIDogMDsKCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnLCRkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlKTsKCiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG8nLCRfUE9TVFsnZGVzY3JpcHRpb25fYXV0byddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9rZXl3b3JkcycsJF9QT1NUWydkZWZhdWx0X2tleXdvcmRzJ10pOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9kb2N0eXBlJywkX1BPU1RbJ21ldGFfZG9jdHlwZSddKTsKICAKICAkY29tcGlsZV91ZHRzID0gaXNzZXQoJF9QT1NUWydjb21waWxlX3VkdHMnXSkgPyAxIDogMDsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY29tcGlsZV91ZHRzJywkY29tcGlsZV91ZHRzKTsKICAgIAogICR0aGlzLT5hdWRpdCgiVGVzdCIsIlNFTyBUb29scyIsIkVkaXRlZCBNZXRhIHNldHRpbmdzIik7CiAgJHRoaXMtPlJlZGlyZWN0KCR0aGlzLT5pZCwgJ2RlZmF1bHRhZG1pbicsICcnLCBBcnJheSgnbWVzc2FnZSc9PidzZXR0aW5nc191cGRhdGVkJywndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKfQoKaWYgKGlzc2V0KCRfUE9TVFsnc2F2ZV9zaXRlbWFwX3NldHRpbmdzJ10pKSB7CgogICRjcmVhdGVfc2l0ZW1hcCA9IGlzc2V0KCRfUE9TVFsnY3JlYXRlX3NpdGVtYXAnXSkgPyAxIDogMDsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnLCRjcmVhdGVfc2l0ZW1hcCk7CgogICRwdXNoX3NpdGVtYXAgPSBpc3NldCgkX1BPU1RbJ3B1c2hfc2l0ZW1hcCddKSA/IDEgOiAwOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLCRwdXNoX3NpdGVtYXApOwoKICAkY3JlYXRlX3JvYm90cyA9IGlzc2V0KCRfUE9TVFsnY3JlYXRlX3JvYm90cyddKSA/IDEgOiAwOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJywkY3JlYXRlX3JvYm90cyk7CgogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd2ZXJpZmljYXRpb24nLCRfUE9TVFsndmVyaWZpY2F0aW9uJ10pOwoKICAkdGhpcy0+YXVkaXQoIlRlc3QiLCJTRU8gVG9vbHMiLCJFZGl0ZWQgU2l0ZW1hcCBzZXR0aW5ncyIpOwogICR0aGlzLT5SZWRpcmVjdCgkdGhpcy0+aWQsICdkZWZhdWx0YWRtaW4nLCAnJywgQXJyYXkoJ21lc3NhZ2UnPT4nc2V0dGluZ3NfdXBkYXRlZCcsJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7Cn0KCmlmIChpc3NldCgkX1BPU1RbJ3NhdmVfa2V5d29yZF9zZXR0aW5ncyddKSkgewoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5sZW5ndGgnLCRfUE9TVFsna2V5d29yZF9taW5sZW5ndGgnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2tleXdvcmRfdGl0bGVfd2VpZ2h0JywkX1BPU1RbJ2tleXdvcmRfdGl0bGVfd2VpZ2h0J10pOwogICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodCcsJF9QT1NUWydrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodCddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9oZWFkbGluZV93ZWlnaHQnLCRfUE9TVFsna2V5d29yZF9oZWFkbGluZV93ZWlnaHQnXSk7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2tleXdvcmRfY29udGVudF93ZWlnaHQnLCRfUE9TVFsna2V5d29yZF9jb250ZW50X3dlaWdodCddKTsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5pbXVtX3dlaWdodCcsJF9QT1NUWydrZXl3b3JkX21pbmltdW1fd2VpZ2h0J10pOwoKICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9leGNsdWRlJywkX1BPU1RbJ2tleXdvcmRfZXhjbHVkZSddKTsKCgoKICAkdGhpcy0+YXVkaXQoIlRlc3QiLCJTRU8gVG9vbHMiLCJFZGl0ZWQgS2V5d29yZCBzZXR0aW5ncyIpOwogICR0aGlzLT5SZWRpcmVjdCgkdGhpcy0+aWQsICdkZWZhdWx0YWRtaW4nLCAnJywgQXJyYXkoJ21lc3NhZ2UnPT4nc2V0dGluZ3NfdXBkYXRlZCcsJ3RhYic9PidrZXl3b3Jkc2V0dGluZ3MnKSk7Cn0KCi8vIERvIGV2ZW50cwokdGhpcy0+U2VuZEV2ZW50KCdQcmVmc1VwZGF0ZWQnLCRfUE9TVCk7CgoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEFjdGlvbjogZGVmYXVsdAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCi8vIEdldCBwYWdlIGRhdGEKJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwokZGIgPSYgY21zbXMoKS0+R2V0RGIoKTsKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwokaHRtbCA9ICIiOwokaHRtbF92ZXJzaW9uID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfZG9jdHlwZScpOwokY2xvc2VfdGFnID0gJGh0bWxfdmVyc2lvbiA8IDMgPyAiIC8+XG4iIDogIj5cbiI7Cgokcm9vdF91cmwgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAkY29uZmlnWydyb290X3VybCddIDogJGNvbmZpZ1snc3NsX3VybCddOwoKLy8gRmlyc3QgdXAsIHdlIGRvIHNvbWUgZGF0YWJhc2UgbWFpbnRlbmFuY2UKLy8gRW5zdXJlIGFsbCB0aGUgYWN0aXZlIHBhZ2VzIGFyZSBpbiB0aGUgc2VvdG9vbHMyIGRhdGFiYXNlCiRxdWVyeSA9ICdTRUxFQ1QgYGNvbnRlbnRfaWRgIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnQgV0hFUkUgKGB0eXBlYCBMSUtFICIlY29udGVudCUiIE9SIGB0eXBlYCBMSUtFICIlbGluayUiIE9SIGB0eXBlYCBMSUtFICIlY2F0YWxvZyUiIClBTkQgYGNvbnRlbnRfaWRgIE5PVCBJTiAoU0VMRUNUIGBjb250ZW50X2lkYCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfc2VvdG9vbHMyKSc7CmlmICghJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpKSB7CiAgJGh0bWwgLj0gICI8YnIgLz5Qcm9ibGVtIHdpdGggdGhlIGRhdGFiYXNlISBQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuIjsKICBkaWU7Cn0KCmlmICgkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCkgewogIC8vIE9LIHdlIGhhdmUgc29tZSBuZXcgcGFnZXMKICAkcTIgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgU0VUIGNvbnRlbnRfaWQgPSA/LCBpbmRleGFibGUgPSA/JzsKICB3aGlsZSAoJG9uZV9wYWdlID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgewogICAgJGRiLT5FeGVjdXRlKCRxMixhcnJheSgkb25lX3BhZ2VbJ2NvbnRlbnRfaWQnXSwxKSk7CiAgfQp9CgovLyBOb3cgY2hlY2sgdGhhdCB3ZSBoYXZlIHJlbW92ZWQgZnJvbSBzZW90b29sczIgYW55IHBhZ2VzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQKJHF1ZXJ5ID0gJ1NFTEVDVCBgY29udGVudF9pZGAgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBgY29udGVudF9pZGAgTk9UIElOIChTRUxFQ1QgYGNvbnRlbnRfaWRgIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4gJ2NvbnRlbnQpJzsKaWYgKCEkcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSkpIHsKICAkaHRtbCAuPSAgIjxiciAvPlByb2JsZW0gd2l0aCB0aGUgZGF0YWJhc2UhIFBsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOwogIGRpZTsKfQppZiAoJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDApIHsKICAvLyBPSyB3ZSBoYXZlIHNvbWUgZGVsZXRlZCBwYWdlcwogICRxMyA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBjb250ZW50X2lkID0gPyc7CiAgd2hpbGUgKCRvbmVfcGFnZSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgICRkYi0+RXhlY3V0ZSgkcTMsYXJyYXkoJG9uZV9wYWdlWydjb250ZW50X2lkJ10sMSkpOwogIH0KfQoKLy8gTGFzdGx5LCBlbnN1cmUgdGhhdCBhbGwgaW5hY3RpdmUgcGFnZXMgYXJlIG1hcmtlZCBhcyBub3QgaW5kZXhhYmxlIGluIHNlb3Rvb2xzMgokcXVlcnkgPSAnU0VMRUNUIGNvbnRlbnRfaWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ2NvbnRlbnQgV0hFUkUgYWN0aXZlID0gMCc7CmlmICghJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpKSB7CiAgJGh0bWwgLj0gICI8YnIgLz5Qcm9ibGVtIHdpdGggdGhlIGRhdGFiYXNlISBQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IuIjsKICBkaWU7Cn0KCmlmICgkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCkgewogIC8vIE9LIHdlIGhhdmUgdG8gcHJldmVudCB0aGUgaW5hY3RpdmUgcGFnZXMgZnJvbSBiZWluZyBpbmRleGVkLgogICRxNCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgU0VUIGluZGV4YWJsZSA9IDAgV0hFUkUgY29udGVudF9pZCA9ID8nOwogIHdoaWxlICgkb25lX3BhZ2UgPSAkcmVzdWx0LT5mZXRjaFJvdygpKSB7CiAgICAkZGItPkV4ZWN1dGUoJHE0LGFycmF5KCRvbmVfcGFnZVsnY29udGVudF9pZCddKSk7CiAgfQp9CgovLyBQaGV3LCB0aGF0J3MgYWxsIGRvbmUgc28gd2UgY2FuIG1vdmUgb24gdG8gdGhlIHJlYWwgYnVzaW5lc3Mgb2YgdGhlIGRheQoKaWYoIGlzc2V0KCRfUkVRVUVTVFsnbWFjdCddKSApCglyZXR1cm47IC8vIEdvIG5vIGZ1cnRoZXIsIHdlJ3JlIHByb2JhYmx5IGluIHRoZSBhZG1pbiBhcmVhCgokdHBsX3ZhcnMgPSAkc21hcnR5LT5nZXRfdGVtcGxhdGVfdmFycygpOwppZiAoISRjdXJjb250ZW50ID0gJHRwbF92YXJzWydjb250ZW50X29iaiddKQogIHJldHVybjsgIC8vIE5vIHBhZ2UKCiRwYWdlX3VybCA9ICFlbXB0eSgkdHBsX3ZhcnNbJ2Nhbm9uaWNhbCddKSA/ICR0cGxfdmFyc1snY2Fub25pY2FsJ10gOiAkY3VyY29udGVudC0+R2V0VVJMKCk7CiRwYWdlX2lkID0gJGN1cmNvbnRlbnQtPklkKCk7CgoKJG1vZGlmaWVkX2RhdGUgPSAkY3VyY29udGVudC0+Z2V0TW9kaWZpZWREYXRlKCk7CiRtb2RpZmllZF9kYXRlID0gZGF0ZSgnWS1tLWRcVEg6aTpzUCcsJG1vZGlmaWVkX2RhdGUpOwoKLy8gS2V5d29yZCBnZW5lcmF0b3IKJGtleXdvcmRzID0gZXhwbG9kZSgnICcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfa2V5d29yZHMnLCcnKSk7CgoKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgV0hFUkUgY29udGVudF9pZCA9ID8nOwppZiAoISRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwYWdlX2lkKSkpIHsKICAkaHRtbCAuPSAgIlByb2JsZW0gd2l0aCB0aGUgZGF0YWJhc2UhIFBsZWFzZSBjb250YWN0IHlvdXIgYWRtaW5pc3RyYXRvci4iOwogIGRpZTsKfQoKJHBhZ2VfaW5mbyA9ICRyZXN1bHQtPkZldGNoUm93KCk7CgoKaWYgKCRwYWdlX2luZm9bJ2tleXdvcmRzJ10gIT0gIiIpIHsKICAkb3RoZXJfa2V5d29yZHMgPSBhcnJheV9mbGlwKGV4cGxvZGUoJyAnLCRwYWdlX2luZm9bJ2tleXdvcmRzJ10pKTsKfWVsc2V7CiAgJG90aGVyX2tleXdvcmRzID0gJHRoaXMtPmdldEtleXdvcmRTdWdnZXN0aW9ucygkcGFnZV9pZCk7Cn0KCiRzZW9fa2V5d29yZHMgPSBpbXBsb2RlKCcsICcsYXJyYXlfdW5pcXVlKGFycmF5X21lcmdlKCRrZXl3b3JkcywgYXJyYXlfZmxpcCgkb3RoZXJfa2V5d29yZHMpKSkpOwokc21hcnR5LT5hc3NpZ24oJ3Nlb19rZXl3b3JkcycsICRzZW9fa2V5d29yZHMpOwokdGl0bGVfa2V5d29yZHMgPSBpbXBsb2RlKCcgJyxhcnJheV91bmlxdWUoYXJyYXlfbWVyZ2UoJGtleXdvcmRzLCBhcnJheV9mbGlwKCRvdGhlcl9rZXl3b3JkcykpKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGVfa2V5d29yZHMnLCAkdGl0bGVfa2V5d29yZHMpOwokc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRfa2V5d29yZHMnLCBpbXBsb2RlKCcgJywgJGtleXdvcmRzKSk7CiRzbWFydHktPmFzc2lnbigncGFnZV9rZXl3b3JkcycsIGltcGxvZGUoJyAnLCBhcnJheV9mbGlwKCRvdGhlcl9rZXl3b3JkcykpKTsKCi8vIFBhZ2UgZGVzY3JpcHRpb24KJGRlc2NyaXB0aW9uX2lkID0gc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSk7CmlmICgkY3VyY29udGVudCAhPT0gZmFsc2UpIHsKICAkZGVzY3JpcHRpb24gPSBzdHJpcF90YWdzKCRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kY3VyY29udGVudC0+R2V0UHJvcGVydHlWYWx1ZSgkZGVzY3JpcHRpb25faWQpKSk7Cn0KCmlmICgoJGRlc2NyaXB0aW9uID09ICIiKSAmJiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnLDEpID09IDEpICYmICRjdXJjb250ZW50ICE9PSBOVUxMKSB7CiAgJGt3ID0gYXJyYXlfZmxpcCgkb3RoZXJfa2V5d29yZHMpOwogICRsYXN0X2tleXdvcmQgPSBhcnJheV9wb3AoJGt3KTsKICAka2V5d29yZHMgPSBpbXBsb2RlKCcsICcsJGt3KSAuICIgIiAuICR0aGlzLT5sYW5nKCdhbmQnKSAuICIgIiAuICRsYXN0X2tleXdvcmQ7CiAgCiAgJGRlc2NyaXB0aW9uID0gc3RyX3JlcGxhY2UoJ3trZXl3b3Jkc30nLCRrZXl3b3JkcywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycsJycpKTsKICAkZGVzY3JpcHRpb24gPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGN1cmNvbnRlbnQtPk5hbWUoKSwkZGVzY3JpcHRpb24pOwogICRkZXNjcmlwdGlvbiA9ICRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kZGVzY3JpcHRpb24pOwoKfQovLyBNRVRBIHRhZyBmb3IgY29udGVudCB0eXBlCmlmICgkaHRtbF92ZXJzaW9uIDwgMykgewogICRodG1sIC49ICAiPG1ldGEgaHR0cC1lcXVpdj0nQ29udGVudC1UeXBlJyBjb250ZW50PSd0ZXh0L2h0bWw7IGNoYXJzZXQ9Ii4kY29uZmlnWydkZWZhdWx0X2VuY29kaW5nJ10uIiciIC4kY2xvc2VfdGFnOwp9IGVsc2UgewogICRodG1sIC49ICc8bWV0YSBjaGFyc2V0PSInLnN0cnRvdXBwZXIoJGNvbmZpZ1snZGVmYXVsdF9lbmNvZGluZyddKS4nIicuICRjbG9zZV90YWc7Cn0KCi8vIFNob3cgYmFzZT8KaWYgKGlzc2V0KCRwYXJhbXNbJ3Nob3diYXNlJ10pICYmICRwYXJhbXNbJ3Nob3diYXNlJ10gIT0gZmFsc2UpIHsKICAkaHRtbCAuPSAgIjxiYXNlIGhyZWY9JyIuJHJvb3RfdXJsLiIvJyIgLiAkY2xvc2VfdGFnOwp9CgoKLy8gUGFnZSB0aXRsZQppZiAoJGN1cmNvbnRlbnQgIT09IE5VTEwpewogICR0aXRsZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aXRsZScsJ3t0aXRsZX0gfCB7c2l0ZW5hbWV9IC0ge3Nlb19rZXl3b3Jkc30nKTsKICAkdGl0bGUgPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRpdGxlKTsKCiAgJG1ldGFfdGl0bGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGl0bGVfbWV0YScsJ3t0aXRsZX0gfCB7c2l0ZW5hbWV9Jyk7CiAgJG1ldGFfdGl0bGUgPSBzdHJfcmVwbGFjZSgne3RpdGxlfScsJGN1cmNvbnRlbnQtPk5hbWUoKSwkbWV0YV90aXRsZSk7CiAgJG1ldGFfdGl0bGUgPSBzdHJfcmVwbGFjZSgne3NpdGVuYW1lfScsJHRwbF92YXJzWydzaXRlbmFtZSddLCRtZXRhX3RpdGxlKTsKICAkbWV0YV90aXRsZSA9IHN0cl9yZXBsYWNlKCd7c2VvX2tleXdvcmRzfScsJHRpdGxlX2tleXdvcmRzLCRtZXRhX3RpdGxlKTsKICAkbWV0YV90aXRsZSA9ICRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kbWV0YV90aXRsZSk7CgogICRvcGVuZ3JhcGhfdGl0bGUgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCd7dGl0bGV9Jyk7CiAgJG9wZW5ncmFwaF90aXRsZSA9IHN0cl9yZXBsYWNlKCd7dGl0bGV9JywkY3VyY29udGVudC0+TmFtZSgpLCRvcGVuZ3JhcGhfdGl0bGUpOwogICRvcGVuZ3JhcGhfdGl0bGUgPSAkc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJG9wZW5ncmFwaF90aXRsZSk7CgogICRodG1sIC49ICAiPHRpdGxlPiIuJHRpdGxlLiI8L3RpdGxlPlxuIjsKfQoKLy8gSW1hZ2UtTGluawokaW1nID0gJGN1cmNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJ2ltYWdlJyk7CmlmICgoJGltZyAhPSAtMSkgJiYgKCRpbWcgIT0gIiIpKSAgewogICRodG1sIC49ICAiPGxpbmsgcmVsPSdpbWFnZV9zcmMnIGhyZWY9JyIuJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc191cmwnXS4gRElSRUNUT1JZX1NFUEFSQVRPUi4kaW1nLiInIiAuICRjbG9zZV90YWc7Cn0KCgovLyBTdGFuZGFyZCBNRVRBIHRhZ3MKaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX3N0YW5kYXJkJywxKSA9PSAxKSB7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdkZXNjcmlwdGlvbicgY29udGVudD0nJGRlc2NyaXB0aW9uJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0na2V5d29yZHMnIGNvbnRlbnQ9JyRzZW9fa2V5d29yZHMnIiAuICRjbG9zZV90YWc7CiAgCgogIGlmICgkaHRtbF92ZXJzaW9uIDwgMyl7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J3RpdGxlJyBjb250ZW50PSckbWV0YV90aXRsZSciIC4gJGNsb3NlX3RhZzsKICAgICRodG1sIC49ICAiPG1ldGEgbmFtZT0nZGF0ZScgY29udGVudD0nJG1vZGlmaWVkX2RhdGUnIiAuICRjbG9zZV90YWc7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2xhc3R1cGRhdGUnIGNvbnRlbnQ9JyRtb2RpZmllZF9kYXRlJyIgLiAkY2xvc2VfdGFnOwogICAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdyZXZpc2VkJyBjb250ZW50PSckbW9kaWZpZWRfZGF0ZSciIC4gJGNsb3NlX3RhZzsKICB9CgoKLy8gU3RhcnQgb2YgTUVUQSByb2JvdHMgdGFnIGZvciBJTkRFWC9OT0lOREVYCmlmICgoJHBhZ2VfaW5mb1snaW5kZXhhYmxlJ10gPT0gMSB8fCAkcGFnZV9pbmZvWydpbmRleGFibGUnXSA9PSBudWxsKSAmJiAkcGFnZV9pbmZvWydpbmRleGFibGUnXSAhPT0wKSB7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdyb2JvdHMnIGNvbnRlbnQ9J2luZGV4IjsKfWVsc2V7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdyb2JvdHMnIGNvbnRlbnQ9J25vaW5kZXgiOwp9CgovLyBFbmQgb2YgTUVUQSByb2JvdHMgdGFnIGZvciBGT0xMT1cvTk9GT0xMT1cKaWYgKCRwYWdlX2luZm9bJ2ZvbGxvdyddID09IDEgKSAgewogICRodG1sIC49ICAiLCBub2ZvbGxvdyciIC4gJGNsb3NlX3RhZzsKfWVsc2V7CiAgJGh0bWwgLj0gICIsIGZvbGxvdyciIC4gJGNsb3NlX3RhZzsKfQoKCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywnJykgIT0gJycpIHsKICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2dvb2dsZS1zaXRlLXZlcmlmaWNhdGlvbicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywnJykuIiciIC4gJGNsb3NlX3RhZzsKfQogIAogIAogIAogIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCcnKSAhPSAiIil7CgkkaHRtbCAuPSAiPG1ldGEgbmFtZT0nYXV0aG9yJyBjb250ZW50PSciLiRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInKSkuIiciIC4gJGNsb3NlX3RhZzsKICB9IGVsc2UgewoJJGh0bWwgLj0gIjxtZXRhIG5hbWU9J2F1dGhvcicgY29udGVudD0nIi5jbXNfc2l0ZXByZWZzOjpnZXQoJ3NpdGVuYW1lJykuIiciLiAkY2xvc2VfdGFnOwogIH0KCQovLyAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2NvcHlyaWdodCcsJycpICE9ICIiKQovLyAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2NvcHlyaWdodCcgY29udGVudD0nIi4kc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JykpIC4iJyAvPlxuIjsKCQogIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb2NhdGlvbicsJycpICE9ICIiKSB7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J2dlby5wbGFjZW5hbWUnIGNvbnRlbnQ9JyIuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfcmVnaW9uJywnJykgIT0gIiIpIHsKICAgICRodG1sIC49ICAiPG1ldGEgbmFtZT0nZ2VvLnJlZ2lvbicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykgIT0gIiIpICYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnLCcnKSAhPSAiIikpIHsKICAgICRodG1sIC49ICAiPG1ldGEgbmFtZT0nZ2VvLnBvc2l0aW9uJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykuIjsiLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLiInIiAuICRjbG9zZV90YWc7CiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0lDQk0nIGNvbnRlbnQ9JyIuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnLCcnKS4iLCAiLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLiInIiAuICRjbG9zZV90YWc7CiAgfQogIAp9CgppZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJywnJykgIT0gJycpIHsKCSRodG1sIC49ICRzbWFydHktPmZldGNoKCdzdHJpbmc6Jy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnKSk7Cn0KCi8vIER1YmxpbkNvcmUgTUVUQSB0YWdzCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9kdWJsaW5jb3JlJywwKSA9PSAxKSB7CiAgJGh0bWwgLj0gICI8bGluayByZWw9J3NjaGVtYS5EQycgaHJlZj0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nIiAuICRjbG9zZV90YWc7CiAgJGh0bWwgLj0gICI8bGluayByZWw9J3NjaGVtYS5EQ1RFUk1TJyBocmVmPSdodHRwOi8vcHVybC5vcmcvZGMvdGVybXMvJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMudHlwZScgY29udGVudD0nVGV4dCcgc2NoZW1lPSdEQ1RFUk1TLkRDTUlUeXBlJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMuZm9ybWF0JyBjb250ZW50PSd0ZXh0L2h0bWwnIHNjaGVtZT0nRENURVJNUy5JTVQnIiAuICRjbG9zZV90YWc7CiAgJGh0bWwgLj0gICI8bWV0YSBuYW1lPSdEQy5yZWxhdGlvbicgY29udGVudD0naHR0cDovL2R1YmxpbmNvcmUub3JnLycgc2NoZW1lPSdEQ1RFUk1TLlVSSSciIC4gJGNsb3NlX3RhZzsKICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfcHVibGlzaGVyJywnJykgIT0gIiIpCgkkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLnB1Ymxpc2hlcicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIGVsc2UKCSRodG1sIC49ICI8bWV0YSBuYW1lPSdEQy5wdWJsaXNoZXInIGNvbnRlbnQ9JyIuY21zX3NpdGVwcmVmczo6Z2V0KCdzaXRlbmFtZScpLiInIiAuICRjbG9zZV90YWc7CiAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywnJykgIT0gIiIpCgkkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLmNvbnRyaWJ1dG9yJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywnJykuIiciIC4gJGNsb3NlX3RhZzsKCiAgaWYoJGZlbGFuZyA9IGNtc19zaXRlcHJlZnM6OmdldCgnZnJvbnRlbmRsYW5nJykpCiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLmxhbmd1YWdlJyBjb250ZW50PSciLiRmZWxhbmcuIicgc2NoZW1lPSdEQ1RFUk1TLlJGQzMwNjYnIC8+XG4iOwoKICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JywnJykgIT0gIiIpCiAgICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLnJpZ2h0cycgY29udGVudD0nIi4kc21hcnR5LT5mZXRjaCgnc3RyaW5nOicuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JykpLiInIiAuICRjbG9zZV90YWc7CgogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMudGl0bGUnIGNvbnRlbnQ9JyRtZXRhX3RpdGxlJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMuZGVzY3JpcHRpb24nIGNvbnRlbnQ9JyRkZXNjcmlwdGlvbiciIC4gJGNsb3NlX3RhZzsKICAkaHRtbCAuPSAgIjxtZXRhIG5hbWU9J0RDLmRhdGUnIGNvbnRlbnQ9JyRtb2RpZmllZF9kYXRlJyBzY2hlbWU9J0RDVEVSTVMuVzNDRFRGJyIgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgbmFtZT0nREMuaWRlbnRpZmllcicgY29udGVudD0nJHBhZ2VfdXJsJyBzY2hlbWU9J0RDVEVSTVMuVVJJJyIgLiAkY2xvc2VfdGFnOwp9CgovLyBPcGVuR3JhcGggTUVUQSB0YWdzCmlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLDApID09IDEpIHsKICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzp0aXRsZScgY29udGVudD0nJG9wZW5ncmFwaF90aXRsZScgLz5cbiI7CiAgaWYgKCRwYWdlX2luZm9bJ29ndHlwZSddID09ICIiKSB7CiAgICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzp0eXBlJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90eXBlJywnJykuIicgIiAuICRjbG9zZV90YWc7CiAgfWVsc2V7CiAgICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzp0eXBlJyBjb250ZW50PSciLiRwYWdlX2luZm9bJ29ndHlwZSddLiInIiAuICRjbG9zZV90YWc7CiAgfQogICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOnVybCcgY29udGVudD0nJHBhZ2VfdXJsJyIgLiAkY2xvc2VfdGFnOwoKICBpZigkY3VyY29udGVudCAhPSBOVUxMKSB7CiAgICAkaW1nID0gJGN1cmNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJ2ltYWdlJyk7OwogICAgaWYgKCgkaW1nICE9IC0xKSAmJiAoJGltZyAhPSAiIikpICB7CiAgICAgICRpbWFnZSA9ICRpbWc7CiAgICAgICAKICAgIH1lbHNlewogICAgICAkaW1hZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnLCcnKTsKICAgIH0KICB9CiAgJGh0bWwgLj0gICI8bWV0YSBwcm9wZXJ0eT0nb2c6aW1hZ2UnIGNvbnRlbnQ9JyIuJGNvbmZpZ1snaW1hZ2VfdXBsb2Fkc191cmwnXS5ESVJFQ1RPUllfU0VQQVJBVE9SLiRpbWFnZS4nIicgLiAkY2xvc2VfdGFnOwogICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOnNpdGVfbmFtZScgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfc2l0ZW5hbWUnLGNtc19zaXRlcHJlZnM6OmdldCgnc2l0ZW5hbWUnKSkuIiciIC4gJGNsb3NlX3RhZzsKICAkaHRtbCAuPSAgIjxtZXRhIHByb3BlcnR5PSdvZzpkZXNjcmlwdGlvbicgY29udGVudD0nJGRlc2NyaXB0aW9uJyAvPlxuIjsKICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJywnJykgIT0gIiIpIHsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J2ZiOmFwcF9pZCcgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH1lbHNlewogICAgJGh0bWwgLj0gICI8bWV0YSBwcm9wZXJ0eT0nZmI6YWRtaW5zJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKSAhPSAiIikgewogICAgJGh0bWwgLj0gICI8bWV0YSBwcm9wZXJ0eT0nb2c6bG9jYWxpdHknIGNvbnRlbnQ9JyIuJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfcmVnaW9uJywnJykgIT0gIiIpIHsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOnJlZ2lvbicgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KICBpZiAoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykgIT0gIiIpICYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnLCcnKSAhPSAiIikpIHsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOmxhdGl0dWRlJyBjb250ZW50PSciLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJykuIiciIC4gJGNsb3NlX3RhZzsKICAgICRodG1sIC49ICAiPG1ldGEgcHJvcGVydHk9J29nOmxvbmdpdHVkZScgY29udGVudD0nIi4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb25naXR1ZGUnLCcnKS4iJyIgLiAkY2xvc2VfdGFnOwogIH0KfQokc21hcnR5LT5kaXNwbGF5KCdzdHJpbmc6Jy4kaHRtbCk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEFjdGlvbjogZGVmYXVsdGFkbWluCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkKewogIHJldHVybiAkdGhpcy0+RGlzcGxheUVycm9yUGFnZSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwkdGhpcy0+TGFuZygnYWNjZXNzZGVuaWVkJykpOwp9CgokZGIgPSBjbXNtcygpLT5HZXREYigpOwokY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiRhZG1pbl9kaXIgPSAkY29uZmlnWydhZG1pbl9kaXInXTsKJGRlZmF1bHRhZG1pbnRoZW1lID0gQ21zQWRtaW5UaGVtZUJhc2U6OkdldERlZmF1bHRUaGVtZSgpOwokdXNlcmFkbWludGhlbWUgPSBjbXNfdXNlcnByZWZzOjpnZXQoJ2FkbWludGhlbWUnKTsKJHRoZW1lTmFtZSA9IGVtcHR5KCR1c2VyYWRtaW50aGVtZSkgPyAgJGRlZmF1bHRhZG1pbnRoZW1lICA6ICR1c2VyYWRtaW50aGVtZTsKJHJvb3RfdXJsID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJGNvbmZpZ1sncm9vdF91cmwnXSA6ICRjb25maWdbJ3NzbF91cmwnXTsKJGNvbnRlbnRfaWQgPSBpc3NldCgkX0dFVFsnY29udGVudF9pZCddKSA/ICRfR0VUWydjb250ZW50X2lkJ10gOiAnJzsKJHRhYiA9IGlzc2V0KCRfR0VUWyd0YWInXSkgPyAkX0dFVFsndGFiJ10gOiAnJzsKJGogPSAwOwoKJG1lc3NhZ2UgPSAnJzsKCi8vIERvIHRoZSBhY3Rpb24KLy8gVXBkYXRlIHRoZSBpbmRleGFibGUgZGIgZmllbGQKLy8gRG8gdGhlIGFjdGlvbgppZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAndG9nZ2xlX2luZGV4JykgewogICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfc2VvdG9vbHMyIFdIRVJFIGNvbnRlbnRfaWQgPSAnLiRfR0VUWydjb250ZW50X2lkJ107CiAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAkaW5mbyA9ICRyZXN1bHQtPmZldGNoUm93KCk7CiAgaWYgKCRpbmZvWydpbmRleGFibGUnXSA9PSAiMSIpIHsKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgU0VUIGluZGV4YWJsZSA9IDAgV0hFUkUgY29udGVudF9pZCA9ICcuJF9HRVRbJ2NvbnRlbnRfaWQnXTsKICB9ZWxzZXsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgY29udGVudF9pZCA9ICcuJF9HRVRbJ2NvbnRlbnRfaWQnXS4nLCBpbmRleGFibGUgPSAwIE9OIERVUExJQ0FURSBLRVkgVVBEQVRFIGluZGV4YWJsZSA9IDEnOwogIH0KICAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCgogIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3JvYm90cycsMSkgPT0gMSkgewogICAgJHRoaXMtPmNyZWF0ZVJvYm90c1RYVCgpOwogIH0KICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKSA9PSAxKSB7CiAgICAkdGhpcy0+Y3JlYXRlU2l0ZW1hcCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJywxKSA9PSAxKTsKICB9CiAgJF9HRVRbJ3RhYiddID0gJ3BhZ2VkZXNjcmlwdGlvbnMnOwp9CgovLyBVcGRhdGUgdGhlIGZvbGxvdyBkYiBmaWVsZAppZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAndG9nZ2xlX2ZvbGxvdycpIHsKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBjb250ZW50X2lkID0gJy4kY29udGVudF9pZDsKICAkcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICRpbmZvID0gJHJlc3VsdC0+ZmV0Y2hSb3coKTsKICBpZiAoJGluZm9bJ2ZvbGxvdyddID09ICIxIikgewogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgZm9sbG93ID0gMCBXSEVSRSBjb250ZW50X2lkID0gJy4kY29udGVudF9pZDsKICB9ZWxzZXsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgY29udGVudF9pZCA9ICcuJGNvbnRlbnRfaWQuJywgZm9sbG93ID0gMCBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBmb2xsb3cgPSAxJzsKICB9CiAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7Cgp9CiAgaWYgKGlzc2V0KCRfR0VUWyd3aGF0J10pICYmICRfR0VUWyd3aGF0J10gPT0gJ3NldF9wcmlvcml0eScpIHsKICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgY29udGVudF9pZCA9ICcuJGNvbnRlbnRfaWQuJywgcHJpb3JpdHkgPSAnLiRfR0VUWydwcmlvcml0eSddLicgT04gRFVQTElDQVRFIEtFWSBVUERBVEUgcHJpb3JpdHkgPSAnLiRfR0VUWydwcmlvcml0eSddOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAkdGFiID0gJ3BhZ2VkZXNjcmlwdGlvbnMnOwogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsMSkgPT0gMSkgewogICAgICAkdGhpcy0+Y3JlYXRlU2l0ZW1hcCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJywxKSA9PSAxKTsKICAgIH0KICB9CgogIGlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICdyZXNldF9wcmlvcml0eScpIHsKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgU0VUIHByaW9yaXR5ID0gTlVMTCBXSEVSRSBjb250ZW50X2lkID0gJy4kY29udGVudF9pZDsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgJHRhYiA9ICdwYWdlZGVzY3JpcHRpb25zJzsKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnLDEpID09IDEpIHsKICAgICAgJHRoaXMtPmNyZWF0ZVNpdGVtYXAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3B1c2hfc2l0ZW1hcCcsMSkgPT0gMSk7CiAgICB9CiAgfQoKICBpZiAoaXNzZXQoJF9HRVRbJ3doYXQnXSkgJiYgJF9HRVRbJ3doYXQnXSA9PSAncmVzZXRfb2d0eXBlJykgewogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgb2d0eXBlID0gTlVMTCBXSEVSRSBjb250ZW50X2lkID0gJy4kY29udGVudF9pZDsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgJHRhYiA9ICdwYWdlZGVzY3JpcHRpb25zJzsKICB9CgogIGlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICdyZXNldF9rZXl3b3JkcycpIHsKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgU0VUIGtleXdvcmRzID0gTlVMTCBXSEVSRSBjb250ZW50X2lkID0gJy4kY29udGVudF9pZDsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgJHRhYiA9ICdwYWdlZGVzY3JpcHRpb25zJzsKICB9CgogIGlmIChpc3NldCgkX0dFVFsnd2hhdCddKSAmJiAkX0dFVFsnd2hhdCddID09ICdlZGl0X29ndHlwZScpIHsKICAgIGVjaG8gJHRoaXMtPlJlZGlyZWN0KG51bGwsICdlZGl0X29ndHlwZScsICR0aGlzLT5yZXR1cm5pZCwgQXJyYXkoJ2NvbnRlbnRfaWQnPT4kY29udGVudF9pZCkpOwogIH0KCiAgaWYgKGlzc2V0KCRfR0VUWyd3aGF0J10pICYmICRfR0VUWyd3aGF0J10gPT0gJ2VkaXRfa2V5d29yZHMnKSB7CiAgICBlY2hvICR0aGlzLT5SZWRpcmVjdChudWxsLCAnZWRpdF9rZXl3b3JkcycsICR0aGlzLT5yZXR1cm5pZCwgQXJyYXkoJ2NvbnRlbnRfaWQnPT4kY29udGVudF9pZCkpOwogIH0KCi8qIFN0YXJ0IHRoZSBBZG1pbiBvdXRwdXQgKi8KCiAgZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdzZW9hbGVydHMnLCR0aGlzLT5MYW5nKCd0aXRsZV9zZW9hbGVydHMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwYWdlZGVzY3JpcHRpb25zJywkdGhpcy0+TGFuZygndGl0bGVfcGFnZWRlc2NyaXB0aW9ucycpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ21ldGFzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RpdGxlX21ldGFzZXR0aW5ncycpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NpdGVtYXBzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RpdGxlX3NpdGVtYXBzZXR0aW5ncycpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2tleXdvcmRzZXR0aW5ncycsJHRoaXMtPkxhbmcoJ3RpdGxlX2tleXdvcmRzZXR0aW5ncycpKTsKICBlY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CiAgCiAgZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgogIGlmIChpc3NldCgkX0dFVFsnbWVzc2FnZSddKSkgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkdGhpcy0+c2hvd01lc3NhZ2UoJHRoaXMtPmxhbmcoJF9HRVRbJ21lc3NhZ2UnXSkpKTsKICB9IGVsc2UgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywnJyk7CiAgfQoKICAvKiBTRU8gQWxlcnRzIFRhYiAqLwogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3Nlb2FsZXJ0cycpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2FsZXJ0c190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCgogIC8qIFBhZ2Ugc2V0dGluZ3MgVGFiICovCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYigncGFnZWRlc2NyaXB0aW9ucycpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3BhZ2VzZXR0aW5nc190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCgogIC8qIFNFTyBTZXR0aW5ncyBUYWIgKi8KICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdtZXRhc2V0dGluZ3MnKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9zZW9zZXR0aW5nc190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgLyogU0lURU1BUCBTZXR0aW5ncyAqLwogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NpdGVtYXBzZXR0aW5ncycpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3NpdGVtYXBzZXR0aW5nc190YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCgogIC8qIEtFWVdPUkQgU2V0dGluZ3MgKi8KICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdrZXl3b3Jkc2V0dGluZ3MnKTsKICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9rZXl3b3Jkc2V0dGluZ3NfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOwoKJGpxID0gJyc7CiRqcSAuPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLyogPCFbQ0RBVEFbICovCihmdW5jdGlvbiAoJCkgewokLmZuLmhhc0IgPSBmdW5jdGlvbigpIHsKCQl2YXIgaGFzQiA9ICQodGhpcykucGFyZW50KCkuZmluZCgiYiIpLmZpbmQoIi5wcmlvcml0eTpmaXJzdCIpLnNpemUoKTsJCQoJCXJldHVybiBoYXNCOwoJfQoJCgkkLmZuLmF1dG9kZXB0aCA9IGZ1bmN0aW9uKCkgewoJCSQodGhpcykucGFyZW50c1VudGlsKCJ0Ym9keSIpLnBhcmVudCgpLmZpbmQoInRyIikubmV4dCgpLmZpcnN0KCkuYWRkQ2xhc3MoImgiKTsKCQl2YXIgcGcgPSAkKHRoaXMpLnBhcmVudHNVbnRpbCgidHIiKS5wYXJlbnQoKS5maW5kKCJ0ZC5wZzpmaXJzdCIpLmh0bWwoKTsKCQl2YXIgYSA9IEFycmF5Lm1hcChwZywgZnVuY3Rpb24oeCkgeyByZXR1cm4gU3RyaW5nLmNoYXJDb2RlQXQoeCkgfSk7CgkJdmFyIGRlcHRoID0gJC5ncmVwKCBhLCBmdW5jdGlvbihuLGkpeyByZXR1cm4gbiA9PSAxODc7fSk7CgkJCgkJc3dpdGNoKGRlcHRoLmxlbmd0aCkgewoJCQljYXNlIDA6CQkJCQoJCQkgIHZhciBhdXRvZGVwdGggPSAoJCh0aGlzKS5wYXJlbnRzVW50aWwoInRyIikucGFyZW50KCkuaGFzQ2xhc3MoImgiKSkgPyAxMDAgOiA4MDsKCQkJICBicmVhazsKCQkJY2FzZSAxOgoJCQkgIHZhciBhdXRvZGVwdGggPSA0MDsKCQkJICBicmVhazsKCQkJZGVmYXVsdDoKCQkJICB2YXIgYXV0b2RlcHRoID0gMjA7CgkJfQoJCXJldHVybiBhdXRvZGVwdGg7Cgl9Cn0pKGpRdWVyeSk7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewoJdmFyIHNwaW5uZXIgPSAiPGltZyBzcmM9XCInLiRyb290X3VybC4nL21vZHVsZXMvU0VPVG9vbHMyL2ltZy9hamF4LWxvYWRlci5naWZcIiBhbHQ9XCJBamF4IGxvYWRpbmcuLi5cIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBjbGFzcz1cInNwaW5uZXJcIiAvPiI7CgkKCSQoIi5zZW8yYWpheCBhIikuY2xpY2soZnVuY3Rpb24oZSl7CgkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCXZhciBpbWcgPSAkKHRoaXMpLmZpbmQoImltZyIpOwoJCXZhciBpbWdzcmMgPSBpbWcuYXR0cigic3JjIik7CgkJdmFyIGltZ3NyYyA9IChpbWdzcmMuaW5kZXhPZigidHJ1ZSIpICE9PSAtMSkgPyBpbWdzcmMucmVwbGFjZSgidHJ1ZSIsImZhbHNlIikgOiBpbWdzcmMucmVwbGFjZSgiZmFsc2UiLCJ0cnVlIik7CgkJJChpbWcpLmF0dHIoInNyYyIsaW1nc3JjKTsJCQoJCXZhciB4ID0gJCh0aGlzKS5hdHRyKCJocmVmIik7CgkJJCh0aGlzKS5hcHBlbmQoc3Bpbm5lcik7CgkJJC5nZXQoeCwgZnVuY3Rpb24oZGF0YSl7CgkJCSQoIi5zcGlubmVyOmZpcnN0IikucmVtb3ZlKCk7CgkJfSk7Cgl9KTsKCSQoIi51cGRvd24iKS5jbGljayhmdW5jdGlvbihlKXsKCQllLnByZXZlbnREZWZhdWx0KCk7CgkJJCh0aGlzKS5hcHBlbmQoc3Bpbm5lcik7CgkJdmFyIGF1dG9kZXB0aCA9ICQodGhpcykuYXV0b2RlcHRoKCk7CgkJdmFyIHByaW9yaXR5ICA9ICgkKHRoaXMpLmhhc0IoKSA+IDApID8gJCh0aGlzKS5wYXJlbnQoKS5maW5kKCJiIikuZmluZCgiLnByaW9yaXR5OmZpcnN0IikgOiAkKHRoaXMpLnBhcmVudCgpLmZpbmQoIi5wcmlvcml0eTpmaXJzdCIpOwoJCXZhciBtc2dTcGFuICAgPSAkKHRoaXMpLnBhcmVudCgpLmZpbmQoIi5wbXNnOmZpcnN0Iik7CgkJdmFyIGlkICAgICAgICA9ICQodGhpcykucGFyZW50c1VudGlsKCJ0ciIpLnBhcmVudCgpLmZpbmQoInRkIikuZmlyc3QoKS50ZXh0KCk7CgkJCgkJdmFyIGFtdCA9ICgkKHRoaXMpLmhhc0NsYXNzKCJ1cCIpKSA/IDEwIDogLTEwOwoJCXZhciBuZXd2YWwgPSBOdW1iZXIocHJpb3JpdHkudGV4dCgpKSthbXQ7CgkJaWYgKG5ld3ZhbCAhPSBhdXRvZGVwdGgpIHsKCQkJdmFyIHBtc2cgPSAiPGIgY2xhc3M9XCJyZXNldDEwMFwiPiI7CgkJCXBtc2cJKz0gIjxzcGFuIGNsYXNzPVwicHJpb3JpdHlcIj4iOwoJCQlwbXNnCSs9IG5ld3ZhbDsKCQkJcG1zZwkrPSAiPC9zcGFuPiUiOwoJCQlwbXNnCSs9ICI8YSBocmVmPVwiJy4kcm9vdF91cmwuJy9hZG1pbi9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9U0VPVG9vbHMyLCxkZWZhdWx0YWRtaW4sMCZhbXA7Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfR0VUW0NNU19TRUNVUkVfUEFSQU1fTkFNRV0uJyZhbXA7d2hhdD1yZXNldF9wcmlvcml0eSZhbXA7Y29udGVudF9pZD0iOwoJCQlwbXNnCSs9IGlkOwoJCQlwbXNnCSs9ICJcIiBjbGFzcz1cImFkbWluLXRvb2x0aXBcIj4iOwoJCQlwbXNnCSs9ICI8aW1nIGFsaWduPVwiYWJzbWlkZGxlXCIgc3JjPVwiJy4kcm9vdF91cmwuJy9tb2R1bGVzL1NFT1Rvb2xzMi9pbWcvcmVzZXQucG5nXCIgLz4iOwoJCQlwbXNnCSs9ICI8c3Bhbj4iOwoJCQlwbXNnCSs9ICInLiR0aGlzLT5MYW5nKCdyZXNldF90b19kZWZhdWx0JykgLiciOwoJCQlwbXNnCSs9ICI8L3NwYW4+IjsKCQkJcG1zZwkrPSAiPC9hPjwvYj4iOwkJCQkJCQkJCQkKCQl9IGVsc2UgewoJCQl2YXIgcG1zZyA9ICIoYXV0bykgPHNwYW4gY2xhc3M9XCJwcmlvcml0eVwiPiIgKyAkKHRoaXMpLmF1dG9kZXB0aCgpICsgIjwvc3Bhbj4lICI7CQkJCQkKCQl9CgkJCgkJdmFyIHggPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsKCQkkLmdldCh4LCBmdW5jdGlvbihkYXRhKXsKCQkJJChwcmlvcml0eSkudGV4dChuZXd2YWwpOwoJCQkJJChtc2dTcGFuKS5hZGRDbGFzcygicG1zZyIpLmh0bWwocG1zZyk7Ci8vCQkJCSQobXNnU3BhbikuaHRtbChwbXNnKTsKCQkJJCgiLnNwaW5uZXI6Zmlyc3QiKS5yZW1vdmUoKTsKCQl9KTsKCX0pOwoJCgkKCSQoInNwYW4ucG1zZyBhIikuY2xpY2soZnVuY3Rpb24oZSl7CgkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCSQodGhpcykuYXBwZW5kKHNwaW5uZXIpOwoJCXZhciB0ZCA9ICQodGhpcykucGFyZW50c1VudGlsKCJ0ZCIpLnBhcmVudCgpOwoJCXZhciBtc2dTcGFuID0gJCh0ZCkuZmluZCgic3Bhbi5wbXNnIik7CgkKCQkKCQl2YXIgcG1zZyA9ICIoYXV0bykgPHNwYW4gY2xhc3M9XCJwcmlvcml0eVwiPiIgKyAkKHRoaXMpLmF1dG9kZXB0aCgpICsgIjwvc3Bhbj4lICI7CQkKCQl2YXIgeCA9ICQodGhpcykuYXR0cigiaHJlZiIpOwoJCSQuZ2V0KHgsIGZ1bmN0aW9uKGRhdGEpewkJCQoJCQkkKHRkKS5maW5kKCIuc3Bpbm5lciIpLnJlbW92ZSgpOwoJCQkkKG1zZ1NwYW4pLmh0bWwocG1zZyk7CQoKCQl9KTsKCQkKCX0pOwp9KTsKLyogXV0+ICovCjwvc2NyaXB0Pic7CmVjaG8gJGpxOwogID8+]]></data>
	</file>
	<file>
	  <filename>/action.edit_keywords.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEFjdGlvbjogZWRpdF9rZXl3b3JkcwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKaWYgKCFpc3NldCgkX1JFUVVFU1RbJ2NvbnRlbnRfaWQnXSkpCiAgcmV0dXJuOwoKJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwokY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiRjb250X2lkID0gJF9SRVFVRVNUWydjb250ZW50X2lkJ10gOwokY29udGVudF9vYmogPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoJGNvbnRfaWQpOwoKaWYgKGlzc2V0KCRfUE9TVFsnc2V0X2tleXdvcmRzJ10pKSB7CgkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9zZW90b29sczIgU0VUIGNvbnRlbnRfaWQgPSA/LCBrZXl3b3JkcyA9ID8sIGluZGV4YWJsZSA9IDEgT04gRFVQTElDQVRFIEtFWSBVUERBVEUga2V5d29yZHMgPSA/IjsKCWlmICghJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNvbnRfaWQsICRfUE9TVFsna2V5d29yZHMnXSwkX1BPU1RbJ2tleXdvcmRzJ10pKSl7CgkgIGVjaG8gJGRiLT5zcWw7CgkgIGRpZTsKCX0KCSR0aGlzLT5yZWRpcmVjdChudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgQXJyYXkoJ3RhYic9PidwYWdlZGVzY3JpcHRpb25zJykpOwp9CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBjb250ZW50X2lkID0gPyc7CmlmICghJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNvbnRfaWQpKSkgewogIGVjaG8gJ3RoaXMgaXMgdGhlIGZhaWw8YnIgLz4nOwogIGVjaG8gJGRiLT5zcWw7CiAgZGllOwp9CgokaW5mbyA9ICRyZXN1bHQtPmZldGNoUm93KCk7CgppZiAoIWlzc2V0KCRpbmZvWydrZXl3b3JkcyddKSB8fCAkaW5mb1sna2V5d29yZHMnXSA9PSAnJykgewoJJGluZm9bJ2tleXdvcmRzJ10gPSBzdHJ0b2xvd2VyKGltcGxvZGUoJyAnLGFycmF5X2ZsaXAoJHRoaXMtPmdldEtleXdvcmRTdWdnZXN0aW9ucygkY29udF9pZCkpKSk7Cn0KCgokb3V0cHV0ICA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQobnVsbCwgJ2VkaXRfa2V5d29yZHMnKTsKJG91dHB1dCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4obnVsbCwgJ2NvbnRlbnRfaWQnLCAkY29udF9pZCk7CiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+TGFuZygnZW50ZXJfbmV3X2tleXdvcmRzJykuJzo8L3A+JzsKCiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCBudWxsLCAkaW5mb1sna2V5d29yZHMnXSwgJ2tleXdvcmRzJykuJyAnLiR0aGlzLT5MYW5nKCdoZWxwX25ld19rZXl3b3JkcycpLic8L3A+JzsKCiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPic7CiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KG51bGwsICdzZXRfa2V5d29yZHMnLCR0aGlzLT5sYW5nKCdzYXZlJykpLic8L3A+JzsKCiRvdXRwdXQgLj0gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCiRvdXRwdXQgLj0gJzxiciAvPjxiciAvPic7CgovLyBHZXQgdGhlIG1haW4gY29udGVudCBibG9jawokY29udGVudF9lbiA9ICRjb250ZW50X29iai0+R2V0UHJvcGVydHlWYWx1ZSgnY29udGVudF9lbicpOwoKaWYgKGlzc2V0KCRjb250ZW50X2VuKSkgewogICRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+TGFuZygncGFnZV9uYW1lJykuJzo8L3A+JzsKICAKICAkb3V0cHV0IC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiRyb3dbJ25hbWUnXS4nPC9wPic7CiAgJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5MYW5nKCdhZG1pbl92aWV3JykuJzo8L3A+JzsKICAkb3V0cHV0IC49ICc8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPicuc2VvMl91dGlsczo6Y29tcGlsZV91ZHRzKCRjb250ZW50X2VuLCR0aGlzKS4nPC9kaXY+JzsKICAgIAogIC8vIEdldCB0aGUgbWV0YSBkZXNjcmlwdGlvbgogICRtZXRhZGVzY3JpcHRpb24gPSAkY29udGVudF9vYmotPkdldFByb3BlcnR5VmFsdWUoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJykpOwogIAogICAgICAkb3V0cHV0IC49ICc8YnIgLz48YnIgLz48cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPkxhbmcoJ21ldGFkZXNjcmlwdGlvbl9jb250ZW50JykuJzo8L3A+JzsKICAKICBpZiAoIWVtcHR5KCRtZXRhZGVzY3JpcHRpb24pKSB7CiAgICAgICRvdXRwdXQgLj0gJzxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+Jy5zZW8yX3V0aWxzOjpjb21waWxlX3VkdHMoJG1ldGFkZXNjcmlwdGlvbiwkdGhpcykuJzwvZGl2Pic7CiAgICAKICB9IGVsc2UgewogICAgJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+TGFuZygnbm9fbWV0YWRlc2NyaXB0aW9uJykuJzo8L3A+JzsKICB9CiAgCn0KJG91dHB1dCAuPSAnPGJyIC8+PGJyIC8+PHA+PGEgaHJlZj0iZWRpdGNvbnRlbnQucGhwPycuQ01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX0dFVFtDTVNfU0VDVVJFX1BBUkFNX05BTUVdLicmY29udGVudF9pZD0nLiRjb250X2lkLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZScpLic8L2E+ICc7CiRvdXRwdXQgLj0gJzxhIGhyZWY9IicuJGNvbnRlbnRfb2JqLT5HZXRVUkwoKS4nIiB0YXJnZXQ9Il9ibGFuayI+Jy4kdGhpcy0+TGFuZygndmlld19wYWdlJykuJzwvYT48L3A+JzsKCmVjaG8gJG91dHB1dDsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.edit_ogtype.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBTRU9Ub29sczIgLSBUdXJiby1jaGFyZ2UgeW91ciBvbi1wYWdlIFNFTwojIFZlcnNpb246IDEuMSwgQ2xpcCBNYWdpYyA8YWRtaW5AY2xpcG1hZ2ljLmNvbS5hdT4KIyBBY3Rpb246IGVkaXRfb2d0eXBlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSBjbXNtcygpLT5HZXREYigpOwoKaWYgKGlzc2V0KCRfUE9TVFsnc2V0X29ndHlwZSddKSkgewoJaWYgKCRfUE9TVFsnb2dfdHlwZSddICE9ICIiKSB7CgkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMyIFNFVCBjb250ZW50X2lkID0gIi4kX1BPU1RbJ2NvbnRlbnRfaWQnXS4iLCBvZ3R5cGUgPSAnIi4kX1BPU1RbJ29nX3R5cGUnXS4iJywgaW5kZXhhYmxlID0gMSBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBvZ3R5cGUgPSAnIi4kX1BPU1RbJ29nX3R5cGUnXS4iJyI7Cgl9ZWxzZXsKCQkkcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMyIFNFVCBvZ3R5cGUgPSBOVUxMIFdIRVJFIGNvbnRlbnRfaWQgPSAiLiRfUE9TVFsnY29udGVudF9pZCddOwoJfQoJCgllY2hvICRxdWVyeTsKCQoJJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkkdGhpcy0+UmVkaXJlY3QobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsIEFycmF5KCd0YWInPT4ncGFnZWRlc2NyaXB0aW9ucycpKTsKfQoKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgV0hFUkUgY29udGVudF9pZCA9ICcuJF9HRVRbJ2NvbnRlbnRfaWQnXTsKJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwokaW5mbyA9ICRyZXN1bHQtPmZldGNoUm93KCk7Cgokb3V0cHV0ICA9ICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQobnVsbCwgJ2VkaXRfb2d0eXBlJyk7CiRvdXRwdXQgLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKG51bGwsICdjb250ZW50X2lkJywgJF9HRVRbJ2NvbnRlbnRfaWQnXSk7CiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+TGFuZygnZW50ZXJfbmV3X29ndHlwZScpLic6PC9wPic7CiRvdXRwdXQgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnb2dfdHlwZScsICRpbmZvWydvZ3R5cGUnXSwgMzAsIDMwKS4nICcuJHRoaXMtPkxhbmcoJ2hlbHBfbmV3X29ndHlwZScpLic8L3A+JzsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGJyIC8+Jy4kdGhpcy0+TGFuZygnaGVscF9vcGVuZ3JhcGgnKS4nPGJyIC8+PGJyIC8+JzsKJG91dHB1dCAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQobnVsbCwgJ3NldF9vZ3R5cGUnLCR0aGlzLT5MYW5nKCdzYXZlJykpLic8L3A+JzsKCiRvdXRwdXQgLj0gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCmVjaG8gJG91dHB1dDsKCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/delete.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyogPCFbQ0RBVEFbICovCihmdW5jdGlvbiAoJCkgewokLmZuLmhhc0IgPSBmdW5jdGlvbigpIHsKCQl2YXIgaGFzQiA9ICQodGhpcykucGFyZW50KCkuZmluZCgiYiIpLmZpbmQoIi5wcmlvcml0eTpmaXJzdCIpLnNpemUoKTsJCQoJCXJldHVybiBoYXNCOwoJfQoJCgkkLmZuLmF1dG9kZXB0aCA9IGZ1bmN0aW9uKCkgewoJCSQodGhpcykucGFyZW50c1VudGlsKCJ0Ym9keSIpLnBhcmVudCgpLmZpbmQoInRyIikubmV4dCgpLmZpcnN0KCkuYWRkQ2xhc3MoImgiKTsKCQl2YXIgcGcgPSAkKHRoaXMpLnBhcmVudHNVbnRpbCgidHIiKS5wYXJlbnQoKS5maW5kKCJ0ZC5wZzpmaXJzdCIpLmh0bWwoKTsKCQl2YXIgYSA9IEFycmF5Lm1hcChwZywgZnVuY3Rpb24oeCkgeyByZXR1cm4gU3RyaW5nLmNoYXJDb2RlQXQoeCkgfSk7CgkJdmFyIGRlcHRoID0gJC5ncmVwKCBhLCBmdW5jdGlvbihuLGkpeyByZXR1cm4gbiA9PSAxODc7fSk7CgkJCgkJc3dpdGNoKGRlcHRoLmxlbmd0aCkgewoJCQljYXNlIDA6CQkJCQoJCQkgIHZhciBhdXRvZGVwdGggPSAoJCh0aGlzKS5wYXJlbnRzVW50aWwoInRyIikucGFyZW50KCkuaGFzQ2xhc3MoImgiKSkgPyAxMDAgOiA4MDsKCQkJICBicmVhazsKCQkJY2FzZSAxOgoJCQkgIHZhciBhdXRvZGVwdGggPSA0MDsKCQkJICBicmVhazsKCQkJZGVmYXVsdDoKCQkJICB2YXIgYXV0b2RlcHRoID0gMjA7CgkJfQoJCXJldHVybiBhdXRvZGVwdGg7Cgl9Cn0pKGpRdWVyeSk7CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewoJdmFyIHNwaW5uZXIgPSAiPGltZyBzcmM9XCInLiRyb290X3VybC4nL21vZHVsZXMvU0VPVG9vbHMyL2ltZy9hamF4LWxvYWRlci5naWZcIiBhbHQ9XCJBamF4IGxvYWRpbmcuLi5cIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBjbGFzcz1cInNwaW5uZXJcIiAvPiI7CgkKCSQoIi5zZW8yYWpheCBhIikuY2xpY2soZnVuY3Rpb24oZSl7CgkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCXZhciBpbWcgPSAkKHRoaXMpLmZpbmQoImltZyIpOwoJCXZhciBpbWdzcmMgPSBpbWcuYXR0cigic3JjIik7CgkJdmFyIGltZ3NyYyA9IChpbWdzcmMuaW5kZXhPZigidHJ1ZSIpICE9PSAtMSkgPyBpbWdzcmMucmVwbGFjZSgidHJ1ZSIsImZhbHNlIikgOiBpbWdzcmMucmVwbGFjZSgiZmFsc2UiLCJ0cnVlIik7CgkJJChpbWcpLmF0dHIoInNyYyIsaW1nc3JjKTsJCQoJCXZhciB4ID0gJCh0aGlzKS5hdHRyKCJocmVmIik7CgkJJCh0aGlzKS5hcHBlbmQoc3Bpbm5lcik7CgkJJC5nZXQoeCwgZnVuY3Rpb24oZGF0YSl7CgkJCSQoIi5zcGlubmVyOmZpcnN0IikuZGV0YWNoKCk7CgkJfSk7Cgl9KTsKCSQoIi51cGRvd24iKS5jbGljayhmdW5jdGlvbihlKXsKCQllLnByZXZlbnREZWZhdWx0KCk7CgkJJCh0aGlzKS5hcHBlbmQoc3Bpbm5lcik7CgkJdmFyIHByaW9yaXR5ID0gKCQodGhpcykuaGFzQigpID4gMCkgPyAkKHRoaXMpLnBhcmVudCgpLmZpbmQoImIiKS5maW5kKCIucHJpb3JpdHk6Zmlyc3QiKSA6ICQodGhpcykucGFyZW50KCkuZmluZCgiLnByaW9yaXR5OmZpcnN0Iik7CQkKCQl2YXIgYW10ID0gKCQodGhpcykuaGFzQ2xhc3MoInVwIikpID8gMTAgOiAtMTA7CgkJdmFyIG5ld3ZhbCA9IE51bWJlcihwcmlvcml0eS50ZXh0KCkpK2FtdDsKCQl2YXIgeCA9ICQodGhpcykuYXR0cigiaHJlZiIpOwoJCSQuZ2V0KHgsIGZ1bmN0aW9uKGRhdGEpewoJCQkkKHByaW9yaXR5KS50ZXh0KG5ld3ZhbCk7CgkJCSQoIi5zcGlubmVyOmZpcnN0IikuZGV0YWNoKCk7CgkJfSk7Cgl9KTsKCQoJCgkkKCIucmVzZXQxMDAgYSIpLmNsaWNrKGZ1bmN0aW9uKGUpewoJCWUucHJldmVudERlZmF1bHQoKTsKCQl2YXIgdGQgPSAkKHRoaXMpLnBhcmVudHNVbnRpbCgidGQiKS5wYXJlbnQoKTsKCQkkKHRkKS5hcHBlbmQoc3Bpbm5lcik7CgkJdmFyIGIgPSAkKHRoaXMpLnBhcmVudCgpOwoJCQoJCXZhciBkZWZhdWx0UHJpb3JpdHkgPSAiKGF1dG8pIDxzcGFuIGNsYXNzPVwicHJpb3JpdHlcIj4iICsgJCh0aGlzKS5hdXRvZGVwdGgoKSArICI8L3NwYW4+JSAiOwkJCgkJdmFyIHggPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsKCQkkLmdldCh4LCBmdW5jdGlvbihkYXRhKXsJCQoJCQkkKHRkKS5hcHBlbmQoZGVmYXVsdFByaW9yaXR5KTsJCgkJCSQoYikucmVtb3ZlKCk7CgkJCSQoIi5zcGlubmVyOmZpcnN0IikuZGV0YWNoKCk7CgkJfSk7CgkJCgl9KTsKfSk7Ci8qIF1dPiAqLwo=]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentDeletePost.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEV2ZW50OiBDb250ZW50RGVsZXRlUG9zdAojIEZ1bmN0aW9uOiBDb2RlIHRvIHB1c2ggc2l0ZW1hcCB0byBHb29nbGUgV2VibWFzdGVycyBpZiByZXF1aXJlZAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJykgPT0gMSkgewogICAgICAkdGhpcy0+Y3JlYXRlU2l0ZW1hcCgkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJykgPT0gMSk7CiAgICB9Cg==]]></data>
	</file>
	<file>
	  <filename>/event.Core.ContentEditPost.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEV2ZW50OiBDb3JlQ29udGVudEVkaXRQb3N0CiMgRnVuY3Rpb246IENvZGUgdG8gcHVzaCBzaXRlbWFwIHRvIEdvb2dsZSBXZWJtYXN0ZXJzIGlmIHJlcXVpcmVkCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcpID09IDEpIHsKICAgICAgJHRoaXMtPmNyZWF0ZVNpdGVtYXAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3B1c2hfc2l0ZW1hcCcpID09IDEpOwogICAgfQo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_alerts_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogQWxlcnRzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJGFsZXJ0cyAgPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnYWxlcnRzX3VyZ2VudCcsICR0aGlzLT5MYW5nKCd0aXRsZV9hbGVydHNfdXJnZW50JykpOwoKICAkdXJnZW50X2FsZXJ0cyA9ICR0aGlzLT5nZXRVcmdlbnRBbGVydHMoKTsKCiAgaWYgKGNvdW50KCR1cmdlbnRfYWxlcnRzKSA9PSAwKSB7CiAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS90cnVlLmdpZiIgYWxpZ249ImFic21pZGRsZSIgLz4gJy4kdGhpcy0+bGFuZygnbm90aGluZ190b19iZV9maXhlZCcpLic8YnIgLz48YnIgLz4nOwogIH1lbHNlewogICAgJGdyb3VwcyA9IEFycmF5KCk7CiAgICBmb3JlYWNoICgkdXJnZW50X2FsZXJ0cyBhcyAkYWxlcnQpIHsKICAgICAgJGdyb3Vwc1skYWxlcnRbJ2dyb3VwJ11dW10gPSAkYWxlcnQ7CiAgICB9CiAgICBmb3JlYWNoKCRncm91cHMgYXMgJGdyb3VwID0+ICRnYWxlcnRzKSB7CiAgICAgICRjb3VudCA9IGNvdW50KCRnYWxlcnRzKTsKICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA+IDIwKSB7CiAgICAgICAgJHBhcnRzID0gYXJyYXlfY2h1bmsoJGdhbGVydHMsIDIwKTsKICAgICAgICAkZ2FsZXJ0cyA9ICRwYXJ0c1swXTsKICAgICAgICAkY291bnQgPSAiPiAyMCI7CiAgICAgIH0KICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA9PSAxKSB7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9Ob3RpZmljYXRpb25zLzEuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRnYWxlcnRzWzBdWydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkZ2FsZXJ0c1swXVsnbGlua3MnXSkuJ108YnIgLz48YnIgLz4nOwogICAgICB9ZWxzZXsKICAgICAgICAkZ3JvdXBfdGl0bGUgPSAkdGhpcy0+bGFuZygnZ3JvdXB0aXRsZV8nLiRncm91cCwgQXJyYXkoJGNvdW50KSk7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzEuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRncm91cF90aXRsZS4nPC9iPiBbPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKG51bGwpIiBvbkNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ3VyZ2VudF9ncm91cF8nLiRncm91cC4nXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCciPicuJHRoaXMtPmxhbmcoJ3ZpZXdfYWxsJykuJzwvYT5dPGJyIC8+PGJyIC8+JzsKICAgICAgICAkYWxlcnRzIC49ICc8ZGl2IGlkPSJ1cmdlbnRfZ3JvdXBfJy4kZ3JvdXAuJyIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsgZGlzcGxheTogbm9uZTsiPic7CiAgICAgICAgZm9yZWFjaCAoJGdhbGVydHMgYXMgJGFsZXJ0KSB7CiAgICAgICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL05vdGlmaWNhdGlvbnMvMS5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgICAgICB9CiAgICAgICAgJGFsZXJ0cyAuPSAnPC9kaXY+JzsKICAgICAgfQogICAgfQogIH0KCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnYWxlcnRzX2ltcG9ydGFudCcsICR0aGlzLT5MYW5nKCd0aXRsZV9hbGVydHNfaW1wb3J0YW50JykpOwoKCiAgJGltcG9ydGFudF9hbGVydHMgPSAkdGhpcy0+Z2V0SW1wb3J0YW50QWxlcnRzKCk7CiAgaWYgKGNvdW50KCRpbXBvcnRhbnRfYWxlcnRzKSA9PSAwKSB7CiAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS90cnVlLmdpZiIgYWxpZ249ImFic21pZGRsZSIgLz4gJy4kdGhpcy0+bGFuZygnbm90aGluZ190b19iZV9maXhlZCcpLic8YnIgLz48YnIgLz4nOwogIH1lbHNlewogICAgJGdyb3VwcyA9IEFycmF5KCk7CiAgICBmb3JlYWNoICgkaW1wb3J0YW50X2FsZXJ0cyBhcyAkYWxlcnQpIHsKICAgICAgJGdyb3Vwc1skYWxlcnRbJ2dyb3VwJ11dW10gPSAkYWxlcnQ7CiAgICB9CiAgICBmb3JlYWNoKCRncm91cHMgYXMgJGdyb3VwID0+ICRnYWxlcnRzKSB7CiAgICAgICRjb3VudCA9IGNvdW50KCRnYWxlcnRzKTsKICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA+IDIwKSB7CiAgICAgICAgJHBhcnRzID0gYXJyYXlfY2h1bmsoJGdhbGVydHMsIDIwKTsKICAgICAgICAkZ2FsZXJ0cyA9ICRwYXJ0c1swXTsKICAgICAgICAkY291bnQgPSAiPiAyMCI7CiAgICAgIH0KICAgICAgaWYgKGNvdW50KCRnYWxlcnRzKSA9PSAxKSB7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzIuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRnYWxlcnRzWzBdWydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkZ2FsZXJ0c1swXVsnbGlua3MnXSkuJ108YnIgLz48YnIgLz4nOwogICAgICB9ZWxzZXsKICAgICAgICAkZ3JvdXBfdGl0bGUgPSAkdGhpcy0+bGFuZygnZ3JvdXB0aXRsZV8nLiRncm91cCwgQXJyYXkoJGNvdW50KSk7CiAgICAgICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9Ob3RpZmljYXRpb25zLzIuZ2lmIiBhbGlnbj0iYWJzbWlkZGxlIiAvPiA8Yj4nLiRncm91cF90aXRsZS4nPC9iPiBbPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKG51bGwpIiBvbkNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ2ltcG9ydGFudF9ncm91cF8nLiRncm91cC4nXCcpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCciPicuJHRoaXMtPmxhbmcoJ3ZpZXdfYWxsJykuJzwvYT5dPGJyIC8+PGJyIC8+JzsKICAgICAgICAkYWxlcnRzIC49ICc8ZGl2IGlkPSJpbXBvcnRhbnRfZ3JvdXBfJy4kZ3JvdXAuJyIgc3R5bGU9InBhZGRpbmctbGVmdDogMzBweDsgZGlzcGxheTogbm9uZTsiPic7CiAgICAgICAgZm9yZWFjaCAoJGdhbGVydHMgYXMgJGFsZXJ0KSB7CiAgICAgICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL05vdGlmaWNhdGlvbnMvMi5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgICAgICB9CiAgICAgICAgJGFsZXJ0cyAuPSAnPC9kaXY+JzsKICAgICAgfQogICAgfQogIH0KCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGFsZXJ0cyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAnYWxlcnRzX25vdGljZXMnLCAkdGhpcy0+TGFuZygndGl0bGVfYWxlcnRzX25vdGljZXMnKSk7CgogICRub3RpY2VfYWxlcnRzID0gJHRoaXMtPmdldE5vdGljZUFsZXJ0cygpOwogIGlmIChjb3VudCgkbm90aWNlX2FsZXJ0cykgPT0gMCkgewogICAgJGFsZXJ0cyAuPSAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9zeXN0ZW0vdHJ1ZS5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+ICcuJHRoaXMtPmxhbmcoJ25vdGhpbmdfdG9fYmVfZml4ZWQnKS4nPGJyIC8+PGJyIC8+JzsKICB9ZWxzZXsKICAgIGZvcmVhY2ggKCRub3RpY2VfYWxlcnRzIGFzICRhbGVydCkgewogICAgICAkYWxlcnRzIC49ICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL05vdGlmaWNhdGlvbnMvMy5naWYiIGFsaWduPSJhYnNtaWRkbGUiIC8+IDxiPicuJGFsZXJ0WydtZXNzYWdlJ10uJzwvYj4gWycuaW1wbG9kZSgnIHwgJywkYWxlcnRbJ2xpbmtzJ10pLiddPGJyIC8+PGJyIC8+JzsKICAgIH0KICB9CgogICRhbGVydHMgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CiAgZWNobyAkYWxlcnRzOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_keywordsettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogS2V5d29yZCBTZXR0aW5ncwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiAgJGtzZXR0aW5ncyAgPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwoKICAka3NldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdrZXl3b3JkX3dlaWdodF9kZXNjcmlwdGlvbicsICR0aGlzLT5MYW5nKCd0aXRsZV9rZXl3b3JkX3dlaWdodCcpKTsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRfbWlubGVuZ3RoX3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfbWlubGVuZ3RoJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfbWlubGVuZ3RoX2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX3RpdGxlX3dlaWdodF90aXRsZScpLic6PC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdrZXl3b3JkX3RpdGxlX3dlaWdodCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXl3b3JkX3RpdGxlX3dlaWdodCcsJzYnKSwgMikuJyAnLiR0aGlzLT5sYW5nKCdrZXl3b3JkX3RpdGxlX3dlaWdodF9oZWxwJykuJzwvcD4nOwogICRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHRfdGl0bGUnKS4nOjwvcD4nOwogICRrc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHQnLCc0JyksIDIpLicgJy4kdGhpcy0+bGFuZygna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHRfaGVscCcpLic8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0JywnMicpLCAyKS4nICcuJHRoaXMtPmxhbmcoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfY29udGVudF93ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9jb250ZW50X3dlaWdodCcsJzEnKSwgMikuJyAnLiR0aGlzLT5sYW5nKCdrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0X3RpdGxlJykuJzo8L3A+JzsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2tleXdvcmRfbWluaW11bV93ZWlnaHQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5pbXVtX3dlaWdodCcsJzcnKSwgMikuJyAnLiR0aGlzLT5sYW5nKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0X2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGtzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAna2V5d29yZF9leGNsdWRlX2Rlc2NyaXB0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX2tleXdvcmRfZXhjbHVkZScpKTsKICAka3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2tleXdvcmRfZXhjbHVkZV90aXRsZScpLic6PC9wPic7CiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsIG51bGwsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2V4Y2x1ZGUnLCcnKSwgJ2tleXdvcmRfZXhjbHVkZScpLicgJy4kdGhpcy0+bGFuZygna2V5d29yZF9leGNsdWRlX2hlbHAnKS4nPC9wPic7CiAgJGtzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJGtzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQobnVsbCwgJ3NhdmVfa2V5d29yZF9zZXR0aW5ncycsICR0aGlzLT5sYW5nKCdzYXZlJykpLic8L3A+JzsKICAka3NldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CgogICRrc2V0dGluZ3MgLj0gJzxiciAvPjxiciAvPicuJHRoaXMtPmxhbmcoJ2hlbHBfa2V5d29yZF9nZW5lcmF0b3InKTsKCWVjaG8gJGtzZXR0aW5nczsKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_pagesettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogUGFnZSBTZXR0aW5ncwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiAgJHBhZ2VzZXR0aW5ncyAgPSAnPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRyPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ3BhZ2VfaWQnKS4nPC90aD4nOwogICRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdwYWdlX25hbWUnKS4nPC90aD4nOwogICRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdwcmlvcml0eScpLic8L3RoPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ29nX3R5cGUnKS4nPC90aD4nOwogICRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdrZXl3b3JkcycpLic8L3RoPic7CiAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRoPicuJHRoaXMtPmxhbmcoJ2Rlc2NyaXB0aW9uJykuJzwvdGg+JzsKICAkcGFnZXNldHRpbmdzIC49ICc8dGg+Jy4kdGhpcy0+bGFuZygnaW5kZXgnKS4nPC90aD4nOwogICRwYWdlc2V0dGluZ3MgLj0gJzx0aD4nLiR0aGlzLT5sYW5nKCdmb2xsb3cnKS4nPC90aD4nOwogICRwYWdlc2V0dGluZ3MgLj0gJzwvdHI+JzsKCgoJJGFsbF9jb250ZW50ID0gQ29udGVudE9wZXJhdGlvbnM6OkdldEFsbENvbnRlbnQoKTsKCWZvcmVhY2ggKCRhbGxfY29udGVudCBhcyAkY29udGVudF9vYmopIHsKCQlpZiAoJGNvbnRlbnRfb2JqLT5BY3RpdmUoKSAhPT0gdHJ1ZSkKCQkJY29udGludWU7CgkJJHByZWZpeCA9ICIiOwoJCSRhdXRvX3ByaW9yaXR5ID0gODA7CgkJZm9yICgkaSA9IDA7ICRpIDwgc3Vic3RyX2NvdW50KCRjb250ZW50X29iai0+SGllcmFyY2h5KCksJy4nKTsgJGkrKykgewoJCSAgJHByZWZpeCAuPSAnJnJhcXVvOyAnOwoJCSAgJGF1dG9fcHJpb3JpdHkgID0gJGF1dG9fcHJpb3JpdHkgLyAyOwoJCX0KCQlpZiAoJGNvbnRlbnRfb2JqLT5EZWZhdWx0Q29udGVudCgpID09IDEpIHsKCQkgICRhdXRvX3ByaW9yaXR5ID0gMTAwOwoJCX0KCgkJJGRlc2NyaXB0aW9uID0gJGNvbnRlbnRfb2JqLT5HZXRQcm9wZXJ0eVZhbHVlKHN0cl9yZXBsYWNlKCcgJywnXycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywnJykpKTsKCQkka3cgPSBhcnJheV9mbGlwKCR0aGlzLT5nZXRLZXl3b3JkU3VnZ2VzdGlvbnMoJGNvbnRlbnRfb2JqLT5JZCgpKSk7CgoJCSRkZXNjcmlwdGlvbl9hdXRvID0gZmFsc2U7CgkJaWYgKCgkZGVzY3JpcHRpb24gPT0gIiIpICYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsJ2ZhbHNlJykgPT0gJ3RydWUnKSkgewoJCSAgJGxhc3Rfa2V5d29yZCA9IGFycmF5X3BvcCgka3cpOwoJCSAgJGtleXdvcmRzID0gaW1wbG9kZSgnLCAnLCRrdykgLiAiICIgLiAkdGhpcy0+bGFuZygnYW5kJykgLiAiICIgLiAkbGFzdF9rZXl3b3JkOwoJCSAgJGRlc2NyaXB0aW9uID0gJHRoaXMtPmxhbmcoJ2F1dG9fZ2VuZXJhdGVkJykuIjogIi5zdHJfcmVwbGFjZSgne2tleXdvcmRzfScsJGtleXdvcmRzLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvJywnJykpOwoJCSAgJGRlc2NyaXB0aW9uID0gc3RyX3JlcGxhY2UoJ3t0aXRsZX0nLCRjb250ZW50X29ialsnY29udGVudF9uYW1lJ10sJGRlc2NyaXB0aW9uKTsKCQkgICRkZXNjcmlwdGlvbl9hdXRvID0gdHJ1ZTsKCQl9CgkJJGRlZmF1bHRfb2d0eXBlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCcnKTsKCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgV0hFUkUgY29udGVudF9pZCA9ICcuJGNvbnRlbnRfb2JqLT5JZCgpOwoJCSRyZXN1bHQyID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCSRpbmZvID0gJHJlc3VsdDItPmZldGNoUm93KCk7CgoJCSRwcmlvcml0eSA9ICcoYXV0bykgPHNwYW4gY2xhc3M9InByaW9yaXR5Ij4nLiRhdXRvX3ByaW9yaXR5Lic8L3NwYW4+JSAnOwoJCSRvZ3R5cGUgPSAnKGRlZmF1bHQpICcuJGRlZmF1bHRfb2d0eXBlLicgJy4kdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL2VkaXQucG5nIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsICR0aGlzLT5sYW5nKCdlZGl0X3ZhbHVlJyksIEFycmF5KCJ3aGF0Ij0+ImVkaXRfb2d0eXBlIiwiY29udGVudF9pZCI9PiRjb250ZW50X29iai0+SWQoKSkpOwoJCSRrZXl3b3JkcyA9ICcoYXV0bykgJy5jb3VudCgka3cpLicgJy4kdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL2VkaXQucG5nIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsIGltcGxvZGUoJywgJywka3cpLic7ICcuJHRoaXMtPmxhbmcoJ2VkaXRfdmFsdWUnKSwgQXJyYXkoIndoYXQiPT4iZWRpdF9rZXl3b3JkcyIsImNvbnRlbnRfaWQiPT4kY29udGVudF9vYmotPklkKCkpKTsKCgkJJGluZGV4YWJsZSA9ICd0cnVlJzsKCQkkZm9sbG93ID0gJ3RydWUnOwoKCQlpZiAoJGluZm9bJ2NvbnRlbnRfaWQnXSAhPSAiIikgewoJCSAgaWYgKCRpbmZvWydwcmlvcml0eSddICE9IDApIHsKCQkJJHByaW9yaXR5ID0gJzxiIGNsYXNzPSJyZXNldDEwMCI+PHNwYW4gY2xhc3M9InByaW9yaXR5Ij4nLiRpbmZvWydwcmlvcml0eSddIC4gJzwvc3Bhbj4lICcuJHRoaXMtPkNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRyb290X3VybC4nL21vZHVsZXMvU0VPVG9vbHMyL2ltZy9yZXNldC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ3Jlc2V0X3RvX2RlZmF1bHQnKSwgQXJyYXkoIndoYXQiPT4icmVzZXRfcHJpb3JpdHkiLCJjb250ZW50X2lkIj0+JGNvbnRlbnRfb2JqLT5JZCgpKSkgLiAnPC9iPic7CgkJCSRhdXRvX3ByaW9yaXR5ID0gJGluZm9bJ3ByaW9yaXR5J107CgkJICB9CgkJICBpZiAoJGluZm9bJ29ndHlwZSddICE9ICIiKSB7CgkJCSRvZ3R5cGUgPSAnPGI+Jy4kaW5mb1snb2d0eXBlJ10gLiAnICcgLiAkdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL3Jlc2V0LnBuZyIgYWxpZ249ImFic21pZGRsZSIgLz4nLCAkdGhpcy0+bGFuZygncmVzZXRfdG9fZGVmYXVsdCcpLCBBcnJheSgid2hhdCI9PiJyZXNldF9vZ3R5cGUiLCJjb250ZW50X2lkIj0+JGNvbnRlbnRfb2JqLT5JZCgpKSkgLiAkdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL2VkaXQucG5nIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsICR0aGlzLT5sYW5nKCdlZGl0X3ZhbHVlJyksIEFycmF5KCJ3aGF0Ij0+ImVkaXRfb2d0eXBlIiwiY29udGVudF9pZCI9PiRjb250ZW50X29iai0+SWQoKSkpLic8L2I+JzsKCQkgIH0KCQkgIGlmICgkaW5mb1sna2V5d29yZHMnXSAhPSAiIikgewoJCQkka2V5d29yZHMgPSAnPGI+Jy5jb3VudChleHBsb2RlKCcgJywkaW5mb1sna2V5d29yZHMnXSkpIC4gJHRoaXMtPkNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRyb290X3VybC4nL21vZHVsZXMvU0VPVG9vbHMyL2ltZy9yZXNldC5wbmciIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgJHRoaXMtPmxhbmcoJ3Jlc2V0X3RvX2RlZmF1bHQnKSwgQXJyYXkoIndoYXQiPT4icmVzZXRfa2V5d29yZHMiLCJjb250ZW50X2lkIj0+JGNvbnRlbnRfb2JqLT5JZCgpKSkgLiAkdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvbW9kdWxlcy9TRU9Ub29sczIvaW1nL2VkaXQucG5nIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsICR0aGlzLT5sYW5nKCdlZGl0X3ZhbHVlJyksIEFycmF5KCJ3aGF0Ij0+ImVkaXRfa2V5d29yZHMiLCJjb250ZW50X2lkIj0+JGNvbnRlbnRfb2JqLT5JZCgpKSkuJzwvYj4nOwoJCSAgfQoJCSAgaWYgKCRpbmZvWydpbmRleGFibGUnXSA9PSAwKSB7CgkJCSRpbmRleGFibGUgPSAnZmFsc2UnOwoJCSAgfQoJCSAgaWYgKCFlbXB0eSgkaW5mb1snZm9sbG93J10pICYmICRpbmZvWydmb2xsb3cnXSA9PSAxICkgewoJCQkkZm9sbG93ID0gJ2ZhbHNlJzsKCQkgIH0KCQl9CgoJCSR1cGRvd24gID0gJHRoaXMtPkNyZWF0ZUxpbmsgKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRyb290X3VybC4nLycuJGFkbWluX2Rpci4nL3RoZW1lcy8nLiR0aGVtZU5hbWUuJy9pbWFnZXMvaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmIiBib3JkZXI9IjAiIGFsaWduPSJhYnNtaWRkbGUiIC8+JywgQXJyYXkoJ3doYXQnPT4nc2V0X3ByaW9yaXR5JywncHJpb3JpdHknPT4kYXV0b19wcmlvcml0eS0xMCwnY29udGVudF9pZCc9PiRjb250ZW50X29iai0+SWQoKSksICcnLCBmYWxzZSwgZmFsc2UsICdjbGFzcz0idXBkb3duIGRvd24iJywgZmFsc2UsICcnKTsKCQkkdXBkb3duIC49ICR0aGlzLT5DcmVhdGVMaW5rIChudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICc8aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZiIgYm9yZGVyPSIwIiBhbGlnbj0iYWJzbWlkZGxlIiAvPicsIEFycmF5KCd3aGF0Jz0+J3NldF9wcmlvcml0eScsJ3ByaW9yaXR5Jz0+JGF1dG9fcHJpb3JpdHkrMTAsJ2NvbnRlbnRfaWQnPT4kY29udGVudF9vYmotPklkKCkpLCAnJywgZmFsc2UsIGZhbHNlLCAnY2xhc3M9InVwZG93biB1cCInLCBmYWxzZSwgJycpOwoJCSR1cGRvd24gLj0gIiAiIC4gJHRoaXMtPmxhbmcoJ2RlY3JlYXNlX3ByaW9yaXR5Jyk7CgkJCgkJCgkJJHBhZ2VzZXR0aW5ncyAuPSAnPHRyIGNsYXNzPSJyb3cnLigkaiAlIDIgKyAxKS4nIj4nOwoJCSRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4nLiRjb250ZW50X29iai0+SWQoKS4nPC90ZD4nOwoJCSRwYWdlc2V0dGluZ3MgLj0gJzx0ZCBjbGFzcz0icGciPicuJHByZWZpeCAuJyAnLiRjb250ZW50X29iai0+TmFtZSgpLic8L3RkPic7CgoKCQlpZiAoc3RycG9zKCRjb250ZW50X29iai0+VHlwZSgpLCAnY29udGVudCcpICE9PSBmYWxzZSB8fCBzdHJwb3MoJGNvbnRlbnRfb2JqLT5UeXBlKCksICdsaW5rJykgIT09IGZhbHNlICkgewoJCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPicuJHVwZG93bi4nIDxzcGFuIGNsYXNzPSJwbXNnIj4nLiRwcmlvcml0eS4nPC9zcGFuPjwvdGQ+JzsKCQkgIC8vICAgICAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPicuICRvZ3R5cGUuJzwvdGQ+JzsKCQkgICRwYWdlc2V0dGluZ3MgLj0gc3RycG9zKCRjb250ZW50X29iai0+VHlwZSgpLCAnbGluaycpICE9PSBmYWxzZSA/ICc8dGQ+LS0tPC90ZD4nIDogJzx0ZD4nLiAkb2d0eXBlLic8L3RkPic7CgkJICAkcGFnZXNldHRpbmdzIC49IHN0cnBvcygkY29udGVudF9vYmotPlR5cGUoKSwgJ2xpbmsnKSAhPT0gZmFsc2UgPyAnPHRkPi0tLTwvdGQ+JyA6ICc8dGQ+Jy4gJGtleXdvcmRzLic8L3RkPic7CgoJCSAgLy8gICAgICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+Jy4ka2V5d29yZHMuJzwvdGQ+JzsKCQkgIGlmIChzdHJwb3MoJGNvbnRlbnRfb2JqLT5UeXBlKCksICdjb250ZW50JykgIT09IGZhbHNlICkgewoKCQkJaWYgKCRkZXNjcmlwdGlvbiAhPSAiIikgewoJCQkgIGlmICgkZGVzY3JpcHRpb25fYXV0bykgewoJCQkJJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPjxpbWcgc3JjPSInLiRyb290X3VybC4nLycuJGFkbWluX2Rpci4nL3RoZW1lcy8nLiR0aGVtZU5hbWUuJy9pbWFnZXMvaWNvbnMvc3lzdGVtL3dhcm5pbmcuZ2lmIiB0aXRsZT0iJy5zdHJpcF90YWdzKCRkZXNjcmlwdGlvbikuJyBhbHQ9Iicuc3RyaXBfdGFncygkZGVzY3JpcHRpb24pLicgLz48L3RkPic7CgkJCSAgfWVsc2V7CgkJCQkkcGFnZXNldHRpbmdzIC49ICc8dGQ+PGEgaHJlZj0iZWRpdGNvbnRlbnQucGhwPycuQ01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX0dFVFtDTVNfU0VDVVJFX1BBUkFNX05BTUVdLicmY29udGVudF9pZD0nLiRjb250ZW50X29iai0+SWQoKS4nIj48aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS90cnVlLmdpZiIgdGl0bGU9Iicuc3RyaXBfdGFncygkZGVzY3JpcHRpb24pLicgYWx0PSInLnN0cmlwX3RhZ3MoJGRlc2NyaXB0aW9uKS4nIiAvPjwvYT48L3RkPic7CgkJCSAgfQoJCQl9ZWxzZXsKCQkJICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+PGEgaHJlZj0iZWRpdGNvbnRlbnQucGhwPycuQ01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX0dFVFtDTVNfU0VDVVJFX1BBUkFNX05BTUVdLicmY29udGVudF9pZD0nLiRjb250ZW50X29iai0+SWQoKS4nIj48aW1nIHNyYz0iJy4kcm9vdF91cmwuJy8nLiRhZG1pbl9kaXIuJy90aGVtZXMvJy4kdGhlbWVOYW1lLicvaW1hZ2VzL2ljb25zL3N5c3RlbS9mYWxzZS5naWYiIGJvcmRlcj0iMCIgdGl0bGU9IicuJHRoaXMtPmxhbmcoJ2NsaWNrX3RvX2FkZF9kZXNjcmlwdGlvbicpLiciIGFsdD0iJy4kdGhpcy0+bGFuZygnY2xpY2tfdG9fYWRkX2Rlc2NyaXB0aW9uJykuJyIvPjwvYT48L3RkPic7CgkJCX0KCQkgIH0gZWxzZSB7CgkJCSRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4tLS08L3RkPic7CgkJICB9CgkJICAvLyBJbmRleC9Ob2luZGV4IEZvbGxvdy9Ob2ZvbGxvdwoJCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkIGNsYXNzPSJzZW8yYWpheCI+Jy4kdGhpcy0+Q3JlYXRlVG9vbHRpcExpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsICcnLCAnPGltZyBzcmM9IicuJHJvb3RfdXJsLicvJy4kYWRtaW5fZGlyLicvdGhlbWVzLycuJHRoZW1lTmFtZS4nL2ltYWdlcy9pY29ucy9zeXN0ZW0vJy4kaW5kZXhhYmxlLicuZ2lmIiAvPicsICcnLCBBcnJheSgnd2hhdCc9Pid0b2dnbGVfaW5kZXgnLCdjb250ZW50X2lkJz0+JGNvbnRlbnRfb2JqLT5JZCgpKSkuJzwvdGQ+JzsKCQkgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZCBjbGFzcz0ic2VvMmFqYXgiPicuJHRoaXMtPkNyZWF0ZVRvb2x0aXBMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCAnJywgJzxpbWcgc3JjPSInLiRyb290X3VybC4nLycuJGFkbWluX2Rpci4nL3RoZW1lcy8nLiR0aGVtZU5hbWUuJy9pbWFnZXMvaWNvbnMvc3lzdGVtLycuJGZvbGxvdy4nLmdpZiIgLz4nLCAnJywgQXJyYXkoJ3doYXQnPT4ndG9nZ2xlX2ZvbGxvdycsJ2NvbnRlbnRfaWQnPT4kY29udGVudF9vYmotPklkKCkpKS4nPC90ZD4nOwoJCX1lbHNlewoJCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPi0tLTwvdGQ+JzsKCQkgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4tLS08L3RkPic7CgkJICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+LS0tPC90ZD4nOwoJCSAgJHBhZ2VzZXR0aW5ncyAuPSAnPHRkPi0tLTwvdGQ+JzsKCQkgICRwYWdlc2V0dGluZ3MgLj0gJzx0ZD4tLS08L3RkPic7CgkJICAkcGFnZXNldHRpbmdzIC49ICc8dGQ+LS0tPC90ZD4nOwoJCX0KCQkkcGFnZXNldHRpbmdzIC49ICc8L3RyPic7CgkJJGorKzsKCn0KCiAgJHBhZ2VzZXR0aW5ncyAuPSAnPC90YWJsZT4nOwogIGVjaG8gJHBhZ2VzZXR0aW5nczsKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_seosettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogU0VPIFNldHRpbmdzCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKICAvLyBHZXQgaW1hZ2UgZmlsZXMgZnJvbSAvdXBsb2Fkcy9pbWFnZXMKICAkZmlsZXNfbGlzdCA9IEFycmF5KCR0aGlzLT5sYW5nKCdub25lJyk9PiIiKTsKICAKICAKICAkZHAgPSBvcGVuZGlyKCRjb25maWdbJ3Jvb3RfcGF0aCddLicvdXBsb2Fkcy9pbWFnZXMnKTsKICB3aGlsZSAoJGZpbGUgPSByZWFkZGlyKCRkcCkpIHsKICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5naWYnKSAhPT0gZmFsc2UpIHsKICAgICAgJGZpbGVzX2xpc3RbJGZpbGVdID0gJGZpbGU7CiAgICB9CiAgICBpZiAoc3RycG9zKHN1YnN0cigkZmlsZSwgLTUpLCcucG5nJykgIT09IGZhbHNlKSB7CiAgICAgICRmaWxlc19saXN0WyRmaWxlXSA9ICRmaWxlOwogICAgfQogICAgaWYgKHN0cnBvcyhzdWJzdHIoJGZpbGUsIC01KSwnLmpwZycpICE9PSBmYWxzZSkgewogICAgICAkZmlsZXNfbGlzdFskZmlsZV0gPSAkZmlsZTsKICAgIH0KICAgIGlmIChzdHJwb3Moc3Vic3RyKCRmaWxlLCAtNSksJy5qcGVnJykgIT09IGZhbHNlKSB7CiAgICAgICRmaWxlc19saXN0WyRmaWxlXSA9ICRmaWxlOwogICAgfQogIH0KICBjbG9zZWRpcigkZHApOwoKICAkc2V0dGluZ3MgID0gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydChudWxsLCAnY2hhbmdlc2V0dGluZ3MnKTsKCiAgLyogUGFnZSBUaXRsZSAqLwogICRzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRTdGFydChudWxsLCAndGl0bGVfZGVzY3JpcHRpb24nLCAkdGhpcy0+TGFuZygndGl0bGVfdGl0bGVfZGVzY3JpcHRpb24nKSk7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ3RpdGxlX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAndGl0bGUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndGl0bGUnLCd7dGl0bGV9IHwgeyRzaXRlbmFtZX0gLSB7JHRpdGxlX2tleXdvcmRzfScpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCd0aXRsZV90aXRsZV9oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCd0aXRsZV9tZXRhX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAndGl0bGVfbWV0YScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCd0aXRsZV9tZXRhJywne3RpdGxlfSB8IHskc2l0ZW5hbWV9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ3RpdGxlX21ldGFfaGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZGVzY3JpcHRpb25fYmxvY2tfdGl0bGUnKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdkZXNjcmlwdGlvbl9ibG9jaycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdkZXNjcmlwdGlvbl9ibG9ja19oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkxhbmcoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnKSAuICc6ICcgLiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvX2dlbmVyYXRlJywxKSkgLiAnPC9wPic7CgoKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZGVzY3JpcHRpb25fYXV0b190aXRsZScpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2Rlc2NyaXB0aW9uX2F1dG8nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycsJ1RoaXMgcGFnZSBjb3ZlcnMgdGhlIHRvcGljcyB7a2V5d29yZHN9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ2Rlc2NyaXB0aW9uX2F1dG9faGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnZGVmYXVsdF9rZXl3b3Jkc190aXRsZScpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ2RlZmF1bHRfa2V5d29yZHMnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9rZXl3b3JkcycsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdkZWZhdWx0X2tleXdvcmRzX2hlbHAnKS4nPC9wPic7CgogIC8qIENvbXBpbGUgdGhlIFVEVHNzIG9uIHRoZSBLZXl3b3JkIFNldHRpbmdzIHRhYiAqLwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkxhbmcoJ2NvbXBpbGVfdWR0cycpIC4gJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicgLiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnY29tcGlsZV91ZHRzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NvbXBpbGVfdWR0cycsMSkpLicgJy4kdGhpcy0+bGFuZygnY29tcGlsZV91ZHRzX2hlbHAnKS4nPC9wPic7CiAgCiAgCiAgCiAgCiAgJHNldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldEVuZCgpOwoKICAvKiBNRVRBIFR5cGVzICovCiAgJHNldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdtZXRhX3R5cGUnLCAkdGhpcy0+TGFuZygndGl0bGVfbWV0YV90eXBlJykpOwogIAogIC8qIENoZWNrIHRoZSBET0NUWVBFICovCiAgJGl0ZW1zID0gYXJyYXkoJ0hUTUw1JyA9PiAzLCdYSFRNTCcgPT4gMiwnSFRNTDQnID0+IDEpOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiAkdGhpcy0+TGFuZygnbWV0YV9kb2N0eXBlJykgLiAnOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24obnVsbCwgJ21ldGFfZG9jdHlwZScsICRpdGVtcywgJycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2RvY3R5cGUnLDMpLCAnJykuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2RvY3R5cGVfaGVscCcpLic8L3A+PGJyIC8+JzsKICAKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9zdGFuZGFyZCcpIC4gJzogJyAuICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KG51bGwsICdtZXRhX3N0YW5kYXJkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnLDEpKSAuICc8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9kdWJsaW5jb3JlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ21ldGFfZHVibGluY29yZScsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2R1YmxpbmNvcmUnLDEpKSAuICc8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdtZXRhX2NyZWF0ZV9vcGVuZ3JhcGgnKSAuICc6ICcgLiAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveChudWxsLCAnbWV0YV9vcGVuZ3JhcGgnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLDEpKSAuICc8L3A+JzsKICAkc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CgogIC8qIE1FVEEgRGVmYXVsdHMgKi8KICAkc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0U3RhcnQobnVsbCwgJ21ldGFfZGVmYXVsdHMnLCAkdGhpcy0+TGFuZygndGl0bGVfbWV0YV9kZWZhdWx0cycpKTsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9wdWJsaXNoZXInKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX3B1Ymxpc2hlcicsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX3B1Ymxpc2hlcicsJ3tzaXRlbmFtZX0nKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9wdWJsaXNoZXJfaGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9jb250cmlidXRvcicpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfY29udHJpYnV0b3InLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9jb250cmlidXRvcicsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2NvbnRyaWJ1dG9yX2hlbHAnKS4nPC9wPic7CgogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX2NvcHlyaWdodCcpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfY29weXJpZ2h0JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0JywnKEMpIHtjdXN0b21fY29weXJpZ2h0fSB7c2l0ZW5hbWV9LiBBbGwgcmlnaHRzIHJlc2VydmVkLicpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2NvcHlyaWdodF9oZWxwJykuJzwvcD48YnIgLz4nOwoKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij48Yj4nLiR0aGlzLT5sYW5nKCdtZXRhX2xvY2F0aW9uX2Rlc2NyaXB0aW9uJykuJzwvYj48L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9sb2NhdGlvbicpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfbG9jYXRpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9sb2NhdGlvbicsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2xvY2F0aW9uX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfcmVnaW9uJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9yZWdpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKSwgNSwgNSkuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX3JlZ2lvbl9oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX2xhdGl0dWRlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9sYXRpdHVkZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfbGF0aXR1ZGVfaGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jy4kdGhpcy0+bGFuZygnbWV0YV9sb25naXR1ZGUnKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX2xvbmdpdHVkZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpLCAzMikuJyAnLiR0aGlzLT5sYW5nKCdtZXRhX2xvbmdpdHVkZV9oZWxwJykuJzwvcD48YnIgLz4nOwoKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij48Yj4nLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF9kZXNjcmlwdGlvbicpLic8L2I+PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdGl0bGUnLCd7dGl0bGV9JyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3RpdGxlX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3R5cGUnKS4nOjwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICdtZXRhX29wZW5ncmFwaF90eXBlJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfdHlwZV9oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nLiR0aGlzLT5sYW5nKCdtZXRhX29wZW5ncmFwaF9zaXRlbmFtZScpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2ltYWdlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24obnVsbCwgJ21ldGFfb3BlbmdyYXBoX2ltYWdlJywgJGZpbGVzX2xpc3QsIG51bGwsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9pbWFnZScsJycpKS4nICcuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2ltYWdlX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2FkbWlucycpLic6PC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQobnVsbCwgJ21ldGFfb3BlbmdyYXBoX2FkbWlucycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hZG1pbnMnLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zX2hlbHAnKS4nPC9wPic7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dChudWxsLCAnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb24nLCcnKSwgMzIpLicgJy4kdGhpcy0+bGFuZygnbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb25faGVscCcpLic8L3A+JzsKICAkc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CgogIC8qIEFkZGl0aW9uYWwgTWV0YSBUYWdzICovCiAgJHNldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdhZGRpdGlvbmFsX21ldGEnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkaXRpb25hbF9tZXRhX3RhZ3MnKSk7CiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ2FkZGl0aW9uYWxfbWV0YV90YWdzX3RpdGxlJykuJzo8L3A+JzsKICAkc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCBudWxsLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnLCcnKSwgJ2FkZGl0aW9uYWxfbWV0YV90YWdzJykuJyAnLiR0aGlzLT5sYW5nKCdhZGRpdGlvbmFsX21ldGFfdGFnc19oZWxwJykuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRmllbGRzZXRFbmQoKTsKCiAgJHNldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdChudWxsLCAnc2F2ZV9tZXRhX3NldHRpbmdzJywgJHRoaXMtPmxhbmcoJ3NhdmUnKSkuJzwvcD4nOwogICRzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKICAkc2V0dGluZ3MgLj0gJzxiciAvPjxiciAvPicuJHRoaXMtPmxhbmcoJ2hlbHBfZGVzY3JpcHRpb25fY29udGVudCcpOwoJZWNobyAkc2V0dGluZ3M7CiAgPz4K]]></data>
	</file>
	<file>
	  <filename>/function.admin_sitemapsettings_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4wLjEyLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIFRhYjogU2l0ZW1hcCBTZXR0aW5ncwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiAgJHNzZXR0aW5ncyAgPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwoKICAkc3NldHRpbmdzIC49ICR0aGlzLT5DcmVhdGVGaWVsZHNldFN0YXJ0KG51bGwsICdzaXRlbWFwX2Rlc2NyaXB0aW9uJywgJHRoaXMtPkxhbmcoJ3RpdGxlX3NpdGVtYXBfZGVzY3JpcHRpb24nKSk7CiAgJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4nIC4gJHRoaXMtPkxhbmcoJ2NyZWF0ZV9zaXRlbWFwX3RpdGxlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ2NyZWF0ZV9zaXRlbWFwJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKSkgLiAnPC9wPic7CiAgaWYgKGluaV9nZXQoJ2FsbG93X3VybF9mb3BlbicpKSB7CiAgICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicgLiAkdGhpcy0+TGFuZygncHVzaF9zaXRlbWFwX3RpdGxlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ3B1c2hfc2l0ZW1hcCcsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnLDApKSAuICc8L3A+JzsKICB9ZWxzZXsKICAgICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdwdXNoX3NpdGVtYXBfdGl0bGUnKSAuICc6ICcgLiAkdGhpcy0+TGFuZygnbm9fdXJsX2ZvcGVuJykgLiAnPC9wPic7CiAgfQogICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdldGV4dCI+JyAuICR0aGlzLT5MYW5nKCdjcmVhdGVfcm9ib3RzX3RpdGxlJykgLiAnOiAnIC4gJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3gobnVsbCwgJ2NyZWF0ZV9yb2JvdHMnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3JvYm90cycsMSkpIC4gJzwvcD4nOwoKICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPicuJHRoaXMtPmxhbmcoJ3ZlcmlmaWNhdGlvbl90aXRsZScpLic6PC9wPic7CiAgJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2VpbnB1dCI+Jy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KG51bGwsICd2ZXJpZmljYXRpb24nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndmVyaWZpY2F0aW9uJywnJyksIDMyKS4nICcuJHRoaXMtPmxhbmcoJ3ZlcmlmaWNhdGlvbl9oZWxwJykuJzwvcD4nOwogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CgogICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KG51bGwsICdzYXZlX3NpdGVtYXBfc2V0dGluZ3MnLCAkdGhpcy0+bGFuZygnc2F2ZScpKS4nPC9wPic7CgogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKCiAgJHNzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KG51bGwsICdjaGFuZ2VzZXR0aW5ncycpOwogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0U3RhcnQobnVsbCwgJ3JlZ2VuZXJhdGVfc2l0ZW1hcCcsICR0aGlzLT5MYW5nKCd0aXRsZV9yZWdlbmVyYXRlX3NpdGVtYXAnKSk7CiAgJHNzZXR0aW5ncyAuPSAnPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+JzsKICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZWlucHV0Ij4nLiR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdChudWxsLCAnZG9fcmVnZW5lcmF0ZScsICR0aGlzLT5sYW5nKCdidXR0b25fcmVnZW5lcmF0ZV9zaXRlbWFwJykpLic8L3A+JzsKICAkc3NldHRpbmdzIC49ICc8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4nOwogICRzc2V0dGluZ3MgLj0gJzxwIGNsYXNzPSJwYWdlaW5wdXQiPicuJHRoaXMtPmxhbmcoJ3RleHRfcmVnZW5lcmF0ZV9zaXRlbWFwJykuJzwvcD4nOwogICRzc2V0dGluZ3MgLj0gJHRoaXMtPkNyZWF0ZUZpZWxkc2V0RW5kKCk7CiAgJHNzZXR0aW5ncyAuPSAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpOwoKICAkc3NldHRpbmdzIC49ICc8YnIgLz48YnIgLz4nLiR0aGlzLT5sYW5nKCdoZWxwX3NpdGVtYXBfcm9ib3RzJyk7CiAgZWNobyAkc3NldHRpbmdzOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/img/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/img/ajax-loader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==]]></data>
	</file>
	<file>
	  <filename>/img/edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAB3RJTUUH2ggQDQAHiaSPRwAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAImSURBVHjajZPPaxNBFMe/O9tuaJMY7NbUqrVNVeoPVESqB+2pBxFBD3r3Ip78Lzx48aA0WpGi4EnBg0UptIeK0Jh6UKIhmKRG0f5MqjFNm7o7uzvrzJoNqUm0A495zLzPd95j3pNs24YkSbsAdHCT8e+V4/aNM6xyIgT4Oq5pWsEwDMs0Tbue8Xs7HA7f5rE93IjgnMfLGZzgcFTXdcL9ijgHwRgDpRSqqmIp9QxrsaeQfYdR+v4KkjZ/WUQL6+fBb7gICCEO5ApYluUItNAI1tLTaGkfQCB0DIUvUSQnRrJN1QUK2N2FiCzLTprs5yQMK4W2faeQz3yEIlH4t2yHT90dqBFwSxC+eJ2tTEMxEgj0noG++BhKq4SvsSS0dX2lVFo9uUGgun7h0x8RsMJLBPaehzZ/D0Qx0ezrhteeQ3j0w7U7Y5k0afRf2eRzlBYmyvAwSLMBWuzB8tR7qIPXIWAn07pwagzFhSiCh86BLo1AVmzoxW4Ov8O2C0PwdOyvxDb9Dc9En4CtJmBKO7AYH8LWoAIt34XC2yQ6L96F7O/cEF+TQfz1Axw8fRWe2SmkRyOIjeeRnowhePZGDVxXYObzMmjiBUJHB+D19iEbz6Dv0k142nudn3G/umEJiU853Lo/jP4DIfj3HMHglYdobdvZcDiqBcRQSI/G57CJ5bQqbzJbDIUAGW+aX+7F/2Aeu853y+mX8jB14c84k00IoAznODv7G84tFQol4BT4AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/img/reset.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAB3RJTUUH2ggQDDghTfTcdgAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAJ5SURBVHjapVNdSBRRGD1zZ8bZHcfFn1VWDSNMpYSUBCGCMivJHgyMkiAwfCroIZBSiFAixLeIChaiIlAhf4IoKkhEgh4KJetF1/xF3XSUTVubcdydud1xZRmjJOiDw8yd+53zffd8c4H/DM65uHq/sv9QiXxYN1S2IYDCYk8RinAAS/qidaff3zFwC7WAaHFihKMRUOIU8KXKGUnJERD3OHh5DoIcZJiFKX1GuneZtNZcOd/SWfUFpZHdlPE5EZzgFFglAWUpIYyQFARx9CZgBGaUtWsC5QfrC/0ptQMX654U0hlpjt9ynkx1x0xwhXwdwdjYKKYYJsdGuen5OU/IpaRmpGbKZFLrtYpyy92iQnIG30x1xcmia4svv0NhqLjxLG+hfcZDu4NltGOgTkcOTsU7sKLbmr3OMB5YCekVZcUn1+h7eN1FQvuHoXnhrxTbXsvREwUWVAxRIwkcsRVXbHM2p0Bi+XZkncOF9Hw+LU5GjGzHsePuao+L1TQSoWnf7U/6pssxy083pjTce33UTi9jcDOkMXhRifwjjdLNro81tHOwhHYN7aTNTwu+sb09G0eIshIn6pMbzlbvb/Up+XjUp/Ym8ImUbpQWOdlVzCcpOsL6KMJrgxCEAnS/CDxgm8Ox0lVofnx9b5OUoOGnMQVF9oJadLN35jPng2FOgxd+wIxko6dn8dXLlvUzjKzFphDgZ9P2qSVZecs5dv6qqWGd02HAhoYor8KgFiYmpLW2tpD/3V3zMmOFN7Sdf/Klh3i+qxCl1xpxO1tCkPDsItgeExCdKalv0c+Wn5yTib2LcZHsyib0eXKRu+14/3gtxS0pAsfjn+IXjhPiCXMAIGsAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIEFjdGlvbjogZW5fVVMgSGVscCB0ZXh0IGFuZCBjaGFuZ2UgbG9nCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdTRU9Ub29sczInOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdTRU9Ub29sczIgaGFzIGJlZW4gaW5zdGFsbGVkLiBCZSBzdXJlIHRvIHJlYWQgdGhlIG1vZHVsZSBoZWxwIHRvIGxlYXJuIGhvdyB0byB1c2UgaXQuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdTRU9Ub29sczIgaGFzIGJlZW4gdW5pbnN0YWxsZWQuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHlvdSBoYXZlIGp1c3QgbG9zdCBhbGwgbWV0YSBpbmZvcm1hdGlvbiBmcm9tIHlvdXIgcGFnZXMhJzsKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdEbyB5b3UgcmVhbGx5IHdhbnQgdG8gdW5pbnN0YWxsIFNFT1Rvb2xzMj8nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdBIGNvbGxlY3Rpb24gb2YgdG9vbHMgdG8gaGVscCB3aXRoIFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uLic7CgokbGFuZ1snZXZlbnRkZXNjLVByZWZzVXBkYXRlZCddID0gJ1NlbnQgd2hlbiB0aGUgYWRtaW4gcHJlZmVyZW5jZXMgYXJlIHVwZGF0ZWQuJzsKJGxhbmdbJ2V2ZW50aGVscC1QcmVmc1VwZGF0ZWQnXSA9ICc8cD5TZW50IHdoZW4gdGhlIGFkbWluIHByZWZlcmVuY2VzIGFyZSB1cGRhdGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8b2w+CjxsaT48L2xpPgo8L29sPic7CgoKCiRsYW5nWydlcnJvciddID0gJ0Vycm9yISc7CiRsYW5kWydhZG1pbl90aXRsZSddID0gJ1NFT1Rvb2xzMiBBZG1pbiBQYW5lbCc7CiRsYW5nWydhZG1pbmRlc2NyaXB0aW9uJ10gPSAnSGVscHMgd2l0aCBTRU8gaW4gZ2VuZXJhbCwgYXV0b21hdGljYWxseSBnZW5lcmF0aW5nIFhNTCBzaXRlbWFwcyBhbmQgY29tcHJlaGVuc2l2ZSBtZXRhIGRlc2NyaXB0aW9ucyc7CiRsYW5nWydhY2Nlc3NkZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snU0VPQWxlcnRzJ10gPSAnU0VPIEFsZXJ0cyc7CiRsYW5nWydQYWdlZGVzY3JpcHRpb25zJ10gPSAnUGFnZSBzZXR0aW5ncyc7CiRsYW5nWydTaXRlbWFwJ10gPSAnU2l0ZW1hcCc7CiRsYW5nWydTRU9TZXR0aW5ncyddID0gJ1NFTyBTZXR0aW5ncyc7CiRsYW5nWyd0aXRsZV9zZW9hbGVydHMnXSA9ICdTRU8gQWxlcnRzJzsKJGxhbmdbJ3RpdGxlX3BhZ2VkZXNjcmlwdGlvbnMnXSA9ICdQYWdlIHNldHRpbmdzJzsKJGxhbmdbJ3RpdGxlX3NpdGVtYXAnXSA9ICdTaXRlbWFwJzsKJGxhbmdbJ3RpdGxlX3Nlb3NldHRpbmdzJ10gPSAnU0VPIFNldHRpbmdzJzsKCiRsYW5nWyd0aXRsZV9tZXRhX3R5cGUnXSA9ICdNZXRhIFRhZyBHZW5lcmF0b3InOwokbGFuZ1snbWV0YV9jcmVhdGVfc3RhbmRhcmQnXSA9ICdHZW5lcmF0ZSBzdGFuZGFyZCBNZXRhIFRhZ3MnOwokbGFuZ1snbWV0YV9kb2N0eXBlJ10gPSAnSFRNTCBWZXJzaW9uJzsKJGxhbmdbJ21ldGFfZG9jdHlwZV9oZWxwJ10gPSAnKFNlbGVjdCB0aGUgdmVyc2lvbiBvZiBIVE1MIHVzZWQgaW4gdGhlIHBhZ2UgdGVtcGxhdGVzKSc7CiRsYW5nWydtZXRhX2NyZWF0ZV9kdWJsaW5jb3JlJ10gPSAnR2VuZXJhdGUgRHVibGluIENvcmUgTWV0YSBUYWdzJzsKJGxhbmdbJ21ldGFfY3JlYXRlX29wZW5ncmFwaCddID0gJ0dlbmVyYXRlIE9wZW5HcmFwaCBNZXRhIFRhZ3MgKGUuZy4gZm9yIEZhY2Vib29rIExpa2UgQnV0dG9uKSc7CgokbGFuZ1sndGl0bGVfbWV0YV9kZWZhdWx0cyddID0gJ01FVEEgVGFnIFZhbHVlcyc7CiRsYW5nWydtZXRhX3B1Ymxpc2hlciddID0gJ1NpdGUgcHVibGlzaGVyJzsKJGxhbmdbJ21ldGFfcHVibGlzaGVyX2hlbHAnXSA9ICcoVGhpcyBpcyB1c3VhbGx5IHRoZSBvcmdhbml6YXRpb24geW91IGFyZSBidWlsZGluZyB0aGUgd2Vic2l0ZSBmb3IpJzsKJGxhbmdbJ21ldGFfY29udHJpYnV0b3InXSA9ICdTaXRlIGNvbnRyaWJ1dG9yJzsKJGxhbmdbJ21ldGFfY29udHJpYnV0b3JfaGVscCddID0gJyhVc3VhbGx5LCB0aGlzIHdvdWxkIGJlIHlvdSBvciBhbnkgb3RoZXIgY29udGVudCBhdXRob3IpJzsKJGxhbmdbJ21ldGFfY29weXJpZ2h0J10gPSAnU2l0ZSBjb3B5cmlnaHQnOwokbGFuZ1snbWV0YV9jb3B5cmlnaHRfaGVscCddID0gJyhTb21ldGhpbmcgbGlrZSAie2N1c3RvbV9jb3B5cmlnaHR9IHtzaXRlbmFtZX0uIEFsbCBSaWdodHMgUmVzZXJ2ZWQiLiBZb3UgY2FuIHVzZSBzbWFydHkgdGFncyBhbmQgVURUcyBoZXJlLiknOwokbGFuZ1snbWV0YV9sb2NhdGlvbl9kZXNjcmlwdGlvbiddID0gJ0lmIHlvdXIgd2Vic2l0ZSBpcyBhYm91dCBhbiBlbnRpdHkgdGhhdCBjYW4gYmUgbG9jYXRlZCBvbiBhIG1hcCwgeW91IHNob3VsZCBvcHRpb25hbGx5IGZpbGwgaW4gdGhlIGZvbGxvd2luZyB2YWx1ZXM6JzsKJGxhbmdbJ21ldGFfbG9jYXRpb24nXSA9ICdMb2NhdGlvbiBvZiB5b3VyIGVudGl0eSc7CiRsYW5nWydtZXRhX2xvY2F0aW9uX2hlbHAnXSA9ICcoVXN1YWxseSwgdGhpcyB3b3VsZCBiZSB0aGUgdG93biBuYW1lIG9mIHlvdXIgY29tcGFueSknOwokbGFuZ1snbWV0YV9yZWdpb24nXSA9ICdSZWdpb24gb2YgeW91ciBlbnRpdHknOwokbGFuZ1snbWV0YV9yZWdpb25faGVscCddID0gJyhFbnRlciBzb21ldGhpbmcgbGlrZSAiVVMtSUwiIGZvciBhbiBlbnRpdHkgbG9jYXRlZCBpbiBJbGxpbm9pcywgVVMpJzsKJGxhbmdbJ21ldGFfbGF0aXR1ZGUnXSA9ICdMYXRpdHVkZSBvZiB5b3VyIGVudGl0eSc7CiRsYW5nWydtZXRhX2xhdGl0dWRlX2hlbHAnXSA9ICcoRW50ZXIgdGhlIGRlY2ltYWwgbGF0aXR1ZGUgZ2VvIGNvb2RpbmF0ZSBvZiB5b3VyIGVudGl0aXkpJzsKJGxhbmdbJ21ldGFfbG9uZ2l0dWRlJ10gPSAnTG9uZ2l0dWRlIG9mIHlvdXIgZW50aXR5JzsKJGxhbmdbJ21ldGFfbG9uZ2l0dWRlX2hlbHAnXSA9ICcoRW50ZXIgdGhlIGRlY2ltYWwgbG9uZ2l0dWRlIGdlbyBjb29kaW5hdGUgb2YgeW91ciBlbnRpdGl5KSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9kZXNjcmlwdGlvbiddID0gJ0lmIHlvdSBhcmUgY3JlYXRpbmcgT3BlbkdyYXBoIE1FVEEgVGFncywgcGxlYXNlIGZpbGwgaW4gdGhlIGZvbGxvd2luZyB2YWx1ZXM6JzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX3RpdGxlJ10gPSAnT3BlbkdyYXBoIHBhZ2UgdGl0bGUnOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfdGl0bGVfaGVscCddID0gJyhZb3UgY2FuIHVzZSBhbGwgc21hcnR5IHRhZ3MgaGVyZSwgZS5nLiB0byByZXBsYWNlIHdpdGggdGhlIGFjdHVhbCBwYWdlIHRpdGxlKSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF90eXBlJ10gPSAnT3BlbkdyYXBoIGRlZmF1bHQgcGFnZSB0eXBlJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX3R5cGVfaGVscCddID0gJyhUaGUgZGVmYXVsdCBwYWdlIHR5cGUgZm9yIE9wZW5HcmFwaCwgY2FuIGJlIG92ZXJyaWRkZW4gZm9yIGVhY2ggcGFnZS4gTG9vayA8YSBocmVmPSJodHRwOi8vZGV2ZWxvcGVycy5mYWNlYm9vay5jb20vZG9jcy9vcGVuZ3JhcGgjdHlwZXMiIHRhZ2V0PSJfYmxhbmsiPmhlcmU8L2E+IGZvciBhIGxpc3Qgb2YgYWxsb3dlZCB2YWx1ZXMpJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lJ10gPSAnT3BlbkdyYXBoIHNpdGUgbmFtZSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9zaXRlbmFtZV9oZWxwJ10gPSAnKEEgc2hvcnQgdmVyc2lvbiBvZiB5b3VyIHNpdGUgbmFtZSwgZS5nLiAiWW91ciBDb21wYW55IiwgbWF4LiAyNSBjaGFycyknOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnXSA9ICdPcGVuR3JhcGggZGVmYXVsdCBpbWFnZSc7CiRsYW5nWydtZXRhX29wZW5ncmFwaF9pbWFnZV9oZWxwJ10gPSAnKFNlbGVjdCBhbiBpbWFnZSBmcm9tIHlvdXIgaW1hZ2VzIGRpcmVjdG9yeSB0byBiZSB1c2VkIGFzIHRoZSBkZWZhdWx0IGZvciBPcGVuR3JhcGggcGFnZXMpJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2FkbWlucyddID0gJ0ZhY2Vib29rIHNpdGUgYWRtaW5pc3RyYXRvcnMnOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfYWRtaW5zX2hlbHAnXSA9ICcoQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmYWNlYm9vayBhY2NvdW50IElEcyB3aG8gYXJlIGFibGUgdG8gYWRtaW5pc3RyYXRlIHRoZSBzdHJlYW1zIG9mIHlvdXIgcGFnZXMpJzsKJGxhbmdbJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJ10gPSAnRmFjZWJvb2sgYXBwbGljYXRpb24nOwokbGFuZ1snbWV0YV9vcGVuZ3JhcGhfYXBwbGljYXRpb25faGVscCddID0gJyhUaGUgSUQgb2YgYSBmYWNlYm9vayBhcHBsaWNhdGlvbiBhYmxlIHRvIGFkbWluaXN0cmF0ZSB0aGUgc3RyZWFtcyBvZiB5b3VyIHBhZ2VzKSc7CgokbGFuZ1sndGl0bGVfdGl0bGVfZGVzY3JpcHRpb24nXSA9ICdQYWdlIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQga2V5d29yZHMnOwokbGFuZ1sndGl0bGVfdGl0bGUnXSA9ICdQYWdlIHRpdGxlJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX2hlbHAnXSA9ICcoVGhlIHBhZ2UgdGl0bGUgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBicm93c2VyXCdzIHRpdGxlIGJhci4gWW91IGNhbiB1c2UgdGhlIHRhZ3Mge3RpdGxlfSwgeyRwYWdldGl0bGV9LCB7JHNlb19rZXl3b3Jkc30gYW5kIGFsbCBzbWFydHkgdGFncyBhbmQgVURUcyBoZXJlKSc7CiRsYW5nWyd0aXRsZV9tZXRhX3RpdGxlJ10gPSAnUGFnZSBNZXRhIHRpdGxlJzsKJGxhbmdbJ3RpdGxlX21ldGFfaGVscCddID0gJyhUaGUgcGFnZSB0aXRsZSB0byBiZSB1c2VkIGluIHRoZSBNZXRhIHRpdGxlIHRhZ3MuIFlvdSBjYW4gdXNlIHRoZSB0YWdzIHt0aXRsZX0sIHskcGFnZXRpdGxlfSwgeyRzZW9fa2V5d29yZHN9IGFuZCBhbGwgc21hcnR5IHRhZ3MgYW5kIFVEVHMgaGVyZSknOwokbGFuZ1snZGVzY3JpcHRpb25fYmxvY2tfdGl0bGUnXSA9ICdOYW1lIG9mIHBhZ2UgZGVzY3JpcHRpb24gY29udGVudCBibG9jayc7CiRsYW5nWydkZXNjcmlwdGlvbl9ibG9ja19oZWxwJ10gPSAnKFRoZSBuYW1lIG9mIHlvdXIgcGFnZSBkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrLiBQbGVhc2Ugc2VlIGJlbG93IGZvciBhbiBleHBsYW5hdGlvbiknOwoKCgoKJGxhbmdbJ2RlZmF1bHRfa2V5d29yZHNfdGl0bGUnXSA9ICdLZXl3b3JkcyB0byBhbHdheXMgaW5jbHVkZSc7CiRsYW5nWydkZWZhdWx0X2tleXdvcmRzX2hlbHAnXSA9ICcoQSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBrZXl3b3JkcyB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIG9uIGV2ZXJ5IHBhZ2UpJzsKCiRsYW5nWyd0aXRsZV9zaXRlbWFwX2Rlc2NyaXB0aW9uJ10gPSAnR29vZ2xlIFNpdGVtYXAgYW5kIENyYXdsZXIgU2V0dGluZ3MnOwokbGFuZ1snY3JlYXRlX3NpdGVtYXBfdGl0bGUnXSA9ICdDcmVhdGUgYW4gWE1MIEdvb2dsZSBTaXRlbWFwKic7CiRsYW5nWydwdXNoX3NpdGVtYXBfdGl0bGUnXSA9ICdBdXRvbWF0aWNhbGx5IHB1c2ggdGhlIHNpdGVtYXAgdG8gR29vZ2xlIGFmdGVyIGNvbnRlbnQgY2hhbmdlcyc7CiRsYW5nWydjcmVhdGVfcm9ib3RzX3RpdGxlJ10gPSAnQ3JlYXRlIGEgcm9ib3RzLnR4dCBmaWxlKic7CiRsYW5nWyd2ZXJpZmljYXRpb25fdGl0bGUnXSA9ICdTaXRlIHZlcmlmaWNhdGlvbiBjb2RlJzsKJGxhbmdbJ3ZlcmlmaWNhdGlvbl9oZWxwJ10gPSAnKFRoZSBzaXRlIHZlcmlmaWNhdGlvbiBjb2RlIHlvdSBvYnRhaW4gZnJvbSBHb29nbGUgV2VibWFzdGVyIFRvb2xzLCBqdXN0IHRoZSBoYXNoLCBub3QgdGhlIGNvbXBsZXRlIG1ldGEgdGFnKSc7CgokbGFuZ1sndGl0bGVfYWxlcnRzX3VyZ2VudCddID0gJ1RvIGJlIGZpeGVkIGltbWVkaWF0ZWx5JzsKJGxhbmdbJ3RpdGxlX2FsZXJ0c19pbXBvcnRhbnQnXSA9ICdUbyBiZSBmaXhlZCBhcyBzb29uIGFzIHBvc3NpYmxlJzsKJGxhbmdbJ3RpdGxlX2FsZXJ0c19ub3RpY2VzJ10gPSAnVGhpbmdzIHlvdSBzaG91bGQgY29uc2lkZXIgZml4aW5nJzsKJGxhbmdbJ25vdGhpbmdfdG9fYmVfZml4ZWQnXSA9ICdUaGVyZSBhcmUgbm8gYWN0aW9ucyB5b3UgbmVlZCB0byB0YWtlIGluIHRoaXMgY2F0ZWdvcnknOwoKJGxhbmdbJ3NhdmUnXSA9ICdTYXZlIHNldHRpbmdzJzsKJGxhbmdbJ25vbmUnXSA9ICcobm9uZSknOwokbGFuZ1snc2V0dGluZ3NfdXBkYXRlZCddID0gJ1RoZSBTRU8gc2V0dGluZ3Mgd2VyZSBzdWNjZXNzZnVsbHkgdXBkYXRlZC4nOwokbGFuZ1sncHJvYmxlbV9hbGVydCddID0gJ2hhcyBkZXRlY3RlZCBzZXZlcmUgcHJvYmxlbXMgd2l0aCB5b3VyIFNFTy4gJXMnOwokbGFuZ1sncHJvYmxlbV9saW5rX3RpdGxlJ10gPSAnQ2xpY2sgaGVyZSB0byBmaXggdGhlbSc7CgokbGFuZ1snaGVscF9kZXNjcmlwdGlvbl9jb250ZW50J10gPSAnPGI+SG93IHRvIHVzZSB0aGUgImRlc2NyaXB0aW9uIGNvbnRlbnQgYmxvY2siOjwvYj48YnIgLz5UbyBiZSBhYmxlIHRvIGVudGVyIGEgcGFnZSBkZXNjcmlwdGlvbiB3aGVuIGVkaXRpbmcgYSBwYWdlLCB5b3UgbXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgY29kZSBhbnl3aGVyZSBvbiBldmVyeSB0ZW1wbGF0ZTo8YnIgLz48YnIgLz48cHJlPntjYXB0dXJlIGFzc2lnbj1tZXRhZGVzY3JpcHRpb259e2NvbnRlbnQgYmxvY2s9Im1ldGFkZXNjcmlwdGlvbiIgbGFiZWw9Ik1FVEEgRGVzY3JpcHRpb24iIG9uZWxpbmU9InRydWUifXsvY2FwdHVyZX08L3ByZT48YnIgLz5UaGVuLCBwdXQgIm1ldGFkZXNjcmlwdGlvbiIgaW50byB0aGUgZmllbGQgIk5hbWUgb2YgcGFnZSBkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrPGJyIC8+PGJyIC8+QWx0ZXJuYXRpdmVseSwgZW5hYmxlIHRoZSBvcHRpb24gJnF1b3Q7QXV0b21hdGljYWxseSBnZW5lcmF0ZSBkZXNjcmlwdGlvbnMgd2hlcmUgbm9uZSBpcyBnaXZlbiZxdW90Oy4gVGhpcyBpcyBub3QgYXMgZ29vZCBidXQgc3RpbGwgYmV0dGVyIHRoYW4gbm90aGluZy4nOwokbGFuZ1snaGVscF9zaXRlbWFwX3JvYm90cyddID0gJyopIFRvIHVzZSB0aGUgYXV0b21hdGljIGdlbmVyYXRpb24gb2YgYSBzaXRlbWFwLSBhbmQgcm9ib3RzLWZpbGUsIHRoZSByb290IGRpcmVjdG9yeSBvZiB5b3VyIENNU01TIGluc3RhbGxhdGlvbiBtdXN0IGJlIHdyaXRlYWJsZSB0byB0aGUgd2ViIHNlcnZlci4gSWYgeW91ciBhbHJlYWR5IGhhdmUgYSBzaXRlbWFwLnhtbCBhbmQvcHIgcm9ib3RzLnR4dCBmaWxlLCBib3RoIG9mIHRoZW0gbXVzdCBiZSB3cml0ZWFibGUgdG8gdGhlIHdlYiBzZXJ2ZXIuJzsKCiRsYW5nWyd1c2Vfc3RhbmRhcmRfb3JfZHVibGluY29yZV9tZXRhJ10gPSAnVXNlIGF0IGxlYXN0IG9uZSBvZiB0aGUgc3RhbmRhcmQgb3IgRHVibGluIENvcmUgTWV0YSBUYWcgZ2VuZXJhdG9ycyc7CiRsYW5nWyd1c2Vfc3RhbmRhcmRfbWV0YSddID0gJ1lvdSBzaG91bGQgYWx3YXlzIGVuYWJsZSB0aGUgc3RhbmRhcmQgTWV0YSBnZW5lcmF0b3InOwokbGFuZ1snbWV0YV9kZXNjcmlwdGlvbl9taXNzaW5nJ10gPSAnVGhlIHBhZ2UgPGk+JXM8L2k+IGlzIGxhY2tpbmcgYSBNZXRhIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ21ldGFfZGVzY3JpcHRpb25fc2hvcnQnXSA9ICdUaGUgTWV0YSBkZXNjcmlwdGlvbiBvZiA8aT4lczwvaT4gaXMgcmF0aGVyIHNob3J0ICggPCA3NSBjaGFycyknOwokbGFuZ1snZHVwbGljYXRlX3RpdGxlcyddID0gJ1RoZSBwYWdlcyA8aT4lczwvaT4gYW5kIDxpPiVzPC9pPiBoYXZlIHRoZSBzYW1lIHRpdGxlJzsKJGxhbmdbJ2R1cGxpY2F0ZV9kZXNjcmlwdGlvbnMnXSA9ICdUaGUgcGFnZXMgPGk+JXM8L2k+IGFuZCA8aT4lczwvaT4gaGF2ZSB0aGUgc2FtZSBNZXRhIGRlc2NyaXB0aW9uJzsKJGxhbmdbJ3Byb3ZpZGVfYW5fYXV0aG9yJ10gPSAnWW91IHNob3VsZCBwcm92aWRlIHRoZSBuYW1lIG9mIHRoZSBwYWdlIHB1Ymxpc2hlcic7CiRsYW5nWydzZXRfdXBfZGVzY3JpcHRpb25fYmxvY2snXSA9ICdTZXQgdXAgYSBjb250ZW50IGJsb2NrIGZvciBNZXRhIGRlc2NyaXB0aW9ucyc7CiRsYW5nWydhY3RpdmF0ZV9wcmV0dHlfdXJscyddID0gJ0FjdGl2YXRlIHRoZSBwcmV0dHkgVVJMcyBmZWF0dXJlIG9mIENNU01TJzsKJGxhbmdbJ3ByZXR0eV91cmxzX2hlbHAnXSA9ICc8YSBocmVmPSJodHRwOi8vd2lraS5jbXNtYWRlc2ltcGxlLm9yZy9pbmRleC5waHAvVXNlcl9IYW5kYm9vay9JbnN0YWxsYXRpb24vT3B0aW9uYWxfU2V0dGluZ3MiIHRhcmdldD0iX2JsYW5rIj5HZXQgaGVscDwvYT4nOwokbGFuZ1snY3JlYXRlX2Ffc2l0ZW1hcCddID0gJ0hhdmUgYSBHb29nbGUgWE1MIFNpdGVtYXAgYXV0b21hdGljYWxseSBjcmVhdGVkIGZvciB5b3UnOwokbGFuZ1snYXV0b21hdGljYWxseV91cGxvYWRfc2l0ZW1hcCddID0gJ0hhdmUgeW91ciBYTUwgU2l0ZW1hcCBhdXRvbWF0aWNhbGx5IHVwbG9hZGVkIHRvIEdvb2dsZSc7CiRsYW5nWydjcmVhdGVfcm9ib3RzJ10gPSAnSGF2ZSBhIHJvYm90cy50eHQgZmlsZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgZm9yIHlvdSc7CiRsYW5nWydzaXRlbWFwX25vdF93cml0ZWFibGUnXSA9ICdZb3VyIHNpdGVtYXAueG1sIGZpbGUgaXMgbm90IHdyaXRlYWJsZSc7CiRsYW5nWydjaG1vZF9zaXRlbWFwJ10gPSAnU2V0IHlvdXIgL3NpdGVtYXAueG1sIGZpbGUgdG8gYmUgd3JpdGVhYmxlIGJ5IHRoZSB3ZWIgc2VydmVyJzsKJGxhbmdbJ3JvYm90c19ub3Rfd3JpdGVhYmxlJ10gPSAnWW91ciByb2JvdHMudHh0IGZpbGUgaXMgbm90IHdyaXRlYWJsZSc7CiRsYW5nWydub19vcGVuZ3JhcGhfYWRtaW5zJ10gPSAnWW91IGhhdmUgbm90IHNldCBhbiBPcGVuR3JhcGggYWRtaW4gYXBwbGljYXRpb24gcmVzcC4gYWRtaW4gbGlzdCc7CiRsYW5nWydub19vcGVuZ3JhcGhfdHlwZSddID0gJ1lvdSBoYXZlIG5vdCBzZXQgdGhlIGRlZmF1bHQgT3BlbkdyYXBoIHBhZ2UgdHlwZSc7CiRsYW5nWydub19vcGVuZ3JhcGhfc2l0ZW5hbWUnXSA9ICdZb3UgaGF2ZSBub3Qgc2V0IHRoZSBPcGVuR3JhcGggc2l0ZSBuYW1lJzsKJGxhbmdbJ25vX29wZW5ncmFwaF9pbWFnZSddID0gJ1lvdSBoYXZlIG5vdCBzZXQgYW4gT3BlbkdyYXBoIGRlZmF1bHQgaW1hZ2UnOwokbGFuZ1snY2htb2Rfcm9ib3RzJ10gPSAnU2V0IHlvdXIgL3JvYm90cy50eHQgZmlsZSB0byBiZSB3cml0ZWFibGUgYnkgdGhlIHdlYiBzZXJ2ZXInOwokbGFuZ1snZWRpdF9wYWdlJ10gPSAnRWRpdCAlcyc7CiRsYW5nWydlZGl0X3BhZ2VfdG9fZml4J10gPSAnQ2xpY2sgaGVyZSB0byBlZGl0IHRoZSBwYWdlIGFuZCBmaXggdGhlIHByb2JsZW0nOwokbGFuZ1sndmlzaXRfc2V0dGluZ3MnXSA9ICdDaGFuZ2Ugc2V0dGluZ3MnOwoKJGxhbmdbJ3BhZ2VfaWQnXSA9ICdJRCc7CiRsYW5nWydwYWdlX25hbWUnXSA9ICdQYWdlIG5hbWUnOwokbGFuZ1sncGFnZV9tZW51dGV4dCddID0gJ1BhZ2UgbWVudSB0ZXh0JzsKJGxhbmdbJ3ByaW9yaXR5J10gPSAnU2l0ZW1hcCBQcmlvcml0eSc7CiRsYW5nWydvZ190eXBlJ10gPSAnT3BlbkdyYXBoIHR5cGUnOwokbGFuZ1sna2V5d29yZHMnXSA9ICcjIEtleXdvcmRzJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snaW5kZXgnXSA9ICdJbmRleCc7CiRsYW5nWydmb2xsb3cnXSA9ICdGb2xsb3cnOwoKJGxhbmdbJ2NsaWNrX3RvX2FkZF9kZXNjcmlwdGlvbiddID0gJ0NsaWNrIGhlcmUgdG8gYWRkIGEgcGFnZSBkZXNjcmlwdGlvbic7CiRsYW5nWyd0b2dnbGUnXSA9ICd0b2dnbGUnOwokbGFuZ1sncmVzZXQnXSA9ICdyZXNldCc7CiRsYW5nWydyZXNldF90b19kZWZhdWx0J10gPSAnUmVzZXQgdGhpcyB0byB0aGUgZGVmYXVsdCB2YWx1ZSc7CiRsYW5nWydlZGl0X3ZhbHVlJ10gPSAnW0VkaXRdJzsKJGxhbmdbJ2FkbWluX3ZpZXcnXSA9ICdRdWljayB1bmZvcm1hdHRlZCB2aWV3IG9mIHlvdXIgbWFpbiBjb250ZW50IGJsb2NrJzsKJGxhbmdbJ2VkaXRfcGFnZSddID0gJ1tFZGl0IFBhZ2VdJzsKJGxhbmdbJ3ZpZXdfcGFnZSddID0gJ1tWaWV3IGluIEJyb3dzZXJdJzsKJGxhbmdbJ2NvbXBpbGVfdWR0cyddID0gJ1VzZSBTbWFydHkgdG8gY29tcGlsZSBVRFRzIGluIHRoZSBjb250ZW50IHByZXZpZXcgb24gdGhlIEtleXdvcmQgRWRpdCBzY3JlZW4nOwokbGFuZ1snY29tcGlsZV91ZHRzX2hlbHAnXSA9ICcoVW5jaGVjayB0aGlzIG9wdGlvbiBpZiBpdCBjYXVzZXMgcHJvYmxlbXMuIFNtYXJ0eSB0YWdzIGluIHRoZSBwcmV2aWV3IHdpbGwgdGhlbiBhcHBlYXIgYXMgbm9ybWFsIHRleHQuKSc7CgokbGFuZ1snaGVscF9vcGVuZ3JhcGgnXSA9ICdMb29rIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXJzLmZhY2Vib29rLmNvbS9kb2NzL29wZW5ncmFwaCN0eXBlcyIgdGFnZXQ9Il9ibGFuayI+aGVyZTwvYT4gZm9yIGEgbGlzdCBvZiBhbGxvd2VkIHZhbHVlcyc7CiRsYW5nWydlbnRlcl9uZXdfb2d0eXBlJ10gPSAnRW50ZXIgdGhlIG5ldyB2YWx1ZSBmb3IgdGhpcyBwYWdlXCdzIE9wZW5HcmFwaCB0eXBlJzsKJGxhbmdbJ2hlbHBfbmV3X29ndHlwZSddID0gJ0xlYXZlIGJsYW5rIHRvIHJldmVydCB0byB0aGUgZGVmYXVsdCBzZXR0aW5nJzsKCiRsYW5nWydlbnRlcl9uZXdfa2V5d29yZHMnXSA9ICdFbnRlciB0aGUgbmV3IGtleXdvcmRzIGZvciB0aGlzIHBhZ2UnOwokbGFuZ1snaGVscF9uZXdfa2V5d29yZHMnXSA9ICdXaGl0ZXNwYWNlIHNlcGFyYXRlZCBsaXN0IG9mIGtleXdvcmRzLiBMZWF2ZSBibGFuayB0byByZXZlcnQgdG8gYXV0byBnZW5lcmF0ZWQga2V5d29yZHMnOwokbGFuZ1snbWV0YWRlc2NyaXB0aW9uX2NvbnRlbnQnXSA9ICdNZXRhIERlc2NyaXB0aW9uIFRhZyBDb250ZW50JzsKJGxhbmdbJ25vX21ldGFkZXNjcmlwdGlvbiddID0gJzxlbT48c3Ryb25nPk5PIE1FVEEgREVTQ1JJUFRJT04gU0VUIEZPUiBUSElTIFBBR0UhPC9zdHJvbmc+PC9lbT4nOwoKJGxhbmdbJ2dyb3VwdGl0bGVfb3BlbmdyYXBoJ10gPSAnV2UgaGF2ZSBkZXRlY3RlZCAlcyBPcGVuR3JhcGggcmVsYXRlZCBwcm9ibGVtKHMpJzsKJGxhbmdbJ2dyb3VwdGl0bGVfc3lzdGVtJ10gPSAnV2UgaGF2ZSBkZXRlY3RlZCAlcyBwcm9ibGVtKHMpIHdpdGggeW91ciBzeXN0ZW0gY29uZmlndXJhdGlvbic7CiRsYW5nWydncm91cHRpdGxlX3BhZ2VzJ10gPSAnV2UgaGF2ZSBkZXRlY3RlZCAlcyBwcm9ibGVtKHMpIG9uIHlvdXIgY29udGVudCBwYWdlcyc7CiRsYW5nWydncm91cHRpdGxlX3NldHRpbmdzJ10gPSAnV2UgaGF2ZSBkZXRlY3RlZCAlcyBwcm9ibGVtKHMpIHdpdGggeW91ciBTRU8gU2V0dGluZ3MnOwokbGFuZ1snZ3JvdXB0aXRsZV9kZXNjcmlwdGlvbnMnXSA9ICdXZSBoYXZlIGRldGVjdGVkICVzIHByb2JsZW0ocykgd2l0aCB5b3VyIHBhZ2UgZGVzY3JpcHRpb25zJzsKJGxhbmdbJ2dyb3VwdGl0bGVfdGl0bGVzJ10gPSAnV2UgaGF2ZSBkZXRlY3RlZCAlcyBwcm9ibGVtKHMpIHdpdGggeW91ciBwYWdlIHRpdGxlcyc7CgokbGFuZ1sndmlld19hbGwnXSA9ICdWaWV3IGFsbCc7CgokbGFuZ1sndGl0bGVfbWV0YXNldHRpbmdzJ10gPSAnUGFnZSB0aXRsZSAmYW1wOyBNZXRhIGluZm9ybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3NpdGVtYXBzZXR0aW5ncyddID0gJ1NpdGVtYXAgJmFtcDsgQ3Jhd2xlciBzZXR0aW5ncyc7CiRsYW5nWyd0aXRsZV9rZXl3b3Jkc2V0dGluZ3MnXSA9ICdLZXl3b3JkIGdlbmVyYXRvciBzZXR0aW5ncyc7CgokbGFuZ1snZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBwYWdlIGRlc2NyaXB0aW9uIHdoZXJlIG5vbmUgaXMgcHJvdmlkZWQnOwokbGFuZ1snZGVzY3JpcHRpb25fYXV0b190aXRsZSddID0gJ1RleHQgZm9yIGF1dG8tZ2VuZXJhdGVkIGRlc2NyaXB0aW9ucyc7CiRsYW5nWydkZXNjcmlwdGlvbl9hdXRvX2hlbHAnXSA9ICcoWW91IDxiPm11c3Q8L2I+IGluY2x1ZGUgdGhlIHRhZyB7a2V5d29yZHN9IGhlcmUpJzsKCiRsYW5nWydzZXRfdXBfYXV0b19kZXNjcmlwdGlvbiddID0gJ1NldCB1cCB0aGUgZGVzY3JpcHRpb24gYXV0by1nZW5lcmF0b3IgYW5kIGVuc3VyZSB0aGUgdGV4dCBjb250YWlucyB0aGUgdGFnIHtrZXl3b3Jkc30nOwokbGFuZ1snYXV0b19nZW5lcmF0ZWQnXSA9ICdBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCc7CiRsYW5nWydhbmQnXSA9ICdhbmQnOwoKJGxhbmdbJ3RpdGxlX2tleXdvcmRfd2VpZ2h0J10gPSAnS2V5d29yZCB3ZWlnaHQgc2V0dGluZ3MnOwokbGFuZ1sna2V5d29yZF9taW5sZW5ndGhfdGl0bGUnXSA9ICdNaW5pbXVtIGtleXdvcmQgbGVuZ3RoJzsKJGxhbmdbJ2tleXdvcmRfbWlubGVuZ3RoX2hlbHAnXSA9ICcoVGhlIG1pbmltdW0gbGVuZ3RoIG9mIGEgd29yZCB0byBiZSBjb25zaWRlcmVkIGFzIGEga2V5d29yZCknOwokbGFuZ1sna2V5d29yZF90aXRsZV93ZWlnaHRfdGl0bGUnXSA9ICdXZWlnaHQgb2Ygd29yZHMgaW4gdGhlIHBhZ2UgdGl0bGUnOwokbGFuZ1sna2V5d29yZF90aXRsZV93ZWlnaHRfaGVscCddID0gJyhUaGUgd2VpZ2h0IG9mIHdvcmRzIGluIHRoZSBwYWdlIHRpdGxlLiBUaGUgaGlnaGVyIGEgd29yZFwncyB3ZWlnaHQsIHRoZSBtb3JlIGxpa2VseSBpdCBpcyB0byBiZWNvbWUgYSBrZXl3b3JkKSc7CiRsYW5nWydrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodF90aXRsZSddID0gJ1dlaWdodCBvZiB3b3JkcyBpbiB0aGUgcGFnZSBkZXNjcmlwdGlvbic7CiRsYW5nWydrZXl3b3JkX2Rlc2NyaXB0aW9uX3dlaWdodF9oZWxwJ10gPSAnKFRoZSB3ZWlnaHQgb2Ygd29yZHMgaW4gdGhlIHBhZ2UgZGVzY3JpcHRpb24uIFRoZSBoaWdoZXIgYSB3b3JkXCdzIHdlaWdodCwgdGhlIG1vcmUgbGlrZWx5IGl0IGlzIHRvIGJlY29tZSBhIGtleXdvcmQpJzsKJGxhbmdbJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X3RpdGxlJ10gPSAnV2VpZ2h0IG9mIHdvcmRzIGluIGNvbnRlbnQgaGVhZGxpbmVzJzsKJGxhbmdbJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0X2hlbHAnXSA9ICcoVGhlIHdlaWdodCBvZiB3b3JkcyBiZXR3ZWVuICZsdDtoMSZndDsgdG8gJmx0O2g2Jmd0OyB0YWdzLiBUaGUgaGlnaGVyIGEgd29yZFwncyB3ZWlnaHQsIHRoZSBtb3JlIGxpa2VseSBpdCBpcyB0byBiZWNvbWUgYSBrZXl3b3JkKSc7CiRsYW5nWydrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0X3RpdGxlJ10gPSAnV2VpZ2h0IG9mIHdvcmRzIGluIHBsYWluIGNvbnRlbnQnOwokbGFuZ1sna2V5d29yZF9jb250ZW50X3dlaWdodF9oZWxwJ10gPSAnKFRoZSB3ZWlnaHQgb2Ygd29yZHMgaW5zaWRlIHRoZSBwbGFpbiBjb250ZW50LiBUaGUgaGlnaGVyIGEgd29yZFwncyB3ZWlnaHQsIHRoZSBtb3JlIGxpa2VseSBpdCBpcyB0byBiZWNvbWUgYSBrZXl3b3JkKSc7CgokbGFuZ1sna2V5d29yZF9taW5pbXVtX3dlaWdodF90aXRsZSddID0gJ01pbmltdW0gdG90YWwgd2VpZ2h0IG9mIGEga2V5d29yZCc7CiRsYW5nWydrZXl3b3JkX21pbmltdW1fd2VpZ2h0X2hlbHAnXSA9ICcoVGhlIG1pbmltdW0gdG90YWwgd2VpZ2h0IG9mIGEgd29yZCB0byBiZWNvbWUgYSBrZXl3b3JkLiBTaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRoZSBoaWdoZXN0IHdlaWdodCBmcm9tIGFib3ZlLiBUaGUgc21hbGxlciB0aGUgbnVtYmVyLCB0aGUgbW9yZSBrZXl3b3JkcyB5b3UgZ2V0KSc7CgokbGFuZ1snaGVscF9rZXl3b3JkX2dlbmVyYXRvciddID0gJ1RoZSBzZXR0aW5ncyB5b3UgY2hhbmdlIG9uIHRoaXMgcGFnZSB3aWxsIG5vdCBhZmZlY3QgYW55IGtleXdvcmRzIHlvdSBlbnRlciBtYW51YWxseS4gRmVlbCBmcmVlIHRvIHBsYXkgd2l0aCBhbGwgdmFsdWVzIHVudGlsIHlvdSBnZXQgdGhlIGJlc3QgcmVzdWx0cyBmb3IgeW91ciBwYWdlLic7CgokbGFuZ1sndGl0bGVfa2V5d29yZF9leGNsdWRlJ10gPSAnS2V5d29yZCBleGNsdXNpb24gbGlzdCc7CiRsYW5nWydrZXl3b3JkX2V4Y2x1ZGVfdGl0bGUnXSA9ICdXb3JkcyB0byBuZXZlciBjb25zaWRlciBhcyBrZXl3b3Jkcyc7CiRsYW5nWydrZXl3b3JkX2V4Y2x1ZGVfaGVscCddID0gJyhQcm92aWRlIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2Ygd29yZHMgdGhhdCBzaG91bGQgbmV2ZXIgYXBwZWFyIGluIGtleXdvcmQgbGlzdHMpJzsKCiRsYW5nWydpbmNyZWFzZV9wcmlvcml0eSddID0gJ2J5IDEwJSc7CiRsYW5nWydkZWNyZWFzZV9wcmlvcml0eSddID0gJ2J5IDEwJSc7CgokbGFuZ1sndGl0bGVfcmVnZW5lcmF0ZV9zaXRlbWFwJ10gPSAiUmVnZW5lcmF0ZSBzaXRlbWFwIGFuZCByb2JvdHMudHh0IjsKJGxhbmdbJ2J1dHRvbl9yZWdlbmVyYXRlX3NpdGVtYXAnXSA9ICJSZWdlbmVyYXRlIHNpdGVtYXAgYW5kIHJvYm90cy50eHQgbm93IjsKJGxhbmdbJ3RleHRfcmVnZW5lcmF0ZV9zaXRlbWFwJ10gPSAiSXQgY2FuIGJlIG5lY2Vzc2FyeSB0byByZWdlbmVyYXRlIHRoZSBzaXRlbWFwIGFuZCByb2JvdHMudHh0IGZpbGUgYWZ0ZXIgZXh0ZW5zaXZlIGNoYW5nZXMgdG8gdGhlIHBhZ2Ugc3RydWN0dXJlIjsKJGxhbmdbJ3NpdGVtYXBfcmVnZW5lcmF0ZWQnXSA9ICJCb3RoIHRoZSBzaXRlbWFwIGFuZCB0aGUgcm9ib3RzLnR4dCBmaWxlcyBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlZ2VuZXJhdGVkLiI7CgokbGFuZ1snaW5zdGFsbF9kYXRhYmFzZV9lcnJvciddID0gIkFuIGVycm9yIGhhcyBvY2N1cmVkIGR1cmluZyBpbnN0YWxsYXRpb246IFRoZSBkYXRhYmFzZSB0YWJsZSBjb3VsZCBub3QgYmUgY3JlYXRlZC4iOwokbGFuZ1snbm9fdXJsX2ZvcGVuJ10gPSAiTm90IHBvc3NpYmxlIGFzIGFsbG93X3VybF9mb3BlbiBoYXMgbm90IGJlZW4gc2V0IHRvICZxdW90O29uJnF1b3Q7IGluIHlvdXIgcGhwIGNvbmZpZ3VyYXRpb24uIjsKJGxhbmdbJ3RpdGxlX2FkZGl0aW9uYWxfbWV0YV90YWdzJ10gPSAiQWRkaXRpb25hbCBNZXRhIHRhZ3MiOwokbGFuZ1snYWRkaXRpb25hbF9tZXRhX3RhZ3NfdGl0bGUnXSA9ICJBZGRpdGlvbmFsIE1ldGEgdGFncyB0byBiZSBpbnNlcnRlZCI7CiRsYW5nWydhZGRpdGlvbmFsX21ldGFfdGFnc19oZWxwJ10gPSAiU3BlY2lmeSBhZGRpdGlvbmFsIE1ldGEgdGFncyBoZXJlIHRvIGJlIGluc2VydGVkIGludG8gdGhlIHBhZ2UgaGVhZGVyLiBZb3UgY2FuIHVzZSBhbGwgc21hcnR5IHZhcmlhYmxlcyBhbmQgVURUcyBoZXJlLiI7CgokbGFuZ1snaGVscF9zaG93YmFzZSddID0gIlNldCB0aGlzIHBhcmFtZXRlciB0byA8Y29kZT5mYWxzZTwvY29kZT4gdG8gc3VwcHJlc3MgdGhlIG91dHB1dCBvZiB0aGUgYmFzZSBocmVmIHRhZy4iOwoKJGxhbmdbJ2NoYW5nZWxvZyddID0gPDw8RU9UCjx1bD4KPGxpPlZlcnNpb24gMS4wIC0gMjUgSmFudWFyeSAyMDEyLiBJbml0aWFsIHJlbGVhc2UuIFRoaXMgaXMgYSBmb3JrIG9mIHRoZSBTRU9Ub29scyBtb2R1bGUgd2l0aCBDTVNNUyAxLjEwKyBjb21wYXRpYmlsaXR5LiBDaGFuZ2VzIGluY2x1ZGU6Cgk8dWw+CgkJPGxpPlNldCBwcmVmZXJlbmNlcyBvbiBpbnN0YWxsPC9saT4KCQk8bGk+UmVtb3ZlIHByZWZlcmVuY2VzIG9uIHVuaW5zdGFsbDwvbGk+CgkJPGxpPlJlcGxhY2UgYWxsIHJlZmVyZW5jZSB0byBIaWVyYXJjaHlNYW5hZ2VyIG9iamVjdHMgd2l0aCBDb250ZW50T3BlcmF0aW9ucyBvYmplY3RzPC9saT4KCQk8bGk+R2VuZXJhdGUgYWxsIGtleXdvcmRzLCBrZXl3b3JkIHN1Z2dlc3Rpb25zLCBkZXNjcmlwdGlvbnMgYW5kIGRlZmF1bHQgZGVzY3JpcHRpb25zPC9saT4KCQk8bGk+R2VuZXJhdGUgc2l0ZW1hcC54bWwgYW5kIHJvYm90cy50eHQgZmlsZXM8L2xpPgoJCTxsaT5SZXRhaW4gY2hlY2tib3ggcHJlZmVyZW5jZSBzZXR0aW5ncyBhZnRlciBzdWJtaXQ8L2xpPgoJCTxsaT5PbiBmcm9udGVuZCBwYWdlIGxvYWQsIGVuc3VyZSB0aGF0IGEgY29ycmVzcG9uZGluZyByZWNvcmQgZXhpc3RzIGluIHRoZSBzZW90b29sczIgZGF0YWJhc2UgdGFibGU8L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMS4wLjEgLSAyNSBKYW51YXJ5IDIwMTIuIE1pbm9yIGJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMiAtIDEgRmVicnVhcnkgMjAxMi4gQnVnIGZpeDwvbGk+CjxsaT5WZXJzaW9uIDEuMC4zIC0gMSBGZWJydWFyeSAyMDEyLiBCdWcgZml4PC9saT4KPGxpPlZlcnNpb24gMS4wLjQgLSAxIEZlYnJ1YXJ5IDIwMTIuIENvcnJlY3Rpb248L2xpPgo8bGk+VmVyc2lvbiAxLjAuNSAtIDYgRmVicnVhcnkgMjAxMi4gQWRkIGV2ZW50IGhhbmRsZXJzIHRvIHB1c2ggc2l0ZW1hcCB0byBHb29nbGUgd2VibWFzdGVyczwvbGk+CjxsaT5WZXJzaW9uIDEuMC42IC0gNSBNYXJjaCAyMDEyLiBJbXByb3ZlZCBoYW5kbGluZyBvZiBzc2wgdXJscyBhbmQgYnVnIGZpeCB3aGVuIHRoZXJlIGFyZSBubyBzaG9ydCBtZXRhIGRlc2NyaXB0aW9uczwvbGk+CjxsaT5WZXJzaW9uIDEuMC43IC0gOSBBcHJpbCAyMDEyLiBCdWcgZml4PC9saT4KPGxpPlZlcnNpb24gMS4wLjggLSA5IEFwcmlsIDIwMTIuIEJ1ZyBmaXg8L2xpPgo8bGk+VmVyc2lvbiAxLjAuOSAtIDExIEFwcmlsIDIwMTIuCiAgICA8dWw+CiAgICAgICAgPGxpPk1vcmUgaW1wcm92ZW1lbnRzIHRvIHNzbCBoYW5kbGluZyBlc3BlY2lhbGx5IGluIHRoZSBzaXRlbWFwLnhtbCAodGhhbmtzIGFuZHJpZXNpbmZvc2Vydik8L2xpPgogICAgICAgIDxsaT5BYmlsaXR5IHRvIHNob3cgYW55IEFjdGl2ZSBwYWdlLCBub3QganVzdCBwYWdlcyB3aXRoIEFjdGl2ZSBhbmQgU2hvdyBJbiBNZW51IGluIHRoZSBzaXRlbWFwLnhtbCAodGhhbmtzIE1hdHQpPC9saT4KICAgIDwvdWw+CjxsaT5WZXJzaW9uIDEuMC4xMCAtIDI0IE1heSAyMDEyIC0gbW9zdGx5IGltcHJvdmVtZW50cyBpbiB0aGUgc2l0ZW1hcCBhcmVhLCBpZToKICAgIDx1bD4KICAgICAgICA8bGk+QWxsb3dzIHNpdGVtYXAgaW5kZXhpbmcgb2YgaW50ZXJuYWwgYW5kIGV4dGVybmFsIFVSTCBsaW5rczwvbGk+CiAgICAgICAgPGxpPkZpbHRlcnMgb3V0IEVycm9yIFBhZ2UgZnJvbSBzaXRlbWFwLnhtbDwvbGk+CiAgICA8L3VsPgo8bGk+VmVyc2lvbiAxLjAuMTEgLSAxNCBBdWd1c3QgMjAxMi4gQ01TTVMgMS4xMSBjb21wYXRpYmlsaXR5ICh0aGFua3MgbGVlcm95YnJ1biBhbmQgcG9zdGlmZm0pPC9saT4KPGxpPlZlcnNpb24gMS4xIC0gOCBTZXB0ZW1iZXIgMjAxMi4gQmV0dGVyIGZ1dHVyZS1wcm9vZmluZyBmb3IgQ01TTVMgMS4xMSBjb21wYXRpYmlsaXR5IGFuZCBhIGZldyBtb3JlIGZlYXR1cmVzCgk8dWw+CgkJPGxpPk9wdGlvbiB0byBpbmNsdWRlIGZvbGxvdy9ub2ZvbGxvdyBhcyB3ZWxsIGFzIGluZGV4L25vaW5kZXggdG8gbWV0YSByb2JvdHMgdGFnPC9saT4KCQk8bGk+SnF1ZXJ5IGFqYXggc3VwcG9ydCBmb3IgUHJpb3JpdHksIEluZGV4IGFuZCBGb2xsb3cgdG9nZ2xpbmcuPC9saT4KCQk8bGk+UHJvY2VzcyBzbWFydHkgdGFncyBpbiB0aGUgbWV0YSBkZXNjcmlwdGlvbiBhbmQgbWV0YSBjb3B5cmlnaHQgZmllbGRzPC9saT4KCQk8bGk+SW5jbHVkZSBtZXRhIHZpZXdwb3J0IHRhZyBieSBkZWZhdWx0IHRvIHRoZSBhZGRpdGlvbmFsIG1ldGEgdGFnczwvbGk+CgkJPGxpPktleXdvcmQgZWRpdCBzY3JlZW4gbm93IHNob3dzIGEgcHJldmlldyBvZiB0aGUgcGFnZSBjb250ZW50IGZvciBxdWljayByZWZlcmVuY2UsIGFzIHdlbGwgYXMgbGlua3MgdG8gZWRpdCBvciB2aWV3IHRoZSBmcm9udGVuZCB2ZXJzaW9uIG9mIHRoZSBwYWdlLjwvbGk+CgkJPGxpPlJlc3RydWN0dXJlZCBkZWZhdWx0YWRtaW4gdGFiIGZpbGVzIHRvIGJlIGEgbGl0dGxlIG1vcmUgbWFuYWdlYWJsZS48L2xpPgoJCTxsaT5PdXRwdXRzIG9ubHkgSFRNTDUgcmVnaXN0ZXJlZCBtZXRhIHRhZ3Mgd2hlbiBIVE1MNSBpcyBzcGVjaWZpZWQuIChUaGFua3MgdW5pcXUzKTwvbGk+CgkJPGxpPlVzZXMgY2Fub25pY2FsIFVSTCB3aGVuIGF2YWlsYWJsZS4gKFRoYW5rcyBpbmZvYW5kcmllcyk8L2xpPgoJPC91bD4KPC9saT4KPC91bD4KRU9UOwoKJGxhbmdbJ2hlbHAnXSA9ICc8c3R5bGU+ZGl2LnNlbzIgcCwgZGl2LnNlbzIgbGksIGRpdi5zZW8yIGRpdiB7bWFyZ2luLWJvdHRvbTogMS4yZW07fWxpe2xpc3Qtc3R5bGUtdHlwZTpzcXVhcmV9PC9zdHlsZT4KPGRpdiBjbGFzcz0ic2VvMiI+CjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5TRU9Ub29sczIgaGVscHMgeW91IHRvIGdldCB5b3VyIFNFTyAoU2VhcmNoIEVuZ2luZSBPcHRpbWl6YXRpb24pIHJpZ2h0LiBUaGUgbW9kdWxlIGFkZHMgc2V2ZXJhbCBTRU8gY2FwYWJpbGl0aWVzIHRvIHlvdXIgQ01TTVMgaW5zdGFsbGF0aW9uIGFuZCBhbGVydHMgeW91IGlmIHlvdSBtaXNzZWQgb3V0IG9uIHNvbWV0aGluZyBTRU8gcmVsYXRlZC4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIGFyZSBzdXBwb3J0ZWQ6PC9wPgo8dWw+CjxsaT4gZ2VuZXJhdGVzIE1ldGEgdGFncyBpbiBzdGFuZGFyZCBodG1sLCBEdWJsaW4gQ29yZSBhbmQgT3BlbkdyYXBoIGZvcm1hdHM8L2xpPgo8bGk+IGF1dG9tYXRpY2FsbHkgZXh0cmFjdHMga2V5d29yZHMgZnJvbSB5b3VyIHBhZ2VzIGFuZCBhZGRzIHRoZW0gdG8gdGhlIG1ldGEgdGFncyBhbmQgcGFnZSB0aXRsZTwvbGk+CjxsaT4gbGV0cyB5b3UgZGV0ZXJtaW5lIHdpdGggYSBzaW5nbGUgY2xpY2sgd2hldGhlciBjZXJ0YWluIHBhZ2VzIHNob3VsZCBiZSBpbmRleGVkIGJ5IHNlYXJjaCBlbmdpbmVzIG9yIG5vdDwvbGk+CjxsaT4gZ2VuZXJhdGVzIGEgc2l0ZW1hcC54bWwgZmlsZSB3aXRoIHlvdXIgcGFnZXMgd2hpbGUgZ2l2aW5nIHlvdSBmdWxsIGNvbnRyb2wgb3ZlciB0aGUgcHJpb3JpdGllcyBvZiB5b3VyIHBhZ2VzPC9saT4KPGxpPiBnZW5lcmF0ZXMgYSByb2JvdHMudHh0IGZpbGUgZXhwbGljaXRseSBkaXNhbGxvd2luZyBhY2Nlc3MgdG8gcGFnZXMgeW91IGRvblwndCB3YW50IHRvIGJlIGluZGV4ZWQ8L2xpPgo8bGk+IGFsZXJ0cyB5b3Ugd2hlbiB0aGVyZSBhcmUgc2V2ZXJhbCBwYWdlcyBmZWF0dXJpbmcgdGhlIHNhbWUgcGFnZSB0aXRsZXMgYW5kIGRlc2NyaXB0aW9uczwvbGk+CjxsaT4gYWxlcnRzIHlvdSB3aGVuIHZlcnkgc2hvcnQgcGFnZSBtZXRhIGRlc2NyaXB0aW9ucyBhcmUgZGV0ZWN0ZWQ8L2xpPgo8bGk+IGF1dG9tYXRpY2FsbHkgc3VibWl0cyB5b3VyIHNpdGVtYXAgZmlsZSB0byBHb29nbGUgd2hlbiB5b3UgY2hhbmdlIHlvdXIgY29udGVudDwvbGk+CjwvdWw+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5GaXJzdCwgb3BlbiBhbGwgdGVtcGxhdGVzIHdoZXJlIHlvdSB3YW50IGRvIHVzZSBTRU9Ub29sczIuIFJlbW92ZSB0aGUgY29tcGxldGUgJmx0O3RpdGxlJmd0OyB0YWcgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgbW9kdWxlIHRhZy4gWW91IG1heSBhbHNvIHdpc2ggdG8gcmVtb3ZlIHRoZSB7bWV0YWRhdGF9IHRhZy4gU2hvdWxkIHlvdSBlbGVjdCB0byBsZWF2ZSBpdCB0aGVyZSwgZW5zdXJlIHRoYXQgbm8gbWV0YSB0YWdzIGFyZSBkdXBsaWNhdGVkLiBSZW1vdmUgYW55IGR1cGxpY2F0ZXMgZnJvbSBTaXRlIEFkbWluIC0gR2xvYmFsIFNldHRpbmdzIC0gR2xvYmFsIE1ldGFkYXRhLiA8L3A+CjxwcmU+CntTRU9Ub29sczJ9CjwvcHJlPjxiciAvPgoKPHA+SWYgeW91IGxlZnQgdGhlIHttZXRhZGF0YX0gdGFnIGluIHRoZSB0ZW1wbGF0ZSwgeW91IGNhbiBhbHRlcm5hdGl2ZWx5IHBsYWNlIHRoZSB7U0VPVG9vbHMyfSB0YWcgaW4gdGhlIEdsb2JhbCBNZXRhIHRleHRhcmVhLjwvcD4KPHA+PGVtPlRpcDwvZW0+OiBJZiB5b3VcJ3ZlIHJlbW92ZWQgdGhlIHttZXRhZGF0YX0gdGFnLCByZW1lbWJlciB0byBhZGQgdGhlIDxlbT5zaG93YmFzZSA9IFwndHJ1ZVwnPC9lbT4gcGFyYW1ldGVyIHRvIG91dHB1dCB0aGUgJmx0O2Jhc2UmZ3Q7IHRhZy48L3A+CjxwPk5leHQsIGF0IHRoZSBib3R0b20gb2YgeW91ciB0ZW1wbGF0ZSAoYWZ0ZXIgdGhlIGNsb3NpbmcgJmx0Oy9ib2R5Jmd0OyB0YWcpLCBpbnNlcnQgdGhlIGZvbGxvd2luZyBjb2RlOjwvcD4KPHByZT4Ke2NhcHR1cmUgYXNzaWduPSJtZXRhZGVzY3JpcHRpb24ifXtjb250ZW50IGJsb2NrPSJtZXRhZGVzY3JpcHRpb24iIGxhYmVsPSJQYWdlIERlc2NyaXB0aW9uIiBvbmVsaW5lPSJ0cnVlIn17L2NhcHR1cmV9CjwvcHJlPjxiciAvPgoKPHA+VGhpcyBpcyB3aGVyZSB5b3VcJ2xsIGVudGVyIGEgc2hvcnQgcGFnZSBkZXNjcmlwdGlvbiAob25lIG9yIHR3byBzZW50ZW5jZXMpIHRoYXQgd2lsbCBhcHBlYXIgaW4gdGhlIHNlYXJjaCBlbmdpbmVcJ3MgcmVzdWx0cyBhbmQgaWYsIGZvciBleGFtcGxlLCBzb21lb25lIHNoYXJlcyBhIGxpbmsgdG8geW91ciBwYWdlIG9uIGZhY2Vib29rLjwvcD4KPHA+U2VlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZy92aWV3dG9waWMucGhwP2Y9NCZ0PTYxNTE2JmhpbGl0PXNlb3Rvb2xzMiI+U0VPVG9vbHMyIHdpdGggZGV0YWlsIHBhZ2VzPC9hPiBhbmQgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnL3ZpZXd0b3BpYy5waHA/Zj00JnQ9NjE1MTUmaGlsaXQ9c2VvdG9vbHMyIj5TRU9Ub29sczIgd2l0aCBncm91cHMgb2Yga2V5d29yZHM8L2E+IGZvciBzb21lIG1vcmUgY3JlYXRpdmUgd2F5cyBvZiB1c2luZyB0aGUgbWV0YWRlc2NyaXB0aW9uIGFuZCBrZXl3b3JkIHZhcmlhYmxlcy48L3A+CjxwPk5vdywgdmlzaXQgdGhlIGFkbWluIHRhYnMgZm9yIDxlbT5QYWdlIFRpdGxlICYgTWV0YSBJbmZvcm1hdGlvbjwvZW0+LCB0aGUgPGVtPlNpdGVtYXAgJiBDcmF3bGVyIFNldHRpbmdzPC9lbT4gYW5kIHRoZSA8ZW0+S2V5d29yZCBHZW5lcmF0b3IgU2V0dGluZ3M8L2VtPiBhbmQgZmlsbCBpbiBhbGwgcmVxdWlyZWQgaW5mb3JtYXRpb24gZm9yIHlvdXIgc2l0ZS4gVW5kZXIgIk5hbWUgb2YgcGFnZSBkZXNjcmlwdGlvbiBjb250ZW50IGJsb2NrIiB5b3UgbmVlZCB0byBlbnRlciB0aGUgbmFtZSBvZiB0aGUgY29udGVudCBibG9jayB5b3UganVzdCBhZGRlZCB0byB5b3VyIHRlbXBsYXRlcyAoIm1ldGFkZXNjcmlwdGlvbiIgaW4gb3VyIGV4YW1wbGUpLjwvcD4KPHA+VGhlIHRhYiAiU0VPIEFsZXJ0cyIgd2lsbCBhbGVydCB5b3UgaWYgaXQgZGV0ZWN0cyBhbnl0aGluZyB0aGF0IGlzIHJlcXVpcmVkIGJ1dCBub3QgYWN0aXZhdGVkIG9yIGZpbGxlZCBpbi4gWW91IHNob3VsZCBhbHNvIGNvbnNpZGVyIHNpZ25pbmcgdXAgeW91cgpzaXRlIHdpdGggR29vZ2xlIFdlYm1hc3RlciB0b29scy4gVGhlcmUsIHNlbGVjdCAiTWV0YSB0YWcgdmFsaWRhdGlvbiIgYW5kIHBhc3RlIHRoZSB2ZXJpZmljYXRpb24gY29kZSAocXVpdGUgYSBsb25nIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGFuZCBudW1iZXJzKSBpbnRvIHRoZSBib3ggIlZlcmlmaWNhdGlvbiBDb2RlIiBpbiAiU0VPIFNldHRpbmdzIiB0byBhdXRvbWF0aWNhbGx5IHZlcmlmeSB0aGF0IHlvdSBhcmUgcmVhbGx5CnRoZSBvd25lciBvZiB5b3VyIHBhZ2UgKG5vIG5lZWQgdG8gcGFzdGUgdGhlIEdvb2dsZSBNZXRhLWNvZGUgaW50byB5b3VyIHRlbXBsYXRlKS48L3A+CjxwPkFzIHNvb24gYXMgZXZlcnl0aGluZyBpcyBzZXQgdXAsIGxvb2sgYXQgdGhlICJTRU8gQWxlcnRzIiB0YWIgYW5kIGZpeCBhbGwgcHJvYmxlbXMgZGV0ZWN0ZWQgaGVyZS4gVGFrZSBjYXJlIHRvIGluc2VydCBhICh1bmlxdWUpIHBhZ2UgZGVzY3JpcHRpb24gb24gZXZlcnkgcGFnZSB5b3UgZWRpdCBpbiB0aGUgZmllbGQgbGFiZWxsZWQgIlBhZ2UgRGVzY3JpcHRpb24iIGF0IHRoZSBib3R0b20gb2YgeW91ciAiRWRpdCBQYWdlIiBmb3JtLjwvcD4KPHA+R28gdG8gdGhlIDxlbT5QYWdlIHNldHRpbmdzPC9lbT4gdGFiIHdoZXJlIHlvdVwnbGwgZmluZCBhIGxpc3Qgb2YgYWxsIHBhZ2VzIHlvdSBoYXZlIGluIHlvdXIgc3lzdGVtLiBIZXJlLCB5b3UgY2FuOjwvcD4KPHVsPgo8bGk+U2V0IHlvdXIgb3duIGtleXdvcmRzIChpbnN0ZWFkIG9mIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBvbmVzKSBvciBPcGVuR3JhcGggdHlwZSBmb3IgY2VydGFpbiBwYWdlczwvbGk+CjxsaT5BZGp1c3QgdGhlIHNpdGVtYXAgcHJpb3JpdHkgKHdoaWNoIGlzIGF1dG8tY2FsY3VsYXRlZCBieSBkZWZhdWx0KSBvZiBhIHBhZ2UgdG8gaW5kaWNhdGUgdGhhdCBpdCBzaG91bGQKYmUgY29uc2lkZXJlZCBtb3JlIGltcG9ydGFudCBmb3Igc2VhcmNoIGVuZ2luZSBtYXRjaGVzIG9uIHlvdXIgcGFnZS48L2xpPgo8bGk+UHJldmVudCBhY3RpdmUgcGFnZXMgZnJvbSBiZWluZyBsaXN0ZWQgaW4gdGhlIFNpdGUgTWFwPC9saT4KPGxpPlNwZWNpZnkgd2hldGhlciByb2JvdHMgc2hvdWxkIGluZGV4IG9yIGZvbGxvdyB0aGUgcGFnZSBhbmQgbGlua3M8L2xpPgo8L3VsPgo8cD5TRU9Ub29sczIgd2lsbCBhbHNvIGF1dG9tYXRpY2FsbHkgaW5zZXJ0IGEgbGluayB0byB0aGUgaW1hZ2UgdG8gYmUgdXNlZCBhcyB0aGUgbWFpbiBpbWFnZSBvZiB5b3VyIHBhZ2UgaWYgeW91IHNlbGVjdCBhbiAiSW1hZ2UiIGZvciB0aGUgcGFnZSBmcm9tIHdpdGhpbiB5b3VyIHBhZ2VcJ3MgIk9wdGlvbnMiIHRhYiAodGhpcyBpcyBpbXBvcnRhbnQgZm9yIHBlb3BsZSBzdWJtaXR0aW5nIGEgbGluayB0byB5b3VyIHBhZ2UgZS5nLiBvbiBmYWNlYm9vaykuIEFsc28sIGlmIHlvdSBhcmUgdXNpbmcgT3BlbkdyYXBoLCB0aGUgaW1hZ2Ugc2VsZWN0ZWQgaGVyZQp3aWxsIG92ZXJyaWRlIHRoZSBkZWZhdWx0IE9wZW5HcmFwaCBpbWFnZSB5b3Ugc3BlY2lmaWVkIGZyb20gd2l0aGluICJTRU8gU2V0dGluZ3MiLiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB5b3UgbmVlZCB0byB1cGxvYWQgdGhvc2UgaW1hZ2VzIHRvIHlvdXIgL3VwbG9hZHMvaW1hZ2VzIGRpcmVjdG9yeS48L3A+CjxoMz5DYW4gSSB1c2Ugc21hcnR5IHZhcmlhYmxlcz88L2gzPgo8cD5Zb3UgY2FuIHVzZSBhbGwgc21hcnR5IHZhcmlhYmxlcyBhbmQgVURUcyB3aXRoaW4gdGhlIHNldHRpbmdzIGZpZWxkcyA8aT5QYWdlIHRpdGxlPC9pPiwgPGk+TWV0YSBwYWdlIHRpdGxlPC9pPiwgPGk+QXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZGVzY3JpcHRpb25zPC9pPiwgPGk+TWV0YSBjb3B5cmlnaHQ8L2k+LCA8aT5BZGRpdGlvbmFsIG1ldGEgdGFnczwvaT4gYW5kIHlvdXIgY3VzdG9tIHBhZ2UgZGVzY3JpcHRpb24gYmxvY2suIEVudGVyIDxjb2RlPntkZWJ1Z308L2NvZGU+IHRvIHNlZSBhIGxpc3Qgb2YgYWxsIGF2YWlsYWJsZSB2YXJpYWJsZXMuPC9wPgo8aDM+V2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgZXhwb3J0ZWQgYnkgU0VPVG9vbHMyPzwvaDM+Cjxjb2RlPnskc2VvX2tleXdvcmRzfTwvY29kZT46IEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgYWxsIGtleXdvcmRzIHNldCBmb3IgdGhlIHBhZ2UgKGluY2x1ZGluZyB0aGUgZGVmYXVsdCBrZXl3b3Jkcyk8YnIgLz4KPGNvZGU+eyR0aXRsZV9rZXl3b3Jkc308L2NvZGU+OiBBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGFsbCBrZXl3b3JkcyBzZXQgZm9yIHRoZSBwYWdlIChpbmNsdWRpbmcgdGhlIGRlZmF1bHQga2V5d29yZHMpPGJyIC8+Cjxjb2RlPnskZGVmYXVsdF9rZXl3b3Jkc308L2NvZGU+OiBBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGFsbCBkZWZhdWx0IGtleXdvcmRzPGJyIC8+Cjxjb2RlPnskcGFnZV9rZXl3b3Jkc308L2NvZGU+OiBBIHNwYWNlLXNlcGFyYXRlZCBsaXN0IG9mIGFsbCBrZXl3b3JkcyBzZXQgZm9yIHRoZSBwYWdlICh3aXRob3V0IHRoZSBkZWZhdWx0IGtleXdvcmRzKTxiciAvPgo8cD48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0IG9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAxMiwgQ2xpcCBNYWdpYyA8YSBocmVmPSJtYWlsdG86YWRtaW5AY2xpcG1hZ2ljLmNvbS5hdSI+Jmx0O2FkbWluQGNsaXBtYWdpYy5jb20uYXUmZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPgo8L2Rpdj4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.seo2_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHU21hcnRJbWFnZSAoYykgMjAxMiBieSBSb2JlcnQgQ2FtcGJlbGwgKGNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmcpCiMKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgY3JlYXRpbmcgaW1hZ2UgdGFncyBpbiBhIHNtYXJ0CiMgIHdheSB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNS0yMDEwIGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIHNlbzJfdXRpbHMKewogIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKCiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjb21waWxlX3VkdHMoJGRhdGEsICRtb2R1bGUpCiAgewogICAgJHVkdHMgPSAkbW9kdWxlLT5HZXRQcmVmZXJlbmNlKCdjb21waWxlX3VkdHMnKTsKICAgICRzbWFydHkgPSBjbXNtcygpLT5HZXRTbWFydHkoKTsKICAgICRvdXRwdXQgPSAkZGF0YTsKICAgIGlmICgkdWR0cyA9PSAxKSB7CiAgICAgICAKICAgICAgLy8gTG9hZCBVc2VyIERlZmluZWQgVGFncwogICAgICAkdXRvcHMgPSBjbXNtcygpLT5HZXRVc2VyVGFnT3BlcmF0aW9ucygpOwogICAgICAkdXNlcnRhZ3MgPSAkdXRvcHMtPkxpc3RVc2VyVGFncygpOwogICAgICAgCiAgICAgIGZvcmVhY2goICR1c2VydGFncyBhcyAkaWQgPT4gJG5hbWUgKQogICAgICB7CiAgICAgICAgJGZ1bmN0aW9uID0gJHV0b3BzLT5DcmVhdGVUYWdGdW5jdGlvbigkbmFtZSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJQbHVnaW4oJ2Z1bmN0aW9uJywkbmFtZSwkZnVuY3Rpb24sJGNhY2hpbmcpOwogICAgICB9CiAgICAgICAKICAgICAgdHJ5IHsKICAgICAgICAkb3V0cHV0ID0gJHNtYXJ0eS0+ZmV0Y2goJ3N0cmluZzonLiRkYXRhKTsKICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uICRlKSB7CiAgICAgICAgCiAgICAgIH0KCiAgICB9CiAgICByZXR1cm4gJG91dHB1dDsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgTW9kdWxlOiBTRU9Ub29sczIgLSBUdXJiby1jaGFyZ2UgeW91ciBvbi1wYWdlIFNFTwojIFZlcnNpb246IDEuMSwgQ2xpcCBNYWdpYyA8YWRtaW5AY2xpcG1hZ2ljLmNvbS5hdT4KIyBNZXRob2Q6IGluc3RhbGwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIyBUaGUgbW9kdWxlJ3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvc2tlbGV0b24vCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbnN0YWxsKCkKV2hlbiB5b3VyIG1vZHVsZSBpcyBpbnN0YWxsZWQsIHlvdSBtYXkgbmVlZCB0byBkbyBzb21lCnNldHVwLiBUeXBpY2FsIHRoaW5ncyB0aGF0IGhhcHBlbiBoZXJlIGFyZSB0aGUgY3JlYXRpb24KYW5kIHByZXBvcHVsYXRpb24gb2YgZGF0YWJhc2UgdGFibGVzLCBkYXRhYmFzZSBzZXF1ZW5jZXMsCnBlcm1pc3Npb25zLCBwcmVmZXJlbmNlcywgZXRjLgogICAKRm9yIGluZm9ybWF0aW9uIG9uIHRoZSBjcmVhdGlvbiBvZiBkYXRhYmFzZSB0YWJsZXMsCmNoZWNrIG91dCB0aGUgQURPREIgRGF0YSBEaWN0aW9uYXJ5IHBhZ2UgYXQKaHR0cDovL3BocGxlbnMuY29tL2xlbnMvYWRvZGIvZG9jcy1kYXRhZGljdC5odG0KClRoaXMgZnVuY3Rpb24gY2FuIHJldHVybiBhIHN0cmluZyBpbiBjYXNlIG9mIGFueSBlcnJvciwKYW5kIENNUyB3aWxsIG5vdCBjb25zaWRlciB0aGUgbW9kdWxlIGluc3RhbGxlZC4KU3VjY2Vzc2Z1bCBpbnN0YWxscyBzaG91bGQgcmV0dXJuIEZBTFNFIG9yIG5vdGhpbmcgYXQgYWxsLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVHlwaWNhbCBEYXRhYmFzZSBJbml0aWFsaXphdGlvbgokZGIgPWNtc21zKCktPkdldERiKCk7CgkKLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCi8vIHRhYmxlIHNjaGVtYSBkZXNjcmlwdGlvbgokZmxkcyA9ICIKCWNvbnRlbnRfaWQgSSBLRVksCglpbmRleGFibGUgSSgxKSwKCWZvbGxvdyBJKDEpLAoJa2V5d29yZHMgQygyNTUpLAoJcHJpb3JpdHkgSSgzKSwKCW9ndHlwZSBDKDMyKQoJIjsKCi8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Nlb3Rvb2xzMiIsCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCi8vIFRlc3QgaWYgaW5zdGFsbGF0aW9uIHdvcmtlZDoKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczInOwokcmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CmlmICghJHJlc3VsdCkgewoJcmV0dXJuICR0aGlzLT5MYW5nKCdpbnN0YWxsX2RhdGFiYXNlX2Vycm9yJyk7Cn0KCi8vIHBlcm1pc3Npb25zCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFZGl0IFNFTyBTZXR0aW5ncycsJ0VkaXQgU0VPIFNldHRpbmdzJyk7CiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdFZGl0IHBhZ2UgZGVzY3JpcHRpb25zJywnRWRpdCBwYWdlIGRlc2NyaXB0aW9ucycpOwoKLy8gYWRkIHNpdGUgcHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJywnPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBtYXhpbXVtLXNjYWxlPTEiPicpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3JlYXRlX3JvYm90cycsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2tleXdvcmRzJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9hdXRvJywnVGhpcyBwYWdlIGNvdmVycyB0aGUgdG9waWNzIHtrZXl3b3Jkc30nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG9fZ2VuZXJhdGUnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2tleXdvcmRfY29udGVudF93ZWlnaHQnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHQnLDQpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9leGNsdWRlJywnaSwgbWUsIG15LCBteXNlbGYsIHdlLCBvdXIsIG91cnMsIG91cnNlbHZlcywgeW91LCB5b3VyLCB5b3VycywgeW91cnNlbGYsIHlvdXJzZWx2ZXMsIGhlLCBoaW0sIGhpcywgaGltc2VsZiwgc2hlLCBoZXIsIGhlcnMsIGhlcnNlbGYsIGl0LCBpdHMsIGl0c2VsZiwgdGhleSwgdGhlbSwgdGhlaXIsIHRoZWlycywgdGhlbXNlbHZlcywgd2hhdCwgd2hpY2gsIHdobywgd2hvbSwgdGhpcywgdGhhdCwgdGhlc2UsIHRob3NlLCBhbSwgaXMsIGFyZSwgd2FzLCB3ZXJlLCBiZSwgYmVlbiwgYmVpbmcsIGhhdmUsIGhhcywgaGFkLCBoYXZpbmcsIGRvLCBkb2VzLCBkaWQsIGRvaW5nLCBhLCBhbiwgdGhlLCBhbmQsIGJ1dCwgaWYsIG9yLCBiZWNhdXNlLCBhcywgdW50aWwsIHdoaWxlLCBvZiwgYXQsIGJ5LCBmb3IsIHdpdGgsIGFib3V0LCBhZ2FpbnN0LCBiZXR3ZWVuLCBpbnRvLCB0aHJvdWdoLCBkdXJpbmcsIGJlZm9yZSwgYWZ0ZXIsIGFib3ZlLCBiZWxvdywgdG8sIGZyb20sIHVwLCBkb3duLCBpbiwgb3V0LCBvbiwgb2ZmLCBvdmVyLCB1bmRlciwgYWdhaW4sIGZ1cnRoZXIsIHRoZW4sIG9uY2UsIGhlcmUsIHRoZXJlLCB3aGVuLCB3aGVyZSwgd2h5LCBob3csIGFsbCwgYW55LCBib3RoLCBlYWNoLCBmZXcsIG1vcmUsIG1vc3QsIG90aGVyLCBzb21lLCBzdWNoLCBubywgbm9yLCBub3QsIG9ubHksIG93biwgc2FtZSwgc28sIHRoYW4sIHRvbywgdmVyeSwgbG9yZW0sIGNvbWluZycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9oZWFkbGluZV93ZWlnaHQnLDIpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5pbXVtX3dlaWdodCcsNyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmxlbmd0aCcsNSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdrZXl3b3JkX3RpdGxlX3dlaWdodCcsNik7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2NvbnRyaWJ1dG9yJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2NvcHlyaWdodCcsJyhjKSB7Y3VzdG9tX2NvcHlyaWdodH0ge3NpdGVuYW1lfS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfZHVibGluY29yZScsMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2xhdGl0dWRlJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2xvY2F0aW9uJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2xvbmdpdHVkZScsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGgnLDApOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90aXRsZScsJ3t0aXRsZX0nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfcHVibGlzaGVyJywne3NpdGVuYW1lfScpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9yZWdpb24nLCcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnLDEpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHVzaF9zaXRlbWFwJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RpdGxlJywne3RpdGxlfSB8IHskc2l0ZW5hbWV9IC0geyR0aXRsZV9rZXl3b3Jkc30nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3RpdGxlX21ldGEnLCd7dGl0bGV9IHwgeyRzaXRlbmFtZX0nKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3ByZWZfdmVyaWZpY2F0aW9uJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2RvY3R5cGUnLDMpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY29tcGlsZV91ZHRzJywxKTsKCi8vIHJlZ2lzdGVyIGV2ZW50cyBhbmQgYWRkIGV2ZW50IGhhbmRsZXJzCiR0aGlzLT5DcmVhdGVFdmVudCggJ1ByZWZzVXBkYXRlZCcgKTsKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ29yZScsJ0NvbnRlbnRFZGl0UG9zdCcsZmFsc2UpOwokdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdDb3JlJywnQ29udGVudERlbGV0ZVBvc3QnLGZhbHNlKTsKCgovLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdpbnN0YWxsZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKCQkKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFR1cmJvLWNoYXJnZSB5b3VyIG9uLXBhZ2UgU0VPCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljIDxhZG1pbkBjbGlwbWFnaWMuY29tLmF1PgojIE1ldGhvZDogdW5pbnN0YWxsCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClVuaW5zdGFsbCgpClNvbWV0aW1lcywgYW4gZXhjZXB0aW9uYWxseSB1bmVubGlnaHRlbmVkIG9yIGlnbm9yYW50CmFkbWluIHdpbGwgd2lzaCB0byB1bmluc3RhbGwgeW91ciBtb2R1bGUuIFdoaWxlIGl0CndvdWxkIGJlIGJlc3QgdG8gbGF5IGludG8gdGhlc2UgaWRpb3RzIHdpdGggYSBjbHVlc3RpY2ssCndlIHdpbGwgZG8gdGhlIG1hZ25hbmltb3VzIHRoaW5nIGFuZCByZW1vdmUgdGhlIG1vZHVsZQphbmQgY2xlYW4gdXAgdGhlIGRhdGFiYXNlLCBwZXJtaXNzaW9ucywgYW5kIHByZWZlcmVuY2VzCnRoYXQgYXJlIHNwZWNpZmljIHRvIGl0LgpUaGlzIGlzIHRoZSBtZXRob2Qgd2hlcmUgd2UgZG8gdGhpcy4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFR5cGljYWwgRGF0YWJhc2UgUmVtb3ZhbAokZGIgPSBjbXNtcygpLT5HZXREYigpOwoKLy8gcmVtb3ZlIHRoZSBkYXRhYmFzZSB0YWJsZQokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMyIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgovLyByZW1vdmUgdGhlIHBlcm1pc3Npb25zCiR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdFZGl0IFNFTyBTZXR0aW5ncycpOwokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignRWRpdCBwYWdlIGRlc2NyaXB0aW9ucycpOwoKLy8gcmVtb3ZlIHNpdGUgcHJlZmVyZW5jZXMKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdjcmVhdGVfcm9ib3RzJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdjcmVhdGVfc2l0ZW1hcCcpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnZGVmYXVsdF9rZXl3b3JkcycpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0bycpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2tleXdvcmRfY29udGVudF93ZWlnaHQnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2tleXdvcmRfZGVzY3JpcHRpb25fd2VpZ2h0Jyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdrZXl3b3JkX2V4Y2x1ZGUnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2tleXdvcmRfaGVhZGxpbmVfd2VpZ2h0Jyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmltdW1fd2VpZ2h0Jyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdrZXl3b3JkX21pbmxlbmd0aCcpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgna2V5d29yZF90aXRsZV93ZWlnaHQnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfY29udHJpYnV0b3InKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfY29weXJpZ2h0Jyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX2R1YmxpbmNvcmUnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfbGF0aXR1ZGUnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfbG9jYXRpb24nKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfbG9uZ2l0dWRlJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaCcpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfYWRtaW5zJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9hcHBsaWNhdGlvbicpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfaW1hZ2UnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3NpdGVuYW1lJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF90aXRsZScpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9vcGVuZ3JhcGhfdHlwZScpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9wdWJsaXNoZXInKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ21ldGFfcmVnaW9uJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdtZXRhX3N0YW5kYXJkJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdwdXNoX3NpdGVtYXAnKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3RpdGxlJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCd0aXRsZV9tZXRhJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdwcmVmX3ZlcmlmaWNhdGlvbicpOwokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnbWV0YV9kb2N0eXBlJyk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdjb21waWxlX3VkdHMnKTsKCgovLyByZW1vdmUgZXZlbnRzIGFuZCBldmVudCBoYW5kbGVycwokdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCAnUHJlZnNVcGRhdGVkJyApOwokdGhpcy0+UmVtb3ZlRXZlbnQoICdQcmVmc1VwZGF0ZWQnICk7CiR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0NvcmUnLCdDb250ZW50RWRpdFBvc3QnLGZhbHNlKTsKJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignQ29yZScsJ0NvbnRlbnREZWxldGVQb3N0JyxmYWxzZSk7CgoKLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCiR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogVXBncmFkZSgpCiBJZiB5b3VyIG1vZHVsZSB2ZXJzaW9uIG51bWJlciBkb2VzIG5vdCBtYXRjaCB0aGUgdmVyc2lvbgogbnVtYmVyIG9mIHRoZSBpbnN0YWxsZWQgbW9kdWxlLCB0aGUgQ01TIEFkbWluIHdpbGwgZ2l2ZQogeW91IGEgY2hhbmNlIHRvIHVwZ3JhZGUgdGhlIG1vZHVsZS4gVGhpcyBpcyB0aGUgZnVuY3Rpb24KIHRoYXQgYWN0dWFsbHkgaGFuZGxlcyB0aGUgdXBncmFkZS4KIElkZWFsbHksIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGhhbmRsZSB1cGdyYWRlcyBpbmNyZW1lbnRhbGx5LAogc28geW91IGNvdWxkIHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDAuMC4xIHRvIDEwLjUuNyB3aXRoCiBhIHNpbmdsZSBjYWxsLiBGb3IgYSBncmVhdCBleGFtcGxlIG9mIHRoaXMsIHNlZSB0aGUgTmV3cwogbW9kdWxlIGluIHRoZSBzdGFuZGFyZCBDTVMgaW5zdGFsbC4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwokY3VycmVudF92ZXJzaW9uID0gJG9sZHZlcnNpb247Cgpzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKewogIGNhc2UgIjEuMCI6CiAgY2FzZSAiMS4wLjEiOgogIGNhc2UgIjEuMC4yIjoKICBjYXNlICIxLjAuMyI6CiAgY2FzZSAiMS4wLjQiOgogICAgLy8gcmVnaXN0ZXIgZXZlbnRzCiAgICAkdGhpcy0+Q3JlYXRlRXZlbnQoICdQcmVmc1VwZGF0ZWQnICk7CiAgICAKICAgIC8vIEFkZCAnZm9sbG93JyBmaWVsZCBmb3IgPG1ldGEgbmFtZT1yb2JvdHMgdGFnCiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMicsJ2ZvbGxvdyBJJyk7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBTRVQgZm9sbG93ID0gPyc7CiAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KDEpKTsKICAgIAogICAgLy8gU2V0IHRoZSB2aWV3cG9ydCBtZXRhIHRhZyBhcyBhIHN0ZCBhZGRpdGlvbmFsIHRhZwogICAgJG9sZHN0dWZmID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJyk7CiAgICAkdmlld3BvcnQgPSAnPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCBtYXhpbXVtLXNjYWxlPTEiPic7CiAgICAkbmV3c3R1ZmYgPSAkb2xkc3R1ZmYgLiAkdmlld3BvcnQ7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWRkaXRpb25hbF9tZXRhX3RhZ3MnLCAkbmV3c3R1ZmYpOwogICAgCiAgICAvLyBOZXcgUGFnZSBNZXRhIGluZm8gcHJlZmVyZW5jZXMKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdtZXRhX2RvY3R5cGUnLDMpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NvbXBpbGVfdWR0cycsMSk7CiAgICBicmVhazsKICAgIAogIGNhc2UgIjEuMC41IjoKICBjYXNlICIxLjAuNiI6CiAgY2FzZSAiMS4wLjciOgogIGNhc2UgIjEuMC44IjoKICBjYXNlICIxLjAuOSI6CiAgY2FzZSAiMS4wLjEwIjoKICBjYXNlICIxLjAuMTEiOgogIGRlZmF1bHQ6CiAgICAvLyBBZGQgJ2ZvbGxvdycgZmllbGQgZm9yIDxtZXRhIG5hbWU9cm9ib3RzIHRhZwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczInLCdmb2xsb3cgSScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9zZW90b29sczIgU0VUIGZvbGxvdyA9ID8nOwogICAgJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgxKSk7CiAgICAKICAgIC8vIFNldCB0aGUgdmlld3BvcnQgbWV0YSB0YWcgYXMgYSBzdGQgYWRkaXRpb25hbCB0YWcKICAgICRvbGRzdHVmZiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZGRpdGlvbmFsX21ldGFfdGFncycpOwogICAgJHZpZXdwb3J0ID0gJzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xIj4nOwogICAgJG5ld3N0dWZmID0gJG9sZHN0dWZmIC4gJHZpZXdwb3J0OwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkZGl0aW9uYWxfbWV0YV90YWdzJywgJG5ld3N0dWZmKTsKICAgIAogICAgLy8gTmV3IFBhZ2UgTWV0YSBpbmZvIHByZWZlcmVuY2VzCiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnbWV0YV9kb2N0eXBlJywzKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjb21waWxlX3VkdHMnLDEpOwogICAgYnJlYWs7Cn0KCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/SEOTools2.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNFT1Rvb2xzMiAtIFNldmVyYWwgdG9vbHMgdG8gaGVscCB3aXRoIFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uIGFuZCBjaGVjayBmb3Igc3Vib3B0aW1hbCBTRU8tcmVsYXRlZCB0aGluZ3MuCiMgVmVyc2lvbjogMS4xLCBDbGlwIE1hZ2ljCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMTAgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIyBUaGlzIGZpbGUgb3JpZ2luYWxseSBjcmVhdGVkIGJ5IE1vZHVsZU1ha2VyIG1vZHVsZSwgdmVyc2lvbiAwLjMuMgojIENvcHlyaWdodCAoYykgMjAxMCBieSBTYW11ZWwgR29sZHN0ZWluIChzamdAY21zbWFkZXNpbXBsZS5vcmcpCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy9lcnJvcl9yZXBvcnRpbmcoRV9BTEwpOwoKJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwokcm9vdF91cmwgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAkY29uZmlnWydyb290X3VybCddIDogJGNvbmZpZ1snc3NsX3VybCddOwoKCgpjbGFzcyBTRU9Ub29sczIgZXh0ZW5kcyBDTVNNb2R1bGUKewoKICBmdW5jdGlvbiBHZXROYW1lKCkKICB7CiAgICByZXR1cm4gJ1NFT1Rvb2xzMic7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRGcmllbmRseU5hbWUoKQogICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIGxvY2FsaXplZCBuYW1lCiAgIG9mIHRoZSBtb2R1bGUuIFRoaXMgaXMgdGhlIG5hbWUgdGhhdCdzIHNob3duIGluIHRoZQogICBBZG1pbiBNZW51cyBhbmQgc2VjdGlvbiBwYWdlcyAoaWYgdGhlIG1vZHVsZSBoYXMgYW4gYWRtaW4KICAgY29tcG9uZW50KS4KCiAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldFZlcnNpb24oKQogICBUaGlzIGNhbiByZXR1cm4gYW55IHN0cmluZywgcHJlZmVyYWJseSBhIG51bWJlciBvcgogICBzb21ldGhpbmcgdGhhdCBtYWtlcyBzZW5zZSBmb3IgZGVzaWduYXRpbmcgYSB2ZXJzaW9uLgogICBUaGUgQ01TIHdpbGwgdXNlIHRoaXMgdG8gaWRlbnRpZnkgd2hldGhlciBvciBub3QKICAgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUgaXMgY3VycmVudCwgYW5kCiAgIHRoZSBtb2R1bGUgd2lsbCB1c2UgaXQgdG8gZmlndXJlIG91dCBob3cgdG8gdXBncmFkZQogICBpdHNlbGYgaWYgcmVxdWVzdGVkLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS4xJzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEhlbHAoKQogICBUaGlzIHJldHVybnMgSFRNTCBpbmZvcm1hdGlvbiBvbiB0aGUgbW9kdWxlLgogICBUeXBpY2FsbHksIHlvdSdsbCB3YW50IHRvIGluY2x1ZGUgaW5mb3JtYXRpb24gb24gaG93IHRvCiAgIHVzZSB0aGUgbW9kdWxlLgoKICAgU2VlIHRoZSBub3RlIG9uIGxvY2FsaXphdGlvbiBhdCB0aGUgdG9wIG9mIHRoaXMgZmlsZS4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRIZWxwKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEF1dGhvcigpCiAgIFRoaXMgcmV0dXJucyBhIHN0cmluZyB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgTW9kdWxlCiAgIEFkbWluIGlmIHlvdSBjbGljayBvbiB0aGUgIkFib3V0IiBsaW5rLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgewogICAgcmV0dXJuICdDbGlwIE1hZ2ljJzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEF1dGhvckVtYWlsKCkKICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBNb2R1bGUKICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSAiQWJvdXQiIGxpbmsuIEl0IGhlbHBzIHVzZXJzCiAgIG9mIHlvdXIgbW9kdWxlIGdldCBpbiB0b3VjaCB3aXRoIHlvdSB0byBzZW5kIGJ1ZyByZXBvcnRzLAogICBxdWVzdGlvbnMsIGNhc2VzIG9mIGJlZXIsIGFuZC9vciBsYXJnZSBzdW1zIG9mIG1vbmV5LgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKICB7CiAgICByZXR1cm4gJ2FkbWluQGNsaXBtYWdpYy5jb20uYXUnOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0Q2hhbmdlTG9nKCkKICAgVGhpcyByZXR1cm5zIGEgc3RyaW5nIHRoYXQgaXMgcHJlc2VudGVkIGluIHRoZSBtb2R1bGUKICAgQWRtaW4gaWYgeW91IGNsaWNrIG9uIHRoZSBBYm91dCBsaW5rLiBJdCBoZWxwcyB1c2VycwogICBmaWd1cmUgb3V0IHdoYXQncyBjaGFuZ2VkIGJldHdlZW4gcmVsZWFzZXMuCiAgIFNlZSB0aGUgbm90ZSBvbiBsb2NhbGl6YXRpb24gYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgSXNQbHVnaW5Nb2R1bGUoKQogICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBvciBmYWxzZSwgZGVwZW5kaW5nIHVwb24KICAgd2hldGhlciB1c2VycyBjYW4gaW5jbHVkZSB0aGUgbW9kdWxlIGluIGEgcGFnZSBvcgogICB0ZW1wbGF0ZSB1c2luZyBhIHNtYXJ0eSB0YWcgb2YgdGhlIGZvcm0KICAge2Ntc19tb2R1bGUgbW9kdWxlPSdTRU9Ub29sczInIHBhcmFtMT12YWwgcGFyYW0yPXZhbC4uLn0KCiAgIElmIHlvdXIgbW9kdWxlIGRvZXMgbm90IGdldCBpbmNsdWRlZCBpbiBwYWdlcyBvcgogICB0ZW1wbGF0ZXMsIHJldHVybiAiZmFsc2UiIGhlcmUuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KICAKCS8qKgoJICogUmV0dXJucyB3aGV0aGVyIHRoaXMgbW9kdWxlIHNob3VsZCBvbmx5IGJlIGxvYWRlZCBmcm9tIHRoZSBhZG1pbgoJICoKCSAqIEBhYnN0cmFjdAoJICogQHJldHVybiBib29sZWFuCgkgKi8KCWZ1bmN0aW9uIElzQWRtaW5Pbmx5KCkKCXsKCQlyZXR1cm4gZmFsc2U7Cgl9CgogIAogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEhhc0FkbWluKCkKICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgYm9vbGVhbiB2YWx1ZSwgZGVwZW5kaW5nIG9uCiAgIHdoZXRoZXIgeW91ciBtb2R1bGUgYWRkcyBhbnl0aGluZyB0byB0aGUgQWRtaW4gYXJlYSBvZgogICB0aGUgc2l0ZS4gRm9yIHRoZSByZXN0IG9mIHRoZXNlIGNvbW1lbnRzLCBJJ2xsIGJlIGNhbGxpbmcKICAgdGhlIGFkbWluIHBhcnQgb2YgeW91ciBtb2R1bGUgdGhlICJBZG1pbiBQYW5lbCIgZm9yCiAgIHdhbnQgb2YgYSBiZXR0ZXIgdGVybS4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBIYXNBZG1pbigpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QWRtaW5TZWN0aW9uKCkKICAgSWYgeW91ciBtb2R1bGUgaGFzIGFuIEFkbWluIFBhbmVsLCB5b3UgY2FuIHNwZWNpZnkKICAgd2hpY2ggQWRtaW4gU2VjdGlvbiAob3IgdG9wLWxldmVsIEFkbWluIE1lbnUpIGl0IHNob3dzCiAgIHVwIGluLiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RyaW5nIHRvIHNwZWNpZnkgdGhhdAogICBzZWN0aW9uLiBWYWxpZCByZXR1cm4gdmFsdWVzIGFyZToKCiAgIG1haW4gICAgICAgIC0gdGhlIE1haW4gbWVudSB0YWIuCiAgIGNvbnRlbnQgICAgIC0gdGhlIENvbnRlbnQgbWVudQogICBsYXlvdXQgICAgICAtIHRoZSBMYXlvdXQgbWVudQogICB1c2Vyc2dyb3VwcyAtIHRoZSBVc2VycyBhbmQgR3JvdXBzIG1lbnUKICAgZXh0ZW5zaW9ucyAgLSB0aGUgRXh0ZW5zaW9ucyBtZW51ICh0aGlzIGlzIHRoZSBkZWZhdWx0KQogICBzaXRlYWRtaW4gICAtIHRoZSBTaXRlIEFkbWluIG1lbnUKICAgdmlld3NpdGUgICAgLSB0aGUgVmlldyBTaXRlIG1lbnUgdGFiCiAgIGxvZ291dCAgICAgIC0gdGhlIExvZ291dCBtZW51IHRhYgoKICAgTm90ZSB0aGF0IGlmIHlvdSBwbGFjZSB5b3VyIG1vZHVsZSBpbiB0aGUgbWFpbiwKICAgdmlld3NpdGUsIG9yIGxvZ291dCBzZWN0aW9ucywgaXQgd2lsbCBzaG93IHVwIGluIHRoZQogICBtZW51cywgYnV0IHdpbGwgbm90IGJlIHZpc2libGUgaW4gYW55IHRvcC1sZXZlbAogICBzZWN0aW9uIHBhZ2VzLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdjb250ZW50JzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgSWYgeW91ciBtb2R1bGUgZG9lcyBoYXZlIGFuIEFkbWluIFBhbmVsLCB5b3UKICAgY2FuIGhhdmUgaXQgcmV0dXJuIGEgZGVzY3JpcHRpb24gc3RyaW5nIHRoYXQgZ2V0cyBzaG93bgogICBpbiB0aGUgQWRtaW4gU2VjdGlvbiBwYWdlIHRoYXQgY29udGFpbnMgdGhlIG1vZHVsZS4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzY3JpcHRpb24nKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBWaXNpYmxlVG9BZG1pblVzZXIoKQogICBJZiB5b3VyIG1vZHVsZSBkb2VzIGhhdmUgYW4gQWRtaW4gUGFuZWwsIHlvdQogICBjYW4gY29udHJvbCB3aGV0aGVyIG9yIG5vdCBpdCdzIGRpc3BsYXllZCBieSB0aGUgYm9vbGVhbgogICB0aGF0IGlzIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkCiAgIHRvIGhpZGUgbW9kdWxlcyBmcm9tIGFkbWlucyB3aG8gbGFjayBwZXJtaXNzaW9uIHRvIHVzZQogICB0aGVtLgoKICAgVHlwaWNhbGx5LCB5b3UnbGwgdXNlIHNvbWUgcGVybWlzc2lvbiB0byBzZXQgdGhpcwogICAoZS5nLiwgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignU29tZSBQZXJtaXNzaW9uJyk7ICkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdFZGl0IFNFTyBTZXR0aW5ncycpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIENoZWNrQWNjZXNzKCkKICAgVGhpcyB3cmFwcGVyIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYWdhaW5zdCB0aGUgc3BlY2lmaWVkIHBlcm1pc3Npb24sCiAgIGFuZCBkaXNwbGF5IGFuIGVycm9yIHBhZ2UgaWYgdGhlIHVzZXIgZG9lc24ndCBoYXZlIGFkZXF1YXRlIHBlcm1pc3Npb25zLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIENoZWNrQWNjZXNzKCRwZXJtID0gJ0VkaXQgU0VPIFNldHRpbmdzJykKICB7CiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbigkcGVybSk7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEaXNwbGF5RXJyb3JQYWdlKCkKICAgVGhpcyBpcyBhIHNpbXBsZSBmdW5jdGlvbiBmb3IgZ2VuZXJhdGluZyBlcnJvciBwYWdlcy4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQsICRtZXNzYWdlPScnKQogIHsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwoKICAgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQogICAgLy9lY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJJHNtYXJ0eS0+ZGlzcGxheSgnZXJyb3IudHBsJyk7CiAgfQoKCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldERlcGVuZGVuY2llcygpCiAgIFlvdXIgbW9kdWxlIG1heSBuZWVkIGFub3RoZXIgbW9kdWxlIHRvIGFscmVhZHkgYmUgaW5zdGFsbGVkCiAgIGJlZm9yZSB5b3UgY2FuIGluc3RhbGwgaXQuCiAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIHRob3NlIGRlcGVuZGVuY2llcyBhbmQKICAgbWluaW11bSB2ZXJzaW9uIG51bWJlcnMgdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KCiAgIEl0IHNob3VsZCByZXR1cm4gYW4gaGFzaCwgZWcuCiAgIHJldHVybiBhcnJheSgnc29tZW1vZHVsZSc9PicxLjAnLCAnb3RoZXJtb2R1bGUnPT4nMS4xJyk7CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIE1pbmltdW1DTVNWZXJzaW9uKCkKICAgWW91ciBtb2R1bGUgbWF5IHJlcXVpcmUgZnVuY3Rpb25zIG9yIG9iamVjdHMgZnJvbQogICBhIHNwZWNpZmljIHZlcnNpb24gb2YgQ01TIE1hZGUgU2ltcGxlLgogICBFdmVyIHNpbmNlIHZlcnNpb24gMC4xMSwgeW91IGNhbiBzcGVjaWZ5IHdoaWNoIG1pbmltdW0KICAgQ01TIE1TIHZlcnNpb24gaXMgcmVxdWlyZWQgZm9yIHlvdXIgbW9kdWxlLCB3aGljaCB3aWxsCiAgIHByZXZlbnQgaXQgZnJvbSBiZWluZyBpbnN0YWxsZWQgYnkgYSB2ZXJzaW9uIG9mIENNUyB0aGF0CiAgIGNhbid0IHJ1biBpdC4KCiAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZQogICBtaW5pbXVtIHZlcnNpb24gdGhhdCB0aGlzIG1vZHVsZSByZXF1aXJlcy4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCiAgewogICAgcmV0dXJuICIxLjEwIjsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBNYXhpbXVtQ01TVmVyc2lvbigpCiAgIFlvdSBtYXkgd2FudCB0byBwcmV2ZW50IHBlb3BsZSBmcm9tIHVzaW5nIHlvdXIgbW9kdWxlIGluCiAgIGZ1dHVyZSB2ZXJzaW9ucyBvZiBDTVMgTWFkZSBTaW1wbGUsIGVzcGVjaWFsbHkgaWYgeW91CiAgIHRoaW5rIEFQSSBmZWF0dXJlcyB5b3UgdXNlIG1heSBjaGFuZ2UgLS0gYWZ0ZXIgYWxsLCB5b3UKICAgbmV2ZXIgcmVhbGx5IGtub3cgaG93IHRoZSBDTVMgTVMgQVBJIGNvdWxkIGV2b2x2ZS4KCiAgIFNvLCB0byBwcmV2ZW50IHBlb3BsZSBmcm9tIGZsb29kaW5nIHlvdSB3aXRoIGJ1ZyByZXBvcnRzCiAgIHdoZW4gYSBuZXcgdmVyc2lvbiBvZiBDTVMgTVMgaXMgcmVsZWFzZWQsIHlvdSBjYW4gc2ltcGx5CiAgIHJlc3RyaWN0IHRoZSB2ZXJzaW9uLiBUaGVuLCBvZiBjb3Vyc2UsIHRoZSBvbnVzIGlzIG9uIHlvdQogICB0byByZWxlYXNlIGEgbmV3IHZlcnNpb24gb2YgeW91ciBtb2R1bGUgd2hlbiBhIG5ldyB2ZXJzaW9uCiAgIG9mIHRoZSBDTVMgaXMgcmVsZWFzZWQuLi4KCiAgIFRoaXMgbWV0aG9kIHJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZQogICBtYXhpbXVtIHZlcnNpb24gdGhhdCB0aGlzIG1vZHVsZSBzdXBwb3J0cy4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAvKiBmdW5jdGlvbiBNYXhpbXVtQ01TVmVyc2lvbigpCiAgIHsKICAgcmV0dXJuOwogICB9CiAgICovCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgIEFmdGVyIGluc3RhbGxhdGlvbiwgdGhlcmUgbWF5IGJlIHRoaW5ncyB5b3Ugd2FudCB0bwogICBjb21tdW5pY2F0ZSB0byB5b3VyIGFkbWluLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYQogICBzdHJpbmcgd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7CiAgfQoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgIEFmdGVyIHJlbW92aW5nIGEgbW9kdWxlLCB0aGVyZSBtYXkgYmUgdGhpbmdzIHlvdSB3YW50IHRvCiAgIGNvbW11bmljYXRlIHRvIHlvdXIgYWRtaW4uIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhCiAgIHN0cmluZyB3aGljaCB3aWxsIGJlIGRpc3BsYXllZC4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgfQoKCiAgLyoqCiAgICogVW5pbnN0YWxsUHJlTWVzc2FnZSgpCiAgICogVGhpcyBhbGxvd3MgeW91IHRvIGRpc3BsYXkgYSBtZXNzYWdlIGFsb25nIHdpdGggYSBZZXMvTm8gZGlhbG9nIGJveC4gSWYgdGhlIHVzZXIgcmVzcG9uZHMKICAgKiBpbiB0aGUgYWZmaXJtYXRpdmUgdG8geW91ciBtZXNzYWdlLCB0aGUgdW5pbnN0YWxsIHdpbGwgcHJvY2VlZC4gSWYgdGhleSByZXNwb25kIGluIHRoZQogICAqIG5lZ2F0aXZlLCB0aGUgdW5pbnN0YWxsIHdpbGwgYmUgY2FuY2VsZWQuIFRodXMsIHlvdXIgbWVzc2FnZSBzaG91bGQgYmUgb2YgdGhlIGZvcm0KICAgKiAiQWxsIG1vZHVsZSBkYXRhIHdpbGwgYmUgZGVsZXRlZC4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVuaW5zdGFsbCB0aGlzIG1vZHVsZT8iCiAgICoKICAgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgZGlhbG9nLCBoYXZlIHRoaXMgbWV0aG9kIHJldHVybiBhIEZBTFNFLCB3aGljaCB3aWxsIGNhdXNlIHRoZQogICAqIG1vZHVsZSB0byB1bmluc3RhbGwgaW1tZWRpYXRlbHkgaWYgdGhlIHVzZXIgY2xpY2tzIHRoZSAidW5pbnN0YWxsIiBsaW5rLgogICAqLwogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwogIH0KCiAgZnVuY3Rpb24gR2V0Tm90aWZpY2F0aW9uT3V0cHV0KCRwcmlvcml0eSA9IDMpIHsKICAgIGlmIChjb3VudCgkdGhpcy0+Z2V0VXJnZW50QWxlcnRzKCkpID4gMCkgewogICAgICAkdGV4dCA9ICR0aGlzLT5MYW5nKCdwcm9ibGVtX2FsZXJ0JyxBcnJheSgkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgJycsICR0aGlzLT5MYW5nKCdwcm9ibGVtX2xpbmtfdGl0bGUnKSkpKTsKCiAgICAgICRvYmogPSBuZXcgU3RkQ2xhc3M7CiAgICAgICRvYmotPnByaW9yaXR5ID0gMzsKICAgICAgJG9iai0+aHRtbCA9ICR0ZXh0OwoKICAgICAgcmV0dXJuICRvYmo7CiAgICB9CiAgfQoKCiAgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpIHsKICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwoKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Nob3diYXNlJywgJ3RydWUnLCAkdGhpcy0+TGFuZygnaGVscF9zaG93YmFzZScpKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzaG93YmFzZScsIENMRUFOX1NUUklORyk7CiAgICAKICAgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXModHJ1ZSk7CgogIH0KCgogIGZ1bmN0aW9uIGdldFVyZ2VudEFsZXJ0cygpIHsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcm9vdF91cmwgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAkY29uZmlnWydyb290X3VybCddIDogJGNvbmZpZ1snc3NsX3VybCddOwoKICAgICRhbGVydHMgPSBBcnJheSgpOwogICAgLy8gRW5hYmxlIFByZXR0eSBVUkxzCiAgICBpZiAoKCRjb25maWdbJ3VybF9yZXdyaXRpbmcnXSAhPSAibW9kX3Jld3JpdGUiKSAmJiAoJGNvbmZpZ1sndXJsX3Jld3JpdGluZyddICE9ICdpbnRlcm5hbCcpKSB7CiAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdzeXN0ZW0nOwogICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdhY3RpdmF0ZV9wcmV0dHlfdXJscycpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5MYW5nKCdwcmV0dHlfdXJsc19oZWxwJyk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH0KICAgIC8vIE5vIE1ldGEgdGFncyBhcmUgaW5zZXJ0ZWQKICAgIGlmICgoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfc3RhbmRhcmQnLDApICE9IDEpICYmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9kdWJsaW5jb3JlJywwKSAhPSAxKSkgewogICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnc2V0dGluZ3MnOwogICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCd1c2Vfc3RhbmRhcmRfb3JfZHVibGluY29yZV9tZXRhJyk7CiAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5MYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgfQoKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYXV0b19nZW5lcmF0ZScsMCkgIT0gMSkgewogICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2Jsb2NrJywnJykgIT0gJycpIHsKICAgICAgICAvLyBQYWdlcyB3aXRob3V0IGRlc2NyaXB0aW9uCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqLGMuY29udGVudF9pZCBBUyBjaWQsIGMudHlwZSBBUyBjdHlwZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IGMgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50X3Byb3BzIHAgT04gKGMuY29udGVudF9pZCA9IHAuY29udGVudF9pZCBBTkQgcC5wcm9wX25hbWUgPSAiJy5zdHJfcmVwbGFjZSgnICcsJ18nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpKS4nIikgV0hFUkUgKHAuY29udGVudCBJUyBOVUxMIE9SIHAuY29udGVudCA9ICIiKSBBTkQgYy50eXBlID0gImNvbnRlbnQiIExJTUlUIDAsMjEnOwogICAgICAgICRyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgd2hpbGUgKCRwcm9ibGVtID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgewogICAJCSAgCSAgaWYgKCRwcm9ibGVtWydjdHlwZSddID09ICdjb250ZW50JykgewogICAJCSAgCSAgICAkYWxlcnQgPSBBcnJheSgpOwogICAJCSAgCSAgICAkYWxlcnRbJ2dyb3VwJ10gPSAncGFnZXMnOwogICAJCSAgCSAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdtZXRhX2Rlc2NyaXB0aW9uX21pc3NpbmcnLEFycmF5KCRwcm9ibGVtWydjb250ZW50X25hbWUnXSkpOwogICAJCSAgCSAgICBpZiAoaXNzZXQoJF9HRVRbJ3NwXyddKSkgewogICAJCSAgCSAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9IicuJHJvb3RfdXJsLicvJy4kY29uZmlnWydhZG1pbl9kaXInXS4nL2VkaXRjb250ZW50LnBocD9zcF89Jy4kX0dFVFsnc3BfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2NpZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZV90b19maXgnKS4nPC9hPic7CiAgIAkJICAJICAgIH1lbHNlewogICAJCSAgCSAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9IicuJHJvb3RfdXJsLicvJy4kY29uZmlnWydhZG1pbl9kaXInXS4nL2VkaXRjb250ZW50LnBocD9fc3hfPScuJF9HRVRbJ19zeF8nXS4nJmNvbnRlbnRfaWQ9Jy4kcHJvYmxlbVsnY2lkJ10uJyI+Jy4kdGhpcy0+TGFuZygnZWRpdF9wYWdlX3RvX2ZpeCcpLic8L2E+JzsKICAgCQkgIAkgICAgfQogICAJCSAgCSAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgIAkJICAJICB9CiAgICAgICAgfQogICAgICB9ZWxzZXsKICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdzZXR0aW5ncyc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnc2V0X3VwX2Rlc2NyaXB0aW9uX2Jsb2NrJyk7CiAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgfWVsc2VpZihzdHJwb3MoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2Rlc2NyaXB0aW9uX2F1dG8nLCcnKSwne2tleXdvcmRzfScpID09PSBmYWxzZSkgewogICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnc2V0dGluZ3MnOwogICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdzZXRfdXBfYXV0b19kZXNjcmlwdGlvbicpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH0KCiAgICAvLyBzaXRlbWFwLnhtbCBub3Qgd3JpdGVhYmxlCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9zaXRlbWFwJywxKSA9PSAxKSB7CiAgICAgIGlmICghaXNfd3JpdGVhYmxlKCRjb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9zaXRlbWFwLnhtbCcpKSB7CiAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnc3lzdGVtJzsKICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdzaXRlbWFwX25vdF93cml0ZWFibGUnKTsKICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5MYW5nKCdjaG1vZF9zaXRlbWFwJyk7CiAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICB9CiAgICB9CgogICAgLy8gcm9ib3RzLnR4dCBub3Qgd3JpdGVhYmxlCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9yb2JvdHMnLDEpID09IDEpIHsKICAgICAgJGZwID0gQGZvcGVuKCRjb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9yb2JvdHMudHh0JywiYSIpOwogICAgICBAZmNsb3NlKCRmcCk7CiAgICAgIGlmICghaXNfd3JpdGVhYmxlKCRjb25maWdbJ3Jvb3RfcGF0aCddIC4gJy9yb2JvdHMudHh0JykpIHsKICAgICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdzeXN0ZW0nOwogICAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3JvYm90c19ub3Rfd3JpdGVhYmxlJyk7CiAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+TGFuZygnY2htb2Rfcm9ib3RzJyk7CiAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICB9CiAgICB9CgogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaCcsMCkgPT0gMSkgewogICAgICAvLyBObyBPcGVuR3JhcGggYWRtaW4gc2V0CiAgICAgIGlmICgoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FkbWlucycsJycpID09ICcnKSAmJiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX2FwcGxpY2F0aW9uJywnJykgPT0gJycpKSB7CiAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnb3BlbmdyYXBoJzsKICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdub19vcGVuZ3JhcGhfYWRtaW5zJyk7CiAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAkdGhpcy0+Y3JlYXRlTGluayhudWxsLCAnZGVmYXVsdGFkbWluJywgbnVsbCwgJHRoaXMtPkxhbmcoJ3Zpc2l0X3NldHRpbmdzJyksIEFycmF5KCd0YWInPT4nbWV0YXNldHRpbmdzJykpOwogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgICAvLyBObyBPcGVuR3JhcGggcGFnZSB0eXBlIHNldAogICAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ21ldGFfb3BlbmdyYXBoX3R5cGUnLCcnKSA9PSAnJykgewogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ29wZW5ncmFwaCc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbm9fb3BlbmdyYXBoX3R5cGUnKTsKICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICB9CiAgICAgIC8vIE5vIE9wZW5HcmFwaCBzaXRlbmFtZSBzZXQKICAgICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9zaXRlbmFtZScsJycpID09ICcnKSB7CiAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnb3BlbmdyYXBoJzsKICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdub19vcGVuZ3JhcGhfc2l0ZW5hbWUnKTsKICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICB9CiAgICAgIC8vIE5vIE9wZW5HcmFwaCBpbWFnZSBzZXQKICAgICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX29wZW5ncmFwaF9pbWFnZScsJycpID09ICcnKSB7CiAgICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgICAkYWxlcnRbJ2dyb3VwJ10gPSAnb3BlbmdyYXBoJzsKICAgICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdub19vcGVuZ3JhcGhfaW1hZ2UnKTsKICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgICB9CiAgICB9CgogICAgcmV0dXJuICRhbGVydHM7CiAgfQoKICBmdW5jdGlvbiBnZXRJbXBvcnRhbnRBbGVydHMoKSB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJGFsZXJ0cyA9IEFycmF5KCk7CiAgICAkcm9vdF91cmwgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAkY29uZmlnWydyb290X3VybCddIDogJGNvbmZpZ1snc3NsX3VybCddOwoKICAgIC8vIFBhZ2VzIHdpdGggc2hvcnQgZGVzY3JpcHRpb24KICAgICRxdWVyeSA9ICdTRUxFQ1QgKixjLmNvbnRlbnRfaWQgQVMgY2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnQgYyBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50X3Byb3BzIHAgT04gKGMuY29udGVudF9pZCA9IHAuY29udGVudF9pZCBBTkQgcC5wcm9wX25hbWUgPSAiJy5zdHJfcmVwbGFjZSgnICcsJ18nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpKS4nIikgV0hFUkUgQ0hBUl9MRU5HVEgocC5jb250ZW50KSA8IDc1IEFORCBjLnR5cGUgPSAiY29udGVudCIgQU5EIHAuY29udGVudCA8PiAiIiBMSU1JVCAwLDIxJzsKICAgICRyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICBpZiAoJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDApIHsKICAgICAgd2hpbGUgKCRwcm9ibGVtID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgewogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ2Rlc2NyaXB0aW9ucyc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnbWV0YV9kZXNjcmlwdGlvbl9zaG9ydCcsQXJyYXkoJHByb2JsZW1bJ2NvbnRlbnRfbmFtZSddKSk7CiAgICAgICAgaWYgKGlzc2V0KCRfR0VUWydzcF8nXSkpIHsKICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9IicuJHJvb3RfdXJsLicvJy4kY29uZmlnWydhZG1pbl9kaXInXS4nL2VkaXRjb250ZW50LnBocD9zcF89Jy4kX0dFVFsnc3BfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2NpZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZV90b19maXgnKS4nPC9hPic7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/X3N4Xz0nLiRfR0VUWydfc3hfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2NpZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZV90b19maXgnKS4nPC9hPic7CiAgICAgICAgfQogICAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgICAgfQogICAgfQoKICAgIC8vIFBhZ2VzIHdpdGggZHVwbGljYXRlIHRpdGxlCiAgICAkcXVlcnkgPSAnU0VMRUNUIGMxLmNvbnRlbnRfYWxpYXMgQVMgYzFuYW1lLCBjMS5jb250ZW50X2lkIEFTIGMxaWQsIGMyLmNvbnRlbnRfYWxpYXMgQVMgYzJuYW1lLCBjMi5jb250ZW50X2lkIEFTIGMyaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudCBjMSBJTk5FUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IGMyIE9OIChjMS5jb250ZW50X25hbWUgPSBjMi5jb250ZW50X25hbWUgQU5EIGMxLmNvbnRlbnRfaWQgPCBjMi5jb250ZW50X2lkKSBXSEVSRSBjMS50eXBlID0gImNvbnRlbnQiIEFORCBjMi50eXBlID0gImNvbnRlbnQiIExJTUlUIDAsMjEnOwogICAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIGlmICgkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCkgewoKICAgICAgd2hpbGUgKCRwcm9ibGVtID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgewogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ3RpdGxlcyc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZHVwbGljYXRlX3RpdGxlcycsQXJyYXkoJHByb2JsZW1bJ2MxbmFtZSddLCRwcm9ibGVtWydjMm5hbWUnXSkpOwogICAgICAgIGlmIChpc3NldCgkX0dFVFsnc3BfJ10pKSB7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjMWlkJ10uJyI+Jy4kdGhpcy0+TGFuZygnZWRpdF9wYWdlJyxBcnJheSgkcHJvYmxlbVsnYzFuYW1lJ10pKS4nPC9hPic7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRwcm9ibGVtWydjMmlkJ10uJyI+Jy4kdGhpcy0+TGFuZygnZWRpdF9wYWdlJyxBcnJheSgkcHJvYmxlbVsnYzJuYW1lJ10pKS4nPC9hPic7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/X3N4Xz0nLiRfR0VUWydfc3hfJ10uJyZjb250ZW50X2lkPScuJHByb2JsZW1bJ2MxaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2UnLEFycmF5KCRwcm9ibGVtWydjMW5hbWUnXSkpLic8L2E+JzsKICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9IicuJHJvb3RfdXJsLicvJy4kY29uZmlnWydhZG1pbl9kaXInXS4nL2VkaXRjb250ZW50LnBocD9fc3hfPScuJF9HRVRbJ19zeF8nXS4nJmNvbnRlbnRfaWQ9Jy4kcHJvYmxlbVsnYzJpZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJHByb2JsZW1bJ2MybmFtZSddKSkuJzwvYT4nOwogICAgICAgIH0KICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgIH0KICAgIH0KICAgIC8vIFBhZ2VzIHdpdGggZHVwbGljYXRlIGRlc2NyaXB0aW9uCiAgICAkcXVlcnkgPSAnU0VMRUNUIHAxLmNvbnRlbnRfaWQgQVMgYzFpZCwgcDIuY29udGVudF9pZCBBUyBjMmlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnRfcHJvcHMgcDEgSU5ORVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nY29udGVudF9wcm9wcyBwMiBPTiAocDEucHJvcF9uYW1lID0gcDIucHJvcF9uYW1lIEFORCBwMS5wcm9wX25hbWUgPSAiJy5zdHJfcmVwbGFjZSgnICcsJ18nLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXNjcmlwdGlvbl9ibG9jaycsJycpKS4nIiBBTkQgcDEuY29udGVudF9pZCA8IHAyLmNvbnRlbnRfaWQgQU5EIHAxLmNvbnRlbnQgPD4gIiIgQU5EIHAyLmNvbnRlbnQgPD4gIiIpIFdIRVJFIHAxLmNvbnRlbnQgPSBwMi5jb250ZW50IExJTUlUIDAsMjEnOwogICAgJHJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgIGlmICgkcmVzdWx0LT5SZWNvcmRDb3VudCgpID4gMCkgewoKICAgICAgd2hpbGUgKCRwcm9ibGVtID0gJHJlc3VsdC0+ZmV0Y2hSb3coKSkgewogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgY29udGVudF9pZCwgY29udGVudF9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ2NvbnRlbnQgV0hFUkUgY29udGVudF9pZCA9ICcuJHByb2JsZW1bJ2MxaWQnXS4nIE9SIGNvbnRlbnRfaWQgPSAnLiRwcm9ibGVtWydjMmlkJ107CiAgICAgICAgJHJlc3VsdDEgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgICAgJGZpcnN0ID0gJHJlc3VsdDEtPmZldGNoUm93KCk7CiAgICAgICAgJHNlY29uZCA9ICRyZXN1bHQxLT5mZXRjaFJvdygpOwogICAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICAgJGFsZXJ0Wydncm91cCddID0gJ2Rlc2NyaXB0aW9ucyc7CiAgICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZHVwbGljYXRlX2Rlc2NyaXB0aW9ucycsQXJyYXkoJGZpcnN0Wydjb250ZW50X25hbWUnXSwkc2Vjb25kWydjb250ZW50X25hbWUnXSkpOwogICAgICAgIGlmIChpc3NldCgkX0dFVFsnc3BfJ10pKSB7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/c3BfPScuJF9HRVRbJ3NwXyddLicmY29udGVudF9pZD0nLiRmaXJzdFsnY29udGVudF9pZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJGZpcnN0Wydjb250ZW50X25hbWUnXSkpLic8L2E+JzsKICAgICAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJzxhIGhyZWY9IicuJHJvb3RfdXJsLicvJy4kY29uZmlnWydhZG1pbl9kaXInXS4nL2VkaXRjb250ZW50LnBocD9zcF89Jy4kX0dFVFsnc3BfJ10uJyZjb250ZW50X2lkPScuJHNlY29uZFsnY29udGVudF9pZCddLiciPicuJHRoaXMtPkxhbmcoJ2VkaXRfcGFnZScsQXJyYXkoJHNlY29uZFsnY29udGVudF9uYW1lJ10pKS4nPC9hPic7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICc8YSBocmVmPSInLiRyb290X3VybC4nLycuJGNvbmZpZ1snYWRtaW5fZGlyJ10uJy9lZGl0Y29udGVudC5waHA/X3N4Xz0nLiRfR0VUWydfc3hfJ10uJyZjb250ZW50X2lkPScuJGZpcnN0Wydjb250ZW50X2lkJ10uJyI+Jy4kdGhpcy0+TGFuZygnZWRpdF9wYWdlJyxBcnJheSgkZmlyc3RbJ2NvbnRlbnRfbmFtZSddKSkuJzwvYT4nOwogICAgICAgICAgJGFsZXJ0WydsaW5rcyddW10gPSAnPGEgaHJlZj0iJy4kcm9vdF91cmwuJy8nLiRjb25maWdbJ2FkbWluX2RpciddLicvZWRpdGNvbnRlbnQucGhwP19zeF89Jy4kX0dFVFsnX3N4XyddLicmY29udGVudF9pZD0nLiRzZWNvbmRbJ2NvbnRlbnRfaWQnXS4nIj4nLiR0aGlzLT5MYW5nKCdlZGl0X3BhZ2UnLEFycmF5KCRzZWNvbmRbJ2NvbnRlbnRfbmFtZSddKSkuJzwvYT4nOwogICAgICAgIH0KICAgICAgICAkYWxlcnRzW10gPSAkYWxlcnQ7CiAgICAgIH0KICAgIH0KICAgIC8vIE5vIGF1dGhvciBwcm92aWRlZAogICAgaWYgKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtZXRhX3B1Ymxpc2hlcicsJycpID09ICcnKSB7CiAgICAgICRhbGVydCA9IEFycmF5KCk7CiAgICAgICRhbGVydFsnZ3JvdXAnXSA9ICdzZXR0aW5ncyc7CiAgICAgICRhbGVydFsnbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3Byb3ZpZGVfYW5fYXV0aG9yJyk7CiAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5MYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J21ldGFzZXR0aW5ncycpKTsKICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgfQogICAgcmV0dXJuICRhbGVydHM7CiAgfQoKICBmdW5jdGlvbiBnZXROb3RpY2VBbGVydHMoKSB7CiAgICAkYWxlcnRzID0gQXJyYXkoKTsKICAgIC8vIE5vIHN0YW5kYXJkIG1ldGEKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWV0YV9zdGFuZGFyZCcsMSkgIT0gMSkgewogICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCd1c2Vfc3RhbmRhcmRfbWV0YScpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidtZXRhc2V0dGluZ3MnKSk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH0KICAgIC8vIFN1Ym1pdCBhIHNpdGVtYXAKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnLDEpICE9IDEpIHsKICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnY3JlYXRlX2Ffc2l0ZW1hcCcpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH1lbHNlaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3B1c2hfc2l0ZW1hcCcsMSkgIT0gMSkgewogICAgICAvLyBBdXRvbWF0aWNhbGx5IHN1Ym1pdCB0aGUgc2l0ZW1hcAogICAgICAkYWxlcnQgPSBBcnJheSgpOwogICAgICAkYWxlcnRbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdhdXRvbWF0aWNhbGx5X3VwbG9hZF9zaXRlbWFwJyk7CiAgICAgICRhbGVydFsnbGlua3MnXVtdID0gJHRoaXMtPmNyZWF0ZUxpbmsobnVsbCwgJ2RlZmF1bHRhZG1pbicsIG51bGwsICR0aGlzLT5MYW5nKCd2aXNpdF9zZXR0aW5ncycpLCBBcnJheSgndGFiJz0+J3NpdGVtYXBzZXR0aW5ncycpKTsKICAgICAgJGFsZXJ0c1tdID0gJGFsZXJ0OwogICAgfQogICAgLy8gQ3JlYXRlIGEgcm9ib3RzLnR4dCBmaWxlCiAgICBpZiAoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9yb2JvdHMnLDEpICE9IDEpIHsKICAgICAgJGFsZXJ0ID0gQXJyYXkoKTsKICAgICAgJGFsZXJ0WydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnY3JlYXRlX3JvYm90cycpOwogICAgICAkYWxlcnRbJ2xpbmtzJ11bXSA9ICR0aGlzLT5jcmVhdGVMaW5rKG51bGwsICdkZWZhdWx0YWRtaW4nLCBudWxsLCAkdGhpcy0+TGFuZygndmlzaXRfc2V0dGluZ3MnKSwgQXJyYXkoJ3RhYic9PidzaXRlbWFwc2V0dGluZ3MnKSk7CiAgICAgICRhbGVydHNbXSA9ICRhbGVydDsKICAgIH0KICAgIC8vIFNldCBhIGRlZmF1bHQgaW1hZ2UKICAgIHJldHVybiAkYWxlcnRzOwogIH0KCiAgZnVuY3Rpb24gZ2V0X2tleXdvcmRzKCRzb3VyY2UsICRtaW5sZW5ndGggPSA2KSB7CiAgICAkc291cmNlID0gcHJlZ19yZXBsYWNlKCcvXHtbXlx9XStcfS9pc1UnLCAnJywgdXRmOF9kZWNvZGUoJHNvdXJjZSkpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCJcbiIsIiAiLHN0cmlwX3RhZ3MoJHNvdXJjZSkpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCctJywnICcsJHNvdXJjZSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJy4nLCcgJywkc291cmNlKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgnLCcsJyAnLCRzb3VyY2UpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCchJywnICcsJHNvdXJjZSk7CiAgICAkc291cmNlID0gc3RyX3JlcGxhY2UoJz8nLCcgJywkc291cmNlKTsKICAgICRzb3VyY2UgPSBzdHJfcmVwbGFjZSgnOicsJyAnLCRzb3VyY2UpOwogICAgJHNvdXJjZSA9IHN0cl9yZXBsYWNlKCcgICcsJyAnLCRzb3VyY2UpOwogICAgJGtleXdvcmRzID0gZXhwbG9kZSgnICcsJHNvdXJjZSk7CiAgICBmb3JlYWNoICgka2V5d29yZHMgYXMgJGtleT0+JHZhbHVlKSB7CiAgICAgIGlmIChzdHJsZW4oJHZhbHVlKSA8ICRtaW5sZW5ndGgpIHsKICAgICAgICB1bnNldCgka2V5d29yZHNbJGtleV0pOwogICAgICB9ZWxzZXsKICAgICAgICAka2V5d29yZHNbJGtleV0gPSBodG1sZW50aXRpZXModHJpbSgkdmFsdWUpKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICRrZXl3b3JkczsKICB9CgogIGZ1bmN0aW9uIGdldF9oZWFkbGluZXMoJGZpbGUpewogICAgJGgxdGFncyA9IHByZWdfbWF0Y2hfYWxsKCIvKDxoMS4qPikoXHcuKikoPFwvaDE+KS9pc3htVSIsJGZpbGUsJHBhdHRlcm5zKTsKICAgICRjb250ZW50ID0gIiI7CiAgICBmb3JlYWNoKCRwYXR0ZXJuc1syXSBhcyAkdGFnKSB7CiAgICAgICRjb250ZW50IC49ICIgIi4kdGFnOwogICAgfQogICAgJGgydGFncyA9IHByZWdfbWF0Y2hfYWxsKCIvKDxoMi4qPikoXHcuKikoPFwvaDI+KS9pc3htVSIsJGZpbGUsJHBhdHRlcm5zKTsKICAgIGZvcmVhY2goJHBhdHRlcm5zWzJdIGFzICR0YWcpIHsKICAgICAgJGNvbnRlbnQgLj0gIiAiLiR0YWc7CiAgICB9CiAgICAkaDN0YWdzID0gcHJlZ19tYXRjaF9hbGwoIi8oPGgzLio+KShcdy4qKSg8XC9oMz4pL2lzeG1VIiwkZmlsZSwkcGF0dGVybnMpOwogICAgZm9yZWFjaCgkcGF0dGVybnNbMl0gYXMgJHRhZykgewogICAgICAkY29udGVudCAuPSAiICIuJHRhZzsKICAgIH0KICAgICRoNHRhZ3MgPSBwcmVnX21hdGNoX2FsbCgiLyg8aDQuKj4pKFx3LiopKDxcL2g0PikvaXN4bVUiLCRmaWxlLCRwYXR0ZXJucyk7CiAgICBmb3JlYWNoKCRwYXR0ZXJuc1syXSBhcyAkdGFnKSB7CiAgICAgICRjb250ZW50IC49ICIgIi4kdGFnOwogICAgfQogICAgJGg1dGFncyA9IHByZWdfbWF0Y2hfYWxsKCIvKDxoNS4qPikoXHcuKikoPFwvaDU+KS9pc3htVSIsJGZpbGUsJHBhdHRlcm5zKTsKICAgIGZvcmVhY2goJHBhdHRlcm5zWzJdIGFzICR0YWcpIHsKICAgICAgJGNvbnRlbnQgLj0gIiAiLiR0YWc7CiAgICB9CiAgICAkaDZ0YWdzID0gcHJlZ19tYXRjaF9hbGwoIi8oPGg2Lio+KShcdy4qKSg8XC9oNj4pL2lzeG1VIiwkZmlsZSwkcGF0dGVybnMpOwogICAgZm9yZWFjaCgkcGF0dGVybnNbMl0gYXMgJHRhZykgewogICAgICAkY29udGVudCAuPSAiICIuJHRhZzsKICAgIH0KICAgIHJldHVybiAkY29udGVudDsKICB9CgogIGZ1bmN0aW9uIGdldEtleXdvcmRTdWdnZXN0aW9ucygkY29udGVudF9pZCkgewogICAgJHNtYXJ0eSA9IGNtc21zKCktPkdldFNtYXJ0eSgpOwogICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAkY29udGVudG9wcyA9IGNtc21zKCktPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CiAgICBpZiAoISRjdXJjb250ZW50ID0gJGNvbnRlbnRvcHMtPkxvYWRDb250ZW50RnJvbUlkICgkY29udGVudF9pZCkpIHsKICAgICAgcmV0dXJuOwogICAgfQogICAgJGRlc2NyaXB0aW9uX2lkID0gc3RyX3JlcGxhY2UoJyAnLCdfJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVzY3JpcHRpb25fYmxvY2snLCcnKSk7CgogICAgLyogR2VuZXJhdGUga2V5d29yZHMgZnJvbSBwYWdlIHRpdGxlLCBkZXNjcmlwdGlvbiBhbmQgY29udGVudCAqLwogICAgJHRpdGxlX2tleXdvcmRzID0gJHRoaXMtPmdldF9rZXl3b3JkcygkY3VyY29udGVudC0+R2V0UHJvcGVydHlWYWx1ZSgnY29udGVudF9lbicpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5sZW5ndGgnLCc2JykpOwoKICAgICRkZXNjcmlwdGlvbl9rZXl3b3JkcyA9ICR0aGlzLT5nZXRfa2V5d29yZHMoJGN1cmNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJGRlc2NyaXB0aW9uX2lkKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleXdvcmRfbWlubGVuZ3RoJywnNicpKTsKCiAgICAkaGVhZGxpbmVfa2V5d29yZHMgPSAkdGhpcy0+Z2V0X2tleXdvcmRzKCR0aGlzLT5nZXRfaGVhZGxpbmVzKCRjdXJjb250ZW50LT5OYW1lKCkpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5sZW5ndGgnLCc2JykpOwoKICAgICRjb250ZW50X2tleXdvcmRzID0gJHRoaXMtPmdldF9rZXl3b3JkcygkY3VyY29udGVudC0+R2V0UHJvcGVydHlWYWx1ZSgnY29udGVudF9lbicpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5sZW5ndGgnLCc2JykpOwoKICAgICRvdGhlcl9rZXl3b3JkcyA9IEFycmF5KCk7CgogICAgZm9yZWFjaCgkdGl0bGVfa2V5d29yZHMgYXMgJGtleXdvcmQpIHsKICAgICAgaWYgKCFpc3NldCgkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdKSkgewogICAgICAgICRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gPSAwOwogICAgICB9CiAgICAgICRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0gPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF90aXRsZV93ZWlnaHQnLCc2Jyk7CiAgICB9CiAgICBmb3JlYWNoKCRkZXNjcmlwdGlvbl9rZXl3b3JkcyBhcyAka2V5d29yZCkgewogICAgICBpZiAoIWlzc2V0KCRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0pKSB7CiAgICAgICAgJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSA9IDA7CiAgICAgIH0KICAgICAgJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSArPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9kZXNjcmlwdGlvbl93ZWlnaHQnLCc0Jyk7CiAgICB9CiAgICBmb3JlYWNoKCRoZWFkbGluZV9rZXl3b3JkcyBhcyAka2V5d29yZCkgewogICAgICBpZiAoIWlzc2V0KCRvdGhlcl9rZXl3b3Jkc1ska2V5d29yZF0pKSB7CiAgICAgICAgJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSA9IDA7CiAgICAgIH0KICAgICAgJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSArPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9oZWFkbGluZV93ZWlnaHQnLCcyJyk7CiAgICB9CiAgICBmb3JlYWNoKCRjb250ZW50X2tleXdvcmRzIGFzICRrZXl3b3JkKSB7CiAgICAgIGlmICghaXNzZXQoJG90aGVyX2tleXdvcmRzWyRrZXl3b3JkXSkpIHsKICAgICAgICAkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdID0gMDsKICAgICAgfQogICAgICAkb3RoZXJfa2V5d29yZHNbJGtleXdvcmRdICs9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2NvbnRlbnRfd2VpZ2h0JywnMScpOwogICAgfQoKICAgIGFyc29ydCgkb3RoZXJfa2V5d29yZHMpOwoKICAgICRleGNsdWRlX2xpc3QgPSBleHBsb2RlKCcgJyxzdHJ0b3VwcGVyKHV0ZjhfZGVjb2RlKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXl3b3JkX2V4Y2x1ZGUnLCcnKSkpKTsKCiAgICBmb3JlYWNoICgkb3RoZXJfa2V5d29yZHMgYXMgJGtleT0+JHZhbHVlKSB7CiAgICAgIGlmICgkdmFsdWUgPCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgna2V5d29yZF9taW5pbXVtX3dlaWdodCcsJzcnKSkgewogICAgICAgIHVuc2V0KCRvdGhlcl9rZXl3b3Jkc1ska2V5XSk7CiAgICAgIH1lbHNlaWYgKGluX2FycmF5KHN0cnRvdXBwZXIoJGtleSksJGV4Y2x1ZGVfbGlzdCkpIHsKICAgICAgICB1bnNldCgkb3RoZXJfa2V5d29yZHNbJGtleV0pOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuICRvdGhlcl9rZXl3b3JkczsKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZVJvYm90c1RYVCgpIHsKICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAkcm9vdF91cmwgPSBlbXB0eSgkX1NFUlZFUlsnSFRUUFMnXSkgPyAkY29uZmlnWydyb290X3VybCddIDogJGNvbmZpZ1snc3NsX3VybCddOwoKICAgICRmcCA9IEBmb3BlbigkY29uZmlnWydyb290X3BhdGgnXS4nL3JvYm90cy50eHQnLCd3Jyk7CgogICAgLy8gQ3JlYXRlIHJvYm90cy50eHQKICAgIGlmICgkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3JlYXRlX3NpdGVtYXAnLDEpID09IDEpIHsKICAgICAgZndyaXRlKCRmcCwgIlNpdGVtYXA6ICIuJHJvb3RfdXJsLiIvc2l0ZW1hcC54bWxcbiIpOwogICAgfQogICAgQGZ3cml0ZSgkZnAsICJVc2VyLWFnZW50OiAqXG4iKTsKICAgIEBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJHJvb3RfdXJsLiIvY29udHJpYi9cbiIpOwogICAgQGZ3cml0ZSgkZnAsICJEaXNhbGxvdzogIi4kcm9vdF91cmwuIi9kb2MvXG4iKTsKICAgIEBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJHJvb3RfdXJsLiIvbGliL1xuIik7CiAgICBAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRyb290X3VybC4iL21vZHVsZXMvXG4iKTsKICAgIEBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJHJvb3RfdXJsLiIvcGx1Z2lucy9cbiIpOwogICAgQGZ3cml0ZSgkZnAsICJEaXNhbGxvdzogIi4kcm9vdF91cmwuIi9zY3JpcHRzL1xuIik7CiAgICBAZndyaXRlKCRmcCwgIkRpc2FsbG93OiAiLiRyb290X3VybC4iL3RtcC9cbiIpOwoKICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfc2VvdG9vbHMyIFdIRVJFIGluZGV4YWJsZSA9IDAiOwogICAgJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKICAgICRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgIHdoaWxlICgkcGFnZSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKCiAgICAgIGlmICgkY3VyY29udGVudCA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCAoJHBhZ2VbJ2NvbnRlbnRfaWQnXSkpIHsKICAgICAgICAkdXJsID0gJGN1cmNvbnRlbnQtPkdldFVSTCgpOwogICAgICAgIEBmd3JpdGUoJGZwLCAiRGlzYWxsb3c6ICIuJHVybC4iXG4iKTsKICAgICAgfQogICAgfQogICAgQGZjbG9zZSgkZnApOwogIH0KCiAgZnVuY3Rpb24gY3JlYXRlU2l0ZW1hcCgkcHVzaCA9IGZhbHNlKSB7CiAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgJHJvb3RfdXJsID0gZW1wdHkoJF9TRVJWRVJbJ0hUVFBTJ10pID8gJGNvbmZpZ1sncm9vdF91cmwnXSA6ICRjb25maWdbJ3NzbF91cmwnXTsKICAgICRyb290X3BhdGggPSAkY29uZmlnWydyb290X3BhdGgnXTsKICAgICRtYXBfcGF0aCA9ICRyb290X3BhdGguRElSRUNUT1JZX1NFUEFSQVRPUi4nc2l0ZW1hcC54bWwnOwogICAgCiAgICAkZnAgPSBmb3BlbigkbWFwX3BhdGgsJ3cnKTsKICAgIC8vIENyZWF0ZSBzaXRlbWFwCgogICAgZndyaXRlKCRmcCwgIjw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04Jz8+XG4iKTsKICAgIGZ3cml0ZSgkZnAsICI8dXJsc2V0IHhtbG5zPSdodHRwOi8vd3d3LnNpdGVtYXBzLm9yZy9zY2hlbWFzL3NpdGVtYXAvMC45Jz5cblxuIik7CgogICAgJGNvbnRlbnRvcHMgPSBjbXNtcygpLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidjb250ZW50IFdIRVJFIGFjdGl2ZSA9IDEgQU5EIHR5cGUgIT0gImVycm9ycGFnZSIgT1JERVIgQlkgaGllcmFyY2h5IEFTQyc7CiAgICAkcmVzdWx0ID0mICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwogICAgCiAgICBpZiAoJHJlc3VsdC0+UmVjb3JkQ291bnQoKSA+IDAgKSB7CiAgICAgIHdoaWxlICgkcGFnZSA9ICRyZXN1bHQtPmZldGNoUm93KCkpIHsKICAgICAgICAKICAgICAgICBpZiAoJGN1cmNvbnRlbnQgPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQgKCRwYWdlWydjb250ZW50X2lkJ10pKSB7CgovLyAgICAgICAgICBpZiAoJGN1cmNvbnRlbnQtPkFjdGl2ZSgpICYmICRjdXJjb250ZW50LT5TaG93SW5NZW51KCkpIHsKICAgICAgICAgIGlmICgkY3VyY29udGVudC0+QWN0aXZlKCkpIHsKICAgICAgICAgICAgJHVybCA9ICRjdXJjb250ZW50LT5HZXRVUkwoKTsKICAgICAgICAgICAgaWYgKCR1cmwgPT0gIiMiKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCgovLyAgICAgICAgICAgIGlmIChzdHJwb3MoJHVybCwgJHJvb3RfdXJsKSA9PT0gZmFsc2UpIHsKLy8gICAgICAgICAgICAgIGNvbnRpbnVlOwovLyAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHN0cnBvcyhzdHJzdHIoJHVybCwnOicpLCBzdHJzdHIoJHJvb3RfdXJsLCc6JykpID09PSBmYWxzZSkgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAkcHJpb3JpdHkgPSA4MDsKICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgc3Vic3RyX2NvdW50KCRwYWdlWydoaWVyYXJjaHknXSwnLicpOyAkaSsrKSB7CiAgICAgICAgICAgICAgJHByaW9yaXR5ICA9ICRwcmlvcml0eSAvIDI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRwYWdlWydkZWZhdWx0X2NvbnRlbnQnXSA9PSAxKSB7CiAgICAgICAgICAgICAgJHByaW9yaXR5ID0gMTAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Nlb3Rvb2xzMiBXSEVSRSBjb250ZW50X2lkID0gJy4kcGFnZVsnY29udGVudF9pZCddOwogICAgICAgICAgICAkcmVzdWx0MiA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKICAgICAgICAgICAgJGluZm8gPSAkcmVzdWx0Mi0+ZmV0Y2hSb3coKTsKICAgICAgICAgICAgaWYgKGlzc2V0KCRpbmZvWydwcmlvcml0eSddKSAmJiAoJGluZm9bJ3ByaW9yaXR5J10gIT0gMCkgJiYgKCRpbmZvWydwcmlvcml0eSddICE9ICIiKSkgewogICAgICAgICAgICAgICRwcmlvcml0eSA9ICRpbmZvWydwcmlvcml0eSddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoIWlzc2V0KCRpbmZvWydpbmRleGFibGUnXSkgfHwgKCRpbmZvWydpbmRleGFibGUnXSA9PSAiIikgfHwgKCRpbmZvWydpbmRleGFibGUnXSA9PSAxKSkgewogICAgICAgICAgICAgIGZ3cml0ZSgkZnAsICI8dXJsPlxuIik7CiAgICAgICAgICAgICAgZndyaXRlKCRmcCwgIjxsb2M+Ii4kdXJsLiI8L2xvYz5cbiIpOwogICAgICAgICAgICAgIGZ3cml0ZSgkZnAsICI8bGFzdG1vZD4iLmRhdGUoIlktbS1kIiwgc3RydG90aW1lKCRwYWdlWydtb2RpZmllZF9kYXRlJ10pKS4iPC9sYXN0bW9kPlxuIik7CiAgICAgICAgICAgICAgZndyaXRlKCRmcCwgIjxjaGFuZ2VmcmVxPmFsd2F5czwvY2hhbmdlZnJlcT5cbiIpOwogICAgICAgICAgICAgIGZ3cml0ZSgkZnAsICI8cHJpb3JpdHk+Ii5udW1iZXJfZm9ybWF0KCRwcmlvcml0eSAvIDEwMCwgMSkuIjwvcHJpb3JpdHk+XG4iKTsKICAgICAgICAgICAgICBmd3JpdGUoJGZwLCAiPC91cmw+XG5cbiIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICAKICAgIGZ3cml0ZSgkZnAsICI8L3VybHNldD4iKTsKICAgIGZjbG9zZSgkZnApOwogICAgaWYgKCRwdXNoICE9IGZhbHNlICYmICRwdXNoICE9PTApIHsKICAgICAgLy8gUHVzaCBzaXRlbWFwIHRvIGdvb2dsZQogICAgICBpZiAoZmlsZV9leGlzdHMoJG1hcF9wYXRoKSkgewogICAgICAgICRnb29nbGUgPSAiaHR0cDovL3d3dy5nb29nbGUuY29tL3dlYm1hc3RlcnMvdG9vbHMvcGluZz9zaXRlbWFwPSIudXJsZW5jb2RlKCRtYXBfcGF0aCk7CiAgICAgICAgJGYgPSBAZm9wZW4oJGdvb2dsZSwiciIpOwogICAgICAgIGlmIChpc19yZXNvdXJjZSgkZikpCiAgICAgICAgZmNsb3NlKCRmKTsKICAgICAgfQoKICAgIH0KICB9Cgp9Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlIHR5cGU9J3RleHQvY3NzJz4Ke2xpdGVyYWx9CnAucGFnZXRleHQgewogIGNsZWFyOiBib3RoOwp9CmEgaW1nIHsKICBib3JkZXItc3R5bGU6IG5vbmUgIWltcG9ydGFudDsKfQp7L2xpdGVyYWx9Cjwvc3R5bGU+CgoKeyRtZXNzYWdlfQoKeyR0YWJfaGVhZGVyc30KCnskc3RhcnRfc2VvYWxlcnRzX3RhYn0KeyRhbGVydHN9CnskZW5kX3RhYn0KCnskc3RhcnRfcGFnZWRlc2NyaXB0aW9uc190YWJ9CnskcGFnZXNldHRpbmdzfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X21ldGFzZXR0aW5nc190YWJ9CnskbWV0YV9mb3JtfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X3NpdGVtYXBzZXR0aW5nc190YWJ9Cnskc2l0ZW1hcF9mb3JtfQp7JGVuZF90YWJ9Cgp7JHN0YXJ0X2tleXdvcmRzZXR0aW5nc190YWJ9Cnska2V5d29yZF9mb3JtfQp7JGVuZF90YWJ9Cgp7JHRhYl9mb290ZXJzfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4Ke2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9]]></data>
	</file>
</module>
