<?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>Uploads</name>
	<version>1.3.0-beta3</version>
  <mincmsversion>1.0.4</mincmsversion>
	<help>CjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5JdCBpcyBhIG1vZHVsZSBmb3IgYWxsb3dpbmcgcGVvcGxlIHRvIHVwbG9hZCBhbmQgZG93bmxvYWQgZmlsZXMgdG8gYW5kIGZyb20geW91ciBzaXRlLiAgSXQga2VlcHMgdHJhY2sgb2Ygd2hvIHVwbG9hZGVkIGEgZmlsZSwgYW5kIHdobyBoYXMgZG93bmxvYWRlZCBpdC4gIEFzIHdlbGwsIHlvdSBjYW4gc29ydCBmaWxlcyBpbnRvIGNhdGVnb3JpZXMsIGFuZCBtYW5hZ2UgdGhlIGZpbGVzIHRoYXQgd2VyZSB1cGxvYWRlZCBsaWtlIGV2ZXJ5IGFkbWluaXN0cmF0b3Igd291bGQgZG88L3A+IAo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+VG8gdXNlIHRoaXMgbW9kdWxlLCB0byBhbGxvdyB1c2VycyB0byB1cGxvYWQgZmlsZXMgdG8geW91ciBzaXRlLCB5b3Ugc2hvdWxkIGluc3RhbGwgdGhlIG1vZHVsZSwgYW5kIHRoZW4gY3JlYXRlIG9uZSBvciBtb3JlIGNhdGVnb3JpZXMgKGEuay5hKSBkaXJlY3RvcmllcyBmb3IgdGhlIHVwbG9hZGVkIGZpbGVzIHRvIGdvIGludG8uIFRoZW4gYWRkIGEgdGFnIGludG8gYSBwYWdlIG9yIHRlbXBsYXRlIHNvbWV3aGVyZSBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0iVXBsb2FkcyIgY2F0ZWdvcnk9InNvbWVjYXRlZ29yeSIgbW9kZT0ic29tZW1vZGUifS4gIFdoZXJlIG1vZGUgbWF0Y2hlcyBvbmUgb2YgdGhlIG1vZGVzIGxpc3RlZCBiZWxvdy4gIFRoZSBvdXRwdXQgd2lsbCBkaWZmZXIgZGVwZW5kaW5nIHVwb24gd2hpY2ggbW9kZSB5b3Ugc2VsZWN0LjwvcD4KPHA+VGhpcyBtb2R1bGUgY2FuIHVzZSB0aGUgRnJvbnRlbmRVc2VycyBtb2R1bGUgKG9wdGlvbmFsKSB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgYW55IGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlcnMgdG8gcGFydGx5IGZpbGwgaW4gdGhlIGZvcm0gd2hlbiB1cGxvYWRpbmcgZmlsZXM7PC9wPgo8aDM+UGVybWlzc2lvbnM8L2gzPgo8dWw+CjxsaT48ZW0+TWFuYWdlIFVwbG9hZHM8L2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBtYW5hZ2UgY2F0ZWdvcmllcywgYW5kIHRoZSBmaWxlcyB3aXRoaW4gdGhlbS48L2xpPgo8bGk+PGVtPk1vZGlmeSBUZW1wbGF0ZXM8L2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCBlZGl0IGFueSBvZiB0aGUgdGVtcGxhdGVzLjwvbGk+CjxsaT48ZW0+TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIGFueSBvZiB0aGUgZmlsZSBzZXR0aW5ncy48L2xpPgo8L3VsPgo8aDM+RW1haWxpbmc8L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyBjYXBhYmxlIG9mIHNlbmRpbmcgYW4gZW1haWwgd2hlbmV2ZXIgYSBmaWxlIGlzIHVwbG9hZGVkLCBzZWUgdGhlIHByZWZlcmVuY2VzIHRhYi4gIEhvd2V2ZXIsIHRvIGRvIHRoaXMgdGhlIDxiPkNNU01haWxlcjwvYj4gcGFja2FnZSBtdXN0IGJlIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZC4gIFRoaXMgaXMgYW4gPGVtPm9wdGlvbmFsPC9lbT4gc3RlcCwgYW5kIGlmIHRoZSBDTVNNYWlsZXIgbW9kdWxlIGlzIG5vdCBpbnN0YWxsZWQsIG5vdGhpbmcgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIsIG9ubHkgYSBsb2cgbWVzc2FnZSB3aWxsIGJlIHBsYWNlZCBpbnRvIHRoZSBhZG1pbiBsb2c8L3A+CjxoMz5TeXN0ZW0gU2V0dGluZ3M8L2gzPgo8cD48Yj5Ob3RlOjwvYj4gVGhpcyBtb2R1bGUgZG9lcyBub3QgYnlwYXNzIG9yIGdldCBwYXN0IGFueSBmaWxlIHNpemUgbGltaXRhdGlvbnMgaW4gcGhwLiAgSXQgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVtLiAgVGhlcmVmb3JlIHlvdSBtYXkgbmVlZCB0byBtb2RpZnkgeW91ciBwaHAuaW5pIGZpbGUgYW5kL29yIHlvdXIgaHR0cGQuY29uZiBmaWxlKHMpIHRvIGFsbG93IHlvdSB0byB1cGxvYWQgZmlsZXMgYXMgbGFyZ2UgYXMgd2hhdCB5b3UgaGF2ZSBzZXQgaW4gdGhlIHVwbG9hZHMgbW9kdWxlIHByZWZlcmVuY2VzLjwvcD4KPGgzPkFwYWNoZSBOb3RlczwvaDM+CjxwPkluIG9yZGVyIHRvIGFsbG93IGxhcmdlIGZpbGUgdXBsb2FkcywgeW91IG1heSBuZWVkIHRvIG1vZGlmeSB0aGUgdXBsb2FkX21heF9maWxlc2l6ZSBwYXJhbWV0ZXIgaW4geW91ciBwaHAuaW5pICBJbiBhZGRpdGlvbiwgdGhlIExpbWl0UmVxdWVzdEJvZHkgcGFyYW1ldGVyIGluIHlvdXIgYXBhY2hlIGNvbmZpZ3VyYXRpb24sIG1heSBuZWVkIHRvIGJlIGFkanVzdGVkIHRvIG1hdGNoIHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlcjwvcD4KPHA+Tm90ZTogIHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBjYW4gYmUgc3BlY2lmaWVkIGluIGJ5dGVzLCBraWxvYnl0ZXMsIG9yIG1lZ2FieXRlcywgaG93ZXZlciB0aGUgTGltaXRSZXF1ZXRCb2R5IHBhcmFtZXRlciBpcyBvbmx5IHNwZWNpZmllZCBpbiBieXRlczwvcD4KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWxldHlwZXM9IiIgLSBEaXNwbGF5IG9ubHkgZmlsZXMgd2hvc2UgdHlwZSBtYXRjaGVzIHRoaXMgY29tbWEgc2VwYXJhdGVkIGxpc3Q8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vY2FwdGNoYT0iIiAtIERpc2FibGUgY2FwdGNoYSBzdXBwb3J0IChvbiBieSBkZWZhdWx0KSBpbiB0aGUgdXBsb2FkIGZvcm08L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRldGFpbHRlbXBsYXRlPSIiIC0gVXNlIGEgdGVtcGxhdGUgd2l0aCB0aGlzIG5hbWUgZm9yIHRoZSBkZXRhaWxlZCByZXBvcnQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0ZW1wbGF0ZT0iIiAtIFVzZSBhIHRlbXBsYXRlIHdpdGggdGhpcyBuYW1lIGZvciB0aGlzIHJlcG9ydCBvciBmb3JtLiAgVGhlIG1vZGUgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hhdCB0eXBlIG9mIHRlbXBsYXRlIGlzIHJlcXVpcmVyZCwgYW5kIHRoZW4gYSBuYW1lIG1hdGNoIGlzIHBlcmZvcm1lZCB3aXRoaW4gdGhhdCB0eXBlLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdXNlX3N0cmljdF9yZWdleHA9ImZhbHNlIiAtIFRoZSBmaWx0ZXIgZmllbGQgaXMgdXNlZCBhcyBhIHN0cmljdCByZWdleHAgd2l0aG91dCBwcmVwcm9jZXNzaW5nIG9mIHNwYWNlczwvbGk+PGxpPm1vZGU9InN1bW1hcnkiIC0gCiAgPHVsPgogIDxsaT48ZW0+ZGV0YWlsZWQ8L2VtPiAtIERpc3BsYXkgYSBkZXRhaWxlZCBsaXN0IG9mIGFsbCBmaWxlcyBpbiB0aGUgY2F0ZWdvcnk8L2xpPgogIDxsaT48ZW0+dXBsb2FkPC9lbT4gLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBhIGZyb250ZW5kIHVzZXIgdG8gdXBsb2FkIGEgZmlsZTwvbGk+CiAgPGxpPjxlbT51cmwgPGk+b3I8L2k+IGxpbms8L2VtPiAtIERpc3BsYXkgYSBsaW5rIHRvIGEgZmlsZTwvbGk+CiAgPGxpPjxlbT5zdW1tYXJ5PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyaXplZCBsaXN0IG9mIGFsbCBmaWxlcyBpbiB0aGUgY2F0ZWdvcnk8L2xpPgogIDxsaT48ZW0+c2luZ2xlPC9lbT4gLSBEaXNwbGF5IGEgZGV0YWlsZWQgcmVwb3J0IGFib3V0IGEgc2luZ2xlIHVwbG9hZDwvbGk+CiAgPGxpPjxlbT5zaW5nbGVzdW1tYXJ5PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyaXplZCByZXBvcnQgYWJvdXQgYSBzaW5nbGUgdXBsb2FkL2xpPgogIDwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBub19pbml0aWFsPSIxIiAtIERvIG5vdCBkaXNwbGF5IGFueSBpbml0aWFsIHJlc3VsdHMgd2hlbiB0aGUgZmlsdGVyIGlzIG9uPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWx0ZXI9InllcyIgLSBEaXNwbGF5IHRoZSBmaWx0ZXJpbmcgZm9ybTwvbGk+PGxpPmNhdGVnb3J5PSJ1cGxvYWRfY2F0ZWdvcnkiIC0gCmNhdGVnb3J5PSJuYW1lIgo8cD48Yj5Ob3RlOjwvYj4gQ2F0ZWdvcnkgY2FuIGJlICJhbGwiLCB3aGljaCB3aWxsIGxpc3QgYWxsIG9mIHRoZSB1cGxvYWRzIGZyb20gYWxsIDxlbT5saXN0YWJsZTwvZW0+IGNhdGVnb3JpZXM8L3A+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWxlX2V4dGVuc2lvbnM9ImV4dDEsZXh0MixleHQzIiAtICAKZmlsZV9leHRlbnNpb25zPSJleHQxLGV4dDIsZXh0MyIKPHA+dmFsaWQgb25seSB3aGVuIG1vZGU9dXBsb2FkLCB0aGlzIHBhcmFtZXRlciBsaW1pdHMgdGhlIHR5cGVzIG9mIGZpbGVzIHRoYXQgY2FuIGJlIHVwbG9hZGVkLiAgSXQgb3ZlcnJpZGVzIGFueSBzZXR0aW5ncyBpbiB0aGUgbW9kdWxlIHByZWZlcmVuY2VzLjwvcD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNvcnRvcmRlcj0iZGF0ZV9hc2MiIC0gCiAgPHA+U29ydCBPcmRlcnMKICA8dWw+CiAgPGxpPjxlbT5kYXRlX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgZGF0ZTwvbGk+CiAgPGxpPjxlbT5kYXRlX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBkYXRlPC9saT4KICA8bGk+PGVtPm5hbWVfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBuYW1lPC9saT4KICA8bGk+PGVtPm5hbWVfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIG5hbWU8L2xpPgogIDxsaT48ZW0+c2l6ZV9hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIHNpemU8L2xpPgogIDxsaT48ZW0+c2l6ZV9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgc2l6ZTwvbGk+CiAgPGxpPjxlbT5kZXNjX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgZGVzY3JpcHRpb248L2xpPgogIDxsaT48ZW0+ZGVzY19kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgZGVzY3JpcHRpb248L2xpPgogIDxsaT48ZW0+YXV0aG9yX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgYXV0aG9yPC9saT4KICA8bGk+PGVtPmF1dGhvcl9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgYXV0aG9yPC9saT4KICA8bGk+PGVtPmlwX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgaXAgYWRkcmVzczwvbGk+CiAgPGxpPjxlbT5pcF9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgaXAgYWRkcmVzczwvbGk+CiAgPGxpPjxlbT5yYW5kb208L2VtPiAtIFJhbmRvbSBzb3J0IG9yZGVyPC9saT4KICA8L3VsPgogIDwvcD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNvdW50PSIiIC0gCmNvdW50PSJOIgo8cD5BIHBhcmFtZXRlciB0byBsaXN0IG9ubHkgdGhlIGZpcnN0IE4gcmVzdWx0cyBvZiB0aGUgcXVlcnkuICBQYWdpbmF0aW9uIHdvdWxkIGJlIGJldHRlciwgYnV0IHRoaXMgd2lsbCBkbyB0aGUgdHJpY2sgZm9yIG5vdzwvcD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHVwbG9hZF9pZD0iaWQiIC0gCnVwbG9hZF9pZD0iaWQiIC0gc3BlY2lmeSBhIHNpbmdsZSBmaWxlIGZvciB0aGUgdXJsL2xpbmsgb3Igc2luZ2xlIG1vZGVzIChhYm92ZSk8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG5vYXV0aG9yPSIxIiAtIEhpZGUgdGhlIGF1dGhvciBmaWVsZCBmcm9tIHRoZSB1cGxvYWQgZm9ybS4gIFRoaXMgcGFyYW1ldGVyIGlzIG9ubHkgdmFsaWQgd2hlbiBtb2RlPSd1cGxvYWQnLiAgSWYgVGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlIGlzIHByZXNlbnQsIGFuZCBhIHVzZXIgaXMgY3VycmVudGx5IGxvZ2dlZCBpbiwgYSBoaWRkZW4gZmllbGQgd2lsbCBob2xkIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJuYW1lPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBrZXk9InZhbHVlIiAtIFByb3ZpZGUgYW4gYWRkaXRpb25hbCBrZXkgdG8gdGhlIG1vZHVsZSBmb3IgZnVydGhlciBvcmdhbml6aW5nIHVwbG9hZHMuICBUaGlzIGtleSBjb3VsZCBiZSBhbiBlbmNvZGVkIHN0cmluZyBsaWtlOiAnZmV1c2Vyczp1aWQnLCBldGMuICBUaGlzIHBhcmFtZXRlciBpcyB1c3VhbGx5IG9ubHkgbmVlZGVkIHdoZW4gZW1iZWRkaW5nIHRoZSB1cGxvYWRzIG1vZHVsZSBpbnRvIGFub3RoZXIgbW9kdWxlPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtyb2JAdGVjaGNvbS5keW5kbnMub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMy4wLWJldGEzPGJyIC8+PGJyIC8+Q2hhbmdlIEhpc3Rvcnk6PGJyIC8+PHVsPgo8bGk+CjxwPlZlcnNpb24gMS4wLiAtIFNlcHRlbWJlciAyMDA1LjwvcD4KPHA+IEluaXRpYWwgUmVsZWFzZS48L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjAxLiAtIFNlcHRlbWJlciAyMDA1PC9wPgo8cD5NaW5vciBmaXhlcy48L3A+PC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMDIuIC0gU2VwdGVtYmVyIDIwMDU8L3A+CjxwPkFkZGVkIGFiaWxpdHkgdG8gc3BlY2lmeSBzb3J0IG9yZGVyPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4wMy4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4KPHA+Rml4IHJlZ2FyZGluZyBjb25mbGljdCBpbiB0ZW1wbGF0ZSBuYW1lczwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMDQuIC0gU2VwdGVtYmVyIDIwMDU8L3A+CjxwPkFkZGVkIGFiaWxpdHkgdG8gcmUtc2NhbiBhIGRpcmVjdG9yeSwgYW5kIHRvIHVwbG9hZCBmaWxlcyBmcm9tIHRoZSBhZG1pbiBwYWdlPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4wNS4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4KPHA+Rml4ZWQgc29tZSBQSFAgdmFyaWFibGUgaXNzdWVzPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4wNi4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4KPHA+QWRkZWQgYXV0aG9yIGZpZWxkIHRvIHRoZSBhZG1pbiBwYW5lbCB1cGxvYWQgZm9ybSwgYWRkZWQgYSBzdW1tYXJ5IGZpZWxkLCBhbmQgbWFkZSBkZXNjcmlwdGlvbiBhIHRleHQgYXJlYSwgYW5kIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkgYSBkZXN0aW5hdGlvbiBmaWxlIG5hbWU8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjA3LiAtIFNlcHRlbWJlciAyMDA1PC9wPgo8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byByZW5hbWUgZmlsZXMgYW5kIGZpeGVkIGEgc2NhbiBlcnJvcjwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMDguIC0gU2VwdGVtYmVyIDIwMDU8L3A+CjxwPkJldHRlciBoYW5kbGluZyBvZiBuYW1lcyB3aXRoIHNwYWNlcywgYW5kIGEgZmV3IG1pbm9yIGVycm9ycyBmaXhlZC4gIEFkZGVkIHN3ZWRpc2ggdHJhbnNsYXRpb24gKHRoYW5rcyB3ZXN0aXMpPC9wPjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuMC4gLSBPY3RvYmVyIDIwMDU8L3A+CiA8dWw+CiAgIDxsaT5Nb2RpZmllZCBBdHRlbXB0VXBsb2FkIGZ1bmN0aW9uIHNvIGl0IGNvdWxkIGJlIGNhbGxlZCBleHRlcm5hbGx5PC9saT4KICAgPGxpPkFkZGVkIEdldFVwbG9hZERldGFpbHMgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFsbCBvZiB0aGUgZGV0YWlscyBhYm91dCBhIG1vZHVsZSwgaW5jbHVkaW5nIGEgbGluazwvbGk+CiAgIDxsaT5BZGRlZCBSZWRpcmVjdHMgc28gdGhhdCB3b3JraW5nIHdpdGggdGhlIG1vZHVsZSBpcyBhbG90IG5pY2VyLCBpdCByZXR1cm5zIHRvIHRoZSByaWdodCB0YWI8L2xpPgogICA8bGk+Q2hhbmdlZCB0aGUgZnJvbnQgdGVtcGxhdGUgdG8gbG9vayBhIGxpdHRsZSBiZXR0ZXIgYW5kIG1ha2UgbW9yZSBzZW5zZTwvbGk+CiAgIDxsaT5GaXhlcyB0byB0aGUgdXBsb2FkcyBzdHVmZiBzbyB0aGF0IHRoZSBkZXNjcmlwdGlvbiBpcyBzZXQsIGFuZCBuYW1lIGFuZCBzdW1tYXJ5IGFyZSBwdXQgaW4gdGhlIHJpZ2h0IHBsYWNlPC9saT4KICAgPGxpPkZpeGVzIHRvIGV2ZW4gYmV0dGVyIGhhbmRsZSBzcGFjZXMgaW4gbmFtZXM8L2xpPgogICA8bGk+T3B0aW9uYWx5IHBsYWNlIGR1bW15IGluZGV4Lmh0bWwgZmlsZXMgaW4gZWFjaCB1cGxvYWQgZGlyZWN0b3J5PC9saT4KICAgPGxpPklmIHNwZWNpZnlpbmcgYSBkZXN0aW5hdGlvbiBuYW1lLCBhbmQgbm8gZXh0ZW5zaW9uIGlzIGdpdmVuLCB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBvcmlnaW5hdGluZyBmaWxlIChpZiBhbnkgZXhpc3RzIGlzIHVzZWQ8L2xpPgogPC91bD4KIDxwPjxlbT48Yj5JbXBvcnRhbnQhPC9iPjwvZW0+PGJyLz5JdCBpcyBub3QgcG9zc2libGUgdG8gdXBncmFkZSBmcm9tIGFueSBvdGhlciB2ZXJzaW9uIG9mIHRoZSBVcGxvYWRzIG1vZHVsZSB0byAxLjEuMC4gIFRoaXMgaXMgZHVlIHRvIHNvbWUgZXJyb3JzIHRoYXQgd2VyZSBtYWRlIGluIHRoZSBkYXRhYmFzZSByb3V0aW5lcywgYW5kIGV2ZW4gaW4gdGhlIHVwZ3JhZGUgcm91dGluZSBpbiAxLjAuNi4gIFlvdSBtdXN0IGRlLWluc3RhbGwgdGhlIG9sZCB2ZXJzaW9uLCBhbmQgdGhlbiByZS1pbnN0YWxsIHRoZSBuZXcgdmVyZXNpb24uIFRoaXMgd2lsbCBjYXVzZSBzaWduaWZpY2FudCBkaWZmaWN1bHR5IGlmIHlvdSBoYXZlIGRzY3JpcHRpb25zLCBldGMsIGluIHlvdXIgdGFibGVzPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjEuIC0gT2N0b2JlciwgMjAwNTwvcD4KPHA+Rml4ZWQgYSBjb3VwbGUgb2YgbWlub3IgYnVncyBpbiB0aGUgR2V0VXBsb2FkRGV0YWlscyBhbmQgYWRkZWQgYW5vdGhlciBsaW5rIChvciBhIHVybCkgdG8gdGhlIHVwbG9hZGVkIGZpbGUuPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjIuIC0gT2N0b2JlciwgMjAwNTwvcD4KPHA+Rml4ZWQgdGhlIFVSTCBmaWVsZCBpbiBHZXRVcGxvYWREZXRhaWxzIHRvIHJldHVybiBhIGRvd25sb2FkIGxpbmsgYW5kIGFkZGVkIGFuIGFic3VybCBmaWVsZCB3aGljaCByZXR1cm5zIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBmaWxlIG9uIHRoZSB3ZWJzZXJ2ZXIuICBDbGlja3Mgb24gdGhpcyBsaW5rIHdpbGwgbm90IGJlIGNvdW50ZWQ8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuMy4gLSBPY3RvYmVyLCAyMDA1PC9wPgo8cD5GaXhlZCB0aGUgdXBncmFkZSBwcm9ibGVtIGZyb20gdGhlIDEuMC54IHNlcmllcy4gIFVzZXJzIG9mIHRoZSAxLjAueCBzZXJpZXMgc2hvdWxkIGJlIGFibGUgdG8gdXBncmFkZSB0byAxLjEuMyBub3cgd2l0aCBubyBkaWZmaWN1bHR5LiA8Yj5UaG9zZSBhcmUgZmFtb3VzIGxhc3Qgd29yZHMsIHBsZWFzZSBiYWNrdXAgZmlyc3Q8L2I+LiBGaXhlZCB0aGUgY29udGVudCByZWRpcmVjdCB0aGluZ3MgdGhhdCB3ZXJlIGlycml0YXRpbmcgbWUuICBBbHNvIGFkZGVkIGNhdGVnb3J5PWFsbCB0byBsaXN0IGFsbCBvZiB0aGUgdXBsb2FkcyBpbiBhbGwgbGlzdGFibGUgY2F0ZWdvcmllcyA8ZW0+KGxldHMgYWxsIGhvcGUgSSBnb3QgdGhlIHNxbCBmaWd1cmVkIG91dCBwcm9wZXJseSk8L2VtPi48L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuNC4gLSBPY3RvYmVyLCAyMDA1PC9wPgo8cD5BZGRlZCB0aGUgY291bnQgcGFyYW1ldGVyIHRvIGxpc3Qgb25seSB0aGUgZmlyc3QgTiByZWNvcmRzLCBhbmQgYWRkZWQgInN1bW1hcnlsaW5rIiwgYW5kICJjYXRlZ29yeSIgdG8gdGhlIHRlbXBsYXRlcyBmb3Igd2VzdGlzLiAgRm9yIGV4YW1wbGVzIG9uIGhvdyB0byB1c2UgdGhlbSByZXNldCB5b3VyIHRlbXBsYXRlcyBiYWNrIHRvIGRlZmF1bHQuPC9wPjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuNS4gLSBOb3ZlbWJlciwgMjAwNTwvcD4KPHA+QWRkZWQgZW1haWwgbm90aWZpY2F0aW9uIGFuZCBzb21lIGJ1ZyBmaXhlczwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMS42LiAtIE5vdmVtYmVyLCAyMDA1PC9wPgo8cD5BZGRlZCBhbiBhcGkgZnVuY3Rpb24gYW5kIGZpeGVkIHNvbWUgcmVkaXJlY3Rpb24gc3R1ZmY8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuNy4gLSBOb3ZlbWJlciwgMjAwNTwvcD4KPHA+TW9yZSBBUEkgZnVuY3Rpb25zLCBhbmQgbm93IGlnbm9yZSBkb3QgZmlsZXMgd2hlbiBzY2FubmluZy4gIEVtYWlsIG5vdGlmaWNhdGlvbiBpcyBub3cgaW4uPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjguIC0gSmFudWFyeSwgMjAwNjwvcD4KPHA+KiBJbXByb3ZlZCBkb2NzIHdydCBhcGFjaGUgYW5kIHBocCBjb25maWdzLjwvcD4KPHA+KiBGaXhlZCBwcm9ibGVtIHdoZXJlIGZpbGVzaXplIHdhcyBzaG93aW5nIHVwIGFzIDAuPC9wPgo8cD4qIE1vZGlmaWVkIHBlcm1pc3Npb25zIHRvIGJlIG1vcmUgZ3JhbnVsYXI8L3A+CjxwPiogQWRkZWQgc29tZSBjb21tZW50cyBhbmQgdmVyYm9zaXR5IHRvIHRoZSBjYXRlZ29yeSBhbmQgdXBsb2FkcyBmb3JtcyBpbiB0aGUgYWRtaW4gc2VjdGlvbjwvcD4KPHA+KiBBZGRlZCAicmFuZG9tIiBzb3J0IG9yZGVyPC9wPgo8cD4qIFNvbWUgUEhQNSBmaXhlczwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMS45LiAtIEphbnVhcnksIDIwMDY8L3A+CjxwPiogQWRkZWQgdGhlIGFiaWxpdHkgdG8gdXBsb2FkIGEgdGh1bWJuYWlsIGltYWdlPC9wPgo8cD4qIFNvbWUgaW1wcm92ZWQgYXVkaXRpbmc8L3A+CjxwPiogeG1sIG5vdyBhZGRlZCB0byB0aGUgZGVmYXVsdCBmaWxlIHR5cGVzIChuZXcgaW5zdGFsbHMgb25seSk8L3A+CjxwPiogQWRkZWQgYSBjb25maXJtYXRpb24gbWVzc2FnZSB0byB0aGUgcmVzZXQgdG8gZGVmYXVsdHMgYnV0dG9ucyBvZiB0aGUgdGVtcGxhdGUgcGFnZXMuPC9wPgo8cD4qIEFkZGVkIHRoZSBmaWxlX2V4dGVuc2lvbnMgcGFyYW1ldGVyIGZvciB0aGUgdXBsb2FkIGZvcm08L3A+CjxwPiogVGhlIGN1cnJlbnQgY2F0ZWdvcnkgc2VsZWN0ZWQgaW4gdGhlIGZpbGVzIGZpbHRlciBpcyBzdGlja3kuCjxwPiogQWRkZWQgYSBwcmVmZXJlbmNlIHRvIGVuZm9yaWNlIGZpbGVuYW1lIGV4dGVuc2lvbnMgKGRlZmF1bHRzIHRvIG9uKTwvcD4KPHA+KiBBZGRlZCBhIGxpbmsgdG8gdGhlIGVkaXQgcGFnZSwgaW4gdGhlIG5hbWUgY29sdW1uIG9mIHRoZSBmaWxlcyBsaXN0LjwvcD4KPHA+KiBNaW5vciBjaGFuZ2VzIHRvIHRoZSBsYXlvdXQgYW5kIHRleHQgdG8gYWRkIGNsYXJpdHkuPC9wPgo8cD4qIEFkZGVkIGRvd25sb2FkX3VybCBhcyBhbiBhdmFpbGFibGUgc21hcnR5IHRhZyBpbiB0aGUgdGVtcGxhdGVzPC9wPgo8bGk+CjxwPlZlcnNpb24gMS4xLjEwLiAtIEZlYnJ1YXJ5LCAyMDA2PC9wPgo8cD4qIFN1bW1hcnkgbm93IGRlZmF1bHRzIHRvIHRoZSBmaWxlbmFtZSAod2l0aG91dCB0aGUgZXh0ZW5zaW9uKSBpZiBub25lIGlzIHNwZWNpZmllZDwvcD4KPHA+KiBOb3cgY29ycmVjdGx5IGhhbmRsZSBpZiB0aGUgdGh1bWJuYWlsIGV4dGVuc2lvbiBpcyBub3QgaW4gdGhlIGFjY2VwdGVkIGV4dGVuc2lvbiBsaXN0PC9wPgo8cD4qIE5vIGxvbmdlciBkaXNwbGF5IGFueSBjb250ZW50IGluIHRoZSBmaWxlcyB0YWIgaWYgdGhlcmUgYXJlIG5vIGNhdGVnb3JpZXMgZGVmaW5lZDwvcD4KPHA+KiBEaXNwbGF5IGEgbGluayBpbiB0aGUgZXJyb3IgcGFnZSB0aGF0IHRha2VzIHlvdSBiYWNrIHRvIHRoZSBtYWluIGFkbWluIHBhbmVsPC9wPgo8cD4qIEFsbG93IGZvciByZXBsYWNpbmcgb2YgdXBsb2FkZWQgZmlsZXM8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuMTEuIC0gTWFyY2gsIDIwMDY8L3A+CjxwPkFkZGVkIHRoZSBhYmlsaXR5IGZvciBhIGxpbmsgdG8gYSBkZXRhaWxlZCBwYWdlIHdoZW4gaW4gc3VtbWFyeSBtb2RlLjwvcD4KPHA+U3BsaXQgdGhlIGRlZmF1bHQgYWN0aW9uIGFuZCBkZWZhdWx0YWRtaW4gYWN0aW9ucyBpbnRvIHNlcGFyYXRlIGZpbGVzLCBmb3IgYSBiaXQgb2YgbWVtb3J5IGltcHJvdmVtZW50LCBob3BlZnVsbHk8L3A+CjxwPkFkZCB0aGUgYWJpbGl0eSB0byByZWRpcmVjdCB0byBhbm90aGVyIHBhZ2UgYWZ0ZXIgYSBmcm9udGVuZCB1c2VyIHVwbG9hZGVkIGEgZmlsZTwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMS4xMi4gLSBNYXJjaCwgMjAwNjwvcD4KPHA+QWRkZWQgdGhlIHNpbmdsZXN1bW1hcnkgbW9kZSB0byBkaXNwbGF5IGEgc2luZ2xlIHVwbG9hZCBpbiBzdW1tYXJ5IG1vZGU8L1A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuMTMuIC0gQXByaWwsIDIwMDY8L3A+CjxwPkFkZGVkIG9wdGlvbmFsIGZpbHRlcmluZyBvbiB0aGUgZnJvbnRlbmQsIGFuZCBhIGNvdXBsZSBvZiBleHRyYSBwYXJhbWV0ZXJzIHRvIGdvIHdpdGggaXQ8L3A+CjxwPkZpeGVkIGEgcHJvYmxlbSB3aGVyZSBpdCB3b3VsZCBhbGxvdyB5b3UgdG8gZW50ZXIgYSBibGFuayBwYXRoIHdoZW4gY3JlYXRpbmcgYSBjYXRlZ29yeTwvcD4KPHA+U3BsaXQgc3R1ZmYgaW50byAoc29tZSkgc2VwYXJhdGUgYWN0aW9uIGZpbGVzIGZvciBzb21lIGhvcGVmdWwgcGVyZm9ybWFuY2UgaW5jcmVhc2VzPC9wPgo8cD5BZGRlZCBjb3B5cmlnaHQgbm90aWNlczwvcD4KPHA+Q2hhbmdlZCAob3B0aW9uYWwpIGRlcGVuZGVuY3kgZnJvbSBVc2VySUQgdG8gRnJvbnRFbmRVc2VycyBNb2R1bGUuPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4yLjEgLSBBcHJpbCwgMjAwNjwvcD4KPHA+Q2hhbmdlZCBfc2NhbkRpcmVjdG9yeSB0byBhbiBBUEkgZnVuY3Rpb24gU2NhbkRpcmVjdG9yeSBhbmQgdGhlbiBhZGRlZCBTbWFydFNjYW5EaXJlY3RvcnkgdG8gc2NhbiB0aGUgZGlyZWN0b3J5IGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBzdW1tYXJ5IG9yIGRldGFpbCBsaXN0aW5nIHRvIGhhbmRsZSB0aGUKY2FzZSB3aGVyZSBzb21lYm9keSB1cGxvYWRlZCBmaWxlcyB2aWEgRlRQIG9yIHNvbWV0aGluZyBhbmQgZGlkIG5vdCBnbyBpbnRvIHRoZSBhZG1pbiBzZWN0aW9uIHRvIHVwZGF0ZSB0aGUgY2F0ZWdvcmllcy48L3A+CjxwPkNvcnJlY3Rpb24gdG8gYWxsIGRiIGFjY2VzcyBzdHVmZi4gSG9wZWZ1bGx5IHByb3ZpZGVzIGEgcGVyZm9ybWFuY2UgaW5jcmVhc2UuPC9wPgo8cD5GaXhlcyB0byB0aGUgYWJvdXQgc3R1ZmYsIG5vdyB1c2UgQ3JlYXRlUGFyYW1ldGVyPC9wPgo8cD5BZGRlZCB0aGUgdXBsb2FkX3RlbXBsYXRlLCBzdW1tYXJ5X3RlbXBsYXRlLCBhbmQgZGV0YWlsX3RlbXBsYXRlIChvcHRpb25hbCkgcGFyYW1ldGVyPC9wPgo8cD5BZGRlZCB0aGUgbm9hdXRob3IgcGFyYW1ldGVyLCBhbmQgdGhlIGtleSBwYXJhbWV0ZXIuICBUaGUga2V5IHBhcmFtZXRlciBhbGxvd3MgdGhlIHVwbG9hZHMgbW9kdWxlIHRvIGJlIGVtYmVkZGVkIGludG8gb3RoZXIgbW9kdWxlczwvcD4KPHA+TW92ZWQgdG8gdW5kZXIgdGhlIGNvbnRlbnQgbWVudSwgYW5kIGVudGl0bGVkICdGaWxlcyAoVXBsb2FkIE1vZHVsZSknPC9wPjsKPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMi4yIC0gSnVuZSwgMjAwNgo8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIG11bHRpcGxlIGRhdGFiYXNlIHRlbXBsYXRlcywgYW5kIHRvIHNlbGVjdCBvbmUgb24gdGhlIHRhZyB3aXRoIHRoZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIuPC9wPgo8cD5GaXhlZCBhbiBpc3N1ZSB3aGVyZSBmaWxlcyB3ZXJlIGdldHRpbmcgY29ycnVwdGVkIG9uIGRvd25sb2FkPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4yLjMgLSBKdW5lLCAyMDA2CjxwPkZpeGVzIHRvIHVzZSBhZG9kYi1saXRlIHByb3BlciwgcmF0aGVyIHRoYW4gdGVkcyBoYWNrPC9wPgo8cD5EZXRhaWwgbGluayBub3cgZGlzcGxheXMgaW5saW5lPC9wPgo8cD5PdGhlciBtaW5vciB0d2Vha3MgdGhhdCBJIGNhbnQgcmVtZW1iZXI8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjMuMCAtIEZlYnJ1YXJ5LCAyMDA3CjxwPkZpeGVzIHRvIHRoZSBEVCBmaWVsZCB0eXBlPC9wPgo8cD5Vc2UgdGhlIEZFVSB1c2VybmFtZSAob3B0aW9uYWxseSkgc28gdGhhdCB3ZSBjYW4gdHJhY2sgd2hlbiBhIGxvZ2dlZCBpbiB1c2VyIHVwbG9hZHMgYSBmaWxlPC9wPgo8cD5BZGQgZmlsZXR5cGUgY2FwYWJpbGl0aWVzIHRvIGFzc29jaWF0ZSBhbiBpY29uIHdpdGggYSBwYXJ0aWN1bGFyIHVwbG9hZC4gIEFsc28gc3VwcG9ydCBhbiB1bmtub3duIGZpbGUgdHlwZSBmb3IgYW55dGhpbmcgdGhhdCBkb2VzIG5vdCBtYXRjaC48L3A+CjxwPkNvbXBsZXRlbHkgcmUtd29ya2VkIHRoZSBtdWx0aXBsZSBkYXRhYmFzZSB0ZW1wbGF0ZSBzdHVmZi48L3A+CjxwPkFkanVzdG1lbnRzIHRvIHRoZSBkZWZhdWx0IHRlbXBsYXRlczwvcD4KPHA+Rml4ZXMgdG8gdXNpbmcgY2F0ZWdvcnk9ImFsbCI8L3A+CjxwPkdlbmVyYXRlIHRodW1ibmFpbHMgYXV0b21hdGljYWxseSAob3B0aW9uYWxseSkgZm9yIGNlcnRhaW4gZmlsZSB0eXBlcywgb24gdXBsb2FkLCBhbmQgb24gc2Nhbi48L3A+CjxwPkFkZCBjYXB0Y2hhIHN1cHBvcnQgdG8gdGhlIHVwbG9hZCBmb3JtPC9wPgo8L2xpPgo8L3VsPjxiciAvPg==</about>
	<description>A module that allows users to upload files, and allows you to manage them.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgPSBhbGxvdyB1c2VycyB0byB1cGxvYWQgc3R1ZmYsIGEgcHNldWRvIGZpbGUgbWFuYWdlciBtb2R1bGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSApCiAgewogICAgcmV0dXJuOwogIH0KCi8vIHBvcHVsYXRlIHRoZSB0ZW1wbGF0ZQokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZScsICR0aGlzLT5MYW5nICgnYWRkY2F0ZWdvcnknKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3N0YXJ0Zm9ybScsCgkJICAgICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwKCQkJCQkgICAgICAgJ2RvX2FkZGNhdGVnb3J5JywKCQkJCQkgICAgICAgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCAoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3N1Ym1pdCcsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0JywKCQkJCQkJICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdjYW5jZWwnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsCgkJCQkJCSAkdGhpcy0+TGFuZygnY2FuY2VsJykpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF9jYXRlZ29yeW5hbWUnLAoJCSAgICAgICAkdGhpcy0+TGFuZyAoJ3Byb21wdF9jYXRlZ29yeW5hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2NhdGVnb3J5bmFtZScsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ2lucHV0X2NhdGVnb3J5bmFtZScsCgkJCQkJICAgICAgICIiLCAyMCwgODApKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5mb19jYXRlZ29yeW5hbWUnLCAkdGhpcy0+TGFuZygnaW5mb19jYXRlZ29yeW5hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF9jYXRlZ29yeWRlc2MnLCAgJHRoaXMtPkxhbmcgKCdwcm9tcHRfY2F0ZWdvcnlkZXNjJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbnB1dF9jYXRlZ29yeWRlc2MnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0ICgkaWQsICdpbnB1dF9jYXRlZ29yeWRlc2MnLAoJCQkJCSAgICAgICAiIiwgODAsIDI1NSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbmZvX2NhdGVnb3J5ZGVzYycsICR0aGlzLT5MYW5nKCdpbmZvX2NhdGVnb3J5ZGVzYycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X2NhdGVnb3J5cGF0aCcsCgkJICAgICAgICR0aGlzLT5MYW5nICgncHJvbXB0X2NhdGVnb3J5cGF0aCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfY2F0ZWdvcnlwYXRoJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCAoJGlkLCAnaW5wdXRfY2F0ZWdvcnlwYXRoJywKCQkJCQkgICAgICAgIiIsIDQwLCAyNTUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5mb19jYXRlZ29yeXBhdGgnLCAkdGhpcy0+TGFuZygnaW5mb19jYXRlZ29yeXBhdGgnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3BhdGhtZXNzYWdlJywgJHRoaXMtPkxhbmcgKCdwYXRoaW51cGxvYWRzJykpOwogICAgCiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF9jYXRlZ29yeWxpc3RhYmxlJywKCQkgICAgICAgJHRoaXMtPkxhbmcgKCdwcm9tcHRfY2F0ZWdvcnlsaXN0YWJsZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfY2F0ZWdvcnlsaXN0YWJsZScsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94ICgkaWQsCgkJCQkJCSAgICdpbnB1dF9jYXRlZ29yeWxpc3RhYmxlJywKCQkJCQkJICAgMSwwKSk7Ci8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZGRjYXRlZ29yeS50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.addfiletype.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBVcGxvYWRzJykgKQogIHsKICAgIHJldHVybjsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pICkKICB7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwkcGFyYW1zKTsKICB9CgokaWNvbmxpc3QgPSBhcnJheSgpOwokZGlyID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4naW1hZ2VzJzsKaWYoIGlzX2RpciggJGRpciApICkKICB7CiAgICBpZiggJGRoID0gb3BlbmRpcigkZGlyKSApCiAgICAgIHsKCXdoaWxlKCgkZmlsZSA9IHJlYWRkaXIoJGRoKSkgIT09IGZhbHNlKQoJICB7CgkgICAgaWYoIGlzX2ZpbGUoICRkaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZSApICkKCSAgICAgIHsKCQkkaWNvbmxpc3RbJGZpbGVdID0gJGZpbGU7CgkgICAgICB9CgkgIH0KCWNsb3NlZGlyKCRkaCk7CiAgICAgIH0KCiAgfQoKJGhpZGRlbiA9ICcnOwokbmFtZSA9ICcnOwokZXh0ZW5zaW9ucyA9ICcnOwokZGVzY3JpcHRpb24gPSAnJzsKJGljb24gPSAnJzsKaWYoIGlzc2V0KCAkcGFyYW1zWyd0eXBlaWQnXSApICkKICB7CiAgICAvLyBnZXQgdGhlIGRhdGEgb3V0IG9mIHRoZSBkYXRhYmFzZSwgd2UncmUgb2J2aW91c2x5IGVkaXRpbmcgc29tZXRoaW5nCiAgICAkaGlkZGVuIC49ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ3R5cGVpZCcsJHBhcmFtc1sndHlwZWlkJ10pOwogICAgJHEgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzIAogICAgICAgICAgIFdIRVJFIGlkID0gPyI7CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcm93ID0gJGRiLT5HZXRSb3coICRxLCBhcnJheSggJHBhcmFtc1sndHlwZWlkJ10gKSApOwogICAgaWYoICEkcm93ICkKICAgICAgewoJJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vc3VjaHJvdycpKTsKCXJldHVybjsKICAgICAgfQogICAgJG5hbWUgPSAkcm93WyduYW1lJ107CiAgICAkZGVzY3JpcHRpb24gPSAkcm93WydkZXNjcmlwdGlvbiddOwogICAgJGV4dGVuc2lvbnMgPSAkcm93WydleHRlbnNpb25zJ107CiAgICAkaWNvbiA9ICRyb3dbJ2ljb24nXTsKICB9CgovLyBpZiBpbiB0aGUgcGFyYW1zIGFycmF5LCB0aGVuIHRoZSB2YWx1ZXMgaW4gdGhlcmUKLy8gd2lsbCBvdmVycmlkZSB0aG9zZSBpbiB0aGUgZGF0YWJhc2UKaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X25hbWUnXSkgKQogIHsKICAgICRuYW1lID0gJHBhcmFtc1snaW5wdXRfbmFtZSddOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2Rlc2NyaXB0aW9uJ10pICkKICB7CiAgICAkZGVzY3JpcHRpb24gPSAkcGFyYW1zWydpbnB1dF9kZXNjcmlwdGlvbiddOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2V4dGVuc2lvbnMnXSkgKQogIHsKICAgICRleHRlbnNpb25zID0gJHBhcmFtc1snaW5wdXRfZXh0ZW5zaW9ucyddOwogIH0KaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2ljb24nXSkgKQogIHsKICAgICRpY29uID0gJHBhcmFtc1snaW5wdXRfaWNvbiddOwogIH0KCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgIC8vIHRoZSBmb3JtIHdhcyBzdWJtaXR0ZWQKICAgIGlmKCB0cmltKCRuYW1lKSA9PSAnJyApCiAgICAgIHsKCSR0aGlzLT5TaG93RXJyb3JzKCdlcnJvcl9taXNzaW5nbmFtZScpOwogICAgICB9CiAgICBlbHNlIGlmKCB0cmltKCRleHRlbnNpb25zKSA9PSAnJyApCiAgICAgIHsKCSR0aGlzLT5TaG93RXJyb3JzKCdlcnJvcl9taXNzaW5nZXh0ZW5zaW9ucycpOwogICAgICB9CiAgICBlbHNlIGlmKCB0cmltKCRpY29uKSA9PSAnJyApCiAgICAgIHsKCSR0aGlzLT5TaG93RXJyb3JzKCdlcnJvcl9taXNzaW5naWNvbicpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCWlmKCBpc3NldCgkcGFyYW1zWyd0eXBlaWQnXSkgKQoJICB7CgkgICAgLy8gVXBkYXRlIGFuIGV4aXN0aW5nIHJlY29yZAoJICAgICRxID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzCiAgICAgICAgICAgICAgICAgICAgIFNFVCBuYW1lPT8sZGVzY3JpcHRpb249PyxleHRlbnNpb25zPT8saW1hZ2U9PwogICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/IjsKCSAgICAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggdHJpbSgkbmFtZSksIHRyaW0oJGRlc2NyaXB0aW9uKSwgCgkJCQkgICAgIHRyaW0oJGV4dGVuc2lvbnMpLCB0cmltKCRpY29uKSwKCQkJCSAgICAgJHBhcmFtc1sndHlwZWlkJ10gKSApOwoJICB9CgllbHNlCgkgIHsKCSAgICAvLwoJICAgIC8vIEluc2VydCBhIG5ldyByZWNvcmQKCSAgICAvLwoKCSAgICAvLyBHZXQgYSBuZXcgSUQKCSAgICAkbmV3aWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzX3NlcSIpOwoJICAgIAoJICAgIC8vIEZpbmQgdGhlIG1heGltdW0gc29ydCBvcmRlcgoJICAgICR0cSA9ICJTRUxFQ1QgbWF4KHNvcnRvcmRlcikgYXMgc29ydG9yZGVyIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX2ZpbGV0eXBlcyI7CgkgICAgJHJvdyA9ICRkYi0+R2V0Um93KCAkdHEgKTsKCSAgICAKCSAgICAkcSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzCiAgICAgICAgICAgICAgKGlkLHNvcnRvcmRlcixuYW1lLGRlc2NyaXB0aW9uLGV4dGVuc2lvbnMsaW1hZ2UpIFZBTFVFUyAoPyw/LD8sPyw/LD8pIjsKCSAgICAkZGItPkV4ZWN1dGUoICRxLCBhcnJheSgkbmV3aWQsJHJvd1snc29ydG9yZGVyJ10rMSwKCQkJCSAgICB0cmltKCRuYW1lKSx0cmltKCRkZXNjcmlwdGlvbiksCgkJCQkgICAgdHJpbSgkZXh0ZW5zaW9ucyksdHJpbSgkaWNvbikpKTsKCSAgfQoKCS8vIHJlZGlyZWN0IGJhY2sgdG8gdGhlIHRhYgoJJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICAgIH0KICB9Cgokc21hcnR5ID0mICR0aGlzLT5zbWFydHk7Cgokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJHBhcmFtc1snYWN0aW9uJ10sJHJldHVybmlkLAoJCQkJCQkgICAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbmFtZScsJHRoaXMtPkxhbmcoJ25hbWUnKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2Rlc2NyaXB0aW9uJywkdGhpcy0+TGFuZygnZGVzY3JpcHRpb24nKSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2V4dGVuc2lvbnMnLCR0aGlzLT5MYW5nKCdleHRlbnNpb25zJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9pY29uJywkdGhpcy0+TGFuZygnaWNvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9uYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfbmFtZScsJG5hbWUsNDApKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZXNjcmlwdGlvbicsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsJGlkLCRkZXNjcmlwdGlvbiwnaW5wdXRfZGVzY3JpcHRpb24nKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZXh0ZW5zaW9ucycsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2V4dGVuc2lvbnMnLCRleHRlbnNpb25zLDQwKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfaWNvbicsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9pY29uJywkaWNvbmxpc3QsLTEsJGljb24pKTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkgKQogIHsKICAgICRoaWRkZW4gLj0gJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYWN0aXZlX3RhYicsJHBhcmFtc1snYWN0aXZlX3RhYiddKTsKICB9CiRzbWFydHktPmFzc2lnbignaGlkZGVuJywkaGlkZGVuKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdjYW5jZWwnLCR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZGRmaWxldHlwZS50cGwnKTsKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiR0bXBfcGFyYW1zID0gYXJyYXkoKTsKaWYgKGlzc2V0ICgkcGFyYW1zWydoaWRkZW5fcGFyYW1zJ10pICkKICB7CiAgICAkdG1wX3BhcmFtcyA9ICR0aGlzLT5leHBsb2RlX3dpdGhfa2V5KCRwYXJhbXNbJ2hpZGRlbl9wYXJhbXMnXSk7CiAgfQokcGFyYW1zID0gYXJyYXlfbWVyZ2UoICRwYXJhbXMsICR0bXBfcGFyYW1zICk7CgovLyBjaGVjayBmb3IgcmVxdWlyZWQgYXJndW1lbnRzCmlmICghaXNzZXQgKCRwYXJhbXNbJ21vZGUnXSkgKQogIHsKICAgICRwYXJhbXNbJ21vZGUnXSA9ICdzdW1tYXJ5JzsKICB9CiAgICAgICAgCi8vIHNldHVwCiR0ZW1wbGF0ZSA9ICcnOwokZmlsZXRlbXBsYXRlID0gZmFsc2U7CiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKJHJvd2FycmF5ID0gYXJyYXkgKCk7CgovLyBtb2RlIGlzIHNldCwgbm93IGRlY2lkZSB3aGF0IHRvIGRvCi8vIGhhbmRsZSB0aGUgc2ltcGxlIHN0dWZmIChvbmUgc2luZ2xlIGxpbmspCmlmICgkcGFyYW1zWydtb2RlJ10gPT0gJ3VwbG9hZCcpCiAgewogICAgaWYoICFpc3NldCggJHBhcmFtc1snY2F0ZWdvcnknXSApICkKICAgICAgewoJLy8gaWYgbW9kZSBvciBjYXRlZ29yeSBpc24ndCBzZXQuLi4gd2UgZG9uJ3QgZGlzcGxheSBhbnl0aGluZwoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAgJHRoaXMtPkxhbmcgKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKSk7CglyZXR1cm47CiAgICAgIH0KCiAgICAvLyBkaXNwbGF5IGEgZm9ybSB0byBhbGxvdyB0aGUgdXNlciB0byB1cGxvYWQgYSBmaWxlLi4uLiBidXQgbWF5IGhhdmUgdG8gaGF2ZSBwZXJtaXNzaW9uIGZpcnN0CiAgICAvLyBobW1tLCBJJ2xsIHRoaW5rIGFib3V0IHRoZSBwZXJtaXNzaW9uIHN0dWZmIGxhdGVyLgogICAgJHRlbXBsYXRlID0gJ3VwbG9hZGZvcm1fJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF91cGxvYWRmb3JtJyk7CiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApCiAgICAgIHsKCSR0ZW1wbGF0ZSA9ICd1cGxvYWRmb3JtXycuJHBhcmFtc1sndGVtcGxhdGUnXTsKICAgICAgfQoKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3N0YXJ0Zm9ybScsCgkJCSAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ2RvX3VwbG9hZCcsCgkJCQkJCSAgICRyZXR1cm5pZCwncG9zdCcsIAoJCQkJCQkgICAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsCgkJCQkJCSAgICRwYXJhbXMpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF91cGxvYWQnLCAkdGhpcy0+TGFuZyAoJ3VwbG9hZCcpKTsKCiAgICAvLyBpcyB0aGVyZSBhIGtleQogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydrZXknXSApICkKICAgICAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9rZXknLAoJCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnaW5wdXRfa2V5JywgJHBhcmFtc1sna2V5J10pKTsKICAgICAgfQoKICAgIC8vIGF0dGVtcHQgdG8gZ2V0IGFuIGF1dGhvcgogICAgJGF1dGhvciA9ICcnOwogICAgJGZldXNlcnMgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0Zyb250RW5kVXNlcnMnKTsKICAgIGlmKCAkZmV1c2VycyApCiAgICAgIHsKCSRhdXRob3IgPSAkZmV1c2Vycy0+TG9nZ2VkSW5OYW1lKCk7CiAgICAgIH0KCiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ25vYXV0aG9yJ10gKSApCiAgICAgIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfYXV0aG9yJywKCQkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2lucHV0X2F1dGhvcicsICRhdXRob3IpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbm9hdXRob3InLDEpOwoJCQkJCQkgICAgICAgCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X2F1dGhvcicsICR0aGlzLT5MYW5nICgnYXV0aG9yJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfYXV0aG9yJywKCQkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ2lucHV0X2F1dGhvcicsIAoJCQkJCQkgICAgICAgJGF1dGhvciwgMjAsIDI1NSkpOwogICAgICB9CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdwcm9tcHRfc3VtbWFyeScsCgkJCSAgICR0aGlzLT5MYW5nICgnc3VtbWFyeScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X3N1bW1hcnknLAoJCQkgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0ICgkaWQsICdpbnB1dF9zdW1tYXJ5JywKCQkJCQkJICAgJycsIDQwLCAyNTUpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF9kZXN0bmFtZScsCgkJCSAgICR0aGlzLT5MYW5nICgnZGVzdG5hbWUnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbnB1dF9kZXN0bmFtZScsCgkJCSAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ2lucHV0X2Rlc3RuYW1lJywKCQkJCQkJICAgJycsIDQwLCAyNTUpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2luZm9fZGVzdG5hbWUnLAoJCQkgICAkdGhpcy0+TGFuZyAoJ2luZm9fZGVzdG5hbWUnKSk7CgogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X2Rlc2NyaXB0aW9uJywKCQkJICAgJHRoaXMtPkxhbmcgKCdkZXNjcmlwdGlvbicpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2Rlc2NyaXB0aW9uJywKCQkJICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsICcnLCAnaW5wdXRfZGVzY3JpcHRpb24nICkpOwogICAgJGhpZGRlbiA9IAogICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4gKCRpZCwgJ01BWF9GSUxFX1NJWkUnLAoJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ21heF91cGxvYWRzaXplJywnMTAwMDAwMCcpKS4KICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCAkaWQsICdjYXRlZ29yeScsCgkJCQkkcGFyYW1zWydjYXRlZ29yeSddKTsgCiAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2ZpbGVfZXh0ZW5zaW9ucyddICkgKQogICAgICB7CgkkaGlkZGVuIC49IAoJICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oICRpZCwgJ2ZpbGVfZXh0ZW5zaW9ucycsCgkJCQkgICAgJHBhcmFtc1snZmlsZV9leHRlbnNpb25zJ10gKTsKICAgICAgfQogICAgJGNhcHRjaGEgPSYgJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICBpZiggaXNfb2JqZWN0KCRjYXB0Y2hhKSAmJiAhaXNzZXQoJHBhcmFtc1snbm9jYXB0Y2hhJ10pICkKICAgICAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX3RpdGxlJywgJHRoaXMtPkxhbmcoJ2NhcHRjaGFfdGl0bGUnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhcHRjaGEnLAoJCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaW5wdXRfY2FwdGNoYScsJycsMTApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2FwdGNoYScsICRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICAgICB9CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdoaWRkZW4nLCAkaGlkZGVuICk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbnB1dF9icm93c2UnLAoJCQkgICAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0ICgkaWQsJ2lucHV0X2Jyb3dzZScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X3JlcGxhY2UnLCAkdGhpcy0+TGFuZygncHJvbXB0X3JlcGxhY2UnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlcGxhY2UnLCAKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCggJGlkLCAnaW5wdXRfcmVwbGFjZScsIDEgKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2luZm9fcmVwbGFjZScsCgkJCSAgJHRoaXMtPkxhbmcoJ2luZm9fcmVwbGFjZScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF90aHVtYm5haWwnLAoJCQkgICAkdGhpcy0+TGFuZyAoJ3RodW1ibmFpbCcpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2luZm9fdGh1bWJuYWlsJywKCQkJICAgJHRoaXMtPkxhbmcgKCdpbmZvX3RodW1ibmFpbCcpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X3RodW1ibmFpbCcsCgkJCSAgICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQgKCRpZCwnaW5wdXRfdGh1bWJuYWlsJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfc3VibWl0JywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2RvX3VwbG9hZGZpbGUnLAoJCQkJCQkJCSAgICAkdGhpcy0+TGFuZyAoJ3N1Ym1pdCcpKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQgKCkpOwogIH0KIGVsc2UKICAgewogICAgICRmaWxldHlwZXMgPSBudWxsOwogICAgIGlmKCBpc3NldCggJHBhcmFtc1snZmlsZXR5cGVzJ10gKSApCiAgICAgICB7CgkgJGZpbGV0eXBlcyA9IHRyaW0oJHBhcmFtc1snZmlsZXR5cGVzJ10pOwogICAgICAgfQoKICAgICAka2V5ID0gbnVsbDsKICAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2tleSddICkgKQogICAgICAgewoJICRrZXkgPSB0cmltKCRwYXJhbXNbJ2tleSddKTsKICAgICAgIH0KCiAgICAgaWYoICFpc3NldCggJHBhcmFtc1snY2F0ZWdvcnknXSApICkKICAgICAgIHsKCSAvLyBpZiBtb2RlIG9yIGNhdGVnb3J5IGlzbid0IHNldC4uLiB3ZSBkb24ndCBkaXNwbGF5IGFueXRoaW5nCgkgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAgICR0aGlzLT5MYW5nICgnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwoJIHJldHVybjsKICAgICAgIH0KCiAgICAgLy8gdHJ5IHRvIGZpZ3VyZSBvdXQgYSBzb3J0IG9yZGVyCiAgICAgJHNvcnRvcmRlciA9ICJPUkRFUiBCWSB1cGxvYWRfZGF0ZSBBU0MiOwogICAgIGlmKCBpc3NldCgkcGFyYW1zWydzb3J0b3JkZXInXSkgKSB7CiAgICAgICBzd2l0Y2goIHRyaW0oJHBhcmFtc1snc29ydG9yZGVyJ10pICkgewogICAgICAgY2FzZSAiZGF0ZV9hc2MiOgoJIC8vIGFzY2VuZGluZyBkYXRlCgkgJHNvcnRvcmRlciA9ICJPUkRFUiBCWSB1cGxvYWRfZGF0ZSBBU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAiZGF0ZV9kZXNjIjoKCSAvLyBkZXNjZW5kaW5nIGRhdGUKCSAkc29ydG9yZGVyID0gIk9SREVSIEJZIHVwbG9hZF9kYXRlIERFU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAibmFtZV9hc2MiOgoJIC8vIGFzY2VuZGluZyBuYW1lCgkgJHNvcnRvcmRlciA9ICJPUkRFUiBCWSB1cGxvYWRfbmFtZSBBU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAibmFtZV9kZXNjIjoKCSAvLyBkZXNjZW5kaW5nIG5hbWUKCSAkc29ydG9yZGVyID0gIk9SREVSIEJZIHVwbG9hZF9uYW1lIERFU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAic2l6ZV9hc2MiOgoJIC8vIGFzY2VuZGluZyBzaXplCgkgJHNvcnRvcmRlciA9ICJPUkRFUiBCWSB1cGxvYWRfc2l6ZSBBU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAic2l6ZV9kZXNjIjoKCSAvLyBkZXNjZW5kaW5nIHNpemUKCSAkc29ydG9yZGVyID0gIk9SREVSIEJZIHVwbG9hZF9zaXplIERFU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAic3VtbV9hc2MiOgoJIC8vIGFzY2VuZGluZyBzdW1tYXJ5CgkgJHNvcnRvcmRlciA9ICJPUkRFUiBCWSB1cGxvYWRfc3VtbWFyeSBBU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAic3VtbV9kZXNjIjoKCSAvLyBkZXNjZW5kaW5nIHN1bW1hcnkKCSAkc29ydG9yZGVyID0gIk9SREVSIEJZIHVwbG9hZF9zdW1tYXJ5IERFU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAiYXV0aG9yX2FzYyI6CgkgLy8gYXNjZW5kaW5nIGF1dGhvcgoJICRzb3J0b3JkZXIgPSAiT1JERVIgQlkgdXBsb2FkX2F1dGhvciBBU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAiYXV0aG9yX2Rlc2MiOgoJIC8vIGRlc2NlbmRpbmcgYXV0aG9yCgkgJHNvcnRvcmRlciA9ICJPUkRFUiBCWSB1cGxvYWRfYXV0aG9yIERFU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAiaXBfYXNjIjoKCSAvLyBhc2NlbmRpbmcgaXAKCSAkc29ydG9yZGVyID0gIk9SREVSIEJZIHVwbG9hZF9pcCBBU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAiaXBfZGVzYyI6CgkgLy8gZGVzY2VuZGluZyBpcAoJICRzb3J0b3JkZXIgPSAiT1JERVIgQlkgdXBsb2FkX2lwIERFU0MiOwoJIGJyZWFrOwogICAgICAgY2FzZSAicmFuZG9tIjoKCSAvLyByYW5kb20KCSAkc29ydG9yZGVyID0gIk9SREVSIEJZIHJhbmQoKSI7CiAgICAgICB9CiAgICAgfQogICAgICRzb3J0b3JkZXIgPSAiICIuJHNvcnRvcmRlcjsKCiAgICAgLy8gZGV0ZXJtaW5lIGhvdyBtYW55IHdlJ3JlIGdvaW5nIHRvIGRpc3BsYXkKICAgICAkY291bnQgPSAiIjsKICAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2NvdW50J10gKSApCiAgICAgICB7CgkgJGNvdW50ID0gIiBMSU1JVCAwLCIudHJpbSgkcGFyYW1zWydjb3VudCddKTsKICAgICAgIH0KCiAgICAgLy8gZ2V0IHRoZSBjYXRlZ29yeSBpZAogICAgICRjYXRlZ29yeSA9IGFycmF5KCk7CiAgICAgaWYoIHRyaW0oJHBhcmFtc1snY2F0ZWdvcnknXSkgIT0gJ2FsbCcgKQogICAgICAgewoJICRjYXRlZ29yeSA9ICR0aGlzLT5nZXRDYXRlZ29yeUZyb21OYW1lKCB0cmltKCRwYXJhbXNbJ2NhdGVnb3J5J10pICk7CgkgaWYoICEkY2F0ZWdvcnkgKQoJICAgewoJICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLAoJCQkJICAgICAgICR0aGlzLT5MYW5nICgnZXJyb3JfY2F0ZWdvcnlub3Rmb3VuZCcpKTsKCSAgICAgcmV0dXJuOwoJICAgfQogICAgICAgfQoKICAgICAvLyBnZXQgdGhlIGZpbHRlciBzdHJpbmcKICAgICAkZmlsdGVyID0gJyc7CiAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2ZpbHRlciddKSAmJiAkcGFyYW1zWydpbnB1dF9maWx0ZXInXSAhPSAnJyApCiAgICAgICB7CgkgJGZpbHRlciA9IHRyaW0oJHBhcmFtc1snaW5wdXRfZmlsdGVyJ10pOwogICAgICAgfQogICAgIGlmKCAkZmlsdGVyID09ICcnICkKICAgICAgIHsKCSB1bnNldCgkcGFyYW1zWydoaWRkZW5fcGFyYW1zJ10pOwogICAgICAgfQogICAgIAogICAgIGlmKCAoaXNzZXQoJHBhcmFtc1snZmlsdGVyJ10pICYmIHRyaW0oJHBhcmFtc1snZmlsdGVyJ10pID09ICd5ZXMnKSApCiAgICAgICB7CgkgLy8gb3B0aW9uYWxseSBkaXNwbGF5IHRoZSBmaWx0ZXIgZm9ybQoJICR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwKCQkJCQkJCQkgICAkbWV0aG9kPSdwb3N0JywgJycsIHRydWUpKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF9maWx0ZXInLCR0aGlzLT5MYW5nKCdmaWx0ZXInKSk7CgkgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWx0ZXInLAoJCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2ZpbHRlcicsJGZpbHRlciwxNSkpOwoJICR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0JywKCQkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2lucHV0X3N1Ym1pdCcsCgkJCQkJCQkkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKCSB1bnNldCggJHBhcmFtc1snaW5wdXRfZmlsdGVyJ10gKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbl9wYXJhbXMnLAoJCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnaGlkZGVuX3BhcmFtcycsCgkJCQkJCQkkdGhpcy0+aW1wbG9kZV93aXRoX2tleSgkcGFyYW1zKSkpOwoJICR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAgICB9CgogICAgICRkb19xdWVyeSA9IHRydWU7CiAgICAgaWYoIChpc3NldCggJHBhcmFtc1snbm9faW5pdGlhbCddICkgJiYgJHBhcmFtc1snbm9faW5pdGlhbCddICE9ICcnKSAmJgoJIChpc3NldCggJHBhcmFtc1snaGlkZGVuX3BhcmFtcyddKSA9PSBmYWxzZSkgKQogICAgICAgewoJICRkb19xdWVyeSA9IGZhbHNlOwogICAgICAgfQoKICAgICAvLyBhZGp1c3QgdGhlIGZpbHRlcgogICAgICRhZGp1c3RlZF9maWx0ZXIgPSAkZmlsdGVyOwogICAgIGlmKCAkZmlsdGVyICE9ICcnICYmICFpc3NldCgkcGFyYW1zWyd1c2Vfc3RyaWN0X3JlZ2V4J10pICkKICAgICAgIHsKCSAkYWRqdXN0ZWRfZmlsdGVyID0gc3RyX3JlcGxhY2UoICcgJywgJy4qJywgJGFkanVzdGVkX2ZpbHRlciApOwogICAgICAgfQoKICAgICAvLyBnZXQgcmVhZHkgZm9yIGFycmF5IHByb2Nlc3NpbmcKICAgICAkcm93YXJyYXkgPSBhcnJheSgpOwogICAgICRxdWVyeSA9ICcnOwogICAgICRkYnJlc3VsdCA9ICRmYWxzZTsKICAgICAKICAgICBpZiggdHJpbSgkcGFyYW1zWydjYXRlZ29yeSddKSA9PSAnYWxsJyApCiAgICAgICB7CgkgLy8KCSAvLyBoYW5kbGUgZGlzcGxheSBhbGwgbGlzdGFibGUgY2F0ZWdvcmllcwoJIC8vCgoJICRxcGFybXMgPSBhcnJheSgpOwoJICRxdWVyeSA9ICJTRUxFQ1QgdXBsb2FkX2lkLCBBLnVwbG9hZF9jYXRlZ29yeV9pZCBBUyAKICAgICAgICAgICAgICAgICAgdXBsb2FkX2NhdGVnb3J5X2lkLCB1cGxvYWRfbmFtZSwgdXBsb2FkX2F1dGhvciwgdXBsb2FkX3N1bW1hcnksIHVwbG9hZF9kZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgdXBsb2FkX2lwLCB1cGxvYWRfc2l6ZSwgdXBsb2FkX2RhdGUsIHVwbG9hZF9jYXRlZ29yeV9uYW1lIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMgQVMgQSwiLgoJICAgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyBBUyBCIFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9saXN0YWJsZSA9IDEiOwoJIGlmKCAka2V5ICE9IG51bGwgKQoJICAgewoJICAgICAkcXVlcnkgLj0gIiBBTkQgdXBsb2FkX2tleSA9ID8iOwoJICAgICAkcXBhcm1zW10gPSAka2V5OwoJICAgfQoJIGlmKCAkYWRqdXN0ZWRfZmlsdGVyICE9ICcnICkKCSAgIHsKCSAgICAgJHF1ZXJ5IC49ICIgQU5EIHVwbG9hZF9uYW1lIFJFR0VYUCA/ICI7CgkgICAgICRxcGFybXNbXSA9ICRhZGp1c3RlZF9maWx0ZXI7CgkgICB9CgkgCgkgc3dpdGNoKCB0cmltKCRwYXJhbXNbJ21vZGUnXSkgKQoJICAgewoJICAgY2FzZSAnZGV0YWlsZWQnOgoJICAgICAkdGVtcGxhdGUgPSAnZGV0YWlscnB0XycuJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfZGV0YWlscnB0Jyk7CiAgICAgICAgICAgICBpZiggaXNzZXQoICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ10gKSApCgkgICAgICAgewoJCSAkdGVtcGxhdGUgPSAnZGV0YWlscnB0XycuJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXTsKCSAgICAgICB9CgkgICAgIC8vIGZhbGwgdGhyb3VnaAoJICAgY2FzZSAnc2luZ2xlJzoKCSAgICAgJHF1ZXJ5IC49ICIgQU5EIHVwbG9hZF9pZCA9ID8iOwoJICAgICAkcXBhcm1zW10gPSAkcGFyYW1zWyd1cGxvYWRfaWQnXTsKCSAgICAgYnJlYWs7CgkgICAgIAoJICAgY2FzZSAnc3VtbWFyeSc6CiAJICAgICAkdGVtcGxhdGUgPSAnc3VtbWFyeXJwdF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N1bW1hcnlycHQnKTsKICAgICAgICAgICAgIGlmKCBpc3NldCggJHBhcmFtc1sndGVtcGxhdGUnXSApICkKCSAgICAgICB7CgkJICR0ZW1wbGF0ZSA9ICdzdW1tYXJ5cnB0XycuJHBhcmFtc1sndGVtcGxhdGUnXTsKCSAgICAgICB9CgkgICAgIGJyZWFrOwoJICAgfQoJICRxdWVyeSAuPSAiIEFORCBBLnVwbG9hZF9jYXRlZ29yeV9pZCA9IEIudXBsb2FkX2NhdGVnb3J5X2lkIi4kc29ydG9yZGVyLiRjb3VudDsgICAgIAoJICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCAkcXBhcm1zICk7CiAgICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAvLwogICAgICAgLy8gRGVhbGluZyB3aXRoIGEgc3BlY2lmaWMgY2F0ZWdvcnkKICAgICAgIC8vCgogICAgICAgLy8gaWYgdGhlIGNhdGVnb3J5IGlzbid0IGxpc3RhYmxlLCB3ZSBjYW4gc3RvcCBoZXJlCiAgICAgICBpZiggJGNhdGVnb3J5Wyd1cGxvYWRfY2F0ZWdvcnlfbGlzdGFibGUnXSA9PSAwICkgewoJIHJldHVybjsKICAgICAgIH0KICAgICAgICRjYXRlZ29yeV9pZCA9ICRjYXRlZ29yeVsndXBsb2FkX2NhdGVnb3J5X2lkJ107CiAgICAgICAkY2F0cGF0aDEgPSAkdGhpcy0+Z2V0Q2F0ZWdvcnlQYXRoRnJvbUlEKCRjYXRlZ29yeV9pZCk7CgogICAgICAgJGRpciA9ICR0aGlzLT5fY2F0ZWdvcnlQYXRoKCAkY2F0cGF0aDEgKTsKICAgICAgIC8vIHdlJ3JlIGdvbm5hIHNjYW4gdGhlIGRpcmVjdG9yeSBhbmQgc2VlIGlmIGFueWJvZHkgdXBsb2FkZWQKICAgICAgIC8vIGFueSBmaWxlcyB2aWEgZnRwIG9yIHNjcCBvciBhbnl0aGluZyBzaWxseS4KICAgICAgICR0aGlzLT5TbWFydFNjYW5EaXJlY3RvcnkoICRjYXRlZ29yeV9pZCwgJGRpciApOwoKICAgICAgIHN3aXRjaCggdHJpbSgkcGFyYW1zWydtb2RlJ10gKSApIHsKICAgICAgIGNhc2UgJ2RldGFpbGVkJzoKCSB7CgkgICAkcXBhcm1zID0gYXJyYXkoKTsKCSAgICRxcGFybXNbXSA9ICRjYXRlZ29yeV9pZDsKCSAgICR0ZW1wbGF0ZSA9ICdkZXRhaWxycHRfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9kZXRhaWxycHQnKTsKCSAgIGlmKCBpc3NldCggJHBhcmFtc1snZGV0YWlsdGVtcGxhdGUnXSApICkKCSAgICAgewoJICAgICAgICR0ZW1wbGF0ZSA9ICdkZXRhaWxycHRfJy4kcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddOwoJICAgICB9CgkgICAkcXVlcnkgPQoJICAgICAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXggKCkuCgkgICAgICJtb2R1bGVfdXBsb2FkcyBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfaWQgPSA/IjsKCSAgIGlmKCAka2V5ICE9IG51bGwgKQoJICAgICB7CgkgICAgICAgJHF1ZXJ5IC49ICIgQU5EIHVwbG9hZF9rZXkgPSA/IjsKCSAgICAgICAkcXBhcm1zW10gPSAka2V5OwoJICAgICB9CgkgICBpZiggJGFkanVzdGVkX2ZpbHRlciAhPSAnJyApCgkgICAgIHsKCSAgICAgICAkcXVlcnkgLj0gIiBBTkQgdXBsb2FkX25hbWUgUkVHRVhQID8iOwoJICAgICAgICRxcGFybXNbXSA9ICRhZGp1c3RlZF9maWx0ZXI7CgkgICAgIH0KCSAgICRxdWVyeSAuPSAkc29ydG9yZGVyLiRjb3VudDsKCSAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5LCAkcXBhcm1zKTsKCSB9CgkgYnJlYWs7CiAgICAgICBjYXNlICdzaW5nbGUnOgoJIHsKCSAgIC8vIGRpc3BsYXkgaW5mbyBhYm91dCBhIHNpbmdsZSBmaWxlLCBpbiBleHBhbmRlZCBmb3JtCgkgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3VwbG9hZF9pZCddKSApIHsKCSAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKCSAgICAgcmV0dXJuOwoJICAgfQoJICAgICAgIAoJICAgJHRlbXBsYXRlID0gJ2RldGFpbHJwdF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X2RldGFpbHJwdCcpOwoJICAgaWYoIGlzc2V0KCAkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddICkgKQoJICAgICB7CgkgICAgICAgJHRlbXBsYXRlID0gJ2RldGFpbHJwdF8nLiRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CgkgICAgIH0KCSAgICRxdWVyeSA9CgkgICAgICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJICAgICAibW9kdWxlX3VwbG9hZHMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyIuIiBBTkQgdXBsb2FkX2lkID0gPyI7CgkgICAkcXBhcm1zID0gYXJyYXkoICRjYXRlZ29yeV9pZCwgJHBhcmFtc1sndXBsb2FkX2lkJ10gKTsKCSAgIGlmKCAka2V5ICE9IG51bGwgKQoJICAgICB7CgkgICAgICAgJHF1ZXJ5IC49ICIgQU5EIHVwbG9hZF9rZXkgPSA/IjsKCSAgICAgICAkcXBhcm1zW10gPSAka2V5OwoJICAgICB9CgkgICAkZGJyZXN1bHQgPQoJICAgICAkZGItPkV4ZWN1dGUgKCRxdWVyeSwgJHFwYXJtcyApOwoJIH0KCSBicmVhazsKCiAgICAgICBjYXNlICdzaW5nbGVzdW1tYXJ5JzoKCSB7CgkgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3VwbG9hZF9pZCddKSApIHsKCSAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKCSAgICAgcmV0dXJuOwoJICAgfQoJICAgICAgIAoJICAgJHRlbXBsYXRlID0gJ3N1bW1hcnlycHRfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9zdW1tYXJ5cnB0Jyk7CgkgICBpZiggaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApCgkgICAgIHsKCSAgICAgICAkdGVtcGxhdGUgPSAnc3VtbWFyeXJwdF8nLiRwYXJhbXNbJ3RlbXBsYXRlJ107CgkgICAgIH0KCSAgICRxdWVyeSA9CgkgICAgICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJICAgICAibW9kdWxlX3VwbG9hZHMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyIuIiBBTkQgdXBsb2FkX2lkID0gPyBBTkQiOwoJICAgJHFwYXJtcyA9IGFycmF5KCRjYXRlZ29yeV9pZCwgJHBhcmFtc1sndXBsb2FkX2lkJ10pOwoJICAgaWYoICRrZXkgIT0gbnVsbCApCgkgICAgIHsKCSAgICAgICAkcXVlcnkgLj0gIiBBTkQgdXBsb2FkX2tleSA9ID8iOwoJICAgICAgICRxcGFybXNbXSA9ICRrZXk7CgkgICAgIH0KCSAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5LCAkcXBhcm1zICk7CgkgfQoJIGJyZWFrOwoKICAgICAgIGNhc2UgJ2xpbmsnOgoJIHsKCSAgICR0ZW1wbGF0ZSA9ICcnOwoJICAgJHF1ZXJ5ID0gCgkgICAgICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgoJICAgICAibW9kdWxlX3VwbG9hZHMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyIuIiBBTkQgdXBsb2FkX2lkID0gPyI7CgkgICAkcXBhcm1zID0gYXJyYXkoICRjYXRlZ29yeV9pZCwgJHBhcmFtc1sndXBsb2FkX2lkJ10gKTsKCSAgIGlmKCAka2V5ICE9IG51bGwgKQoJICAgICB7CgkgICAgICAgJHF1ZXJ5IC49ICIgQU5EIHVwbG9hZF9rZXkgPSA/IjsKCSAgICAgICAkcXBhcm1zW10gPSAka2V5OwoJICAgICB9CgkgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUgKCRxdWVyeSwgJHFwYXJtcyApOwoJICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKCSAgIGVjaG8gJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluayAoJGlkLCAkcmV0dXJuaWQsICdnZXRmaWxlJywgJHJvd1sndXBsb2FkX25hbWUnXSwKCQkJCQkgICBhcnJheSAoJ3Nob3d0ZW1wbGF0ZScgPT4gJ3RydWUnLCAndXBsb2FkX2lkJyA9PiAkcm93Wyd1cGxvYWRfaWQnXSkpOwoJIH0KCSBicmVhazsKCiAgICAgICBjYXNlICd1cmwnOgoJIHsKCSAgIC8vIG91dHB1dCBqdXN0IGEgdXJsCgkgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3VwbG9hZF9pZCddKSApIHsKCSAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKCSAgICAgcmV0dXJuOwoJICAgfQoJICAgICAgIAoJICAgJHRlbXBsYXRlID0gJyc7CgkgICAkcXVlcnkgPSAKCSAgICAgIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuCgkgICAgICJtb2R1bGVfdXBsb2FkcyBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfaWQgPSA/Ii4iIEFORCB1cGxvYWRfaWQgPSA/IjsKCSAgICRxcGFybXMgPSBhcnJheSggJGNhdGVnb3J5X2lkLCAkcGFyYW1zWyd1cGxvYWRfaWQnXSApOwoJICAgaWYoICRrZXkgIT0gbnVsbCApCgkgICAgIHsKCSAgICAgICAkcXVlcnkgLj0gIiBBTkQgdXBsb2FkX2tleSA9ID8iOwoJICAgICAgICRxcGFybXNbXSA9ICRrZXk7CgkgICAgIH0KCSAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5LCAkcXBhcm1zICk7CgkgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJICAgZWNobyAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnZ2V0ZmlsZScsICRyZXR1cm5pZCwgJycsIAoJCQkJICAgYXJyYXkgKCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnLCAndXBsb2FkX2lkJyA9PiAkcm93Wyd1cGxvYWRfaWQnXSksICcnLCB0cnVlKTsKCSB9CgkgYnJlYWs7CgogICAgICAgY2FzZSAnc3VtbWFyeSc6CgkgewoJICAgLy8gZGlzcGxheSBpbmZvIGFib3V0IGFsbCBvZiB0aGUgZmlsZXMgaW4gdGhlIGNhdGVnb3J5CgkgICAvLyBwb3NzaWJseSBsaW1pdGVkIGJ5IGZpbGVzIG9mIGEgc3BlY2lmYyB0eXBlCgkgICAkdGVtcGxhdGUgPSAnc3VtbWFyeXJwdF8nLiR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N1bW1hcnlycHQnKTsKCSAgIGlmKCBpc3NldCggJHBhcmFtc1sndGVtcGxhdGUnXSApICkKCSAgICAgewoJICAgICAgICR0ZW1wbGF0ZSA9ICdzdW1tYXJ5cnB0XycuJHBhcmFtc1sndGVtcGxhdGUnXTsKCSAgICAgfQoKCSAgICRxcGFybXMgPSBhcnJheSgkY2F0ZWdvcnlfaWQpOwoJICAgJHF1ZXJ5ID0KCSAgICAgIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuCgkgICAgICJtb2R1bGVfdXBsb2FkcyBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfaWQgPSA/IjsKCSAgIGlmKCAka2V5ICE9IG51bGwgKQoJICAgICB7CgkgICAgICAgJHF1ZXJ5IC49ICIgQU5EIHVwbG9hZF9rZXkgPSA/IjsKCSAgICAgICAkcXBhcm1zW10gPSAka2V5OwoJICAgICB9CgkgICBpZiggJGFkanVzdGVkX2ZpbHRlciAhPSAnJyApCgkgICAgIHsKCSAgICAgICAkcXVlcnkgLj0gIiBBTkQgdXBsb2FkX25hbWUgUkVHRVhQID8iOwoJICAgICAgICRxcGFybXNbXSA9ICRhZGp1c3RlZF9maWx0ZXI7CgkgICAgIH0KCSAgIC8vIGJsYWggYmxhaAoJICAgJHF1ZXJ5IC49ICRzb3J0b3JkZXIuJGNvdW50OwoJICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnksICRxcGFybXMpOwoJIH0KCSBicmVhazsKCiAgICAgICB9IC8vIHN3aXRjaAogICAgIH0KCiAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYXRjaGVzdGV4dCcsJHRoaXMtPkxhbmcoJ21hdGNoZXNmb3VuZCcpKTsKCiAgICAgJG1hdGNoZXMgPSAwOwoKICAgICBpZiggJGRvX3F1ZXJ5ID09IHRydWUgKQogICAgICAgewoJIGlmKCAkZGJyZXN1bHQgJiYgJGRicmVzdWx0LT5SZWNvcmRDb3VudCgpICkKCSAgIHsKCSAgICAgJG1hdGNoZXMgPSAkZGJyZXN1bHQtPlJlY29yZENvdW50KCk7CgkgICB9CgoJIC8vIHNldHVwIHN0cmluZ3MKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkdGhpcy0+TGFuZygnY2F0ZWdvcnknKSk7CgkgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpZCcsJHRoaXMtPkxhbmcoJ2lkJykpOwoJICR0aGlzLT5zbWFydHktPmFzc2lnbignbmFtZScsJHRoaXMtPkxhbmcoJ25hbWUnKSk7CgkgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkYXRlJywkdGhpcy0+TGFuZygnZGF0ZScpKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2F1dGhvcicsJHRoaXMtPkxhbmcoJ2F1dGhvcicpKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NpemUnLCR0aGlzLT5MYW5nKCdzaXpla2InKSk7CgkgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZXRhaWxzJywkdGhpcy0+TGFuZygnZGV0YWlscycpKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1bW1hcnknLCR0aGlzLT5MYW5nKCdzdW1tYXJ5JykpOwoJICR0aGlzLT5zbWFydHktPmFzc2lnbignZGVzY3JpcHRpb24nLCR0aGlzLT5MYW5nKCdkZXNjcmlwdGlvbicpKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RodW1ibmFpbCcsJHRoaXMtPkxhbmcoJ3RodW1ibmFpbCcpKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ljb24nLCR0aGlzLT5MYW5nKCdpY29uJykpOwoKCSBpZiAoISRkYnJlc3VsdCkKCSAgIHsKCSAgICAgLy8gbWF5YmUgdGhlcmUgYXJlIG5vIGZpbGVzIGluIHRoaXMgY2F0ZWdvcnkKCSAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgnZXJyb3Jfbm9maWxlcycpKTsKCSAgIH0KCSBlbHNlIGlmKCAkdGVtcGxhdGUgIT0gJycgKSAKCSAgIHsKCSAgICAgLy8gZG8gdGhlIGxpc3QKCSAgICAgJHJvd2NsYXNzID0gJ3JvdzEnOwoJICAgICB3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3cgKCkpCgkgICAgICAgewoJCSAkb25lcm93ID0gbmV3IHN0ZENsYXNzICgpOwoJCSAkb25lcm93LT5pZCA9ICRyb3dbJ3VwbG9hZF9pZCddOwoJCSBpZiggJHBhcmFtc1snY2F0ZWdvcnknXSA9PSAnYWxsJyApCgkJICAgewoJCSAgICAgJG9uZXJvdy0+Y2F0ZWdvcnkgPSAkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfbmFtZSddOwoJCSAgIH0KCQkgZWxzZSAKCQkgICB7CgkJICAgICAkb25lcm93LT5jYXRlZ29yeSA9ICRwYXJhbXNbJ2NhdGVnb3J5J107CgkJICAgfQoJCSAkb25lcm93LT5kb3dubG9hZF91cmwgPQoJCSAgICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsICdnZXRmaWxlJywgJHJldHVybmlkLCAnJywgCgkJCQkgICAgICBhcnJheSAoJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3VwbG9hZF9pZCcgPT4gJHJvd1sndXBsb2FkX2lkJ10pLCAnJywgdHJ1ZSApOwoJCSAkb25lcm93LT5uYW1lID0KCQkgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnZ2V0ZmlsZScsICRyZXR1cm5pZCwgJHJvd1sndXBsb2FkX25hbWUnXSwKCQkJCSAgICAgIGFycmF5ICgnc2hvd3RlbXBsYXRlJz0+J2ZhbHNlJywndXBsb2FkX2lkJyA9PiAkcm93Wyd1cGxvYWRfaWQnXSkpOwoJCSAkb25lcm93LT5hdXRob3IgPSAkcm93Wyd1cGxvYWRfYXV0aG9yJ107CgkJIHsKCQkgICAkcGFybXMgPSAkcGFyYW1zOwoJCSAgICRwYXJtc1snbW9kZSddID0gJ3NpbmdsZSc7CgkJICAgJHBhcm1zWyd1cGxvYWRfaWQnXSA9ICRyb3dbJ3VwbG9hZF9pZCddOwoJCSAgICRvbmVyb3ctPmRldGFpbGxpbmsgPQoJCSAgICAgJHRoaXMtPkNyZWF0ZUZyb250ZW5kTGluayAoJGlkLCAkcmV0dXJuaWQsICdkZWZhdWx0JywgCgkJCQkJCSR0aGlzLT5MYW5nKCdkZXRhaWxzJyksCgkJCQkJCSRwYXJtcyk7CgkJIH0KCQkgJG9uZXJvdy0+c3VtbWFyeSA9ICRyb3dbJ3VwbG9hZF9zdW1tYXJ5J107CgkJIGlmKCBpc3NldCggJHJvd1sndXBsb2FkX3N1bW1hcnknXSApICYmICRyb3dbJ3VwbG9hZF9zdW1tYXJ5J10gIT0gIiIgKQoJCSAgIHsKCQkgICAgICRvbmVyb3ctPnN1bW1hcnlsaW5rID0KCQkgICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsgKCRpZCwgJ2dldGZpbGUnLCAkcmV0dXJuaWQsICRyb3dbJ3VwbG9hZF9zdW1tYXJ5J10sCgkJCQkJICBhcnJheSAoJ3Nob3d0ZW1wbGF0ZSc9PidmYWxzZScsJ3VwbG9hZF9pZCcgPT4gJHJvd1sndXBsb2FkX2lkJ10pKTsKCQkgICB9CgkJICAgICAKCQkgLy8gdGh1bWJuYWlsCgkJICRjYXRwYXRoID0gJHRoaXMtPmdldENhdGVnb3J5UGF0aEZyb21GaWxlSUQoJHJvd1sndXBsb2FkX2lkJ10pOwoJCSAkdG5maWxlID0gJHRoaXMtPl9jYXRlZ29yeVBhdGgoICRjYXRwYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1IuCgkJCQkJCSAnLnRodW1icycuRElSRUNUT1JZX1NFUEFSQVRPUi4kcm93Wyd1cGxvYWRfaWQnXS4nX3RodW1iJyk7CgkJIGlmKCBmaWxlX2V4aXN0cyggJHRuZmlsZSApICkKCQkgICB7CgkJICAgICAkdG51cmwgPSAkdGhpcy0+Y21zLT5jb25maWdbJ3VwbG9hZHNfdXJsJ10uIi8iLiRjYXRwYXRoLicvLnRodW1icy8nLiRyb3dbJ3VwbG9hZF9pZCddLidfdGh1bWInOwoJCSAgICAgJG9uZXJvdy0+dGh1bWJuYWlsX3VybCA9ICR0bnVybDsKCQkgICB9CgoJCSAvLyBmaWxldHlwZQoJCSAkZmlsZXR5cGUgPSAkdGhpcy0+X0dldEZpbGVUeXBlKCAkcm93Wyd1cGxvYWRfbmFtZSddICk7CgkJIGlmKCAkZmlsZXR5cGVzICE9ICcnICkKCQkgICB7CgkJICAgICAkcmVzID0gYXJyYXlfc2VhcmNoKCAkZmlsZXR5cGVbJ25hbWUnXSwgZXhwbG9kZSgnLCcsJGZpbGV0eXBlcyApICk7CgkJICAgICBpZiggJHJlcyA9PT0gTlVMTCB8fCAkcmVzID09PSBGQUxTRSApCgkJICAgICAgIHsKCQkJIC8vIHdlIGhhdmUgZm91bmQgYSBmaWxlIHRoYXQgaXNuJ3QgYSB0eXBlIHdlIHJlcXVlc3RlZC4KCQkJIGNvbnRpbnVlOwoJCSAgICAgICB9CgkJICAgfQoJCSAKCQkgJGltZ3BhdGggPSAnbW9kdWxlcy8nLmJhc2VuYW1lKGRpcm5hbWUoX19GSUxFX18pKS4nL2ltYWdlcy8nOwoJCSBpZiggJGZpbGV0eXBlICE9PSBmYWxzZSApCgkJICAgewoJCSAgICAgJG9uZXJvdy0+aWNvbnVybCA9ICRpbWdwYXRoLiRmaWxldHlwZVsnaW1hZ2UnXTsKCQkgICAgICRvbmVyb3ctPmZpbGV0eXBlID0gJGZpbGV0eXBlOwoJCSAgIH0KCQkgZWxzZQoJCSAgIHsKCQkgICAgICRvbmVyb3ctPmljb251cmwgPSAkaW1ncGF0aC4ndW5rbm93bi5wbmcnOwoJCSAgIH0KCgkJICRvbmVyb3ctPmRlc2NyaXB0aW9uID0gJHJvd1sndXBsb2FkX2Rlc2NyaXB0aW9uJ107CgkJICRvbmVyb3ctPmlwID0gJHJvd1sndXBsb2FkX2lwJ107CgkJICRvbmVyb3ctPnNpemUgPSBpbnR2YWwoJHJvd1sndXBsb2FkX3NpemUnXSAvIDEwMjQuMCArIDAuNSk7CgkJICRvbmVyb3ctPmRhdGUgPSAkcm93Wyd1cGxvYWRfZGF0ZSddOwoJCSAkb25lcm93LT5yb3djbGFzcyA9ICRyb3djbGFzczsKCQkgICAgIAoJCSBhcnJheV9wdXNoICgkcm93YXJyYXksICRvbmVyb3cpOwoJCSAoJHJvd2NsYXNzID09ICJyb3cxIiA/ICRyb3djbGFzcyA9ICJyb3cyIiA6ICRyb3djbGFzcyA9ICJyb3cxIik7CgkgICAgICAgfQoJCSAKCSAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaXRlbXMnLCAkcm93YXJyYXkpOwoJICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpdGVtY291bnQnLCBjb3VudCgkcm93YXJyYXkpKTsKCSAgIH0KICAgICAgIH0KICAgfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCAnbWF0Y2hlcycsICRtYXRjaGVzICk7CgovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKaWYoJHRlbXBsYXRlICE9ICIiKSB7CiAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhYmFzZSAoJHRlbXBsYXRlKTsKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24gKCdNYW5hZ2UgVXBsb2FkcycpKQogIHsKICAgIC8vIGRvIG5vdGhpbmcsIHRvZG86IHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGNoYW5nZWQKICAgIHJldHVybjsKICB9CgoKLy8gZ2V0IHRoZSBjdXJyZW50IGNhdGVnb3J5IGZvciB0aGUgZmlsdGVyCiRjdXJjYXRlZ29yeSA9CiAgICAoaXNzZXQgKCRwYXJhbXNbJ2N1cmNhdGVnb3J5J10pID8gJHBhcmFtc1snY3VyY2F0ZWdvcnknXSA6ICcnKTsKaWYgKGlzc2V0ICgkcGFyYW1zWydzdWJtaXRjYXRlZ29yeSddKSkKICB7CiAgICAkY3VyY2F0ZWdvcnkgPQogICAgICAoaXNzZXQgKCRwYXJhbXNbJ2lucHV0X2NhdGVnb3J5J10pID8gJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnknXSA6CiAgICAgICAnJyk7CiAgfQoKLy8gYXJlIHdlIHVwbG9hZGluZyBhIGZpbGUgICAgICAKaWYgKGlzc2V0KCAkcGFyYW1zWydzdWJtaXR1cGxvYWQnXSApICkKICB7CiAgICAkdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwogICAgJHVzZXJuYW1lID0gJF9TRVNTSU9OWyJjbXNfYWRtaW5fdXNlcm5hbWUiXTsKICAgICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10gPSAkY3VyY2F0ZWdvcnk7CiAgICAKICAgICRyZXQgPSAkdGhpcy0+QXR0ZW1wdFVwbG9hZCggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQgKTsKICAgIGlmKCAkcmV0WzBdID09IGZhbHNlICkKICAgICAgewoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAgJHJldFsxXSApOwoJcmV0dXJuOwogICAgICB9CiAgfQoKJGFjdGl2ZV90YWIgPSAtMTsKaWYoIGlzc2V0KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpCiAgewogICAgJGFjdGl2ZV90YWIgPSAkcGFyYW1zWydhY3RpdmVfdGFiJ107CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7CiAgfQogICAgCi8vVGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzICgpOwppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01hbmFnZSBVcGxvYWRzJykpCiAgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyICgnZmlsZXMnLCAkdGhpcy0+TGFuZyAoJ2ZpbGVzJyksCgkJCSAgICAgICgkYWN0aXZlX3RhYiA9PSAnZmlsZXMnKSk7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIgKCdjYXRlZ29yaWVzJywgJHRoaXMtPkxhbmcgKCdjYXRlZ29yaWVzJyksCgkJCSAgICAgICgkYWN0aXZlX3RhYiA9PSAnY2F0ZWdvcmllcycpKTsKICB9CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIgKCd1cGxvYWRmb3JtX3RlbXBsYXRlJywKCQkJICAgICAgJHRoaXMtPkxhbmcgKCd1cGxvYWRmb3JtX3RlbXBsYXRlJyksCgkJCSAgICAgICgkYWN0aXZlX3RhYiA9PSAndXBsb2FkZm9ybV90ZW1wbGF0ZScpKTsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlciAoJ3N1bW1hcnlfdGVtcGxhdGUnLAoJCQkgICAgICAkdGhpcy0+TGFuZyAoJ3N1bW1hcnlfdGVtcGxhdGUnKSwKCQkJICAgICAgKCRhY3RpdmVfdGFiID09ICdzdW1tYXJ5X3RlbXBsYXRlJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyICgnZGV0YWlsX3RlbXBsYXRlJywKCQkJICAgICAgJHRoaXMtPkxhbmcgKCdkZXRhaWxfdGVtcGxhdGUnKSwKCQkJICAgICAgKCRhY3RpdmVfdGFiID09ICdkZXRhaWxfdGVtcGxhdGUnKSk7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIgKCdlbWFpbF90ZW1wbGF0ZScsCgkJCSAgICAgICR0aGlzLT5MYW5nICgnZW1haWxfdGVtcGxhdGUnKSwKCQkJICAgICAgKCRhY3RpdmVfdGFiID09ICdlbWFpbF90ZW1wbGF0ZScpKTsKICB9CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoICdmaWxlX3R5cGVzJywKCQkJICAgICAgJHRoaXMtPkxhbmcoICdmaWxlX3R5cGVzJyksCgkJCSAgICAgICgkYWN0aXZlX3RhYiA9PSAnZmlsZV90eXBlcycpKTsKICB9CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIgKCdhZG1pbl9wcmVmcycsCgkJCSAgICAgICR0aGlzLT5MYW5nICgncHJlZmVyZW5jZXMnKSwKCQkJICAgICAgKCRhY3RpdmVfdGFiID09ICdhZG1pbl9wcmVmcycpKTsKICB9CmVjaG8gJHRoaXMtPkVuZFRhYkhlYWRlcnMgKCk7CiAgICAKLy9UaGUgY29udGVudCBvZiB0aGUgdGFicwplY2hvICR0aGlzLT5TdGFydFRhYkNvbnRlbnQgKCk7CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01hbmFnZSBVcGxvYWRzJykpCiAgewogICAgLy8gdGhlIGZpbGVzIHRhYgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIgKCJmaWxlcyIpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2ZpbGVzdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiICgpOwoKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiICgiY2F0ZWdvcmllcyIpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2NhdGVnb3JpZXN0YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIgKCk7CiAgfQoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24gKCdNb2RpZnkgVGVtcGxhdGVzJykpCiAgewogICAgLy8gdGhlIHVwbG9hZCBmb3JtIHRlbXBsYXRlIHRhYgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIgKCJ1cGxvYWRmb3JtX3RlbXBsYXRlIik7CiAgICB7CiAgICAgICR0aGlzLT5fQWRtaW5FZGl0RGVmYXVsdFRlbXBsYXRlRm9ybSgkaWQsJHJldHVybmlkLCd1cGxvYWRmb3JtX3N5c2RlZmF1bHQnLAoJCQkJCSAgICd1cGxvYWRmb3JtX3RlbXBsYXRlJywKCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfdXBsb2FkZm9ybV9zeXNkZWZhdWx0JyksCgkJCQkJICAgJ29yaWdfdXBsb2FkZm9ybV90ZW1wbGF0ZS50cGwnLAoJCQkJCSAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RlZmF1bHQnKSk7CgogICAgICAkdGhpcy0+X0FkbWluQ3JlYXRlVGVtcGxhdGVMaXN0KCAkaWQsICRyZXR1cm5pZCwgJ3VwbG9hZGZvcm1fJywKCQkJCSAgICAgICAndXBsb2FkZm9ybV9zeXNkZWZhdWx0JywgJ3VwbG9hZGZvcm1fdGVtcGxhdGUnLAoJCQkJICAgICAgICdkZWZhdWx0X3VwbG9hZGZvcm0nLAoJCQkJICAgICAgICR0aGlzLT5MYW5nKCd0aXRsZV91cGxvYWRmb3JtX3RlbXBsYXRlJykpOwogICAgfQogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgkKICAgIC8vIHRoZSBzdW1tYXJ5IHRlbXBsYXRlIHRhYgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIgKCJzdW1tYXJ5X3RlbXBsYXRlIik7CiAgICB7CiAgICAgICR0aGlzLT5fQWRtaW5FZGl0RGVmYXVsdFRlbXBsYXRlRm9ybSgkaWQsJHJldHVybmlkLCdzdW1tYXJ5cnB0X3N5c2RlZmF1bHQnLAoJCQkJCSAgICdzdW1tYXJ5cnB0X3RlbXBsYXRlJywKCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfc3VtbWFyeXJwdF9zeXNkZWZhdWx0JyksCgkJCQkJICAgJ29yaWdfc3VtbWFyeXJwdF90ZW1wbGF0ZS50cGwnLAoJCQkJCSAgICR0aGlzLT5MYW5nKCdpbmZvX3N5c2RlZmF1bHQnKSk7CgogICAgICAkdGhpcy0+X0FkbWluQ3JlYXRlVGVtcGxhdGVMaXN0KCAkaWQsICRyZXR1cm5pZCwgJ3N1bW1hcnlycHRfJywKCQkJCSAgICAgICAnc3VtbWFyeXJwdF9zeXNkZWZhdWx0JywgJ3N1bW1hcnlfdGVtcGxhdGUnLAoJCQkJICAgICAgICdkZWZhdWx0X3N1bW1hcnlycHQnLAoJCQkJICAgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9zdW1tYXJ5cnB0X3RlbXBsYXRlJykpOwogICAgfQogICAgZWNobyAkdGhpcy0+RW5kVGFiICgpOwoJCiAgICAvLyB0aGUgZGV0YWlsIHRlbXBsYXRlIHRhYgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIgKCJkZXRhaWxfdGVtcGxhdGUiKTsKICAgIHsKICAgICAgJHRoaXMtPl9BZG1pbkVkaXREZWZhdWx0VGVtcGxhdGVGb3JtKCRpZCwkcmV0dXJuaWQsJ2RldGFpbHJwdF9zeXNkZWZhdWx0JywKCQkJCQkgICAnZGV0YWlscnB0X3RlbXBsYXRlJywKCQkJCQkgICAkdGhpcy0+TGFuZygndGl0bGVfZGV0YWlscnB0X3N5c2RlZmF1bHQnKSwKCQkJCQkgICAnb3JpZ19kZXRhaWxycHRfdGVtcGxhdGUudHBsJywKCQkJCQkgICAkdGhpcy0+TGFuZygnaW5mb19zeXNkZWZhdWx0JykpOwoKICAgICAgJHRoaXMtPl9BZG1pbkNyZWF0ZVRlbXBsYXRlTGlzdCggJGlkLCAkcmV0dXJuaWQsICdkZXRhaWxycHRfJywKCQkJCSAgICAgICAnZGV0YWlscnB0X3N5c2RlZmF1bHQnLCAnZGV0YWlsX3RlbXBsYXRlJywKCQkJCSAgICAgICAnZGVmYXVsdF9kZXRhaWxycHQnLAoJCQkJICAgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9kZXRhaWxycHRfdGVtcGxhdGUnKSk7CiAgICB9CiAgICBlY2hvICR0aGlzLT5FbmRUYWIgKCk7CgkKICAgIC8vIHRoZSBlbWFpbCB0ZW1wbGF0ZSB0YWIKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdlbWFpbF90ZW1wbGF0ZScpOwogICAgewogICAgICBlY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ3VwZGF0ZWVtYWlsdGVtcGxhdGUnKTsKICAgICAgZWNobyAnPGJyLz48cD4nLiR0aGlzLT5DcmVhdGVUZXh0QXJlYSAoZmFsc2UsICRpZCwKCQkJCQkgICAgICR0aGlzLT4KCQkJCQkgICAgIEdldFRlbXBsYXRlICgndXBsb2FkX2VtYWlsdGVtcGxhdGUnKSwKCQkJCQkgICAgICd0ZW1wbGF0ZWNvbnRlbnQnLCAnJykuJzwvcD4nOwogICAgICBlY2hvICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywKCQkJCSAgICAgJHRoaXMtPkxhbmcgKCdzdWJtaXQnKSk7CiAgICAgIGVjaG8gJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdkZWZhdWx0YnV0dG9uJywgJHRoaXMtPkxhbmcgKCdkZWZhdWx0JyksICcnLCAnJywgCgkJCQkgICAgICR0aGlzLT5MYW5nKCdyZXN0b3JlZGVmYXVsdHNjb25maXJtJykpOwogICAgICBlY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kICgpOwogICAgfQogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24gKCdNYW5hZ2UgVXBsb2FkcycpKQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdmaWxlX3R5cGVzJyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fZmlsZXR5cGVzdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQoKaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCAnYWRtaW5fcHJlZnMnICk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fcHJlZnN0YWIucGhwJyk7CiAgICBlY2hvICR0aGlzLT5FbmRUYWIgKCk7CiAgfQoKLy8gZG9uZSB0YWJzCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQgKCk7CnJldHVybjsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiAgaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICAgIHsKICAgICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlCiAgICAgIHJldHVybjsKICAgIH0KCiAgaWYoICEoaXNzZXQoJHBhcmFtc1sndGVtcGxhdGUnXSkpICkKICAgIHsKICAgICAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgCgkJCQkkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJykpOwogICAgICByZXR1cm47CiAgICB9CgogICR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ3VwbG9hZGZvcm1fdGVtcGxhdGUnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletetype.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBVcGxvYWRzJykgKQogIHsKICAgIHJldHVybjsKICB9CgppZiggIWlzc2V0KCAkcGFyYW1zWyd0eXBlaWQnXSApICkKICB7CiAgICAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtcycpKTsKICB9CgokdHlwZWlkID0gdHJpbSgkcGFyYW1zWyd0eXBlaWQnXSk7CiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCiRkYi0+RXhlY3V0ZSggIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19maWxldHlwZXMgCiAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8iLCBhcnJheSggJHBhcmFtc1sndHlwZWlkJ10gKSApOwokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCwkcGFyYW1zKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.do_addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBpZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24gKCdNYW5hZ2UgVXBsb2FkcycpKQogICAgICB7CgkvLyBkbyBub3RoaW5nLCB0b2RvOiB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBjaGFuZ2VkCglyZXR1cm47CiAgICAgIH0KCiAgICAvLyBhcmUgd2UgY2FuY2VsbGluZwogICAgaWYgKGlzc2V0ICgkcGFyYW1zWydjYW5jZWwnXSkpCiAgICB7CiAgICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCdjYXRlZ29yaWVzJyk7CiAgICB9CgogICAgJGVycm9yID0gZmFsc2U7CgogICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgc29tZXRoaW5nIHRvIHdvcmsgd2l0aAogICAgaWYgKCFpc3NldCAoJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnluYW1lJ10pCgl8fCAkcGFyYW1zWydpbnB1dF9jYXRlZ29yeW5hbWUnXSA9PSAiIikKICAgICAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZXJyb3InLCAiMSIpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgiZXJyb3JfZW1wdHljYXRlZ29yeSIpKTsKCSRlcnJvciA9IHRydWU7CiAgICAgIH0KICAgIGVsc2UgaWYgKCFpc3NldCAoJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnlwYXRoJ10pIHx8IHRyaW0oJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnlwYXRoJ10pID09ICIiKQogICAgICB7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlcnJvcicsICIxIik7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdtZXNzYWdlJywgJHRoaXMtPkxhbmcgKCJlcnJvcl9lbXB0eXBhdGgiKSk7CgkkZXJyb3IgPSB0cnVlOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIGNoZWNrIGlmIHRoZSBjYXRlZ29yeSBkb2Vzbid0IGFscmVhZHkgZXhpc3QKCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCSRxdWVyeSA9CgkgICJTRUxFQ1QgKiBmcm9tICIuY21zX2RiX3ByZWZpeCAoKS4KCSAgIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X25hbWUgPSA/IjsKCSRkYnJlc3VsdCA9CgkgICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5LCBhcnJheSAoJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnluYW1lJ10pKTsKCQoJLy8geWVwIGl0IGRvZXMKCWlmICgkZGJyZXN1bHQtPkZldGNoUm93ICgpKQoJICB7CgkgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZXJyb3InLCAiMSIpOwoJICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ21lc3NhZ2UnLAoJCQkJICAgJHRoaXMtPkxhbmcgKCJlcnJvcl9jYXRlZ29yeWV4aXN0cyIpKTsKCSAgICAkZXJyb3IgPSB0cnVlOwoJICB9CgllbHNlCgkgIHsKCSAgICAvLyBjaGVjayBpZiB0aGUgZGlyZWN0b3J5IGlzIGFscmVhZHkgaW4gdXNlCgkgICAgJHF1ZXJ5ID0KCSAgICAgICJTRUxFQ1QgKiBmcm9tICIuY21zX2RiX3ByZWZpeCAoKS4KCSAgICAgICJtb2R1bGVfdXBsb2Fkc19jYXRlZ29yaWVzIFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9wYXRoID0gPyI7CgkgICAgJGRicmVzdWx0ID0KCSAgICAgICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5LCBhcnJheSAoJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnlwYXRoJ10pKTsKCSAgICAKCSAgICBpZiAoJGRicmVzdWx0LT5GZXRjaFJvdyAoKSkKCSAgICAgIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlcnJvcicsICIxIik7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgiZXJyb3JfcGF0aGludXNlIikpOwoJCSRlcnJvciA9IHRydWU7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCS8vIENyZWF0ZSB0aGUgZGlyZWN0b3J5IGlmIGl0IGRvZXNuJ3QgZXhpc3QKCQkkZG9fc2NhbiA9IGZhbHNlOwoJCSRkaXIgPSAkdGhpcy0+X2NhdGVnb3J5UGF0aCgkcGFyYW1zWydpbnB1dF9jYXRlZ29yeXBhdGgnXSk7CgoJCWlmKCBmaWxlX2V4aXN0cyggJGRpciApICkgCgkJICB7CgkJICAgICRkb19zY2FuID0gdHJ1ZTsKCQkgIH0KCQllbHNlCgkJICB7CgkJICAgIC8vIGNyZWF0ZSB0aGUgZGlyZWN0b3J5CgkJICAgICRyZXN1bHQgPSAkdGhpcy0+X21rZGlyciAoJGRpcik7CgkJICAgIGlmICgkcmVzdWx0ID09IGZhbHNlKSAKCQkgICAgICB7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgIjEiKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsCgkJCQkJICAgICAgICR0aGlzLT5MYW5nICgiZXJyb3JfY2F0ZWdvcnlleGlzdHMiKSk7CgkJCSRlcnJvciA9IHRydWU7CgkJICAgICAgfQoJCSAgICAvLyBjcmVhdGUgYW4gaW5kZXguaHRtbCBmaWxlIChlbXB0eSkKCQkgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfZHVtbXlfaW5kZXhfaHRtbCcpICkKCQkgICAgICB7CgkJCXRvdWNoKCAkZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuImluZGV4Lmh0bWwiICk7CgkJICAgICAgfQoJCSAgfQoKCQlpZiggISRlcnJvciApCgkJICB7CgkJICAgIC8vIEFkZCB0aGUgcmVjb3JkIHRvIHRoZSBjYXRlZ29yeSB0YWJsZQoJCSAgICAkY2F0aWQgPQoJCSAgICAgICRkYi0+R2VuSUQgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXNfc2VxIik7CgkJICAgICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10gPSAkY2F0aWQ7CgkJICAgICRxdWVyeSA9CgkJICAgICAgIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCAoKS4KCQkgICAgICAibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyBWQUxVRVMgKD8sPyw/LD8sPykiOwoJCSAgICAkZGJyZXN1bHQgPQoJCSAgICAgICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5LAoJCQkJICAgIGFycmF5ICgkY2F0aWQsCgkJCQkJICAgJHBhcmFtc1siaW5wdXRfY2F0ZWdvcnluYW1lIl0sCgkJCQkJICAgJHBhcmFtc1siaW5wdXRfY2F0ZWdvcnlkZXNjIl0sCgkJCQkJICAgJHBhcmFtc1siaW5wdXRfY2F0ZWdvcnlwYXRoIl0sCgkJCQkJICAgJHBhcmFtc1siaW5wdXRfY2F0ZWdvcnlsaXN0YWJsZSJdKSk7CgkJICAgIGlmICghJGRicmVzdWx0KQoJCSAgICAgIHsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZXJyb3InLCAiMSIpOwoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdtZXNzYWdlJywKCQkJCQkgICAgICAgJHRoaXMtPkxhbmcgKCJtZXNzYWdlX2NhdGVnb3J5YWRkZWQiKSk7CgkJCSRlcnJvciA9IHRydWU7CgkJICAgICAgfQoJCSAgICBlbHNlCgkJICAgICAgewoJCQlpZiggJGRvX3NjYW4gKQoJCQkgIHsKCQkJICAgIC8vIGNhdGVnb3J5IGlzIGFkZGVkLCBhbmQgdGhlIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0ZWQuLi4gc28gbm93CgkJCSAgICAvLyB3ZSdyZSBnb25uYSBzY2FuIHRoZSBkaXJlY3RvcnkgYW5kIGFkZCBmaWxlcyB0byB0aGUgZGF0YWJhc2UKCQkJICAgICR0aGlzLT5TY2FuRGlyZWN0b3J5KCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJGRpciApOwoJCQkgIH0KCgkJCS8vIHNlbmQgYW4gZXZlbnQKCQkJJHBhcm1zID0gYXJyYXkoKTsKCQkJJHBhcm1zWyduYW1lJ10gPSAkcGFyYW1zWydpbnB1dF9jYXRlZ29yeW5hbWUnXTsKCQkJJHBhcm1zWydkZXNjcmlwdGlvbiddID0gJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnlkZXNjJ107CgkJCSRwYXJtc1sncGF0aCddID0gJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnlwYXRoJ107CgkJCSRwYXJtc1snbGlzdGFibGUnXSA9ICRwYXJhbXNbJ2lucHV0X2NhdGVnb3J5bGlzdGFibGUnXTsKCQkJJHRoaXMtPlNlbmRFdmVudCggJ09uQ3JlYXRlQ2F0ZWdvcnknLCAkcGFybXMgKTsKCQkgICAgICB9CgkJICB9CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgCiAgICBpZiAoJGVycm9yKQogICAgICB7CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZGRjYXRlZ29yeS50cGwnKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+bXlSZWRpcmVjdFRvVGFiICgkaWQsICdjYXRlZ29yaWVzJyk7CiAgICAgIH0KPz4K]]></data>
	</file>
	<file>
	  <filename>/action.do_addtemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICEkZ0NtcyApIGV4aXQoKTsKCmlmKCBpc3NldCggJHBhcmFtc1snY2FuY2VsJ10gKSApCiAgewogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydhY3RpdmVfdGFiJ10gKSAmJiAkcGFyYW1zWydhY3RpdmVfdGFiJ10gIT0gJycgKQogICAgICB7CgkkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJHBhcmFtc1snYWN0aXZlX3RhYiddKTsKICAgICAgfQogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJyk7CiAgfQoKaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICAvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUKICAgIHJldHVybjsKICB9CgokdGVtcGxhdGUgPSAiIjsKaWYoIGlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkgKQogIHsKICAgICR0ZW1wbGF0ZSA9IHRyaW0oJHBhcmFtc1sndGVtcGxhdGUnXSk7CiAgfQogIAokcHJlZml4ID0gIiI7CmlmKCBpc3NldCggJHBhcmFtc1sncHJlZml4J10gKSApCiAgewogICAgJHByZWZpeCA9IHRyaW0oJHBhcmFtc1sncHJlZml4J10pOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwkcGFyYW1zWydvcmlnYWN0aW9uJ10sJycsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKaWYoICR0ZW1wbGF0ZSA9PSAiIiB8fCAkcHJlZml4ID09ICIiICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJHBhcmFtc1snb3JpZ2FjdGlvbiddLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCgokbmV3dGVtcGxhdGUgPSAkcHJlZml4IC4gJHRlbXBsYXRlOwoKLy8gY2hlY2sgaWYgdGhpcyB0ZW1wbGF0ZSBhbHJlYWR5IGV4aXN0cwokdHh0ID0gdHJpbSgkdGhpcy0+R2V0VGVtcGxhdGUoJG5ld3RlbXBsYXRlKSk7CmlmKCAkdHh0ICE9ICIiICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJHBhcmFtc1snb3JpZ2FjdGlvbiddLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCi8vIHdlJ3JlIHJlYWR5IHRvIHNldCBpdAokdGhpcy0+U2V0VGVtcGxhdGUoJG5ld3RlbXBsYXRlLCRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddKTsKCmlmKCBpc3NldCggJHBhcmFtc1snYWN0aXZlX3RhYiddICkgJiYgJHBhcmFtc1snYWN0aXZlX3RhYiddICE9ICcnICkKICB7CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJHBhcmFtc1snYWN0aXZlX3RhYiddICk7CiAgfQokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.do_editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgPSBhbGxvdyB1c2VycyB0byB1cGxvYWQgc3R1ZmYsIGEgcHNldWRvIGZpbGUgbWFuYWdlciBtb2R1bGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSkKICB7CiAgICByZXR1cm47CiAgfQoKJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgCi8vIGFyZSB3ZSBjYW5jZWxsaW5nCmlmIChpc3NldCAoJHBhcmFtc1snY2FuY2VsJ10pKQogIHsKICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAnY2F0ZWdvcmllcycpOwogIH0KICAgIAovLyBtYWtlIHN1cmUgd2UgaGF2ZSBzb21ldGhpbmcgdG8gd29yayB3aXRoCmlmICghaXNzZXQgKCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pIHx8ICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10gPT0gIiIpCiAgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZXJyb3InLCAiMSIpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgiZXJyb3Jfbm9jYXRlZ29yeWlkIikpOwogIH0KIGVsc2UgaWYgKCFpc3NldCAoJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnluYW1lJ10pCgkgIHx8ICRwYXJhbXNbJ2lucHV0X2NhdGVnb3J5bmFtZSddID09ICIiKQogICB7CiAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZXJyb3InLCAiMSIpOwogICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ21lc3NhZ2UnLCAkdGhpcy0+TGFuZyAoImVycm9yX2VtcHR5Y2F0ZWdvcnkiKSk7CiAgIH0KIGVsc2UgaWYgKCFpc3NldCAoJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnlwYXRoJ10pCgkgIHx8ICRwYXJhbXNbJ2lucHV0X2NhdGVnb3J5ZGVzYyddID09ICIiKQogICB7CiAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZXJyb3InLCAiMSIpOwogICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ21lc3NhZ2UnLCAkdGhpcy0+TGFuZyAoImVycm9yX2VtcHR5cGF0aCIpKTsKICAgfQogZWxzZSBpZiAoaXNzZXQoICRwYXJhbXNbJ3NjYW4nXSApICkKICAgewogICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19jYXRlZ29yaWVzCiAgICAgICAgICAgIFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9pZCA9ID8iOwogICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSgkcGFyYW1zWydjYXRlZ29yeV9pZCddKSApOwogICAgIGlmKCAhJGRicmVzdWx0ICkKICAgICAgIHsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlcnJvcicsICIxIik7CgkgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgiZXJyb3JfZGJlcnJvciIpKTsKICAgICAgIH0gCiAgICAgZWxzZSAKICAgICAgIHsKCSAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJIGlmKCAhJHJvdyApIAoJICAgewoJICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlcnJvcicsICIxIik7CgkgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ21lc3NhZ2UnLCAkdGhpcy0+TGFuZyAoImVycm9yX2RiZXJyb3IiKSk7CgkgICB9IAoJIGVsc2UgCgkgICB7CgkgICAgICRkaXIgPSAkdGhpcy0+X2NhdGVnb3J5UGF0aCggJHJvd1sndXBsb2FkX2NhdGVnb3J5X3BhdGgnXSApOwoJICAgICAkdGhpcy0+U2NhbkRpcmVjdG9yeSggJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSwgJGRpciApOwoJICAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ2ZpbGVzJywgYXJyYXkoJ2lucHV0X2NhdGVnb3J5JyA9PiAkcGFyYW1zWydjYXRlZ29yeV9pZCddKSApOwoJICAgICByZXR1cm47CgkgICB9IAogICAgICAgfQogICB9CiBlbHNlCiAgIHsKICAgICAvLyBub3cgcHJlcGFyZSB0byB1cGRhdGUgdGhlIHJlY29yZAogICAgICRxdWVyeSA9CiAgICAgICAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCAoKS4KICAgICAgICJtb2R1bGVfdXBsb2Fkc19jYXRlZ29yaWVzIFNFVCB1cGxvYWRfY2F0ZWdvcnlfbmFtZSA9ID8sIi4KICAgICAgICJ1cGxvYWRfY2F0ZWdvcnlfZGVzY3JpcHRpb24gPSA/LCB1cGxvYWRfY2F0ZWdvcnlfbGlzdGFibGUgPSA/IFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9pZCA9ID8iOwogICAgICRkYnJlc3VsdCA9CiAgICAgICAkZGItPkV4ZWN1dGUgKCRxdWVyeSwKCQkgICAgIGFycmF5ICgkcGFyYW1zWydpbnB1dF9jYXRlZ29yeW5hbWUnXSwKCQkJICAgICRwYXJhbXNbJ2lucHV0X2NhdGVnb3J5ZGVzYyddLAoJCQkgICAgJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnlsaXN0YWJsZSddLAoJCQkgICAgJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpOwogICAgIGlmICghJGRicmVzdWx0KQogICAgICAgewoJICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgIjEiKTsKCSAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdtZXNzYWdlJywgJHRoaXMtPkxhbmcgKCJlcnJvcl9kYmVycm9yIikpOwogICAgICAgfQogICAgIGVsc2UKICAgICAgIHsKCSAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwnY2F0ZWdvcmllcycpOwoJIHJldHVybjsKICAgICAgIH0KICAgfQogICAgCiR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCJhZGRjYXRlZ29yeS50cGwiKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.do_edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFF1ZXN0aW9ucyAtIGEgc2ltcGxlIFF1ZXN0aW9ucyAmIEFuc3dlciBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIGNhbGd1eTEwMDAgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7CgppZiggaXNzZXQoICRwYXJhbXNbJ2NhbmNlbCddICkgKQogIHsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snYWN0aXZlX3RhYiddICkgJiYgJHBhcmFtc1snYWN0aXZlX3RhYiddICE9ICcnICkKICAgICAgewoJJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICRwYXJhbXNbJ2FjdGl2ZV90YWInXSk7CiAgICAgIH0KICAgICR0aGlzLT5teVJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJyk7CiAgfQoKaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICAvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUKICAgIHJldHVybjsKICB9CgppZiggIWlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSApICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJHBhcmFtc1snb3JpZ2FjdGlvbiddLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3RlbXBsYXRlJ10gKSApCiAgewogICAgJHBhcmFtc1snZXJyb3JzJ10gPSAkdGhpcy0+TGFuZygnZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJyk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCRwYXJhbXNbJ29yaWdhY3Rpb24nXSwnJywkcGFyYW1zKTsKICAgIHJldHVybjsKICB9CgokdGhpcy0+U2V0VGVtcGxhdGUoICRwYXJhbXNbJ3ByZWZpeCddLiRwYXJhbXNbJ3RlbXBsYXRlJ10sICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddICk7CmlmKCBpc3NldCggJHBhcmFtc1snYWN0aXZlX3RhYiddICkgJiYgJHBhcmFtc1snYWN0aXZlX3RhYiddICE9ICcnICkKICB7CiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJHBhcmFtc1snYWN0aXZlX3RhYiddKTsKICB9CiR0aGlzLT5teVJlZGlyZWN0KCRpZCwnZGVmYXVsdGFkbWluJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgPSBhbGxvdyB1c2VycyB0byB1cGxvYWQgc3R1ZmYsIGEgcHNldWRvIGZpbGUgbWFuYWdlciBtb2R1bGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSkKICB7CiAgICByZXR1cm47CiAgfQoKJGRiID0mICR0aGlzLT5HZXREYigpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZScsICR0aGlzLT5MYW5nICgnZWRpdGNhdGVnb3J5JykpOwogICAgCi8vIGNoZWNrIHRoaW5ncyBvdXQKaWYgKCFpc3NldCAoJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkpCiAgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgnZXJyb3Jfbm9jYXRlZ29yeScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgMSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZGRjYXRlZ29yeS50cGwnKTsKICAgIHJldHVybjsKICB9CgovLyBnZXQgdGhlIGNhdGVnb3J5IGluZm8gZnJvbSB0aGUgZGF0YWJhc2UgKGZvciB0aGlzIGNhdGVnb3J5KQokcXVlcnkgPQogICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCAoKS4KICAibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfaWQgPSA/IjsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pKTsKaWYgKCEkZGJyZXN1bHQpCiAgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgnZXJyb3JfZGJlcnJvcicpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgMSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZGRjYXRlZ29yeS50cGwnKTsKICAgIHJldHVybjsKICB9CiRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93ICgpOwppZiAoISRyb3cpCiAgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgnZXJyb3JfZGJlcnJvcicpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgMSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZGRjYXRlZ29yeS50cGwnKTsKICAgIHJldHVybjsKICB9CgovLyBwb3B1bGF0ZSB0aGUgdGVtcGxhdGUKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgic3RhcnRmb3JtIiwKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fZWRpdGNhdGVnb3J5JywgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3N1Ym1pdCcsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2NhbmNlbCcsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnY2FuY2VsJywgJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7ICAgIAokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdzY2FuJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCAkaWQsICdzY2FuJywgJHRoaXMtPkxhbmcoJ3NjYW4nKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQgKCkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X2NhdGVnb3J5bmFtZScsICR0aGlzLT5MYW5nICgncHJvbXB0X2NhdGVnb3J5bmFtZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfY2F0ZWdvcnluYW1lJywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCAoJGlkLCAnaW5wdXRfY2F0ZWdvcnluYW1lJywKCQkJCQkJCQkgICAgICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9uYW1lJ10sIDIwLCA4MCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbmZvX2NhdGVnb3J5bmFtZScsICR0aGlzLT5MYW5nKCdpbmZvX2NhdGVnb3J5bmFtZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X2NhdGVnb3J5ZGVzYycsICR0aGlzLT5MYW5nICgncHJvbXB0X2NhdGVnb3J5ZGVzYycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfY2F0ZWdvcnlkZXNjJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCAoJGlkLCAnaW5wdXRfY2F0ZWdvcnlkZXNjJywKCQkJCQkgICAgICAgJHJvd1sndXBsb2FkX2NhdGVnb3J5X2Rlc2NyaXB0aW9uJ10sIDgwLCAyNTUpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5mb19jYXRlZ29yeWRlc2MnLCAkdGhpcy0+TGFuZygnaW5mb19jYXRlZ29yeWRlc2MnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF9jYXRlZ29yeXBhdGgnLCR0aGlzLT5MYW5nICgncHJvbXB0X2NhdGVnb3J5cGF0aCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfY2F0ZWdvcnlwYXRoJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCAoJGlkLCAnaW5wdXRfY2F0ZWdvcnlwYXRoJywkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfcGF0aCddLAoJCQkJCSAgICAgICA0MCwgMjU1LCAicmVhZG9ubHkiKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2luZm9fY2F0ZWdvcnlwYXRoJywgJHRoaXMtPkxhbmcoJ2luZm9fY2F0ZWdvcnlwYXRoJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdwcm9tcHRfY2F0ZWdvcnlsaXN0YWJsZScsICR0aGlzLT5MYW5nICgncHJvbXB0X2NhdGVnb3J5bGlzdGFibGUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2NhdGVnb3J5bGlzdGFibGUnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCAoJGlkLAoJCQkJCQkgICAnaW5wdXRfY2F0ZWdvcnlsaXN0YWJsZScsIDEsICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9saXN0YWJsZSddKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3BhdGhtZXNzYWdlJywgJHRoaXMtPkxhbmcgKCdjYW5ub3Rtb2RpZnlwYXRoJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdoaWRkZW4nLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4gKCRpZCwgJ2NhdGVnb3J5X2lkJywKCQkJCQkJICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10pKTsKICAgIAplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdhZGRjYXRlZ29yeS50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmKCAhJGdDbXMgKSBleGl0KCk7CgppZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQogIHsKICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQogICAgcmV0dXJuOwogIH0KCgovLyBjaGVjayBpZiB3ZSBoYXZlIGEgdGVtcGxhdGUgbmFtZQppZiggIShpc3NldCgkcGFyYW1zWyd0ZW1wbGF0ZSddKSB8fCBpc3NldCgkcGFyYW1zWydwcmVmaXgnXSkpICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQppZiggIWlzc2V0KCRwYXJhbXNbJ21vZGUnXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ3RpdGxlJ10pICkKICB7CiAgICAkcGFyYW1zWydlcnJvcnMnXSA9ICR0aGlzLT5MYW5nKCdlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnKTsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicsJycsJHBhcmFtcyk7CiAgICByZXR1cm47CiAgfQoKLy8gaGFuZGxlIGVycm9ycy4KaWYoIGlzc2V0KCRwYXJhbXNbJ2Vycm9ycyddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkcGFyYW1zWydlcnJvcnMnXSk7CiAgfQoKJHBhcmFtc1snb3JpZ2FjdGlvbiddID0gJHBhcmFtc1snYWN0aW9uJ107CiRjb250ZW50cyA9ICIiOwppZiggJHBhcmFtc1snbW9kZSddID09ICdhZGQnICkKICB7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJCSAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdkb19hZGR0ZW1wbGF0ZScsJHJldHVybmlkLCdwb3N0JywnJywKCQkJCQkJICAgIGZhbHNlLCAnJywgJHBhcmFtcykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RlbXBsYXRlJywgIiIsIDQwICkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdwcmVmaXgnLCAkcGFyYW1zWydwcmVmaXgnXSApKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZWZhdWx0dGVtcGxhdGVwcmVmJ10pICYmICRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSAhPSAnJyApCiAgICAgIHsKCSRjb250ZW50cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7CiAgICAgIH0KICB9CiBlbHNlIAogICB7CiAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fZWRpdHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLAoJCQkJCQkgICAgZmFsc2UsICcnLCAkcGFyYW1zKSk7CiAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwogICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkJICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3RlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGUnXSApKTsKICAgICAkY29udGVudHMgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJHBhcmFtc1sncHJlZml4J10uJHBhcmFtc1sndGVtcGxhdGUnXSk7CiAgIH0KCiR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCRwYXJhbXNbJ3RpdGxlJ10pOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZW5hbWUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGVuYW1lJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3Byb21wdF90ZW1wbGF0ZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZScsCgkJICAgICAgJHRoaXMtPkNyZWF0ZVRleHRBcmVhIChmYWxzZSwgJGlkLAoJCQkJCSAgICAgJGNvbnRlbnRzLCAndGVtcGxhdGVjb250ZW50JywgJycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywKCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIAoJCQkJCQkJICR0aGlzLT5MYW5nICgnY2FuY2VsJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGVtcGxhdGUudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.getfile.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgaWYoICFpc3NldCggJHBhcmFtc1sndXBsb2FkX2lkJ10gKSApCiAgICAgIHsKCS8vIHRvZG8gZGlzcGxheSBlcnJvcgoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKICAgICAgfQoKICAgIC8vIGdldCB0aGUgaWQKICAgICRmaWxlX2lkID0gJHBhcmFtc1sndXBsb2FkX2lkJ107CiAgICAKICAgIC8vIGdldCB0aGUgZGV0YWlscwogICAgJGZpbGVfZGV0YWlscyA9ICR0aGlzLT5fZ2V0VXBsb2FkRmlsZURldGFpbHMoICRmaWxlX2lkICk7CiAgICBpZiggISRmaWxlX2RldGFpbHNbJ3VwbG9hZF9uYW1lJ10gKSAKICAgICAgewoJLy8gdG9kbyBkaXNwbGF5IGVycm9yCgkkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UoICRpZCwgJHBhcmFtcywgJHJldHVybmlkLAoJCQkJICAkdGhpcy0+TGFuZyggJ2Vycm9yX2ZpbGVub3Rmb3VuZCcsICRmaWxlX2lkICkgKTsKCXJldHVybjsKICAgICAgfQogICAgJGNhdGVnb3J5X2RldGFpbHMgPSAkdGhpcy0+X2dldFVwbG9hZENhdGVnb3J5RGV0YWlscyggJGZpbGVfZGV0YWlsc1sndXBsb2FkX2NhdGVnb3J5X2lkJ10gKTsKICAgICRwYXRoID0gJy8nOwogICAgaWYoICEkY2F0ZWdvcnlfZGV0YWlsc1sndXBsb2FkX2NhdGVnb3J5X3BhdGgnXSApIAogICAgICB7CgkvLyB0b2RvIGRpc3BsYXkgZXJyb3IKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkgJHRoaXMtPkxhbmcoICdlcnJvcl9kYmVycm9yJyApICk7CglyZXR1cm47CiAgICAgIH0KCiAgICAKICAgICRmaWxlID0gJHRoaXMtPl91cGxvYWRQYXRoKCAkY2F0ZWdvcnlfZGV0YWlsc1sndXBsb2FkX2NhdGVnb3J5X3BhdGgnXSwKCQkJICAgICAgIHN0cl9yZXBsYWNlKCBhcnJheSgnICcsJyUyMCcpLGFycmF5KCdfJywnXycpLCRmaWxlX2RldGFpbHNbJ3VwbG9hZF9uYW1lJ10gKSApOwogICAgCiAgICBpZiggIWZpbGVfZXhpc3RzKCAkZmlsZSApIHx8ICFpc19yZWFkYWJsZSggJGZpbGUgKSApCiAgICAgIHsKCS8vIHRvZG8gZGlzcGxheSBlcnJvcgoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAkdGhpcy0+TGFuZyggJ2Vycm9yX2ZpbGVub3Rmb3VuZCcsICRmaWxlICkgKTsKCXJldHVybjsKICAgICAgfQoKICAgIC8vIHR1cm4gb2ZmIHpsaWIgY29tcHJlc3Npb24gCiAgICBpZihpbmlfZ2V0KCd6bGliLm91dHB1dF9jb21wcmVzc2lvbicpKQogICAgICAgIHsKICAgICAgICBpbmlfc2V0KCd6bGliLm91dHB1dF9jb21wcmVzc2lvbicsICdPZmYnKTsKICAgICAgICB9CgogICAgQG9iX2NsZWFuKCk7CiAgICBAb2JfY2xlYW4oKTsKICAgIGhlYWRlcignUHJhZ21hOiBwdWJsaWMnKTsKICAgIGhlYWRlcignRXhwaXJlczogMCcpOwogICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUsIHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogcHJpdmF0ZScsZmFsc2UpOwogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vZm9yY2UtZG93bmxvYWQnKTsKICAgIGhlYWRlcignQ29udGVudC1MZW5ndGg6ICcgLiBmaWxlc2l6ZSgkZmlsZSkpOwogICAgaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0nIC4gYmFzZW5hbWUoJGZpbGUpKTsKICAgIHJlYWRmaWxlKCRmaWxlKTsgIAoKICAgIC8vIG5vdyB0byBhZGQgdGhlIGRvd25sb2FkIHNodHVmZiB0byB0aGUgZGF0YWJhc2UKICAgIC8vIGlmIHdlIGFyZSBub3QgZXhjbHVkaW5nIHRoaXMgc3VibmV0CiAgICAkc3VibmV0cyA9IHNwbGl0KCIsIiwkdGhpcy0+R2V0UHJlZmVyZW5jZSgic3VibmV0X2V4Y2x1c2lvbiIpKTsKICAgICR0ZXN0ID0gMDsKICAgIGZvcmVhY2goJHN1Ym5ldHMgYXMgJHN1Ym5ldCkKICAgIHsKICAgICAgJHRlc3QgPSAkdGhpcy0+X3Rlc3RpcCggJHN1Ym5ldCwgZ2V0ZW52KCJSRU1PVEVfQUREUiIgKSApOwogICAgICBpZiggJHRlc3QgKQoJewoJICAvLyBkb24ndCBhbGxvdyBhbnkgbW9yZSBwcm9jZXNzaW5nCgkgIGV4aXQoKTsKCX0KICAgIH0KICAgIAogICAgLy8gZ2V0IGEgbmV3IHZhbHVlIGZyb20gdGhlIHNlcXVlbmNlIGRhdGFiYXNlCiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkbmV3aWQgPSAkZGItPkdlbklEKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX2Rvd25sb2Fkc19zZXEiICk7CgogICAgLy8gZ2V0IGEgdXNlcm5hbWUKICAgICR1c2VybmFtZSA9ICd1bmtub3duJzsKICAgICRmZXVzZXJzID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdGcm9udEVuZFVzZXJzJyk7CiAgICBpZiggJGZldXNlcnMgKQogICAgICB7CgkkbmFtZSA9ICRmZXVzZXJzLT5Mb2dnZWRpbk5hbWUoKTsKCWlmKCAkbmFtZSAhPSAiIiApCgkgIHsKCSAgICAkdXNlcm5hbWUgPSAkbmFtZTsKCSAgfQogICAgICB9CgogICAgLy8gaW5zZXJ0IHRoZSBkb3dubG9hZCByZWNvcmQKICAgICRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZG93bmxvYWRzIFZBTFVFUyAoPyw/LD8sPyw/KSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgCgkJCSAgICAgIGFycmF5KCAkbmV3aWQsICRmaWxlX2lkLCAKCQkJCSAgICAgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSksIiciKSwKCQkJCSAgICAgZ2V0ZW52KCJSRU1PVEVfQUREUiIpLCAkdXNlcm5hbWUpICk7CiAgICAvKiBJIHdvdWxkIG5vcm1hbGx5IGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSwgYnV0IGRvbid0IHdhbnQgcGVvcGxlIHRvIG5lY2Vzc2FyaWx5IGtub3cgSSBhbSB0cmFja2luZyB0aGVtICovCiAgICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5sYW5nKCdmcmllbmRseW5hbWUnKSwKCQkgICR0aGlzLT5sYW5nKCdkb3dubG9hZGVkJywgJGZpbGUpICk7CgogICAgLy8gc2VuZCBhbiBldmVudAogICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICRwYXJtc1snaWQnXSA9ICRmaWxlX2lkOwogICAgJHBhcm1zWyduYW1lJ10gPSAkZmlsZTsKICAgICRwYXJtc1snaXAnXSA9IGdldGVudigiUkVNT1RFX0FERFIiKTsKICAgICR0aGlzLT5TZW5kRXZlbnQoICdPbkRvd25sb2FkJywgJHBhcm1zICk7CgogICAgLy8gZG9uJ3QgYWxsb3cgYW55IG1vcmUgcHJvY2Vzc2luZwogICAgZXhpdCgpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.makedefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFF1ZXN0aW9ucyAtIGEgc2ltcGxlIFF1ZXN0aW9ucyAmIEFuc3dlciBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIGNhbGd1eTEwMDAgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmKCAhaXNzZXQoICRnQ21zICkgKSBleGl0KCk7CgoKaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICAvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUKICAgIHJldHVybjsKICB9CgppZiggIWlzc2V0KCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsJHBhcmFtc1snYWN0aXZlX3RhYiddLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ2RlZmF1bHRwcmVmbmFtZSddICkgKQogIHsKICAgICRwYXJhbXNbJ2Vycm9ycyddID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpOwogICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsJHBhcmFtc1snYWN0aXZlX3RhYiddLCcnLCRwYXJhbXMpOwogICAgcmV0dXJuOwogIH0KCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHRwcmVmbmFtZSddLCRwYXJhbXNbJ3RlbXBsYXRlJ10pOwokdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwkcGFyYW1zWydhY3RpdmVfdGFiJ10pOwovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_admin_prefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIgbW9kdWxlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOgkvL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykpCiAgewogICAgcmV0dXJuOwogIH0KCiR0aGlzLT5TZXRQcmVmZXJlbmNlICgnbWF4X3VwbG9hZHNpemUnLAoJCSAgICAgIGlzc2V0ICgkcGFyYW1zWydtYXhfdXBsb2Fkc2l6ZSddKSA/CgkJICAgICAgJHBhcmFtc1snbWF4X3VwbG9hZHNpemUnXSA6ICcwJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgndmFsaWRfdXBsb2FkZXh0ZW5zaW9ucycsCgkJICAgICAgaXNzZXQgKCRwYXJhbXNbJ3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnXSkgPwoJCSAgICAgICRwYXJhbXNbJ3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnXSA6ICcwJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgnc3VibmV0X2V4Y2x1c2lvbnMnLAoJCSAgICAgIGlzc2V0ICgkcGFyYW1zWydzdWJuZXRfZXhjbHVzaW9ucyddKSA/CgkJICAgICAgJHBhcmFtc1snc3VibmV0X2V4Y2x1c2lvbnMnXSA6ICcwJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgncmVxdWlyZWZpbGVuYW1lX2V4dGVuc2lvbnMnLAoJCSAgICAgIGlzc2V0ICgkcGFyYW1zWydpbnB1dF9lbmZvcmNlZXh0ZW5zaW9ucyddKSA/CgkJICAgICAgJHBhcmFtc1snaW5wdXRfZW5mb3JjZWV4dGVuc2lvbnMnXSA6ICcwJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgnY3JlYXRlX2R1bW15X2luZGV4X2h0bWwnLAoJCSAgICAgIGlzc2V0ICgkcGFyYW1zWydpbnB1dF9kdW1teV9pbmRleF9odG1sJ10pID8KCQkgICAgICAkcGFyYW1zWydpbnB1dF9kdW1teV9pbmRleF9odG1sJ10gOiAnMCcpOwokdGhpcy0+c2V0UHJlZmVyZW5jZSAoJ3NlbmRfdXBsb2FkX25vdGlmaWNhdGlvbnNfdG8nLAoJCSAgICAgIGlzc2V0ICgkcGFyYW1zWydlbWFpbF9vbl91cGxvYWQnXSkgPwoJCSAgICAgICRwYXJhbXNbJ2VtYWlsX29uX3VwbG9hZCddIDogJycgKTsgICAgCiR0aGlzLT5TZXRQcmVmZXJlbmNlICgncmVkaXJlY3Rfb25fdXBsb2FkJywKCQkgICAgICBpc3NldCAoJHBhcmFtc1sncmVkaXJlY3Rfb25fdXBsb2FkJ10pID8KCQkgICAgICAkcGFyYW1zWydyZWRpcmVjdF9vbl91cGxvYWQnXSA6ICcnICk7ICAgIAokdGhpcy0+U2V0UHJlZmVyZW5jZSAoJ3VzZXJ0YWdfb251cGxvYWQnLAoJCSAgICAgIGlzc2V0ICgkcGFyYW1zWydpbnB1dF91c2VydGFnX29udXBsb2FkJ10pID8KCQkgICAgICAkcGFyYW1zWydpbnB1dF91c2VydGFnX29udXBsb2FkJ10gOiAnJyApOwokdGhpcy0+U2V0UHJlZmVyZW5jZSAoJ2F1dG90aHVtYm5haWxfZXh0ZW5zaW9ucycsCgkJICAgICAgaXNzZXQgKCRwYXJhbXNbJ2F1dG90aHVtYm5haWxfZXh0ZW5zaW9ucyddKSA/CgkJICAgICAgJHBhcmFtc1snYXV0b3RodW1ibmFpbF9leHRlbnNpb25zJ10gOiAnJyApOwokdGhpcy0+U2V0UHJlZmVyZW5jZSAoJ2F1dG90aHVtYm5haWxfc2l6ZScsCgkJICAgICAgaXNzZXQgKCRwYXJhbXNbJ2F1dG90aHVtYm5haWxfc2l6ZSddKSA/CgkJICAgICAgJHBhcmFtc1snYXV0b3RodW1ibmFpbF9zaXplJ10gOiAnJyApOwokdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCAkaWQsICdhZG1pbl9wcmVmcycgKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.setdefaulttemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiggaXNzZXQoJHBhcmFtc1sncmVzZXR0b2RlZmF1bHQnXSkgJiYKICAgIGlzc2V0KCRwYXJhbXNbJ3ByZWZuYW1lJ10pICYmCiAgICBpc3NldCgkcGFyYW1zWydmaWxlbmFtZSddKSApCiAgewogICAgJGZuID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4KICAgICAgJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4kcGFyYW1zWydmaWxlbmFtZSddOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgICAgIHsKCSR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoJHBhcmFtc1sncHJlZm5hbWUnXSwkdGVtcGxhdGUpOwogICAgICB9CiAgfQogZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICYmCgkgIGlzc2V0KCRwYXJhbXNbJ3ByZWZuYW1lJ10pICkKICAgewogICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ3ByZWZuYW1lJ10sJHBhcmFtc1snaW5wdXRfdGVtcGxhdGUnXSk7CiAgIH0KCmlmKCBpc3NldCggJHBhcmFtc1snYWN0aXZlX3RhYiddICkgKQogIHsKICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCRwYXJhbXNbJ2FjdGl2ZV90YWInXSk7CiAgfQokdGhpcy0+bXlSZWRpcmVjdCgkaWQsJ2RlZmF1bHRhZG1pbicpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.uploadicon.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBVcGxvYWRzJykgKQogIHsKICAgIHJldHVybjsKICB9CgokZGlyID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4naW1hZ2VzJy5ESVJFQ1RPUllfU0VQQVJBVE9SOwoKJHJldCA9ICR0aGlzLT5faGFuZGxlVXBsb2FkKCRkaXIsCgkJCSAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbWF4X3VwbG9hZHNpemUnLDEwMDAwMDApKjEwMjQsCgkJCSAgICAkaWQuJ2lucHV0X3VwbG9hZF9pY29uJyk7CgokcGFybXMgPSBhcnJheSgpOwppZiggaXNfYXJyYXkoICRyZXQgKSAmJiAkcmV0WzBdID09PSBmYWxzZSApCiAgewogICAgJHBhcm1zWydlcnJvcnMnXT0kcmV0WzFdOwogIH0KJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsJHBhcmFtc1snYWN0aXZlX3RhYiddLCRwYXJtcyk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_categoriestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgPSBhbGxvdyB1c2VycyB0byB1cGxvYWQgc3R1ZmYsIGEgcHNldWRvIGZpbGUgbWFuYWdlciBtb2R1bGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSkKICB7CiAgICByZXR1cm47CiAgfQoKZ2xvYmFsICRnQ21zOwokZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAKJHJvd2FycmF5ID0gYXJyYXkgKCk7CiRxdWVyeSA9ICcnOwokZGJyZXN1bHQgPSAnJzsKICAgIAokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUgKCRxdWVyeSk7CiRyb3djbGFzcyA9ICdyb3cxJzsKICAgIAp3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3cgKCkpCiAgewogICAgJG9uZXJvdyA9IG5ldyBzdGRDbGFzcyAoKTsKICAgICRvbmVyb3ctPmlkID0gJHJvd1sidXBsb2FkX2NhdGVnb3J5X2lkIl07CiAgICAkb25lcm93LT5uYW1lID0gCiAgICAgICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0Y2F0ZWdvcnknLCAkcmV0dXJuaWQsIAoJCQkgJHJvd1sidXBsb2FkX2NhdGVnb3J5X25hbWUiXSwKCQkJIGFycmF5KCdjYXRlZ29yeV9pZCc9PiRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9pZCddKSk7CgogICAgJG9uZXJvdy0+ZGVzY3JpcHRpb24gPSAkcm93WyJ1cGxvYWRfY2F0ZWdvcnlfZGVzY3JpcHRpb24iXTsKICAgICRvbmVyb3ctPnBhdGggPSAkcm93WyJ1cGxvYWRfY2F0ZWdvcnlfcGF0aCJdOwogICAgJG9uZXJvdy0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CgogICAgJG9uZXJvdy0+ZWRpdGxpbmsgPQogICAgICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnZWRpdGNhdGVnb3J5JywgJHJldHVybmlkLAoJCQkgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4KCQkJIERpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsCgkJCQkgICAgICAgJHRoaXMtPkxhbmcgKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJIGFycmF5ICgnY2F0ZWdvcnlfaWQnID0+ICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9pZCddKSk7CiAgICAkb25lcm93LT5kZWxldGVsaW5rID0KICAgICAgJHRoaXMtPkNyZWF0ZUxpbmsgKCRpZCwgJ2RlbGV0ZWNhdGVnb3J5JywgJHJldHVybmlkLAoJCQkgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4KCQkJIERpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCSBhcnJheSAoJ2NhdGVnb3J5X2lkJyA9PiAkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfaWQnXSksCgkJCSAkdGhpcy0+TGFuZyAoJ2FyZXlvdXN1cmUnKSk7CgogICAgYXJyYXlfcHVzaCAoJHJvd2FycmF5LCAkb25lcm93KTsKICAgICgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsKICB9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdjYXRlZ29yeXRleHQnLCAkdGhpcy0+TGFuZyAoJ2NhdGVnb3J5JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCduYW1ldGV4dCcsICR0aGlzLT5MYW5nICgnbmFtZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncGF0aHRleHQnLCAkdGhpcy0+TGFuZyAoJ3BhdGgnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2l0ZW1zJywgJHJvd2FycmF5KTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaXRlbWNvdW50JywgY291bnQgKCRyb3dhcnJheSkpOwoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnYWRkbGluaycsCgkJICAgICAgICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsICdhZGRjYXRlZ29yeScsCgkJCQkJICAkcmV0dXJuaWQsCgkJCQkJICAkdGhpcy0+CgkJCQkJICBMYW5nICgnYWRkY2F0ZWdvcnknKSwKCQkJCQkgIGFycmF5ICgpLCAnJywgZmFsc2UsCgkJCQkJICBmYWxzZSwKCQkJCQkgICdjbGFzcz0icGFnZW9wdGlvbnMiJykpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlICgnY2F0ZWdvcnlsaXN0LnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_filestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgPSBhbGxvdyB1c2VycyB0byB1cGxvYWQgc3R1ZmYsIGEgcHNldWRvIGZpbGUgbWFuYWdlciBtb2R1bGUKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6CS8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSkKICB7CiAgICByZXR1cm47CiAgfQoKZ2xvYmFsICRnQ21zOwokZGIgPSYgJHRoaXMtPkdldERiKCk7CgovLyBnZXQgdGhlIGN1cnJlbnQgY2F0ZWdvcnkgZm9yIHRoZSBmaWx0ZXIKaWYgKGlzc2V0ICgkcGFyYW1zWydzdWJtaXRjYXRlZ29yeSddKSkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VycmVudF9jYXRlZ29yeScsCgkJCSAoaXNzZXQgKCRwYXJhbXNbJ2lucHV0X2NhdGVnb3J5J10pID8gJHBhcmFtc1snaW5wdXRfY2F0ZWdvcnknXSA6CgkJCSAgJycpKTsKICB9CiRjdXJjYXRlZ29yeSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW50X2NhdGVnb3J5JywnJyk7CiAgICAgICAgCi8vIGdldCB0aGUgY2F0ZWdvcmllcyBmb3IgdGhlIGZpbHRlcgokY2F0ZWdvcnlsaXN0ID0gYXJyYXkgKCk7CiRxdWVyeSA9CiAgIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4ICgpLgogICJtb2R1bGVfdXBsb2Fkc19jYXRlZ29yaWVzIE9SREVSIEJZIHVwbG9hZF9jYXRlZ29yeV9uYW1lIEFTQyI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5KTsKaWYgKCEkZGJyZXN1bHQpCiAgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZXJyb3InLCAxKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ21lc3NhZ2UnLCAkdGhpcy0+TGFuZyAoJ2Vycm9yX25vY2F0ZWdvcmllcycpKTsKICB9CiBlbHNlCiAgIHsKICAgICB3aGlsZSAoJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3cgKCkpCiAgICAgICB7CgkgaWYoICRjdXJjYXRlZ29yeSA9PSAnJyApIHsKCSAgICRjdXJjYXRlZ29yeSA9ICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9pZCddOwoJIH0KCSAkY2F0ZWdvcnlsaXN0WyRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9uYW1lJ11dID0KCSAgICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9pZCddOwogICAgICAgfQogICB9CgkgIAovLyBpZiB0aGVyZSBhcmUgbm8gY2F0ZWdvcmllcywgcHV0IGEgbWVzc2FnZSBvdXQsIGFuZAovLyBub3RoaW5nIGVsc2UKaWYoICFjb3VudCggJGNhdGVnb3J5bGlzdCApICkgCiAgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsMSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vZm9ybScsMSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCR0aGlzLT5MYW5nKCdlcnJvcl9ub2NhdGVnb3JpZXMnKSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3VwbG9hZGxpc3QudHBsJyk7CiAgICByZXR1cm47CiAgfQoKLy8gc2V0dXAgdGhlIGZvcm0gcGFydCBvZiB0aGUgdGVtcGxhdGUKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbGVnZW5kX3VwbG9hZGZvcm0nLCR0aGlzLT5MYW5nKCdsZWdlbmRfdXBsb2FkZm9ybScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnc3RhcnRmb3JtJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZGVmYXVsdGFkbWluJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdjYXRlZ29yeScsICR0aGlzLT5MYW5nICgnY2F0ZWdvcnknKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2NhdGVnb3J5JywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcERvd24gKCRpZCwgImlucHV0X2NhdGVnb3J5IiwgJGNhdGVnb3J5bGlzdCwgLTEsCgkJCQkJCSAgICRjdXJjYXRlZ29yeSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbnB1dF9zZWxlY3QnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdGNhdGVnb3J5JywKCQkJCQkJICR0aGlzLT5MYW5nKCdzZWxlY3RjYXRlZ29yeScpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2hpZGRlbicsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbiAoJGlkLCAnY3VyY2F0ZWdvcnknLAoJCQkJCQkgJGN1cmNhdGVnb3J5KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigncHJvbXB0X2Jyb3dzZScsICR0aGlzLT5MYW5nKCd1cGxvYWQnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiggJ2lucHV0X2Jyb3dzZScsCgkJICAgICAgICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQgKCRpZCwnaW5wdXRfYnJvd3NlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF9yZXBsYWNlJywgJHRoaXMtPkxhbmcoJ3Byb21wdF9yZXBsYWNlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlcGxhY2UnLCAKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCggJGlkLCAnaW5wdXRfcmVwbGFjZScsIDEgKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignaW5mb19yZXBsYWNlJywKCQkgICAgICAkdGhpcy0+TGFuZygnaW5mb19yZXBsYWNlJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90aHVtYm5haWwnLCAkdGhpcy0+TGFuZygndGh1bWJuYWlsJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oICdpbnB1dF90aHVtYm5haWwnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlRmlsZVVwbG9hZElucHV0ICgkaWQsJ2lucHV0X3RodW1ibmFpbCcpKTsKCSAgCiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF9kZXN0bmFtZScsCgkJICAgICAgICR0aGlzLT5MYW5nICgnZGVzdG5hbWUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2Rlc3RuYW1lJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCAoJGlkLCAnaW5wdXRfZGVzdG5hbWUnLAoJCQkJCSAgICAgICAnJywgNDAsIDI1NSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbmZvX2Rlc3RuYW1lJywKCQkgICAgICAgJHRoaXMtPkxhbmcoJ2luZm9fZGVzdG5hbWUnKSk7CgkgIAokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdwcm9tcHRfc3VtbWFyeScsCgkJICAgICAgICR0aGlzLT5MYW5nICgnc3VtbWFyeScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfc3VtbWFyeScsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ2lucHV0X3N1bW1hcnknLAoJCQkJCSAgICAgICAnJywgODAsIDI1NSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbmZvX3N1bW1hcnknLAoJCSAgICAgICAkdGhpcy0+TGFuZygnaW5mb19zdW1tYXJ5JykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hdXRob3InLCR0aGlzLT5MYW5nKCdhdXRob3InKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiggJ2lucHV0X2F1dGhvcicsCgkJICAgICAgICR0aGlzLT5jcmVhdGVJbnB1dFRleHQoICRpZCwgJ2lucHV0X2F1dGhvcicsICRfU0VTU0lPTlsiY21zX2FkbWluX3VzZXJuYW1lIl0sCgkJCQkJICAgICAgIDIwLCAyNTUpKTsKCSAgCiR0aGlzLT5zbWFydHktPmFzc2lnbiggJ2lucHV0X3N1Ym1pdCcsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCggJGlkLCAnc3VibWl0dXBsb2FkJywgJHRoaXMtPkxhbmcoJ3VwbG9hZCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCAoKSk7CgkgIAokZGJyZXN1bHQgPSAnJzsKJHJvd2FycmF5ID0gYXJyYXkgKCk7CmlmICgkY3VyY2F0ZWdvcnkgPT0gJycpCiAgewogICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4ICgpLgogICAgICAibW9kdWxlX3VwbG9hZHMgT1JERVIgQlkgdXBsb2FkX2RhdGUiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnkpOwogIH0KIGVsc2UKICAgewogICAgICRxdWVyeSA9CiAgICAgICAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXggKCkuCiAgICAgICAibW9kdWxlX3VwbG9hZHMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyBPUkRFUiBCWSB1cGxvYWRfZGF0ZSI7CiAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnksIGFycmF5ICgkY3VyY2F0ZWdvcnkpKTsKICAgfQoJICAKLy8gbm93IHNldHVwIHRoZSByZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAokcm93Y2xhc3MgPSAncm93MSc7CgkgIAppZiAoJGRicmVzdWx0KQogIHsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3VtbWFyeXRleHQnLCR0aGlzLT5MYW5nKCdzdW1tYXJ5JykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdkZXNjdGV4dCcsJHRoaXMtPkxhbmcoJ2Rlc2NyaXB0aW9uJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzaXpldGV4dCcsJHRoaXMtPkxhbmcoJ3NpemVrYicpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYXV0aG9ydGV4dCcsJHRoaXMtPkxhbmcoJ2F1dGhvcicpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaXB0ZXh0JywkdGhpcy0+TGFuZygnaXBfYWRkcmVzcycpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZGx0ZXh0JywkdGhpcy0+TGFuZygnZG93bmxvYWRzJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwb3N0ZGF0ZXRleHQnLCR0aGlzLT5MYW5nKCdkYXRlJykpOwogICAgd2hpbGUgKCRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93ICgpKQogICAgICB7Cgkkb25lcm93ID0gbmV3IHN0ZENsYXNzICgpOwoJJG9uZXJvdy0+aWQgPSAkcm93Wyd1cGxvYWRfaWQnXTsKCSR0eXBlID0gJHRoaXMtPl9HZXRGaWxlVHlwZSggJHJvd1sndXBsb2FkX25hbWUnXSApOwoJJGltZ3BhdGggPSAnLi4vbW9kdWxlcy8nLmJhc2VuYW1lKGRpcm5hbWUoX19GSUxFX18pKS4nL2ltYWdlcy8nOwoJaWYoICR0eXBlICE9IGZhbHNlICkKCSAgewoJICAgICRvbmVyb3ctPmljb24gPSAkaW1ncGF0aC4kdHlwZVsnaW1hZ2UnXTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJG9uZXJvdy0+aWNvbiA9ICRpbWdwYXRoLid1bmtub3duLnBuZyc7CgkgIH0KCSRvbmVyb3ctPm5hbWUgPSAkcm93Wyd1cGxvYWRfbmFtZSddOwoJJG9uZXJvdy0+c2l6ZSA9IGludHZhbCgkcm93Wyd1cGxvYWRfc2l6ZSddIC8gMTAyNC4wICsgMC41KTsKCSRvbmVyb3ctPmF1dGhvciA9ICRyb3dbJ3VwbG9hZF9hdXRob3InXTsKCSRvbmVyb3ctPmlwID0gJHJvd1sndXBsb2FkX2lwJ107Cgkkb25lcm93LT5zdW1tYXJ5ID0gJHJvd1sndXBsb2FkX3N1bW1hcnknXTsKCSRvbmVyb3ctPmRlc2NyaXB0aW9uID0gJHJvd1sndXBsb2FkX2Rlc2NyaXB0aW9uJ107Cgkkb25lcm93LT5kYXRlID0gJHJvd1sndXBsb2FkX2RhdGUnXTsKCSRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoJCQoJLy8gaG93IG1hbnkgdGltZXMgaGFzIHRoaXMgaXRlbSBiZWVuIGRvd25sb2FkZWQKCSRxdWVyeSA9ICJTRUxFQ1QgQ09VTlQoZG93bmxvYWRfaWQpIGFzIGNvdW50IEZST00gIi4KCSAgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19kb3dubG9hZHMgV0hFUkUgZmlsZV9pZCA9ID8iOwoJJGRicmVzdWx0MiA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHJvd1sndXBsb2FkX2lkJ10gKSApOwoJJHJvdzIgPSAkZGJyZXN1bHQyLT5GZXRjaFJvdygpOwoJJG9uZXJvdy0+ZG93bmxvYWRzID0gMDsKCWlmKCAkcm93MiApIHsKCSAgJG9uZXJvdy0+ZG93bmxvYWRzID0gJHJvdzJbJ2NvdW50J107Cgl9CgkJCgkkb25lcm93LT5lZGl0dXJsID0KCSAgJHRoaXMtPkNyZWF0ZUxpbmsgKCRpZCwgJ2VkaXR1cGxvYWQnLCAkcmV0dXJuaWQsICcnLCAKCQkJICAgICBhcnJheSAoJ3VwbG9hZF9pZCcgPT4gJHJvd1sndXBsb2FkX2lkJ10sCgkJCQkgICAgJ2NhdGVnb3J5X2lkJyA9PiAkY3VyY2F0ZWdvcnkpLAoJCQkgICAgICcnLCB0cnVlICk7CgoJJG9uZXJvdy0+ZWRpdGxpbmsgPQoJICAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnZWRpdHVwbG9hZCcsICRyZXR1cm5pZCwKCQkJICAgICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkJCQkJICAkdGhpcy0+TGFuZyAoJ2VkaXQnKSwgJycsICcnLCAnc3lzdGVtaWNvbicpLAoJCQkgICAgIGFycmF5ICgndXBsb2FkX2lkJyA9PiAkcm93Wyd1cGxvYWRfaWQnXSwKCQkJCSAgICAnY2F0ZWdvcnlfaWQnID0+ICRjdXJjYXRlZ29yeSkpOwoJCQoJJG9uZXJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsJ2RvX2RlbGV0ZXVwbG9hZCcsJHJldHVybmlkLAoJCQkJCQkgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJCQkJCQkgICAgICAkdGhpcy0+TGFuZyAoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJCSBhcnJheSAoJ3VwbG9hZF9pZCcgPT4gJHJvd1sndXBsb2FkX2lkJ10sCgkJCQkJCQknY2F0ZWdvcnlfaWQnID0+ICRjdXJjYXRlZ29yeSksCgkJCQkJCSAkdGhpcy0+TGFuZyAoJ2FyZXlvdXN1cmUnKSk7CglhcnJheV9wdXNoICgkcm93YXJyYXksICRvbmVyb3cpOwoJKCRyb3djbGFzcyA9PSAicm93MSIgPyAkcm93Y2xhc3MgPSAicm93MiIgOiAkcm93Y2xhc3MgPSAicm93MSIpOwogICAgICB9CiAgfQoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaXRlbXMnLCAkcm93YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpdGVtY291bnQnLCBjb3VudCAoJHJvd2FycmF5KSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSAoJ3VwbG9hZGxpc3QudHBsJyk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_filetypestab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIEF1dGhvcjogUm9iZXJ0IENhbXBiZWxsIDxyb2JAdGVjaGNvbS5keW5kbnMub3JnPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBVcGxvYWRzJykgKQogIHsKICAgIHJldHVybjsKICB9CgppZiggaXNzZXQoJHBhcmFtc1snZGlyZWN0aW9uJ10pICYmIGlzc2V0KCRwYXJhbXNbJ3Jvd2lkJ10pICkKICB7CiAgICBzd2l0Y2goICRwYXJhbXNbJ2RpcmVjdGlvbiddICkKICAgICAgewogICAgICBjYXNlICd1cCc6CgkkcSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX2ZpbGV0eXBlcwogICAgICAgICAgICAgICAgIFNFVCBzb3J0b3JkZXIgPSAoc29ydG9yZGVyICsgMSkKICAgICAgICAgICAgICAgV0hFUkUgc29ydG9yZGVyID0gPyI7CgkkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHBhcmFtc1snc29ydG9yZGVyJ10gLSAxICkgKTsKCSRxID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzCiAgICAgICAgICAgICAgICAgU0VUIHNvcnRvcmRlciA9IChzb3J0b3JkZXIgLSAxKQogICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8iOwoJJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRwYXJhbXNbJ3Jvd2lkJ10gKSApOwoJYnJlYWs7CgogICAgICBjYXNlICdkb3duJzoKCSRxID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzCiAgICAgICAgICAgICAgICAgU0VUIHNvcnRvcmRlciA9IChzb3J0b3JkZXIgLSAxKQogICAgICAgICAgICAgICBXSEVSRSBzb3J0b3JkZXIgPSA/IjsKCSRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkcGFyYW1zWydzb3J0b3JkZXInXSArIDEgKSApOwoJJHEgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19maWxldHlwZXMKICAgICAgICAgICAgICAgICBTRVQgc29ydG9yZGVyID0gKHNvcnRvcmRlciArIDEpCiAgICAgICAgICAgICAgIFdIRVJFIGlkID0gPyI7CgkkZGItPkV4ZWN1dGUoICRxLCBhcnJheSggJHBhcmFtc1sncm93aWQnXSApICk7CglicmVhazsKICAgICAgfQogIH0KCiRzbWFydHkgPSYgJHRoaXMtPnNtYXJ0eTsKJGRiID0mICR0aGlzLT5HZXREYigpOwokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzCiAgICAgICAgICBPUkRFUiBCWSBzb3J0b3JkZXIiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSApOwoKZ2xvYmFsICRnQ21zOwokdGhlbWVPYmplY3QgPSYgJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddOwokZG93bkltZyA9ICR0aGVtZU9iamVjdC0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vYXJyb3ctZC5naWYnLCBsYW5nKCdkb3duJyksJycsJycsJ3N5c3RlbWljb24nKTsKJHVwSW1nID0gJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZicsIGxhbmcoJ3VwJyksJycsJycsJ3N5c3RlbWljb24nKTsKJGVkaXRJbWcgPSAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgbGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyk7CiRkZWxldGVJbWcgPSAkdGhlbWVPYmplY3QtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCBsYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpOwokbmV3T2JqZWN0ID0gJHRoZW1lT2JqZWN0LT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdvYmplY3QuZ2lmJywkdGhpcy0+TGFuZygnYWRkZmlsZXR5cGUnKSwnJywnJywnc3lzdGVtaWNvbicpOwoKCiRyb3djbGFzcyA9ICdyb3cxJzsKJGVudHJpZXMgPSBhcnJheSgpOwokY291bnQgPSAwOwp3aGlsZSggJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkgKQogIHsKICAgICRvYmogPSBuZXcgU3RkQ2xhc3MoKTsKICAgIGZvcmVhY2goICRyb3cgYXMgJGtleT0+JHZhbHVlICkKICAgICAgewoJJG9iai0+JGtleSA9ICR2YWx1ZTsKICAgICAgfQoKICAgICRvYmotPmljb24gPSAnPGltZyBzcmM9Ii4uL21vZHVsZXMvJy5iYXNlbmFtZShkaXJuYW1lKF9fRklMRV9fKSkuJy9pbWFnZXMvJy4kb2JqLT5pbWFnZS4nIiBhbHQ9IicuJG9iai0+bmFtZS4nIi8+JzsKICAgIGlmKCAkY291bnQgIT0gMCApCiAgICAgIHsKCSRvYmotPnVwbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsJHVwSW1nLAoJCQkJCSBhcnJheSgnYWN0aXZlX3RhYic9PidmaWxlX3R5cGVzJywKCQkJCQkgICAgICAgJ2RpcmVjdGlvbic9Pid1cCcsCgkJCQkJICAgICAgICdzb3J0b3JkZXInPT4kcm93Wydzb3J0b3JkZXInXSwKCQkJCQkgICAgICAgJ3Jvd2lkJz0+JHJvd1snaWQnXSkpOwogICAgICB9CiAgICBpZiggJGNvdW50IDwgKCRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSAtIDEpICkKICAgICAgewoJJG9iai0+ZG93bmxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHRhZG1pbicsJHJldHVybmlkLCRkb3duSW1nLAoJCQkJCSAgIGFycmF5KCdhY3RpdmVfdGFiJz0+J2ZpbGVfdHlwZXMnLAoJCQkJCQkgJ2RpcmVjdGlvbic9Pidkb3duJywKCQkJCQkJICdzb3J0b3JkZXInPT4kcm93Wydzb3J0b3JkZXInXSwKCQkJCQkJICdyb3dpZCc9PiRyb3dbJ2lkJ10pKTsKICAgICAgfQogICAgJG9iai0+ZWRpdGxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FkZGZpbGV0eXBlJywkcmV0dXJuaWQsJGVkaXRJbWcsCgkJCQkgICAgICAgYXJyYXkoJ2FjdGl2ZV90YWInPT4nZmlsZV90eXBlcycsCgkJCQkJICAgICAndHlwZWlkJz0+JHJvd1snaWQnXSkpOwogICAgJG9iai0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVsZXRldHlwZScsJHJldHVybmlkLCRkZWxldGVJbWcsCgkJCQkJIGFycmF5KCdhY3RpdmVfdGFiJz0+J2ZpbGVfdHlwZXMnLAoJCQkJCSAgICAgICAndHlwZWlkJz0+JHJvd1snaWQnXSkpOwogICAgJG9iai0+cm93Y2xhc3MgPSAkcm93Y2xhc3M7CiAgICAkY291bnQrKzsKICAgICRyb3djbGFzcyA9ICgkcm93Y2xhc3MgPT0gJ3JvdzEnKSA/ICdyb3cyJyA6ICdyb3cxJzsKICAgICRlbnRyaWVzW10gPSAkb2JqOwogIH0KCi8vIHRoZSB1bmtub3duIHJvdwokb2JqID0gbmV3IFN0ZENsYXNzKCk7CiRvYmotPm5hbWUgPSAnPHN0cm9uZz4nLiR0aGlzLT5MYW5nKCduYW1lX3Vua25vd24nKS4nPC9zdHJvbmc+JzsKJG9iai0+ZGVzY3JpcHRpb24gPSAnPGVtPicuJHRoaXMtPkxhbmcoJ2Rlc2NyaXB0aW9uX3Vua25vd24nKS4nPC9lbT4nOwokb2JqLT5yb3djbGFzcyA9ICdyb3czJzsKJG9iai0+aWNvbiA9ICc8aW1nIHNyYz0iLi4vbW9kdWxlcy8nLmJhc2VuYW1lKGRpcm5hbWUoX19GSUxFX18pKS4nL2ltYWdlcy91bmtub3duLnBuZyIgYWx0PSInLiRvYmotPm5hbWUuJyIvPic7CiRlbnRyaWVzW10gPSAkb2JqOwokc21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywkZW50cmllcyk7CiRzbWFydHktPmFzc2lnbignaXRlbWNvdW50Jyxjb3VudCgkZW50cmllcykpOwoKJHNtYXJ0eS0+YXNzaWduKCdhZGRsaW5rJywKCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FkZGZpbGV0eXBlJywkcmV0dXJuaWQsJG5ld09iamVjdCwKCQkJCSAgYXJyYXkoJ2FjdGl2ZV90YWInPT4nZmlsZV90eXBlcycpKS4KCQkkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2FkZGZpbGV0eXBlJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2FkZGZpbGV0eXBlJyksCgkJCQkgIGFycmF5KCdhY3RpdmVfdGFiJz0+J2ZpbGVfdHlwZXMnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAoJCSR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCd1cGxvYWRpY29uJywkcmV0dXJuaWQsJ3Bvc3QnLAoJCQkJICAgICAgICdtdWx0aXBhcnQvZm9ybS1kYXRhJyxmYWxzZSwnJywKCQkJCSAgICAgICBhcnJheSgnYWN0aXZlX3RhYic9PidmaWxlX3R5cGVzJykpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywKCQkkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdXBsb2FkX2ljb24nLAoJCSR0aGlzLT5MYW5nKCdwcm9tcHRfdXBsb2FkX2ljb24nKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfdXBsb2FkX2ljb24nLAoJCSR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdpbnB1dF91cGxvYWRfaWNvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZmlsZXR5cGVzLnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIgbW9kdWxlCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOgkvL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJykpCiAgewogICAgcmV0dXJuOwogIH0KCi8vIENyZWF0ZUZvcm1TdGFydCBzZXRzIHVwIGEgcHJvcGVyIGZvcm0gdGFnIHRoYXQgd2lsbCBjYXVzZSB0aGUgc3VibWl0IHRvCi8vIHJldHVybiBjb250cm9sIHRvIHRoaXMgbW9kdWxlIGZvciBwcm9jZXNzaW5nLgokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdzdGFydGZvcm0nLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsCgkJCQkJICAgICAgICdzYXZlX2FkbWluX3ByZWZzJywKCQkJCQkgICAgICAgJHJldHVybmlkKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCAoKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdzdWJtaXQnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdCcsCgkJCQkJCSAkdGhpcy0+TGFuZygnc3VibWl0JyksICcnLCcnLAoJCQkJCQkgJHRoaXMtPkxhbmcoJ2NvbmZpcm1fcHJlZmVyZW5jZXMnKSkpOyAgICAKICAgIAovLyBpdCdzIGdvb2QgcHJhY3RpY2UgdG8gc2V0IGV2ZW4gc3RhdGljIHRpdGxlcyB1c2luZyBzbWFydHksIHNvIGxvY2FsaXphdGlvbiBpcwovLyBlYXNpZXIuCiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3RpdGxlX21heF91cGxvYWRzaXplJywKCQkgICAgICAgJHRoaXMtPkxhbmcgKCdwcm9tcHRfbWF4X3VwbG9hZHNpemUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3RpdGxlX3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnLAoJCSAgICAgICAkdGhpcy0+TGFuZyAoJ3RpdGxlX3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3RpdGxlX3N1Ym5ldF9leGNsdXNpb25zJywKCQkgICAgICAgJHRoaXMtPkxhbmcgKCd0aXRsZV9zdWJuZXRfZXhjbHVzaW9ucycpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgndGl0bGVfc2VjdGlvbicsCgkJICAgICAgICR0aGlzLT5MYW5nICgndGl0bGVfbW9kX3ByZWZzJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZV9kdW1teV9pbmRleF9odG1sJywKCQkgICAgICAgJHRoaXMtPkxhbmcgKCd0aXRsZV9kdW1teV9pbmRleF9odG1sJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZV9lbWFpbF9vbl91cGxvYWQnLAoJCSAgICAgICAkdGhpcy0+TGFuZyAoJ3RpdGxlX2VtYWlsX29uX3VwbG9hZCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgndGl0bGVfZW5mb3JjZWV4dGVuc2lvbnMnLAoJCSAgICAgICAkdGhpcy0+TGFuZygndGl0bGVfZW5mb3JjZWV4dGVuc2lvbnMnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3RpdGxlX3JlZGlyZWN0X29uX3VwbG9hZCcsCgkJICAgICAgICR0aGlzLT5MYW5nKCd0aXRsZV9yZWRpcmVjdG9udXBsb2FkJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZV9hdXRvdGh1bWJuYWlsX2V4dGVuc2lvbnMnLAoJCSAgICAgICAkdGhpcy0+TGFuZygndGl0bGVfYXV0b3RodW1ibmFpbF9leHRlbnNpb25zJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZV9hdXRvdGh1bWJuYWlsX3NpemUnLAoJCSAgICAgICAkdGhpcy0+TGFuZygndGl0bGVfYXV0b3RodW1ibmFpbF9zaXplJykpOwoKLy8geW91J2xsIG9mdGVuIHdhbnQgdG8gZG8gdGhpbmdzIGxpa2UgdGhpcyB0byBwcm92aWRlIGZlZWRiYWNrOgppZiAoJG1lc3NhZ2UgIT0gJycpCiAgewogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICRtZXNzYWdlKTsKICB9CiAgICAKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfbWF4X3VwbG9hZHNpemUnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0ICgkaWQsICdtYXhfdXBsb2Fkc2l6ZScsCgkJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdtYXhfdXBsb2Fkc2l6ZScsCgkJCQkJCQkJICAgICcxMDAwMDAwJyksICcxMicsICcxMicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucycsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSAoJ3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnLAoJCQkJCQkJCSAgICAgInppcCxneix0YXIiKSwgJzMwJywgJzI1NScpKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2VuZm9yY2VleHRlbnNpb25zJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goICRpZCwgJ2lucHV0X2VuZm9yY2VleHRlbnNpb25zJywKCQkJCQkJICAgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVmaWxlbmFtZV9leHRlbnNpb25zJywxKSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbnB1dF9zdWJuZXRfZXhjbHVzaW9ucycsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3N1Ym5ldF9leGNsdXNpb25zJywKCQkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1Ym5ldF9leGNsdXNpb25zJywiIiksNTAsMjU1KSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2R1bW15X2luZGV4X2h0bWwnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCggJGlkLCAnaW5wdXRfZHVtbXlfaW5kZXhfaHRtbCcsCgkJCQkJCSAgIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfZHVtbXlfaW5kZXhfaHRtbCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2VtYWlsX29uX3VwbG9hZCcsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2VtYWlsX29uX3VwbG9hZCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZW5kX3VwbG9hZF9ub3RpZmljYXRpb25zX3RvJyksCgkJCQkJICAgICAgIDMwLCA4MCApKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfcmVkaXJlY3Rfb25fdXBsb2FkJywKCQkgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAncmVkaXJlY3Rfb25fdXBsb2FkJywKCQkJCQkgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlZGlyZWN0X29uX3VwbG9hZCcsJycpLDMwLDgwKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdpbnB1dF9hdXRvdGh1bWJuYWlsX2V4dGVuc2lvbnMnLAoJCSAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdhdXRvdGh1bWJuYWlsX2V4dGVuc2lvbnMnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3RodW1ibmFpbF9leHRlbnNpb25zJywnJyksNDApKTsKCiR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X2F1dG90aHVtYm5haWxfc2l6ZScsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2F1dG90aHVtYm5haWxfc2l6ZScsCgkJCQkJICAgICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsX3NpemUnLCcnKSwzKSk7CgokdXNlcnRhZ3MgPSBhcnJheSggJHRoaXMtPkxhbmcoJ25vbmUnKSA9PiAnJyApOwokdGhpcy0+c21hcnR5LT5hc3NpZ24gKCd0aXRsZV91c2VydGFnX29udXBsb2FkJywKCQkgICAgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX3VzZXJ0YWdfb251cGxvYWQnKSk7CiR0bXAgPSAkdGhpcy0+TGlzdFVzZXJUYWdzKCk7CiRwcmVmID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZXJ0YWdfb251cGxvYWQnKTsKZm9yZWFjaCggJHRtcCBhcyAkayA9PiAkdiApCnsKICAkdXNlcnRhZ3NbJGtdID0gJHY7Cn0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCAnaW5wdXRfdXNlcnRhZ19vbnVwbG9hZCcsCgkJICAgICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3BEb3duKCRpZCwgJ2lucHV0X3VzZXJ0YWdfb251cGxvYWQnLCAkdXNlcnRhZ3MsIC0xLCAkcHJlZiApKTsKCQkJCSAgCgovLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlICgnYWRtaW5wcmVmcy50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/image.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAG2klEQVR42mL8//8/Q35+/gUFBUW133/+/AFyEQDEYYRQMC4IMDKCeVBBOAuv2H8owQgE/////f/82bMrU6ZMsQIIIBaQOBMjI3thYQEnA53Ay/ffGRqqCrlAbIAAYkFyN8Pa478ZTFWYGHg4GRluv/jNIMTNxPDkzW+GP//+M/z++59BUoCF4f6rnwybz3xi+PnnL1js128gDWT/+vOf4efff2A2MBwhckD+rz//IDRQ3c9ffxj+MTIzXO/TY2CE2gkQQCzILgNpevzmLwMTE9AwoCHX3/9i+AcMd2ag6p9Agx6//QUWZ2NhBIozQqMFRDPC4wYEmWDRBOUzgmiQuv9MDP8ZmaBRCAEAAcSCHE8OOqwM/4C+/QvEIEW//zIzwIz/C3QIKA0wA003VeYEOwyUfkDqwfj/P4QYiAaLMUDlQGr+gc1lZmZh4OdkBsuBAEAAsSAnLgkBJN+AATOemPyPFHn/kISg4v9AJBQipWImJiZglCDsAAggFlIT0H+oL0GYkRERDTBL/kG9ho0PCgVgDmBgZWWFmwcQQDgd8OvXL7AGNjY2sKthAByfUIt//vzJ8OXLF7hlMIchOxYUDhBH/Gfg5OQEmsUM1w8CAAGE4oAfP34wvHnzhuH8+fMMFy5cAKbmPwzy8vIMDg4OYIegG/7u3TsGdnZ2qE//ofgUlIj+g2hwsAMT7b+/DG/ffWTQ09OF6wEBgABCccCNGzcYhIWFGTQ0NBjU1dXBhoEc8fv3bzANCUKIL0FiIEdxcXGBQwjkK1CIgIIXJP7nz29gImZgeP+djeHjL2aGL18/MzB8f8rw9etXBl5eXridAAGE4gAeHh4GWVlZsAWgKABZAsIgg2GO+Pv3L8P379/BQS8iIsIgKirKwMHBAXYcSM3r168Znjx5wvDv7x8GDh4hhlWnvjCce/iLQU/sN4O7EiM4NJABQAChOICFhQUenMi+hcU7OAUDHfb582cGTU1NBiEhIXA0PH78GGw5MzMzg5iYGIOKigrDwwcPGP7++sYQYMTD4GPAysDFAixH7j1By2UMDAABhFoQAQ15+/YtOC3AfA/zNchiEP3t2zcGLS0tBgEBAYarV6+CfQxyJCiUQPK3bt0CpxsxcXGwIwT5WcDR8gdYQv4Floiw6IIBgABCccDHjx8Z7ty5AzcMhkE+AwU7zHJQsN+7dw+s7iswbhfMn8fw4sVLBjs7GwYTU0uGa9eugUOQj4+P4e37D+B09efvP3guQgYAAcSEK48jY1iUgByipKQEDhVwiADpvLxihruvBRmktEMZ+qetZjh4YB84lT9//hysF+QBUEiilx0wABBAKCGAHvcwPsxxoOADxfunT5/AvtqxdR3DvU+yDAmB0xgkxDgYZJ/wMuzbP4nB0ckZHFqwaIOVFaCoRS5TQAAggLA6AB3DfAJLJyAxUILl5OJh4OEA5hLmbwzf2DgYODi/M3BzccGDGqQOVK6A0gWIDQo5d3d3FAcABBCKA2B5HR3DQgCWzUAp/f379wye3gEMV6/dYvj6cAYDx18FBk3O8wy2MdHAtPGLgZubG2weKLRA6QdWiKFHAUAA4YwCdBrmgLt37zJISEiADQcVraVl5QzXrlxk+Ay0yDkmDFzn//4NcQCo0AGFACjtgNTDsjIyAAggFvREiO4IWAiAaJBmUHBKSUmBcwKoDABFhbKqBjjOQaECjGmg5VxgS0E5BeQImKXYEiFAAKE4BznrYcMgR4Cy3sGDB8GlHagEBCUskMWghAayCFQ0gywBWf4AWA7APALSj80BAAHEgi0bwuIKZCDIJyAxGA0r848ePQrOkuLAAgc59ECl5IsXL8BpBeRAmO9BIQVyBHpBBBBALMh1N6gE09PTA8c1zMfIvof5ApaiYfEKq7pBloBKyIsXL8ItgkUnzNLZs2fDchTYUoAAwkiEoEQDy3YgC2BsZMuRHYScc2CFDkgM2NQHJ0TkUAUVUKDStqam5u3MmTMjZsyYwQAQQCgOAIUAKNH8R+kcMKA0RpBDDBd4+PAhOARgwQ8LDVB6qaurewvsDzgBhW+C5AACCKM25Ofnp6jND7IIlF5A0QKrXUE+B6WbysrKt5MmTXIGCl2CqQcIIBZsbT5KAawhA3IEqHECSpj19fUgy12A0heR1QIEEAutej+wohuUPVtaWt5OnjzZGd1yEAAIIBZscUxpFIAb9MBoAPm8u7sbp+UgABBAKA4AaaIGACU6kM8nTpwIS3CXcKkFCCBGUHzl5uZeU1NT00RvVpMbAqBiGVhSvp06daojUOgyvrQCEEBgBwBTvgqwpeoIjDcmUO+ZwgQIjgNgaXgUSF0hlFgBAgwAfCHGv3udsccAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/pdf.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAHDUlEQVR42mL8//8/Q35+/gVFBQW1P79//2EA8sEASkN5qOD/fww+ssh/XOqAgBEI/gAtffb8+eUpU6ZYAwQQC1iQiYm9IDmZk+HXLwYGJiYGhr9/IapBfHZ2BoZXrxgYvn+HGPjvHyoGqQXRaA4H2oTd4SwsDD91dRnyq6u5QEIAAcQCd/GfPwwMFy4wMDAzMzC8f8/A8OEDA4O2NgPD/fsMDEuXMjC8fg1R8+MHxDEgGhmDHEEM4OFh+H/vHtyBAAHEghQ2DAx37zIw3LzJwAB0IQMHBwPDiRMMDDduMDD8/Anhg2iYz0G+gWEQ+P0ba5CjAFBoAUMAbBdULUAAscCDhp+fgcHNDYJBfJBikKEgPgjALAXS///9BYYaKKqASQao5j9Q7B8seoD0P6Qg/wd1JMg6kDpWUJRycsIdABBACAeA4l5RkWAI/ofh378gUcfKxvAXXQ5mIYiGYZDDQf4A2sMK8hgUAAQQCwMJAGQQKPj+nznC8K8ug+GPuAzD756lDBz8Agz/gaHBALUMnh5gUYTE/wNks4CiEwoAAoiJFMv/gywHGvB3SjPDnyfAhHThBMPn6xcZ/gJ9BfMpA5LvGZBCA8b+C4xaRqQcAhBATAwkgv+ghAjKIfyCDIzABPX/+1egB/8jfI8eYkjgDzAX/UPLLQABxERyFIASkJIKA9OLZ5AEyQ5KUP/g2eo/FodA0vA/YJr+jeJ7EAAIICaigx8pLhmtXCCGcnEz/OcXZmBEshQl6JEwyHIQzcSEaiVAALGQ5HtYKrf3YmCUV2b4w8LGwCSIcAC6IxDZ/y8YMwMLOXQHAAQQE9G+hxn8B5jpRMUZ/pvYMbA+usvA9Pguwz8WVkyHQvWBLAbFPchiUPCjRwFAAJGWC8A5AVrqvXrOwPrpFwP7qlkMP4AJkxGaE9DjHWQ5zGJsDgAIICZCloIMQTb4PyPQorevGP4Dff5TXZmB+8Amhp/H9jL8ARZIyL6H+RzdcnQHAAQQEzFBj1LtMgENuHWZ4f/XLwzvsuoZGDm5GTjndjF8e/+BgQkYFbDUDsvvhBwAEEBMRCU8WPDD6q3Thxh+AcuBf/beDP8TChl4jh5i+L9mDsN3YOj8hVbluCxHdwRAADEhW/blyxdgE+AXPNjRXQuuL0AF0fG9DN/1LRlYObkY/kZmMvw1N2fgm9XK8P3sUYb/fMACiocPWO3yAUOHC5g28IcAQAChZEOQ5SAMyy4gxcjZ5j8bOwMjMPiZ799i+BqezcDz/y/DLz4BBqammQxcia4MfL3lDL9SKxi43r5gYPj2leGvmg7DXwNLYHAgGiroDgAIIBZUDzKhJKL/6JpY2RnYdm1g+CEiwfDXwpkBVKUwAaOD+egehj/8QgwcV84xcJREMfxU02Vg+v2TgfXlM4aPM7cz8KppAbPvb6wOAAggFpiFIAmQz7EVo+DEB8rrwHKf5cgOhk/6VgwCe9YycOzfyPDrzUuGz2r6DL8yahl43r9m4J5az8D88gkDo4gkwzd1fYafwCjhh0UfkidhACCAWNAajAxYWpEM/zk4waHItHMLOAfwvnvD8OPVE4bXDv4M/23cGNil5Bj4gA0NkP5fOkYMTLvWMXwDtm8/BSQwCIqJA5sukJoUmx0AAYTXAf/Z2MAuZz26m4Fx5SwGpsM7GT5buzN8iStiYNPSBzbv+BhY//0Gt57+//wOduw/QyuGuacuQXLDgSMMDPsPoYQqKJR/ghIytCkKEEA4HfAfWNEwP7zNwDyxjuH7y+cMjF8/M7Dy8DK8Bwa1iK4xA/tfYG75/QNFL1j/zx8Mf4EJOTEpiYELWHMiV7+cQP4rYAu7oaHh5cyZM4NnzJjBABBATOgOABsCtJxl3yYGpqwAhrfi8gyfk8sYWH79YHidUsnAo6zOwAG0HNQwwZfHWYA+BfmWlZUV2LJnB1v+8eNHhqamppfTp0+3ASq5D1IHEECYIQCMb6aD2xn+A5tcr/NaGdiBcSpSk8jw2jGA4X9AHAM/Oxv2MgKqH5bIQNkZxubi4gK29N8z1NTUvJw2bZotUOgOTA9AAKGFABO4XcF49jC4shHYspSBrySS4Y2FOwNDUjGDOA8XqC1MVCkHSgOwMuXly5fIlt9GthMggNBCAFTTARuX8QXAFrI6wz+gIz4aWDGw65ky8LCyQBokIEtwFN3IoQKqiDiAjU9QnHd2doIst0H2OQwABBBmgwTY5mcQEGZgCooHFzScoFYMlrYcIcACbC+CfD5hwoQX6MGODAACCMUBbKBsh6UcAKYkkiwHBfvbt28ZJk+e/AKY4HBaDgIAAcQISlC5ubnXVFRUNIHx9p+BQgCKhm/fvjE+ffoUZLkdepyj17YAAQR2AD8/vzIPD4890AGMuHrkpLgB5JE3b94cxmc5zAEAAQYABPJ6/Je6JoMAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/sound.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAHFElEQVR42mL8//8/Q35+/gUFRUW137///AFyoeA/nIILgbhABYyMDCgAv57/CBJIMALBv7+//7948eLylClTrAEC8DQGKQDCMBDcxIDoA/yCXxO8CJ48+G21UlOTFHraZFlmxHsm6pd1G+4EaKkSNknKJX5hIGulihCeV3GlL8S+VWdrTbWMHqWxWtrBHWOeCOexj+7+BRALzHV/gbrvvfjLwMPxn+HVx79Ay/8xiPIxMdx8+otBS5aVgZ2NieHd578MLz78ZvgOdMCWsx8Yfv76y/Ab6MjfQM0g9SD61x+YGBAD2b/AciCxf0B9fxm4OdgZLnRowMMHIIBYYAxQqH76AXItRDMzMJyfvP3LIMrPzHDjyW8GDjYGcNCzMDMyvP38BxRqDKws0LgAsoERAwpesEmMECGoqSCSCRyiILPZWZmgwozgWAEIIBZYPHGxMzDoybEAQwIUtMxAA/4DffOfgZUZFBWgoP0HcTGQryHNxuBhwAMP1n9QGsT/+x9Co8r9A4pDzGBnY2PgAoYmDAAEEAssEYEcJcIH4jEzkAdAEf0XlBigiRCSZmCOAVkC8jIz0AffQT6CAoAAYiHVGpAvPn36xPDu3TuGr1+/gg3n5ORk4OfnZxAQEGBgZWVl+PX7F1jdf2j2gIUeOAf9/geNKggACCCiHfD9+3eG69evMzx//pzh9+/fDExMTAzMzMxwC/78+QMWExcXZ9DU1GTg4eFh+PnzJzTbMkKjBGI5TB8IAAQQUQ64c+cOw8mTJxlERETAmkGOePjwIcOXL1/ABnNzczPIycmB8cePHxnWrVvHoKOjw2BoaAh3BMwBLCwsKCEAEEAEHXDhwgWGq1evMmhoaDCcO3cOzAYZCgpqGPj8+TNY3ZUrVxh0dXUZTE1NGW7evAl2jL29PcOPHz9QQgAZAAQQXgeAfAmy1MLCgmHLli3geAfFM8iQv3//gjE42QJDBYRBlty/f5/h9evXDH5+fgwXL15kuHTpEjg0vn37Bs2xqA4ACCC8Djh8+DCDvr4+2Gcgw0HxC4tzISEhMB8U7yAL37x5A49vUHo4ffo0g6WlJcPx48cZFBUVweLoloMAQADhdMCzZ8/AQcfOzg4OYlFRUbgF2traYAySAyVIUFoA+RyUSEGhAlIDEgc5hIuLi+Hu3bvghAkSQ3cEQADhdMDTp0/BmkGGgFI0KPGAfA5KiCAfgRwHClaQo0DZkpeXl0FBQQEcGqBQAVkGUgOKMmDFA44GkFmwHAEDAAGE0wEgX4N8wwYsuQQFBcGGgisuIA1KG8gGgRzy69cvsBhILQiA9HJwcIBpmM9hGNkBAAGE0wF8fHzgBAQCwsLC8BQM8g0oepDLAFiCBIWYvLw83AyQ41+9egWOPpDDsaUDgADC6QBQnn7//j04z6uqqoKDE2QpyKJ79+6BsyLMETAfmpmZgRMnLORAlj958oTB2NgY7gF0BwAEEIoDQJaA4hpksJiYGDhOjx07BmbLyMiA4xAUpyDDT506xfDy5Ut4jgDlfRUVFbAFIN+CcgVIDShtKCkpgfViAwABqCiDGwCgCIZ2G6OINWxkGXebGOWnkh6+q0OLV58BOhcoFHF3VBW6GxEBM7sHREGmgJzwnoSUidAQ3NDMYHeRmdcTI2JJ9QQQigNAkrBiE6QBlM/j4uIY5syZw7B06VIGAwMDcPEKChlQAgOlDRgAqX/8+DG44AKlHVApGB4eDi5BQY6CBT16FAAEENY0AFMEimctLS2GlJQUhsWLFzNs3boVXMCAogPkOFBCBQFQOQBKmKD4BmVJUJSFhIQwmJiYwH2ObjYMAAQQC6yaxCYJC1KQZVFRUQyTJ08GWwTKCbDgBOkFpRlQSgdFESjuAwICwI4DOQwUPcjZDql2BFsGEEAs2HyOLgbSBMrfiYmJDCtXrgQHr5SUFIOysjK4hJOUlASrBQW9mpoaw86dO+EOg+mHOQKUyEHtCFAOBhEAAUTQASAASsmgBArK46BEBUrdoCwKK7BAwQ5yFCjrSktLM5w9e5YhPT0dnE5gjREQAPFBCbO9vf3JrFmz/GfMmMEAEEBEtQdAQQ1K+aA0ATIE5GOQhSCfgBwGSuWgohaUc2ANFRCNjkFlSkdHB8hyC1BpDzIbIICICgFkH4AsAwUnKFSQ4xbW0oEVNsiJD9RgAeWQlpaWx1DLn8H0AQQQSQ6AqYElQGT1yE0vEIY10UDFM6hc6OzsfIJuOQgABBALAwUAOQTQAcgBoMYqqJru7+/HajkIAAQQySFAKHRgAFRigmpNYNZFiXN0ABBAKA5Abq1SAkBZDVQoAVM5XstBACCAGEHBmJOTcwXYyNAGpmhgxwZPuBIXCozAJjwjMMU/mzlzpiVQ6Am+KAQIIEZo4hEB8nWg3aL/FAYAI9SMG9jiHN0BAAEGAFSDxYXqY3MTAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/spreadsheet.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAGQklEQVR42mL8//8/Q35+/gV5RUW1H7///GFkYGAAYRD4Dyb+M2AF/6HyWAX+I5EMKAoZgeD/vz//nz19enXq1KmWAAHEAhJkZmRkD8wp4Hz3m4FBno2B4cUvBobnPxkYmJAN+I/GJsRHsxgGmICG6vL9ZqgtyeUE8QECiAWm8t8/Boat7xkYiiQYGJa9YGBovwc1ACjO8BeK/yHhP0jif/GoQwskdlYGhocx/+GhDBBALDA5kNrL3xgYNrxlYDj9mQHsfWZsvoLxmVE9yciIxGeE8hlRtf0DcphZUN0EEEAsMMvlgEGfKQ7UA1RULc/A0KiAIzhBUQ00CZR2EOx/8ND6BxL/B/E6RBih9h9QgJWFhYGXlRHsGBAACCAWWDpjB9JOvAxEAuSkygAJLnh4gyxjhBgKTcD//v5n+Pv7N9gxTIz/GP4yssF1AgQQCzbjf/z4wfDw4UNggoEnQ4Y/f/4wMDMzgzEI/P37FywGUsPKygr25W+gJSBxmDqYGA8PD4OwsDAwYICW//3DwMWFcABAALbJFQdgAIShZPc/JQLC1+GXVk0MCW15ps8fwN3J7jIMATBWFcG6W8yMOuxwV1WJCALBh+fuLjNDb2aifgSC5juvAMLqAJBibm5uBl5eXjgG+YKPjw9sIQiD2CA1IPHv37+DHQtSx8XFBRYDWcYCjG8QG0TDQvHfP9SsARBALLhiGeT6X79+wR305MkTsO85ODjABt68eZPh27dv4CiQlpYGqwHp+fLlC5gWFBSEmwNOB0CLQQ4HqWdkRKQfgADC6QCQb0AWgRwhKioKtlxPT4+Bn58fbBjIEFDQS0lJMXBygssUsINA6uTl5eFqQGKg9ASyHBQqyOkKBAACiAVXFLCzs4MVgzSCLADxQUEOswwEQKHBxsYGToQgAFID4sOCHCYGcgwswaI7ACCAsDoA5Ovr16/DU+779+/BQQtKfCBLYT4BJTyQA0GWgsDPnz8ZPn78CJaHhQAo4YLMA6lHj38QAAggnA4QEREBJyCQoZKSkgwfPnwABzeyA0By4uLi8FABJUaQ70FpApQoQQ4AiYFyFXLoIgOAAMIZBTCLQBjEBmUtkOEgDHMAshjYMCANKwNAZoAwSAyW8LBFAUAAYXUAKEhBQS4kJAT2HShPg/iPHz8Gy8EcAEpwoLiFRQEo5EBRAEv1sCiApX6YGDIACCCsDgAlKgkJCbCBIM2ysrLgQkdGRgbsIJgDQJaDogc5CkCJDjkXgMRu374NDxF0BwAEENwBIENhBoA0Q4pNREkIS1ggMVjUgDCID8Kw4hmEYepAlsHkcDkAIIBY0OsAkIWgRANK+aA8DwoNUFEKigJQVCBHAajYBbHRowAU78hRAMuCILXoDgAIIBbU1gqilALlApBGkKGgoAdFASgqQAkSXr8DLQFFFUwMZBmIDVKH7ClQFCCHAjIACCAWWPCDJGCpF1YAgTDIEaDsBnMMzCcgGsSHicHKARAfpBYWBSAxmOeQaRgACCAW9OwHw6CgBEUBKDhhZTwoFJCjAKQG5GjkgghUXoDSEcxToHSFHgXIoQAQQDgdACpgQBaAfKKiogJOB6ACBjkKQHIgdehRsHnzZnjZD4omkMP27dsHDwFolQxurQAEEFYHwCoWmKs/f/4M9glIDJYjQHLIYjAHgPggC2NjY8F1B8zXsMQKSuA1NTVvZ86cGTljxgwGgADCGQKgoATV+bACBxQFoLIfFgUgNaCcgi0XgHwPyj2wSgqWuEEOq6urezt58mRnoPANkBxAAOF0ACjlgywGBbOGhgbYckVFRZQoAKUP9CgApRdQGgA5BlZEg/ggyysrK99NmjTJBSh0EWYGQADhjAJQsMPaf58+fSI6CkBBDGsvghwBCh2QWfX19TDLLyDbCRBAGA4AAVAtCGrRwBwAsgBUL4CiBSUFA32ILgbSA2ucggAo6lpbW0GWO6NbDgIAAYRRF8DiFBTc2OTQHYwsBgtBUNyDHAKyvKurCxTnLtgsBwGAAGJBrwWpAUDRA4qa/v7+t1OmTHFGjnN0ABBAjCAf5ObmXlNXV9eEBRslANYOfPr0KchyJ6DQJVxqQXYDBBDYAcDspgrEjkAHgHvPlDgAaB44Qbx48eIYqLtJQC0DQIABAAtA57jciQkeAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/tar.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAIOElEQVR42mL8//8/Q35+/kUFRUXV37///mVg+A9GDIxACkSDmEA2iAPlggFEDiGCxmWAq0YRAxsLxP8Znzx5fGXq1KkWAAHEApJgYmRkz8wp4Pz5i4Hhz9//DP+AYr///GfgYGNk+PHrP8P3X//AFoIc+w9I/wM5BsoGi4MgUNM/Bqj4P5gaqB4GBiRxBgY1CVaG5ppCLpDdAAGYIHcTAIEgiI5wRYipNmCplmQFBmJygWBgC+rdfnQ8EAwWdhh2ebzwwYkC86YEMHRNQNwFbR0wrRfG5aCFm1COZI6sxt2QmJWgYv+OI1aymJcu8+d7k8RxChCHnhaq4uYRQDAHgIPm9Yd/DHzcDAzXH/9mYGZiYLhw/yfD1x//GDiBIfHnH8hHjAx/QQH4HxQ/EJoRFq7ggIUEMCNIHAQZGcEOZ2RkggY9IhpgACCAWGBxw8PBwGCtzQYMpn/gaGACqvr7j4WBCegQex0uaHD+gwTnv/+QIGZgAVrKxPDvz0+Gv0BfgkT+gRwKxH+RownM/wemGYDqhXlYwPpBACCAWJAcwyDGB04RDMSCf58fM/x6d4+BXcaSgZEZ6IP/fyC++Q9xICwVgxPkPwjNxAQKRQQACCBICPz/z0AK+PP9I8OXO9sY/ny6ycDAwszw4elVBiGTZKAjWBn+/v7FADMTZi6MDcMcHMxwswACiIkUi/8Dg/rLrW0MH89PYGDjZ2QQ0PdkEDGNZOAEBt2zQxMY/vz4wsDEwo7XQ6AoRgYAAUScA4Dx9/3xMYb3p3qAnGcMQmZhDFxyjgx/f3xj+PvzEwO/iguDoLIyw6P9vQw/P71kYGblwPA1JBv+w3AcQACx4Lf3D8OP5+cYvj85xMDKycAgoOfIwMQjBkydP4Feec/w+8sbBmY2NgYGtrcM/Ip64AT7YH8fg5RlJgOPmALDn5/fkAqu/+CEysSE6meAAMLpgL9fXjJ8vDQHmCQ/MnBLajKw8kkw/P30jOHP23uQZAV03M/XzxhY/n9jYPkrwcAA9DWvtDyDMtMfhhsHJzJImKUwCMvrMPwGRguy7yFZE5ERAQIIpwN+vDjPwMrLxsAr787AAHTM/5/vGUCK/7NANDMyczFwsgPLjqMLGX4xAbMPtzgwXUgw8IvLMijqqTLcODSZ4YdRLIOEminDn98/wZaDfI8eAgABhDsKmJiBwQvMWqxAW4Dhz/jlBbTAgrqehYXhzxdg0CvoA7MVK8P3L98Yfnx4wfDs7SsGNm5+BjllCYbLOzqBlhcySGpZMTD++wGtVxhRrAEIINwOACr8D4rrXx/AWY2BnYeB4f1DSLEFKnz+/WX49+s7A7+kHDA0mBkExWE1F9CHwOhhYPzJ8FKUjeHj6xcM0kBf/8VhDUAAseBJ+MAMD6qdvgPxT4gjeEUYGN7cBlvwF1i2M/39wcD4/Q0DuJZhAhoFCt5/wML+P9A6bh6gpcyguIIXy9hCACCAcDrgH6g8/wt0wN9vEIeADAVVEAIyDAyvrjH8+fiOgR1Y8ADDHWgxK8TFYDWgXMEFpv/9h1rOxIhhMQwABBDuEADlXVgIgBwCrm//MoArCREFBiZg3c3KAPTtH2Dc/vsKCQE2bkiaYQE6goUVGFmMkBhDSvnoiRAggFB4P378YPj9+zc8BP6DLP7zDYFBofH7E9DEfwzsEsoMTL8+A9PIF0i8s0AtBoUKKBSAGBQFoNhhxFPWAAQQSgiACoo/f4Btgv8sDD9//mZgBwUpOApAjoIGMSwUfvyCWswBtxBsOROUZgFFAaQaRs5+6CEAEEAoDgBJQspqUCuGheHb+/cMgmLckCgAi/+DpnBoCwJkKSj+WVihlkNpKAbVvsygEGDCnQgBAogJvTZkZIQEPb+iBcM3VgOGx9fuAaMfVPQC08Lvb5A0AaJBaQIc12wIS2EOAZaKDOzAsuHbN2CI/gUHGCwdoJeEAAHEhJr1oQqAIcAMTEyydjkM33k9GK5ffAXMCECL/3+HZsvv0BTPjgh+sGOAfB5uhh8/fzIc33ya4cMPcQZZTV2G379+g0MWhEHRjNQIYwAIIBZ0ByCywV9wU0rJIY7h2RUVhkvnpjNoqfxk4GABRsFfUNjyoiY6Tk6gRf8Zrh27wbDxDDsDC5ckAxe/IMOmnfuAgbUb3jhmBhZav379AoU6uF4GCCDcDoC2Zf4CfSOtYwX0LC/DuUN9DHoKrxl4uH5BWj8swPzOzg5ObHcuPWK4/ZiNQVzLh4FX/DZDRmYWAysLM0r9zwasOd8D01VNTc3rmTNnhs6YMYMBIICIag/8ATpCUlWXQdm1juHMHRmGt++AwcgBaloxMTy485Jh7/7XDG9ZHBlsYtoYTFx8wIn5D7RlBGKDfA2y/PPnzwx1dXWvp02bZg+Uug2SBwggAiGA5AhgsInJKTKwBjQwnN/YwSD0+gHD26//GdjFbRkMQ30ZRCQkwE16UDYGJWpQMMOyHCcwekA+r62tfQXsjIAsvwEzFyCAWEhpkv0GGiooLsFgElzNcPvsYQYjQ2sGIVFxYOsZYiEsjkEOADkEJMYOjKI3b94wNDU1vUa3HAQAAgijHCDUQP0LNJhXUJjBxC0I3AQHWYRcwMBokDgHBwfY5+3t7VgtBwGAACIpBJAbluiNS3TAysrK8Pz5c4YpU6bALL+OTR1AALEg50lQ8FEDsAAbK7du3fq7aNGiZ7Nnz3bD5nMYAAggRlCQ5+TkXJaVldUC+grYnyCxk4DekAL2PL5//w7y/ROg5eZAoVf4alyAAGKENhSFgXwNUCCgdqjJAoyQSgPs6zd4W91AuwECDAB5pb2L+BJ+bgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/txt.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1AccDAgsHo/fIQAABG9JREFUeNq9l89vVFUUxz/3/epMp9BO27G1VkIBIaQEFTH+CgYxopu6EBe4MHGjYcHehf+DKwMdSYyNCbIxEZCYGBYksyBhIz+MiNGIUKBk6M/pzHt99717XAwzdPqm7bQqJ3l5M2fOe9/v+Z5zz72jRIR8Pi88Zjt27Ji6cuUKiAijo6PyOG10dFSALSKCs5jVNxdCtj+puHE34vVhl+8ulnl2yOXibz5hZAhjg46qV+1zGBl0vOS+XGxsuHn8pQYlrKXSVEKhd6PiVjEi7SnmffO/lqJBgYPPORiplkUEhvocROD5obaqH8EIGGMwRoiNQWrfH95jI4gIRpr/viKBvi5rVcZVctULo4knL8PGneCkH/mXxC32r0hgrWZd/wgd7WGmcJKpcZ/Bw5/hZfuXBWzmWxOBhmzKf0D3DVKpDfRv/ZRev8yvx48ydPRLnI5sMr6VHlgNfLGp25+j+q7BPQ9K7+CYQ2wZ7qMy8RcdW7sS8SJCHMdJFdejAOEDVMdliDtg8iqIB9fPMVOcY8O2Pcn4h6a1Xh+BRPZ/f4HKXIPp3VXH/CAm/QTsPNRUchEhiqLmfbTm+kc+yrsAIjAzAW1b4dY9iqVOul8eadovNfmVUmsnkMj+zhiq8xaU9oFZAL0DSXcT9L8BqKbZa61RSq2PQGM2Biv+CdAwF4HXB3enmApz9B74MBFvjCGKojr4mgksraeaOIvqnoPgFYhKoHaBm2HGHUa5bYlBVJN93QSWErHmvwe7AqV2cDqh6DMX5ci9/UlDfBzHTcHXRCDRzdOXUDkL9E7QU+DsArEolrpwOrJ1yeM4RkSagq9KIAzDpk0kIliTJ8Gdh/lesDIwp/DJkX3z47rctc1mOfBmBBomYRAEBEGA4zjYto1lWdVs/JtYPe0QD0I4Cd520CUmxiN6XhusT7ilAL6/QKUSICJksxuxbWtlArUX1GpYs9Sdr2BTDLP9YIUQZNC2S2rv/gSoMYZKJaBSCTDmkZqzs/P09HSuYy/Q0zjdHSCAngXvaZiLmPjzAV3v7Vk0ZiPKZZ+FBd1089E6IggW8DxvdQUaAornUAObYcEHaxyiHozjozYPo5QiCELKZR+toxXfU+2xCNu210ZAmQpE+8FcBScHvuH+73dx931AsThdl3nxs+fP/7i+I1lTAkrA8qBtL3gRtwvfMuNtp70crPjikZERHMd5eHwziAiu62KM4fTp0wDllghoX6hV7ebZr5nf8AyZ3W+tmlkul8N13YQ/n89z5MiRARG531ITlmZjLhV+YWCiQLzpVdq3vbhsbCrlkcmk60u6tpJqjXfixIka+L2WS7DgC+Wff4ADh0kP7EhOMkuRTqfIZNIN61xrXZc9DEPGxsYS4C0RaOvcxK53D+L0PNUwnm3bpr09RTrd1rx0WmPbNmEYcurUqabgLZUg+8L76zsxWxaVSoUzZ84sC54g4LruiifY1UwpVd8PisUihUJhRfAEAd/3/zWBWjlaAW8gkM/n/9P/fK2AA/wDBrxkMKMQfQgAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/unknown.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADPElEQVR42mL8//8/w8yZM/8z0BlUVlbKvXv37jFAALHABNLT0+lmOdDDDKysrNJA5mOAAGJBlli6l4EBGCAMv/8wMPwC4b9A9m8Ghr9/oew/CPwLSv8BiQPxnz8QvfjAv39AO6ohbEbGP2DVAAGE4gCQyL//EIPgmAFK/0MVQ9aDrB4nYETVBwMAAYTiADN1iCEgR/wD+uovjP0PiqHsP0AJEPsvkADx/4LV/gM7Euasf/9gzgOZ+R8aAiCaA8UBAAGE4gA1GWJiEBxOyP5HYHhQ/IN4BKTuH8QBMAxzwO/frGAaIIBYSE1AEDsYwYZBfAQNNSQ2TB5BQ+IARLNxQsxhhdjPABBATKRZ/h/NNwwobGxqkfn//v3DUAcQQEzkZCNsjsAmjiwHAn9AWQUNAAQQE7mWYrMAl+Uw3/8G5WkogLEBAoiJ0kIFW1RgY4N8jy2qAAKIiZy4JzYdIAqgf8Cs+peBiQnTOoAAYiE36AmFBAzDgp6RkRGM0QFAALEQYzmxIYGuB2Q5KOixWQwDAAHEQko8EwoRZDFQkMNSPT4HAAQQC6mJDFvco2OQxSDf47MYBgACiIWY4CclHcBSOzGWgwBAAKE4AJRYWGFlJAmJE5bKYSUdsZaDAEAAoTjgy5cvDMzMzAwsLCzgLIOcbbClbpClyCFDisUwABBAKA4AGQAy+OfPn3DD0A3FFg3kWAwDAAHEgs0gfAZSYhkIgDyHDAACiIWahsOLV2DU4TILFMWQ6hiS1gACiAVdklBKJwYsXbqUmEQMdiFAAFE1BED6QQkTBHx9fcGJGZSmQBjkMZCvQezGxsZdr169ugdSBxBAVHcAzAxRUVGsWbq+vn7PjBkzkoHMVyA+QADRzAE/fvyAhwYbGxuYrq2t3dPW1pYIZD6B6QEIICYGGgFQofbr1y9w0IPo6upqDMtBACCAaBYCIAeAEjXI8tbW1j3d3d0YloMAQABR3QGw0hNEf/v2jaGnp2dPX18fVstBACCAUBwASrWUZENYSQoCr1+/Zqirq1uwdu3aGiD3KS49AAGE4oDv379T7ABYKBYWFk7ctWtXBSg94tMDEEAsyD1WagKg5bWELAcBgAADAJLuk5yS/dPUAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/video.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAHYklEQVR42mL8//8/Q35+/gUFBQXV379//wXxQRgG0NmMjIwMyABZHh1gkwPqZwSK/3/+/PnlKVOmWAMEYHSMUgCGQRgadDDoUTxZr+F99VuQVoZl+19+Eh4h5HrhPecc7v6VQESICDAzMvPwzmaGtRb23qiq43/Vh3pXRKCqo9kjgFhgEiBDr1+/zsDNzQ228NOnT2DDJSQkGM6ePQuWf/fuHcPDhw8Ztm3bBrb869evDD9//mQgBbCysjLcv38fzgcIIBYYA2QgyAKQoSAsJCTE8Pr1a7AcyDEcHBwMoqKiDOfOnWPg5ORkAEYX3PcgvfiiCCYGUs/CwoKiBiCA4CHAy8vLYG1tDVYE4oMUqqqqgoNMX18fbCGIDVIDokHqYGqRHYBsMYwPY4PUsbGxMfDz88PlAAIIHgIgQ2VkZBioDdAdAbIHFMUwcYAAYiHHQGTfgRLmxYsXGUAJ2NbWFhy8oPQCk0cOHVh0gEIXBgACiIkc38ByCsjyTZs2Mdjb2zM4OzszNDQ0gA2HWYCeJkB89FwDEEBkhQDIUBBev349Q2xsLIOenh6DibERw6SJE8G5oqOjA5zaYUGNnAbQAUAAsZAa9DDL161bx5CYmMigra3N4Ofry2BgasOgqWfEUFKQw3Dt2jWGpUuXMvDx8YHLEmTfgxyGDAACiIlcn6elpTGoqakx2NpYMUgpaTPI6tow+IYnMcyZvxhYbpxhCA4OZvj8+TM4+yL7Hj2bAgQQEyklGEjzhg0bGLKyssA5Rltbi0FZ25zB0M6bgYWZkeH3HwYGN99ghh279zM8f/6MISAggOHLly9gX4N8j245CAAEEBOxPgeBFStWMBQUFDAICwszSIiLMfwFpnZ5dS1g6cnMwAj0IEjVr98MDOo62gxbtu0AFtuvGQIDA8GOAIUELASQHQIQQAQdAFPc0tLCUFxcDC6Qvn79zGBu68LgG5bIcO7QDoZXj58wgMxnYoQ4AhTtSooKDLt37QaXrjExMeC0gF4KggBAABEVBSDLFyxYACyCORiePXvGYO3gwZCSW8Lg5OnCYGHrzHBy30aGd69eMrCygRwMLBuApn79/odBUkqKYcaMGQyHDh0CJ0x2dnYMBwAEEAuhKhVk+ZIlSxh+/PjB8PTpUwYnN1+Glt5pDKwswNryKwODnrExAxfQYVdO7mPgtHVnEBETYvj59QsDE+s/hi9/mcBlA6j4BuUWUAEFSkvIACCA8GbD5uZmhlWrVjF8+/YNmKieg2vKf/+A5f8/kEHM4CD/A6ypVbW0Gbi4OBke3DzP8OurHAM3BwvDb2DCA5URoCgDJVweHh5wuQAqvJABQAAxISc2UCECK6lAlq9duxaclR4/fsxQ19zOcPfZBwYpKQmG5MhAhs+fvjJwsEPi/C8w9cspKYEt+frhNcN3oIOjo6PBZoFKSlDlA2tToAOAAEIJD5AGUBCBChGQz0EJB1T/d3R2M9RXlTHw87IwTJk1h0FWTp4hLz2R4d2nbwzsnAzgBHj/1k1glHxmeA1ssIAsB/l048aN4MIIZDnIXBhGBgABhMKD5XUQBoUGiB8VFcVQXlbC8AsYMMBkAPQxI0P35KkM0sAEVlOcw/Dw2WeGvTv3Mlw9d4Lh5cuXDLm5eQxiYmIMa9asgVsOMxM9C4IAQABhpAGQr8PDw8Gto5UrV4ITzunTZxhMTU0YvjNC8vl/RiaGus4JDN1NtQx58X4MXz59ZBAQ4Ge4e/cuQ1BQEENvby84SmGWY8vWMAAQQEzYJEFRAUoDIIecPHmSob+/n+HU+cvgoAZlmD9AR7AAi3QFJRWGv7++A33Kw3D+/HmG0NBQsFpQsYtc5+MrXwACiAVdEIRBBoBSL8gRIEMWLlzIwMnByRAWm8RgYmXFAMwIDDs2bmE4uncTg4SkJMPx4yfAdUNXVxdY3/Tp01FqPvT2Ayh6gfJgAYAAwuoAWEMCZBioHACxQY74DcxzP37/BUfTkd0bGHh5eBn27tsHLulAlsNayiAcFxcHzhXIDgEVx69evQKVDS9mzZoVNHPmTAaAAMJbDoA0g9JAW1sb2OWTJk0C8n8zKAOzHC8vDzB/bwRHU3d3N9hykFqYB5BTPQx/+PAB1Bx/CQwhW6CSByB1AAEEDpqcnJzroCAB+vg/MHgwMEgcBIAl4n9JScn/7u7u/5WUlP6XlpaCxYEWw9UC4/5/X1/ff6BP/wMrITAGmQ1sYf8H1qLPgXaqIEcNQAAxYYsCdAzrN4DyN6hsBxXLKSkpDJ2dnfBgR89mIHFQFIJCDlSK1tXVvZg2bZoNUOoOsp0AAURSiwjkCF9g68fHxwccpMiNT3QAK/dfvHgBSh8voMF+F10dQACxYPM9oXQBUgMrsnHlc1AjBGT5hAkTQJbbYLMcBAACiAW9JEQvKskBoHof1EwHdj5x+hwGAAII1FNlyM7OvqKoqKgN9B2od/yfEstBvV9gYmQEthteAdOLLXqco0crQAAxQptcIkC+DqicAIlToUPECLX4IaF0BRBgAG4Y+/r2qXM2AAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/wordprocessing.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAH+UlEQVR42mL8//8/Q35+/gUFBUW133/+/AFyGRgZGRhA4iAApcBiDFD2fyQSREFZeMX+QwlGIPj//+//58+eXZkyZYoVQACxgMSZGBnZ07MLOD99Y2BgA4r8+P0fTP8E0iCLQXZ//fkP7CiQQf/+QWkg/98/kLlACBT7B7IDREMdAJIH6QHzoWpBhqmJszA0VBVygewGCEADlRsBCMMwcbABJTswKmsxQqhoqJgA4i8oQNxYJ8k+2UNLpw6sm2IaAfeCS+NXCvZTkI6bwQLGbdmC/oCwCwfVnJg8uYr5R+oF0jz++bIYouuRlvk9qtYjAE1krAMgEMLQtrCYOPj//+eqi+PdIZwnCQOFhPTVf1Al9GC+I86r4diJ+xmQgH1zmAueLjg4qYhYdAKWgzTATlhqzQIqR3Nf99lRuQpBfXGuegWgkYxSAIRhGBrsWLuJ+CfiHbz/xTZ0zoq1YL5K8xNeEv6eJgH2rfidFkUSxjp2x6iq5kWknFFLxXk1Q0oWKjijdjTcqp5oIELvHcKCyOz/b0eP8VejRxQwJ/JaPr0CEEnGOgjCABB9ajvQgiN1cGDp/3+UJA6g2LQTtEpLInzAJe/enfgfrVCl8MB9HEpV/GLFOcaS5DUOGGO4tR399CS8R6SUG5AQF+bTArm19x5d13mmBXu3NFfNtwDs58xmstI5HQpWAcTCgAS+AX3CxsEJiQpgXDECw/PTp/cM7BzcDD9+/mG4d/8Rw8+fPxk4ufkYfvz4wfD1+y+wb0FBrK2tDXQ4Fzi0QAkOJPbtx2+k3PQfyv7LwMbGBrcTIIBQHGBsbAxng4IMZAjMAEZoxP0DJ2UEgFkI8hlIDQswWkBqQGLMwOhAdgBI/A8oVJEAQACqyBgHACACgldS7v8/qdGoZCQuoUIWgwMQEbMZjdx9TkoRPs2wqvoQ6HaYmb3MHCDeQ54a4gVHJ+kAtADCcMD379/BmniAcQnS9O7dOwZubm4wBlkOCnKYQ0C+BvkIZDlIHOQAWJTAMChEQBaDxEFYSEgIxQEAAaiiYxQAABCGgf//tdwQqC4KSo31AbgeIXH0Ls9SSwgBMQcQaI5Y5re5IuvT2bqXFCeAUBygoaEBDnY+Pj54vLEDsxLMQFAiA7FBNAjw8vKC+U+fPgU78MuXL2AHfvv2DRw6/Pz84FABJVwYHxaVMAAQQCgOAAURzJf///8DF07A+gFsCD8fPzDv/oMUjkDHfPyISC8fP34ERx8oNEAOBvkW5BgQBoUgKFpBjgaZDeIjA4AAQuGBFDx/+Ybh3aev8FoIlI9BFr37+A0SfFDxX79+MMjJSoMtAxkKCgGQA0COBQEQH5Q+QNEIUgMKAZB+kBhyKAAEEKoDgPj560/A0uw7vCYEhcTfP8A0wfoL5BwGmBtYGP8yyMsywLMVKJhBoQGKFpAYyNeg3AAKBRANcgQoFNCjACCAUBwACnJ+HnYGVmhBAS5CwQmNAVgYscNDAFzT/f0NrvlAvoelGZjPQVEJSpCwwgfkAJAYyHGgkEAGAAGE6gCgD1SVZIAK+aAWgbLPH3D5z8/PB04D4EIHWKGA4v3fv7/g8h5UTMMKGliCZUSqcWAFFShkkMVBACCAUBwACjZQLvj/H9Eg+fsXlAi/MTAyIQodkCFfgSkdlKrBlQy0sEHPYjCL/0MrNGwAIIBQHPAPWG+Dgo6NjRVsCcinoNoM1ADhAeYMcAgA2SDHgBwG8zEoG4LiFsYHeQRWNINCChT3oDQiLS3NICsrCy/MQAAggFDzBNDgZ8Bc8PbDF2h8M4At/fnzB8Prd5/g8Q9KLX9+/wQmQil4IQMK3k+fPsGzHSh0YGUCKHeA0sGLFy/AJSEoq8IAQACxoAQdkH755jOwFvyBFI6gXPCbgeXTH5T2HQvjP3AuADkAlE1BloIwqCQVEBAAR+VfcOhB0gTI0vfv32MkQoAAQgkBkKQgHycwF7Cj1Irfv30F5gI2RAsV7K6/8MQmKioKDgFYigflBBEREXi+h9UHoFCBlawwABBAGLlASV4SnF1giQ0UX+/ff2AQA1oC0whyKCi4YSEnISEB1w8SmzFjBkrCRE6cIL3QNAAWBAggFAeAXAoqOD5//gLXBEv5n798QWkbgIpoLmAcgwxEbyOAfB0XFwct0hEOAPkeZH5NTc3bmTNnRoAcChBAKA4ABR8okcB8D/MRMo1c28HiE7kRAhMHiYHMg/kallbq6ureAvsDTkDhmyA5gABiQc6zFy5cALseFkygLAlKUCDNX6AhALIIFPxSUlJgPihhgcp7UGkISvGghAiqD0DmgLIezOcgdmVl5dtJkyY5A4UuwewFCCAm9IIDZBDIAWJiYuC8DTIMlJdBCQjkIxAflK9BqRyUvUCJDWQ4yIGw1hAIgxwAkgcBkFqo5S5A7kVkOwECCCUKQBpAjoA1SBCl4V+Gt2/fgh0HK2xAGFbZwBomIIfDqmhYIgTJt7S0vJ08ebIzuuUgABBAGGkAFOyw5hjIEJClr169glugpqbG8Pr1a3BWAwUtrHqF1XSwFhIoDYB83t3djdNyEAAIIBbkLAhKtSBHwJpRsAYKyHCQRaB4B6kBFan4wM6dO8HpZOLEibAEdwmXWoAAYgRZkJubew3oM03kJjR6+YAuhtNAUH8AmBifPHnydurUqY5Aocu41ILMBAggRmgJpQIsfByBQc4E6j0zUACA5oHrW2C5fxRIXSGglgEgwAAnIungv6dsbwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/zip.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAAK/INwWK6QAAAZxJREFUeJzt1r9LVWEcx/H3Oc9zO5pYgSKCk1BERD9GhxxcIiHFhGthDUqLk9fBazfScPJG/QElbQ7heAVncQgR7yCCdRGx5YIhkXJ/1dXjc74tqTSYQzxn6bzWB573Z/zCKXoZTTVz5dpp71b1M/o6U7cqjbR0hh6Pk0jnB0uy8mBTLtB8L9R4n0qkt57siiyKfOz5bMIYoI/jtYn0VO/LVFN7DaXcT4JKgLJd/z1ADTSm0lPxiWTD1RjVgo8uKjzluaAc6wPu8Gi4qzWe3ChucZD1BXHQh9rJf9sxBiO2Bzgx6m6AuW4wDqijoAMEAdUlIG97RCQSiUQikf+b9ZOrg4d3+72RzqoqHV9X2tdO2T9Ub3n+3nafbmfwzV7qQAofKrI3U5YfM/uyfvOr9DCUg9gtffYX/0bOUcUI5rshhmZ7ucz4p8lshukEsGZ9gFsD/m6ADmD7S4Wx+fHsnJkeBpYBXNsD0C71lz2KxvBsYSI755/EQxng1Wu3JIbk7IuVTOHdH/FQ3L/09NXjprEc0BZq+Mh5Lt7+W/wXG9yT6kNdK40AAAAASUVORK5CYII=]]></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[PD9waHAKJGxhbmdbJ3BhcmFtX25vY2FwdGNoYSddID0gJ0Rpc2FibGUgY2FwdGNoYSBzdXBwb3J0IChvbiBieSBkZWZhdWx0KSBpbiB0aGUgdXBsb2FkIGZvcm0nOwokbGFuZ1sndGl0bGVfdXBsb2FkZm9ybV90ZW1wbGF0ZSddID0gJ0VkaXQgVXBsb2FkIEZvcm0gVGVtcGxhdGUnOwokbGFuZ1snY2FwdGNoYV90aXRsZSddID0gJ0VudGVyIHRoZSB0ZXh0IGRpc3BsYXllZCBpbiB0aGlzIGltYWdlJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ1RleHQgZW50ZXJlZCBkaWQgbm90IG1hdGNoIHRoZSBpbWFnZSBkaXNwbGF5ZWQnOwokbGFuZ1sndGl0bGVfYXV0b3RodW1ibmFpbF9leHRlbnNpb25zJ10gPSAnQ3JlYXRlIHRodW1ibmFpbHMgZm9yIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdNYXhpbXVtIHNpemUgKHBpeGVscykgb2YgdGhlIGdlbmVyYXRlZCB0aHVtYm5haWwnOwokbGFuZ1sncHJvbXB0X3VwbG9hZF9pY29uJ10gPSAnVXBsb2FkIEFuIEljb24nOwokbGFuZ1snaW5mb19zeXNkZWZhdWx0J10gPSAnVGhpcyB0ZXh0IGlzIHVzZWQgd2hlbiBjcmVhdGluZyBhIG5ldyB0ZW1wbGF0ZSBvZiB0aGlzIHR5cGUnOwokbGFuZ1sndGl0bGVfZGV0YWlscnB0X3N5c2RlZmF1bHQnXSA9ICdTeXN0ZW0gRGVmYXVsdCBEZXRhaWwgUmVwb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlycHRfc3lzZGVmYXVsdCddID0gJ1N5c3RlbSBEZWZhdWx0IFN1bW1hcnkgUmVwb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZGZvcm1fc3lzZGVmYXVsdCddID0gJ1N5c3RlbSBEZWZhdWx0IFVwbG9hZCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1sncmVzZXR0b2RlZmF1bHQnXSA9ICdSZXNldCB0byBEZWZhdWx0cyc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5cnB0X3RlbXBsYXRlJ10gPSAnU3VtbWFyeSBSZXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZGV0YWlscnB0X3RlbXBsYXRlJ10gPSAnRGV0YWlsIFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWydwcm9tcHRfbmFtZSddID0gJ05hbWUnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsKJGxhbmdbJ2xlZ2VuZF91cGxvYWRmb3JtJ10gPSAnVXBsb2FkIEEgRmlsZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmduYW1lJ10gPSAnQSBuYW1lIGZvciB0aGUgZmlsZSB0eXBlIG11c3QgYmUgc3BlY2lmaWVkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdleHRlbnNpb25zJ10gPSAnQXQgbGVhc3Qgb25lIGZpbGUgZXh0ZW5zaW9uIG11c3QgYmUgc3BlY2lmaWVkJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdpY29uJ10gPSAnQW4gaWNvbiBtdXN0IGJlIHNwZWNpZmllZCc7CiRsYW5nWydlcnJvcl9ub3N1Y2hyb3cnXSA9ICdUaGUgc3BlY2lmaWVkIHJvdyBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snbmFtZV91bmtub3duJ10gPSAnVW5rbm93bic7CiRsYW5nWydkZXNjcmlwdGlvbl91bmtub3duJ10gPSAnRmlsZSB0eXBlIGRlc2NyaXB0aW9uIGZvciB1bm1hdGNoZWQgZmlsZXMnOwokbGFuZ1snaWNvbiddID0gJ0ljb24nOwokbGFuZ1snZXh0ZW5zaW9ucyddID0gJ0ZpbGUgRXh0ZW5zaW9ucyc7CiRsYW5nWydhZGRmaWxldHlwZSddID0gJ0FkZCBOZXcgRmlsZSBUeXBlJzsKJGxhbmdbJ2ZpbGVfdHlwZXMnXSA9ICdGaWxlIFR5cGVzJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnlpZCddID0gJ05vIENhdGVnb3J5IGlkIHdhcyBzdXBwbGllZCc7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3J5J10gPSAnTm8gQ2F0ZWdvcnkgaWQgd2FzIHN1cHBsaWVkJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0EgdGVtcGxhdGUgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZW5hbWUnXSA9ICdUZW1wbGF0ZSBOYW1lJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ0NyZWF0ZSBhIG5ldyB0ZW1wbGF0ZSc7CiRsYW5nWydoZWxwX09uRG93bmxvYWQnXSA9ICcKPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGZpbmlzaGVzIGRvd25sb2FkaW5nIGEgZmlsZTwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+aWQ8L2VtPiAtIFVwbG9hZCBJRDwvbGk+CjxsaT48ZW0+bmFtZTwvZW0+IC0gRmlsZSBuYW1lPC9saT4KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIElQIEFkZHJlc3Mgb2YgdGhlIGRvd25sb2FkZXI8L2xpPgo8L3VsPgonOwokbGFuZ1snaGVscF9PbkRlbGV0ZUNhdGVnb3J5J10gPSAnCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgY2F0ZWdvcnkgaXMgRGVsZXRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+bmFtZTwvZW0+IC0gQ2F0ZWdvcnkgbmFtZTwvbGk+CjxsaT48ZW0+cGF0aDwvZW0+IC0gQ2F0ZWdvcnkgcGF0aDwvbGk+CjwvdWw+Cic7CiRsYW5nWydoZWxwX09uQ3JlYXRlQ2F0ZWdvcnknXSA9ICcKPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBjYXRlZ29yeSBpcyBDcmVhdGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgY2F0ZWdvcnk8L2xpPgo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgY2F0ZWdvcnkgZGVzY3JpcHRpb248L2xpPgo8bGk+PGVtPnBhdGg8L2VtPiAtIFRoZSBjYXRlZ29yeSBwYXRoPC9saT4KPGxpPjxlbT5wYXRoPC9lbT4gLSBBIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY2F0ZWdvcnkgaXMgbGlzdGFibGU8L2xpPgo8L3VsPgonOwokbGFuZ1snaGVscF9PblJlbW92ZSddID0gJwo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGZpbGUgaXMgcmVtb3ZlZCB2aWEgdGhlIGFkbWluIG9yIGZyb250ZW5kIGludGVyZmFjZXM8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSByZW1vdmVkIGZpbGU8L2xpPgo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgaWQgb2YgdGhlIHJlbW92ZWQgZmlsZTwvbGk+CjxsaT48ZW0+Y2F0ZWdvcnlfaWQ8L2VtPiAtIFRoZSBpZCBvZiB0aGUgY2F0ZWdvcnk8L2xpPgo8L3VsPgonOwokbGFuZ1snaGVscF9PblVwbG9hZCddID0gJwo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIG5ldyBmaWxlIGlzIHVwbG9hZGVkIHZpYSB0aGUgYWRtaW4gb3IgZnJvbnRlbmQgaW50ZXJmYWNlczwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Y2F0ZWdvcnk8L2VtPiAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgdXBsb2FkZWQgZmlsZTwvbGk+CjxsaT48ZW0+c2l6ZTwvZW0+IC0gVGhlIHNpemUgb2YgdGhlIHVwbG9hZGVkIGZpbGU8L2xpPgo8bGk+PGVtPnN1bW1hcnk8L2VtPiAtIFRoZSBzaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhlIHVwbG9hZGVkIGZpbGUgKG1heSBiZSBlbXB0eSk8L2VtPjwvbGk+CjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBsb25nIGRlc2NyaXB0aW9uIGZvciB0aGUgdXBsb2FkZWQgZmlsZSAobWF5IGJlIGVtcHR5KTwvZW0+PC9saT4KPGxpPjxlbT5hdXRob3I8L2VtPiAtIFRoZSBhdXRob3Igb2YgdGhlIHVwbG9hZGVkIGZpbGUgKGlmIGF2YWlsYWJsZSk8L2VtPjwvbGk+CjxsaT48ZW0+aXBfYWRkcmVzczwvZW0+IC0gVGhlIGludGVybmV0IGFkZHJlc3Mgb2YgdGhlIGNsaWVudCB0aGF0IHVwbG9hZGVkIHRoZSBmaWxlPC9saT4KPC91bD4KJzsKJGxhbmdbJ2luZm9fZXZlbnRfb25kZWxldGVjYXRlZ29yeSddID0gJ0V2ZW50IGdlbmVyYXRlZCB3aGVuIGEgY2F0ZWdvcnkgaXMgZGVsZXRlZCc7CiRsYW5nWydpbmZvX2V2ZW50X29uY3JlYXRlY2F0ZWdvcnknXSA9ICdFdmVudCBnZW5lcmF0ZWQgd2hlbiBhIGNhdGVnb3J5IGlzIGNyZWF0ZWQnOwokbGFuZ1snaW5mb19ldmVudF9vbmRvd25sb2FkJ10gPSAnRXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBmaWxlIGlzIGRvd25sb2FkZWQnOwokbGFuZ1snaW5mb19ldmVudF9vbnVwbG9hZCddID0gJ0V2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IGZpbGUgaXMgdXBsb2FkZWQnOwokbGFuZ1snaW5mb19ldmVudF9vbnJlbW92ZSddID0gJ0V2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZmlsZSBpcyByZW1vdmVkJzsKJGxhbmdbJ3RpdGxlX3VzZXJ0YWdfb251cGxvYWQnXSA9ICdVc2VyIGRlZmluZWQgdGFnIHRvIGNhbGwgYWZ0ZXIgdXBsb2FkIGlzIGNvbXBsZXRlJzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ21hdGNoZXNmb3VuZCddID0gJ01hdGNoZXMgZm91bmQnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0b251cGxvYWQnXSA9ICdSZWRpcmVjdCB0byBwYWdlIGlkL2FsaWFzIG9uIHVzZXIgdXBsb2FkJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhaWxzJzsKJGxhbmdbJ2NvbmZpcm1fcHJlZmVyZW5jZXMnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gYWRqdXN0IHRoZSBwcmVmZXJlbmNlcz8nOwokbGFuZ1snZXJyb3Jfbm9maWxlc3VwbG9hZGVkJ10gPSAnTm8gZmlsZXMgd2VyZSB1cGxvYWRlZC4nOwokbGFuZ1sncHJvbXB0X3JlcGxhY2UnXSA9ICdBbGxvdyBPdmVyd3JpdGUnOwokbGFuZ1snaW5mb19yZXBsYWNlJ10gPSAnUmVwbGFjZSBhbnkgZmlsZSB3aXRoIHRoZSBzYW1lIG5hbWUgKGRvZXMgbm90IGNoYW5nZSBpZCknOwokbGFuZ1sncGFyYW1fbm9faW5pdGlhbCddID0gJ0RvIG5vdCBkaXNwbGF5IGFueSBpbml0aWFsIHJlc3VsdHMgd2hlbiB0aGUgZmlsdGVyIGlzIG9uJzsKJGxhbmdbJ3BhcmFtX2tleSddID0gJ1Byb3ZpZGUgYW4gYWRkaXRpb25hbCBrZXkgdG8gdGhlIG1vZHVsZSBmb3IgZnVydGhlciBvcmdhbml6aW5nIHVwbG9hZHMuICBUaGlzIGtleSBjb3VsZCBiZSBhbiBlbmNvZGVkIHN0cmluZyBsaWtlOiBcJ2ZldXNlcnM6dWlkXCcsIGV0Yy4gIFRoaXMgcGFyYW1ldGVyIGlzIHVzdWFsbHkgb25seSBuZWVkZWQgd2hlbiBlbWJlZGRpbmcgdGhlIHVwbG9hZHMgbW9kdWxlIGludG8gYW5vdGhlciBtb2R1bGUnOwokbGFuZ1sncGFyYW1fbm9hdXRob3InXSA9ICdIaWRlIHRoZSBhdXRob3IgZmllbGQgZnJvbSB0aGUgdXBsb2FkIGZvcm0uICBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IHZhbGlkIHdoZW4gbW9kZT1cJ3VwbG9hZFwnLiAgSWYgVGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlIGlzIHByZXNlbnQsIGFuZCBhIHVzZXIgaXMgY3VycmVudGx5IGxvZ2dlZCBpbiwgYSBoaWRkZW4gZmllbGQgd2lsbCBob2xkIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJuYW1lJzsKJGxhbmdbJ3BhcmFtX3VwbG9hZF9pZCddID0gJwp1cGxvYWRfaWQ9ImlkIiAtIHNwZWNpZnkgYSBzaW5nbGUgZmlsZSBmb3IgdGhlIHVybC9saW5rIG9yIHNpbmdsZSBtb2RlcyAoYWJvdmUpJzsKJGxhbmdbJ3BhcmFtX3VzZV9zdHJpY3RfcmVnZXhwJ10gPSAnVGhlIGZpbHRlciBmaWVsZCBpcyB1c2VkIGFzIGEgc3RyaWN0IHJlZ2V4cCB3aXRob3V0IHByZXByb2Nlc3Npbmcgb2Ygc3BhY2VzJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVXNlIGEgdGVtcGxhdGUgd2l0aCB0aGlzIG5hbWUgZm9yIHRoZSBkZXRhaWxlZCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3RlbXBsYXRlJ10gPSAnVXNlIGEgdGVtcGxhdGUgd2l0aCB0aGlzIG5hbWUgZm9yIHRoaXMgcmVwb3J0IG9yIGZvcm0uICBUaGUgbW9kZSBpcyB1c2VkIHRvIGRldGVybWluZSB3aGF0IHR5cGUgb2YgdGVtcGxhdGUgaXMgcmVxdWlyZXJkLCBhbmQgdGhlbiBhIG5hbWUgbWF0Y2ggaXMgcGVyZm9ybWVkIHdpdGhpbiB0aGF0IHR5cGUuJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlciddID0gJ0Rpc3BsYXkgdGhlIGZpbHRlcmluZyBmb3JtJzsKJGxhbmdbJ3BhcmFtX25vX2ludGl0aWFsJ10gPSAnT25seSB1c2VmdWwgd2hlbiB0aGUgZmlsdGVyIHBhcmFtZXRlciBpcyBzdXBwbGllZCwgb3Igb24gYnkgZGVmYXVsdCwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdldGhlciBpbml0aWFsIHJlc3VsdHMgc2hvdWxkIGJlIHJldHVybmVkJzsKJGxhbmdbJ3BhcmFtX2ZpbGV0eXBlcyddID0gJ0Rpc3BsYXkgb25seSBmaWxlcyB3aG9zZSB0eXBlIG1hdGNoZXMgdGhpcyBjb21tYSBzZXBhcmF0ZWQgbGlzdCc7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICcKICA8cD5Tb3J0IE9yZGVycwogIDx1bD4KICA8bGk+PGVtPmRhdGVfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBkYXRlPC9saT4KICA8bGk+PGVtPmRhdGVfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIGRhdGU8L2xpPgogIDxsaT48ZW0+bmFtZV9hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIG5hbWU8L2xpPgogIDxsaT48ZW0+bmFtZV9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgbmFtZTwvbGk+CiAgPGxpPjxlbT5zaXplX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgc2l6ZTwvbGk+CiAgPGxpPjxlbT5zaXplX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBzaXplPC9saT4KICA8bGk+PGVtPmRlc2NfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBkZXNjcmlwdGlvbjwvbGk+CiAgPGxpPjxlbT5kZXNjX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBkZXNjcmlwdGlvbjwvbGk+CiAgPGxpPjxlbT5hdXRob3JfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBhdXRob3I8L2xpPgogIDxsaT48ZW0+YXV0aG9yX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBhdXRob3I8L2xpPgogIDxsaT48ZW0+aXBfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBpcCBhZGRyZXNzPC9saT4KICA8bGk+PGVtPmlwX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBpcCBhZGRyZXNzPC9saT4KICA8bGk+PGVtPnJhbmRvbTwvZW0+IC0gUmFuZG9tIHNvcnQgb3JkZXI8L2xpPgogIDwvdWw+CiAgPC9wPic7CiRsYW5nWydwYXJhbV9maWxlZXh0ZW5zaW9ucyddID0gJyAKZmlsZV9leHRlbnNpb25zPSJleHQxLGV4dDIsZXh0MyIKPHA+dmFsaWQgb25seSB3aGVuIG1vZGU9dXBsb2FkLCB0aGlzIHBhcmFtZXRlciBsaW1pdHMgdGhlIHR5cGVzIG9mIGZpbGVzIHRoYXQgY2FuIGJlIHVwbG9hZGVkLiAgSXQgb3ZlcnJpZGVzIGFueSBzZXR0aW5ncyBpbiB0aGUgbW9kdWxlIHByZWZlcmVuY2VzLjwvcD4nOwokbGFuZ1sncGFyYW1fY291bnQnXSA9ICcKY291bnQ9Ik4iCjxwPkEgcGFyYW1ldGVyIHRvIGxpc3Qgb25seSB0aGUgZmlyc3QgTiByZXN1bHRzIG9mIHRoZSBxdWVyeS4gIFBhZ2luYXRpb24gd291bGQgYmUgYmV0dGVyLCBidXQgdGhpcyB3aWxsIGRvIHRoZSB0cmljayBmb3Igbm93PC9wPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJwpjYXRlZ29yeT0ibmFtZSIKPHA+PGI+Tm90ZTo8L2I+IENhdGVnb3J5IGNhbiBiZSAiYWxsIiwgd2hpY2ggd2lsbCBsaXN0IGFsbCBvZiB0aGUgdXBsb2FkcyBmcm9tIGFsbCA8ZW0+bGlzdGFibGU8L2VtPiBjYXRlZ29yaWVzPC9wPic7CiRsYW5nWydwYXJhbV9tb2RlJ10gPSAnCiAgPHVsPgogIDxsaT48ZW0+ZGV0YWlsZWQ8L2VtPiAtIERpc3BsYXkgYSBkZXRhaWxlZCBsaXN0IG9mIGFsbCBmaWxlcyBpbiB0aGUgY2F0ZWdvcnk8L2xpPgogIDxsaT48ZW0+dXBsb2FkPC9lbT4gLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBhIGZyb250ZW5kIHVzZXIgdG8gdXBsb2FkIGEgZmlsZTwvbGk+CiAgPGxpPjxlbT51cmwgPGk+b3I8L2k+IGxpbms8L2VtPiAtIERpc3BsYXkgYSBsaW5rIHRvIGEgZmlsZTwvbGk+CiAgPGxpPjxlbT5zdW1tYXJ5PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyaXplZCBsaXN0IG9mIGFsbCBmaWxlcyBpbiB0aGUgY2F0ZWdvcnk8L2xpPgogIDxsaT48ZW0+c2luZ2xlPC9lbT4gLSBEaXNwbGF5IGEgZGV0YWlsZWQgcmVwb3J0IGFib3V0IGEgc2luZ2xlIHVwbG9hZDwvbGk+CiAgPGxpPjxlbT5zaW5nbGVzdW1tYXJ5PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyaXplZCByZXBvcnQgYWJvdXQgYSBzaW5nbGUgdXBsb2FkL2xpPgogIDwvdWw+JzsKCiRsYW5nWydyZXR1cm50b21vZHVsZSddID0gJ1JldHVybiB0byBtb2R1bGUgcGFuZWwnOwokbGFuZ1snZXJyb3Jfbm9jYXRlZ29yaWVzJ10gPSAnVGhlcmUgYXJlIG5vIGRlZmluZWQgY2F0ZWdvcmllcyc7CiRsYW5nWyd0aXRsZV9lbmZvcmNlZXh0ZW5zaW9ucyddID0gJ1JlcXVpcmUgZXh0ZW5zaW9ucyBvbiBhbGwgdXBsb2FkZWQgZmlsZXMnOwokbGFuZ1sncmVzdG9yZWRlZmF1bHRzY29uZmlybSddID0gJ1RoaXMgb3BlcmF0aW9uIHdpbGwgcmVzdG9yZSB0aGUgdGVtcGxhdGUgdG8gc3lzdGVtIGRlZmF1bHRzLiAgQW55IGNoYW5nZXMgeW91IGhhdmUgbWFkZSB3aWxsIGJlIGxvc3QuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8nOwokbGFuZ1snaW5mb190aHVtYm5haWwnXSA9ICdBbiBvcHRpb25hbCB0aHVtYm5haWwgZmlsZSc7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdUaHVtYm5haWwnOwokbGFuZ1snaW5mb19zdW1tYXJ5J10gPSAnQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZmlsZSAoaWYgZW1wdHksIHRoZSBmaWxlIG5hbWUgaXMgdXNlZCB3aXRob3V0IHRoZSBleHRlbnNpb24pJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnluYW1lJ10gPSAnQSBicmllZiBuYW1lIGZvciB5b3VyIGNhdGVnb3J5IChodW1hbiByZWFkYWJsZSknOwokbGFuZ1snaW5mb19jYXRlZ29yeWRlc2MnXSA9ICdBIGRlc2NyaXB0aW9uIGZvciB5b3VyIGNhdGVnb3J5JzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnlwYXRoJ10gPSAnVGhlIGRpcmVjdG9yeSBuYW1lIGluc2lkZSB0aGUgdXBsb2FkcyBkaXJlY3RvcnkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc3RvcmUgZmlsZXMgaW4gdGhpcyBjYXRlZ29yeS4gIElmIHRoZSBkaXJlY3Rvcnkgb2YgdGhpcyBuYW1lIGRvZXMgbm90IGFscmVhZHkgZXhpc3QsIGl0IG1heSBiZSBjcmVhdGVkJzsKJGxhbmdbJ2luZm9fZGVzdG5hbWUnXSA9ICdVc2UgdGhlIFwnVXBsb2FkIEFzXCcgZmllbGQgdG8gY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBmaWxlIG9uIHVwbG9hZC4gIExlYXZlIGJsYW5rIHRvIHByZXNlcnZlIHRoZSBmaWxlbmFtZSBhcy1pcy4nOwokbGFuZ1snZXJyb3JfY2FudGNyZWF0ZWRpcmVjdG9yeSddID0gJ0NvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5JzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnVGhlIENNU01haWxlciBtb2R1bGUgY291bGQgbm90IGJlIGluc3RhbnRpYXRlZCc7CiRsYW5nWyd1cGxvYWRfbm90aWZpY2F0aW9uJ10gPSAnQSBuZXcgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9vbl91cGxvYWQnXSA9ICdTZW5kIHVwbG9hZCBub3RpZmljYXRpb24gdG86JzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZHVtbXlfaW5kZXhfaHRtbCddID0gJ0NyZWF0ZSBkdW1teSBpbmRleC5odG1sIGZpbGVzIGluIGVhY2ggZGlyZWN0b3J5Pzxici8+PGVtPkFueSBleGlzdGluZyBpbmRleC5odG1sIGZpbGVzIHdpbGwgcmVtYWluPC9lbT4nOwokbGFuZ1snYWJvdXQnXSA9ICdBYm91dCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90d3JpdGUnXSA9ICdDb3VsZCBub3Qgd3JpdGUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZGQgQ2F0ZWdvcnknOwokbGFuZ1snYWxsJ10gPSAnQWxsJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgWW91IFN1cmU/JzsKJGxhbmdbJ2F1dGhvciddID0gJ0F1dGhvcic7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY2Fubm90bW9kaWZ5cGF0aCddID0gJyhUaGUgcGF0aCBjYW5ub3QgYmUgbW9kaWZpZWQpJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcnknOwokbGFuZ1snbWVzc2FnZV9jYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcnkgc3VjY2Vzc2Z1bGx5IGFkZGVkJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4KPGxpPgo8cD5WZXJzaW9uIDEuMC4gLSBTZXB0ZW1iZXIgMjAwNS48L3A+CjxwPiBJbml0aWFsIFJlbGVhc2UuPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4wMS4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4KPHA+TWlub3IgZml4ZXMuPC9wPjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjAyLiAtIFNlcHRlbWJlciAyMDA1PC9wPgo8cD5BZGRlZCBhYmlsaXR5IHRvIHNwZWNpZnkgc29ydCBvcmRlcjwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMDMuIC0gU2VwdGVtYmVyIDIwMDU8L3A+CjxwPkZpeCByZWdhcmRpbmcgY29uZmxpY3QgaW4gdGVtcGxhdGUgbmFtZXM8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjA0LiAtIFNlcHRlbWJlciAyMDA1PC9wPgo8cD5BZGRlZCBhYmlsaXR5IHRvIHJlLXNjYW4gYSBkaXJlY3RvcnksIGFuZCB0byB1cGxvYWQgZmlsZXMgZnJvbSB0aGUgYWRtaW4gcGFnZTwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMDUuIC0gU2VwdGVtYmVyIDIwMDU8L3A+CjxwPkZpeGVkIHNvbWUgUEhQIHZhcmlhYmxlIGlzc3VlczwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMDYuIC0gU2VwdGVtYmVyIDIwMDU8L3A+CjxwPkFkZGVkIGF1dGhvciBmaWVsZCB0byB0aGUgYWRtaW4gcGFuZWwgdXBsb2FkIGZvcm0sIGFkZGVkIGEgc3VtbWFyeSBmaWVsZCwgYW5kIG1hZGUgZGVzY3JpcHRpb24gYSB0ZXh0IGFyZWEsIGFuZCBhbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5IGEgZGVzdGluYXRpb24gZmlsZSBuYW1lPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4wNy4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4KPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gcmVuYW1lIGZpbGVzIGFuZCBmaXhlZCBhIHNjYW4gZXJyb3I8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjA4LiAtIFNlcHRlbWJlciAyMDA1PC9wPgo8cD5CZXR0ZXIgaGFuZGxpbmcgb2YgbmFtZXMgd2l0aCBzcGFjZXMsIGFuZCBhIGZldyBtaW5vciBlcnJvcnMgZml4ZWQuICBBZGRlZCBzd2VkaXNoIHRyYW5zbGF0aW9uICh0aGFua3Mgd2VzdGlzKTwvcD48L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjAuIC0gT2N0b2JlciAyMDA1PC9wPgogPHVsPgogICA8bGk+TW9kaWZpZWQgQXR0ZW1wdFVwbG9hZCBmdW5jdGlvbiBzbyBpdCBjb3VsZCBiZSBjYWxsZWQgZXh0ZXJuYWxseTwvbGk+CiAgIDxsaT5BZGRlZCBHZXRVcGxvYWREZXRhaWxzIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbGwgb2YgdGhlIGRldGFpbHMgYWJvdXQgYSBtb2R1bGUsIGluY2x1ZGluZyBhIGxpbms8L2xpPgogICA8bGk+QWRkZWQgUmVkaXJlY3RzIHNvIHRoYXQgd29ya2luZyB3aXRoIHRoZSBtb2R1bGUgaXMgYWxvdCBuaWNlciwgaXQgcmV0dXJucyB0byB0aGUgcmlnaHQgdGFiPC9saT4KICAgPGxpPkNoYW5nZWQgdGhlIGZyb250IHRlbXBsYXRlIHRvIGxvb2sgYSBsaXR0bGUgYmV0dGVyIGFuZCBtYWtlIG1vcmUgc2Vuc2U8L2xpPgogICA8bGk+Rml4ZXMgdG8gdGhlIHVwbG9hZHMgc3R1ZmYgc28gdGhhdCB0aGUgZGVzY3JpcHRpb24gaXMgc2V0LCBhbmQgbmFtZSBhbmQgc3VtbWFyeSBhcmUgcHV0IGluIHRoZSByaWdodCBwbGFjZTwvbGk+CiAgIDxsaT5GaXhlcyB0byBldmVuIGJldHRlciBoYW5kbGUgc3BhY2VzIGluIG5hbWVzPC9saT4KICAgPGxpPk9wdGlvbmFseSBwbGFjZSBkdW1teSBpbmRleC5odG1sIGZpbGVzIGluIGVhY2ggdXBsb2FkIGRpcmVjdG9yeTwvbGk+CiAgIDxsaT5JZiBzcGVjaWZ5aW5nIGEgZGVzdGluYXRpb24gbmFtZSwgYW5kIG5vIGV4dGVuc2lvbiBpcyBnaXZlbiwgdGhlIGV4dGVuc2lvbiBvZiB0aGUgb3JpZ2luYXRpbmcgZmlsZSAoaWYgYW55IGV4aXN0cyBpcyB1c2VkPC9saT4KIDwvdWw+CiA8cD48ZW0+PGI+SW1wb3J0YW50ITwvYj48L2VtPjxici8+SXQgaXMgbm90IHBvc3NpYmxlIHRvIHVwZ3JhZGUgZnJvbSBhbnkgb3RoZXIgdmVyc2lvbiBvZiB0aGUgVXBsb2FkcyBtb2R1bGUgdG8gMS4xLjAuICBUaGlzIGlzIGR1ZSB0byBzb21lIGVycm9ycyB0aGF0IHdlcmUgbWFkZSBpbiB0aGUgZGF0YWJhc2Ugcm91dGluZXMsIGFuZCBldmVuIGluIHRoZSB1cGdyYWRlIHJvdXRpbmUgaW4gMS4wLjYuICBZb3UgbXVzdCBkZS1pbnN0YWxsIHRoZSBvbGQgdmVyc2lvbiwgYW5kIHRoZW4gcmUtaW5zdGFsbCB0aGUgbmV3IHZlcmVzaW9uLiBUaGlzIHdpbGwgY2F1c2Ugc2lnbmlmaWNhbnQgZGlmZmljdWx0eSBpZiB5b3UgaGF2ZSBkc2NyaXB0aW9ucywgZXRjLCBpbiB5b3VyIHRhYmxlczwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMS4xLiAtIE9jdG9iZXIsIDIwMDU8L3A+CjxwPkZpeGVkIGEgY291cGxlIG9mIG1pbm9yIGJ1Z3MgaW4gdGhlIEdldFVwbG9hZERldGFpbHMgYW5kIGFkZGVkIGFub3RoZXIgbGluayAob3IgYSB1cmwpIHRvIHRoZSB1cGxvYWRlZCBmaWxlLjwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMS4yLiAtIE9jdG9iZXIsIDIwMDU8L3A+CjxwPkZpeGVkIHRoZSBVUkwgZmllbGQgaW4gR2V0VXBsb2FkRGV0YWlscyB0byByZXR1cm4gYSBkb3dubG9hZCBsaW5rIGFuZCBhZGRlZCBhbiBhYnN1cmwgZmllbGQgd2hpY2ggcmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZSBvbiB0aGUgd2Vic2VydmVyLiAgQ2xpY2tzIG9uIHRoaXMgbGluayB3aWxsIG5vdCBiZSBjb3VudGVkPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjMuIC0gT2N0b2JlciwgMjAwNTwvcD4KPHA+Rml4ZWQgdGhlIHVwZ3JhZGUgcHJvYmxlbSBmcm9tIHRoZSAxLjAueCBzZXJpZXMuICBVc2VycyBvZiB0aGUgMS4wLnggc2VyaWVzIHNob3VsZCBiZSBhYmxlIHRvIHVwZ3JhZGUgdG8gMS4xLjMgbm93IHdpdGggbm8gZGlmZmljdWx0eS4gPGI+VGhvc2UgYXJlIGZhbW91cyBsYXN0IHdvcmRzLCBwbGVhc2UgYmFja3VwIGZpcnN0PC9iPi4gRml4ZWQgdGhlIGNvbnRlbnQgcmVkaXJlY3QgdGhpbmdzIHRoYXQgd2VyZSBpcnJpdGF0aW5nIG1lLiAgQWxzbyBhZGRlZCBjYXRlZ29yeT1hbGwgdG8gbGlzdCBhbGwgb2YgdGhlIHVwbG9hZHMgaW4gYWxsIGxpc3RhYmxlIGNhdGVnb3JpZXMgPGVtPihsZXRzIGFsbCBob3BlIEkgZ290IHRoZSBzcWwgZmlndXJlZCBvdXQgcHJvcGVybHkpPC9lbT4uPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjQuIC0gT2N0b2JlciwgMjAwNTwvcD4KPHA+QWRkZWQgdGhlIGNvdW50IHBhcmFtZXRlciB0byBsaXN0IG9ubHkgdGhlIGZpcnN0IE4gcmVjb3JkcywgYW5kIGFkZGVkICJzdW1tYXJ5bGluayIsIGFuZCAiY2F0ZWdvcnkiIHRvIHRoZSB0ZW1wbGF0ZXMgZm9yIHdlc3Rpcy4gIEZvciBleGFtcGxlcyBvbiBob3cgdG8gdXNlIHRoZW0gcmVzZXQgeW91ciB0ZW1wbGF0ZXMgYmFjayB0byBkZWZhdWx0LjwvcD48L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjUuIC0gTm92ZW1iZXIsIDIwMDU8L3A+CjxwPkFkZGVkIGVtYWlsIG5vdGlmaWNhdGlvbiBhbmQgc29tZSBidWcgZml4ZXM8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuNi4gLSBOb3ZlbWJlciwgMjAwNTwvcD4KPHA+QWRkZWQgYW4gYXBpIGZ1bmN0aW9uIGFuZCBmaXhlZCBzb21lIHJlZGlyZWN0aW9uIHN0dWZmPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjcuIC0gTm92ZW1iZXIsIDIwMDU8L3A+CjxwPk1vcmUgQVBJIGZ1bmN0aW9ucywgYW5kIG5vdyBpZ25vcmUgZG90IGZpbGVzIHdoZW4gc2Nhbm5pbmcuICBFbWFpbCBub3RpZmljYXRpb24gaXMgbm93IGluLjwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMS44LiAtIEphbnVhcnksIDIwMDY8L3A+CjxwPiogSW1wcm92ZWQgZG9jcyB3cnQgYXBhY2hlIGFuZCBwaHAgY29uZmlncy48L3A+CjxwPiogRml4ZWQgcHJvYmxlbSB3aGVyZSBmaWxlc2l6ZSB3YXMgc2hvd2luZyB1cCBhcyAwLjwvcD4KPHA+KiBNb2RpZmllZCBwZXJtaXNzaW9ucyB0byBiZSBtb3JlIGdyYW51bGFyPC9wPgo8cD4qIEFkZGVkIHNvbWUgY29tbWVudHMgYW5kIHZlcmJvc2l0eSB0byB0aGUgY2F0ZWdvcnkgYW5kIHVwbG9hZHMgZm9ybXMgaW4gdGhlIGFkbWluIHNlY3Rpb248L3A+CjxwPiogQWRkZWQgInJhbmRvbSIgc29ydCBvcmRlcjwvcD4KPHA+KiBTb21lIFBIUDUgZml4ZXM8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuOS4gLSBKYW51YXJ5LCAyMDA2PC9wPgo8cD4qIEFkZGVkIHRoZSBhYmlsaXR5IHRvIHVwbG9hZCBhIHRodW1ibmFpbCBpbWFnZTwvcD4KPHA+KiBTb21lIGltcHJvdmVkIGF1ZGl0aW5nPC9wPgo8cD4qIHhtbCBub3cgYWRkZWQgdG8gdGhlIGRlZmF1bHQgZmlsZSB0eXBlcyAobmV3IGluc3RhbGxzIG9ubHkpPC9wPgo8cD4qIEFkZGVkIGEgY29uZmlybWF0aW9uIG1lc3NhZ2UgdG8gdGhlIHJlc2V0IHRvIGRlZmF1bHRzIGJ1dHRvbnMgb2YgdGhlIHRlbXBsYXRlIHBhZ2VzLjwvcD4KPHA+KiBBZGRlZCB0aGUgZmlsZV9leHRlbnNpb25zIHBhcmFtZXRlciBmb3IgdGhlIHVwbG9hZCBmb3JtPC9wPgo8cD4qIFRoZSBjdXJyZW50IGNhdGVnb3J5IHNlbGVjdGVkIGluIHRoZSBmaWxlcyBmaWx0ZXIgaXMgc3RpY2t5Lgo8cD4qIEFkZGVkIGEgcHJlZmVyZW5jZSB0byBlbmZvcmljZSBmaWxlbmFtZSBleHRlbnNpb25zIChkZWZhdWx0cyB0byBvbik8L3A+CjxwPiogQWRkZWQgYSBsaW5rIHRvIHRoZSBlZGl0IHBhZ2UsIGluIHRoZSBuYW1lIGNvbHVtbiBvZiB0aGUgZmlsZXMgbGlzdC48L3A+CjxwPiogTWlub3IgY2hhbmdlcyB0byB0aGUgbGF5b3V0IGFuZCB0ZXh0IHRvIGFkZCBjbGFyaXR5LjwvcD4KPHA+KiBBZGRlZCBkb3dubG9hZF91cmwgYXMgYW4gYXZhaWxhYmxlIHNtYXJ0eSB0YWcgaW4gdGhlIHRlbXBsYXRlczwvcD4KPGxpPgo8cD5WZXJzaW9uIDEuMS4xMC4gLSBGZWJydWFyeSwgMjAwNjwvcD4KPHA+KiBTdW1tYXJ5IG5vdyBkZWZhdWx0cyB0byB0aGUgZmlsZW5hbWUgKHdpdGhvdXQgdGhlIGV4dGVuc2lvbikgaWYgbm9uZSBpcyBzcGVjaWZpZWQ8L3A+CjxwPiogTm93IGNvcnJlY3RseSBoYW5kbGUgaWYgdGhlIHRodW1ibmFpbCBleHRlbnNpb24gaXMgbm90IGluIHRoZSBhY2NlcHRlZCBleHRlbnNpb24gbGlzdDwvcD4KPHA+KiBObyBsb25nZXIgZGlzcGxheSBhbnkgY29udGVudCBpbiB0aGUgZmlsZXMgdGFiIGlmIHRoZXJlIGFyZSBubyBjYXRlZ29yaWVzIGRlZmluZWQ8L3A+CjxwPiogRGlzcGxheSBhIGxpbmsgaW4gdGhlIGVycm9yIHBhZ2UgdGhhdCB0YWtlcyB5b3UgYmFjayB0byB0aGUgbWFpbiBhZG1pbiBwYW5lbDwvcD4KPHA+KiBBbGxvdyBmb3IgcmVwbGFjaW5nIG9mIHVwbG9hZGVkIGZpbGVzPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjExLiAtIE1hcmNoLCAyMDA2PC9wPgo8cD5BZGRlZCB0aGUgYWJpbGl0eSBmb3IgYSBsaW5rIHRvIGEgZGV0YWlsZWQgcGFnZSB3aGVuIGluIHN1bW1hcnkgbW9kZS48L3A+CjxwPlNwbGl0IHRoZSBkZWZhdWx0IGFjdGlvbiBhbmQgZGVmYXVsdGFkbWluIGFjdGlvbnMgaW50byBzZXBhcmF0ZSBmaWxlcywgZm9yIGEgYml0IG9mIG1lbW9yeSBpbXByb3ZlbWVudCwgaG9wZWZ1bGx5PC9wPgo8cD5BZGQgdGhlIGFiaWxpdHkgdG8gcmVkaXJlY3QgdG8gYW5vdGhlciBwYWdlIGFmdGVyIGEgZnJvbnRlbmQgdXNlciB1cGxvYWRlZCBhIGZpbGU8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjEuMTIuIC0gTWFyY2gsIDIwMDY8L3A+CjxwPkFkZGVkIHRoZSBzaW5nbGVzdW1tYXJ5IG1vZGUgdG8gZGlzcGxheSBhIHNpbmdsZSB1cGxvYWQgaW4gc3VtbWFyeSBtb2RlPC9QPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4xLjEzLiAtIEFwcmlsLCAyMDA2PC9wPgo8cD5BZGRlZCBvcHRpb25hbCBmaWx0ZXJpbmcgb24gdGhlIGZyb250ZW5kLCBhbmQgYSBjb3VwbGUgb2YgZXh0cmEgcGFyYW1ldGVycyB0byBnbyB3aXRoIGl0PC9wPgo8cD5GaXhlZCBhIHByb2JsZW0gd2hlcmUgaXQgd291bGQgYWxsb3cgeW91IHRvIGVudGVyIGEgYmxhbmsgcGF0aCB3aGVuIGNyZWF0aW5nIGEgY2F0ZWdvcnk8L3A+CjxwPlNwbGl0IHN0dWZmIGludG8gKHNvbWUpIHNlcGFyYXRlIGFjdGlvbiBmaWxlcyBmb3Igc29tZSBob3BlZnVsIHBlcmZvcm1hbmNlIGluY3JlYXNlczwvcD4KPHA+QWRkZWQgY29weXJpZ2h0IG5vdGljZXM8L3A+CjxwPkNoYW5nZWQgKG9wdGlvbmFsKSBkZXBlbmRlbmN5IGZyb20gVXNlcklEIHRvIEZyb250RW5kVXNlcnMgTW9kdWxlLjwvcD4KPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMi4xIC0gQXByaWwsIDIwMDY8L3A+CjxwPkNoYW5nZWQgX3NjYW5EaXJlY3RvcnkgdG8gYW4gQVBJIGZ1bmN0aW9uIFNjYW5EaXJlY3RvcnkgYW5kIHRoZW4gYWRkZWQgU21hcnRTY2FuRGlyZWN0b3J5IHRvIHNjYW4gdGhlIGRpcmVjdG9yeSBiZWZvcmUgZGlzcGxheWluZyB0aGUgc3VtbWFyeSBvciBkZXRhaWwgbGlzdGluZyB0byBoYW5kbGUgdGhlCmNhc2Ugd2hlcmUgc29tZWJvZHkgdXBsb2FkZWQgZmlsZXMgdmlhIEZUUCBvciBzb21ldGhpbmcgYW5kIGRpZCBub3QgZ28gaW50byB0aGUgYWRtaW4gc2VjdGlvbiB0byB1cGRhdGUgdGhlIGNhdGVnb3JpZXMuPC9wPgo8cD5Db3JyZWN0aW9uIHRvIGFsbCBkYiBhY2Nlc3Mgc3R1ZmYuIEhvcGVmdWxseSBwcm92aWRlcyBhIHBlcmZvcm1hbmNlIGluY3JlYXNlLjwvcD4KPHA+Rml4ZXMgdG8gdGhlIGFib3V0IHN0dWZmLCBub3cgdXNlIENyZWF0ZVBhcmFtZXRlcjwvcD4KPHA+QWRkZWQgdGhlIHVwbG9hZF90ZW1wbGF0ZSwgc3VtbWFyeV90ZW1wbGF0ZSwgYW5kIGRldGFpbF90ZW1wbGF0ZSAob3B0aW9uYWwpIHBhcmFtZXRlcjwvcD4KPHA+QWRkZWQgdGhlIG5vYXV0aG9yIHBhcmFtZXRlciwgYW5kIHRoZSBrZXkgcGFyYW1ldGVyLiAgVGhlIGtleSBwYXJhbWV0ZXIgYWxsb3dzIHRoZSB1cGxvYWRzIG1vZHVsZSB0byBiZSBlbWJlZGRlZCBpbnRvIG90aGVyIG1vZHVsZXM8L3A+CjxwPk1vdmVkIHRvIHVuZGVyIHRoZSBjb250ZW50IG1lbnUsIGFuZCBlbnRpdGxlZCBcJ0ZpbGVzIChVcGxvYWQgTW9kdWxlKVwnPC9wPjsKPC9saT4KPGxpPgo8cD5WZXJzaW9uIDEuMi4yIC0gSnVuZSwgMjAwNgo8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIG11bHRpcGxlIGRhdGFiYXNlIHRlbXBsYXRlcywgYW5kIHRvIHNlbGVjdCBvbmUgb24gdGhlIHRhZyB3aXRoIHRoZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIuPC9wPgo8cD5GaXhlZCBhbiBpc3N1ZSB3aGVyZSBmaWxlcyB3ZXJlIGdldHRpbmcgY29ycnVwdGVkIG9uIGRvd25sb2FkPC9wPgo8L2xpPgo8bGk+CjxwPlZlcnNpb24gMS4yLjMgLSBKdW5lLCAyMDA2CjxwPkZpeGVzIHRvIHVzZSBhZG9kYi1saXRlIHByb3BlciwgcmF0aGVyIHRoYW4gdGVkcyBoYWNrPC9wPgo8cD5EZXRhaWwgbGluayBub3cgZGlzcGxheXMgaW5saW5lPC9wPgo8cD5PdGhlciBtaW5vciB0d2Vha3MgdGhhdCBJIGNhbnQgcmVtZW1iZXI8L3A+CjwvbGk+CjxsaT4KPHA+VmVyc2lvbiAxLjMuMCAtIEZlYnJ1YXJ5LCAyMDA3CjxwPkZpeGVzIHRvIHRoZSBEVCBmaWVsZCB0eXBlPC9wPgo8cD5Vc2UgdGhlIEZFVSB1c2VybmFtZSAob3B0aW9uYWxseSkgc28gdGhhdCB3ZSBjYW4gdHJhY2sgd2hlbiBhIGxvZ2dlZCBpbiB1c2VyIHVwbG9hZHMgYSBmaWxlPC9wPgo8cD5BZGQgZmlsZXR5cGUgY2FwYWJpbGl0aWVzIHRvIGFzc29jaWF0ZSBhbiBpY29uIHdpdGggYSBwYXJ0aWN1bGFyIHVwbG9hZC4gIEFsc28gc3VwcG9ydCBhbiB1bmtub3duIGZpbGUgdHlwZSBmb3IgYW55dGhpbmcgdGhhdCBkb2VzIG5vdCBtYXRjaC48L3A+CjxwPkNvbXBsZXRlbHkgcmUtd29ya2VkIHRoZSBtdWx0aXBsZSBkYXRhYmFzZSB0ZW1wbGF0ZSBzdHVmZi48L3A+CjxwPkFkanVzdG1lbnRzIHRvIHRoZSBkZWZhdWx0IHRlbXBsYXRlczwvcD4KPHA+Rml4ZXMgdG8gdXNpbmcgY2F0ZWdvcnk9ImFsbCI8L3A+CjxwPkdlbmVyYXRlIHRodW1ibmFpbHMgYXV0b21hdGljYWxseSAob3B0aW9uYWxseSkgZm9yIGNlcnRhaW4gZmlsZSB0eXBlcywgb24gdXBsb2FkLCBhbmQgb24gc2Nhbi48L3A+CjxwPkFkZCBjYXB0Y2hhIHN1cHBvcnQgdG8gdGhlIHVwbG9hZCBmb3JtPC9wPgo8L2xpPgo8L3VsPic7CiRsYW5nWydkYXRlJ10gPSAnRGF0ZSc7CiRsYW5nWydkYXRldXBsb2FkZWQnXSA9ICdEYXRlIFVwbG9hZGVkJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdEZWZhdWx0cyc7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydkZXN0bmFtZSddID0gJ1VwbG9hZCBBcyc7CiRsYW5nWydkZXRhaWxfdGVtcGxhdGUnXSA9ICdEZXRhaWwgVGVtcGxhdGVzJzsKJGxhbmdbJ2Rvd25sb2FkZWQnXSA9ICdGaWxlICVzIHdhcyBkb3dubG9hZGVkLic7CiRsYW5nWydkb3dubG9hZHMnXSA9ICdEb3dubG9hZHMnOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7CiRsYW5nWydlZGl0dXBsb2FkJ10gPSAnRWRpdCBVcGxvYWQnOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1snZXJyb3JfcGF0aGludXNlJ10gPSAnQSBjYXRlZ29yeSB1c2luZyB0aGF0IHBhdGggYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdFcnJvcjogQ2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3RlbXB0eSddID0gJ0Vycm9yISBDYW5ub3QgZGVsZXRlIGEgY2F0ZWdvcnkgdGhhdCBpcyBub3QgZW1wdHknOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3Rmb3VuZCddID0gJ0Vycm9yOiBDYXRlZ29yeSBub3QgZm91bmQhJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcnJvcjogRGF0YWJhc2UgZXJyb3IhJzsKJGxhbmdbJ2Vycm9yX2VtcHR5Y2F0ZWdvcnknXSA9ICdFcnJvcjogRW1wdHkgQ2F0ZWdvcnkhJzsKJGxhbmdbJ2Vycm9yX2VtcHR5cGF0aCddID0gJ0Vycm9yOiBFbXB0eSBQYXRoISc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnRXJyb3IhIEZpbGUgJXMgYWxyZWFkeSBleGlzdHMuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0Vycm9yISBGaWxlICVzIHdhcyBub3QgZm91bmQuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0Vycm9yOiBJbnN1ZmZpY2llbnQgcGFyYW1ldGVycyBzdXBwbGllZCB0byBtb2R1bGUhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRhdXRob3InXSA9ICdFcnJvcjogSW52YWxpZCAob3IgZW1wdHkpIGF1dGhvci4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNhdGVnb3J5J10gPSAnRXJyb3I6IEludmFsaWQgKG9yIGVtcHR5KSBjYXRlZ29yeS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGRlc2NyaXB0aW9uJ10gPSAnRXJyb3I6IEludmFsaWQgKG9yIGVtcHR5KSBkZXNjcmlwdGlvbi4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGUnXSA9ICdFcnJvcjogSW52YWxpZCAob3IgZW1wdHkpIGZpbGVuYW1lLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXBsb2FkZmlsZW5hbWUnXSA9ICdFcnJvcjogRmlsZXMgd2l0aCB0aGF0IG5hbWUgKHByb2JhYmx5IGV4dGVuc2lvbikgYXJlIG5vdCBhbGxvd2VkICglcykuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cGxvYWRpZCddID0gJ0Vycm9yOiBJbnZhbGlkIHVwbG9hZCBpZCc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzJ10gPSAnRXJyb3I6IE5vIE1hdGNoaW5nIEZpbGVzISc7CiRsYW5nWydmaWxlcyddID0gJ0ZpbGVzJzsKJGxhbmdbJ2ZpeG1lJ10gPSAnRml4IFNwYWNlcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGaWxlcyAoVXBsb2FkcyBNb2R1bGUpJzsKJGxhbmdbJ2hlbHAnXSA9ICcKPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPkl0IGlzIGEgbW9kdWxlIGZvciBhbGxvd2luZyBwZW9wbGUgdG8gdXBsb2FkIGFuZCBkb3dubG9hZCBmaWxlcyB0byBhbmQgZnJvbSB5b3VyIHNpdGUuICBJdCBrZWVwcyB0cmFjayBvZiB3aG8gdXBsb2FkZWQgYSBmaWxlLCBhbmQgd2hvIGhhcyBkb3dubG9hZGVkIGl0LiAgQXMgd2VsbCwgeW91IGNhbiBzb3J0IGZpbGVzIGludG8gY2F0ZWdvcmllcywgYW5kIG1hbmFnZSB0aGUgZmlsZXMgdGhhdCB3ZXJlIHVwbG9hZGVkIGxpa2UgZXZlcnkgYWRtaW5pc3RyYXRvciB3b3VsZCBkbzwvcD4gCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgo8cD5UbyB1c2UgdGhpcyBtb2R1bGUsIHRvIGFsbG93IHVzZXJzIHRvIHVwbG9hZCBmaWxlcyB0byB5b3VyIHNpdGUsIHlvdSBzaG91bGQgaW5zdGFsbCB0aGUgbW9kdWxlLCBhbmQgdGhlbiBjcmVhdGUgb25lIG9yIG1vcmUgY2F0ZWdvcmllcyAoYS5rLmEpIGRpcmVjdG9yaWVzIGZvciB0aGUgdXBsb2FkZWQgZmlsZXMgdG8gZ28gaW50by4gVGhlbiBhZGQgYSB0YWcgaW50byBhIHBhZ2Ugb3IgdGVtcGxhdGUgc29tZXdoZXJlIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSJVcGxvYWRzIiBjYXRlZ29yeT0ic29tZWNhdGVnb3J5IiBtb2RlPSJzb21lbW9kZSJ9LiAgV2hlcmUgbW9kZSBtYXRjaGVzIG9uZSBvZiB0aGUgbW9kZXMgbGlzdGVkIGJlbG93LiAgVGhlIG91dHB1dCB3aWxsIGRpZmZlciBkZXBlbmRpbmcgdXBvbiB3aGljaCBtb2RlIHlvdSBzZWxlY3QuPC9wPgo8cD5UaGlzIG1vZHVsZSBjYW4gdXNlIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSAob3B0aW9uYWwpIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCBhbnkgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VycyB0byBwYXJ0bHkgZmlsbCBpbiB0aGUgZm9ybSB3aGVuIHVwbG9hZGluZyBmaWxlczs8L3A+CjxoMz5QZXJtaXNzaW9uczwvaDM+Cjx1bD4KPGxpPjxlbT5NYW5hZ2UgVXBsb2FkczwvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIG1hbmFnZSBjYXRlZ29yaWVzLCBhbmQgdGhlIGZpbGVzIHdpdGhpbiB0aGVtLjwvbGk+CjxsaT48ZW0+TW9kaWZ5IFRlbXBsYXRlczwvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIGVkaXQgYW55IG9mIHRoZSB0ZW1wbGF0ZXMuPC9saT4KPGxpPjxlbT5Nb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcy9lbT4gcGVybWlzc2lvbiBpcyBuZWVkZWQgYW55IG9mIHRoZSBmaWxlIHNldHRpbmdzLjwvbGk+CjwvdWw+CjxoMz5FbWFpbGluZzwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIGNhcGFibGUgb2Ygc2VuZGluZyBhbiBlbWFpbCB3aGVuZXZlciBhIGZpbGUgaXMgdXBsb2FkZWQsIHNlZSB0aGUgcHJlZmVyZW5jZXMgdGFiLiAgSG93ZXZlciwgdG8gZG8gdGhpcyB0aGUgPGI+Q01TTWFpbGVyPC9iPiBwYWNrYWdlIG11c3QgYmUgaW5zdGFsbGVkIGFuZCBjb25maWd1cmVkLiAgVGhpcyBpcyBhbiA8ZW0+b3B0aW9uYWw8L2VtPiBzdGVwLCBhbmQgaWYgdGhlIENNU01haWxlciBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCwgbm90aGluZyB3aWxsIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciwgb25seSBhIGxvZyBtZXNzYWdlIHdpbGwgYmUgcGxhY2VkIGludG8gdGhlIGFkbWluIGxvZzwvcD4KPGgzPlN5c3RlbSBTZXR0aW5nczwvaDM+CjxwPjxiPk5vdGU6PC9iPiBUaGlzIG1vZHVsZSBkb2VzIG5vdCBieXBhc3Mgb3IgZ2V0IHBhc3QgYW55IGZpbGUgc2l6ZSBsaW1pdGF0aW9ucyBpbiBwaHAuICBJdCB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZW0uICBUaGVyZWZvcmUgeW91IG1heSBuZWVkIHRvIG1vZGlmeSB5b3VyIHBocC5pbmkgZmlsZSBhbmQvb3IgeW91ciBodHRwZC5jb25mIGZpbGUocykgdG8gYWxsb3cgeW91IHRvIHVwbG9hZCBmaWxlcyBhcyBsYXJnZSBhcyB3aGF0IHlvdSBoYXZlIHNldCBpbiB0aGUgdXBsb2FkcyBtb2R1bGUgcHJlZmVyZW5jZXMuPC9wPgo8aDM+QXBhY2hlIE5vdGVzPC9oMz4KPHA+SW4gb3JkZXIgdG8gYWxsb3cgbGFyZ2UgZmlsZSB1cGxvYWRzLCB5b3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBpbiB5b3VyIHBocC5pbmkgIEluIGFkZGl0aW9uLCB0aGUgTGltaXRSZXF1ZXN0Qm9keSBwYXJhbWV0ZXIgaW4geW91ciBhcGFjaGUgY29uZmlndXJhdGlvbiwgbWF5IG5lZWQgdG8gYmUgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhlIHVwbG9hZF9tYXhfZmlsZXNpemUgcGFyYW1ldGVyPC9wPgo8cD5Ob3RlOiAgdGhlIHVwbG9hZF9tYXhfZmlsZXNpemUgcGFyYW1ldGVyIGNhbiBiZSBzcGVjaWZpZWQgaW4gYnl0ZXMsIGtpbG9ieXRlcywgb3IgbWVnYWJ5dGVzLCBob3dldmVyIHRoZSBMaW1pdFJlcXVldEJvZHkgcGFyYW1ldGVyIGlzIG9ubHkgc3BlY2lmaWVkIGluIGJ5dGVzPC9wPgonOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ2lwX2FkZHJlc3MnXSA9ICdJUCBBZGRyZXNzJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgdGhhdCBhbGxvd3MgdXNlcnMgdG8gdXBsb2FkIGZpbGVzLCBhbmQgYWxsb3dzIHlvdSB0byBtYW5hZ2UgdGhlbS4nOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1sncmVuYW1lbWVzc2FnZSddID0gJ0NoYW5nZSB0aGUgbmFtZSBoZXJlIHRvIGV4ZWN1dGUgYSByZW5hbWUnOwokbGFuZ1sncGF0aCddID0gJ1BhdGgnOwokbGFuZ1sncGF0aG1lc3NhZ2UnXSA9ICdDaGFuZ2UgdGhlIGNhdGVnb3J5IGhlcmUgdG8gbW92ZSB0aGUgZmlsZSB0byBhbm90aGVyIGRpcmVjdG9yeSc7CiRsYW5nWydwYXRoaW51cGxvYWRzJ10gPSAnKFJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSknOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgdXBsb2FkcyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZC4gQmUgc3VyZSB0byBzZXQgIk1hbmFnZSBVcGxvYWRzIiBwZXJtaXNzaW9ucyB0byB1c2UgdGhpcyBtb2R1bGUhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgVXBsb2FkcyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuICBObyBmaWxlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHlvdXIgdXBsb2FkcyBkaXJlY3RvcnksIGFuZCBmaWxlIGludGVncml0eSBpcyBpbnRhY3QnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNlcyc7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5ZGVzYyddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWxpc3RhYmxlJ10gPSAnRmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkgY2FuIGJlIGxpc3RlZCc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnluYW1lJ10gPSAnQ2F0ZWdvcnkgTmFtZSc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlwYXRoJ10gPSAnU2VydmVyIFBhdGgnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZWRpcmVjdG9yeSddID0gJ0RlbGV0ZSBjYXRlZ29yeSBkaXJlY3Rvcnk/JzsKJGxhbmdbJ3Byb21wdF9tYXhfdXBsb2Fkc2l6ZSddID0gJ01heGltdW0gZmlsZSBzaXplIGFsbG93ZWQgKEtiKSc7CiRsYW5nWydwcm9tcHRfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyddID0gJ1ZhbGlkIHVwbG9hZCBleHRlbnNpb25zJzsKJGxhbmdbJ3NjYW4nXSA9ICdTY2FuJzsKJGxhbmdbJ3NlbGVjdGNhdGVnb3J5J10gPSAnU2VsZWN0IENhdGVnb3J5JzsKJGxhbmdbJ3NpemUnXSA9ICdTaXplJzsKJGxhbmdbJ3NpemVrYiddID0gJ1NpemUgKEtiKSc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeV90ZW1wbGF0ZSddID0gJ1N1bW1hcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdTdW1tYXJ5JzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnVXBsb2FkcyBNb2R1bGUnOwokbGFuZ1sndGl0bGVfbW9kX2FkbWluJ10gPSAnTW9kdWxlIEFkbWluIFBhbmVsJzsKJGxhbmdbJ3RpdGxlX21vZF9wcmVmcyddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7CiRsYW5nWyd0aXRsZV9zaW5nX2xvdWRseSddID0gJ1NpbmcgTG91ZGx5Pyc7CiRsYW5nWyd0aXRsZV9zdWJuZXRfZXhjbHVzaW9ucyddID0gJ0V4Y2x1ZGUgc3VibmV0cyBmcm9tIHN0YXRpc3RpY3MnOwokbGFuZ1sndGl0bGVfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyddID0gJ1ZhbGlkIEV4dGVuc2lvbnMnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWyd1cGxvYWRlZCddID0gJ0ZpbGUgJXMgd2FzIHVwbG9hZGVkIGJ5ICVzLic7CiRsYW5nWydyZXBsYWNlZCddID0gJ0ZpbGUgJXMgd2FzIHJlcGxhY2VkIGJ5ICVzLic7CiRsYW5nWydkZWxldGVkJ10gPSAnRmlsZSAlcyB3YXMgZGVsZXRlZC4nOwokbGFuZ1sndXBsb2FkZm9ybV90ZW1wbGF0ZSddID0gJ1VwbG9hZCBUZW1wbGF0ZXMnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWyd3YXJuaW5nX2RlbGV0ZWNhdGVnb3J5J10gPSAnV0FSTklORzogVXNlIGNhdXRpb24gd2hlbiBkZWxldGluZyBjYXRlZ29yaWVzLiAgRmlsZXMgbWF5IGJlIGxvc3QnOwokbGFuZ1snd2VsY29tZV90ZXh0J10gPSAnPHA+V2VsY29tZSB0byB0aGUgVXBsb2FkcyBNb2R1bGUgYWRtaW4gc2VjdGlvbi4gU29tZXRoaW5nIGVsc2Ugd291bGQgcHJvYmFibHkgZ28gaGVyZSBpZiB0aGUgbW9kdWxlIGFjdHVhbGx5IGRpZCBzb21ldGhpbmcuPC9wPic7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2hlbHBfT25Eb3dubG9hZCddID0gJzxoMz5PbkRvd25sb2FkPC9oMz4NCjx1bD4NCjxsaT48ZW0+aWQ8L2VtPiAtIFVwbG9hZCBJRDwvbGk+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIEZpbGUgbmFtZTwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgSVAgQWRkcmVzcyBvZiB0aGUgZG93bmxvYWRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25EZWxldGVDYXRlZ29yeSddID0gJzxoMz5PbkRlbGV0ZUNhdGVnb3J5PC9oMz4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gQ2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+PGVtPnBhdGg8L2VtPiAtIENhdGVnb3J5IHBhdGg8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uQ3JlYXRlQ2F0ZWdvcnknXSA9ICc8aDM+T25DcmVhdGVDYXRlZ29yeTwvaDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGNhdGVnb3J5IGlzIHJlbW92ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBjYXRlZ29yeTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgY2F0ZWdvcnkgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBUaGUgY2F0ZWdvcnkgcGF0aDwvbGk+DQo8bGk+PGVtPnBhdGg8L2VtPiAtIEEgZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSBjYXRlZ29yeSBpcyBsaXN0YWJsZTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25SZW1vdmUnXSA9ICc8aDM+T25SZW1vdmU8L2gzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBmaWxlIGlzIHJlbW92ZWQgdmlhIHRoZSBhZG1pbiBvciBmcm9udGVuZCBpbnRlcmZhY2VzPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgcmVtb3ZlZCBmaWxlPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIFRoZSBpZCBvZiB0aGUgcmVtb3ZlZCBmaWxlPC9saT4NCjxsaT48ZW0+Y2F0ZWdvcnlfaWQ8L2VtPiAtIFRoZSBpZCBvZiB0aGUgY2F0ZWdvcnk8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uVXBsb2FkJ10gPSAnPGgzPk9uVXBsb2FkPC9oMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgbmV3IGZpbGUgaXMgdXBsb2FkZWQgdmlhIHRoZSBhZG1pbiBvciBmcm9udGVuZCBpbnRlcmZhY2VzPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5jYXRlZ29yeTwvZW0+IC0gVGhlIGNhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgdXBsb2FkZWQgZmlsZTwvbGk+DQo8bGk+PGVtPnNpemU8L2VtPiAtIFRoZSBzaXplIG9mIHRoZSB1cGxvYWRlZCBmaWxlPC9saT4NCjxsaT48ZW0+c3VtbWFyeTwvZW0+IC0gVGhlIHNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGUgdXBsb2FkZWQgZmlsZSAobWF5IGJlIGVtcHR5KTwvZW0+PC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIFRoZSBsb25nIGRlc2NyaXB0aW9uIGZvciB0aGUgdXBsb2FkZWQgZmlsZSAobWF5IGJlIGVtcHR5KTwvZW0+PC9saT4NCjxsaT48ZW0+YXV0aG9yPC9lbT4gLSBUaGUgYXV0aG9yIG9mIHRoZSB1cGxvYWRlZCBmaWxlIChpZiBhdmFpbGFibGUpPC9lbT48L2xpPg0KPGxpPjxlbT5pcF9hZGRyZXNzPC9lbT4gLSBUaGUgaW50ZXJuZXQgYWRkcmVzcyBvZiB0aGUgY2xpZW50IHRoYXQgdXBsb2FkZWQgdGhlIGZpbGU8L2xpPg0KPC91bD4NCic7CiRsYW5nWydpbmZvX2V2ZW50X29uZGVsZXRlY2F0ZWdvcnknXSA9ICdVZCZhYWN1dGU7bG9zdCBnZW5lcm92YW4mYWFjdXRlOyBrZHnFviBqZSBzbWF6JmFhY3V0ZTtuYSBrYXRlZ29yaWUnOwokbGFuZ1snaW5mb19ldmVudF9vbmNyZWF0ZWNhdGVnb3J5J10gPSAnVWQmYWFjdXRlO2xvc3QgZ2VuZXJvdmFuJmFhY3V0ZTssIGtkecW+IGplIHZ5dHZvxZllbmEga2F0ZWdvcmllJzsKJGxhbmdbJ2luZm9fZXZlbnRfb25kb3dubG9hZCddID0gJ1VkJmFhY3V0ZTtsb3N0IGdlbmVyb3ZhbiZhYWN1dGU7LCBrZHnFviBqZSBzdGHFvmVuIHNvdWJvcic7CiRsYW5nWydpbmZvX2V2ZW50X29udXBsb2FkJ10gPSAnVWQmYWFjdXRlO2xvc3QgZ2VuZXJvdmFuJmFhY3V0ZTssIGtkecW+IGplIG5haHImYWFjdXRlO24gbm92JnlhY3V0ZTsgc291Ym9yJzsKJGxhbmdbJ2luZm9fZXZlbnRfb25yZW1vdmUnXSA9ICdVZCZhYWN1dGU7bG9zdCBnZW5lcm92YW4mYWFjdXRlOywga2R5xb4gamUgb2RlYnImYWFjdXRlO24gc291Ym9yJzsKJGxhbmdbJ3RpdGxlX3VzZXJ0YWdfb251cGxvYWQnXSA9ICdVxb5pdmF0ZWxzayZ5YWN1dGU7IHRhZywga3RlciZ5YWN1dGU7IG0mYWFjdXRlOyBiJnlhY3V0ZTt0IHZvbCZhYWN1dGU7biBwbyBkb2tvbsSNZW4maWFjdXRlOyBuYWhyJmFhY3V0ZTtuJmlhY3V0ZTsnOwokbGFuZ1snbm9uZSddID0gJ8W9JmFhY3V0ZTtkbiZ5YWN1dGU7JzsKJGxhbmdbJ21hdGNoZXNmb3VuZCddID0gJ1omYWFjdXRlO3puYW15IG5hbGV6ZW55JzsKJGxhbmdbJ2ZpbHRlciddID0gJ0ZpbHRyJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0b251cGxvYWQnXSA9ICdSZWRpcmVjdCB0byBwYWdlIGlkL2FsaWFzIG9uIHVzZXIgdXBsb2FkJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhaWx5JzsKJGxhbmdbJ2NvbmZpcm1fcHJlZmVyZW5jZXMnXSA9ICdKc3RlIHNpIGppc3RpICZ1YWN1dGU7cHJhdm91IHByZWZlcmVuYyZpYWN1dGU7Pyc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzdXBsb2FkZWQnXSA9ICfFvSZhYWN1dGU7ZG4mZWFjdXRlOyBzb3Vib3J5IG5lYnlseSBuYWhyJmFhY3V0ZTtueS4nOwokbGFuZ1sncHJvbXB0X3JlcGxhY2UnXSA9ICdQb3ZvbGl0IHDFmWVwcyZhYWN1dGU7biZpYWN1dGU7JzsKJGxhbmdbJ2luZm9fcmVwbGFjZSddID0gJ04mYWFjdXRlO2hyYWRhIGphayZlYWN1dGU7aG9rb2xpdiBzb3Vib3J1IHQmaWFjdXRlO20gc2FtJnlhY3V0ZTttIChpZCBzZSBuZXptxJtuJmlhY3V0ZTspJzsKJGxhbmdbJ25vX2luaXRpYWwnXSA9ICdOZXpvYnJheiZpYWN1dGU7IHNlIMW+JmFhY3V0ZTtkbiZlYWN1dGU7IHZzdHVwbiZpYWN1dGU7IHYmeWFjdXRlO3NsZWRreSwgcG9rdWQgamUgZmlsdHIgemFwbnV0JnlhY3V0ZTsnOwokbGFuZ1sncGFyYW1fdXBsb2FkX2lkJ10gPSAndXBsb2FkX2lkPSZxdW90O2lkJnF1b3Q7IC0gc3BlY2lmeSBhIHNpbmdsZSBmaWxlIGZvciB0aGUgdXJsL2xpbmsgb3Igc2luZ2xlIG1vZGVzIChhYm92ZSknOwokbGFuZ1sncGFyYW1fdXNlX3N0cmljdF9yZWdleHAnXSA9ICdUaGUgZmlsdGVyIGZpZWxkIGlzIHVzZWQgYXMgYSBzdHJpY3QgcmVnZXhwIHdpdGhvdXQgcHJlcHJvY2Vzc2luZyBvZiBzcGFjZXMnOwokbGFuZ1sncGFyYW1fZGV0YWlsX2ZpbGV0ZW1wbGF0ZSddID0gJ1BvdcW+JmlhY3V0ZTt2JmFhY3V0ZTsgLnRwbCBzb3Vib3IgeiBhZHJlcyZhYWN1dGU7xZllIFVwbG9hZHMvdGVtcGxhdGVzLyBtJmlhY3V0ZTtzdG8gZGF0YWImYWFjdXRlO3plIHDFmWkgem9icmF6b3YmYWFjdXRlO24maWFjdXRlOyBkZXRhaWxuJmlhY3V0ZTsgenByJmFhY3V0ZTt2eSc7CiRsYW5nWydwYXJhbV91cGxvYWRfZmlsZXRlbXBsYXRlJ10gPSAnVXNlIGEgLnRwbCBmaWxlIGZyb20gdGhlIFVwbG9hZHMvdGVtcGxhdGVzLyBmb2xkZXIgaW5zdGVhZCBvZiB1c2luZyB0aGUgZGF0YWJhc2UgdGVtcGxhdGUgd2hlbiBkaXNwbGF5aW5nIGFuIHVwbG9hZCBmb3JtJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlfZmlsZXRlbXBsYXRlJ10gPSAnVXNlIGEgLnRwbCBmaWxlIGZyb20gdGhlIFVwbG9hZHMvdGVtcGxhdGVzLyBmb2xkZXIgaW5zdGVhZCBvZiB1c2luZyB0aGUgZGF0YWJhc2UgdGVtcGxhdGUgd2hlbiBkaXNwbGF5aW5nIGEgc3VtbWFyeSByZXBvcnQnOwokbGFuZ1sncGFyYW1fZmlsdGVyJ10gPSAnRGlzcGxheSB0aGUgZmlsdGVyaW5nIGZvcm0nOwokbGFuZ1sncGFyYW1fbm9faW50aXRpYWwnXSA9ICdPbmx5IHVzZWZ1bCB3aGVuIHRoZSBmaWx0ZXIgcGFyYW1ldGVyIGlzIHN1cHBsaWVkLCBvciBvbiBieSBkZWZhdWx0LCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2V0aGVyIGluaXRpYWwgcmVzdWx0cyBzaG91bGQgYmUgcmV0dXJuZWQnOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnICA8cD5Tb3J0IE9yZGVycw0KICA8dWw+DQogIDxsaT48ZW0+ZGF0ZV9hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIGRhdGU8L2xpPg0KICA8bGk+PGVtPmRhdGVfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIGRhdGU8L2xpPg0KICA8bGk+PGVtPm5hbWVfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBuYW1lPC9saT4NCiAgPGxpPjxlbT5uYW1lX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBuYW1lPC9saT4NCiAgPGxpPjxlbT5zaXplX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgc2l6ZTwvbGk+DQogIDxsaT48ZW0+c2l6ZV9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgc2l6ZTwvbGk+DQogIDxsaT48ZW0+ZGVzY19hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIGRlc2NyaXB0aW9uPC9saT4NCiAgPGxpPjxlbT5kZXNjX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBkZXNjcmlwdGlvbjwvbGk+DQogIDxsaT48ZW0+YXV0aG9yX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgYXV0aG9yPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIGF1dGhvcjwvbGk+DQogIDxsaT48ZW0+aXBfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBpcCBhZGRyZXNzPC9saT4NCiAgPGxpPjxlbT5pcF9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgaXAgYWRkcmVzczwvbGk+DQogIDxsaT48ZW0+cmFuZG9tPC9lbT4gLSBSYW5kb20gc29ydCBvcmRlcjwvbGk+DQogIDwvdWw+DQogIDwvcD4nOwokbGFuZ1sncGFyYW1fZmlsZWV4dGVuc2lvbnMnXSA9ICcgDQpmaWxlX2V4dGVuc2lvbnM9JnF1b3Q7ZXh0MSxleHQyLGV4dDMmcXVvdDsNCjxwPnZhbGlkIG9ubHkgd2hlbiBtb2RlPXVwbG9hZCwgdGhpcyBwYXJhbWV0ZXIgbGltaXRzIHRoZSB0eXBlcyBvZiBmaWxlcyB0aGF0IGNhbiBiZSB1cGxvYWRlZC4gIEl0IG92ZXJyaWRlcyBhbnkgc2V0dGluZ3MgaW4gdGhlIG1vZHVsZSBwcmVmZXJlbmNlcy48L3A+JzsKJGxhbmdbJ3BhcmFtX2NvdW50J10gPSAnY291bnQ9JnF1b3Q7TiZxdW90Ow0KPHA+QSBwYXJhbWV0ZXIgdG8gbGlzdCBvbmx5IHRoZSBmaXJzdCBOIHJlc3VsdHMgb2YgdGhlIHF1ZXJ5LiAgUGFnaW5hdGlvbiB3b3VsZCBiZSBiZXR0ZXIsIGJ1dCB0aGlzIHdpbGwgZG8gdGhlIHRyaWNrIGZvciBub3c8L3A+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnY2F0ZWdvcnk9JnF1b3Q7bmFtZSZxdW90Ow0KPHA+PGI+Tm90ZTo8L2I+IENhdGVnb3J5IGNhbiBiZSAmcXVvdDthbGwmcXVvdDssIHdoaWNoIHdpbGwgbGlzdCBhbGwgb2YgdGhlIHVwbG9hZHMgZnJvbSBhbGwgPGVtPmxpc3RhYmxlPC9lbT4gY2F0ZWdvcmllczwvcD4nOwokbGFuZ1sncGFyYW1fbW9kZSddID0gJyAgPHVsPg0KICA8bGk+PGVtPmRldGFpbGVkPC9lbT4gLSBEaXNwbGF5IGEgZGV0YWlsZWQgbGlzdCBvZiBhbGwgZmlsZXMgaW4gdGhlIGNhdGVnb3J5PC9saT4NCiAgPGxpPjxlbT51cGxvYWQ8L2VtPiAtIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IGEgZnJvbnRlbmQgdXNlciB0byB1cGxvYWQgYSBmaWxlPC9saT4NCiAgPGxpPjxlbT51cmwgPGk+b3I8L2k+IGxpbms8L2VtPiAtIERpc3BsYXkgYSBsaW5rIHRvIGEgZmlsZTwvbGk+DQogIDxsaT48ZW0+c3VtbWFyeTwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcml6ZWQgbGlzdCBvZiBhbGwgZmlsZXMgaW4gdGhlIGNhdGVnb3J5PC9saT4NCiAgPGxpPjxlbT5zaW5nbGU8L2VtPiAtIERpc3BsYXkgYSBkZXRhaWxlZCByZXBvcnQgYWJvdXQgYSBzaW5nbGUgdXBsb2FkPC9saT4NCiAgPGxpPjxlbT5zaW5nbGVzdW1tYXJ5PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyaXplZCByZXBvcnQgYWJvdXQgYSBzaW5nbGUgdXBsb2FkL2xpPg0KICA8L3VsPic7CiRsYW5nWydyZXR1cm50b21vZHVsZSddID0gJ1JldHVybiB0byBtb2R1bGUgcGFuZWwnOwokbGFuZ1snZXJyb3Jfbm9jYXRlZ29yaWVzJ10gPSAnVGhlcmUgYXJlIG5vIGRlZmluZWQgY2F0ZWdvcmllcyc7CiRsYW5nWyd0aXRsZV9lbmZvcmNlZXh0ZW5zaW9ucyddID0gJ1JlcXVpcmUgZXh0ZW5zaW9ucyBvbiBhbGwgdXBsb2FkZWQgZmlsZXMnOwokbGFuZ1sncmVzdG9yZWRlZmF1bHRzY29uZmlybSddID0gJ1RoaXMgb3BlcmF0aW9uIHdpbGwgcmVzdG9yZSB0aGUgdGVtcGxhdGUgdG8gc3lzdGVtIGRlZmF1bHRzLiAgQW55IGNoYW5nZXMgeW91IGhhdmUgbWFkZSB3aWxsIGJlIGxvc3QuICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8nOwokbGFuZ1snaW5mb190aHVtYm5haWwnXSA9ICdBbiBvcHRpb25hbCB0aHVtYm5haWwgZmlsZSc7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdUaHVtYm5haWwnOwokbGFuZ1snaW5mb19zdW1tYXJ5J10gPSAnQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZmlsZSAoaWYgZW1wdHksIHRoZSBmaWxlIG5hbWUgaXMgdXNlZCB3aXRob3V0IHRoZSBleHRlbnNpb24pJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnluYW1lJ10gPSAnQSBicmllZiBuYW1lIGZvciB5b3VyIGNhdGVnb3J5IChodW1hbiByZWFkYWJsZSknOwokbGFuZ1snaW5mb19jYXRlZ29yeWRlc2MnXSA9ICdBIGRlc2NyaXB0aW9uIGZvciB5b3VyIGNhdGVnb3J5JzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnlwYXRoJ10gPSAnVGhlIGRpcmVjdG9yeSBuYW1lIGluc2lkZSB0aGUgdXBsb2FkcyBkaXJlY3RvcnkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc3RvcmUgZmlsZXMgaW4gdGhpcyBjYXRlZ29yeS4gIElmIHRoZSBkaXJlY3Rvcnkgb2YgdGhpcyBuYW1lIGRvZXMgbm90IGFscmVhZHkgZXhpc3QsIGl0IG1heSBiZSBjcmVhdGVkJzsKJGxhbmdbJ2luZm9fZGVzdG5hbWUnXSA9ICdVc2UgdGhlICYjMDM5O1VwbG9hZCBBcyYjMDM5OyBmaWVsZCB0byBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGZpbGUgb24gdXBsb2FkLiAgTGVhdmUgYmxhbmsgdG8gcHJlc2VydmUgdGhlIGZpbGVuYW1lIGFzLWlzLic7CiRsYW5nWydlcnJvcl9jYW50Y3JlYXRlZGlyZWN0b3J5J10gPSAnQ291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnknOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdUaGUgQ01TTWFpbGVyIG1vZHVsZSBjb3VsZCBub3QgYmUgaW5zdGFudGlhdGVkJzsKJGxhbmdbJ3VwbG9hZF9ub3RpZmljYXRpb24nXSA9ICdBIG5ldyBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX29uX3VwbG9hZCddID0gJ1NlbmQgdXBsb2FkIG5vdGlmaWNhdGlvbiB0bzonOwokbGFuZ1snZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kdW1teV9pbmRleF9odG1sJ10gPSAnQ3JlYXRlIGR1bW15IGluZGV4Lmh0bWwgZmlsZXMgaW4gZWFjaCBkaXJlY3Rvcnk/PGJyLz48ZW0+QW55IGV4aXN0aW5nIGluZGV4Lmh0bWwgZmlsZXMgd2lsbCByZW1haW48L2VtPic7CiRsYW5nWydhYm91dCddID0gJ0Fib3V0JzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdBY2Nlc3MgRGVuaWVkLiBQbGVhc2UgY2hlY2sgeW91ciBwZXJtaXNzaW9ucy4nOwokbGFuZ1snZXJyb3JfY291bGRub3R3cml0ZSddID0gJ0NvdWxkIG5vdCB3cml0ZSc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0FkZCBDYXRlZ29yeSc7CiRsYW5nWydhbGwnXSA9ICdBbGwnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0FyZSBZb3UgU3VyZT8nOwokbGFuZ1snYXV0aG9yJ10gPSAnQXV0aG9yJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWydjYW5ub3Rtb2RpZnlwYXRoJ10gPSAnKFRoZSBwYXRoIGNhbm5vdCBiZSBtb2RpZmllZCknOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yeSc7CiRsYW5nWydtZXNzYWdlX2NhdGVnb3J5YWRkZWQnXSA9ICdDYXRlZ29yeSBzdWNjZXNzZnVsbHkgYWRkZWQnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAuIC0gU2VwdGVtYmVyIDIwMDUuPC9wPg0KPHA+IEluaXRpYWwgUmVsZWFzZS48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAxLiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+TWlub3IgZml4ZXMuPC9wPjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDIuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCBhYmlsaXR5IHRvIHNwZWNpZnkgc29ydCBvcmRlcjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDMuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5GaXggcmVnYXJkaW5nIGNvbmZsaWN0IGluIHRlbXBsYXRlIG5hbWVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNC4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIGFiaWxpdHkgdG8gcmUtc2NhbiBhIGRpcmVjdG9yeSwgYW5kIHRvIHVwbG9hZCBmaWxlcyBmcm9tIHRoZSBhZG1pbiBwYWdlPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNS4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkZpeGVkIHNvbWUgUEhQIHZhcmlhYmxlIGlzc3VlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDYuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCBhdXRob3IgZmllbGQgdG8gdGhlIGFkbWluIHBhbmVsIHVwbG9hZCBmb3JtLCBhZGRlZCBhIHN1bW1hcnkgZmllbGQsIGFuZCBtYWRlIGRlc2NyaXB0aW9uIGEgdGV4dCBhcmVhLCBhbmQgYWxsb3cgdGhlIHVzZXIgdG8gc3BlY2lmeSBhIGRlc3RpbmF0aW9uIGZpbGUgbmFtZTwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDcuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byByZW5hbWUgZmlsZXMgYW5kIGZpeGVkIGEgc2NhbiBlcnJvcjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDguIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5CZXR0ZXIgaGFuZGxpbmcgb2YgbmFtZXMgd2l0aCBzcGFjZXMsIGFuZCBhIGZldyBtaW5vciBlcnJvcnMgZml4ZWQuICBBZGRlZCBzd2VkaXNoIHRyYW5zbGF0aW9uICh0aGFua3Mgd2VzdGlzKTwvcD48L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMC4gLSBPY3RvYmVyIDIwMDU8L3A+DQogPHVsPg0KICAgPGxpPk1vZGlmaWVkIEF0dGVtcHRVcGxvYWQgZnVuY3Rpb24gc28gaXQgY291bGQgYmUgY2FsbGVkIGV4dGVybmFsbHk8L2xpPg0KICAgPGxpPkFkZGVkIEdldFVwbG9hZERldGFpbHMgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFsbCBvZiB0aGUgZGV0YWlscyBhYm91dCBhIG1vZHVsZSwgaW5jbHVkaW5nIGEgbGluazwvbGk+DQogICA8bGk+QWRkZWQgUmVkaXJlY3RzIHNvIHRoYXQgd29ya2luZyB3aXRoIHRoZSBtb2R1bGUgaXMgYWxvdCBuaWNlciwgaXQgcmV0dXJucyB0byB0aGUgcmlnaHQgdGFiPC9saT4NCiAgIDxsaT5DaGFuZ2VkIHRoZSBmcm9udCB0ZW1wbGF0ZSB0byBsb29rIGEgbGl0dGxlIGJldHRlciBhbmQgbWFrZSBtb3JlIHNlbnNlPC9saT4NCiAgIDxsaT5GaXhlcyB0byB0aGUgdXBsb2FkcyBzdHVmZiBzbyB0aGF0IHRoZSBkZXNjcmlwdGlvbiBpcyBzZXQsIGFuZCBuYW1lIGFuZCBzdW1tYXJ5IGFyZSBwdXQgaW4gdGhlIHJpZ2h0IHBsYWNlPC9saT4NCiAgIDxsaT5GaXhlcyB0byBldmVuIGJldHRlciBoYW5kbGUgc3BhY2VzIGluIG5hbWVzPC9saT4NCiAgIDxsaT5PcHRpb25hbHkgcGxhY2UgZHVtbXkgaW5kZXguaHRtbCBmaWxlcyBpbiBlYWNoIHVwbG9hZCBkaXJlY3Rvcnk8L2xpPg0KICAgPGxpPklmIHNwZWNpZnlpbmcgYSBkZXN0aW5hdGlvbiBuYW1lLCBhbmQgbm8gZXh0ZW5zaW9uIGlzIGdpdmVuLCB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBvcmlnaW5hdGluZyBmaWxlIChpZiBhbnkgZXhpc3RzIGlzIHVzZWQ8L2xpPg0KIDwvdWw+DQogPHA+PGVtPjxiPkltcG9ydGFudCE8L2I+PC9lbT48YnIvPkl0IGlzIG5vdCBwb3NzaWJsZSB0byB1cGdyYWRlIGZyb20gYW55IG90aGVyIHZlcnNpb24gb2YgdGhlIFVwbG9hZHMgbW9kdWxlIHRvIDEuMS4wLiAgVGhpcyBpcyBkdWUgdG8gc29tZSBlcnJvcnMgdGhhdCB3ZXJlIG1hZGUgaW4gdGhlIGRhdGFiYXNlIHJvdXRpbmVzLCBhbmQgZXZlbiBpbiB0aGUgdXBncmFkZSByb3V0aW5lIGluIDEuMC42LiAgWW91IG11c3QgZGUtaW5zdGFsbCB0aGUgb2xkIHZlcnNpb24sIGFuZCB0aGVuIHJlLWluc3RhbGwgdGhlIG5ldyB2ZXJlc2lvbi4gVGhpcyB3aWxsIGNhdXNlIHNpZ25pZmljYW50IGRpZmZpY3VsdHkgaWYgeW91IGhhdmUgZHNjcmlwdGlvbnMsIGV0YywgaW4geW91ciB0YWJsZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMS4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+Rml4ZWQgYSBjb3VwbGUgb2YgbWlub3IgYnVncyBpbiB0aGUgR2V0VXBsb2FkRGV0YWlscyBhbmQgYWRkZWQgYW5vdGhlciBsaW5rIChvciBhIHVybCkgdG8gdGhlIHVwbG9hZGVkIGZpbGUuPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjIuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkZpeGVkIHRoZSBVUkwgZmllbGQgaW4gR2V0VXBsb2FkRGV0YWlscyB0byByZXR1cm4gYSBkb3dubG9hZCBsaW5rIGFuZCBhZGRlZCBhbiBhYnN1cmwgZmllbGQgd2hpY2ggcmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZSBvbiB0aGUgd2Vic2VydmVyLiAgQ2xpY2tzIG9uIHRoaXMgbGluayB3aWxsIG5vdCBiZSBjb3VudGVkPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjMuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkZpeGVkIHRoZSB1cGdyYWRlIHByb2JsZW0gZnJvbSB0aGUgMS4wLnggc2VyaWVzLiAgVXNlcnMgb2YgdGhlIDEuMC54IHNlcmllcyBzaG91bGQgYmUgYWJsZSB0byB1cGdyYWRlIHRvIDEuMS4zIG5vdyB3aXRoIG5vIGRpZmZpY3VsdHkuIDxiPlRob3NlIGFyZSBmYW1vdXMgbGFzdCB3b3JkcywgcGxlYXNlIGJhY2t1cCBmaXJzdDwvYj4uIEZpeGVkIHRoZSBjb250ZW50IHJlZGlyZWN0IHRoaW5ncyB0aGF0IHdlcmUgaXJyaXRhdGluZyBtZS4gIEFsc28gYWRkZWQgY2F0ZWdvcnk9YWxsIHRvIGxpc3QgYWxsIG9mIHRoZSB1cGxvYWRzIGluIGFsbCBsaXN0YWJsZSBjYXRlZ29yaWVzIDxlbT4obGV0cyBhbGwgaG9wZSBJIGdvdCB0aGUgc3FsIGZpZ3VyZWQgb3V0IHByb3Blcmx5KTwvZW0+LjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS40LiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5BZGRlZCB0aGUgY291bnQgcGFyYW1ldGVyIHRvIGxpc3Qgb25seSB0aGUgZmlyc3QgTiByZWNvcmRzLCBhbmQgYWRkZWQgJnF1b3Q7c3VtbWFyeWxpbmsmcXVvdDssIGFuZCAmcXVvdDtjYXRlZ29yeSZxdW90OyB0byB0aGUgdGVtcGxhdGVzIGZvciB3ZXN0aXMuICBGb3IgZXhhbXBsZXMgb24gaG93IHRvIHVzZSB0aGVtIHJlc2V0IHlvdXIgdGVtcGxhdGVzIGJhY2sgdG8gZGVmYXVsdC48L3A+PC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjUuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5BZGRlZCBlbWFpbCBub3RpZmljYXRpb24gYW5kIHNvbWUgYnVnIGZpeGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjYuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5BZGRlZCBhbiBhcGkgZnVuY3Rpb24gYW5kIGZpeGVkIHNvbWUgcmVkaXJlY3Rpb24gc3R1ZmY8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNy4gLSBOb3ZlbWJlciwgMjAwNTwvcD4NCjxwPk1vcmUgQVBJIGZ1bmN0aW9ucywgYW5kIG5vdyBpZ25vcmUgZG90IGZpbGVzIHdoZW4gc2Nhbm5pbmcuICBFbWFpbCBub3RpZmljYXRpb24gaXMgbm93IGluLjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS44LiAtIEphbnVhcnksIDIwMDY8L3A+DQo8cD4qIEltcHJvdmVkIGRvY3Mgd3J0IGFwYWNoZSBhbmQgcGhwIGNvbmZpZ3MuPC9wPg0KPHA+KiBGaXhlZCBwcm9ibGVtIHdoZXJlIGZpbGVzaXplIHdhcyBzaG93aW5nIHVwIGFzIDAuPC9wPg0KPHA+KiBNb2RpZmllZCBwZXJtaXNzaW9ucyB0byBiZSBtb3JlIGdyYW51bGFyPC9wPg0KPHA+KiBBZGRlZCBzb21lIGNvbW1lbnRzIGFuZCB2ZXJib3NpdHkgdG8gdGhlIGNhdGVnb3J5IGFuZCB1cGxvYWRzIGZvcm1zIGluIHRoZSBhZG1pbiBzZWN0aW9uPC9wPg0KPHA+KiBBZGRlZCAmcXVvdDtyYW5kb20mcXVvdDsgc29ydCBvcmRlcjwvcD4NCjxwPiogU29tZSBQSFA1IGZpeGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjkuIC0gSmFudWFyeSwgMjAwNjwvcD4NCjxwPiogQWRkZWQgdGhlIGFiaWxpdHkgdG8gdXBsb2FkIGEgdGh1bWJuYWlsIGltYWdlPC9wPg0KPHA+KiBTb21lIGltcHJvdmVkIGF1ZGl0aW5nPC9wPg0KPHA+KiB4bWwgbm93IGFkZGVkIHRvIHRoZSBkZWZhdWx0IGZpbGUgdHlwZXMgKG5ldyBpbnN0YWxscyBvbmx5KTwvcD4NCjxwPiogQWRkZWQgYSBjb25maXJtYXRpb24gbWVzc2FnZSB0byB0aGUgcmVzZXQgdG8gZGVmYXVsdHMgYnV0dG9ucyBvZiB0aGUgdGVtcGxhdGUgcGFnZXMuPC9wPg0KPHA+KiBBZGRlZCB0aGUgZmlsZV9leHRlbnNpb25zIHBhcmFtZXRlciBmb3IgdGhlIHVwbG9hZCBmb3JtPC9wPg0KPHA+KiBUaGUgY3VycmVudCBjYXRlZ29yeSBzZWxlY3RlZCBpbiB0aGUgZmlsZXMgZmlsdGVyIGlzIHN0aWNreS4NCjxwPiogQWRkZWQgYSBwcmVmZXJlbmNlIHRvIGVuZm9yaWNlIGZpbGVuYW1lIGV4dGVuc2lvbnMgKGRlZmF1bHRzIHRvIG9uKTwvcD4NCjxwPiogQWRkZWQgYSBsaW5rIHRvIHRoZSBlZGl0IHBhZ2UsIGluIHRoZSBuYW1lIGNvbHVtbiBvZiB0aGUgZmlsZXMgbGlzdC48L3A+DQo8cD4qIE1pbm9yIGNoYW5nZXMgdG8gdGhlIGxheW91dCBhbmQgdGV4dCB0byBhZGQgY2xhcml0eS48L3A+DQo8cD4qIEFkZGVkIGRvd25sb2FkX3VybCBhcyBhbiBhdmFpbGFibGUgc21hcnR5IHRhZyBpbiB0aGUgdGVtcGxhdGVzPC9wPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTAuIC0gRmVicnVhcnksIDIwMDY8L3A+DQo8cD4qIFN1bW1hcnkgbm93IGRlZmF1bHRzIHRvIHRoZSBmaWxlbmFtZSAod2l0aG91dCB0aGUgZXh0ZW5zaW9uKSBpZiBub25lIGlzIHNwZWNpZmllZDwvcD4NCjxwPiogTm93IGNvcnJlY3RseSBoYW5kbGUgaWYgdGhlIHRodW1ibmFpbCBleHRlbnNpb24gaXMgbm90IGluIHRoZSBhY2NlcHRlZCBleHRlbnNpb24gbGlzdDwvcD4NCjxwPiogTm8gbG9uZ2VyIGRpc3BsYXkgYW55IGNvbnRlbnQgaW4gdGhlIGZpbGVzIHRhYiBpZiB0aGVyZSBhcmUgbm8gY2F0ZWdvcmllcyBkZWZpbmVkPC9wPg0KPHA+KiBEaXNwbGF5IGEgbGluayBpbiB0aGUgZXJyb3IgcGFnZSB0aGF0IHRha2VzIHlvdSBiYWNrIHRvIHRoZSBtYWluIGFkbWluIHBhbmVsPC9wPg0KPHA+KiBBbGxvdyBmb3IgcmVwbGFjaW5nIG9mIHVwbG9hZGVkIGZpbGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjExLiAtIE1hcmNoLCAyMDA2PC9wPg0KPHA+QWRkZWQgdGhlIGFiaWxpdHkgZm9yIGEgbGluayB0byBhIGRldGFpbGVkIHBhZ2Ugd2hlbiBpbiBzdW1tYXJ5IG1vZGUuPC9wPg0KPHA+U3BsaXQgdGhlIGRlZmF1bHQgYWN0aW9uIGFuZCBkZWZhdWx0YWRtaW4gYWN0aW9ucyBpbnRvIHNlcGFyYXRlIGZpbGVzLCBmb3IgYSBiaXQgb2YgbWVtb3J5IGltcHJvdmVtZW50LCBob3BlZnVsbHk8L3A+DQo8cD5BZGQgdGhlIGFiaWxpdHkgdG8gcmVkaXJlY3QgdG8gYW5vdGhlciBwYWdlIGFmdGVyIGEgZnJvbnRlbmQgdXNlciB1cGxvYWRlZCBhIGZpbGU8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTIuIC0gTWFyY2gsIDIwMDY8L3A+DQo8cD5BZGRlZCB0aGUgc2luZ2xlc3VtbWFyeSBtb2RlIHRvIGRpc3BsYXkgYSBzaW5nbGUgdXBsb2FkIGluIHN1bW1hcnkgbW9kZTwvUD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMy4gLSBBcHJpbCwgMjAwNjwvcD4NCjxwPkFkZGVkIG9wdGlvbmFsIGZpbHRlcmluZyBvbiB0aGUgZnJvbnRlbmQsIGFuZCBhIGNvdXBsZSBvZiBleHRyYSBwYXJhbWV0ZXJzIHRvIGdvIHdpdGggaXQ8L3A+DQo8cD5GaXhlZCBhIHByb2JsZW0gd2hlcmUgaXQgd291bGQgYWxsb3cgeW91IHRvIGVudGVyIGEgYmxhbmsgcGF0aCB3aGVuIGNyZWF0aW5nIGEgY2F0ZWdvcnk8L3A+DQo8cD5TcGxpdCBzdHVmZiBpbnRvIChzb21lKSBzZXBhcmF0ZSBhY3Rpb24gZmlsZXMgZm9yIHNvbWUgaG9wZWZ1bCBwZXJmb3JtYW5jZSBpbmNyZWFzZXM8L3A+DQo8cD5BZGRlZCBjb3B5cmlnaHQgbm90aWNlczwvcD4NCjxwPkNoYW5nZWQgKG9wdGlvbmFsKSBkZXBlbmRlbmN5IGZyb20gVXNlcklEIHRvIEZyb250RW5kVXNlcnMgTW9kdWxlLjwvcD4NCjxwPlZlcnNpb24gMS4yLjAuIC0gQXByaWwsIDIwMDY8L3A+DQo8cD5DaGFuZ2VkIF9zY2FuRGlyZWN0b3J5IHRvIGFuIEFQSSBmdW5jdGlvbiBTY2FuRGlyZWN0b3J5IGFuZCB0aGVuIGFkZGVkIFNtYXJ0U2NhbkRpcmVjdG9yeSB0byBzY2FuIHRoZSBkaXJlY3RvcnkgYmVmb3JlIGRpc3BsYXlpbmcgdGhlIHN1bW1hcnkgb3IgZGV0YWlsIGxpc3RpbmcgdG8gaGFuZGxlIHRoZQ0KY2FzZSB3aGVyZSBzb21lYm9keSB1cGxvYWRlZCBmaWxlcyB2aWEgRlRQIG9yIHNvbWV0aGluZyBhbmQgZGlkIG5vdCBnbyBpbnRvIHRoZSBhZG1pbiBzZWN0aW9uIHRvIHVwZGF0ZSB0aGUgY2F0ZWdvcmllcy48L3A+DQo8cD5Db3JyZWN0aW9uIHRvIGFsbCBkYiBhY2Nlc3Mgc3R1ZmYuIEhvcGVmdWxseSBwcm92aWRlcyBhIHBlcmZvcm1hbmNlIGluY3JlYXNlLjwvcD4NCjxwPkZpeGVzIHRvIHRoZSBhYm91dCBzdHVmZiwgbm93IHVzZSBDcmVhdGVQYXJhbWV0ZXI8L3A+DQo8cD5BZGRlZCB0aGUgdXBsb2FkX3RlbXBsYXRlLCBzdW1tYXJ5X3RlbXBsYXRlLCBhbmQgZGV0YWlsX3RlbXBsYXRlIChvcHRpb25hbCkgcGFyYW1ldGVyPC9wPg0KPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2RhdGUnXSA9ICdEYXRlJzsKJGxhbmdbJ2RhdGV1cGxvYWRlZCddID0gJ0RhdGUgVXBsb2FkZWQnOwokbGFuZ1snZGVmYXVsdCddID0gJ0RlZmF1bHRzJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2Rlc3RuYW1lJ10gPSAnVXBsb2FkIEFzJzsKJGxhbmdbJ2RldGFpbF90ZW1wbGF0ZSddID0gJ0RldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWydkb3dubG9hZGVkJ10gPSAnRmlsZSAlcyB3YXMgZG93bmxvYWRlZC4nOwokbGFuZ1snZG93bmxvYWRzJ10gPSAnRG93bmxvYWRzJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ0VkaXQgQ2F0ZWdvcnknOwokbGFuZ1snZWRpdHVwbG9hZCddID0gJ0VkaXQgVXBsb2FkJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmdbJ2Vycm9yX3BhdGhpbnVzZSddID0gJ0EgY2F0ZWdvcnkgdXNpbmcgdGhhdCBwYXRoIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5ZXhpc3RzJ10gPSAnRXJyb3I6IENhdGVnb3J5IGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5bm90ZW1wdHknXSA9ICdFcnJvciEgQ2Fubm90IGRlbGV0ZSBhIGNhdGVnb3J5IHRoYXQgaXMgbm90IGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5bm90Zm91bmQnXSA9ICdFcnJvcjogQ2F0ZWdvcnkgbm90IGZvdW5kISc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRXJyb3I6IERhdGFiYXNlIGVycm9yISc7CiRsYW5nWydlcnJvcl9lbXB0eWNhdGVnb3J5J10gPSAnRXJyb3I6IEVtcHR5IENhdGVnb3J5ISc7CiRsYW5nWydlcnJvcl9lbXB0eXBhdGgnXSA9ICdFcnJvcjogRW1wdHkgUGF0aCEnOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0Vycm9yISBGaWxlICVzIGFscmVhZHkgZXhpc3RzLic7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdFcnJvciEgRmlsZSAlcyB3YXMgbm90IGZvdW5kLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdFcnJvcjogSW5zdWZmaWNpZW50IHBhcmFtZXRlcnMgc3VwcGxpZWQgdG8gbW9kdWxlISc7CiRsYW5nWydlcnJvcl9pbnZhbGlkYXV0aG9yJ10gPSAnRXJyb3I6IEludmFsaWQgKG9yIGVtcHR5KSBhdXRob3IuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjYXRlZ29yeSddID0gJ0Vycm9yOiBJbnZhbGlkIChvciBlbXB0eSkgY2F0ZWdvcnkuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRkZXNjcmlwdGlvbiddID0gJ0Vycm9yOiBJbnZhbGlkIChvciBlbXB0eSkgZGVzY3JpcHRpb24uJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlJ10gPSAnRXJyb3I6IEludmFsaWQgKG9yIGVtcHR5KSBmaWxlbmFtZS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZHVwbG9hZGZpbGVuYW1lJ10gPSAnRXJyb3I6IEZpbGVzIHdpdGggdGhhdCBuYW1lIChwcm9iYWJseSBleHRlbnNpb24pIGFyZSBub3QgYWxsb3dlZCAoJXMpLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXBsb2FkaWQnXSA9ICdFcnJvcjogSW52YWxpZCB1cGxvYWQgaWQnOwokbGFuZ1snZXJyb3Jfbm9maWxlcyddID0gJ0Vycm9yOiBObyBNYXRjaGluZyBGaWxlcyEnOwokbGFuZ1snZmlsZXMnXSA9ICdGaWxlcyc7CiRsYW5nWydmaXhtZSddID0gJ0ZpeCBTcGFjZXMnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnVXBsb2FkIE1vZHVsZSc7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5JdCBpcyBhIG1vZHVsZSBmb3IgYWxsb3dpbmcgcGVvcGxlIHRvIHVwbG9hZCBhbmQgZG93bmxvYWQgZmlsZXMgdG8gYW5kIGZyb20geW91ciBzaXRlLiAgSXQga2VlcHMgdHJhY2sgb2Ygd2hvIHVwbG9hZGVkIGEgZmlsZSwgYW5kIHdobyBoYXMgZG93bmxvYWRlZCBpdC4gIEFzIHdlbGwsIHlvdSBjYW4gc29ydCBmaWxlcyBpbnRvIGNhdGVnb3JpZXMsIGFuZCBtYW5hZ2UgdGhlIGZpbGVzIHRoYXQgd2VyZSB1cGxvYWRlZCBsaWtlIGV2ZXJ5IGFkbWluaXN0cmF0b3Igd291bGQgZG88L3A+IA0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQo8cD5UbyB1c2UgdGhpcyBtb2R1bGUsIHRvIGFsbG93IHVzZXJzIHRvIHVwbG9hZCBmaWxlcyB0byB5b3VyIHNpdGUsIHlvdSBzaG91bGQgaW5zdGFsbCB0aGUgbW9kdWxlLCBhbmQgdGhlbiBjcmVhdGUgb25lIG9yIG1vcmUgY2F0ZWdvcmllcyAoYS5rLmEpIGRpcmVjdG9yaWVzIGZvciB0aGUgdXBsb2FkZWQgZmlsZXMgdG8gZ28gaW50by4gVGhlbiBhZGQgYSB0YWcgaW50byBhIHBhZ2Ugb3IgdGVtcGxhdGUgc29tZXdoZXJlIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSZxdW90O1VwbG9hZHMmcXVvdDsgY2F0ZWdvcnk9JnF1b3Q7c29tZWNhdGVnb3J5JnF1b3Q7IG1vZGU9JnF1b3Q7c29tZW1vZGUmcXVvdDt9LiAgV2hlcmUgbW9kZSBtYXRjaGVzIG9uZSBvZiB0aGUgbW9kZXMgbGlzdGVkIGJlbG93LiAgVGhlIG91dHB1dCB3aWxsIGRpZmZlciBkZXBlbmRpbmcgdXBvbiB3aGljaCBtb2RlIHlvdSBzZWxlY3QuPC9wPg0KPHA+VGhpcyBtb2R1bGUgY2FuIHVzZSB0aGUgRnJvbnRlbmRVc2VycyBtb2R1bGUgKG9wdGlvbmFsKSB0byBnZXQgaW5mb3JtYXRpb24gYWJvdXQgYW55IGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlcnMgdG8gcGFydGx5IGZpbGwgaW4gdGhlIGZvcm0gd2hlbiB1cGxvYWRpbmcgZmlsZXM7PC9wPg0KPGgzPlBlcm1pc3Npb25zPC9oMz4NCjx1bD4NCjxsaT48ZW0+TWFuYWdlIFVwbG9hZHM8L2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCB0byBtYW5hZ2UgY2F0ZWdvcmllcywgYW5kIHRoZSBmaWxlcyB3aXRoaW4gdGhlbS48L2xpPg0KPGxpPjxlbT5Nb2RpZnkgVGVtcGxhdGVzPC9lbT4gcGVybWlzc2lvbiBpcyBuZWVkZWQgZWRpdCBhbnkgb2YgdGhlIHRlbXBsYXRlcy48L2xpPg0KPGxpPjxlbT5Nb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcy9lbT4gcGVybWlzc2lvbiBpcyBuZWVkZWQgYW55IG9mIHRoZSBmaWxlIHNldHRpbmdzLjwvbGk+DQo8L3VsPg0KPGgzPkVtYWlsaW5nPC9oMz4NCjxwPlRoaXMgbW9kdWxlIGlzIGNhcGFibGUgb2Ygc2VuZGluZyBhbiBlbWFpbCB3aGVuZXZlciBhIGZpbGUgaXMgdXBsb2FkZWQsIHNlZSB0aGUgcHJlZmVyZW5jZXMgdGFiLiAgSG93ZXZlciwgdG8gZG8gdGhpcyB0aGUgPGI+Q01TTWFpbGVyPC9iPiBwYWNrYWdlIG11c3QgYmUgaW5zdGFsbGVkIGFuZCBjb25maWd1cmVkLiAgVGhpcyBpcyBhbiA8ZW0+b3B0aW9uYWw8L2VtPiBzdGVwLCBhbmQgaWYgdGhlIENNU01haWxlciBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCwgbm90aGluZyB3aWxsIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciwgb25seSBhIGxvZyBtZXNzYWdlIHdpbGwgYmUgcGxhY2VkIGludG8gdGhlIGFkbWluIGxvZzwvcD4NCjxoMz5TeXN0ZW0gU2V0dGluZ3M8L2gzPg0KPHA+PGI+Tm90ZTo8L2I+IFRoaXMgbW9kdWxlIGRvZXMgbm90IGJ5cGFzcyBvciBnZXQgcGFzdCBhbnkgZmlsZSBzaXplIGxpbWl0YXRpb25zIGluIHBocC4gIEl0IHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlbS4gIFRoZXJlZm9yZSB5b3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHlvdXIgcGhwLmluaSBmaWxlIGFuZC9vciB5b3VyIGh0dHBkLmNvbmYgZmlsZShzKSB0byBhbGxvdyB5b3UgdG8gdXBsb2FkIGZpbGVzIGFzIGxhcmdlIGFzIHdoYXQgeW91IGhhdmUgc2V0IGluIHRoZSB1cGxvYWRzIG1vZHVsZSBwcmVmZXJlbmNlcy48L3A+DQo8aDM+QXBhY2hlIE5vdGVzPC9oMz4NCjxwPkluIG9yZGVyIHRvIGFsbG93IGxhcmdlIGZpbGUgdXBsb2FkcywgeW91IG1heSBuZWVkIHRvIG1vZGlmeSB0aGUgdXBsb2FkX21heF9maWxlc2l6ZSBwYXJhbWV0ZXIgaW4geW91ciBwaHAuaW5pICBJbiBhZGRpdGlvbiwgdGhlIExpbWl0UmVxdWVzdEJvZHkgcGFyYW1ldGVyIGluIHlvdXIgYXBhY2hlIGNvbmZpZ3VyYXRpb24sIG1heSBuZWVkIHRvIGJlIGFkanVzdGVkIHRvIG1hdGNoIHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlcjwvcD4NCjxwPk5vdGU6ICB0aGUgdXBsb2FkX21heF9maWxlc2l6ZSBwYXJhbWV0ZXIgY2FuIGJlIHNwZWNpZmllZCBpbiBieXRlcywga2lsb2J5dGVzLCBvciBtZWdhYnl0ZXMsIGhvd2V2ZXIgdGhlIExpbWl0UmVxdWV0Qm9keSBwYXJhbWV0ZXIgaXMgb25seSBzcGVjaWZpZWQgaW4gYnl0ZXM8L3A+DQonOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ2lwX2FkZHJlc3MnXSA9ICdJUCBBZGRyZXNzJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgdGhhdCBhbGxvd3MgdXNlcnMgdG8gdXBsb2FkIGZpbGVzLCBhbmQgYWxsb3dzIHlvdSB0byBtYW5hZ2UgdGhlbS4nOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1sncmVuYW1lbWVzc2FnZSddID0gJ0NoYW5nZSB0aGUgbmFtZSBoZXJlIHRvIGV4ZWN1dGUgYSByZW5hbWUnOwokbGFuZ1sncGF0aCddID0gJ1BhdGgnOwokbGFuZ1sncGF0aG1lc3NhZ2UnXSA9ICdDaGFuZ2UgdGhlIGNhdGVnb3J5IGhlcmUgdG8gbW92ZSB0aGUgZmlsZSB0byBhbm90aGVyIGRpcmVjdG9yeSc7CiRsYW5nWydwYXRoaW51cGxvYWRzJ10gPSAnKFJlbGF0aXZlIHRvIHRoZSB1cGxvYWRzIGRpcmVjdG9yeSknOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgdXBsb2FkcyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZC4gQmUgc3VyZSB0byBzZXQgJnF1b3Q7TWFuYWdlIFVwbG9hZHMmcXVvdDsgcGVybWlzc2lvbnMgdG8gdXNlIHRoaXMgbW9kdWxlISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIFVwbG9hZHMgbW9kdWxlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSByZW1vdmVkLiAgTm8gZmlsZXMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB5b3VyIHVwbG9hZHMgZGlyZWN0b3J5LCBhbmQgZmlsZSBpbnRlZ3JpdHkgaXMgaW50YWN0JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyZW5jZXMnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxlIHByZWZlcmVuY2VzIHVwZGF0ZWQuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWRlc2MnXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlsaXN0YWJsZSddID0gJ0ZpbGVzIGluIHRoaXMgZGlyZWN0b3J5IGNhbiBiZSBsaXN0ZWQnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5bmFtZSddID0gJ0NhdGVnb3J5IE5hbWUnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5cGF0aCddID0gJ1NlcnZlciBQYXRoJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVkaXJlY3RvcnknXSA9ICdEZWxldGUgY2F0ZWdvcnkgZGlyZWN0b3J5Pyc7CiRsYW5nWydwcm9tcHRfbWF4X3VwbG9hZHNpemUnXSA9ICdNYXhpbXVtIGZpbGUgc2l6ZSBhbGxvd2VkIChLYiknOwokbGFuZ1sncHJvbXB0X3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnXSA9ICdWYWxpZCB1cGxvYWQgZXh0ZW5zaW9ucyc7CiRsYW5nWydzY2FuJ10gPSAnU2Nhbic7CiRsYW5nWydzZWxlY3RjYXRlZ29yeSddID0gJ1NlbGVjdCBDYXRlZ29yeSc7CiRsYW5nWydzaXplJ10gPSAnU2l6ZSc7CiRsYW5nWydzaXpla2InXSA9ICdTaXplIChLYiknOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3N1bW1hcnlfdGVtcGxhdGUnXSA9ICdTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdTdW1tYXJ5JzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnVXBsb2FkcyBNb2R1bGUnOwokbGFuZ1sndGl0bGVfbW9kX2FkbWluJ10gPSAnTW9kdWxlIEFkbWluIFBhbmVsJzsKJGxhbmdbJ3RpdGxlX21vZF9wcmVmcyddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7CiRsYW5nWyd0aXRsZV9zaW5nX2xvdWRseSddID0gJ1NpbmcgTG91ZGx5Pyc7CiRsYW5nWyd0aXRsZV9zdWJuZXRfZXhjbHVzaW9ucyddID0gJ0V4Y2x1ZGUgc3VibmV0cyBmcm9tIHN0YXRpc3RpY3MnOwokbGFuZ1sndGl0bGVfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyddID0gJ1ZhbGlkIEV4dGVuc2lvbnMnOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWyd1cGxvYWRlZCddID0gJ0ZpbGUgJXMgd2FzIHVwbG9hZGVkIGJ5ICVzLic7CiRsYW5nWydyZXBsYWNlZCddID0gJ0ZpbGUgJXMgd2FzIHJlcGxhY2VkIGJ5ICVzLic7CiRsYW5nWydkZWxldGVkJ10gPSAnRmlsZSAlcyB3YXMgZGVsZXRlZC4nOwokbGFuZ1sndXBsb2FkZm9ybV90ZW1wbGF0ZSddID0gJ1VwbG9hZCBUZW1wbGF0ZSc7CiRsYW5nWyd1c2VybmFtZSddID0gJ1VzZXJuYW1lJzsKJGxhbmdbJ3dhcm5pbmdfZGVsZXRlY2F0ZWdvcnknXSA9ICdXQVJOSU5HOiBVc2UgY2F1dGlvbiB3aGVuIGRlbGV0aW5nIGNhdGVnb3JpZXMuICBGaWxlcyBtYXkgYmUgbG9zdCc7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5XZWxjb21lIHRvIHRoZSBVcGxvYWRzIE1vZHVsZSBhZG1pbiBzZWN0aW9uLiBTb21ldGhpbmcgZWxzZSB3b3VsZCBwcm9iYWJseSBnbyBoZXJlIGlmIHRoZSBtb2R1bGUgYWN0dWFsbHkgZGlkIHNvbWV0aGluZy48L3A+JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE0ODQ4NTE0MS44LjMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPXdpa2kuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvVXNlcl9IYW5kYm9va3x1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMTE3OTYxMTE3LjExNDczNDY2NjguMTE0ODkwNjYyMC4xMTQ4OTk2ODMxLjEzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnlpZCddID0gJ0VzIHd1cmRlIGtlaW5lIEthdGVnb3JpZS1JRCBlaW5nZWdlYmVuJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdFcyB3dXJkZSBrZWluZSBLYXRlZ29yaWUtSUQgZWluZ2VnZWJlbic7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFcyBleGlzdGllcnQgYmVyZWl0cyBlaW4gVGVtcGxhdGUgbWl0IGRpZXNlbSBOYW1lbi4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ1RlbXBsYXRlLU5hbWUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUnOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnRWluIG5ldWVzIFRlbXBsYXRlIGVyc3RlbGxlbic7CiRsYW5nWydoZWxwX09uRG93bmxvYWQnXSA9ICc8cD5FaW4gRXJlaWduaXMsIHdlbm4gZWluIFVzZXIgZWluZSBEYXRlaSBoZXJ1bnRlcmdlbGFkZW4gaGF0PC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmlkPC9lbT4gLSBJRCBkZXIgaG9jaGdlbGFkZW5lbiBEYXRlaTwvbGk+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIERhdGVpbmFtZTwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBJUC1BZHJlc3NlIGRlcyBoZXJ1bnRlcmxhZGVuZGVuIFVzZXJzPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PbkRlbGV0ZUNhdGVnb3J5J10gPSAnDQo8cD5FaW4gRXJlaWduaXMsIHdlbm4gZWluZSBLYXRlZ29yaWUgZ2VsJm91bWw7c2NodCB3dXJkZTwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBOYW1lIGRlciBLYXRlZ29yaWU8L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBQZmFkIGRlciBLYXRlZ29yaWU8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uQ3JlYXRlQ2F0ZWdvcnknXSA9ICcNCjxwPkVpbiBFcmVpZ25pcywgd2VubiBlaW5lIEthdGVnb3JpZSBlcnN0ZWxsdCB3dXJkZTwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBOYW1lIGRlciBLYXRlZ29yaWU8L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gQmVzY2hyZWlidW5nIGRlciBLYXRlZ29yaWU8L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBLYXRlZ29yaWVwZmFkPC9saT4NCjxsaT48ZW0+cGF0aDwvZW0+IC0gRWluIEZsYWcsIGRlciBhbnplaWd0LCBvYiBkaWUgS2F0ZWdvcmllIGdlbGlzdGV0IHdlcmRlbiBzb2xsPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PblJlbW92ZSddID0gJw0KPHA+RWluIEVyZWlnbmlzLCB3ZW5uIGVpbmUgRGF0ZWkgJnV1bWw7YmVyIGRpZSBBZG1pbmlzdHJhdGlvbiBvZGVyIGRhcyBGcm9udGVuZCBlbnRmZXJudCB3aXJkPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIE5hbWUgZGVyIGVudGZlcm50ZW4gRGF0ZWk8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gSUQgZGVyIGVudGZlcm50ZW4gRGF0ZWk8L2xpPg0KPGxpPjxlbT5jYXRlZ29yeV9pZDwvZW0+IC0gSUQgZGVyIEthdGVnb3JpZTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25VcGxvYWQnXSA9ICcNCjxwPkVpbiBFcmVpZ25pcywgd2VubiBlaW5lIERhdGVpICZ1dW1sO2JlciBkaWUgQWRtaW5pc3RyYXRpb24gb2RlciBkYXMgRnJvbnRlbmQgaG9jaGdlbGFkZW4gd2lyZDwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5jYXRlZ29yeTwvZW0+IC0gTmFtZSBkZXIgS2F0ZWdvcmllPC9saT4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gTmFtZSBkZXIgaG9jaGdlbGFkZW5lbiBEYXRlaTwvbGk+DQo8bGk+PGVtPnNpemU8L2VtPiAtIEdyJm91bWw7JnN6bGlnO2UgZGVyIGhvY2hnZWxhZGVuZW4gRGF0ZWk8L2xpPg0KPGxpPjxlbT5zdW1tYXJ5PC9lbT4gLSBLdXJ6YmVzY2hyZWlidW5nIGRlciBob2NoZ2VsYWRlbmVuIERhdGVpIChrYW5uIGxlZXIgc2Vpbik8L2VtPjwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBkaWUgbGFuZ2UgQmVzY2hyZWlidW5nIGRlciBob2NoZ2VsYWRlbmVuIERhdGVpIChrYW5uIGxlZXIgc2Vpbik8L2VtPjwvbGk+DQo8bGk+PGVtPmF1dGhvcjwvZW0+IC0gQXV0b3IgZGVyIGhvY2hnZWxhZGVuZW4gRGF0ZWkgKGZhbGxzIHZlcmYmdXVtbDtnYmFyKTwvZW0+PC9saT4NCjxsaT48ZW0+aXBfYWRkcmVzczwvZW0+IC0gSW50ZXJuZXQtQWRyZXNzZSBkZXMgQ2xpZW50cywgZGVyIGRpZSBEYXRlaSBob2NoZ2VsYWRlbiBoYXQ8L2xpPg0KPC91bD4nOwokbGFuZ1snaW5mb19ldmVudF9vbmRlbGV0ZWNhdGVnb3J5J10gPSAnRXJlaWduaXMsIHdlbm4gZWluZSBLYXRlZ29yaWUgZ2VsJm91bWw7c2NodCB3dXJkZSc7CiRsYW5nWydpbmZvX2V2ZW50X29uY3JlYXRlY2F0ZWdvcnknXSA9ICdFcmVpZ25pcywgd2VubiBlaW5lIEthdGVnb3JpZSBlcnN0ZWxsdCB3dXJkZSc7CiRsYW5nWydpbmZvX2V2ZW50X29uZG93bmxvYWQnXSA9ICdFcmVpZ25pcywgd2VubiBlaW5lIERhdGVpIGhlcnVudGVyIGdlbGFkZW4gd3VyZGUnOwokbGFuZ1snaW5mb19ldmVudF9vbnVwbG9hZCddID0gJ0VyZWlnbmlzLCB3ZW5uIGVpbmUgbmV1ZSBEYXRlaSBob2NoZ2VsYWRlbiB3dXJkZSc7CiRsYW5nWydpbmZvX2V2ZW50X29ucmVtb3ZlJ10gPSAnRXJlaWduaXMsIHdlbm4gZWluZSBEYXRlaSBlbnRmZXJudCB3dXJkZSc7CiRsYW5nWyd0aXRsZV91c2VydGFnX29udXBsb2FkJ10gPSAnQmVudXR6ZXJkZWZpbmllcnRlciBUYWcsIGRlciBhdWZnZXJ1ZmVuIHdpcmQsIHdlbm4gZGllIERhdGVpIHZvbGxzdCZhdW1sO25kaWcgaG9jaGdlbGFkZW4gaXN0JzsKJGxhbmdbJ25vbmUnXSA9ICdOaWNodHMnOwokbGFuZ1snbWF0Y2hlc2ZvdW5kJ10gPSAnJlV1bWw7YmVyZWluc3RpbW11bmdlbiBnZWZ1bmRlbic7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RvbnVwbG9hZCddID0gJ0RlbiBVc2VyIG5hY2ggZGVtIEhvY2hsYWRlbiBlaW5lciBEYXRlaSB3ZWl0ZXJsZWl0ZW4gYXVmIFNlaXRlIChpZC9hbGlhcyknOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snY29uZmlybV9wcmVmZXJlbmNlcyddID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgZGllIEVpbnN0ZWxsdW5nZW4gYW5wYXNzZW4gbSZvdW1sO2NodGVuPyc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzdXBsb2FkZWQnXSA9ICdFcyB3dXJkZW4ga2VpbmUgRGF0ZWllbiBob2NoZ2VsYWRlbi4nOwokbGFuZ1sncHJvbXB0X3JlcGxhY2UnXSA9ICcmVXVtbDtiZXJzY2hyZWliZW4gZXJsYXViZW4nOwokbGFuZ1snaW5mb19yZXBsYWNlJ10gPSAnRXJzZXR6dCBlaW5lIERhdGVpIG1pdCBkZW0gZ2xlaWNoZW4gTmFtZW4gKG9obmUgJkF1bWw7bmRlcnVuZyBkZXIgSUQpJzsKJGxhbmdbJ25vX2luaXRpYWwnXSA9ICdXZW5uIGRpZXNlciBGaWx0ZXIgYWt0aXZpZXJ0IGlzdCwgd2VyZGVuIGJlaW0gZXJzdGVuIEF1ZnJ1ZiBrZWluZSBFcmdlYm5pc3NlIGFuZ2V6ZWlndCc7CiRsYW5nWydwYXJhbV9rZXknXSA9ICdFaW4genVzJmF1bWw7dHpsaWNoZXIgU2NobCZ1dW1sO3NzZWwgZiZ1dW1sO3IgZGllIGsmdXVtbDtuZnRpZ2UgVmVyd2FsdHVuZyB2b24gaG9jaGdlbGFkZW5lbiBEYXRlaWVuLiAgRGllc2VyIFNjaGwmdXVtbDtzc2VsIGthbm4gZWluIGVuY29kaWVydGVyIFN0cmluZyB3aWUgZXR3YTogJiMwMzk7ZmV1c2Vyczp1aWQmIzAzOTsgb2RlciAmYXVtbDtobmxpY2ggc2VpbiBrYW5uLiAgRGllc2VyIFBhcmFtZXRlciB3aXJkIG51ciBiZW4mb3VtbDt0aWd0LCB3ZW5uIGRhcyBVcGxvYWRzLU1vZHVsIGluIGVpbmVtIGFuZGVyZW4gTW9kdWwgZWluZ2ViZXR0ZXQgd2lyZCc7CiRsYW5nWydwYXJhbV9ub2F1dGhvciddID0gJ1ZlcmJpcmd0IGRhcyBBdXRvcmVuZmVsZCBpbSBGb3JtdWxhciB6dW0gSG9jaGxhZGVuLiBEaWVzZXIgUGFyYW1ldGVyIGlzdCBudXIgbSZvdW1sO2dsaWNoLCB3ZW5uIGRlciBNb2R1cyAmIzAzOTt1cGxvYWQmIzAzOTsgaXN0LiBXZW5uIGRhcyBGcm9udGVuZFVzZXJzLU1vZHVsIGluc3RhbGxpZXJ0IGlzdCB1bmQgZWluIFVzZXIgYWt0dWVsbCBlaW5nZWxvZ2d0IGlzdCwgZW50aCZhdW1sO2x0IGRhcyB2ZXJib3JnZW5lIEZlbGQgZGVuIE5hbWVuIGRlcyBlaW5nZWxvZ2d0ZW4gVXNlcnMnOwokbGFuZ1sncGFyYW1fdXBsb2FkX2lkJ10gPSAnDQp1cGxvYWRfaWQ9JnF1b3Q7aWQmcXVvdDsgLSBkZWZpbmllcnQgZWluZSBlaW56ZWxuZSBEYXRlaSBmJnV1bWw7ciBlaW5lbiBMaW5rIG9kZXIgZiZ1dW1sO3IgZGVuIFNpbmdsZS1Nb2R1czwvbGk+JzsKJGxhbmdbJ3BhcmFtX3VzZV9zdHJpY3RfcmVnZXhwJ10gPSAnRGllIEVpbmdhYmVuIGltIEZpbHRlci1GZWxkIHdlcmRlbiBhbHMgc3RyaWt0IHJlZ3VsJmF1bWw7cmUgQXVzZHImdXVtbDtja2Ugb2huZSBWZXJhcmJlaXR1bmcgZGVyIExlZXJ6ZWljaGVuIHZlcndlbmRldCc7CiRsYW5nWydwYXJhbV90ZW1wbGF0ZSddID0gJ1ZlcndlbmRldCBlaW4gVGVtcGxhdGUgbWl0IGRpZXNlbSBOYW1lbiBmJnV1bWw7ciBkaWVzZW4gQmVyaWNodCBiencuIGRhcyBGb3JtdWxhci4gRGllc2VzIFRlbXBsYXRlIHJ1ZnQgZW50c3ByZWNoZW5kIGRlbSBmZXN0Z2VsZWd0ZW4gTW9kdXMgYXV0b21hdGlzY2ggZWluIHdlaXRlcmVzIFRlbXBsYXRlIG1pdCBkZW0gdm9yZ2VnZWJlbmVuIE5hbWVuIGF1Zic7CiRsYW5nWydwYXJhbV9maWx0ZXInXSA9ICdEYXMgRmlsdGVyLUZvcm11bGFyIGFuemVpZ2VuJzsKJGxhbmdbJ3BhcmFtX25vX2ludGl0aWFsJ10gPSAnTnVyIG4mdXVtbDt0emxpY2gsIHdlbm4gZGVyIEZpbHRlci1QYXJhbWV0ZXIgZ2VzZXR6dCB3dXJkZS4gU3RhbmRhcmRtJmF1bWw7JnN6bGlnO2lnIHplaWd0IGRpZXNlciBQYXJhbWV0ZXIgYW4sIHdlbGNoZSBlaW5sZWl0ZW5kZW4gRXJnZWJuaXNzZSB6dXImdXVtbDtja2dlZ2ViZW4gd2VyZGVuIHNvbGxlbi4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnICANCiAgPHA+U29ydGllcnJlaWhlbmZvbGdlDQogIDx1bD4NCiAgPGxpPjxlbT5kYXRlX2FzYzwvZW0+IC0gc29ydGllcnQgYXVmc3RlaWdlbmQgbmFjaCBEYXR1bTwvbGk+DQogIDxsaT48ZW0+ZGF0ZV9kZXNjPC9lbT4gLSBzb3J0aWVydCBhYnN0ZWlnZW5kIG5hY2ggRGF0dW08L2xpPg0KICA8bGk+PGVtPm5hbWVfYXNjPC9lbT4gLSBzb3J0aWVydCBhdWZzdGVpZ2VuZCBuYWNoIE5hbWU8L2xpPg0KICA8bGk+PGVtPm5hbWVfZGVzYzwvZW0+IC0gc29ydGllcnQgYWJzdGVpZ2VuZCBuYWNoIE5hbWU8L2xpPg0KICA8bGk+PGVtPnNpemVfYXNjPC9lbT4gLSBzb3J0aWVydCBhdWZzdGVpZ2VuZCBuYWNoIEdyJm91bWw7JnN6bGlnO2U8L2xpPg0KICA8bGk+PGVtPnNpemVfZGVzYzwvZW0+IC0gc29ydGllcnQgYWJzdGVpZ2VuZCBuYWNoIEdyJm91bWw7JnN6bGlnO2U8L2xpPg0KICA8bGk+PGVtPmRlc2NfYXNjPC9lbT4gLSBzb3J0aWVydCBhdWZzdGVpZ2VuZCBuYWNoIEJlc2NocmVpYnVuZzwvbGk+DQogIDxsaT48ZW0+ZGVzY19kZXNjPC9lbT4gLSBzb3J0aWVydCBhYnN0ZWlnZW5kIG5hY2ggQmVzY2hyZWlidW5nPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfYXNjPC9lbT4gLSBzb3J0aWVydCBhdWZzdGVpZ2VuZCBuYWNoIEF1dG9yPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfZGVzYzwvZW0+IC0gc29ydGllcnQgYWJzdGVpZ2VuZCBuYWNoIEF1dG9yPC9saT4NCiAgPGxpPjxlbT5pcF9hc2M8L2VtPiAtIHNvcnRpZXJ0IGF1ZnN0ZWlnZW5kIG5hY2ggSVAtQWRyZXNzZTwvbGk+DQogIDxsaT48ZW0+aXBfZGVzYzwvZW0+IC0gc29ydGllcnQgYWJzdGVpZ2VuZCBuYWNoIElQLUFkcmVzc2U8L2xpPg0KICA8bGk+PGVtPnJhbmRvbTwvZW0+IC0genVmJmF1bWw7bGxpZ2UgUmVpaGVuZm9sZ2U8L2xpPg0KICA8L3VsPg0KICA8L3A+JzsKJGxhbmdbJ3BhcmFtX2ZpbGVleHRlbnNpb25zJ10gPSAnDQpmaWxlX2V4dGVuc2lvbnM9JnF1b3Q7ZXh0MSxleHQyLGV4dDMmcXVvdDsNCjxwPmlzdCBudXIgZyZ1dW1sO2x0aWcsIHdlbm4gbW9kZT11cGxvYWQgaXN0LCBkaWVzZXIgUGFyYW1ldGVyIGJlc2NociZhdW1sO25rdCBkaWUgRGF0ZWl0eXBlbiwgZGllIGhvY2hnZWxhZGVuIHdlcmRlbiBrJm91bWw7bm5lbi4gIERpZSBWb3JlaW5zdGVsbHVuZ2VuIGRlcyBNb2R1bHMgd2VyZGVuIGRhYmVpICZ1dW1sO2JlcnNjaHJpZWJlbi48L3A+JzsKJGxhbmdbJ3BhcmFtX2NvdW50J10gPSAnDQpjb3VudD0mcXVvdDtOJnF1b3Q7DQo8cD5FaW4gUGFyYW1ldGVyLCB1bSBudXIgZGllIGVyc3RlbiAmcXVvdDtOJnF1b3Q7IEVyZ2Vibmlzc2UgZWluZXIgQWJmcmFnZSBhdWZ6dWxpc3Rlbi4gRWluIFNlaXRlbnVtYnJ1Y2ggdyZhdW1sO3JlIHp3YXIgYmVzc2VyLCBhYmVyIGJpcyBkYWhpbiBnaWJ0cyBkaWVzZW4gVHJpY2suPC9wPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJw0KY2F0ZWdvcnk9JnF1b3Q7bmFtZSZxdW90Ow0KPHA+PGI+SGlud2Vpczo8L2I+IGNhdGVnb3J5IGthbm4gYXVjaCBkZW4gV2VydCAmcXVvdDthbGwmcXVvdDsgaGFiZW4uIERhbm4gd2VyZGVuIGFsbGUgaG9jaGdlbGFkZW5lbiBEYXRlaWVuIGluIGFsbGVuIDxlbT5nZWxpc3RldGVuPC9lbT4gS2F0ZWdvcmllbiBhbmdlemVpZ3QuPC9wPic7CiRsYW5nWydwYXJhbV9tb2RlJ10gPSAnIA0KIDx1bD4NCiAgPGxpPjxlbT5kZXRhaWxlZDwvZW0+IC0gemVpZ3QgZWluZSBkZXRhaWxsaWVydGUgTGlzdGUgYWxsZXIgRGF0ZWllbiBkaWVzZXIgS2F0ZWdvcmllPC9saT4NCiAgPGxpPjxlbT51cGxvYWQ8L2VtPiAtIHplaWd0IGVpbiBGb3JtdWxhciwgdW0gQmVzdWNoZXJuIGRlciBTaXRlIGRhcyBIb2NobGFkZW4gZWluZXIgRGF0ZWkgenUgZXJtJm91bWw7Z2xpY2hlbjwvbGk+DQogIDxsaT48ZW0+dXJsIDxpPm9yPC9pPiBsaW5rPC9lbT4gLSB6ZWlndCBlaW5lbiBMaW5rIHp1IGVpbmVyIERhdGVpPC9saT4NCiAgPGxpPjxlbT5zdW1tYXJ5PC9lbT4gLSB6ZWlndCBlaW5lIHp1c2FtbWVuZ2VmYXNzdGUgTGlzdGUgYWxsZXIgRGF0ZWllbiBkaWVzZXIgS2F0ZWdvcmllPC9saT4NCiAgPGxpPjxlbT5zaW5nbGU8L2VtPiAtIHplaWd0IGVpbmVuIGRldGFpbGxpZXJ0ZW4gQmVyaWNodCAmdXVtbDtiZXIgZWluZSBiZXN0aW1tdGUsIGhvY2hnZWxhZGVuZSBEYXRlaTwvbGk+DQogIDwvdWw+JzsKJGxhbmdbJ3JldHVybnRvbW9kdWxlJ10gPSAnWnVyJnV1bWw7Y2sgenVyIE1vZHVsb2JlcmZsJmF1bWw7Y2hlJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcmllcyddID0gJ0VzIHd1cmRlbiBrZWluZSBLYXRlZ29yaWVuIGRlZmluaWVydC4nOwokbGFuZ1sndGl0bGVfZW5mb3JjZWV4dGVuc2lvbnMnXSA9ICdFcmZvcmRlcnQgTmFtZW5zZXJ3ZWl0ZXJ1bmdlbiBmJnV1bWw7ciBhbGxlIGhvY2hnZWxhZGVuZW4gRGF0ZWllbic7CiRsYW5nWydyZXN0b3JlZGVmYXVsdHNjb25maXJtJ10gPSAnRGllcyBzZXR6dCBkYXMgVGVtcGxhdGUgYXVmIGRlbiBTeXN0ZW1zdGFuZGFyZCB6dXImdXVtbDtjay4gQWxsZSAmQXVtbDtuZGVydW5nZW4gZ2VoZW4gZGFiZWkgdmVybG9yZW4uIFdvbGxlbiBTaWUgd2lya2xpY2ggZm9ydGZhaHJlbj8nOwokbGFuZ1snaW5mb190aHVtYm5haWwnXSA9ICdFaW4gb3B0aW9uYWxlcyBWb3JzY2hhdWJpbGQnOwokbGFuZ1sndGh1bWJuYWlsJ10gPSAnVm9yc2NoYXViaWxkJzsKJGxhbmdbJ2luZm9fc3VtbWFyeSddID0gJ0VpbmUga3VyemUgQmVzY2hyZWlidW5nIGRlciBEYXRlaSAod2lyZCBkaWVzIGxlZXIgZ2VsYXNzZW4sIHdpcmQgZGVyIERhdGVpbmFtZSBvaG5lIEVyd2VpdGVydW5nIHZlcndlbmRldCknOwokbGFuZ1snaW5mb19jYXRlZ29yeW5hbWUnXSA9ICdFaW4ga3VyemVyIE5hbWUgZiZ1dW1sO3IgSWhyZSBLYXRlZ29yaWUnOwokbGFuZ1snaW5mb19jYXRlZ29yeWRlc2MnXSA9ICdFaW5lIEJlc2NocmVpYnVuZyBJaHJlciBLYXRlZ29yaWUnOwokbGFuZ1snaW5mb19jYXRlZ29yeXBhdGgnXSA9ICdEYXMgVW50ZXJ2ZXJ6ZWljaG5pcyBpbSBWZXJ6ZWljaG5pcyBVcGxvYWRzLCB3ZWxjaGVzIGYmdXVtbDtyIGRpZSBTcGVpY2hlcnVuZyBkZXIgRGF0ZWllbiBkaWVzZXIgS2F0ZWdvcmllIGdlbnV0enQgd2VyZGVuIHNvbGwuIEZhbGxzIGVpbiBWZXJ6ZWljaG5pcyBtaXQgZGllc2VtIE5hbWVuIG5vY2ggbmljaHQgZXhpc3RpZXJ0LCB3aXJkIGVzIGVyemV1Z3QuJzsKJGxhbmdbJ2luZm9fZGVzdG5hbWUnXSA9ICdWZXJ3ZW5kZW4gU2llIGRhcyBGZWxkICYjMDM5O0hvY2hsYWRlbiBhbHMmIzAzOTssIHVtIGRlbiBOYW1lbiBkZXIgaG9jaGdlbGFkZW5lbiBEYXRlaSB6dSB2ZXImYXVtbDtuZGVybi4gV2VubiBkYXMgRmVsZCBsZWVyIGJsZWlidCwgd2lyZCBkZXIgRGF0ZWluYW1lIG5pY2h0IHZlciZhdW1sO25kZXJ0Lic7CiRsYW5nWydlcnJvcl9jYW50Y3JlYXRlZGlyZWN0b3J5J10gPSAnRGFzIFZlcnplaWNobmlzIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW4uJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnRGllIFZlcmJpbmR1bmcgenVtIENNU01haWxlci1Nb2R1bCBrb25udGUgbmljaHQgaGVyZ2VzdGVsbHQgd2VyZGVuLic7CiRsYW5nWyd1cGxvYWRfbm90aWZpY2F0aW9uJ10gPSAnRXMgd3VyZGUgZWluZSBuZXVlIERhdGVpIGhvY2hnZWxhZGVuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF9vbl91cGxvYWQnXSA9ICdCZW5hY2hyaWNodGlndW5nICZ1dW1sO2JlciBlaW5lIGhvY2hnZWxhZGVuZSBEYXRlaSBzZW5kZW4gYW46JzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwtVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZHVtbXlfaW5kZXhfaHRtbCddID0gJ1NvbGwgaW4gamVkZW0gVmVyemVpY2huaXMgZWluZSBEdW1teS1pbmRleC5odG1sLURhdGVpIGVyc3RlbGx0IHdlcmRlbj88YnIvPjxlbT5CZXJlaXRzIGV4aXN0aWVyZW5kZSBpbmRleC5odG1sLURhdGVpZW4gYmxlaWJlbiBlcmhhbHRlbjwvZW0+JzsKJGxhbmdbJ2Fib3V0J10gPSAnJlV1bWw7YmVyJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdadWdyaWZmIHZlcndlaWdlcnQuIEJpdHRlICZ1dW1sO2JlcnByJnV1bWw7ZmVuIFNpZSBJaHJlIEJlcmVjaHRpZ3VuZ2VuLic7CiRsYW5nWydlcnJvcl9jb3VsZG5vdHdyaXRlJ10gPSAnS29ubnRlIG5pY2h0IGdlc2NocmllYmVuIHdlcmRlbi4nOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2FsbCddID0gJ0FsbGUnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpbmQgU2llIHNpY2hlcj8nOwokbGFuZ1snYXV0aG9yJ10gPSAnQXV0b3InOwokbGFuZ1snY2FuY2VsJ10gPSAnQWJicmVjaGVuJzsKJGxhbmdbJ2Nhbm5vdG1vZGlmeXBhdGgnXSA9ICcoRGVyIFBmYWQga2FubiBuaWNodCB2ZXImYXVtbDtuZGVydCB3ZXJkZW4uKSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllbic7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydtZXNzYWdlX2NhdGVnb3J5YWRkZWQnXSA9ICdEaWUgS2F0ZWdvcmllIHd1cmRlIGVyZm9sZ3JlaWNoIGhpbnp1Z2VmJnV1bWw7Z3QuJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT4NCjxwPlZlcnNpb24gMS4wLiAtIFNlcHRlbWJlciAyMDA1LjwvcD4NCjxwPiBJbml0aWFsIFJlbGVhc2UuPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wMS4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPk1pbm9yIGZpeGVzLjwvcD48L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAyLiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgYWJpbGl0eSB0byBzcGVjaWZ5IHNvcnQgb3JkZXI8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAzLiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+Rml4IHJlZ2FyZGluZyBjb25mbGljdCBpbiB0ZW1wbGF0ZSBuYW1lczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDQuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCBhYmlsaXR5IHRvIHJlLXNjYW4gYSBkaXJlY3RvcnksIGFuZCB0byB1cGxvYWQgZmlsZXMgZnJvbSB0aGUgYWRtaW4gcGFnZTwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDUuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5GaXhlZCBzb21lIFBIUCB2YXJpYWJsZSBpc3N1ZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA2LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgYXV0aG9yIGZpZWxkIHRvIHRoZSBhZG1pbiBwYW5lbCB1cGxvYWQgZm9ybSwgYWRkZWQgYSBzdW1tYXJ5IGZpZWxkLCBhbmQgbWFkZSBkZXNjcmlwdGlvbiBhIHRleHQgYXJlYSwgYW5kIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkgYSBkZXN0aW5hdGlvbiBmaWxlIG5hbWU8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA3LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gcmVuYW1lIGZpbGVzIGFuZCBmaXhlZCBhIHNjYW4gZXJyb3I8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA4LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QmV0dGVyIGhhbmRsaW5nIG9mIG5hbWVzIHdpdGggc3BhY2VzLCBhbmQgYSBmZXcgbWlub3IgZXJyb3JzIGZpeGVkLiAgQWRkZWQgc3dlZGlzaCB0cmFuc2xhdGlvbiAodGhhbmtzIHdlc3Rpcyk8L3A+PC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjAuIC0gT2N0b2JlciAyMDA1PC9wPg0KIDx1bD4NCiAgIDxsaT5Nb2RpZmllZCBBdHRlbXB0VXBsb2FkIGZ1bmN0aW9uIHNvIGl0IGNvdWxkIGJlIGNhbGxlZCBleHRlcm5hbGx5PC9saT4NCiAgIDxsaT5BZGRlZCBHZXRVcGxvYWREZXRhaWxzIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbGwgb2YgdGhlIGRldGFpbHMgYWJvdXQgYSBtb2R1bGUsIGluY2x1ZGluZyBhIGxpbms8L2xpPg0KICAgPGxpPkFkZGVkIFJlZGlyZWN0cyBzbyB0aGF0IHdvcmtpbmcgd2l0aCB0aGUgbW9kdWxlIGlzIGFsb3QgbmljZXIsIGl0IHJldHVybnMgdG8gdGhlIHJpZ2h0IHRhYjwvbGk+DQogICA8bGk+Q2hhbmdlZCB0aGUgZnJvbnQgdGVtcGxhdGUgdG8gbG9vayBhIGxpdHRsZSBiZXR0ZXIgYW5kIG1ha2UgbW9yZSBzZW5zZTwvbGk+DQogICA8bGk+Rml4ZXMgdG8gdGhlIHVwbG9hZHMgc3R1ZmYgc28gdGhhdCB0aGUgZGVzY3JpcHRpb24gaXMgc2V0LCBhbmQgbmFtZSBhbmQgc3VtbWFyeSBhcmUgcHV0IGluIHRoZSByaWdodCBwbGFjZTwvbGk+DQogICA8bGk+Rml4ZXMgdG8gZXZlbiBiZXR0ZXIgaGFuZGxlIHNwYWNlcyBpbiBuYW1lczwvbGk+DQogICA8bGk+T3B0aW9uYWx5IHBsYWNlIGR1bW15IGluZGV4Lmh0bWwgZmlsZXMgaW4gZWFjaCB1cGxvYWQgZGlyZWN0b3J5PC9saT4NCiAgIDxsaT5JZiBzcGVjaWZ5aW5nIGEgZGVzdGluYXRpb24gbmFtZSwgYW5kIG5vIGV4dGVuc2lvbiBpcyBnaXZlbiwgdGhlIGV4dGVuc2lvbiBvZiB0aGUgb3JpZ2luYXRpbmcgZmlsZSAoaWYgYW55IGV4aXN0cyBpcyB1c2VkPC9saT4NCiA8L3VsPg0KIDxwPjxlbT48Yj5JbXBvcnRhbnQhPC9iPjwvZW0+PGJyLz5JdCBpcyBub3QgcG9zc2libGUgdG8gdXBncmFkZSBmcm9tIGFueSBvdGhlciB2ZXJzaW9uIG9mIHRoZSBVcGxvYWRzIG1vZHVsZSB0byAxLjEuMC4gIFRoaXMgaXMgZHVlIHRvIHNvbWUgZXJyb3JzIHRoYXQgd2VyZSBtYWRlIGluIHRoZSBkYXRhYmFzZSByb3V0aW5lcywgYW5kIGV2ZW4gaW4gdGhlIHVwZ3JhZGUgcm91dGluZSBpbiAxLjAuNi4gIFlvdSBtdXN0IGRlLWluc3RhbGwgdGhlIG9sZCB2ZXJzaW9uLCBhbmQgdGhlbiByZS1pbnN0YWxsIHRoZSBuZXcgdmVyZXNpb24uIFRoaXMgd2lsbCBjYXVzZSBzaWduaWZpY2FudCBkaWZmaWN1bHR5IGlmIHlvdSBoYXZlIGRzY3JpcHRpb25zLCBldGMsIGluIHlvdXIgdGFibGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkZpeGVkIGEgY291cGxlIG9mIG1pbm9yIGJ1Z3MgaW4gdGhlIEdldFVwbG9hZERldGFpbHMgYW5kIGFkZGVkIGFub3RoZXIgbGluayAob3IgYSB1cmwpIHRvIHRoZSB1cGxvYWRlZCBmaWxlLjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4yLiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5GaXhlZCB0aGUgVVJMIGZpZWxkIGluIEdldFVwbG9hZERldGFpbHMgdG8gcmV0dXJuIGEgZG93bmxvYWQgbGluayBhbmQgYWRkZWQgYW4gYWJzdXJsIGZpZWxkIHdoaWNoIHJldHVybnMgdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGZpbGUgb24gdGhlIHdlYnNlcnZlci4gIENsaWNrcyBvbiB0aGlzIGxpbmsgd2lsbCBub3QgYmUgY291bnRlZDwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4zLiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5GaXhlZCB0aGUgdXBncmFkZSBwcm9ibGVtIGZyb20gdGhlIDEuMC54IHNlcmllcy4gIFVzZXJzIG9mIHRoZSAxLjAueCBzZXJpZXMgc2hvdWxkIGJlIGFibGUgdG8gdXBncmFkZSB0byAxLjEuMyBub3cgd2l0aCBubyBkaWZmaWN1bHR5LiA8Yj5UaG9zZSBhcmUgZmFtb3VzIGxhc3Qgd29yZHMsIHBsZWFzZSBiYWNrdXAgZmlyc3Q8L2I+LiBGaXhlZCB0aGUgY29udGVudCByZWRpcmVjdCB0aGluZ3MgdGhhdCB3ZXJlIGlycml0YXRpbmcgbWUuICBBbHNvIGFkZGVkIGNhdGVnb3J5PWFsbCB0byBsaXN0IGFsbCBvZiB0aGUgdXBsb2FkcyBpbiBhbGwgbGlzdGFibGUgY2F0ZWdvcmllcyA8ZW0+KGxldHMgYWxsIGhvcGUgSSBnb3QgdGhlIHNxbCBmaWd1cmVkIG91dCBwcm9wZXJseSk8L2VtPi48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNC4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+QWRkZWQgdGhlIGNvdW50IHBhcmFtZXRlciB0byBsaXN0IG9ubHkgdGhlIGZpcnN0IE4gcmVjb3JkcywgYW5kIGFkZGVkICZxdW90O3N1bW1hcnlsaW5rJnF1b3Q7LCBhbmQgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgdG8gdGhlIHRlbXBsYXRlcyBmb3Igd2VzdGlzLiAgRm9yIGV4YW1wbGVzIG9uIGhvdyB0byB1c2UgdGhlbSByZXNldCB5b3VyIHRlbXBsYXRlcyBiYWNrIHRvIGRlZmF1bHQuPC9wPjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS41LiAtIE5vdmVtYmVyLCAyMDA1PC9wPg0KPHA+QWRkZWQgZW1haWwgbm90aWZpY2F0aW9uIGFuZCBzb21lIGJ1ZyBmaXhlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS42LiAtIE5vdmVtYmVyLCAyMDA1PC9wPg0KPHA+QWRkZWQgYW4gYXBpIGZ1bmN0aW9uIGFuZCBmaXhlZCBzb21lIHJlZGlyZWN0aW9uIHN0dWZmPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjcuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5Nb3JlIEFQSSBmdW5jdGlvbnMsIGFuZCBub3cgaWdub3JlIGRvdCBmaWxlcyB3aGVuIHNjYW5uaW5nLiAgRW1haWwgbm90aWZpY2F0aW9uIGlzIG5vdyBpbi48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuOC4gLSBKYW51YXJ5LCAyMDA2PC9wPg0KPHA+KiBJbXByb3ZlZCBkb2NzIHdydCBhcGFjaGUgYW5kIHBocCBjb25maWdzLjwvcD4NCjxwPiogRml4ZWQgcHJvYmxlbSB3aGVyZSBmaWxlc2l6ZSB3YXMgc2hvd2luZyB1cCBhcyAwLjwvcD4NCjxwPiogTW9kaWZpZWQgcGVybWlzc2lvbnMgdG8gYmUgbW9yZSBncmFudWxhcjwvcD4NCjxwPiogQWRkZWQgc29tZSBjb21tZW50cyBhbmQgdmVyYm9zaXR5IHRvIHRoZSBjYXRlZ29yeSBhbmQgdXBsb2FkcyBmb3JtcyBpbiB0aGUgYWRtaW4gc2VjdGlvbjwvcD4NCjxwPiogQWRkZWQgJnF1b3Q7cmFuZG9tJnF1b3Q7IHNvcnQgb3JkZXI8L3A+DQo8cD4qIFNvbWUgUEhQNSBmaXhlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS45LiAtIEphbnVhcnksIDIwMDY8L3A+DQo8cD4qIEFkZGVkIHRoZSBhYmlsaXR5IHRvIHVwbG9hZCBhIHRodW1ibmFpbCBpbWFnZTwvcD4NCjxwPiogU29tZSBpbXByb3ZlZCBhdWRpdGluZzwvcD4NCjxwPiogeG1sIG5vdyBhZGRlZCB0byB0aGUgZGVmYXVsdCBmaWxlIHR5cGVzIChuZXcgaW5zdGFsbHMgb25seSk8L3A+DQo8cD4qIEFkZGVkIGEgY29uZmlybWF0aW9uIG1lc3NhZ2UgdG8gdGhlIHJlc2V0IHRvIGRlZmF1bHRzIGJ1dHRvbnMgb2YgdGhlIHRlbXBsYXRlIHBhZ2VzLjwvcD4NCjxwPiogQWRkZWQgdGhlIGZpbGVfZXh0ZW5zaW9ucyBwYXJhbWV0ZXIgZm9yIHRoZSB1cGxvYWQgZm9ybTwvcD4NCjxwPiogVGhlIGN1cnJlbnQgY2F0ZWdvcnkgc2VsZWN0ZWQgaW4gdGhlIGZpbGVzIGZpbHRlciBpcyBzdGlja3kuDQo8cD4qIEFkZGVkIGEgcHJlZmVyZW5jZSB0byBlbmZvcmljZSBmaWxlbmFtZSBleHRlbnNpb25zIChkZWZhdWx0cyB0byBvbik8L3A+DQo8cD4qIEFkZGVkIGEgbGluayB0byB0aGUgZWRpdCBwYWdlLCBpbiB0aGUgbmFtZSBjb2x1bW4gb2YgdGhlIGZpbGVzIGxpc3QuPC9wPg0KPHA+KiBNaW5vciBjaGFuZ2VzIHRvIHRoZSBsYXlvdXQgYW5kIHRleHQgdG8gYWRkIGNsYXJpdHkuPC9wPg0KPHA+KiBBZGRlZCBkb3dubG9hZF91cmwgYXMgYW4gYXZhaWxhYmxlIHNtYXJ0eSB0YWcgaW4gdGhlIHRlbXBsYXRlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMC4gLSBGZWJydWFyeSwgMjAwNjwvcD4NCjxwPiogU3VtbWFyeSBub3cgZGVmYXVsdHMgdG8gdGhlIGZpbGVuYW1lICh3aXRob3V0IHRoZSBleHRlbnNpb24pIGlmIG5vbmUgaXMgc3BlY2lmaWVkPC9wPg0KPHA+KiBOb3cgY29ycmVjdGx5IGhhbmRsZSBpZiB0aGUgdGh1bWJuYWlsIGV4dGVuc2lvbiBpcyBub3QgaW4gdGhlIGFjY2VwdGVkIGV4dGVuc2lvbiBsaXN0PC9wPg0KPHA+KiBObyBsb25nZXIgZGlzcGxheSBhbnkgY29udGVudCBpbiB0aGUgZmlsZXMgdGFiIGlmIHRoZXJlIGFyZSBubyBjYXRlZ29yaWVzIGRlZmluZWQ8L3A+DQo8cD4qIERpc3BsYXkgYSBsaW5rIGluIHRoZSBlcnJvciBwYWdlIHRoYXQgdGFrZXMgeW91IGJhY2sgdG8gdGhlIG1haW4gYWRtaW4gcGFuZWw8L3A+DQo8cD4qIEFsbG93IGZvciByZXBsYWNpbmcgb2YgdXBsb2FkZWQgZmlsZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTEuIC0gTWFyY2gsIDIwMDY8L3A+DQo8cD5BZGRlZCB0aGUgYWJpbGl0eSBmb3IgYSBsaW5rIHRvIGEgZGV0YWlsZWQgcGFnZSB3aGVuIGluIHN1bW1hcnkgbW9kZS48L3A+DQo8cD5TcGxpdCB0aGUgZGVmYXVsdCBhY3Rpb24gYW5kIGRlZmF1bHRhZG1pbiBhY3Rpb25zIGludG8gc2VwYXJhdGUgZmlsZXMsIGZvciBhIGJpdCBvZiBtZW1vcnkgaW1wcm92ZW1lbnQsIGhvcGVmdWxseTwvcD4NCjxwPkFkZCB0aGUgYWJpbGl0eSB0byByZWRpcmVjdCB0byBhbm90aGVyIHBhZ2UgYWZ0ZXIgYSBmcm9udGVuZCB1c2VyIHVwbG9hZGVkIGEgZmlsZTwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMi4gLSBNYXJjaCwgMjAwNjwvcD4NCjxwPkFkZGVkIHRoZSBzaW5nbGVzdW1tYXJ5IG1vZGUgdG8gZGlzcGxheSBhIHNpbmdsZSB1cGxvYWQgaW4gc3VtbWFyeSBtb2RlPC9QPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEzLiAtIEFwcmlsLCAyMDA2PC9wPg0KPHA+QWRkZWQgb3B0aW9uYWwgZmlsdGVyaW5nIGFuZCBhIGNvdXBsZSBvZiBleHRyYSBwYXJhbWV0ZXJzIHRvIGdvIHdpdGggaXQ8L3A+DQo8cD5GaXhlZCBhIHByb2JsZW0gd2hlcmUgaXQgd291bGQgYWxsb3cgeW91IHRvIG5vdCBlbnRlciBhIHBhdGggd2hlbiBjcmVhdGluZyBhIGNhdGVnb3J5PC9wPg0KPHA+U3BsaXQgc3R1ZmYgaW50byAoc29tZSkgc2VwYXJhdGUgYWN0aW9uIGZpbGVzIGZvciBzb21lIGhvcGVmdWwgcGVyZm9ybWFuY2UgaW5jcmVhc2VzPC9wPg0KPHA+QWRkZWQgY29weXJpZ2h0IG5vdGljZXM8L3A+DQo8cD5DaGFuZ2VkIChvcHRpb25hbCkgZGVwZW5kZW5jeSBmcm9tIFVzZXJJRCB0byBGcm9udEVuZFVzZXJzIE1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjIuMSAtIEFwcmlsLCAyMDA2PC9wPg0KPHA+Q2hhbmdlZCBfc2NhbkRpcmVjdG9yeSB0byBhbiBBUEkgZnVuY3Rpb24gU2NhbkRpcmVjdG9yeSBhbmQgdGhlbiBhZGRlZCBTbWFydFNjYW5EaXJlY3RvcnkgdG8gc2NhbiB0aGUgZGlyZWN0b3J5IGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBzdW1tYXJ5IG9yIGRldGFpbCBsaXN0aW5nIHRvIGhhbmRsZSB0aGUNCmNhc2Ugd2hlcmUgc29tZWJvZHkgdXBsb2FkZWQgZmlsZXMgdmlhIEZUUCBvciBzb21ldGhpbmcgYW5kIGRpZCBub3QgZ28gaW50byB0aGUgYWRtaW4gc2VjdGlvbiB0byB1cGRhdGUgdGhlIGNhdGVnb3JpZXMuPC9wPg0KPHA+Q29ycmVjdGlvbiB0byBhbGwgZGIgYWNjZXNzIHN0dWZmLiBIb3BlZnVsbHkgcHJvdmlkZXMgYSBwZXJmb3JtYW5jZSBpbmNyZWFzZS48L3A+DQo8cD5GaXhlcyB0byB0aGUgYWJvdXQgc3R1ZmYsIG5vdyB1c2UgQ3JlYXRlUGFyYW1ldGVyPC9wPg0KPHA+QWRkZWQgdGhlIHVwbG9hZF90ZW1wbGF0ZSwgc3VtbWFyeV90ZW1wbGF0ZSwgYW5kIGRldGFpbF90ZW1wbGF0ZSAob3B0aW9uYWwpIHBhcmFtZXRlcjwvcD4NCjxwPkFkZGVkIHRoZSBub2F1dGhvciBwYXJhbWV0ZXIsIGFuZCB0aGUga2V5IHBhcmFtZXRlci4gIFRoZSBrZXkgcGFyYW1ldGVyIGFsbG93cyB0aGUgdXBsb2FkcyBtb2R1bGUgdG8gYmUgZW1iZWRkZWQgaW50byBvdGhlciBtb2R1bGVzPC9wPg0KPHA+TW92ZWQgdG8gdW5kZXIgdGhlIGNvbnRlbnQgbWVudSwgYW5kIGVudGl0bGVkICYjMDM5O0ZpbGVzIChVcGxvYWQgTW9kdWxlKSYjMDM5OzwvcD47DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjIuMiAtIEp1bmUsIDIwMDYNCjxwPkFkZGVkIHRoZSBhYmlsaXR5IHRvIGhhdmUgbXVsdGlwbGUgZGF0YWJhc2UgdGVtcGxhdGVzLCBhbmQgdG8gc2VsZWN0IG9uZSBvbiB0aGUgdGFnIHdpdGggdGhlIHRlbXBsYXRlIHBhcmFtZXRlci48L3A+DQo8cD5GaXhlZCBhbiBpc3N1ZSB3aGVyZSBmaWxlcyB3ZXJlIGdldHRpbmcgY29ycnVwdGVkIG9uIGRvd25sb2FkPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4yLjMgLSBKdW5lLCAyMDA2DQo8cD5GaXhlcyB0byB1c2UgYWRvZGItbGl0ZSBwcm9wZXIsIHJhdGhlciB0aGFuIHRlZHMgaGFjazwvcD4NCjxwPkRldGFpbCBsaW5rIG5vdyBkaXNwbGF5cyBpbmxpbmU8L3A+DQo8cD5PdGhlciBtaW5vciB0d2Vha3MgdGhhdCBJIGNhbnQgcmVtZW1iZXI8L3A+DQo8L2xpPg0KPC91bD4nOwokbGFuZ1snZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ2RhdGV1cGxvYWRlZCddID0gJ0hvY2hnZWxhZGVuIGFtJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdWb3JlaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbic7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2NocmVpYnVuZyc7CiRsYW5nWydkZXN0bmFtZSddID0gJ0hvY2hsYWRlbiBhbHMnOwokbGFuZ1snZGV0YWlsX3RlbXBsYXRlJ10gPSAnRGV0YWlsLVRlbXBsYXRlJzsKJGxhbmdbJ2Rvd25sb2FkZWQnXSA9ICdEaWUgRGF0ZWkgJXMgd3VyZGUgaGVydW50ZXJnZWxhZGVuLic7CiRsYW5nWydkb3dubG9hZHMnXSA9ICdIZXJ1bnRlcmdlbGFkZW5lIERhdGVpZW4nOwokbGFuZ1snZWRpdCddID0gJ0JlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdHVwbG9hZCddID0gJ0hvY2hnZWxhZGVuZSBEYXRlaSBiZWFyYmVpdGVuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRmVobGVyISc7CiRsYW5nWydlcnJvcl9wYXRoaW51c2UnXSA9ICdFcyBleGlzdGllcnQgYmVyZWl0cyBlaW5lIEthdGVnb3JpZSBtaXQgZGllc2VtIFBmYWQuJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5ZXhpc3RzJ10gPSAnRmVobGVyOiBEaWUgS2F0ZWdvcmllIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5bm90ZW1wdHknXSA9ICdGZWhsZXI6IERpZSBLYXRlZ29yaWUga2FubiBuaWNodCBnZWwmb3VtbDtzY2h0IHdlcmRlbiwgZGEgc2llIG5pY2h0IGxlZXIgaXN0ISc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeW5vdGZvdW5kJ10gPSAnRmVobGVyOiBLYXRlZ29yaWUgbmljaHQgZ2VmdW5kZW4hJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdGZWhsZXI6IERhdGVuYmFua2ZlaGxlciEnOwokbGFuZ1snZXJyb3JfZW1wdHljYXRlZ29yeSddID0gJ0ZlaGxlcjogS2F0ZWdvcmllLUZlbGQgbGVlciEnOwokbGFuZ1snZXJyb3JfZW1wdHlwYXRoJ10gPSAnRmVobGVyOiBQZmFkIGxlZXIhJzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdGZWhsZXI6IERpZSBEYXRlaSAlcyBleGlzdGllcnQgYmVyZWl0cy4nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmVobGVyOiBEaWUgRGF0ZWkgJXMgd3VyZGUgbmljaHQgZ2VmdW5kZW4uJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0ZlaGxlcjogRGFzIE1vZHVsIHd1cmRlIG1pdCBuaWNodCBhdXNyZWljaGVuZGVuIFBhcmFtZXRlcm4gYXVmZ2VydWZlbiEnOwokbGFuZ1snZXJyb3JfaW52YWxpZGF1dGhvciddID0gJ0ZlaGxlcjogQXV0b3IgdW5nJnV1bWw7bHRpZyAob2RlciBsZWVyKS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNhdGVnb3J5J10gPSAnRmVobGVyOiBLYXRlZ29yaWUgdW5nJnV1bWw7bHRpZyAob2RlciBsZWVyKS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGRlc2NyaXB0aW9uJ10gPSAnRmVobGVyOiBCZXNjaHJlaWJ1bmcgdW5nJnV1bWw7bHRpZyAob2RlciBsZWVyKS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGUnXSA9ICdGZWhsZXI6IERhdGVpbmFtZSB1bmcmdXVtbDtsdGlnIChvZGVyIGxlZXIpLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXBsb2FkZmlsZW5hbWUnXSA9ICdGZWhsZXI6IERhdGVpZW4gbWl0IGRpZXNlciBOYW1lbnNlcndlaXRlcnVuZyBzaW5kIG5pY2h0IGVybGF1YnQgKCVzKS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZHVwbG9hZGlkJ10gPSAnRmVobGVyOiBVbmcmdXVtbDtsdGlnZSBJRCc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzJ10gPSAnRmVobGVyOiBLZWluZSBlbnRzcGVjaGVuZGVuIERhdGVpZW4hJzsKJGxhbmdbJ2ZpbGVzJ10gPSAnRGF0ZWllbic7CiRsYW5nWydmaXhtZSddID0gJ0xlZXJ6ZWljaGVuIGVudGZlcm5lbic7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdEYXRlaWVuIChVcGxvYWRzLU1vZHVsKSc7CiRsYW5nWydoZWxwJ10gPSAnDQo8aDM+V2FzIG1hY2h0IGRpZXNlcyBNb2R1bD88L2gzPg0KPHA+RGFzIE1vZHVsIGVybGF1YnQgZGVuIEJlc3VjaGVybiBJaHJlciBIb21lcGFnZSwgYXVmIElocmVyIFNlaXRlIERhdGVpZW4gaG9jaC0gdW5kIHJ1bnRlcnp1bGFkZW4uIERhYmVpIHdpcmQgcHJvdG9rb2xsaWVydCwgd2VyIGVpbmUgRGF0ZWkgaG9jaGdlbGFkZW4gdW5kIHdlciBlaW5lIERhdGVpIGhlcnVudGVyZ2VsYWRlbiBoYXQuIERlc3dlaXRlcmVuIGsmb3VtbDtubmVuIGRpZSBEYXRlaWVuIGthdGVnb3Jpc2llcnQgd2VyZGVuLiBEaWUgaG9jaGdlbGFkZW5lbiBEYXRlaWVuIGsmb3VtbDtubmVuIHNvIHZlcndhbHRldCB3ZXJkZW4sIHdpZSBkaWVzIGVpbiBBZG1pbmlzdHJhdG9yIGsmb3VtbDtubnRlLjwvcD4gDQo8aDM+V2llIHdpcmQgZXMgZWluZ2VzZXR6dCA/PC9oMz4NCjxwPlVtIGRlbiBCZXN1Y2hlcm4gSWhyZXIgU2VpdGUgZGFzIEhvY2hsYWRlbiB2b24gRGF0ZWllbiB6dSBlcmxhdWJlbiwgc29sbHRlbiBTaWUgZGFzIE1vZHVsIHp1biZhdW1sO2Noc3QgaW5zdGFsbGllcmVuIHVuZCBkYW5uIGVpbmUgb2RlciBtZWhyZXJlIEthdGVnb3JpZW4gKD1WZXJ6ZWljaG5pc3NlKSBmJnV1bWw7ciBkaWUgaG9jaHp1bGFkZW5kZW4gRGF0ZWllbiBlcnN0ZWxsZW4uIERhbm4gZiZ1dW1sO2dlbiBTaWUgZGVuIFRhZyB7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7VXBsb2FkcyZxdW90OyBjYXRlZ29yeT0mcXVvdDtLYXRlZ29yaWUmcXVvdDsgbW9kZT0mcXVvdDtNb2R1cyZxdW90O30gaW4gZWluZSBTZWl0ZSBvZGVyIGVpbiBUZW1wbGF0ZSBlaW4sIHdvYmVpIE1vZHVzIGpld2VpbHMgZWluZW0gZGVyIHVudGVuIGF1ZmdlZiZ1dW1sO2hydGVuIE1vZGkgZW50c3ByaWNodC4gSmUgbmFjaCBhdXNnZXcmYXVtbDtobHRlbSBNb2R1cyB3ZXJkZW4gdW50ZXJzY2hpZWRsaWNoZSBJbmZvcm1hdGlvbmVuIGF1c2dlZ2ViZW4uPC9wPg0KPHA+RGllc2VzIE1vZHVsIGthbm4gb3B0aW9uYWwgZGFzIEZyb250ZW5kVXNlci1Nb2R1bCB2ZXJ3ZW5kZW4sIHVtIEluZm9ybWF0aW9uZW4gJnV1bWw7YmVyIGRpZSBha3R1ZWxsIGVpbmdlbG9nZ3RlbiBVc2VyIHp1IGVyaGFsdGVuLCBkaWUgZGFubiBpbiBkYXMgRm9ybXVsYXIgYmVpbSBIb2NobGFkZW4gdm9uIERhdGVpZW4gZWluZ2V0cmFnZW4gd2VyZGVuLjwvcD4NCjxoMz5CZXJlY2h0aWd1bmdlbjwvaDM+DQo8dWw+DQo8bGk+RGllIEJlcmVjaHRpZ3VuZyA8ZW0+TWFuYWdlIFVwbG9hZHM8L2VtPiB3aXJkIGJlbiZvdW1sO3RpZ3QsIHVtIGRpZSBLYXRlZ29yaWVuIHVuZCBkaWUgZGFyaW4gYmVmaW5kbGljaGVuIERhdGVpZW4genUgdmVyd2FsdGVuLjwvbGk+DQo8bGk+RGllIEJlcmVjaHRpZ3VuZyA8ZW0+TW9kaWZ5IFRlbXBsYXRlczwvZW0+ICB3aXJkIGJlbiZvdW1sO3RpZ3QsIHVtIFRlbXBsYXRlcyB6dSBiZWFyYmVpdGVuLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzPC9lbT4gZGllc2UgQmVyZWNodGlndW5nIHdpcmQgYmVuJm91bWw7dGlndCwgdW0gZGF0ZWliZXpvZ2VuZSBFaW5zdGVsbHVuZ2VuIHp1IHZlciZhdW1sO25kZXJuLjwvbGk+DQo8L3VMPg0KPGgzPkVtYWlsdmVyc2FuZDwvaDM+DQo8cD5NaXQgZGllc2VtIE1vZHVsIGlzdCBlcyBtJm91bWw7Z2xpY2gsIGVpbmUgRW1haWwgenUgdmVyc2VuZGVuLCB3ZW5uIGltbWVyIGVpbmUgRGF0ZWkgaG9jaGdlbGFkZW4gd3VyZGUuIFNjaGF1ZW4gU2llIGhpZXJ6dSBpbiBkaWUgRWluc3RlbGx1bmdlbi4gRGFmJnV1bWw7ciBtdXNzIGRhcyA8Yj5DTVNNYWlsZXI8L2I+LU1vZHVsIGluc3RhbGxpZXJ0IHVuZCBrb25maWd1cmllcnQgc2Vpbi4gRGllc2UgTSZvdW1sO2dsaWNoa2VpdCBpc3QgbnVyIDxlbT5vcHRpb25hbDwvZW0+LiBXZW5uIGRhcyBDTVNNYWlsZXItTW9kdWwgbmljaHQgaW5zdGFsbGllcnQgaXN0LCB3aXJkIGRlbSBVc2VyIG5pY2h0cyBhbmdlemVpZ3QsIHNvbmRlcm4gbnVyIGVpbiBFaW50cmFnIGltIExvZ2J1Y2ggZGVzIEFkbWluaXN0cmF0b3JzIGVyc3RlbGx0LjwvcD4NCjxoMz5TeXN0ZW1laW5zdGVsbHVuZ2VuPC9oMz4NCjxwPjxiPkhpbndlaXM6PC9iPiBEYXMgTW9kdWwgdW1nZWh0IG5pY2h0IGRpZSBCZXNjaHImYXVtbDtua3VuZ2VuIGhpbnNpY2h0bGljaCBkZXIgRGF0ZWlnciZvdW1sOyZzemxpZztlIGluIFBIUC4gRXMgZnVua3Rpb25pZXJ0IG51ciBpbiBWZXJiaW5kdW5nIG1pdCBkaWVzZW0uIFdlbm4gU2llIGdyJm91bWw7JnN6bGlnO2VyZSBEYXRlaWVuIHp1bSBIb2NobGFkZW4genVsYXNzZW4gbSZvdW1sO2NodGVuLCBtJnV1bWw7c3NlbiBTaWUgSWhyZSBwaHAuaW5pLURhdGVpIHVuZC9vZGVyIGh0dHBkLmNvbmYgRGF0ZWkoZW4pIHNvd2llIGRpZSBWb3JlaW5zdGVsbHVuZ2VuIGRlcyBNb2R1bHMgZW50c3ByZWNoZW5kIGJlYXJiZWl0ZW4uDQo8aDQ+SGlud2Vpc2UgZiZ1dW1sO3IgQXBhY2hlPC9oND4NCjxwPlVtIGRhcyBIb2NobGFkZW4gdm9uIGdyJm91bWw7JnN6bGlnO2VyZW4gRGF0ZWllbiB6dSBlcmxhdWJlbiwgbSZ1dW1sO3NzZW4gU2llIGRlbiBQYXJhbWV0ZXIgdXBsb2FkX21heF9maWxlc2l6ZSBpbiBpaHJlciBwaHAuaW5pIGJlYXJiZWl0ZW4uIFp1cyZhdW1sO3R6bGljaCBtdXNzIGRlciBQYXJhbWV0ZXIgTGltaXRSZXF1ZXN0Qm9keSBpbiBJaHJlciBBcGFjaGUtS29uZmlndXJhdGlvbiBhbiBkZW4gUGFyYW1ldGVyIHVwbG9hZF9tYXhfZmlsZXNpemUgYW5nZXBhc3N0IHdlcmRlbi48L3A+DQo8cD5IaW53ZWlzOiAgZGVyIFBhcmFtZXRlciB1cGxvYWRfbWF4X2ZpbGVzaXplIGthbm4gaW4gQnl0ZXMsIEtpbG9ieXRlcyBvZGVyIE1lZ2FieXRlcyBhbmdlZ2ViZW4gd2VyZGVuLCB3JmF1bWw7aHJlbmRkZXNzZW4gZGVyIFBhcmFtZXRlciBMaW1pdFJlcXVlc3RCb2R5IG51ciBpbiBCeXRlcyBmZXN0Z2VsZWd0IHdlcmRlbiBrYW5uLjwvcD4nOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ2lwX2FkZHJlc3MnXSA9ICdJUC1BZHJlc3NlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWluIE1vZHVsLCB3ZWxjaGVzIGRlbiBVc2VybiBkYXMgSG9jaGxhZGVuIHVuZCBkYXMgVmVyd2FsdGVuIHZvbiBEYXRlaWVuIGVybSZvdW1sO2dsaWNodC4nOwokbGFuZ1snbmFtZSddID0gJ05hbWUnOwokbGFuZ1sncmVuYW1lbWVzc2FnZSddID0gJyZBdW1sO25kZXJuIFNpZSBoaWVyIGRlbiBOYW1lbiwgdW0gZGllIERhdGVpIHVtenViZW5lbm5lbic7CiRsYW5nWydwYXRoJ10gPSAnUGZhZCc7CiRsYW5nWydwYXRobWVzc2FnZSddID0gJyZBdW1sO25kZXJuIFNpZSBoaWVyIGRpZSBLYXRlZ29yaWUsIHVtIGRpZSBEYXRlaSBpbiBlaW4gYW5kZXJlcyBWZXJ6ZWljaG5pcyB6dSB2ZXJzY2hpZWJlbi4nOwokbGFuZ1sncGF0aGludXBsb2FkcyddID0gJyhyZWxhdGl2IHp1bSBVcGxvYWRzLVZlcnplaWNobmlzKSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RhcyBVcGxvYWRzLU1vZHVsIHd1cmRlIGVyZm9sZ3JlaWNoIGluc3RhbGxpZXJ0LiBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgenVyIFZlcndlbmR1bmcgZGllc2VzIE1vZHVscyBkaWUgQmVyZWNodGlndW5nICZxdW90O01hbmFnZSBVcGxvYWRzJnF1b3Q7IGdlc2V0enQgd3VyZGUhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEYXMgVXBsb2Fkcy1Nb2R1bGUgd3VyZGUgZXJmb2xncmVpY2ggZW50ZmVybnQuIEVzIHd1cmRlbiB3ZWRlciBEYXRlaWVuIGF1cyBkZW0gVXBsb2Fkcy1WZXJ6ZWljaG5pcyBlbnRmZXJudCBub2NoIGJlc2NoJmF1bWw7ZGlndC4nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ01vZHVsZWluc3RlbGx1bmdlbiBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWRlc2MnXSA9ICdCZXNjaHJlaWJ1bmcnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5bGlzdGFibGUnXSA9ICdEaWUgRGF0ZWllbiBpbiBkaWVzZW0gVmVyemVpY2huaXMgayZvdW1sO25uZW4gYW5nZXplaWd0IHdlcmRlbi4nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5bmFtZSddID0gJ05hbWUgZGVyIEthdGVnb3JpZSc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlwYXRoJ10gPSAnU2VydmVycGZhZCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlZGlyZWN0b3J5J10gPSAnS2F0ZWdvcmlldmVyemVpY2huaXMgbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydwcm9tcHRfbWF4X3VwbG9hZHNpemUnXSA9ICdNYXhpbWFsIGVybGF1YnRlIERhdGVpZ3Imb3VtbDsmc3psaWc7ZSAoS2IpJzsKJGxhbmdbJ3Byb21wdF92YWxpZF91cGxvYWRleHRlbnNpb25zJ10gPSAnRyZ1dW1sO2x0aWdlIERhdGVpZXJ3ZWl0ZXJ1bmdlbic7CiRsYW5nWydzY2FuJ10gPSAnU2Nhbm5lbic7CiRsYW5nWydzZWxlY3RjYXRlZ29yeSddID0gJ0thdGVnb3JpZSBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWydzaXplJ10gPSAnR3Imb3VtbDsmc3psaWc7ZSc7CiRsYW5nWydzaXpla2InXSA9ICdHciZvdW1sOyZzemxpZztlIChLYiknOwokbGFuZ1snc3VibWl0J10gPSAnQWJzZW5kZW4nOwokbGFuZ1snc3VtbWFyeV90ZW1wbGF0ZSddID0gJ1p1c2FtbWVuZmFzc3VuZ3MtVGVtcGxhdGUnOwokbGFuZ1snc3VtbWFyeSddID0gJ1p1c2FtbWVuZmFzc3VuZyc7CiRsYW5nWyd0aXRsZV9hZG1pbl9wYW5lbCddID0gJ1VwbG9hZHMtTW9kdWwnOwokbGFuZ1sndGl0bGVfbW9kX2FkbWluJ10gPSAnTW9kdWwtQWRtaW5pc3RyYXRpb24nOwokbGFuZ1sndGl0bGVfbW9kX3ByZWZzJ10gPSAnTW9kdWxlaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RpdGxlX3NpbmdfbG91ZGx5J10gPSAnTGF1dCBzaW5nZW4/JzsKJGxhbmdbJ3RpdGxlX3N1Ym5ldF9leGNsdXNpb25zJ10gPSAnU3VibmV0cyB2b24gZGVyIFN0YXRpc3RpayBhdXNzY2hsaWUmc3psaWc7ZW4nOwokbGFuZ1sndGl0bGVfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyddID0gJ0cmdXVtbDtsdGlnZSBOYW1lbnNlcndlaXRlcnVuZ2VuJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgZGVpbnN0YWxsaWVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhdWYgVmVyc2lvbiAlcyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0hvY2hsYWRlbic7CiRsYW5nWyd1cGxvYWRlZCddID0gJ0RpZSBEYXRlaSAlcyB3dXJkZSB2b24gJXMgaG9jaGdlbGFkZW4uJzsKJGxhbmdbJ3JlcGxhY2VkJ10gPSAnRGllIERhdGVpICVzIHd1cmRlIGR1cmNoICVzIGVyc2V0enQuJzsKJGxhbmdbJ2RlbGV0ZWQnXSA9ICdEaWUgRGF0ZWkgJXMgd3VyZGUgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1sndXBsb2FkZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGhvY2hsYWRlbic7CiRsYW5nWyd1c2VybmFtZSddID0gJ0JlbnV0emVybmFtZSc7CiRsYW5nWyd3YXJuaW5nX2RlbGV0ZWNhdGVnb3J5J10gPSAnV0FSTlVORzogU2VpZW4gU2llIHZvcnNpY2h0aWcsIHdlbm4gU2llIEthdGVnb3JpZW4gbCZvdW1sO3NjaGVuLiBEaWUgRGF0ZWllbiBrJm91bWw7bm5lbiBkYWJlaSB2ZXJsb3JlbiBnZWhlbi4nOwokbGFuZ1snd2VsY29tZV90ZXh0J10gPSAnPHA+V2lsbGtvbW1lbiBpbiBkZXIgQW1pbmlzdHJhdGlvbiBkZXMgVXBsb2Fkcy1Nb2R1bHMuIFdlbm4gZGFzIE1vZHVsIGVpbmUgRnVua3Rpb24gYXVzZiZ1dW1sO2hyZW4gdyZ1dW1sO3JkZSwgc3QmdXVtbDtuZGUgaGllciB3YWhyc2NoZWlubGljaCBldHdhIGFuZGVyZXMuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjcxNzQ2MjczNi4xMTQ3NTExODU2LjExNTgxMzcxNDMuMTE1ODE3NzkyNS42Nyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExNTgwODI4ODEuNjUuMzMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwfHV0bWNtZD1yZWZlcnJhbCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2hlbHBfT25Eb3dubG9hZCddID0gJzxoMz5PbkRvd25sb2FkPC9oMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgdXNlciBmaW5pc2hlcyBkb3dubG9hZGluZyBhIGZpbGU8L3A+DQo8dWw+DQo8bGk+PGVtPmlkPC9lbT4gLSBVcGxvYWQgSUQ8L2xpPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBGaWxlIG5hbWU8L2xpPg0KPGxpPjxlbT5pcDwvZW0+IC0gVGhlIElQIEFkZHJlc3Mgb2YgdGhlIGRvd25sb2FkZXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uRGVsZXRlQ2F0ZWdvcnknXSA9ICc8aDM+T25EZWxldGVDYXRlZ29yeTwvaDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGNhdGVnb3J5IGlzIERlbGV0ZWQ8L3A+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIENhdGVnb3J5IG5hbWU8L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBDYXRlZ29yeSBwYXRoPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PbkNyZWF0ZUNhdGVnb3J5J10gPSAnPGgzPk9uQ3JlYXRlQ2F0ZWdvcnk8L2gzPg0KPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBjYXRlZ29yeSBpcyBDcmVhdGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBUaGUgbmFtZSBvZiB0aGUgY2F0ZWdvcnk8L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gVGhlIGNhdGVnb3J5IGRlc2NyaXB0aW9uPC9saT4NCjxsaT48ZW0+cGF0aDwvZW0+IC0gVGhlIGNhdGVnb3J5IHBhdGg8L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBBIGZsYWcgaW5kaWNhdGluZyBpZiB0aGUgY2F0ZWdvcnkgaXMgbGlzdGFibGU8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uUmVtb3ZlJ10gPSAnPGgzPk9uUmVtb3ZlPC9oMz4NCjxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgZmlsZSBpcyByZW1vdmVkIHZpYSB0aGUgYWRtaW4gb3IgZnJvbnRlbmQgaW50ZXJmYWNlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIHJlbW92ZWQgZmlsZTwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBUaGUgaWQgb2YgdGhlIHJlbW92ZWQgZmlsZTwvbGk+DQo8bGk+PGVtPmNhdGVnb3J5X2lkPC9lbT4gLSBUaGUgaWQgb2YgdGhlIGNhdGVnb3J5PC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PblVwbG9hZCddID0gJzxoMz5PblVwbG9hZDwvaDM+DQo8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIG5ldyBmaWxlIGlzIHVwbG9hZGVkIHZpYSB0aGUgYWRtaW4gb3IgZnJvbnRlbmQgaW50ZXJmYWNlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Y2F0ZWdvcnk8L2VtPiAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIHVwbG9hZGVkIGZpbGU8L2xpPg0KPGxpPjxlbT5zaXplPC9lbT4gLSBUaGUgc2l6ZSBvZiB0aGUgdXBsb2FkZWQgZmlsZTwvbGk+DQo8bGk+PGVtPnN1bW1hcnk8L2VtPiAtIFRoZSBzaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhlIHVwbG9hZGVkIGZpbGUgKG1heSBiZSBlbXB0eSk8L2VtPjwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgbG9uZyBkZXNjcmlwdGlvbiBmb3IgdGhlIHVwbG9hZGVkIGZpbGUgKG1heSBiZSBlbXB0eSk8L2VtPjwvbGk+DQo8bGk+PGVtPmF1dGhvcjwvZW0+IC0gVGhlIGF1dGhvciBvZiB0aGUgdXBsb2FkZWQgZmlsZSAoaWYgYXZhaWxhYmxlKTwvZW0+PC9saT4NCjxsaT48ZW0+aXBfYWRkcmVzczwvZW0+IC0gVGhlIGludGVybmV0IGFkZHJlc3Mgb2YgdGhlIGNsaWVudCB0aGF0IHVwbG9hZGVkIHRoZSBmaWxlPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaW5mb19ldmVudF9vbmRlbGV0ZWNhdGVnb3J5J10gPSAnRXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBjYXRlZ29yeSBpcyBkZWxldGVkJzsKJGxhbmdbJ2luZm9fZXZlbnRfb25jcmVhdGVjYXRlZ29yeSddID0gJ0V2ZW50IGdlbmVyYXRlZCB3aGVuIGEgY2F0ZWdvcnkgaXMgY3JlYXRlZCc7CiRsYW5nWydpbmZvX2V2ZW50X29uZG93bmxvYWQnXSA9ICdFdmVudCBnZW5lcmF0ZWQgd2hlbiBhIGZpbGUgaXMgZG93bmxvYWRlZCc7CiRsYW5nWydpbmZvX2V2ZW50X29udXBsb2FkJ10gPSAnRXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBuZXcgZmlsZSBpcyB1cGxvYWRlZCc7CiRsYW5nWydpbmZvX2V2ZW50X29ucmVtb3ZlJ10gPSAnRXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBmaWxlIGlzIHJlbW92ZWQnOwokbGFuZ1sndGl0bGVfdXNlcnRhZ19vbnVwbG9hZCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBhZnRlciB1cGxvYWQgaXMgY29tcGxldGUnOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snbWF0Y2hlc2ZvdW5kJ10gPSAnT3N1bWFhIGwmb3VtbDt5ZGV0dHknOwokbGFuZ1snZmlsdGVyJ10gPSAnU3VvZGF0YSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdG9udXBsb2FkJ10gPSAnT2hqYWEgc2l2dWxsZSAoaWQgLyBhbGlhcykgbGF0YXVrc2VuIGomYXVtbDtsa2Vlbic7CiRsYW5nWydkZXRhaWxzJ10gPSAnTGlzJmF1bWw7dGllZG90JzsKJGxhbmdbJ2NvbmZpcm1fcHJlZmVyZW5jZXMnXSA9ICdIYWx1YXRrbyB2YXJtYXN0aSBtdXV0dGFhIGFzZXR1a3NpYSc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzdXBsb2FkZWQnXSA9ICdUaWVkb3N0b2EgZWkgbGFkYXR0dSc7CiRsYW5nWydwcm9tcHRfcmVwbGFjZSddID0gJ1NhYWxpIHlsaWtpcmpvaXR1cyc7CiRsYW5nWydpbmZvX3JlcGxhY2UnXSA9ICdLb3J2YWEgdGllZG9zdG8gc2FtYW5uaW1pc2VsbGEgKGVpIHZhaWhkYSBJRDp0YSknOwokbGFuZ1snbm9faW5pdGlhbCddID0gJyZBdW1sO2wmYXVtbDsgbiZhdW1sO3l0JmF1bWw7IG9sZXR1a3NlbmEgbWl0JmF1bWw7JmF1bWw7biBqb3MgZmlsdHRlciZvdW1sO2ludGkgb24gcCZhdW1sOyZhdW1sO2xsJmF1bWw7JzsKJGxhbmdbJ3BhcmFtX2tleSddID0gJ1Byb3ZpZGUgYW4gYWRkaXRpb25hbCBrZXkgdG8gdGhlIG1vZHVsZSBmb3IgZnVydGhlciBvcmdhbml6aW5nIHVwbG9hZHMuICBUaGlzIGtleSBjb3VsZCBiZSBhbiBlbmNvZGVkIHN0cmluZyBsaWtlOiAmIzAzOTtmZXVzZXJzOnVpZCYjMDM5OywgZXRjLiAgVGhpcyBwYXJhbWV0ZXIgaXMgdXN1YWxseSBvbmx5IG5lZWRlZCB3aGVuIGVtYmVkZGluZyB0aGUgdXBsb2FkcyBtb2R1bGUgaW50byBhbm90aGVyIG1vZHVsZSc7CiRsYW5nWydwYXJhbV9ub2F1dGhvciddID0gJ0hpZGUgdGhlIGF1dGhvciBmaWVsZCBmcm9tIHRoZSB1cGxvYWQgZm9ybS4gIFRoaXMgcGFyYW1ldGVyIGlzIG9ubHkgdmFsaWQgd2hlbiBtb2RlPSYjMDM5O3VwbG9hZCYjMDM5Oy4gIElmIFRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSBpcyBwcmVzZW50LCBhbmQgYSB1c2VyIGlzIGN1cnJlbnRseSBsb2dnZWQgaW4sIGEgaGlkZGVuIGZpZWxkIHdpbGwgaG9sZCB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VybmFtZSc7CiRsYW5nWydwYXJhbV91cGxvYWRfaWQnXSA9ICd1cGxvYWRfaWQ9JnF1b3Q7aWQmcXVvdDsgLSBzcGVjaWZ5IGEgc2luZ2xlIGZpbGUgZm9yIHRoZSB1cmwvbGluayBvciBzaW5nbGUgbW9kZXMgKGFib3ZlKSc7CiRsYW5nWydwYXJhbV91c2Vfc3RyaWN0X3JlZ2V4cCddID0gJ1N1b2RhdHVzIGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgdGl1a2thYSBzJmF1bWw7JmF1bWw7bm4mb3VtbDtubXVrYWlzdGFsYXVzZXR0YSc7CiRsYW5nWydwYXJhbV9kZXRhaWxfZmlsZXRlbXBsYXRlJ10gPSAnVXNlIGEgLnRwbCBmaWxlIGZyb20gdGhlIFVwbG9hZHMvdGVtcGxhdGVzLyBmb2xkZXIgaW5zdGVhZCBvZiB1c2luZyB0aGUgZGF0YWJhc2UgdGVtcGxhdGUgd2hlbiBkaXNwbGF5aW5nIGEgZGV0YWlsIHJlcG9ydCc7CiRsYW5nWydwYXJhbV91cGxvYWRfZmlsZXRlbXBsYXRlJ10gPSAnVXNlIGEgLnRwbCBmaWxlIGZyb20gdGhlIFVwbG9hZHMvdGVtcGxhdGVzLyBmb2xkZXIgaW5zdGVhZCBvZiB1c2luZyB0aGUgZGF0YWJhc2UgdGVtcGxhdGUgd2hlbiBkaXNwbGF5aW5nIGFuIHVwbG9hZCBmb3JtJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlfZmlsZXRlbXBsYXRlJ10gPSAnVXNlIGEgLnRwbCBmaWxlIGZyb20gdGhlIFVwbG9hZHMvdGVtcGxhdGVzLyBmb2xkZXIgaW5zdGVhZCBvZiB1c2luZyB0aGUgZGF0YWJhc2UgdGVtcGxhdGUgd2hlbiBkaXNwbGF5aW5nIGEgc3VtbWFyeSByZXBvcnQnOwokbGFuZ1sncGFyYW1fZmlsdGVyJ10gPSAnTiZhdW1sO3l0JmF1bWw7IHN1b2RhdHVzIGthYXZha2UnOwokbGFuZ1sncGFyYW1fbm9faW50aXRpYWwnXSA9ICdLJmF1bWw7eXQmYXVtbDtubiZvdW1sO2xsaW5lbiB2YWluIGpvcyBzdW9kYXR1cyBwYXJhbWV0cmkgb24gYW5uZXR0dSwgVmFpa3V0dGFhIHR1bG9rc2lpbiBpbG1hbiBzdW9kYXR1c3RhDQonOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnICA8cD5Tb3J0IE9yZGVycw0KICA8dWw+DQogIDxsaT48ZW0+ZGF0ZV9hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIGRhdGU8L2xpPg0KICA8bGk+PGVtPmRhdGVfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIGRhdGU8L2xpPg0KICA8bGk+PGVtPm5hbWVfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBuYW1lPC9saT4NCiAgPGxpPjxlbT5uYW1lX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBuYW1lPC9saT4NCiAgPGxpPjxlbT5zaXplX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgc2l6ZTwvbGk+DQogIDxsaT48ZW0+c2l6ZV9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgc2l6ZTwvbGk+DQogIDxsaT48ZW0+ZGVzY19hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIGRlc2NyaXB0aW9uPC9saT4NCiAgPGxpPjxlbT5kZXNjX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBkZXNjcmlwdGlvbjwvbGk+DQogIDxsaT48ZW0+YXV0aG9yX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgYXV0aG9yPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIGF1dGhvcjwvbGk+DQogIDxsaT48ZW0+aXBfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBpcCBhZGRyZXNzPC9saT4NCiAgPGxpPjxlbT5pcF9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgaXAgYWRkcmVzczwvbGk+DQogIDxsaT48ZW0+cmFuZG9tPC9lbT4gLSBSYW5kb20gc29ydCBvcmRlcjwvbGk+DQogIDwvdWw+DQogIDwvcD4nOwokbGFuZ1sncGFyYW1fZmlsZWV4dGVuc2lvbnMnXSA9ICcgDQpmaWxlX2V4dGVuc2lvbnM9JnF1b3Q7ZXh0MSxleHQyLGV4dDMmcXVvdDsNCjxwPk1pdCZhdW1sOyB0aWVkb3N0byBwJmF1bWw7JmF1bWw7dHRlaXQmYXVtbDsgdm9pZGFhbiBsYWRhdGEsIHZhYXRpaSBtb2RlPSZxdW90O3VwbG9hZCZxdW90OyBwYXJhbWV0cmluLiBZbGlraXJqb2l0dGFhIG1vZHVsaW4gcGVydXNhc2V0dWtzZXQ8L3A+JzsKJGxhbmdbJ3BhcmFtX2NvdW50J10gPSAnY291bnQ9JnF1b3Q7TiZxdW90Ow0KPHA+TiZhdW1sO3l0dCZhdW1sOyZhdW1sOyBOIGthcHBhbGV0dGEgdHVsb2tzaWE8L3A+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnY2F0ZWdvcnk9JnF1b3Q7bmFtZSZxdW90Ow0KPHA+PGI+SHVvbWFhOjwvYj4gVm9pIG9sbGEgbXkmb3VtbDtzICZxdW90O2FsbCZxdW90Oywgam9rYSBuJmF1bWw7eXR0JmF1bWw7JmF1bWw7IGthaWtraSA8ZW0+bGlzdGF0dGF2aXNzYSBvbGV2YXQ8L2VtPiBrYXRlZ29yaWF0PC9wPic7CiRsYW5nWydwYXJhbV9tb2RlJ10gPSAnICA8dWw+DQogIDxsaT48ZW0+ZGV0YWlsZWQ8L2VtPiAtIERpc3BsYXkgYSBkZXRhaWxlZCBsaXN0IG9mIGFsbCBmaWxlcyBpbiB0aGUgY2F0ZWdvcnk8L2xpPg0KICA8bGk+PGVtPnVwbG9hZDwvZW0+IC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgYSBmcm9udGVuZCB1c2VyIHRvIHVwbG9hZCBhIGZpbGU8L2xpPg0KICA8bGk+PGVtPnVybCA8aT5vcjwvaT4gbGluazwvZW0+IC0gRGlzcGxheSBhIGxpbmsgdG8gYSBmaWxlPC9saT4NCiAgPGxpPjxlbT5zdW1tYXJ5PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyaXplZCBsaXN0IG9mIGFsbCBmaWxlcyBpbiB0aGUgY2F0ZWdvcnk8L2xpPg0KICA8bGk+PGVtPnNpbmdsZTwvZW0+IC0gRGlzcGxheSBhIGRldGFpbGVkIHJlcG9ydCBhYm91dCBhIHNpbmdsZSB1cGxvYWQ8L2xpPg0KICA8bGk+PGVtPnNpbmdsZXN1bW1hcnk8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJpemVkIHJlcG9ydCBhYm91dCBhIHNpbmdsZSB1cGxvYWQvbGk+DQogIDwvdWw+JzsKJGxhbmdbJ3JldHVybnRvbW9kdWxlJ10gPSAnUGFsYWEgbW9kdXVsaWluJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcmllcyddID0gJ0VpIHlodCZhdW1sOyZhdW1sO24gbSZhdW1sOyZhdW1sO3JpdGVsdHkmYXVtbDsga2F0ZWdvcmlhYSc7CiRsYW5nWyd0aXRsZV9lbmZvcmNlZXh0ZW5zaW9ucyddID0gJ1ZhYWRpIHAmYXVtbDsmYXVtbDt0ZSBrYWlraWxsZSBsYWRhdHVpbGxlIHRpZWRvc3RvaWxsZSc7CiRsYW5nWydyZXN0b3JlZGVmYXVsdHNjb25maXJtJ10gPSAnT2xldGtvIHZhcm1hIGV0dCZhdW1sOyBoYWx1YXQgcGFsYXV0dGFhIGthaWtraSBwb2hqYXQgb2xldHVzIHBvaGppa3NpLiBLYWlra2kgbXV1dG9rc2V0IGpvaXRhIG9sZXQgdGVobnl0IGgmYXVtbDt2aSZhdW1sO3YmYXVtbDt0ISc7CiRsYW5nWydpbmZvX3RodW1ibmFpbCddID0gJ1ZhcGFhZWh0b2luZW4gcGV1a2Fsb2t1dmEgdGllZG9zdG8nOwokbGFuZ1sndGh1bWJuYWlsJ10gPSAnUGV1a2Fsb2t1dmEnOwokbGFuZ1snaW5mb19zdW1tYXJ5J10gPSAnQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgZmlsZSAoaWYgZW1wdHksIHRoZSBmaWxlIG5hbWUgaXMgdXNlZCB3aXRob3V0IHRoZSBleHRlbnNpb24pJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnluYW1lJ10gPSAnQSBicmllZiBuYW1lIGZvciB5b3VyIGNhdGVnb3J5IChodW1hbiByZWFkYWJsZSknOwokbGFuZ1snaW5mb19jYXRlZ29yeWRlc2MnXSA9ICdBIGRlc2NyaXB0aW9uIGZvciB5b3VyIGNhdGVnb3J5JzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnlwYXRoJ10gPSAnVGhlIGRpcmVjdG9yeSBuYW1lIGluc2lkZSB0aGUgdXBsb2FkcyBkaXJlY3RvcnkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc3RvcmUgZmlsZXMgaW4gdGhpcyBjYXRlZ29yeS4gIElmIHRoZSBkaXJlY3Rvcnkgb2YgdGhpcyBuYW1lIGRvZXMgbm90IGFscmVhZHkgZXhpc3QsIGl0IG1heSBiZSBjcmVhdGVkJzsKJGxhbmdbJ2luZm9fZGVzdG5hbWUnXSA9ICdVc2UgdGhlICYjMDM5O1VwbG9hZCBBcyYjMDM5OyBmaWVsZCB0byBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGZpbGUgb24gdXBsb2FkLiAgTGVhdmUgYmxhbmsgdG8gcHJlc2VydmUgdGhlIGZpbGVuYW1lIGFzLWlzLic7CiRsYW5nWydlcnJvcl9jYW50Y3JlYXRlZGlyZWN0b3J5J10gPSAnRWkgdm9pZGEgbHVvZGEgaGFrZW1pc3RvYSc7CiRsYW5nWydlcnJvcl9ub21haWxlcm1vZHVsZSddID0gJ0NNU01haWxlciBtb2R1bGlhIGVpIHZvaXR1IGFsdXN0YWEnOwokbGFuZ1sndXBsb2FkX25vdGlmaWNhdGlvbiddID0gJ0EgbmV3IGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQnOwokbGFuZ1sndGl0bGVfZW1haWxfb25fdXBsb2FkJ10gPSAnU2VuZCB1cGxvYWQgbm90aWZpY2F0aW9uIHRvOic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2R1bW15X2luZGV4X2h0bWwnXSA9ICdDcmVhdGUgZHVtbXkgaW5kZXguaHRtbCBmaWxlcyBpbiBlYWNoIGRpcmVjdG9yeT88YnIvPjxlbT5BbnkgZXhpc3RpbmcgaW5kZXguaHRtbCBmaWxlcyB3aWxsIHJlbWFpbjwvZW0+JzsKJGxhbmdbJ2Fib3V0J10gPSAnQWJvdXQnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1AmYXVtbDsmYXVtbDtzeSBldiZhdW1sO3R0eSwgdGFya2lzdGEgb2lrZXV0ZXNpLic7CiRsYW5nWydlcnJvcl9jb3VsZG5vdHdyaXRlJ10gPSAnRWkgdm9pdHUga2lyam9pdHRhYSc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0xpcyZhdW1sOyZhdW1sOyBrYXRlZ29yaWEnOwokbGFuZ1snYWxsJ10gPSAnS2Fpa2tpJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdPbGV0a28gdmFybWE/JzsKJGxhbmdbJ2F1dGhvciddID0gJ1Rla2lqJmF1bWw7JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnV1dGEnOwokbGFuZ1snY2Fubm90bW9kaWZ5cGF0aCddID0gJyhQb2xrdWEgZWkgdm9pZGEgbXV1dHRhYSknOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpYXQnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWEnOwokbGFuZ1snbWVzc2FnZV9jYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmlhIGxpcyZhdW1sO3R0eSc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMC4gLSBTZXB0ZW1iZXIgMjAwNS48L3A+DQo8cD4gSW5pdGlhbCBSZWxlYXNlLjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDEuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5NaW5vciBmaXhlcy48L3A+PC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wMi4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIGFiaWxpdHkgdG8gc3BlY2lmeSBzb3J0IG9yZGVyPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wMy4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkZpeCByZWdhcmRpbmcgY29uZmxpY3QgaW4gdGVtcGxhdGUgbmFtZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA0LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgYWJpbGl0eSB0byByZS1zY2FuIGEgZGlyZWN0b3J5LCBhbmQgdG8gdXBsb2FkIGZpbGVzIGZyb20gdGhlIGFkbWluIHBhZ2U8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA1LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+Rml4ZWQgc29tZSBQSFAgdmFyaWFibGUgaXNzdWVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNi4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIGF1dGhvciBmaWVsZCB0byB0aGUgYWRtaW4gcGFuZWwgdXBsb2FkIGZvcm0sIGFkZGVkIGEgc3VtbWFyeSBmaWVsZCwgYW5kIG1hZGUgZGVzY3JpcHRpb24gYSB0ZXh0IGFyZWEsIGFuZCBhbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5IGEgZGVzdGluYXRpb24gZmlsZSBuYW1lPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNy4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIHRoZSBhYmlsaXR5IHRvIHJlbmFtZSBmaWxlcyBhbmQgZml4ZWQgYSBzY2FuIGVycm9yPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wOC4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkJldHRlciBoYW5kbGluZyBvZiBuYW1lcyB3aXRoIHNwYWNlcywgYW5kIGEgZmV3IG1pbm9yIGVycm9ycyBmaXhlZC4gIEFkZGVkIHN3ZWRpc2ggdHJhbnNsYXRpb24gKHRoYW5rcyB3ZXN0aXMpPC9wPjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4wLiAtIE9jdG9iZXIgMjAwNTwvcD4NCiA8dWw+DQogICA8bGk+TW9kaWZpZWQgQXR0ZW1wdFVwbG9hZCBmdW5jdGlvbiBzbyBpdCBjb3VsZCBiZSBjYWxsZWQgZXh0ZXJuYWxseTwvbGk+DQogICA8bGk+QWRkZWQgR2V0VXBsb2FkRGV0YWlscyBmdW5jdGlvbiB0aGF0IHJldHVybnMgYWxsIG9mIHRoZSBkZXRhaWxzIGFib3V0IGEgbW9kdWxlLCBpbmNsdWRpbmcgYSBsaW5rPC9saT4NCiAgIDxsaT5BZGRlZCBSZWRpcmVjdHMgc28gdGhhdCB3b3JraW5nIHdpdGggdGhlIG1vZHVsZSBpcyBhbG90IG5pY2VyLCBpdCByZXR1cm5zIHRvIHRoZSByaWdodCB0YWI8L2xpPg0KICAgPGxpPkNoYW5nZWQgdGhlIGZyb250IHRlbXBsYXRlIHRvIGxvb2sgYSBsaXR0bGUgYmV0dGVyIGFuZCBtYWtlIG1vcmUgc2Vuc2U8L2xpPg0KICAgPGxpPkZpeGVzIHRvIHRoZSB1cGxvYWRzIHN0dWZmIHNvIHRoYXQgdGhlIGRlc2NyaXB0aW9uIGlzIHNldCwgYW5kIG5hbWUgYW5kIHN1bW1hcnkgYXJlIHB1dCBpbiB0aGUgcmlnaHQgcGxhY2U8L2xpPg0KICAgPGxpPkZpeGVzIHRvIGV2ZW4gYmV0dGVyIGhhbmRsZSBzcGFjZXMgaW4gbmFtZXM8L2xpPg0KICAgPGxpPk9wdGlvbmFseSBwbGFjZSBkdW1teSBpbmRleC5odG1sIGZpbGVzIGluIGVhY2ggdXBsb2FkIGRpcmVjdG9yeTwvbGk+DQogICA8bGk+SWYgc3BlY2lmeWluZyBhIGRlc3RpbmF0aW9uIG5hbWUsIGFuZCBubyBleHRlbnNpb24gaXMgZ2l2ZW4sIHRoZSBleHRlbnNpb24gb2YgdGhlIG9yaWdpbmF0aW5nIGZpbGUgKGlmIGFueSBleGlzdHMgaXMgdXNlZDwvbGk+DQogPC91bD4NCiA8cD48ZW0+PGI+SW1wb3J0YW50ITwvYj48L2VtPjxici8+SXQgaXMgbm90IHBvc3NpYmxlIHRvIHVwZ3JhZGUgZnJvbSBhbnkgb3RoZXIgdmVyc2lvbiBvZiB0aGUgVXBsb2FkcyBtb2R1bGUgdG8gMS4xLjAuICBUaGlzIGlzIGR1ZSB0byBzb21lIGVycm9ycyB0aGF0IHdlcmUgbWFkZSBpbiB0aGUgZGF0YWJhc2Ugcm91dGluZXMsIGFuZCBldmVuIGluIHRoZSB1cGdyYWRlIHJvdXRpbmUgaW4gMS4wLjYuICBZb3UgbXVzdCBkZS1pbnN0YWxsIHRoZSBvbGQgdmVyc2lvbiwgYW5kIHRoZW4gcmUtaW5zdGFsbCB0aGUgbmV3IHZlcmVzaW9uLiBUaGlzIHdpbGwgY2F1c2Ugc2lnbmlmaWNhbnQgZGlmZmljdWx0eSBpZiB5b3UgaGF2ZSBkc2NyaXB0aW9ucywgZXRjLCBpbiB5b3VyIHRhYmxlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xLiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5GaXhlZCBhIGNvdXBsZSBvZiBtaW5vciBidWdzIGluIHRoZSBHZXRVcGxvYWREZXRhaWxzIGFuZCBhZGRlZCBhbm90aGVyIGxpbmsgKG9yIGEgdXJsKSB0byB0aGUgdXBsb2FkZWQgZmlsZS48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMi4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+Rml4ZWQgdGhlIFVSTCBmaWVsZCBpbiBHZXRVcGxvYWREZXRhaWxzIHRvIHJldHVybiBhIGRvd25sb2FkIGxpbmsgYW5kIGFkZGVkIGFuIGFic3VybCBmaWVsZCB3aGljaCByZXR1cm5zIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBmaWxlIG9uIHRoZSB3ZWJzZXJ2ZXIuICBDbGlja3Mgb24gdGhpcyBsaW5rIHdpbGwgbm90IGJlIGNvdW50ZWQ8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMy4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+Rml4ZWQgdGhlIHVwZ3JhZGUgcHJvYmxlbSBmcm9tIHRoZSAxLjAueCBzZXJpZXMuICBVc2VycyBvZiB0aGUgMS4wLnggc2VyaWVzIHNob3VsZCBiZSBhYmxlIHRvIHVwZ3JhZGUgdG8gMS4xLjMgbm93IHdpdGggbm8gZGlmZmljdWx0eS4gPGI+VGhvc2UgYXJlIGZhbW91cyBsYXN0IHdvcmRzLCBwbGVhc2UgYmFja3VwIGZpcnN0PC9iPi4gRml4ZWQgdGhlIGNvbnRlbnQgcmVkaXJlY3QgdGhpbmdzIHRoYXQgd2VyZSBpcnJpdGF0aW5nIG1lLiAgQWxzbyBhZGRlZCBjYXRlZ29yeT1hbGwgdG8gbGlzdCBhbGwgb2YgdGhlIHVwbG9hZHMgaW4gYWxsIGxpc3RhYmxlIGNhdGVnb3JpZXMgPGVtPihsZXRzIGFsbCBob3BlIEkgZ290IHRoZSBzcWwgZmlndXJlZCBvdXQgcHJvcGVybHkpPC9lbT4uPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjQuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkFkZGVkIHRoZSBjb3VudCBwYXJhbWV0ZXIgdG8gbGlzdCBvbmx5IHRoZSBmaXJzdCBOIHJlY29yZHMsIGFuZCBhZGRlZCAmcXVvdDtzdW1tYXJ5bGluayZxdW90OywgYW5kICZxdW90O2NhdGVnb3J5JnF1b3Q7IHRvIHRoZSB0ZW1wbGF0ZXMgZm9yIHdlc3Rpcy4gIEZvciBleGFtcGxlcyBvbiBob3cgdG8gdXNlIHRoZW0gcmVzZXQgeW91ciB0ZW1wbGF0ZXMgYmFjayB0byBkZWZhdWx0LjwvcD48L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNS4gLSBOb3ZlbWJlciwgMjAwNTwvcD4NCjxwPkFkZGVkIGVtYWlsIG5vdGlmaWNhdGlvbiBhbmQgc29tZSBidWcgZml4ZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNi4gLSBOb3ZlbWJlciwgMjAwNTwvcD4NCjxwPkFkZGVkIGFuIGFwaSBmdW5jdGlvbiBhbmQgZml4ZWQgc29tZSByZWRpcmVjdGlvbiBzdHVmZjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS43LiAtIE5vdmVtYmVyLCAyMDA1PC9wPg0KPHA+TW9yZSBBUEkgZnVuY3Rpb25zLCBhbmQgbm93IGlnbm9yZSBkb3QgZmlsZXMgd2hlbiBzY2FubmluZy4gIEVtYWlsIG5vdGlmaWNhdGlvbiBpcyBub3cgaW4uPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjguIC0gSmFudWFyeSwgMjAwNjwvcD4NCjxwPiogSW1wcm92ZWQgZG9jcyB3cnQgYXBhY2hlIGFuZCBwaHAgY29uZmlncy48L3A+DQo8cD4qIEZpeGVkIHByb2JsZW0gd2hlcmUgZmlsZXNpemUgd2FzIHNob3dpbmcgdXAgYXMgMC48L3A+DQo8cD4qIE1vZGlmaWVkIHBlcm1pc3Npb25zIHRvIGJlIG1vcmUgZ3JhbnVsYXI8L3A+DQo8cD4qIEFkZGVkIHNvbWUgY29tbWVudHMgYW5kIHZlcmJvc2l0eSB0byB0aGUgY2F0ZWdvcnkgYW5kIHVwbG9hZHMgZm9ybXMgaW4gdGhlIGFkbWluIHNlY3Rpb248L3A+DQo8cD4qIEFkZGVkICZxdW90O3JhbmRvbSZxdW90OyBzb3J0IG9yZGVyPC9wPg0KPHA+KiBTb21lIFBIUDUgZml4ZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuOS4gLSBKYW51YXJ5LCAyMDA2PC9wPg0KPHA+KiBBZGRlZCB0aGUgYWJpbGl0eSB0byB1cGxvYWQgYSB0aHVtYm5haWwgaW1hZ2U8L3A+DQo8cD4qIFNvbWUgaW1wcm92ZWQgYXVkaXRpbmc8L3A+DQo8cD4qIHhtbCBub3cgYWRkZWQgdG8gdGhlIGRlZmF1bHQgZmlsZSB0eXBlcyAobmV3IGluc3RhbGxzIG9ubHkpPC9wPg0KPHA+KiBBZGRlZCBhIGNvbmZpcm1hdGlvbiBtZXNzYWdlIHRvIHRoZSByZXNldCB0byBkZWZhdWx0cyBidXR0b25zIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlcy48L3A+DQo8cD4qIEFkZGVkIHRoZSBmaWxlX2V4dGVuc2lvbnMgcGFyYW1ldGVyIGZvciB0aGUgdXBsb2FkIGZvcm08L3A+DQo8cD4qIFRoZSBjdXJyZW50IGNhdGVnb3J5IHNlbGVjdGVkIGluIHRoZSBmaWxlcyBmaWx0ZXIgaXMgc3RpY2t5Lg0KPHA+KiBBZGRlZCBhIHByZWZlcmVuY2UgdG8gZW5mb3JpY2UgZmlsZW5hbWUgZXh0ZW5zaW9ucyAoZGVmYXVsdHMgdG8gb24pPC9wPg0KPHA+KiBBZGRlZCBhIGxpbmsgdG8gdGhlIGVkaXQgcGFnZSwgaW4gdGhlIG5hbWUgY29sdW1uIG9mIHRoZSBmaWxlcyBsaXN0LjwvcD4NCjxwPiogTWlub3IgY2hhbmdlcyB0byB0aGUgbGF5b3V0IGFuZCB0ZXh0IHRvIGFkZCBjbGFyaXR5LjwvcD4NCjxwPiogQWRkZWQgZG93bmxvYWRfdXJsIGFzIGFuIGF2YWlsYWJsZSBzbWFydHkgdGFnIGluIHRoZSB0ZW1wbGF0ZXM8L3A+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMC4gLSBGZWJydWFyeSwgMjAwNjwvcD4NCjxwPiogU3VtbWFyeSBub3cgZGVmYXVsdHMgdG8gdGhlIGZpbGVuYW1lICh3aXRob3V0IHRoZSBleHRlbnNpb24pIGlmIG5vbmUgaXMgc3BlY2lmaWVkPC9wPg0KPHA+KiBOb3cgY29ycmVjdGx5IGhhbmRsZSBpZiB0aGUgdGh1bWJuYWlsIGV4dGVuc2lvbiBpcyBub3QgaW4gdGhlIGFjY2VwdGVkIGV4dGVuc2lvbiBsaXN0PC9wPg0KPHA+KiBObyBsb25nZXIgZGlzcGxheSBhbnkgY29udGVudCBpbiB0aGUgZmlsZXMgdGFiIGlmIHRoZXJlIGFyZSBubyBjYXRlZ29yaWVzIGRlZmluZWQ8L3A+DQo8cD4qIERpc3BsYXkgYSBsaW5rIGluIHRoZSBlcnJvciBwYWdlIHRoYXQgdGFrZXMgeW91IGJhY2sgdG8gdGhlIG1haW4gYWRtaW4gcGFuZWw8L3A+DQo8cD4qIEFsbG93IGZvciByZXBsYWNpbmcgb2YgdXBsb2FkZWQgZmlsZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTEuIC0gTWFyY2gsIDIwMDY8L3A+DQo8cD5BZGRlZCB0aGUgYWJpbGl0eSBmb3IgYSBsaW5rIHRvIGEgZGV0YWlsZWQgcGFnZSB3aGVuIGluIHN1bW1hcnkgbW9kZS48L3A+DQo8cD5TcGxpdCB0aGUgZGVmYXVsdCBhY3Rpb24gYW5kIGRlZmF1bHRhZG1pbiBhY3Rpb25zIGludG8gc2VwYXJhdGUgZmlsZXMsIGZvciBhIGJpdCBvZiBtZW1vcnkgaW1wcm92ZW1lbnQsIGhvcGVmdWxseTwvcD4NCjxwPkFkZCB0aGUgYWJpbGl0eSB0byByZWRpcmVjdCB0byBhbm90aGVyIHBhZ2UgYWZ0ZXIgYSBmcm9udGVuZCB1c2VyIHVwbG9hZGVkIGEgZmlsZTwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMi4gLSBNYXJjaCwgMjAwNjwvcD4NCjxwPkFkZGVkIHRoZSBzaW5nbGVzdW1tYXJ5IG1vZGUgdG8gZGlzcGxheSBhIHNpbmdsZSB1cGxvYWQgaW4gc3VtbWFyeSBtb2RlPC9QPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEzLiAtIEFwcmlsLCAyMDA2PC9wPg0KPHA+QWRkZWQgb3B0aW9uYWwgZmlsdGVyaW5nIG9uIHRoZSBmcm9udGVuZCwgYW5kIGEgY291cGxlIG9mIGV4dHJhIHBhcmFtZXRlcnMgdG8gZ28gd2l0aCBpdDwvcD4NCjxwPkZpeGVkIGEgcHJvYmxlbSB3aGVyZSBpdCB3b3VsZCBhbGxvdyB5b3UgdG8gZW50ZXIgYSBibGFuayBwYXRoIHdoZW4gY3JlYXRpbmcgYSBjYXRlZ29yeTwvcD4NCjxwPlNwbGl0IHN0dWZmIGludG8gKHNvbWUpIHNlcGFyYXRlIGFjdGlvbiBmaWxlcyBmb3Igc29tZSBob3BlZnVsIHBlcmZvcm1hbmNlIGluY3JlYXNlczwvcD4NCjxwPkFkZGVkIGNvcHlyaWdodCBub3RpY2VzPC9wPg0KPHA+Q2hhbmdlZCAob3B0aW9uYWwpIGRlcGVuZGVuY3kgZnJvbSBVc2VySUQgdG8gRnJvbnRFbmRVc2VycyBNb2R1bGUuPC9wPg0KPHA+Q2hhbmdlZCBfc2NhbkRpcmVjdG9yeSB0byBhbiBBUEkgZnVuY3Rpb24gU2NhbkRpcmVjdG9yeSBhbmQgdGhlbiBhZGRlZCBTbWFydFNjYW5EaXJlY3RvcnkgdG8gc2NhbiB0aGUgZGlyZWN0b3J5IGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBzdW1tYXJ5IG9yIGRldGFpbCBsaXN0aW5nIHRvIGhhbmRsZSB0aGUNCmNhc2Ugd2hlcmUgc29tZWJvZHkgdXBsb2FkZWQgZmlsZXMgdmlhIEZUUCBvciBzb21ldGhpbmcgYW5kIGRpZCBub3QgZ28gaW50byB0aGUgYWRtaW4gc2VjdGlvbiB0byB1cGRhdGUgdGhlIGNhdGVnb3JpZXMuPC9wPg0KPHA+Q29ycmVjdGlvbiB0byBhbGwgZGIgYWNjZXNzIHN0dWZmLiBIb3BlZnVsbHkgcHJvdmlkZXMgYSBwZXJmb3JtYW5jZSBpbmNyZWFzZS48L3A+DQo8cD5GaXhlcyB0byB0aGUgYWJvdXQgc3R1ZmYsIG5vdyB1c2UgQ3JlYXRlUGFyYW1ldGVyPC9wPg0KPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2RhdGUnXSA9ICdQJmF1bWw7aXYmYXVtbDttJmF1bWw7JmF1bWw7ciZhdW1sOyc7CiRsYW5nWydkYXRldXBsb2FkZWQnXSA9ICdEYXRlIFVwbG9hZGVkJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdPbGV0dWtzZXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnUG9pc3RhJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnS3V2YXVzJzsKJGxhbmdbJ2Rlc3RuYW1lJ10gPSAnVXBsb2FkIEFzJzsKJGxhbmdbJ2RldGFpbF90ZW1wbGF0ZSddID0gJ0RldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWydkb3dubG9hZGVkJ10gPSAnRmlsZSAlcyB3YXMgZG93bmxvYWRlZC4nOwokbGFuZ1snZG93bmxvYWRzJ10gPSAnRG93bmxvYWRzJzsKJGxhbmdbJ2VkaXQnXSA9ICdNdW9ra2FhJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ011a2thYSBrYXRlZ29yaWFhJzsKJGxhbmdbJ2VkaXR1cGxvYWQnXSA9ICdFZGl0IFVwbG9hZCc7CiRsYW5nWydlcnJvciddID0gJ1ZpcmhlISc7CiRsYW5nWydlcnJvcl9wYXRoaW51c2UnXSA9ICdLYXRlZ29yaWEgc2FtYWxsYSBwb2x1bGxhIG9uIGpvIG9sZW1hc3NhLic7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ1ZpcmhlOiBLYXRlZ29yaWEgb24gam8gb2xlbWFzc2EhJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5bm90ZW1wdHknXSA9ICdWaXJoZTogRWkgdm9pZGEgdHVob3RhIGthdGVnb3JpYWEgam9rYSBlaSBvbGUgdHloaiZhdW1sOyEnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3Rmb3VuZCddID0gJ1ZpcmhlOiBLYXRlZ29yaWFhIGVpIGwmb3VtbDt5ZHkhJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdWaXJoZTogVGlldG9rYW50YSB2aXJoZSEnOwokbGFuZ1snZXJyb3JfZW1wdHljYXRlZ29yeSddID0gJ1ZpcmhlOiBUeWhqJmF1bWw7IGthdGVnb3JpYSEnOwokbGFuZ1snZXJyb3JfZW1wdHlwYXRoJ10gPSAnVmlyaGU6IFR5aGomYXVtbDsgcG9sa3UhJzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdWaXJoZTogVGllZG9zdG8gJXMgb24gam8gb2xlbWFzc2EhJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ1ZpcmhlOiBUaWVkb3N0b2EgJXMgZWkgbCZvdW1sO3lkeSEnOwokbGFuZ1snZXJyb3JfaW5zdWZmaWNpZW50cGFyYW1zJ10gPSAnVmlyaGU6IEthaWtraWEgcGFyYW1ldHJlamEgZWkgb2xlIG0mYXVtbDsmYXVtbDtyaXRlbHR5IG1vZHVsaSBrdXRzdXNzYSEnOwokbGFuZ1snZXJyb3JfaW52YWxpZGF1dGhvciddID0gJ1ZpcmhlOiB2aXJoZWVsbGluZW4gKHRhaSB0eWhqJmF1bWw7KSB0ZWtpaiZhdW1sOyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY2F0ZWdvcnknXSA9ICdWaXJoZTogdmlyaGVlbGxpbmVuICh0YWkgdHloaiZhdW1sOykga2F0ZWdvcmlhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRkZXNjcmlwdGlvbiddID0gJ1ZpcmhlOiB2aXJoZWVsbGluZW4gKHRhaSB0eWhqJmF1bWw7KSBrdXZhdXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGUnXSA9ICdWaXJoZTogdmlyaGVlbGxpbmVuICh0YWkgdHloaiZhdW1sOykgdGllZG9zdG9uaW1pJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cGxvYWRmaWxlbmFtZSddID0gJ1ZpcmhlOiB2aXJoZWVsbGluZW4gdGllZG9zdG9uaW1pICh0YWkgcCZhdW1sOyZhdW1sO3RlKSAoJXMpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cGxvYWRpZCddID0gJ1ZpcmhlOiB2aXJoZWVsbGluZW4gbGF0YXVzIGlkJzsKJGxhbmdbJ2Vycm9yX25vZmlsZXMnXSA9ICdFcnJvcjogTm8gTWF0Y2hpbmcgRmlsZXMhJzsKJGxhbmdbJ2ZpbGVzJ10gPSAnVGllZG9zdG90JzsKJGxhbmdbJ2ZpeG1lJ10gPSAnS29yamFhIHYmYXVtbDtsaWx5Jm91bWw7bm5pdCc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGaWxlcyAoVXBsb2FkcyBNb2R1bGUpJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPkl0IGlzIGEgbW9kdWxlIGZvciBhbGxvd2luZyBwZW9wbGUgdG8gdXBsb2FkIGFuZCBkb3dubG9hZCBmaWxlcyB0byBhbmQgZnJvbSB5b3VyIHNpdGUuICBJdCBrZWVwcyB0cmFjayBvZiB3aG8gdXBsb2FkZWQgYSBmaWxlLCBhbmQgd2hvIGhhcyBkb3dubG9hZGVkIGl0LiAgQXMgd2VsbCwgeW91IGNhbiBzb3J0IGZpbGVzIGludG8gY2F0ZWdvcmllcywgYW5kIG1hbmFnZSB0aGUgZmlsZXMgdGhhdCB3ZXJlIHVwbG9hZGVkIGxpa2UgZXZlcnkgYWRtaW5pc3RyYXRvciB3b3VsZCBkbzwvcD4gDQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPlRvIHVzZSB0aGlzIG1vZHVsZSwgdG8gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIGZpbGVzIHRvIHlvdXIgc2l0ZSwgeW91IHNob3VsZCBpbnN0YWxsIHRoZSBtb2R1bGUsIGFuZCB0aGVuIGNyZWF0ZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzIChhLmsuYSkgZGlyZWN0b3JpZXMgZm9yIHRoZSB1cGxvYWRlZCBmaWxlcyB0byBnbyBpbnRvLiBUaGVuIGFkZCBhIHRhZyBpbnRvIGEgcGFnZSBvciB0ZW1wbGF0ZSBzb21ld2hlcmUgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7VXBsb2FkcyZxdW90OyBjYXRlZ29yeT0mcXVvdDtzb21lY2F0ZWdvcnkmcXVvdDsgbW9kZT0mcXVvdDtzb21lbW9kZSZxdW90O30uICBXaGVyZSBtb2RlIG1hdGNoZXMgb25lIG9mIHRoZSBtb2RlcyBsaXN0ZWQgYmVsb3cuICBUaGUgb3V0cHV0IHdpbGwgZGlmZmVyIGRlcGVuZGluZyB1cG9uIHdoaWNoIG1vZGUgeW91IHNlbGVjdC48L3A+DQo8cD5UaGlzIG1vZHVsZSBjYW4gdXNlIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSAob3B0aW9uYWwpIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCBhbnkgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VycyB0byBwYXJ0bHkgZmlsbCBpbiB0aGUgZm9ybSB3aGVuIHVwbG9hZGluZyBmaWxlczs8L3A+DQo8aDM+UGVybWlzc2lvbnM8L2gzPg0KPHVsPg0KPGxpPjxlbT5NYW5hZ2UgVXBsb2FkczwvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIG1hbmFnZSBjYXRlZ29yaWVzLCBhbmQgdGhlIGZpbGVzIHdpdGhpbiB0aGVtLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBUZW1wbGF0ZXM8L2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCBlZGl0IGFueSBvZiB0aGUgdGVtcGxhdGVzLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzL2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCBhbnkgb2YgdGhlIGZpbGUgc2V0dGluZ3MuPC9saT4NCjwvdWw+DQo8aDM+RW1haWxpbmc8L2gzPg0KPHA+VGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBzZW5kaW5nIGFuIGVtYWlsIHdoZW5ldmVyIGEgZmlsZSBpcyB1cGxvYWRlZCwgc2VlIHRoZSBwcmVmZXJlbmNlcyB0YWIuICBIb3dldmVyLCB0byBkbyB0aGlzIHRoZSA8Yj5DTVNNYWlsZXI8L2I+IHBhY2thZ2UgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuICBUaGlzIGlzIGFuIDxlbT5vcHRpb25hbDwvZW0+IHN0ZXAsIGFuZCBpZiB0aGUgQ01TTWFpbGVyIG1vZHVsZSBpcyBub3QgaW5zdGFsbGVkLCBub3RoaW5nIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLCBvbmx5IGEgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBwbGFjZWQgaW50byB0aGUgYWRtaW4gbG9nPC9wPg0KPGgzPlN5c3RlbSBTZXR0aW5nczwvaDM+DQo8cD48Yj5Ob3RlOjwvYj4gVGhpcyBtb2R1bGUgZG9lcyBub3QgYnlwYXNzIG9yIGdldCBwYXN0IGFueSBmaWxlIHNpemUgbGltaXRhdGlvbnMgaW4gcGhwLiAgSXQgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVtLiAgVGhlcmVmb3JlIHlvdSBtYXkgbmVlZCB0byBtb2RpZnkgeW91ciBwaHAuaW5pIGZpbGUgYW5kL29yIHlvdXIgaHR0cGQuY29uZiBmaWxlKHMpIHRvIGFsbG93IHlvdSB0byB1cGxvYWQgZmlsZXMgYXMgbGFyZ2UgYXMgd2hhdCB5b3UgaGF2ZSBzZXQgaW4gdGhlIHVwbG9hZHMgbW9kdWxlIHByZWZlcmVuY2VzLjwvcD4NCjxoMz5BcGFjaGUgTm90ZXM8L2gzPg0KPHA+SW4gb3JkZXIgdG8gYWxsb3cgbGFyZ2UgZmlsZSB1cGxvYWRzLCB5b3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBpbiB5b3VyIHBocC5pbmkgIEluIGFkZGl0aW9uLCB0aGUgTGltaXRSZXF1ZXN0Qm9keSBwYXJhbWV0ZXIgaW4geW91ciBhcGFjaGUgY29uZmlndXJhdGlvbiwgbWF5IG5lZWQgdG8gYmUgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhlIHVwbG9hZF9tYXhfZmlsZXNpemUgcGFyYW1ldGVyPC9wPg0KPHA+Tm90ZTogIHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBjYW4gYmUgc3BlY2lmaWVkIGluIGJ5dGVzLCBraWxvYnl0ZXMsIG9yIG1lZ2FieXRlcywgaG93ZXZlciB0aGUgTGltaXRSZXF1ZXRCb2R5IHBhcmFtZXRlciBpcyBvbmx5IHNwZWNpZmllZCBpbiBieXRlczwvcD4nOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGkgdmVyc2lvICVzIGFzZW5uZXR0dS4nOwokbGFuZ1snaXBfYWRkcmVzcyddID0gJ0lQIG9zb2l0ZSc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ01vZHVsaSBqb2thIHNhbGxpaSBrJmF1bWw7eXR0JmF1bWw7amllbiBsYWRhdGEgdGllZG9zdG9qYSBzaXZ1c3RvbGxlIGphIHlsbCZhdW1sO3BpdCZhdW1sO2omYXVtbDtuIGhhbGxpdGEgbiZhdW1sO2l0JmF1bWw7IHRpZWRvc3RvamEgJzsKJGxhbmdbJ25hbWUnXSA9ICdOaW1pJzsKJGxhbmdbJ3JlbmFtZW1lc3NhZ2UnXSA9ICdWYWloZGEgbmltaSB0YWkgdGVlIHV1ZGVsbGVlbm5pbWUmYXVtbDttaW5lbic7CiRsYW5nWydwYXRoJ10gPSAnUG9sa3UnOwokbGFuZ1sncGF0aG1lc3NhZ2UnXSA9ICdWYWloZGEga2F0ZWdvcmlhbiBuaW1pIHRhaSBzaWlyciZhdW1sOyB0aWVkb3N0byB0b2lzZWVuIGhha2VtaXN0b29uJzsKJGxhbmdbJ3BhdGhpbnVwbG9hZHMnXSA9ICcoUmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Bvc3QgSW5zdGFsbCBNZXNzYWdlLCBlLmcuLCBCZSBzdXJlIHRvIHNldCAmcXVvdDtNYW5hZ2UgVXBsb2FkcyZxdW90OyBwZXJtaXNzaW9ucyB0byB1c2UgdGhpcyBtb2R1bGUhJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgVXBsb2FkcyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuICBObyBmaWxlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHlvdXIgdXBsb2FkcyBkaXJlY3RvcnksIGFuZCBmaWxlIGludGVncml0eSBpcyBpbnRhY3QnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdBc2V0dWtzZXQnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWxpbiBhc2V0dWtzZXQgcCZhdW1sO2l2aXRldHR5JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWRlc2MnXSA9ICdLdXZhdXMnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5bGlzdGFibGUnXSA9ICdUaWVkb3N0b2EgdCZhdW1sO3NzJmF1bWw7IGhha2VtaXN0b3NzYSB2b2lkYWFuIGxpc3RhdGEnOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5bmFtZSddID0gJ0thdGVnb3JpYW4gbmltaSc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlwYXRoJ10gPSAnUGFsdmVsaW1lbiBwb2xrdSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlZGlyZWN0b3J5J10gPSAnVHVob2Ega2F0ZWdvcmlhbiBoYWtlbWlzdG8/JzsKJGxhbmdbJ3Byb21wdF9tYXhfdXBsb2Fkc2l6ZSddID0gJ01ha3NpbWkgdGllZG9zdG9rb2tvIChLYiknOwokbGFuZ1sncHJvbXB0X3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnXSA9ICdIeXYmYXVtbDtrc3l0eXQgdGllZG9zdG9wJmF1bWw7JmF1bWw7dHRlZXQnOwokbGFuZ1snc2NhbiddID0gJ1NrYW5uYWEnOwokbGFuZ1snc2VsZWN0Y2F0ZWdvcnknXSA9ICdWYWxpdHNlIGthdGVnb3JpYSc7CiRsYW5nWydzaXplJ10gPSAnS29rbyc7CiRsYW5nWydzaXpla2InXSA9ICdLb2tvIChLYiknOwokbGFuZ1snc3VibWl0J10gPSAnTCZhdW1sO2hldCZhdW1sOyc7CiRsYW5nWydzdW1tYXJ5X3RlbXBsYXRlJ10gPSAnS29vc3RlIHBvaGphJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdLb29zdGUnOwokbGFuZ1sndGl0bGVfYWRtaW5fcGFuZWwnXSA9ICdVcGxvYWRzIE1vZHVsZSc7CiRsYW5nWyd0aXRsZV9tb2RfYWRtaW4nXSA9ICdNb2R1bGluIGhhbGxpbnRhcGFuZWVsaSc7CiRsYW5nWyd0aXRsZV9tb2RfcHJlZnMnXSA9ICdNb2R1bGluIGFzZXR1a3NldCc7CiRsYW5nWyd0aXRsZV9zaW5nX2xvdWRseSddID0gJ1NpbmcgTG91ZGx5Pyc7CiRsYW5nWyd0aXRsZV9zdWJuZXRfZXhjbHVzaW9ucyddID0gJyZBdW1sO2wmYXVtbDsga2VyJmF1bWw7JmF1bWw7IHN0YXRpc3RpaWtrYSBhbGl2ZXJrb2lzdGEnOwokbGFuZ1sndGl0bGVfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyddID0gJ0h5diZhdW1sO2tzeXR5dCB0aWVkb3N0b3AmYXVtbDsmYXVtbDt0dGVldCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsaSBwb2lzdGV0dHUnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGkgcCZhdW1sO2l2aXRldHR5IHZlcnNpb29uICVzLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXRhYSc7CiRsYW5nWyd1cGxvYWRlZCddID0gJ0ZpbGUgJXMgd2FzIHVwbG9hZGVkIGJ5ICVzLic7CiRsYW5nWydyZXBsYWNlZCddID0gJ0ZpbGUgJXMgd2FzIHJlcGxhY2VkIGJ5ICVzLic7CiRsYW5nWydkZWxldGVkJ10gPSAnRmlsZSAlcyB3YXMgZGVsZXRlZC4nOwokbGFuZ1sndXBsb2FkZm9ybV90ZW1wbGF0ZSddID0gJ1VwbG9hZCBUZW1wbGF0ZSc7CiRsYW5nWyd1c2VybmFtZSddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7bmltaSc7CiRsYW5nWyd3YXJuaW5nX2RlbGV0ZWNhdGVnb3J5J10gPSAnVkFST0lUVVM6IEthdGVnb3Jpb2lkZW4gdHVob2FtaW5lbiBzYWF0dGFhIGthZG90dGFhIHRpZWRvc3RvamEnOwokbGFuZ1snd2VsY29tZV90ZXh0J10gPSAnPHA+V2VsY29tZSB0byB0aGUgVXBsb2FkcyBNb2R1bGUgYWRtaW4gc2VjdGlvbi4gU29tZXRoaW5nIGVsc2Ugd291bGQgcHJvYmFibHkgZ28gaGVyZSBpZiB0aGUgbW9kdWxlIGFjdHVhbGx5IGRpZCBzb21ldGhpbmcuPC9wPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE3NzU1NjEwMDUuMTE0Nzc4MTI5Mi4xMTQ5NTk5MzkzLjExNDk2OTk0NzYuOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExNDg2NzUzMTguNS41LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYyw0ODI5LjAvdG9waWNzZWVuLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3BhcmFtX25vY2FwdGNoYSddID0gJ0Rpc2FiaWxpdGEgaWwgc3VwcG9ydG8gY2FwdGNoYSAoYXR0aXZvIGRpIGRlZmF1bHQpIG5lbCBtb2R1bG8gZGkgdXBsb2FkJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZGZvcm1fdGVtcGxhdGUnXSA9ICdNb2RpZmljYSBpbCBNb2RlbGxvIGRlbCBNb2R1bG8gZGkgVXBsb2FkJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdJbnNlcml0ZSBpbCB0ZXN0byBjb250ZW51dG8gbmVsbCYjMDM5O2ltbWFnaW5lJzsKJGxhbmdbJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCddID0gJ0lsIHRlc3RvIGluc2VyaXRvIG5vbiBjb3JyaXNwb25kZSBjb24gbCYjMDM5O2ltbWFnaW5lIHZpc3VhbGl6emF0YSc7CiRsYW5nWyd0aXRsZV9hdXRvdGh1bWJuYWlsX2V4dGVuc2lvbnMnXSA9ICdDcmVhIGFudGVwcmltZSBwZXIgaSBmaWxlIGNvbiBxdWVzdGUgZXN0ZW5zaW9uaSc7CiRsYW5nWyd0aXRsZV9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEgKGluIHBpeGVsKSBkZWxsJiMwMzk7YW50ZXByaW1hIGdlbmVyYXRhJzsKJGxhbmdbJ3Byb21wdF91cGxvYWRfaWNvbiddID0gJ0NhcmljYSB1biBJY29uYSc7CiRsYW5nWydpbmZvX3N5c2RlZmF1bHQnXSA9ICdRdWVzdG8gdGVzdG8gdmllbmUgdXNhdG8gcXVhbmRvIHNpIGNyZWEgdW4gbnVvdm8gbW9kZWxsbyBkaSBxdWVzdG8gdGlwbyc7CiRsYW5nWyd0aXRsZV9kZXRhaWxycHRfc3lzZGVmYXVsdCddID0gJ0RlZmF1bHQgZGkgU2lzdGVtYSBkZWwgTW9kZWxsbyBkaSBSYXBwb3J0byBEZXR0YWdsaSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5cnB0X3N5c2RlZmF1bHQnXSA9ICdEZWZhdWx0IGRpIFNpc3RlbWEgZGVsIE1vZGVsbG8gZGkgUmFwcG9ydG8gU29tbWFyaW8nOwokbGFuZ1sndGl0bGVfdXBsb2FkZm9ybV9zeXNkZWZhdWx0J10gPSAnRGVmYXVsdCBkaSBTaXN0ZW1hIGRlbCBNb2RlbGxvIGRlbCBNb2R1bG8gZGkgdXBsb2FkJzsKJGxhbmdbJ3RlbXBsYXRlJ10gPSAnTW9kZWxsbyc7CiRsYW5nWydyZXNldHRvZGVmYXVsdCddID0gJ1JpcHJpc3RpbmEgdmFsb3JpIHByZWRlZmluaXRpJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlycHRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIGRpIFJhcHBvcnRvIFNvbW1hcmlvJzsKJGxhbmdbJ3RpdGxlX2RldGFpbHJwdF90ZW1wbGF0ZSddID0gJ01vZGVsbG8gZGkgUmFwcG9ydG8gRGV0dGFnbGknOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOb21lJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnUHJlZGVmaW5pdG8nOwokbGFuZ1snbGVnZW5kX3VwbG9hZGZvcm0nXSA9ICdDYXJpY2EgdW4gRmlsZSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdNYW5jYSB1biBwYXJhbWV0cm8gZXNzZW56aWFsZSc7CiRsYW5nWydlcnJvcl9taXNzaW5nbmFtZSddID0gJ0RldmUgZXNzZXJlIHNwZWNpZmljYXRvIHVuIG5vbWUgcGVyIGlsIGZpbGUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ2V4dGVuc2lvbnMnXSA9ICdEZXZlIGVzc2VyZSBzcGVjaWZpY2F0YSBhbG1lbm8gdW4mIzAzOTtlc3RlbnNpb25lIGRpIGZpbGUnOwokbGFuZ1snZXJyb3JfbWlzc2luZ2ljb24nXSA9ICdEZXZlIGVzc2VyZSBzcGVjaWZpY2F0YSB1biYjMDM5O2ljb25hJzsKJGxhbmdbJ2Vycm9yX25vc3VjaHJvdyddID0gJ05vbiAmZWdyYXZlOyBwb3NzaWJpbGllIHRyb3ZhcmUgbGEgcmlnYSBzcGVjaWZpY2F0YSAnOwokbGFuZ1snbmFtZV91bmtub3duJ10gPSAnU2Nvbm9zY2l1dG8nOwokbGFuZ1snZGVzY3JpcHRpb25fdW5rbm93biddID0gJ0Rlc2NyaXppb25lIGRlbCB0aXBvIGRpIGZpbGUgcGVyIGZpbGUgbm9uIGNvcnJpc3BvbmRlbnRpJzsKJGxhbmdbJ2ljb24nXSA9ICdJY29uYSc7CiRsYW5nWydleHRlbnNpb25zJ10gPSAnRXN0ZW5zaW9uZSBGaWxlJzsKJGxhbmdbJ2FkZGZpbGV0eXBlJ10gPSAnQWdnaXVuZ2kgdW4gTnVvdm8gVGlwbyBkaSBGaWxlJzsKJGxhbmdbJ2ZpbGVfdHlwZXMnXSA9ICdUaXBpIGRpIEZpbGUnOwokbGFuZ1snZXJyb3Jfbm9jYXRlZ29yeWlkJ10gPSAnTmVzc3VuIElEIGRpIENhdGVnb3JpYSBmb3JuaXRvJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdOZXNzdW4gSUQgZGkgQ2F0ZWdvcmlhIGZvcm5pdG8nOwokbGFuZ1snZXJyb3JfdGVtcGxhdGVuYW1lZXhpc3RzJ10gPSAnRXNpc3RlIGdpJmFncmF2ZTsgdW4gbW9kZWxsbyBjb24gbG8gc3Rlc3NvIG5vbWUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ05vbWUgTW9kZWxsbyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvJzsKJGxhbmdbJ3Byb21wdF9uZXd0ZW1wbGF0ZSddID0gJ0NyZWEgdW4gbnVvdm8gTW9kZWxsbyc7CiRsYW5nWydoZWxwX09uRG93bmxvYWQnXSA9ICc8cD5VbiBldmVudG8gZ2VuZXJhdG8gcWlhbmRvIHVuIHV0ZW50ZSB0ZXJtaW5hIGlsIGRvd25sb2FkIGRpIHVuIGZpbGU8L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT48ZW0+aWQ8L2VtPiAtIElEIGRpIFVwbG9hZDwvbGk+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIE5vbWUgZmlsZTwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBMJiMwMzk7aW5kaXJpenpvIElQIGRpIGNoaSBlZmZldHR1YSBpbCBkb3dubG9hZDwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25EZWxldGVDYXRlZ29yeSddID0gJzxwPlVuIGV2ZW50byBnZW5lcmF0byBxdWFuZG8gdmllbmUgY2FuY2VsbGF0YSB1bmEgQ2F0ZWdvcmlhPC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIE5vbWUgQ2F0ZWdvcmlhPC9saT4NCjxsaT48ZW0+cGF0aDwvZW0+IC0gUGVyY29yc28gZGVsbGEgQ2F0ZWdvcmlhPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PbkNyZWF0ZUNhdGVnb3J5J10gPSAnPHA+VW4gZXZlbnRvIGdlbmVyYXRvIHF1YW5kbyB2aWVuZSBjcmVhdGEgdW5hIENhdGVnb3JpYTwvcD4NCjxoND5QYXJhbWV0cmk8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBJbCBub21lIGRlbGxhIGNhdGVnb3JpYTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBMYSBkZXNjcml6aW9uZSBkZWxsYSBjYXRlZ29yaWE8L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBJbCBwZXJjb3JzbyBkZWxsYSBjYXRlZ29yaWE8L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBVbiBvcHppb25lIGNoZSBpbmRpY2Egc2UgbGEgY2F0ZWdvcmlhICZlZ3JhdmU7IGVsZW5jYWJpbGU8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uUmVtb3ZlJ10gPSAnPHA+VW4gZXZlbnRvIGdlbmVyYXRvIHF1YW5kbyB1biBmaWxlIHZpZW5lIHJpbW9zc28gdHJhbWl0ZSBsJiMwMzk7aW50ZXJmYWNjaWEgYW1taW5pc3RyYXRvcmUgbyB1dGVudGU8L3A+DQo8aDQ+UGFyYW1ldHJpPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gSWwgbm9tZSBkZWwgZmlsZSByaW1vc3NvPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIEwmIzAzOTtpZCBkZWwgZmlsZSByaW1vc3NvPC9saT4NCjxsaT48ZW0+Y2F0ZWdvcnlfaWQ8L2VtPiAtIEwmIzAzOTtpZCBkZWxsYSBjYXRlZ29yaWE8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uVXBsb2FkJ10gPSAnPHA+VW4gZXZlbnRvIGdlbmVyYXRvIHF1YW5kbyB1biBmaWxlIHZpZW5lIGNhcmljYXRvIHRyYW1pdGUgbCYjMDM5O2ludGVyZmFjY2lhIGFtbWluaXN0cmF0b3JlIG8gdXRlbnRlPC9wPg0KPGg0PlBhcmFtZXRyaTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmNhdGVnb3J5PC9lbT4gLSBJbCBub21lIGRlbGxhIGNhdGVnb3JpYTwvbGk+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIElsIG5vbWUgZGVsIGZpbGUgY2FyaWNhdG88L2xpPg0KPGxpPjxlbT5zaXplPC9lbT4gLSBMYSBkaW1lbnNpb25lIGRlbCBmaWxlIGNhcmljYXRvPC9saT4NCjxsaT48ZW0+c3VtbWFyeTwvZW0+IC0gTGEgZGVzY3JpemlvbmUgYnJldmUgZGVsIGZpbGUgY2FyaWNhdG8gKHB1Jm9ncmF2ZTsgZXNzZXJlIHZ1b3RhKTwvZW0+PC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIExhIGRlc2NyaXppb25lIGNvbXBsZXRhIHBlciBpbCBmaWxlIGNhcmljYXRvIChwdSZvZ3JhdmU7IGVzc2VyZSB2dW90YSk8L2VtPjwvbGk+DQo8bGk+PGVtPmF1dGhvcjwvZW0+IC0gTCYjMDM5O2F1dG9yZSBkZWwgZmlsZSBjYXJpY2F0byAoc2UgZGlzcG9uaWJpbGUpPC9lbT48L2xpPg0KPGxpPjxlbT5pcF9hZGRyZXNzPC9lbT4gLSBMJiMwMzk7aW5kaXJpenpvIGludGVybmV0IGRlbCBjbGllbnQgY2hlIGhhIGNhcmljYXRvIGlsIGZpbGU8L2xpPg0KPC91bD4NCic7CiRsYW5nWydpbmZvX2V2ZW50X29uZGVsZXRlY2F0ZWdvcnknXSA9ICdFdmVudG8gZ2VuZXJhdG8gZG9wbyBsYSBjYW5jZWxsYXppb25lIGRpIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snaW5mb19ldmVudF9vbmNyZWF0ZWNhdGVnb3J5J10gPSAnRXZlbnRvIGdlbmVyYXRvIGRvcG8gbGEgY3JlYXppb25lIGRpIHVuYSBjYXRlZ29yaWEnOwokbGFuZ1snaW5mb19ldmVudF9vbmRvd25sb2FkJ10gPSAnRXZlbnRvIGdlbmVyYXRvIGRvcG8gbG8gc2NhcmljYW1lbnRvIGRpIHVuIGZpbGUnOwokbGFuZ1snaW5mb19ldmVudF9vbnVwbG9hZCddID0gJ0V2ZW50byBnZW5lcmF0byBkb3BvIGlsIGNhcmljYW1lbnRvIGRpIHVuIG51b3ZvIGZpbGUnOwokbGFuZ1snaW5mb19ldmVudF9vbnJlbW92ZSddID0gJ0V2ZW50byBnZW5lcmF0byBxdWFuZG8gdW4gZmlsZSB2aWVuZSByaW1vc3NvJzsKJGxhbmdbJ3RpdGxlX3VzZXJ0YWdfb251cGxvYWQnXSA9ICdUYWcgZGVmaW5pdG8gZGFsbCYjMDM5O3V0ZW50ZSBkYSBpbnZvY2FyZSBhbCB0ZXJtaW5lIGRlbCBjYXJpY2FtZW50byBmaWxlJzsKJGxhbmdbJ25vbmUnXSA9ICdOZXNzdW5vJzsKJGxhbmdbJ21hdGNoZXNmb3VuZCddID0gJ0NvcnJpc3BvbmRlbnplIHRyb3ZhdGUnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdHJvJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0b251cGxvYWQnXSA9ICdSZWRpcmV6aW9uYSBhbGwmIzAzOTsgaWQvYWxpYXMgZGVsbGEgcGFnaW5hIGFsIGNhcmljYW1lbnRvIGRlbGwmIzAzOTt1dGVudGUnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldHRhZ2xpJzsKJGxhbmdbJ2NvbmZpcm1fcHJlZmVyZW5jZXMnXSA9ICdTaWV0ZSBjZXJ0aSBkaSB2b2xlcmUgY29ycmVnZ2VyZSBsZSBwcmVmZXJlbnplPyc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzdXBsb2FkZWQnXSA9ICdOZXNzdW4gZmlsZSBjYXJpY2F0by4nOwokbGFuZ1sncHJvbXB0X3JlcGxhY2UnXSA9ICdQZXJtZXR0aSBTb3ZyYXNjcml0dHVyYSc7CiRsYW5nWydpbmZvX3JlcGxhY2UnXSA9ICdTb3N0aXR1aXNjaSBxdWFsc2lhc2kgZmlsZSBjb24gbG8gc3Rlc3NvIG5vbWUgKG5vbiBtb2RpZmljYSBsJiMwMzk7SUQpJzsKJGxhbmdbJ3BhcmFtX25vX2luaXRpYWwnXSA9ICdOb24gbW9zdHJhIG5lc3N1biByaXN1bHRhdG8gaW5pemlhbGUgcXVhbmRvIGlsIGZpbHRybyAmZWdyYXZlOyBhdHRpdmF0byc7CiRsYW5nWydwYXJhbV9rZXknXSA9ICdGb3JuaXNjZSB1bmEgY2hpYXZlIGFnZ2l1bnRpdmEgYWwgbW9kdWxvIHBlciB1bmEgc3VjY2Vzc2l2YSBvcmdhbml6emF6aW9uZSBkZWdsaSB1cGxvYWQuICBRdWVzdGEgY2hpYXZlIHB1Jm9ncmF2ZTsgZXNzZXJlIHVuYSBzdHJpbmdhIGNvZGlmaWNhdGEgY29tZTogJiMwMzk7ZmV1c2Vyczp1aWQmIzAzOTssIGV0Yy4gIFF1ZXN0byBwYXJhbWV0cm8gc29saXRhbWVudGUgJmVncmF2ZTsgbmVjZXNzYXJpbyBzb2xvIHF1YW5kbyB2aWVuZSBpbmNvcnBvcmF0byBpbCBtb2R1bG8gVXBsb2FkcyBpbiB1biBhbHRybyBtb2R1bG8nOwokbGFuZ1sncGFyYW1fbm9hdXRob3InXSA9ICdOYXNjb25kZSBpbCBjYW1wbyBhdXRvcmUgZGFsIG1vZHVsbyBkaSBVcGxvYWQuIFF1ZXN0byBwYXJhbWV0cm8gJmVncmF2ZTsgdmFsaWRvIHNvbG8gcXVhbmRvICZlZ3JhdmU7IGltcG9zdGF0byBtb2RlPSYjMDM5O3VwbG9hZCYjMDM5Oy4gIFNlIHByZXNlbnRlIGlsIG1vZHVsbyBGcm9udGVuZFVzZXJzIGUgdW4gdXRlbnRlICZlZ3JhdmU7IGF0dHVhbG1lbnRlIGxvZ2dhdG8sIGlsIG5vbWUgdXRlbnRlIHZlcnImYWdyYXZlOyBjb25zZXJ2YXRvIGluIHVuIGNhbXBvIG5hc2Nvc3RvJzsKJGxhbmdbJ3BhcmFtX3VwbG9hZF9pZCddID0gJ3VwbG9hZF9pZD0mcXVvdDtpZCZxdW90OyAtIHNwZWNpZmljYSB1biBmaWxlIHNpbmdvbG8gcGVyIGxlIG1vZGFsaXQmYWdyYXZlOyB1cmwvbGluayBvIHNpbmdvbG8gKHNvcHJhKSc7CiRsYW5nWydwYXJhbV91c2Vfc3RyaWN0X3JlZ2V4cCddID0gJ0lsIGNhbXBvIGZpbHRybyAmZWdyYXZlOyB1dGlsaXp6YXRvIGNvbWUgdW4gcHVybyByZWdleHAgc2VuemEgZWxhYm9yYXppb25lIGRlZ2xpIHNwYXppJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVXRpbGl6emFyZSB1biBtb2RlbGxvIGNvbiBxdWVzdG8gbm9tZSBwZXIgaWwgcmFwcG9ydG8gZGV0dGFnbGlhdG8uJzsKJGxhbmdbJ3BhcmFtX3RlbXBsYXRlJ10gPSAnVXRpbGl6emFyZSB1biBtb2RlbGxvIGNvbiBxdWVzdG8gbm9tZSBwZXIgcXVlc3RvIHJhcHBvcnRvIG8gbW9kdWxvLiBRdWVzdG8gbW9kZWxsbyBpbnNlcmlzY2UgYXV0b21hdGljYW1lbnRlIHVuIG1vZGVsbG8gY29uIGlsIG5vbWUgY29ycmlzcG9uZGVudGUgZGFsbGEgbGlzdGEgYXBwcm9wcmlhdGEgYmFzYXRhIHN1bGxhIG1vZGFsaXQmYWdyYXZlOyBzcGVjaWZpY2F0YSc7CiRsYW5nWydwYXJhbV9maWx0ZXInXSA9ICdWaXN1YWxpenphIGlsIG1vZHVsbyBkaSBmaWx0cmFnZ2lvJzsKJGxhbmdbJ3BhcmFtX25vX2ludGl0aWFsJ10gPSAnRSYjMDM5OyB1dGlsZSBzb2xvIHF1YW5kbyBpbCBwYXJhbWV0cm8gZmlsdHJvIHZpZW5lIGZvcm5pdG8sIG8gJmVncmF2ZTsgYXR0aXZvIGNvbWUgdmFsb3JlIHByZWRlZmluaXRvLCBxdWVzdG8gcGFyYW1ldHJvIGluZGljYSBzZSBkZWJiYW5ubyBlc3NlcmUgcmVzdGl0dWl0aSBpIHZhbG9yaSBpbml6aWFsaSc7CiRsYW5nWydwYXJhbV9maWxldHlwZXMnXSA9ICdWaXN1YWxpenphIHNvbG8gaSBmaWxlIGlsIGN1aSB0aXBvIGNvcnJpc3BvbmRlIGNvbiBxdWVzdGEgbGlzdGEgc2VwYXJhdGEgZGEgdmlyZ29sYSc7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICcgIDxwPlRpcGkgZGkgb3JkaW5hbWVudG8NCiAgPHVsPg0KICA8bGk+PGVtPmRhdGVfYXNjPC9lbT4gLSBPcmRpbmEgcGVyIGRhdGEgYXNjZW5kZW50ZTwvbGk+DQogIDxsaT48ZW0+ZGF0ZV9kZXNjPC9lbT4gLSBPcmRpbmEgcGVyIGRhdGEgZGlzY2VuZGV0ZTwvbGk+DQogIDxsaT48ZW0+bmFtZV9hc2M8L2VtPiAtIE9yZGluYSBwZXIgbm9tZSBhc2NlbmRlbnRlPC9saT4NCiAgPGxpPjxlbT5uYW1lX2Rlc2M8L2VtPiAtIE9yZGluYSBwZXIgbm9tZSBkaXNjZW5kZW50ZTwvbGk+DQogIDxsaT48ZW0+c2l6ZV9hc2M8L2VtPiAtIE9yZGluYSBwZXIgZGltZW5zaW9uZSBhc2NlbmRlbnRlPC9saT4NCiAgPGxpPjxlbT5zaXplX2Rlc2M8L2VtPiAtIE9yZGluYSBwZXIgZGltZW5zaW9uZSBkaXNjZW5kZW50ZTwvbGk+DQogIDxsaT48ZW0+ZGVzY19hc2M8L2VtPiAtIE9yZGluYSBwZXIgZGVzY3JpemlvbmUgYXNjZW5kZW50ZTwvbGk+DQogIDxsaT48ZW0+ZGVzY19kZXNjPC9lbT4gLSBPcmRpbmEgcGVyIGRlc2NyaXppb25lIGRpc2NlbmRlbnRlPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfYXNjPC9lbT4gLSBPcmRpbmEgcGVyIGF1dG9yZSBhc2NlbmRlbnRlPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfZGVzYzwvZW0+IC0gT3JkaW5hIHBlciBhdXRvcmUgZGlzY2VuZGVudGU8L2xpPg0KICA8bGk+PGVtPmlwX2FzYzwvZW0+IC0gT3JkaW5hIHBlciBpbmRpcml6em8gaXAgYXNjZW5kZW50ZTwvbGk+DQogIDxsaT48ZW0+aXBfZGVzYzwvZW0+IC0gT3JkaW5hIHBlciBpbmRpcml6em8gaXAgZGlzY2VuZGVudGU8L2xpPg0KICA8bGk+PGVtPnJhbmRvbTwvZW0+IC0gT3JkaW5lIGNhc3VhbGU8L2xpPg0KICA8L3VsPg0KICA8L3A+JzsKJGxhbmdbJ3BhcmFtX2ZpbGVleHRlbnNpb25zJ10gPSAnIA0KZmlsZV9leHRlbnNpb25zPSZxdW90O2V4dDEsZXh0MixleHQzJnF1b3Q7DQo8cD52YWxpZG8gc29sbyBjb24gbW9kZT11cGxvYWQsIHF1ZXN0byBwYXJhbWV0cm8gbGltaXRhIGkgdGlwaSBkaSBmaWxlIGNoZSBwb3Nzb25vIGVzc2VyZSBjYXJpY2F0aS4gIFNvdnJhc2NyaXZlIHF1YWxzaWFzaSBpbXBvc3RhemlvbmUgbmVsbGUgcHJlZmVyZW56ZSBkZWwgbW9kdWxvLjwvcD4nOwokbGFuZ1sncGFyYW1fY291bnQnXSA9ICdjb3VudD0mcXVvdDtOJnF1b3Q7DQo8cD5VbiBwYXJhbWV0cm8gcGVyIGVsZW5jYXJlIHNvbG8gaSBwcmltaSBOIHJpc3VsdGF0aSBkZWxsYSBxdWVyeS4gIEwmIzAzOTtpbXBhZ2luYXppb25lIHNhcmViYmUgbWlnbGlvcmUsIG1hIHBlciBvcmEgcXVlc3RvIHJpc29sdmVyJmFncmF2ZTsgaWwgcHJvYmxlbWEuPC9wPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ2NhdGVnb3J5PSZxdW90O25hbWUmcXVvdDsNCjxwPjxiPk5vdGE6PC9iPiBMYSBDYXRlZ29yaWEgcHUmb2dyYXZlOyBlc3NlcmUgJnF1b3Q7YWxsJnF1b3Q7LCBjaGUgZWxlbmNoZXImYWdyYXZlOyB0dXR0aSBnbGkgdXBsb2FkIGRhIHR1dHRlIGxlIGNhdGVnaXJpZSA8ZW0+ZWxlbmNhYmlsaTwvZW0+PC9wPic7CiRsYW5nWydwYXJhbV9tb2RlJ10gPSAnICA8dWw+DQogIDxsaT48ZW0+ZGV0YWlsZWQ8L2VtPiAtIFZpc3VhbGl6emEgdW4gZWxlbmNvIGRldHRhZ2xpYXRvIGRpIHR1dHRpIGkgZmlsZSBuZWxsYSBjYXRlZ29yaWE8L2xpPg0KICA8bGk+PGVtPnVwbG9hZDwvZW0+IC0gVmlzdWFsaXp6YSB1biBtb2R1bG8gY2hlIHBlcm1ldHRhIGFkIHVuIFV0ZW50ZSBGcm9udGVuZCBkaSBjYXJpY2FyZSB1biBmaWxlPC9saT4NCiAgPGxpPjxlbT51cmwgPGk+b3I8L2k+IGxpbms8L2VtPiAtIFZpc3VhbGl6emEgaWwgbGluayBhZCB1biBmaWxlPC9saT4NCiAgPGxpPjxlbT5zdW1tYXJ5PC9lbT4gLSBWaXN1YWxpenphIHVuYSBsaXN0YSBhIHNvbW1hcmlvIGRpIHR1dHRpIGkgZmlsZSBuZWxsYSBjYXRlZ29yaWE8L2xpPg0KICA8bGk+PGVtPnNpbmdsZTwvZW0+IC0gVmlzdWFsaXp6YSB1biByYXBwb3J0byBkZXR0YWdsaWF0byBzdSB1biB1cGxvYWQgc2luZ29sbzwvbGk+DQogIDxsaT48ZW0+c2luZ2xlc3VtbWFyeTwvZW0+IC0gVmlzdWFsaXp6YSB1biByYXBwb3J0byBhIHNvbW1hcmlvIHN1IHVuIHVwbG9hZCBzaW5nb2xvPC9saT4NCiAgPC91bD4nOwokbGFuZ1sncmV0dXJudG9tb2R1bGUnXSA9ICdUb3JuYSBhbCBwYW5uZWxsbyBkZWwgbW9kdWxvJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcmllcyddID0gJ05vbiBjaSBzb25vIGNhdGVnb3JpZSBkZWZpbml0ZSc7CiRsYW5nWyd0aXRsZV9lbmZvcmNlZXh0ZW5zaW9ucyddID0gJ0VzdGVuc2lvbmUgbmVjZXNzYXJpYSBwZXIgdHV0dGkgaSBmaWxlIGNhcmljYXRpJzsKJGxhbmdbJ3Jlc3RvcmVkZWZhdWx0c2NvbmZpcm0nXSA9ICdRdWVzdGEgb3BlcmF6aW9uZSByaXByaXN0aW5lciZhZ3JhdmU7IGlsIG1vZGVsbG8gYWwgcHJlZGVmaW5pdG8gZGkgc2lzdGVtYS4gT2duaSBtb2RpZmljYSBmYXR0YSB2ZXJyJmFncmF2ZTsgcGVyc2EuICBTaWV0ZSBjZXJ0aSBkaSB2b2xlcmUgcHJvY2VkZXJlPyc7CiRsYW5nWydpbmZvX3RodW1ibmFpbCddID0gJ1VuIGZpbGUgZGkgYW50ZXByaW1hIG9wemlvbmFsZSc7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdBbnRlcHJpbWEnOwokbGFuZ1snaW5mb19zdW1tYXJ5J10gPSAnVW5hIGJyZXZlIGRlc2NyaXppb25lIGRlbCBmaWxlIChzZSB2dW90bywgaWwgbm9tZSBkZWwgZmlsZSB2aWVuZSB1dGlsaXp6YXRvIHNlbnphIGVzdGVuc2lvbmUpJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnluYW1lJ10gPSAnVW4gbm9tZSBicmV2ZSBwZXIgbGEgdm9zdHJhIGNhdGVnb3JpYSAobGVnZ2liaWxlKSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5ZGVzYyddID0gJ1VuYSBkZXNjcml6aW9uZSBwZXIgbGEgdm9zdHJhIGNhdGVnb3JpYSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5cGF0aCddID0gJ0lsIG5vbWUgZGVsbGEgY2FydGVsbGEgZGVudHJvIGxhIGNhcnRlbGxhIGRpIHVwbG9hZCBjaGUgdmVyciZhZ3JhdmU7IHV0aWxpenphdGEgcGVyIGNvbnRlbmVyZSBpIGZpbGUgZGkgcXVlc3RhIGNhdGVnb3JpYS4gU2UgbGEgY2FydGVsbGEgY29uIHF1ZXN0byBub21lIG5vbiBlc2lzdGUgcHUmb2dyYXZlOyBlc3NlcmUgY3JlYXRhLic7CiRsYW5nWydpbmZvX2Rlc3RuYW1lJ10gPSAnVXRpbGl6emEgaWwgY2FtcG8gJiMwMzk7VXBsb2FkIEFzJiMwMzk7IChDYXJpY2EgQ29tZSkgcGVyIG1vZGlmaWNhcmUgaWwgbm9tZSBkZWwgZmlsZSBuZWwgY2FyaWNhbWVudG8uICBMYXNjaWF0ZSB2dW90byBwZXIgbWFudGVuZXJlIGxvIHN0ZXNzbyBub21lIGRpIGZpbGUuJzsKJGxhbmdbJ2Vycm9yX2NhbnRjcmVhdGVkaXJlY3RvcnknXSA9ICdOb24gcG9zc28gY3JlYXJlIGxhIGNhcnRlbGxhJzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnTm9uIHJpZXNjbyBhIGluaXppYWxpenphcmUgaWwgbW9kdWxvIENNU01haWxlcic7CiRsYW5nWyd1cGxvYWRfbm90aWZpY2F0aW9uJ10gPSAnRSYjMDM5OyBzdGF0byBjYXJpY2F0byB1biBudW92byBmaWxlJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX29uX3VwbG9hZCddID0gJ0ludmlhIG5vdGlmaWNhIGRpIHVwbG9hZCBhOic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ01vZGVsbG8gZGkgRS1tYWlsJzsKJGxhbmdbJ3RpdGxlX2R1bW15X2luZGV4X2h0bWwnXSA9ICdDcmVhcmUgdW4gZmlsZSBpbmRleC5odG1sIGluIG9nbmkgY2FydGVsbGE/Q3JlYXRlIGR1bW15IGluZGV4Lmh0bWwgZmlsZXMgaW4gZWFjaCBkaXJlY3Rvcnk/PGJyLz48ZW0+T2duaSBmaWxlIGluZGV4Lmh0bWwgZXNpc3RlbnRlIHZlcnImYWdyYXZlOyBjb25zZXJ2YXRvPC9lbT4nOwokbGFuZ1snYWJvdXQnXSA9ICdJbmZvcm1hemlvbmkgc3UnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ0FjY2Vzc28gTmVnYXRvLiBWZXJpZmljYXRlIGkgdm9zdHJpIHBlcm1lc3NpLic7CiRsYW5nWydlcnJvcl9jb3VsZG5vdHdyaXRlJ10gPSAnTm9uIHBvc3NvIHNjcml2ZXJlJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWdnaXVuZ2kgQ2F0ZWdvcmlhJzsKJGxhbmdbJ2FsbCddID0gJ1R1dHRvJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdTaWV0ZSBTaWN1cmk/JzsKJGxhbmdbJ2F1dGhvciddID0gJ0F1dG9yZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGxhJzsKJGxhbmdbJ2Nhbm5vdG1vZGlmeXBhdGgnXSA9ICcoSWwgcGVyY29yc28gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIG1vZGlmaWNhdG8pJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEnOwokbGFuZ1snbWVzc2FnZV9jYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcmlhIGFnZ2l1bnRhIGNvbiBzdWNjZXNzbyc7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMC4gLSBTZXB0ZW1iZXIgMjAwNS48L3A+DQo8cD4gSW5pdGlhbCBSZWxlYXNlLjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDEuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5NaW5vciBmaXhlcy48L3A+PC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wMi4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIGFiaWxpdHkgdG8gc3BlY2lmeSBzb3J0IG9yZGVyPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wMy4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkZpeCByZWdhcmRpbmcgY29uZmxpY3QgaW4gdGVtcGxhdGUgbmFtZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA0LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgYWJpbGl0eSB0byByZS1zY2FuIGEgZGlyZWN0b3J5LCBhbmQgdG8gdXBsb2FkIGZpbGVzIGZyb20gdGhlIGFkbWluIHBhZ2U8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA1LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+Rml4ZWQgc29tZSBQSFAgdmFyaWFibGUgaXNzdWVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNi4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIGF1dGhvciBmaWVsZCB0byB0aGUgYWRtaW4gcGFuZWwgdXBsb2FkIGZvcm0sIGFkZGVkIGEgc3VtbWFyeSBmaWVsZCwgYW5kIG1hZGUgZGVzY3JpcHRpb24gYSB0ZXh0IGFyZWEsIGFuZCBhbGxvdyB0aGUgdXNlciB0byBzcGVjaWZ5IGEgZGVzdGluYXRpb24gZmlsZSBuYW1lPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNy4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIHRoZSBhYmlsaXR5IHRvIHJlbmFtZSBmaWxlcyBhbmQgZml4ZWQgYSBzY2FuIGVycm9yPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wOC4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkJldHRlciBoYW5kbGluZyBvZiBuYW1lcyB3aXRoIHNwYWNlcywgYW5kIGEgZmV3IG1pbm9yIGVycm9ycyBmaXhlZC4gIEFkZGVkIHN3ZWRpc2ggdHJhbnNsYXRpb24gKHRoYW5rcyB3ZXN0aXMpPC9wPjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4wLiAtIE9jdG9iZXIgMjAwNTwvcD4NCiA8dWw+DQogICA8bGk+TW9kaWZpZWQgQXR0ZW1wdFVwbG9hZCBmdW5jdGlvbiBzbyBpdCBjb3VsZCBiZSBjYWxsZWQgZXh0ZXJuYWxseTwvbGk+DQogICA8bGk+QWRkZWQgR2V0VXBsb2FkRGV0YWlscyBmdW5jdGlvbiB0aGF0IHJldHVybnMgYWxsIG9mIHRoZSBkZXRhaWxzIGFib3V0IGEgbW9kdWxlLCBpbmNsdWRpbmcgYSBsaW5rPC9saT4NCiAgIDxsaT5BZGRlZCBSZWRpcmVjdHMgc28gdGhhdCB3b3JraW5nIHdpdGggdGhlIG1vZHVsZSBpcyBhbG90IG5pY2VyLCBpdCByZXR1cm5zIHRvIHRoZSByaWdodCB0YWI8L2xpPg0KICAgPGxpPkNoYW5nZWQgdGhlIGZyb250IHRlbXBsYXRlIHRvIGxvb2sgYSBsaXR0bGUgYmV0dGVyIGFuZCBtYWtlIG1vcmUgc2Vuc2U8L2xpPg0KICAgPGxpPkZpeGVzIHRvIHRoZSB1cGxvYWRzIHN0dWZmIHNvIHRoYXQgdGhlIGRlc2NyaXB0aW9uIGlzIHNldCwgYW5kIG5hbWUgYW5kIHN1bW1hcnkgYXJlIHB1dCBpbiB0aGUgcmlnaHQgcGxhY2U8L2xpPg0KICAgPGxpPkZpeGVzIHRvIGV2ZW4gYmV0dGVyIGhhbmRsZSBzcGFjZXMgaW4gbmFtZXM8L2xpPg0KICAgPGxpPk9wdGlvbmFseSBwbGFjZSBkdW1teSBpbmRleC5odG1sIGZpbGVzIGluIGVhY2ggdXBsb2FkIGRpcmVjdG9yeTwvbGk+DQogICA8bGk+SWYgc3BlY2lmeWluZyBhIGRlc3RpbmF0aW9uIG5hbWUsIGFuZCBubyBleHRlbnNpb24gaXMgZ2l2ZW4sIHRoZSBleHRlbnNpb24gb2YgdGhlIG9yaWdpbmF0aW5nIGZpbGUgKGlmIGFueSBleGlzdHMgaXMgdXNlZDwvbGk+DQogPC91bD4NCiA8cD48ZW0+PGI+SW1wb3J0YW50ITwvYj48L2VtPjxici8+SXQgaXMgbm90IHBvc3NpYmxlIHRvIHVwZ3JhZGUgZnJvbSBhbnkgb3RoZXIgdmVyc2lvbiBvZiB0aGUgVXBsb2FkcyBtb2R1bGUgdG8gMS4xLjAuICBUaGlzIGlzIGR1ZSB0byBzb21lIGVycm9ycyB0aGF0IHdlcmUgbWFkZSBpbiB0aGUgZGF0YWJhc2Ugcm91dGluZXMsIGFuZCBldmVuIGluIHRoZSB1cGdyYWRlIHJvdXRpbmUgaW4gMS4wLjYuICBZb3UgbXVzdCBkZS1pbnN0YWxsIHRoZSBvbGQgdmVyc2lvbiwgYW5kIHRoZW4gcmUtaW5zdGFsbCB0aGUgbmV3IHZlcmVzaW9uLiBUaGlzIHdpbGwgY2F1c2Ugc2lnbmlmaWNhbnQgZGlmZmljdWx0eSBpZiB5b3UgaGF2ZSBkc2NyaXB0aW9ucywgZXRjLCBpbiB5b3VyIHRhYmxlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xLiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5GaXhlZCBhIGNvdXBsZSBvZiBtaW5vciBidWdzIGluIHRoZSBHZXRVcGxvYWREZXRhaWxzIGFuZCBhZGRlZCBhbm90aGVyIGxpbmsgKG9yIGEgdXJsKSB0byB0aGUgdXBsb2FkZWQgZmlsZS48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMi4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+Rml4ZWQgdGhlIFVSTCBmaWVsZCBpbiBHZXRVcGxvYWREZXRhaWxzIHRvIHJldHVybiBhIGRvd25sb2FkIGxpbmsgYW5kIGFkZGVkIGFuIGFic3VybCBmaWVsZCB3aGljaCByZXR1cm5zIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBmaWxlIG9uIHRoZSB3ZWJzZXJ2ZXIuICBDbGlja3Mgb24gdGhpcyBsaW5rIHdpbGwgbm90IGJlIGNvdW50ZWQ8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMy4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+Rml4ZWQgdGhlIHVwZ3JhZGUgcHJvYmxlbSBmcm9tIHRoZSAxLjAueCBzZXJpZXMuICBVc2VycyBvZiB0aGUgMS4wLnggc2VyaWVzIHNob3VsZCBiZSBhYmxlIHRvIHVwZ3JhZGUgdG8gMS4xLjMgbm93IHdpdGggbm8gZGlmZmljdWx0eS4gPGI+VGhvc2UgYXJlIGZhbW91cyBsYXN0IHdvcmRzLCBwbGVhc2UgYmFja3VwIGZpcnN0PC9iPi4gRml4ZWQgdGhlIGNvbnRlbnQgcmVkaXJlY3QgdGhpbmdzIHRoYXQgd2VyZSBpcnJpdGF0aW5nIG1lLiAgQWxzbyBhZGRlZCBjYXRlZ29yeT1hbGwgdG8gbGlzdCBhbGwgb2YgdGhlIHVwbG9hZHMgaW4gYWxsIGxpc3RhYmxlIGNhdGVnb3JpZXMgPGVtPihsZXRzIGFsbCBob3BlIEkgZ290IHRoZSBzcWwgZmlndXJlZCBvdXQgcHJvcGVybHkpPC9lbT4uPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjQuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkFkZGVkIHRoZSBjb3VudCBwYXJhbWV0ZXIgdG8gbGlzdCBvbmx5IHRoZSBmaXJzdCBOIHJlY29yZHMsIGFuZCBhZGRlZCAmcXVvdDtzdW1tYXJ5bGluayZxdW90OywgYW5kICZxdW90O2NhdGVnb3J5JnF1b3Q7IHRvIHRoZSB0ZW1wbGF0ZXMgZm9yIHdlc3Rpcy4gIEZvciBleGFtcGxlcyBvbiBob3cgdG8gdXNlIHRoZW0gcmVzZXQgeW91ciB0ZW1wbGF0ZXMgYmFjayB0byBkZWZhdWx0LjwvcD48L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNS4gLSBOb3ZlbWJlciwgMjAwNTwvcD4NCjxwPkFkZGVkIGVtYWlsIG5vdGlmaWNhdGlvbiBhbmQgc29tZSBidWcgZml4ZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNi4gLSBOb3ZlbWJlciwgMjAwNTwvcD4NCjxwPkFkZGVkIGFuIGFwaSBmdW5jdGlvbiBhbmQgZml4ZWQgc29tZSByZWRpcmVjdGlvbiBzdHVmZjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS43LiAtIE5vdmVtYmVyLCAyMDA1PC9wPg0KPHA+TW9yZSBBUEkgZnVuY3Rpb25zLCBhbmQgbm93IGlnbm9yZSBkb3QgZmlsZXMgd2hlbiBzY2FubmluZy4gIEVtYWlsIG5vdGlmaWNhdGlvbiBpcyBub3cgaW4uPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjguIC0gSmFudWFyeSwgMjAwNjwvcD4NCjxwPiogSW1wcm92ZWQgZG9jcyB3cnQgYXBhY2hlIGFuZCBwaHAgY29uZmlncy48L3A+DQo8cD4qIEZpeGVkIHByb2JsZW0gd2hlcmUgZmlsZXNpemUgd2FzIHNob3dpbmcgdXAgYXMgMC48L3A+DQo8cD4qIE1vZGlmaWVkIHBlcm1pc3Npb25zIHRvIGJlIG1vcmUgZ3JhbnVsYXI8L3A+DQo8cD4qIEFkZGVkIHNvbWUgY29tbWVudHMgYW5kIHZlcmJvc2l0eSB0byB0aGUgY2F0ZWdvcnkgYW5kIHVwbG9hZHMgZm9ybXMgaW4gdGhlIGFkbWluIHNlY3Rpb248L3A+DQo8cD4qIEFkZGVkICZxdW90O3JhbmRvbSZxdW90OyBzb3J0IG9yZGVyPC9wPg0KPHA+KiBTb21lIFBIUDUgZml4ZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuOS4gLSBKYW51YXJ5LCAyMDA2PC9wPg0KPHA+KiBBZGRlZCB0aGUgYWJpbGl0eSB0byB1cGxvYWQgYSB0aHVtYm5haWwgaW1hZ2U8L3A+DQo8cD4qIFNvbWUgaW1wcm92ZWQgYXVkaXRpbmc8L3A+DQo8cD4qIHhtbCBub3cgYWRkZWQgdG8gdGhlIGRlZmF1bHQgZmlsZSB0eXBlcyAobmV3IGluc3RhbGxzIG9ubHkpPC9wPg0KPHA+KiBBZGRlZCBhIGNvbmZpcm1hdGlvbiBtZXNzYWdlIHRvIHRoZSByZXNldCB0byBkZWZhdWx0cyBidXR0b25zIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlcy48L3A+DQo8cD4qIEFkZGVkIHRoZSBmaWxlX2V4dGVuc2lvbnMgcGFyYW1ldGVyIGZvciB0aGUgdXBsb2FkIGZvcm08L3A+DQo8cD4qIFRoZSBjdXJyZW50IGNhdGVnb3J5IHNlbGVjdGVkIGluIHRoZSBmaWxlcyBmaWx0ZXIgaXMgc3RpY2t5Lg0KPHA+KiBBZGRlZCBhIHByZWZlcmVuY2UgdG8gZW5mb3JpY2UgZmlsZW5hbWUgZXh0ZW5zaW9ucyAoZGVmYXVsdHMgdG8gb24pPC9wPg0KPHA+KiBBZGRlZCBhIGxpbmsgdG8gdGhlIGVkaXQgcGFnZSwgaW4gdGhlIG5hbWUgY29sdW1uIG9mIHRoZSBmaWxlcyBsaXN0LjwvcD4NCjxwPiogTWlub3IgY2hhbmdlcyB0byB0aGUgbGF5b3V0IGFuZCB0ZXh0IHRvIGFkZCBjbGFyaXR5LjwvcD4NCjxwPiogQWRkZWQgZG93bmxvYWRfdXJsIGFzIGFuIGF2YWlsYWJsZSBzbWFydHkgdGFnIGluIHRoZSB0ZW1wbGF0ZXM8L3A+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMC4gLSBGZWJydWFyeSwgMjAwNjwvcD4NCjxwPiogU3VtbWFyeSBub3cgZGVmYXVsdHMgdG8gdGhlIGZpbGVuYW1lICh3aXRob3V0IHRoZSBleHRlbnNpb24pIGlmIG5vbmUgaXMgc3BlY2lmaWVkPC9wPg0KPHA+KiBOb3cgY29ycmVjdGx5IGhhbmRsZSBpZiB0aGUgdGh1bWJuYWlsIGV4dGVuc2lvbiBpcyBub3QgaW4gdGhlIGFjY2VwdGVkIGV4dGVuc2lvbiBsaXN0PC9wPg0KPHA+KiBObyBsb25nZXIgZGlzcGxheSBhbnkgY29udGVudCBpbiB0aGUgZmlsZXMgdGFiIGlmIHRoZXJlIGFyZSBubyBjYXRlZ29yaWVzIGRlZmluZWQ8L3A+DQo8cD4qIERpc3BsYXkgYSBsaW5rIGluIHRoZSBlcnJvciBwYWdlIHRoYXQgdGFrZXMgeW91IGJhY2sgdG8gdGhlIG1haW4gYWRtaW4gcGFuZWw8L3A+DQo8cD4qIEFsbG93IGZvciByZXBsYWNpbmcgb2YgdXBsb2FkZWQgZmlsZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTEuIC0gTWFyY2gsIDIwMDY8L3A+DQo8cD5BZGRlZCB0aGUgYWJpbGl0eSBmb3IgYSBsaW5rIHRvIGEgZGV0YWlsZWQgcGFnZSB3aGVuIGluIHN1bW1hcnkgbW9kZS48L3A+DQo8cD5TcGxpdCB0aGUgZGVmYXVsdCBhY3Rpb24gYW5kIGRlZmF1bHRhZG1pbiBhY3Rpb25zIGludG8gc2VwYXJhdGUgZmlsZXMsIGZvciBhIGJpdCBvZiBtZW1vcnkgaW1wcm92ZW1lbnQsIGhvcGVmdWxseTwvcD4NCjxwPkFkZCB0aGUgYWJpbGl0eSB0byByZWRpcmVjdCB0byBhbm90aGVyIHBhZ2UgYWZ0ZXIgYSBmcm9udGVuZCB1c2VyIHVwbG9hZGVkIGEgZmlsZTwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMi4gLSBNYXJjaCwgMjAwNjwvcD4NCjxwPkFkZGVkIHRoZSBzaW5nbGVzdW1tYXJ5IG1vZGUgdG8gZGlzcGxheSBhIHNpbmdsZSB1cGxvYWQgaW4gc3VtbWFyeSBtb2RlPC9QPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEzLiAtIEFwcmlsLCAyMDA2PC9wPg0KPHA+QWRkZWQgb3B0aW9uYWwgZmlsdGVyaW5nIG9uIHRoZSBmcm9udGVuZCwgYW5kIGEgY291cGxlIG9mIGV4dHJhIHBhcmFtZXRlcnMgdG8gZ28gd2l0aCBpdDwvcD4NCjxwPkZpeGVkIGEgcHJvYmxlbSB3aGVyZSBpdCB3b3VsZCBhbGxvdyB5b3UgdG8gZW50ZXIgYSBibGFuayBwYXRoIHdoZW4gY3JlYXRpbmcgYSBjYXRlZ29yeTwvcD4NCjxwPlNwbGl0IHN0dWZmIGludG8gKHNvbWUpIHNlcGFyYXRlIGFjdGlvbiBmaWxlcyBmb3Igc29tZSBob3BlZnVsIHBlcmZvcm1hbmNlIGluY3JlYXNlczwvcD4NCjxwPkFkZGVkIGNvcHlyaWdodCBub3RpY2VzPC9wPg0KPHA+Q2hhbmdlZCAob3B0aW9uYWwpIGRlcGVuZGVuY3kgZnJvbSBVc2VySUQgdG8gRnJvbnRFbmRVc2VycyBNb2R1bGUuPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4yLjEgLSBBcHJpbCwgMjAwNjwvcD4NCjxwPkNoYW5nZWQgX3NjYW5EaXJlY3RvcnkgdG8gYW4gQVBJIGZ1bmN0aW9uIFNjYW5EaXJlY3RvcnkgYW5kIHRoZW4gYWRkZWQgU21hcnRTY2FuRGlyZWN0b3J5IHRvIHNjYW4gdGhlIGRpcmVjdG9yeSBiZWZvcmUgZGlzcGxheWluZyB0aGUgc3VtbWFyeSBvciBkZXRhaWwgbGlzdGluZyB0byBoYW5kbGUgdGhlDQpjYXNlIHdoZXJlIHNvbWVib2R5IHVwbG9hZGVkIGZpbGVzIHZpYSBGVFAgb3Igc29tZXRoaW5nIGFuZCBkaWQgbm90IGdvIGludG8gdGhlIGFkbWluIHNlY3Rpb24gdG8gdXBkYXRlIHRoZSBjYXRlZ29yaWVzLjwvcD4NCjxwPkNvcnJlY3Rpb24gdG8gYWxsIGRiIGFjY2VzcyBzdHVmZi4gSG9wZWZ1bGx5IHByb3ZpZGVzIGEgcGVyZm9ybWFuY2UgaW5jcmVhc2UuPC9wPg0KPHA+Rml4ZXMgdG8gdGhlIGFib3V0IHN0dWZmLCBub3cgdXNlIENyZWF0ZVBhcmFtZXRlcjwvcD4NCjxwPkFkZGVkIHRoZSB1cGxvYWRfdGVtcGxhdGUsIHN1bW1hcnlfdGVtcGxhdGUsIGFuZCBkZXRhaWxfdGVtcGxhdGUgKG9wdGlvbmFsKSBwYXJhbWV0ZXI8L3A+DQo8cD5BZGRlZCB0aGUgbm9hdXRob3IgcGFyYW1ldGVyLCBhbmQgdGhlIGtleSBwYXJhbWV0ZXIuICBUaGUga2V5IHBhcmFtZXRlciBhbGxvd3MgdGhlIHVwbG9hZHMgbW9kdWxlIHRvIGJlIGVtYmVkZGVkIGludG8gb3RoZXIgbW9kdWxlczwvcD4NCjxwPk1vdmVkIHRvIHVuZGVyIHRoZSBjb250ZW50IG1lbnUsIGFuZCBlbnRpdGxlZCAmIzAzOTtGaWxlcyAoVXBsb2FkIE1vZHVsZSkmIzAzOTs8L3A+Ow0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4yLjIgLSBKdW5lLCAyMDA2DQo8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIG11bHRpcGxlIGRhdGFiYXNlIHRlbXBsYXRlcywgYW5kIHRvIHNlbGVjdCBvbmUgb24gdGhlIHRhZyB3aXRoIHRoZSB0ZW1wbGF0ZSBwYXJhbWV0ZXIuPC9wPg0KPHA+Rml4ZWQgYW4gaXNzdWUgd2hlcmUgZmlsZXMgd2VyZSBnZXR0aW5nIGNvcnJ1cHRlZCBvbiBkb3dubG9hZDwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMi4zIC0gSnVuZSwgMjAwNg0KPHA+Rml4ZXMgdG8gdXNlIGFkb2RiLWxpdGUgcHJvcGVyLCByYXRoZXIgdGhhbiB0ZWRzIGhhY2s8L3A+DQo8cD5EZXRhaWwgbGluayBub3cgZGlzcGxheXMgaW5saW5lPC9wPg0KPHA+T3RoZXIgbWlub3IgdHdlYWtzIHRoYXQgSSBjYW50IHJlbWVtYmVyPC9wPg0KPC9saT4NCjwvdWw+JzsKJGxhbmdbJ2RhdGUnXSA9ICdEYXRhJzsKJGxhbmdbJ2RhdGV1cGxvYWRlZCddID0gJ0RhdGEgQ2FyaWNhbWVudG8nOwokbGFuZ1snZGVmYXVsdCddID0gJ1ZhbG9yaSBwcmVkZWZpbml0aSc7CiRsYW5nWydkZWxldGUnXSA9ICdFbGltaW5hJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpemlvbmUnOwokbGFuZ1snZGVzdG5hbWUnXSA9ICdDYXJpY2EgQ29tZSc7CiRsYW5nWydkZXRhaWxfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIERldHRhZ2xpJzsKJGxhbmdbJ2Rvd25sb2FkZWQnXSA9ICdJbCBmaWxlICVzICZlZ3JhdmU7IHN0YXRvIHNjYXJpY2F0by4nOwokbGFuZ1snZG93bmxvYWRzJ10gPSAnRG93bmxvYWQnOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2VkaXRjYXRlZ29yeSddID0gJ01vZGlmaWNhIENhdGVnb3JpYSc7CiRsYW5nWydlZGl0dXBsb2FkJ10gPSAnTW9kaWZpY2EgVXBsb2FkJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3JlISc7CiRsYW5nWydlcnJvcl9wYXRoaW51c2UnXSA9ICdFJiMwMzk7IGdpJmFncmF2ZTsgcHJlc2VudGUgdW5hIGNhdGVnb3JpYSBjaGUgdXRpbGl6emEgcXVlc3RvIHBlcmNvcnNvJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5ZXhpc3RzJ10gPSAnRXJyb3JlOiBsYSBDYXRlZ29yaWEgZWlzdGUgZ2kmYWdyYXZlOyc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeW5vdGVtcHR5J10gPSAnRXJyb3JlISBOb24gcG9zc28gZWxpbWluYXJlIHVuYSBjYXRlZ29yaWEgY2hlIG5vbiBzaWEgdnVvdGEnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3Rmb3VuZCddID0gJ0Vycm9yZTogQ2F0ZWdvcmlhIG5vbiB0cm92YXRhISc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRXJyb3JlOiBFcnJvcmUgZGVsIERhdGFiYXNlISc7CiRsYW5nWydlcnJvcl9lbXB0eWNhdGVnb3J5J10gPSAnRXJyb3JlOiBDYXRnb3JpYSB2dW90YSEnOwokbGFuZ1snZXJyb3JfZW1wdHlwYXRoJ10gPSAnRXJyb3JlOiBQZXJjb3JzbyB2dW90byEnOwokbGFuZ1snZXJyb3JfZmlsZWV4aXN0cyddID0gJ0Vycm9yZSEgSWwgZmlsZSAlcyAmZWdyYXZlOyBnaSZhZ3JhdmU7IHByZXNlbnRlLic7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdFcnJvcmUhIE5vbiAmZWdyYXZlOyBwb3NzaWJpbGUgdHJvdmFyZSBpbCBmaWxlICVzLic7CiRsYW5nWydlcnJvcl9pbnN1ZmZpY2llbnRwYXJhbXMnXSA9ICdFcnJvcmU6IFBhcmFtZXRyaSBpbnN1ZmZpY2llbnRpIHBhc3NhdGkgYWwgbW9kdWxvISc7CiRsYW5nWydlcnJvcl9pbnZhbGlkYXV0aG9yJ10gPSAnRXJyb3JlOiBBdXRvcmUgbm9uIHZhbGlkbyAobyB2dW90bykuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjYXRlZ29yeSddID0gJ0Vycm9yZTogQ2F0ZWdvcmlhIG5vbiB2YWxpZGEgKG8gdnVvdGEpLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkZGVzY3JpcHRpb24nXSA9ICdFcnJvcmU6IERlc2NyaXppb25lIG5vbiB2YWxpZGEgKG8gdnVvdGEpLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkZmlsZSddID0gJ0Vycm9yZTogTm9tZSBGaWxlIG5vbiB2YWxpZG8gKG8gdnVvdG8pLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXBsb2FkZmlsZW5hbWUnXSA9ICdFcnJvcmU6IEZpbGUgY29uIHF1ZXN0byBub21lIChwcm9iYWJpbG1lbnRlIGwmIzAzOTtlc3RlbnNpb25lKSBub24gc29ubyBjb25zZW50aXRpICglcykuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cGxvYWRpZCddID0gJ0Vycm9yZTogaWQgZGkgY2FyaWNhbWVudG8gbm9uIHZhbGlkbyc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzJ10gPSAnRXJyb3JlOiBOZXNzdW4gRmlsZSBDb3JyaXNwb25kZW50ZSEnOwokbGFuZ1snZmlsZXMnXSA9ICdGaWxlJzsKJGxhbmdbJ2ZpeG1lJ10gPSAnQ29ycmVnZ2kgU3BhemknOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRmlsZSAoTW9kdWxvIFVwbG9hZHMpJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPkl0IGlzIGEgbW9kdWxlIGZvciBhbGxvd2luZyBwZW9wbGUgdG8gdXBsb2FkIGFuZCBkb3dubG9hZCBmaWxlcyB0byBhbmQgZnJvbSB5b3VyIHNpdGUuICBJdCBrZWVwcyB0cmFjayBvZiB3aG8gdXBsb2FkZWQgYSBmaWxlLCBhbmQgd2hvIGhhcyBkb3dubG9hZGVkIGl0LiAgQXMgd2VsbCwgeW91IGNhbiBzb3J0IGZpbGVzIGludG8gY2F0ZWdvcmllcywgYW5kIG1hbmFnZSB0aGUgZmlsZXMgdGhhdCB3ZXJlIHVwbG9hZGVkIGxpa2UgZXZlcnkgYWRtaW5pc3RyYXRvciB3b3VsZCBkbzwvcD4gDQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPlRvIHVzZSB0aGlzIG1vZHVsZSwgdG8gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIGZpbGVzIHRvIHlvdXIgc2l0ZSwgeW91IHNob3VsZCBpbnN0YWxsIHRoZSBtb2R1bGUsIGFuZCB0aGVuIGNyZWF0ZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzIChhLmsuYSkgZGlyZWN0b3JpZXMgZm9yIHRoZSB1cGxvYWRlZCBmaWxlcyB0byBnbyBpbnRvLiBUaGVuIGFkZCBhIHRhZyBpbnRvIGEgcGFnZSBvciB0ZW1wbGF0ZSBzb21ld2hlcmUgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7VXBsb2FkcyZxdW90OyBjYXRlZ29yeT0mcXVvdDtzb21lY2F0ZWdvcnkmcXVvdDsgbW9kZT0mcXVvdDtzb21lbW9kZSZxdW90O30uICBXaGVyZSBtb2RlIG1hdGNoZXMgb25lIG9mIHRoZSBtb2RlcyBsaXN0ZWQgYmVsb3cuICBUaGUgb3V0cHV0IHdpbGwgZGlmZmVyIGRlcGVuZGluZyB1cG9uIHdoaWNoIG1vZGUgeW91IHNlbGVjdC48L3A+DQo8cD5UaGlzIG1vZHVsZSBjYW4gdXNlIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSAob3B0aW9uYWwpIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCBhbnkgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VycyB0byBwYXJ0bHkgZmlsbCBpbiB0aGUgZm9ybSB3aGVuIHVwbG9hZGluZyBmaWxlczs8L3A+DQo8aDM+UGVybWlzc2lvbnM8L2gzPg0KPHVsPg0KPGxpPjxlbT5NYW5hZ2UgVXBsb2FkczwvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIG1hbmFnZSBjYXRlZ29yaWVzLCBhbmQgdGhlIGZpbGVzIHdpdGhpbiB0aGVtLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBUZW1wbGF0ZXM8L2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCBlZGl0IGFueSBvZiB0aGUgdGVtcGxhdGVzLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzL2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCBhbnkgb2YgdGhlIGZpbGUgc2V0dGluZ3MuPC9saT4NCjwvdWw+DQo8aDM+RW1haWxpbmc8L2gzPg0KPHA+VGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBzZW5kaW5nIGFuIGVtYWlsIHdoZW5ldmVyIGEgZmlsZSBpcyB1cGxvYWRlZCwgc2VlIHRoZSBwcmVmZXJlbmNlcyB0YWIuICBIb3dldmVyLCB0byBkbyB0aGlzIHRoZSA8Yj5DTVNNYWlsZXI8L2I+IHBhY2thZ2UgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuICBUaGlzIGlzIGFuIDxlbT5vcHRpb25hbDwvZW0+IHN0ZXAsIGFuZCBpZiB0aGUgQ01TTWFpbGVyIG1vZHVsZSBpcyBub3QgaW5zdGFsbGVkLCBub3RoaW5nIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLCBvbmx5IGEgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBwbGFjZWQgaW50byB0aGUgYWRtaW4gbG9nPC9wPg0KPGgzPlN5c3RlbSBTZXR0aW5nczwvaDM+DQo8cD48Yj5Ob3RlOjwvYj4gVGhpcyBtb2R1bGUgZG9lcyBub3QgYnlwYXNzIG9yIGdldCBwYXN0IGFueSBmaWxlIHNpemUgbGltaXRhdGlvbnMgaW4gcGhwLiAgSXQgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVtLiAgVGhlcmVmb3JlIHlvdSBtYXkgbmVlZCB0byBtb2RpZnkgeW91ciBwaHAuaW5pIGZpbGUgYW5kL29yIHlvdXIgaHR0cGQuY29uZiBmaWxlKHMpIHRvIGFsbG93IHlvdSB0byB1cGxvYWQgZmlsZXMgYXMgbGFyZ2UgYXMgd2hhdCB5b3UgaGF2ZSBzZXQgaW4gdGhlIHVwbG9hZHMgbW9kdWxlIHByZWZlcmVuY2VzLjwvcD4NCjxoMz5BcGFjaGUgTm90ZXM8L2gzPg0KPHA+SW4gb3JkZXIgdG8gYWxsb3cgbGFyZ2UgZmlsZSB1cGxvYWRzLCB5b3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBpbiB5b3VyIHBocC5pbmkgIEluIGFkZGl0aW9uLCB0aGUgTGltaXRSZXF1ZXN0Qm9keSBwYXJhbWV0ZXIgaW4geW91ciBhcGFjaGUgY29uZmlndXJhdGlvbiwgbWF5IG5lZWQgdG8gYmUgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhlIHVwbG9hZF9tYXhfZmlsZXNpemUgcGFyYW1ldGVyPC9wPg0KPHA+Tm90ZTogIHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBjYW4gYmUgc3BlY2lmaWVkIGluIGJ5dGVzLCBraWxvYnl0ZXMsIG9yIG1lZ2FieXRlcywgaG93ZXZlciB0aGUgTGltaXRSZXF1ZXRCb2R5IHBhcmFtZXRlciBpcyBvbmx5IHNwZWNpZmllZCBpbiBieXRlczwvcD4NCic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ1ZlcnNpb25lICVzIGRlbCBNb2R1bG8gaW5zdGFsbGF0YS4nOwokbGFuZ1snaXBfYWRkcmVzcyddID0gJ0luZGlyaXp6byBJUCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsbyBjaGUgcGVybWV0dGUgYWdsaSB1dGVudGkgZGkgY2FyaWNhcmUgZmlsZSwgZSBwZXJtZXR0ZSBhIHZvaSBkaSBnZXN0aXJsaS4nOwokbGFuZ1snbmFtZSddID0gJ05vbWUnOwokbGFuZ1sncmVuYW1lbWVzc2FnZSddID0gJ01vZGlmaWNhIGlsIG5vbWUgcXVpIHBlciByaW5vbWluYXJsbyc7CiRsYW5nWydwYXRoJ10gPSAnUGVyY29yc28nOwokbGFuZ1sncGF0aG1lc3NhZ2UnXSA9ICdNb2RpZmljYSBsYSBjYXRlZ29yaWEgcXVpIHBlciBzcG9zdGFyZSBpbCBmaWxlIGluIHVuJiMwMzk7YWx0cmEgY2FydGVsbGEnOwokbGFuZ1sncGF0aGludXBsb2FkcyddID0gJyhSZWxhdGl2byBhbGxhIGNhcnRlbGxhIGRlZ2xpIHVwbG9hZCknOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdJbCBtb2R1bG8gZGkgdXBsb2FkICZlZ3JhdmU7IHN0YXRvIGluc3RhbGxhdG8gY29uIHN1Y2Nlc3NvLiBBc3NpY3VyYXRldmkgZGkgaW1wb3N0YXJlIGkgcGVybWVzc2kgJnF1b3Q7TWFuYWdlIFVwbG9hZHMmcXVvdDsgcGVyIHV0aWxpenphcmUgcXVlc3RvIG1vZHVsbyEnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0lsIG1vZHVsbyBVcGxvYWRzICZlZ3JhdmU7IHN0YXRvIHJpbW9zc28gY29uIHN1Y2Nlc3NvLiAgTmVzc3VuIGZpbGUgJmVncmF2ZTsgc3RhdG8gcmltb3NzbyBkYWxsYSB2b3N0cmEgY2FydGVsbGEgZGkgdXBsb2FkIGUgbCYjMDM5O2ludGVncml0JmFncmF2ZTsgZGVpIGZpbGUgJmVncmF2ZTsgaW50YXR0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuemUnOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnUHJlZmVyZW56ZSBkZWwgbW9kdWxvIGFnZ2lvcm5hdGUuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWRlc2MnXSA9ICdEZXNjcml6aW9uZSc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlsaXN0YWJsZSddID0gJ0kgZmlsZSBpbiBxdWVzdGEgY2FydGVsbGEgcG9zc29ubyBlc3NlcmUgZWxlbmNhdGknOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5bmFtZSddID0gJ05vbWUgZGVsbGEgQ2F0ZWdvcmlhJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeXBhdGgnXSA9ICdQZXJjb3JzbyBkZWwgU2VydmVyJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVkaXJlY3RvcnknXSA9ICdFbGltaW5hcmUgY2FydGVsbGEgZGVsbGEgY2F0ZWdvcmlhPyc7CiRsYW5nWydwcm9tcHRfbWF4X3VwbG9hZHNpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEgZGVsIGZpbGUgcGVybWVzc2EgKEtiKSc7CiRsYW5nWydwcm9tcHRfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyddID0gJ0VzdGVuc2lvbmkgdmFsaWRlIHBlciBsJiMwMzk7dXBsb2FkJzsKJGxhbmdbJ3NjYW4nXSA9ICdFc2FtaW5hJzsKJGxhbmdbJ3NlbGVjdGNhdGVnb3J5J10gPSAnU2VsZXppb25hIENhdGVnb3JpYSc7CiRsYW5nWydzaXplJ10gPSAnRGltZW5zaW9uZSc7CiRsYW5nWydzaXpla2InXSA9ICdEaW1lbnNpb25lIChLYiknOwokbGFuZ1snc3VibWl0J10gPSAnSW52aWEnOwokbGFuZ1snc3VtbWFyeV90ZW1wbGF0ZSddID0gJ01vZGVsbG8gZGVsIFNvbW1hcmlvJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdTb21tYXJpbyc7CiRsYW5nWyd0aXRsZV9hZG1pbl9wYW5lbCddID0gJ01vZHVsbyBVcGxvYWRzJzsKJGxhbmdbJ3RpdGxlX21vZF9hZG1pbiddID0gJ1Bhbm5lbGxvIGRpIEFtbWluaXN0cmF6aW9uZSBNb2R1bG8nOwokbGFuZ1sndGl0bGVfbW9kX3ByZWZzJ10gPSAnUHJlZmVyZW56ZSBkZWwgTW9kdWxvJzsKJGxhbmdbJ3RpdGxlX3NpbmdfbG91ZGx5J10gPSAnTWV0dGVyZSBpbiBFdmlkZW56YT8nOwokbGFuZ1sndGl0bGVfc3VibmV0X2V4Y2x1c2lvbnMnXSA9ICdFc2NsdWRlcmUgbGUgc290dG9yZXRpIGRhbGxhIHN0YXRpc3RpY2hlJzsKJGxhbmdbJ3RpdGxlX3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pIFZhbGlkZSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsbyBEaXNpbnN0YWxsYXRvLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsbyBhZ2dpb3JuYXRvIGFsbGEgdmVyc2lvbmUgJXMuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0NhcmljYSc7CiRsYW5nWyd1cGxvYWRlZCddID0gJ0ZpbGUgJXMgY2FyaWNhdG8gZGEgJXMuJzsKJGxhbmdbJ3JlcGxhY2VkJ10gPSAnRmlsZSAlcyBzb3N0aXR1aXRvIGRhICVzLic7CiRsYW5nWydkZWxldGVkJ10gPSAnSWwgRmlsZSAlcyAmZWdyYXZlOyBzdGF0byBjYW5jZWxsYXRvLic7CiRsYW5nWyd1cGxvYWRmb3JtX3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBkaSBVcGxvYWQnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdVc2VybmFtZSc7CiRsYW5nWyd3YXJuaW5nX2RlbGV0ZWNhdGVnb3J5J10gPSAnQVRURU5aSU9ORTogVXNhdGUgY2F1dGVsYSBxdWFuZG8gY2FuY2VsbGF0ZSBjYXRlZ29yaWUuIEUmIzAzOTsgcG9zc2liaWxlIHBlcmRlcmUgZmlsZSc7CiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5XZWxjb21lIHRvIHRoZSBVcGxvYWRzIE1vZHVsZSBhZG1pbiBzZWN0aW9uLiBTb21ldGhpbmcgZWxzZSB3b3VsZCBwcm9iYWJseSBnbyBoZXJlIGlmIHRoZSBtb2R1bGUgYWN0dWFsbHkgZGlkIHNvbWV0aGluZy48L3A+JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE2MDUxMDQ0NS4zLjIudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPXdpa2kuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHAvVXNlcl9IYW5kYm9vay9JbnN0YWxsYXRpb24vUXVpY2tfSW5zdGFsbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODYwMTAzMTkzLjExNjA0MTU2NzcuMTE3NDU2MjgzMC4xMTc0NTY1NDEwLjE5JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ3BhcmFtX25vY2FwdGNoYSddID0gJ1NsJmFyaW5nOyBhdiBDYXB0Y2hhIHN0Jm9zbGFzaDt0dGUgKGVyIHAmYXJpbmc7IHNvbSBzdGFuZGFyZCkgaSBvcHBsYXN0aW5nIHNramVtYWV0JzsKJGxhbmdbJ3RpdGxlX3VwbG9hZGZvcm1fdGVtcGxhdGUnXSA9ICdSZWRpZ2VyIE9wcGxhc3RpbmcgU2tqZW1hbWFsJzsKJGxhbmdbJ2NhcHRjaGFfdGl0bGUnXSA9ICdTa3JpdiBpbm4gdGVrc3RlbiBzb20gdmlzZXMgaSBkZXR0ZSBiaWxkZXQnOwokbGFuZ1snZXJyb3JfY2FwdGNoYW1pc21hdGNoJ10gPSAnVGVrc3RlbiBmcmEgYmlsZGV0IGJsZSBpa2tlIHNrcmV2ZXQgcmlrdGlnJzsKJGxhbmdbJ3RpdGxlX2F1dG90aHVtYm5haWxfZXh0ZW5zaW9ucyddID0gJ09wcHJldHQgbWluaWF0eXJiaWxkZXIgZm9yIGZpbGVyIHNvbSBoYXIgZGlzc2UgZmlsZW5kZWxzZW5lJzsKJGxhbmdbJ3RpdGxlX2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01ha3NpbXVtIHN0Jm9zbGFzaDtycmVsc2UgKHBpeGVscykgcCZhcmluZzsgZ2VuZXJlcnQgbWluaWF0eXJiaWxkZSc7CiRsYW5nWydwcm9tcHRfdXBsb2FkX2ljb24nXSA9ICdMYXN0IG9wcCBldCBJa29uJzsKJGxhbmdbJ2luZm9fc3lzZGVmYXVsdCddID0gJ0Rlbm5lIHRla3N0ZW4gYmxpciBicnVrdCBuJmFyaW5nO3IgZW4gbnkgbWFsIGF2IGRlbm5lIHR5cGUgb3BwcmV0dGVzJzsKJGxhbmdbJ3RpdGxlX2RldGFpbHJwdF9zeXNkZWZhdWx0J10gPSAnU3lzdGVtIHN0YW5kYXJkIERldGFsaiBSYXBwb3J0IG1hbCc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5cnB0X3N5c2RlZmF1bHQnXSA9ICdTeXN0ZW0gc3RhbmRhcmQgU2FtbWVuZHJhZyBSYXBwb3J0IG1hbCc7CiRsYW5nWyd0aXRsZV91cGxvYWRmb3JtX3N5c2RlZmF1bHQnXSA9ICdTeXN0ZW0gc3RhbmRhcmQgVXBsb2FkIFNramVtYSBtYWwnOwokbGFuZ1sndGVtcGxhdGUnXSA9ICdNYWwnOwokbGFuZ1sncmVzZXR0b2RlZmF1bHQnXSA9ICdTZXR0IHRpbCBTdGFuZGFyZCc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5cnB0X3RlbXBsYXRlJ10gPSAnU2FtbWVuZHJhZyBSYXBwb3J0IG1hbCc7CiRsYW5nWyd0aXRsZV9kZXRhaWxycHRfdGVtcGxhdGUnXSA9ICdEZXRhbGogUmFwcG9ydCBtYWwnOwokbGFuZ1sncHJvbXB0X25hbWUnXSA9ICdOYXZuJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1snbGVnZW5kX3VwbG9hZGZvcm0nXSA9ICdMYXN0IG9wcCBlbiBmaWwnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnRW4gbiZvc2xhc2g7ZHZlbmRpZyBwYXJhbWV0ZXIgbWFuZ2xlcic7CiRsYW5nWydlcnJvcl9taXNzaW5nbmFtZSddID0gJ0V0IG5hdm4gcCZhcmluZzsgZmlsdHlwZW4gbSZhcmluZzsgc3Blc2lmaXNlcmVzJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdleHRlbnNpb25zJ10gPSAnTWluc3QgZW4gZmlsZW5kZWxzZSBtJmFyaW5nOyBzcGVzaWZpc2VyZXMnOwokbGFuZ1snZXJyb3JfbWlzc2luZ2ljb24nXSA9ICdFdCBpa29uIG0mYXJpbmc7IHNwZXNpZmlzZXJlcyc7CiRsYW5nWydlcnJvcl9ub3N1Y2hyb3cnXSA9ICdEZW4gc3Blc2lmaXNlcnRlIHJhZGVuIGJsZSBpa2tlIGZ1bm5ldCc7CiRsYW5nWyduYW1lX3Vua25vd24nXSA9ICdVa2plbnQnOwokbGFuZ1snZGVzY3JpcHRpb25fdW5rbm93biddID0gJ0Jlc2tyaXZlbHNlIGZvciB1a2plbnRlIGZpbHR5cGVyJzsKJGxhbmdbJ2ljb24nXSA9ICdJa29uJzsKJGxhbmdbJ2V4dGVuc2lvbnMnXSA9ICdGaWxlbmRlbHNlcic7CiRsYW5nWydhZGRmaWxldHlwZSddID0gJ0xlZ2cgdGlsIG55IGZpbHR5cGUnOwokbGFuZ1snZmlsZV90eXBlcyddID0gJ0ZpbHR5cGVyJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnlpZCddID0gJ0luZ2VuIGthdGVnb3JpIGlkIGJsZSBvcHBnaXR0JzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnknXSA9ICdJbmdlbiBrYXRlZ29yaSBpZCBibGUgb3BwZ2l0dCc7CiRsYW5nWydlcnJvcl90ZW1wbGF0ZW5hbWVleGlzdHMnXSA9ICdFbiBtYWwgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGVuYW1lJ10gPSAnTWFsbmF2bic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNYWwnOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTGFnIGVuIG55IG1hbCc7CiRsYW5nWydoZWxwX09uRG93bmxvYWQnXSA9ICc8cD5FbiBoZW5kZWxzZSBnZW5lcmVydCBuJmFyaW5nO3IgZW4gYnJ1a2VyIGF2c2x1dHRlciBuZWRsYXN0aW5nIGF2IGVuIGZpbDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+aWQ8L2VtPiAtIExhc3Qtb3BwIElEPC9saT4NCjxsaT48ZW0+bmF2bjwvZW0+IC0gRmlsbmF2bjwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBJUCBBZHJlc3NlbiB0aWwgZGVuIHNvbSBsYXN0ZXQgbmVkPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PbkRlbGV0ZUNhdGVnb3J5J10gPSAnPHA+RW4gaGVuZGVsc2UgZ2VuZXJlcnQgbiZhcmluZztyIGVuIGthdGVnb3JpIGVyIHNsZXR0ZXQ8L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hdm48L2VtPiAtIEthdGVnb3JpIG5hdm48L2xpPg0KPGxpPjxlbT5zdGk8L2VtPiAtIEthdGVnb3JpIHN0aTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25DcmVhdGVDYXRlZ29yeSddID0gJzxwPkVuIGhlbmRlbHNlIGdlbmVyZXJ0IG4mYXJpbmc7ciBlbiBrYXRlZ29yaSBlciBvcHByZXR0ZXQ8L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hdm48L2VtPiAtIE5hdm5ldCBwJmFyaW5nOyBrYXRlZ29yaWVuPC9saT4NCjxsaT48ZW0+YmVza3JpdmVsc2U8L2VtPiAtIEthdGVnb3JpIGJlc2tyaXZlbHNlbjwvbGk+DQo8bGk+PGVtPnN0aTwvZW0+IC0gS2F0ZWdvcmkgc3RpZW48L2xpPg0KPGxpPjxlbT5zdGk8L2VtPiAtIEV0IGZsYWdnIHNvbSBpbmRpa2VyZXIgb20ga2F0ZWdvcmllbiBlciB1dGxpc3RiYXI8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uUmVtb3ZlJ10gPSAnPHA+RW4gaGVuZGVsc2UgZ2VuZXJlcnQgbiZhcmluZztyIGVuIGZpbCBlciBmamVybmV0IHZpYSBBZG1pbiBlbGxlciBGcm9udGVuZCBncmVuc2Vzbml0dGVuZTwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+bmF2bjwvZW0+IC0gTmF2bmV0IHAmYXJpbmc7IGRlbiBmamVybmVkZSBmaWxhPC9saT4NCjxsaT48ZW0+aWQ8L2VtPiAtIElEJiMwMzk7ZW4gcCZhcmluZzsgZGVuIGZqZXJuZWRlIGZpbGE8L2xpPg0KPGxpPjxlbT5rYXRlZ29yaV9pZDwvZW0+IC0gSUQmIzAzOTtlbiBwJmFyaW5nOyBrYXRlZ29yaWVuPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PblVwbG9hZCddID0gJzxwPkVuIGhlbmRlbHNlIGdlbmVyZXJ0IG4mYXJpbmc7ciBlbiBueSBmaWwgZXIgbGFzdGV0IG9wcCB2aWEgYWRtaW4gZWxsZXIgZnJvbnRlbmQgZ3JlbnNlc25pdHRldDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+a2F0ZWdvcmk8L2VtPiAtIEthdGVnb3JpIG5hdm5ldDwvbGk+DQo8bGk+PGVtPm5hdm48L2VtPiAtIE5hdm5ldCBwJmFyaW5nOyBkZW4gb3BwbGFzdGVkZSBmaWxhPC9saT4NCjxsaT48ZW0+c3Qmb3NsYXNoO3JyZWxzZTwvZW0+IC0gU3Qmb3NsYXNoO3JyZWxzZW4gcCZhcmluZzsgZGVuIG9wcGxhc3RlZGUgZmlsYTwvbGk+DQo8bGk+PGVtPnNhbW1lbmRyYWc8L2VtPiAtIERlbiBrb3J0ZSBiZXNrcml2ZWxzZW4gZm9yIGRlbiBvcHBsYXN0ZWRlIGZpbGEgKGthbiB2JmFlbGlnO3JlIGJsYW5rKTwvZW0+PC9saT4NCjxsaT48ZW0+YmVza3JpdmVsc2U8L2VtPiAtIERlbiBmdWxsZSBiZXNrcml2ZWxzZW4gZm9yIGRlbiBvcHBsYXN0ZWRlIGZpbGEgKGthbiB2JmFlbGlnO3JlIGJsYW5rKTwvZW0+PC9saT4NCjxsaT48ZW0+b3BwaGF2c21hbm48L2VtPiAtIE9wcGhhdnNtYW5uZW4gZm9yIGRlbiBvcHBsYXN0ZWRlIGZpbGEgKGlmIGF2YWlsYWJsZSk8L2VtPjwvbGk+DQo8bGk+PGVtPmlwX2FkcmVzc2U8L2VtPiAtIEludGVybmV0dCBhZHJlc3NlbiBmb3Iga2xpZW50ZW4gc29tIGxhc3RldCBvcHAgZmlsYTwvbGk+DQo8L3VsPic7CiRsYW5nWydpbmZvX2V2ZW50X29uZGVsZXRlY2F0ZWdvcnknXSA9ICdIZW5kZWxzZSBnZW5lcmVydCBuJmFyaW5nO3IgZW4ga2F0ZWdvcmkgZXIgc2xldHRldCc7CiRsYW5nWydpbmZvX2V2ZW50X29uY3JlYXRlY2F0ZWdvcnknXSA9ICdIZW5kZWxzZSBnZW5lcmVydCBuJmFyaW5nO3IgZW4ga2F0ZWdvcmkgZXIgbGFnZXQnOwokbGFuZ1snaW5mb19ldmVudF9vbmRvd25sb2FkJ10gPSAnSGVuZGVsc2UgZ2VuZXJlcnQgbiZhcmluZztyIGVuIGZpbCBlciBsYXN0ZXQgbmVkJzsKJGxhbmdbJ2luZm9fZXZlbnRfb251cGxvYWQnXSA9ICdIZW5kZWxzZSBnZW5lcmVydCBuJmFyaW5nO3IgZW4gbnkgZmlsIGVyIGxhc3RldCBvcHAnOwokbGFuZ1snaW5mb19ldmVudF9vbnJlbW92ZSddID0gJ0hlbmRlbHNlIGdlbmVyZXJ0IG4mYXJpbmc7ciBlbiBmaWwgZXIgZmplcm5ldCc7CiRsYW5nWyd0aXRsZV91c2VydGFnX29udXBsb2FkJ10gPSAnQnJ1a2VyIGRlZmluZXJ0IHRhZ2cgJmFyaW5nOyBraiZvc2xhc2g7cmUgZXR0ZXIgb3BwbGFzdGluZyBlciBmZXJkaWcnOwokbGFuZ1snbm9uZSddID0gJ0luZ2VuJzsKJGxhbmdbJ21hdGNoZXNmb3VuZCddID0gJ1RyZWZmIGZ1bm5ldCc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXIgJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0b251cGxvYWQnXSA9ICdWaWRlcmVzZW5kIHRpbCBzaWRlIGlkL2FsaWFzIHZlZCBicnVrZXJzIG9wcGxhc3RpbmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2NvbmZpcm1fcHJlZmVyZW5jZXMnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIGVuZHJlIGlubnN0aWxsaW5nZW5lJzsKJGxhbmdbJ2Vycm9yX25vZmlsZXN1cGxvYWRlZCddID0gJ0luZ2VuIGZpbGVyIGJsZSBsYXN0ZXQgb3BwLic7CiRsYW5nWydwcm9tcHRfcmVwbGFjZSddID0gJ1RpbGxhdCBvdmVyc2tyaXZpbmcnOwokbGFuZ1snaW5mb19yZXBsYWNlJ10gPSAnRXJzdGF0dCBlbmh2ZXIgZmlsIG1lZCBzYW1tZSBuYXZuIChlbmRyZXIgaWtrZSBpZCYjMDM5O2VuKSc7CiRsYW5nWydwYXJhbV9ub19pbml0aWFsJ10gPSAnSWtrZSB2aXMgbm9lbiBpbm5sZWRlbmRlIHJlc3VsdGF0ZXIgbiZhcmluZztyIGZpbHRlcmV0IGVyIHAmYXJpbmc7JzsKJGxhbmdbJ3BhcmFtX2tleSddID0gJ1RpbGYmb3NsYXNoO3kgZW4gZWtzdHJhIG4mb3NsYXNoO2trZWwgdGlsIG1vZHVsZW4gZm9yIGVuZGEgYmVkcmUgb3JnYW5pc2VyaW5nIGF2IHVwcGxhc3Rpbmdlci4gIERlbm5lIG4mb3NsYXNoO2trZWwga2FuIHYmYWVsaWc7cmUgZW4ga29kZXQgc3RyZW5nIHNvbTogJiMwMzk7ZmV1c2Vyczp1aWQmIzAzOTssIG9zdi4gIERlbm5lIHBhcmFtZXRlciBlciB2YW5saWd2aXMga3VuIG4mb3NsYXNoO2R2ZW5kaWcgbiZhcmluZztyIGR1IGlubmVzbHV0dGVyIHVwbG9hZHMgbW9kdWxlbiBpIGVuIGFubmVuIG1vZHVsJzsKJGxhbmdbJ3BhcmFtX25vYXV0aG9yJ10gPSAnR2plbSBvcHBoYXZzbWFubi9hdXRob3IgZmVsdGV0IGZyYSBvcHBsYXN0aW5ncyBza2plbWFldC4gIERlbm5lIHBhcmFtZXRlciBlciBrdW4gdmlya3NvbSBuJmFyaW5nO3IgbW9kZT0mIzAzOTt1cGxvYWQmIzAzOTsuICBPbSBGcm9udGVuZFVzZXJzIG1vZHVsZW4gZXIgdGlsc3RlZGUsIG9nIGVuIGJydWtlciBlciBpbm5sb2dnZXQsIGV0IHNranVsdCBmZWx0IHZpbCBpbm5laG9sZGUgZGVuIG4mYXJpbmc7diZhZWxpZztyZW5kZSBpbm5sb2dnZWRlcyBicnVrZXJuYXZuJzsKJGxhbmdbJ3BhcmFtX3VwbG9hZF9pZCddID0gJ3VwbG9hZF9pZD0mcXVvdDtpZCZxdW90OyAtIHNwZXNpZmlzZXJlciBlbiBlbmtlbHQgZmlsIGZvciB1cmwmIzAzOTtlbi9saW5rZW4gZWxsZXIgZW5rZWwtbW9kdXMgKG92ZXJmb3IpJzsKJGxhbmdbJ3BhcmFtX3VzZV9zdHJpY3RfcmVnZXhwJ10gPSAnRmlsdGVyIGZlbHRldCBlciBicnVrdCBzb20gKHN0cmljdCByZWdleHApIHV0ZW4gZm9yIHByb3NzZXNzZXJpbmcgYXYgbWVsbG9tcm9tJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnQnJ1ayBlbiBtYWwgbWVkIGRldHRlIG5hdm5ldCBmb3IgZGVuIGRldGFsamVydGUgcmFwcG9ydGVuLic7CiRsYW5nWydwYXJhbV90ZW1wbGF0ZSddID0gJ0JydWsgZW4gbWFsIG1lZCBkZXR0ZSBuYXZuIGZvciBkZW5uZSByYXBwb3J0IGVsbGVyIHNramVtYS4gIERlbm5lIG1hbGVuIHRyZWtrZXIgYXV0b21hdGlzayBlbiBtYWwgbWVkIGRldCBrb3JyZXNwb25kZXJlbmRlIG5hdm5ldCBmcmEgZGVuIHBhc3NlbmRlIGxpc3RlbiBiYXNlcnQgcCZhcmluZzsgZGVuIHNwZXNpZmlzZXJ0ZSBtJmFyaW5nO3Rlbic7CiRsYW5nWydwYXJhbV9maWx0ZXInXSA9ICdWaXMgZmlsdGVyIHNramVtYWV0JzsKJGxhbmdbJ3BhcmFtX25vX2ludGl0aWFsJ10gPSAnS3VuIGJydWtlbGlnIG4mYXJpbmc7ciBmaWx0ZXIgcGFyYW1ldGVyIGVyIGdpdHQsIGVsbGVyIHAmYXJpbmc7IHNvbSBzdGFuZGFyZCwgZGVubmUgcGFyYW1ldGVyIGluZGlrZXJlciBvbSBpbm5sZWRlbmRlIHJlc3VsdGF0ZXIgc2thbCB2aXNlcyc7CiRsYW5nWydwYXJhbV9maWxldHlwZXMnXSA9ICdWaXMga3VuIGZpbGVyIHNvbSBzYW1zdmFyZXIgbWVkIGRlbm5lIGtvbW1hc2VwYXJlcnRlIGxpc3Rlbic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICcgIDxwPlNvcnRlcmluZ3NyZWtrZWYmb3NsYXNoO2xnZXINCiAgPHVsPg0KICA8bGk+PGVtPmRhdGVfYXNjPC9lbT4gLSBTb3J0ZXIgZGF0byBzdGlnZW5kZTwvbGk+DQogIDxsaT48ZW0+ZGF0ZV9kZXNjPC9lbT4gLSBTb3J0ZXIgZGF0byBzeW5rZW5kZTwvbGk+DQogIDxsaT48ZW0+bmFtZV9hc2M8L2VtPiAtIFNvcnRlciBuYXZuIHN0aWdlbmRlPC9saT4NCiAgPGxpPjxlbT5uYW1lX2Rlc2M8L2VtPiAtIFNvcnRlciBuYXZuIHN5bmtlbmRlPC9saT4NCiAgPGxpPjxlbT5zaXplX2FzYzwvZW0+IC0gU29ydGVyIHN0Jm9zbGFzaDtycmVsc2Ugc3RpZ2VuZGU8L2xpPg0KICA8bGk+PGVtPnNpemVfZGVzYzwvZW0+IC0gU29ydGVyIHN0Jm9zbGFzaDtycmVsc2Ugc3lua2VuZGU8L2xpPg0KICA8bGk+PGVtPmRlc2NfYXNjPC9lbT4gLSBTb3J0ZXIgYmVza3JpdmVsc2Ugc3RpZ2VuZGU8L2xpPg0KICA8bGk+PGVtPmRlc2NfZGVzYzwvZW0+IC0gU29ydGVyIGJlc2tyaXZlbHNlIHN5bmtlbmRlPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfYXNjPC9lbT4gLSBTb3J0ZXIgb3BwaGF2c21hbm4vYXV0aG9yIHN0aWdlbmRlPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfZGVzYzwvZW0+IC0gU29ydGVyIG9wcGhhdnNtYW5uL2F1dGhvciBzeW5rZW5kZTwvbGk+DQogIDxsaT48ZW0+aXBfYXNjPC9lbT4gLSBTb3J0ZXIgaXAtYWRyZXNzZSBzdGlnZW5kZTwvbGk+DQogIDxsaT48ZW0+aXBfZGVzYzwvZW0+IC0gU29ydGVyIGlwLWFkcmVzc2Ugc3lua2VuZGU8L2xpPg0KICA8bGk+PGVtPnJhbmRvbTwvZW0+IC0gVGlsZmVsZGlnIHNvcnRlcmluZzwvbGk+DQogIDwvdWw+DQogIDwvcD4nOwokbGFuZ1sncGFyYW1fZmlsZWV4dGVuc2lvbnMnXSA9ICcgDQpmaWxlX2V4dGVuc2lvbnM9JnF1b3Q7ZXh0MSxleHQyLGV4dDMmcXVvdDsNCjxwPmd5bGRpZyBrdW4gb20gbW9kZT11cGxvYWQsIGRlbm5lIHBhcmFtZXRlcmVuIGJlZ3JlbnNlciBmaWx0eXBlbmUgc29tIGthbiBsYXN0ZXMgb3BwLiAgT3ZlcnN0eXJlciBlbmh2ZXIgdmVyZGkgaSBtb2R1bCBpbm5zdGlsbGluZ2VuZS48L3A+JzsKJGxhbmdbJ3BhcmFtX2NvdW50J10gPSAnY291bnQ9JnF1b3Q7TiZxdW90Ow0KPHA+RW4gcGFyYW1ldGVyIGZvciAmYXJpbmc7IGxpc3RlIHV0IGt1biBkZSBmJm9zbGFzaDtyc3RlIE4gc3ZhciBmcmEgc3Amb3NsYXNoO3JyaW5nZW4uICBTaWRlZm9ybWF0ZXJpbmcgdmlsbGUgdiZhZWxpZztyZSBiZWRyZSwgbWVuIGRldHRlIGYmYXJpbmc7ciBob2xkZSBuJmFyaW5nOzwvcD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdjYXRlZ29yeT0mcXVvdDtuYW1lJnF1b3Q7DQo8cD48Yj5Ob3RhdDo8L2I+IEthdGVnb3JpIGthbiB2JmFlbGlnO3JlICZxdW90O2FsbCZxdW90Oywgc29tIHZpbCBsaXN0ZSB1dCBhbGxlIG9wcGxhc3RpbmdlciBmcmEgYWxsZSA8ZW0+bGlzdGFibGU8L2VtPiBrYXRlZ29yaWVyPC9wPic7CiRsYW5nWydwYXJhbV9tb2RlJ10gPSAnICA8dWw+DQogIDxsaT48ZW0+ZGV0YWlsZWQ8L2VtPiAtIFZpcyBlbiBkZXRhbGplcnQgbGlzdGUgb3ZlciBhbGxlIGZpbGVyIGkga2F0ZWdvcmllbjwvbGk+DQogIDxsaT48ZW0+dXBsb2FkPC9lbT4gLSBWaXNlciBldCBza2plbWEgc29tIHRpbGxhdGVyIGVuIGZyb250ZW5kIGJydWtlciAmYXJpbmc7IGxhc3RlIG9wcCBlbiBmaWw8L2xpPg0KICA8bGk+PGVtPnVybCA8aT5lbGxlcjwvaT4gbGluazwvZW0+IC0gVmlzZXIgZW4gbGluayB0aWwgZW4gZmlsPC9saT4NCiAgPGxpPjxlbT5zdW1tYXJ5PC9lbT4gLSBWaXNlciBlbiBzdW1tZXJ0IGxpc3RlIG92ZXIgYWxsZSBmaWxlciBpIGthdGVnb3JpZW48L2xpPg0KICA8bGk+PGVtPnNpbmdsZTwvZW0+IC0gVmlzZXIgZW4gZGV0YWxqZXJ0IHJhcHBvcnQgb20gZW4gZW5rZWx0IG9wcGxhc3Rpbmc8L2xpPg0KICA8bGk+PGVtPnNpbmdsZXN1bW1hcnk8L2VtPiAtIFZpc2VyIGVuIHN1bW1lcnQgcmFwcG9ydCBvbSBlbiBlbmtlbHQgb3BwbGFzdGluZzwvbGk+DQogIDwvdWw+JzsKJGxhbmdbJ3JldHVybnRvbW9kdWxlJ10gPSAnVGlsYmFrZSB0aWwgTW9kdWwgcGFuZWxldCc7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3JpZXMnXSA9ICdEZXQgZXIgaW5nZW4gZGVmaW5lcnRlIGthdGVnb3JpZXInOwokbGFuZ1sndGl0bGVfZW5mb3JjZWV4dGVuc2lvbnMnXSA9ICdLcmV2ZXIgZmlsLWVuZGVsc2UgcCZhcmluZzsgYWxsZSBvcHBsYXN0ZWRlIGZpbGVyJzsKJGxhbmdbJ3Jlc3RvcmVkZWZhdWx0c2NvbmZpcm0nXSA9ICdEZW5uZSBoYW5kbGluZyB2aWwgdGlsYmFrZXN0aWxsZSBtYWxlbiB0aWwgc3lzdGVtIHN0YW5kYXJkLiBFbmh2ZXIgZW5kcmluZyBkdSBoYXIgZ2pvcnQgdmlsIGJsaSBib3J0ZS4gRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBmb3J0c2V0dGU/JzsKJGxhbmdbJ2luZm9fdGh1bWJuYWlsJ10gPSAnRW4gdmFsZ2ZyaSBtaW5pYXR5cmJpbGRlIGZpbCc7CiRsYW5nWyd0aHVtYm5haWwnXSA9ICdNaW5pYXR5cmJpbGRlICc7CiRsYW5nWydpbmZvX3N1bW1hcnknXSA9ICdFbiBrb3J0IGJlc2tyaXZlbHNlIChvbSBibGFuaywgYmxpciBmaWxuYXZuZXQgYnJ1a3QgdXRlbiBmaWwtZW5kZWxzZSknOwokbGFuZ1snaW5mb19jYXRlZ29yeW5hbWUnXSA9ICdFdCBrb3J0IG5hdm4gcCZhcmluZzsgZGluIGthdGVnb3JpIChmb3JzdCZhcmluZztlbGlnIGZvciBodmVybWFuc2VuKSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5ZGVzYyddID0gJ0VuIGJlc2tyaXZlbHNlIGF2IGRpbiBrYXRlZ29yaSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5cGF0aCddID0gJ0thdGFsb2duYXZuZXQgaW5uZSBpIG9wcGxhc3RpbmdzIGthdGFsb2dlbiBzb20gdmlsIGJsaSBicnVrdCBmb3IgJmFyaW5nOyBsYWdyZSBmaWxlciBpIGRlbm5lIGthdGVnb3JpLiAgT20ga2F0YWxvZ2VuIG1lZCBkZXR0ZSBuYXZuZXQgaWtrZSBla3Npc3RlcmVyLCB2aWwgZGVuIGJsaSBvcHByZXR0ZXQnOwokbGFuZ1snaW5mb19kZXN0bmFtZSddID0gJ0JydWsgJiMwMzk7VXBsb2FkIEFzJiMwMzk7IGZlbHRldCBmb3IgJmFyaW5nOyBlbmRyZSBuYXZuZXQgcCZhcmluZzsgZmlsYSB2ZWQgb3BwbGFzdGluZy4gIExhIHYmYWVsaWc7cmUgYmxhbmt0IGZvciAmYXJpbmc7IGJlaG9sZGUgbmF2bmV0IHNvbSBkZXQgZXIuJzsKJGxhbmdbJ2Vycm9yX2NhbnRjcmVhdGVkaXJlY3RvcnknXSA9ICdLdW5uZSBpa2tlIG9wcHJldHRlIGthdGFsb2cnOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdDTVNNYWlsZXIgbW9kdWxlbiBrdW5uZSBpa2tlIHN0YXJ0ZXMnOwokbGFuZ1sndXBsb2FkX25vdGlmaWNhdGlvbiddID0gJ0VuIG55IGZpbCBoYXIgYmxpdHQgbGFzdGV0IG9wcCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9vbl91cGxvYWQnXSA9ICdTZW5kIG9wcGxhc3RpbmdzLW1lbGRpbmcgdGlsOic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0Vwb3N0IG1hbCc7CiRsYW5nWyd0aXRsZV9kdW1teV9pbmRleF9odG1sJ10gPSAnT3BwcmV0dCBkdW1teSBpbmRleC5odG1sIGZpbGVyIGkgaHZlciBrYXRhbG9nPzxici8+PGVtPkluZ2VuIGVrc2lzdGVyZW5kZSBpbmRleC5odG1sIGZpbGVyIHZpbCBibGkgaWdqZW48L2VtPic7CiRsYW5nWydhYm91dCddID0gJ09tJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdBZGdhbmcgbmVrdGV0LiBWZW5ubGlnc3Qgc2pla2sgZGluZSByZXR0aWdoZXRlci4nOwokbGFuZ1snZXJyb3JfY291bGRub3R3cml0ZSddID0gJ0t1bm5lIGlra2Ugc2tyaXZlJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTGVnZyB0aWwga2F0ZWdvcmknOwokbGFuZ1snYWxsJ10gPSAnQWx0JzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdFciBkdSBzaWtrZXI/JzsKJGxhbmdbJ2F1dGhvciddID0gJ09wcGhhdnNtYW5uJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWydjYW5ub3Rtb2RpZnlwYXRoJ10gPSAnKFN0aWVuIGthbiBpa2tlIGVuZHJlcyknOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydtZXNzYWdlX2NhdGVnb3J5YWRkZWQnXSA9ICdLYXRlZ29yaSBvcHByZXR0ZXQnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAuIC0gU2VwdGVtYmVyIDIwMDUuPC9wPg0KPHA+IEluaXRpYWwgUmVsZWFzZS48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAxLiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+TWlub3IgZml4ZXMuPC9wPjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDIuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCBhYmlsaXR5IHRvIHNwZWNpZnkgc29ydCBvcmRlcjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDMuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5GaXggcmVnYXJkaW5nIGNvbmZsaWN0IGluIHRlbXBsYXRlIG5hbWVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNC4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkFkZGVkIGFiaWxpdHkgdG8gcmUtc2NhbiBhIGRpcmVjdG9yeSwgYW5kIHRvIHVwbG9hZCBmaWxlcyBmcm9tIHRoZSBhZG1pbiBwYWdlPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wNS4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPkZpeGVkIHNvbWUgUEhQIHZhcmlhYmxlIGlzc3VlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDYuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCBhdXRob3IgZmllbGQgdG8gdGhlIGFkbWluIHBhbmVsIHVwbG9hZCBmb3JtLCBhZGRlZCBhIHN1bW1hcnkgZmllbGQsIGFuZCBtYWRlIGRlc2NyaXB0aW9uIGEgdGV4dCBhcmVhLCBhbmQgYWxsb3cgdGhlIHVzZXIgdG8gc3BlY2lmeSBhIGRlc3RpbmF0aW9uIGZpbGUgbmFtZTwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDcuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCB0aGUgYWJpbGl0eSB0byByZW5hbWUgZmlsZXMgYW5kIGZpeGVkIGEgc2NhbiBlcnJvcjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDguIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5CZXR0ZXIgaGFuZGxpbmcgb2YgbmFtZXMgd2l0aCBzcGFjZXMsIGFuZCBhIGZldyBtaW5vciBlcnJvcnMgZml4ZWQuICBBZGRlZCBzd2VkaXNoIHRyYW5zbGF0aW9uICh0aGFua3Mgd2VzdGlzKTwvcD48L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMC4gLSBPY3RvYmVyIDIwMDU8L3A+DQogPHVsPg0KICAgPGxpPk1vZGlmaWVkIEF0dGVtcHRVcGxvYWQgZnVuY3Rpb24gc28gaXQgY291bGQgYmUgY2FsbGVkIGV4dGVybmFsbHk8L2xpPg0KICAgPGxpPkFkZGVkIEdldFVwbG9hZERldGFpbHMgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFsbCBvZiB0aGUgZGV0YWlscyBhYm91dCBhIG1vZHVsZSwgaW5jbHVkaW5nIGEgbGluazwvbGk+DQogICA8bGk+QWRkZWQgUmVkaXJlY3RzIHNvIHRoYXQgd29ya2luZyB3aXRoIHRoZSBtb2R1bGUgaXMgYWxvdCBuaWNlciwgaXQgcmV0dXJucyB0byB0aGUgcmlnaHQgdGFiPC9saT4NCiAgIDxsaT5DaGFuZ2VkIHRoZSBmcm9udCB0ZW1wbGF0ZSB0byBsb29rIGEgbGl0dGxlIGJldHRlciBhbmQgbWFrZSBtb3JlIHNlbnNlPC9saT4NCiAgIDxsaT5GaXhlcyB0byB0aGUgdXBsb2FkcyBzdHVmZiBzbyB0aGF0IHRoZSBkZXNjcmlwdGlvbiBpcyBzZXQsIGFuZCBuYW1lIGFuZCBzdW1tYXJ5IGFyZSBwdXQgaW4gdGhlIHJpZ2h0IHBsYWNlPC9saT4NCiAgIDxsaT5GaXhlcyB0byBldmVuIGJldHRlciBoYW5kbGUgc3BhY2VzIGluIG5hbWVzPC9saT4NCiAgIDxsaT5PcHRpb25hbHkgcGxhY2UgZHVtbXkgaW5kZXguaHRtbCBmaWxlcyBpbiBlYWNoIHVwbG9hZCBkaXJlY3Rvcnk8L2xpPg0KICAgPGxpPklmIHNwZWNpZnlpbmcgYSBkZXN0aW5hdGlvbiBuYW1lLCBhbmQgbm8gZXh0ZW5zaW9uIGlzIGdpdmVuLCB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBvcmlnaW5hdGluZyBmaWxlIChpZiBhbnkgZXhpc3RzIGlzIHVzZWQ8L2xpPg0KIDwvdWw+DQogPHA+PGVtPjxiPkltcG9ydGFudCE8L2I+PC9lbT48YnIvPkl0IGlzIG5vdCBwb3NzaWJsZSB0byB1cGdyYWRlIGZyb20gYW55IG90aGVyIHZlcnNpb24gb2YgdGhlIFVwbG9hZHMgbW9kdWxlIHRvIDEuMS4wLiAgVGhpcyBpcyBkdWUgdG8gc29tZSBlcnJvcnMgdGhhdCB3ZXJlIG1hZGUgaW4gdGhlIGRhdGFiYXNlIHJvdXRpbmVzLCBhbmQgZXZlbiBpbiB0aGUgdXBncmFkZSByb3V0aW5lIGluIDEuMC42LiAgWW91IG11c3QgZGUtaW5zdGFsbCB0aGUgb2xkIHZlcnNpb24sIGFuZCB0aGVuIHJlLWluc3RhbGwgdGhlIG5ldyB2ZXJlc2lvbi4gVGhpcyB3aWxsIGNhdXNlIHNpZ25pZmljYW50IGRpZmZpY3VsdHkgaWYgeW91IGhhdmUgZHNjcmlwdGlvbnMsIGV0YywgaW4geW91ciB0YWJsZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMS4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+Rml4ZWQgYSBjb3VwbGUgb2YgbWlub3IgYnVncyBpbiB0aGUgR2V0VXBsb2FkRGV0YWlscyBhbmQgYWRkZWQgYW5vdGhlciBsaW5rIChvciBhIHVybCkgdG8gdGhlIHVwbG9hZGVkIGZpbGUuPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjIuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkZpeGVkIHRoZSBVUkwgZmllbGQgaW4gR2V0VXBsb2FkRGV0YWlscyB0byByZXR1cm4gYSBkb3dubG9hZCBsaW5rIGFuZCBhZGRlZCBhbiBhYnN1cmwgZmllbGQgd2hpY2ggcmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZSBvbiB0aGUgd2Vic2VydmVyLiAgQ2xpY2tzIG9uIHRoaXMgbGluayB3aWxsIG5vdCBiZSBjb3VudGVkPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjMuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkZpeGVkIHRoZSB1cGdyYWRlIHByb2JsZW0gZnJvbSB0aGUgMS4wLnggc2VyaWVzLiAgVXNlcnMgb2YgdGhlIDEuMC54IHNlcmllcyBzaG91bGQgYmUgYWJsZSB0byB1cGdyYWRlIHRvIDEuMS4zIG5vdyB3aXRoIG5vIGRpZmZpY3VsdHkuIDxiPlRob3NlIGFyZSBmYW1vdXMgbGFzdCB3b3JkcywgcGxlYXNlIGJhY2t1cCBmaXJzdDwvYj4uIEZpeGVkIHRoZSBjb250ZW50IHJlZGlyZWN0IHRoaW5ncyB0aGF0IHdlcmUgaXJyaXRhdGluZyBtZS4gIEFsc28gYWRkZWQgY2F0ZWdvcnk9YWxsIHRvIGxpc3QgYWxsIG9mIHRoZSB1cGxvYWRzIGluIGFsbCBsaXN0YWJsZSBjYXRlZ29yaWVzIDxlbT4obGV0cyBhbGwgaG9wZSBJIGdvdCB0aGUgc3FsIGZpZ3VyZWQgb3V0IHByb3Blcmx5KTwvZW0+LjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS40LiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5BZGRlZCB0aGUgY291bnQgcGFyYW1ldGVyIHRvIGxpc3Qgb25seSB0aGUgZmlyc3QgTiByZWNvcmRzLCBhbmQgYWRkZWQgJnF1b3Q7c3VtbWFyeWxpbmsmcXVvdDssIGFuZCAmcXVvdDtjYXRlZ29yeSZxdW90OyB0byB0aGUgdGVtcGxhdGVzIGZvciB3ZXN0aXMuICBGb3IgZXhhbXBsZXMgb24gaG93IHRvIHVzZSB0aGVtIHJlc2V0IHlvdXIgdGVtcGxhdGVzIGJhY2sgdG8gZGVmYXVsdC48L3A+PC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjUuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5BZGRlZCBlbWFpbCBub3RpZmljYXRpb24gYW5kIHNvbWUgYnVnIGZpeGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjYuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5BZGRlZCBhbiBhcGkgZnVuY3Rpb24gYW5kIGZpeGVkIHNvbWUgcmVkaXJlY3Rpb24gc3R1ZmY8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNy4gLSBOb3ZlbWJlciwgMjAwNTwvcD4NCjxwPk1vcmUgQVBJIGZ1bmN0aW9ucywgYW5kIG5vdyBpZ25vcmUgZG90IGZpbGVzIHdoZW4gc2Nhbm5pbmcuICBFbWFpbCBub3RpZmljYXRpb24gaXMgbm93IGluLjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS44LiAtIEphbnVhcnksIDIwMDY8L3A+DQo8cD4qIEltcHJvdmVkIGRvY3Mgd3J0IGFwYWNoZSBhbmQgcGhwIGNvbmZpZ3MuPC9wPg0KPHA+KiBGaXhlZCBwcm9ibGVtIHdoZXJlIGZpbGVzaXplIHdhcyBzaG93aW5nIHVwIGFzIDAuPC9wPg0KPHA+KiBNb2RpZmllZCBwZXJtaXNzaW9ucyB0byBiZSBtb3JlIGdyYW51bGFyPC9wPg0KPHA+KiBBZGRlZCBzb21lIGNvbW1lbnRzIGFuZCB2ZXJib3NpdHkgdG8gdGhlIGNhdGVnb3J5IGFuZCB1cGxvYWRzIGZvcm1zIGluIHRoZSBhZG1pbiBzZWN0aW9uPC9wPg0KPHA+KiBBZGRlZCAmcXVvdDtyYW5kb20mcXVvdDsgc29ydCBvcmRlcjwvcD4NCjxwPiogU29tZSBQSFA1IGZpeGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjkuIC0gSmFudWFyeSwgMjAwNjwvcD4NCjxwPiogQWRkZWQgdGhlIGFiaWxpdHkgdG8gdXBsb2FkIGEgdGh1bWJuYWlsIGltYWdlPC9wPg0KPHA+KiBTb21lIGltcHJvdmVkIGF1ZGl0aW5nPC9wPg0KPHA+KiB4bWwgbm93IGFkZGVkIHRvIHRoZSBkZWZhdWx0IGZpbGUgdHlwZXMgKG5ldyBpbnN0YWxscyBvbmx5KTwvcD4NCjxwPiogQWRkZWQgYSBjb25maXJtYXRpb24gbWVzc2FnZSB0byB0aGUgcmVzZXQgdG8gZGVmYXVsdHMgYnV0dG9ucyBvZiB0aGUgdGVtcGxhdGUgcGFnZXMuPC9wPg0KPHA+KiBBZGRlZCB0aGUgZmlsZV9leHRlbnNpb25zIHBhcmFtZXRlciBmb3IgdGhlIHVwbG9hZCBmb3JtPC9wPg0KPHA+KiBUaGUgY3VycmVudCBjYXRlZ29yeSBzZWxlY3RlZCBpbiB0aGUgZmlsZXMgZmlsdGVyIGlzIHN0aWNreS4NCjxwPiogQWRkZWQgYSBwcmVmZXJlbmNlIHRvIGVuZm9yaWNlIGZpbGVuYW1lIGV4dGVuc2lvbnMgKGRlZmF1bHRzIHRvIG9uKTwvcD4NCjxwPiogQWRkZWQgYSBsaW5rIHRvIHRoZSBlZGl0IHBhZ2UsIGluIHRoZSBuYW1lIGNvbHVtbiBvZiB0aGUgZmlsZXMgbGlzdC48L3A+DQo8cD4qIE1pbm9yIGNoYW5nZXMgdG8gdGhlIGxheW91dCBhbmQgdGV4dCB0byBhZGQgY2xhcml0eS48L3A+DQo8cD4qIEFkZGVkIGRvd25sb2FkX3VybCBhcyBhbiBhdmFpbGFibGUgc21hcnR5IHRhZyBpbiB0aGUgdGVtcGxhdGVzPC9wPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTAuIC0gRmVicnVhcnksIDIwMDY8L3A+DQo8cD4qIFN1bW1hcnkgbm93IGRlZmF1bHRzIHRvIHRoZSBmaWxlbmFtZSAod2l0aG91dCB0aGUgZXh0ZW5zaW9uKSBpZiBub25lIGlzIHNwZWNpZmllZDwvcD4NCjxwPiogTm93IGNvcnJlY3RseSBoYW5kbGUgaWYgdGhlIHRodW1ibmFpbCBleHRlbnNpb24gaXMgbm90IGluIHRoZSBhY2NlcHRlZCBleHRlbnNpb24gbGlzdDwvcD4NCjxwPiogTm8gbG9uZ2VyIGRpc3BsYXkgYW55IGNvbnRlbnQgaW4gdGhlIGZpbGVzIHRhYiBpZiB0aGVyZSBhcmUgbm8gY2F0ZWdvcmllcyBkZWZpbmVkPC9wPg0KPHA+KiBEaXNwbGF5IGEgbGluayBpbiB0aGUgZXJyb3IgcGFnZSB0aGF0IHRha2VzIHlvdSBiYWNrIHRvIHRoZSBtYWluIGFkbWluIHBhbmVsPC9wPg0KPHA+KiBBbGxvdyBmb3IgcmVwbGFjaW5nIG9mIHVwbG9hZGVkIGZpbGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjExLiAtIE1hcmNoLCAyMDA2PC9wPg0KPHA+QWRkZWQgdGhlIGFiaWxpdHkgZm9yIGEgbGluayB0byBhIGRldGFpbGVkIHBhZ2Ugd2hlbiBpbiBzdW1tYXJ5IG1vZGUuPC9wPg0KPHA+U3BsaXQgdGhlIGRlZmF1bHQgYWN0aW9uIGFuZCBkZWZhdWx0YWRtaW4gYWN0aW9ucyBpbnRvIHNlcGFyYXRlIGZpbGVzLCBmb3IgYSBiaXQgb2YgbWVtb3J5IGltcHJvdmVtZW50LCBob3BlZnVsbHk8L3A+DQo8cD5BZGQgdGhlIGFiaWxpdHkgdG8gcmVkaXJlY3QgdG8gYW5vdGhlciBwYWdlIGFmdGVyIGEgZnJvbnRlbmQgdXNlciB1cGxvYWRlZCBhIGZpbGU8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTIuIC0gTWFyY2gsIDIwMDY8L3A+DQo8cD5BZGRlZCB0aGUgc2luZ2xlc3VtbWFyeSBtb2RlIHRvIGRpc3BsYXkgYSBzaW5nbGUgdXBsb2FkIGluIHN1bW1hcnkgbW9kZTwvUD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMy4gLSBBcHJpbCwgMjAwNjwvcD4NCjxwPkFkZGVkIG9wdGlvbmFsIGZpbHRlcmluZyBvbiB0aGUgZnJvbnRlbmQsIGFuZCBhIGNvdXBsZSBvZiBleHRyYSBwYXJhbWV0ZXJzIHRvIGdvIHdpdGggaXQ8L3A+DQo8cD5GaXhlZCBhIHByb2JsZW0gd2hlcmUgaXQgd291bGQgYWxsb3cgeW91IHRvIGVudGVyIGEgYmxhbmsgcGF0aCB3aGVuIGNyZWF0aW5nIGEgY2F0ZWdvcnk8L3A+DQo8cD5TcGxpdCBzdHVmZiBpbnRvIChzb21lKSBzZXBhcmF0ZSBhY3Rpb24gZmlsZXMgZm9yIHNvbWUgaG9wZWZ1bCBwZXJmb3JtYW5jZSBpbmNyZWFzZXM8L3A+DQo8cD5BZGRlZCBjb3B5cmlnaHQgbm90aWNlczwvcD4NCjxwPkNoYW5nZWQgKG9wdGlvbmFsKSBkZXBlbmRlbmN5IGZyb20gVXNlcklEIHRvIEZyb250RW5kVXNlcnMgTW9kdWxlLjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMi4xIC0gQXByaWwsIDIwMDY8L3A+DQo8cD5DaGFuZ2VkIF9zY2FuRGlyZWN0b3J5IHRvIGFuIEFQSSBmdW5jdGlvbiBTY2FuRGlyZWN0b3J5IGFuZCB0aGVuIGFkZGVkIFNtYXJ0U2NhbkRpcmVjdG9yeSB0byBzY2FuIHRoZSBkaXJlY3RvcnkgYmVmb3JlIGRpc3BsYXlpbmcgdGhlIHN1bW1hcnkgb3IgZGV0YWlsIGxpc3RpbmcgdG8gaGFuZGxlIHRoZQ0KY2FzZSB3aGVyZSBzb21lYm9keSB1cGxvYWRlZCBmaWxlcyB2aWEgRlRQIG9yIHNvbWV0aGluZyBhbmQgZGlkIG5vdCBnbyBpbnRvIHRoZSBhZG1pbiBzZWN0aW9uIHRvIHVwZGF0ZSB0aGUgY2F0ZWdvcmllcy48L3A+DQo8cD5Db3JyZWN0aW9uIHRvIGFsbCBkYiBhY2Nlc3Mgc3R1ZmYuIEhvcGVmdWxseSBwcm92aWRlcyBhIHBlcmZvcm1hbmNlIGluY3JlYXNlLjwvcD4NCjxwPkZpeGVzIHRvIHRoZSBhYm91dCBzdHVmZiwgbm93IHVzZSBDcmVhdGVQYXJhbWV0ZXI8L3A+DQo8cD5BZGRlZCB0aGUgdXBsb2FkX3RlbXBsYXRlLCBzdW1tYXJ5X3RlbXBsYXRlLCBhbmQgZGV0YWlsX3RlbXBsYXRlIChvcHRpb25hbCkgcGFyYW1ldGVyPC9wPg0KPHA+QWRkZWQgdGhlIG5vYXV0aG9yIHBhcmFtZXRlciwgYW5kIHRoZSBrZXkgcGFyYW1ldGVyLiAgVGhlIGtleSBwYXJhbWV0ZXIgYWxsb3dzIHRoZSB1cGxvYWRzIG1vZHVsZSB0byBiZSBlbWJlZGRlZCBpbnRvIG90aGVyIG1vZHVsZXM8L3A+DQo8cD5Nb3ZlZCB0byB1bmRlciB0aGUgY29udGVudCBtZW51LCBhbmQgZW50aXRsZWQgJiMwMzk7RmlsZXMgKFVwbG9hZCBNb2R1bGUpJiMwMzk7PC9wPjsNCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMi4yIC0gSnVuZSwgMjAwNg0KPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBtdWx0aXBsZSBkYXRhYmFzZSB0ZW1wbGF0ZXMsIGFuZCB0byBzZWxlY3Qgb25lIG9uIHRoZSB0YWcgd2l0aCB0aGUgdGVtcGxhdGUgcGFyYW1ldGVyLjwvcD4NCjxwPkZpeGVkIGFuIGlzc3VlIHdoZXJlIGZpbGVzIHdlcmUgZ2V0dGluZyBjb3JydXB0ZWQgb24gZG93bmxvYWQ8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjIuMyAtIEp1bmUsIDIwMDYNCjxwPkZpeGVzIHRvIHVzZSBhZG9kYi1saXRlIHByb3BlciwgcmF0aGVyIHRoYW4gdGVkcyBoYWNrPC9wPg0KPHA+RGV0YWlsIGxpbmsgbm93IGRpc3BsYXlzIGlubGluZTwvcD4NCjxwPk90aGVyIG1pbm9yIHR3ZWFrcyB0aGF0IEkgY2FudCByZW1lbWJlcjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMy4wIC0gRmVicnVhcnksIDIwMDcNCjxwPkZpeGVzIHRvIHRoZSBEVCBmaWVsZCB0eXBlPC9wPg0KPHA+VXNlIHRoZSBGRVUgdXNlcm5hbWUgKG9wdGlvbmFsbHkpIHNvIHRoYXQgd2UgY2FuIHRyYWNrIHdoZW4gYSBsb2dnZWQgaW4gdXNlciB1cGxvYWRzIGEgZmlsZTwvcD4NCjxwPkFkZCBmaWxldHlwZSBjYXBhYmlsaXRpZXMgdG8gYXNzb2NpYXRlIGFuIGljb24gd2l0aCBhIHBhcnRpY3VsYXIgdXBsb2FkLiAgQWxzbyBzdXBwb3J0IGFuIHVua25vd24gZmlsZSB0eXBlIGZvciBhbnl0aGluZyB0aGF0IGRvZXMgbm90IG1hdGNoLjwvcD4NCjxwPkNvbXBsZXRlbHkgcmUtd29ya2VkIHRoZSBtdWx0aXBsZSBkYXRhYmFzZSB0ZW1wbGF0ZSBzdHVmZi48L3A+DQo8cD5BZGp1c3RtZW50cyB0byB0aGUgZGVmYXVsdCB0ZW1wbGF0ZXM8L3A+DQo8cD5GaXhlcyB0byB1c2luZyBjYXRlZ29yeT0mcXVvdDthbGwmcXVvdDs8L3A+DQo8cD5HZW5lcmF0ZSB0aHVtYm5haWxzIGF1dG9tYXRpY2FsbHkgKG9wdGlvbmFsbHkpIGZvciBjZXJ0YWluIGZpbGUgdHlwZXMsIG9uIHVwbG9hZCwgYW5kIG9uIHNjYW4uPC9wPg0KPHA+QWRkIGNhcHRjaGEgc3VwcG9ydCB0byB0aGUgdXBsb2FkIGZvcm08L3A+DQo8L2xpPg0KPC91bD4nOwokbGFuZ1snZGF0ZSddID0gJ0RhdG8nOwokbGFuZ1snZGF0ZXVwbG9hZGVkJ10gPSAnRGF0byBvcHBsYXN0ZXQnOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYXJkJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3JpdmVsc2UnOwokbGFuZ1snZGVzdG5hbWUnXSA9ICdMYXN0IG9wcCBzb20nOwokbGFuZ1snZGV0YWlsX3RlbXBsYXRlJ10gPSAnRGV0YWxqIG1hbCc7CiRsYW5nWydkb3dubG9hZGVkJ10gPSAnRmlsICVzIGJsZSBsYXN0ZXQgbmVkLic7CiRsYW5nWydkb3dubG9hZHMnXSA9ICdOZWRsYXN0aW5nZXInOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnZXInOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnUmVkaWdlciBrYXRlZ29yaSc7CiRsYW5nWydlZGl0dXBsb2FkJ10gPSAnUmVkaWdlciBvcHBsYXN0aW5nJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRmVpbCEnOwokbGFuZ1snZXJyb3JfcGF0aGludXNlJ10gPSAnRW4ga2F0ZWdvcmkgc29tIGJydWtlciBkZW4gc3RpZW4gZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ0ZlaWw6IEthdGVnb3JpIGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3RlbXB0eSddID0gJ0ZlaWwhIEthbiBpa2tlIHNsZXR0ZSBrYXRlZ29yaSBkYSBkZW4gaWtrZSBlciB0b20nOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3Rmb3VuZCddID0gJ0ZlaWw6IEthdGVnb3JpIGlra2UgZnVubmV0ISc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRmVpbDogRGF0YWJhc2UgZmVpbCEnOwokbGFuZ1snZXJyb3JfZW1wdHljYXRlZ29yeSddID0gJ0ZlaWw6IFRvbSBrYXRlZ29yaSEnOwokbGFuZ1snZXJyb3JfZW1wdHlwYXRoJ10gPSAnRmVpbDogQmxhbmsgc3RpISc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnRmVpbCEgRmlsICVzIGVrc2lzdGVyZXIgYWxsZXJlZGUuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZlaWwhIEZpbCAlcyBibGUgaWtrZSBmdW5uZXQuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0ZlaWw6IE1hbmdlbGZ1bGxlIHBhcmFtZXRyZSBnaXR0IHRpbCBtb2R1bGVuISc7CiRsYW5nWydlcnJvcl9pbnZhbGlkYXV0aG9yJ10gPSAnRmVpbDogVWd5bGRpZyAoZWxsZXIgYmxhbmspIG9wcGhhdnNtYW5uLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkY2F0ZWdvcnknXSA9ICdGZWlsOiBVZ3lsZGlnIChlbGxlciBibGFuaykga2F0ZWdvcmkuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRkZXNjcmlwdGlvbiddID0gJ0ZlaWw6IFVneWxkaWcgKGVsbGVyIGJsYW5rKSBiZXNrcml2ZWxzZS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGUnXSA9ICdGZWlsOiBVZ3lsZGlnIChlbGxlciBibGFuaykgZmlsbmF2bi4nOwokbGFuZ1snZXJyb3JfaW52YWxpZHVwbG9hZGZpbGVuYW1lJ10gPSAnRmVpbDogRmlsZXIgbWVkIGRldHRlIG5hdm5ldCAoc2Fuc3lubGlnIGZpbC1lbmRlbHNlbikgZXIgaWtrZSB0aWxsbGF0dCAoJXMpLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXBsb2FkaWQnXSA9ICdGZWlsOiBVZ3lsZGlnIG9wcGxhc3RpbmdzSUQnOwokbGFuZ1snZXJyb3Jfbm9maWxlcyddID0gJ0ZlaWw6IEluZ2VuIHBhc3NlbmRlIGZpbGVyISc7CiRsYW5nWydmaWxlcyddID0gJ0ZpbGVyJzsKJGxhbmdbJ2ZpeG1lJ10gPSAnRmlrcyBtZWxsb21yb20nOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRmlsZXIgKFVwbG9hZHMgTW9kdWxlbiknOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+SXQgaXMgYSBtb2R1bGUgZm9yIGFsbG93aW5nIHBlb3BsZSB0byB1cGxvYWQgYW5kIGRvd25sb2FkIGZpbGVzIHRvIGFuZCBmcm9tIHlvdXIgc2l0ZS4gIEl0IGtlZXBzIHRyYWNrIG9mIHdobyB1cGxvYWRlZCBhIGZpbGUsIGFuZCB3aG8gaGFzIGRvd25sb2FkZWQgaXQuICBBcyB3ZWxsLCB5b3UgY2FuIHNvcnQgZmlsZXMgaW50byBjYXRlZ29yaWVzLCBhbmQgbWFuYWdlIHRoZSBmaWxlcyB0aGF0IHdlcmUgdXBsb2FkZWQgbGlrZSBldmVyeSBhZG1pbmlzdHJhdG9yIHdvdWxkIGRvPC9wPiANCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KPHA+VG8gdXNlIHRoaXMgbW9kdWxlLCB0byBhbGxvdyB1c2VycyB0byB1cGxvYWQgZmlsZXMgdG8geW91ciBzaXRlLCB5b3Ugc2hvdWxkIGluc3RhbGwgdGhlIG1vZHVsZSwgYW5kIHRoZW4gY3JlYXRlIG9uZSBvciBtb3JlIGNhdGVnb3JpZXMgKGEuay5hKSBkaXJlY3RvcmllcyBmb3IgdGhlIHVwbG9hZGVkIGZpbGVzIHRvIGdvIGludG8uIFRoZW4gYWRkIGEgdGFnIGludG8gYSBwYWdlIG9yIHRlbXBsYXRlIHNvbWV3aGVyZSBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mcXVvdDtVcGxvYWRzJnF1b3Q7IGNhdGVnb3J5PSZxdW90O3NvbWVjYXRlZ29yeSZxdW90OyBtb2RlPSZxdW90O3NvbWVtb2RlJnF1b3Q7fS4gIFdoZXJlIG1vZGUgbWF0Y2hlcyBvbmUgb2YgdGhlIG1vZGVzIGxpc3RlZCBiZWxvdy4gIFRoZSBvdXRwdXQgd2lsbCBkaWZmZXIgZGVwZW5kaW5nIHVwb24gd2hpY2ggbW9kZSB5b3Ugc2VsZWN0LjwvcD4NCjxwPlRoaXMgbW9kdWxlIGNhbiB1c2UgdGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlIChvcHRpb25hbCkgdG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IGFueSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJzIHRvIHBhcnRseSBmaWxsIGluIHRoZSBmb3JtIHdoZW4gdXBsb2FkaW5nIGZpbGVzOzwvcD4NCjxoMz5QZXJtaXNzaW9uczwvaDM+DQo8dWw+DQo8bGk+PGVtPk1hbmFnZSBVcGxvYWRzPC9lbT4gcGVybWlzc2lvbiBpcyBuZWVkZWQgdG8gbWFuYWdlIGNhdGVnb3JpZXMsIGFuZCB0aGUgZmlsZXMgd2l0aGluIHRoZW0uPC9saT4NCjxsaT48ZW0+TW9kaWZ5IFRlbXBsYXRlczwvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIGVkaXQgYW55IG9mIHRoZSB0ZW1wbGF0ZXMuPC9saT4NCjxsaT48ZW0+TW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIGFueSBvZiB0aGUgZmlsZSBzZXR0aW5ncy48L2xpPg0KPC91bD4NCjxoMz5FbWFpbGluZzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpcyBjYXBhYmxlIG9mIHNlbmRpbmcgYW4gZW1haWwgd2hlbmV2ZXIgYSBmaWxlIGlzIHVwbG9hZGVkLCBzZWUgdGhlIHByZWZlcmVuY2VzIHRhYi4gIEhvd2V2ZXIsIHRvIGRvIHRoaXMgdGhlIDxiPkNNU01haWxlcjwvYj4gcGFja2FnZSBtdXN0IGJlIGluc3RhbGxlZCBhbmQgY29uZmlndXJlZC4gIFRoaXMgaXMgYW4gPGVtPm9wdGlvbmFsPC9lbT4gc3RlcCwgYW5kIGlmIHRoZSBDTVNNYWlsZXIgbW9kdWxlIGlzIG5vdCBpbnN0YWxsZWQsIG5vdGhpbmcgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIsIG9ubHkgYSBsb2cgbWVzc2FnZSB3aWxsIGJlIHBsYWNlZCBpbnRvIHRoZSBhZG1pbiBsb2c8L3A+DQo8aDM+U3lzdGVtIFNldHRpbmdzPC9oMz4NCjxwPjxiPk5vdGU6PC9iPiBUaGlzIG1vZHVsZSBkb2VzIG5vdCBieXBhc3Mgb3IgZ2V0IHBhc3QgYW55IGZpbGUgc2l6ZSBsaW1pdGF0aW9ucyBpbiBwaHAuICBJdCB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZW0uICBUaGVyZWZvcmUgeW91IG1heSBuZWVkIHRvIG1vZGlmeSB5b3VyIHBocC5pbmkgZmlsZSBhbmQvb3IgeW91ciBodHRwZC5jb25mIGZpbGUocykgdG8gYWxsb3cgeW91IHRvIHVwbG9hZCBmaWxlcyBhcyBsYXJnZSBhcyB3aGF0IHlvdSBoYXZlIHNldCBpbiB0aGUgdXBsb2FkcyBtb2R1bGUgcHJlZmVyZW5jZXMuPC9wPg0KPGgzPkFwYWNoZSBOb3RlczwvaDM+DQo8cD5JbiBvcmRlciB0byBhbGxvdyBsYXJnZSBmaWxlIHVwbG9hZHMsIHlvdSBtYXkgbmVlZCB0byBtb2RpZnkgdGhlIHVwbG9hZF9tYXhfZmlsZXNpemUgcGFyYW1ldGVyIGluIHlvdXIgcGhwLmluaSAgSW4gYWRkaXRpb24sIHRoZSBMaW1pdFJlcXVlc3RCb2R5IHBhcmFtZXRlciBpbiB5b3VyIGFwYWNoZSBjb25maWd1cmF0aW9uLCBtYXkgbmVlZCB0byBiZSBhZGp1c3RlZCB0byBtYXRjaCB0aGUgdXBsb2FkX21heF9maWxlc2l6ZSBwYXJhbWV0ZXI8L3A+DQo8cD5Ob3RlOiAgdGhlIHVwbG9hZF9tYXhfZmlsZXNpemUgcGFyYW1ldGVyIGNhbiBiZSBzcGVjaWZpZWQgaW4gYnl0ZXMsIGtpbG9ieXRlcywgb3IgbWVnYWJ5dGVzLCBob3dldmVyIHRoZSBMaW1pdFJlcXVldEJvZHkgcGFyYW1ldGVyIGlzIG9ubHkgc3BlY2lmaWVkIGluIGJ5dGVzPC9wPic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnNqb24gJXMgaW5zdGFsbGVydC4nOwokbGFuZ1snaXBfYWRkcmVzcyddID0gJ0lQIEFkZHJlc3NlJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRW4gbW9kdWwgc29tIHRpbGxhdGVyIGJydWtlcmUgJmFyaW5nOyBsYXN0ZSBvcHAgZmlsZXIsIG9nIHRpbGxhdGVyIGRlZyAmYXJpbmc7IGgmYXJpbmc7bmR0ZXJlIGRlbS4nOwokbGFuZ1snbmFtZSddID0gJ05hdm4nOwokbGFuZ1sncmVuYW1lbWVzc2FnZSddID0gJ1JlZGlnZXIgbmF2bmV0IGhlciBmb3IgJmFyaW5nOyBnaiZvc2xhc2g7cmUgZW4gbmF2bmVlbmRyaW5nJzsKJGxhbmdbJ3BhdGgnXSA9ICdTdGknOwokbGFuZ1sncGF0aG1lc3NhZ2UnXSA9ICdFbmRyZSBrYXRlZ29yaSBoZXIgZm9yICZhcmluZzsgZmx5dHRlIGZpbGVuIHRpbCBlbiBhbm5lbiBrYXRlZ29yaSc7CiRsYW5nWydwYXRoaW51cGxvYWRzJ10gPSAnKFJlbGF0aXYgdGlsIG9wcGxhc3RpbmdzIGthdGFsb2dlbiknOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdVcGxvYWRzIG1vZHVsZW4gaGFyIGJsaXR0IGluc3RhbGxlcnQuIFYmYWVsaWc7ciBzaWtrZXIgcCZhcmluZzsgJmFyaW5nOyBzZXR0ZSAmcXVvdDtNYW5hZ2UgVXBsb2FkcyZxdW90OyByZXR0aWdoZXRlciBmb3IgJmFyaW5nOyBrdW5uZSBicnVrZSBtb2R1bGVuISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVXBsb2FkcyBtb2R1bGVuIGhhciBibGl0dCBmamVybmV0LiAgSW5nZW4gZmlsZXIgaGFyIGJsaXR0IGZqZXJuZXQgZnJhIGRpbiBvcHBsYXN0aW5ncyBrYXRhbG9nLCBvZyBmaWwgaW50ZWdyaXRldGVuIGVyIGludGFrdCc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0lubnN0aWxsaW5nZXInOwokbGFuZ1sncHJlZnN1cGRhdGVkJ10gPSAnTW9kdWwgaW5uc3RpbGxpbmdlciBvcHBkYXRlcnQuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWRlc2MnXSA9ICdCZXNrcml2ZWxzZSc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlsaXN0YWJsZSddID0gJ0ZpbGVyIGkgZGVubmUga2F0ZWdvcmllbiBrYW4gbGlzdGVzIHV0JzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeW5hbWUnXSA9ICdLYXRlZ29yaSBuYXZuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeXBhdGgnXSA9ICdTZXJ2ZXIgc3RpJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVkaXJlY3RvcnknXSA9ICdTbGV0dCBrYXRlZ29yaSBtYXBwZT8nOwokbGFuZ1sncHJvbXB0X21heF91cGxvYWRzaXplJ10gPSAnTWFrc2ltdW0gdGlsbGF0dGUgZmlsc3Qmb3NsYXNoO3JyZWxzZSAoS2IpJzsKJGxhbmdbJ3Byb21wdF92YWxpZF91cGxvYWRleHRlbnNpb25zJ10gPSAnR3lsZGlnIG9wcGxhc3RpbmdzIGZpbC1lbmRlbHNlJzsKJGxhbmdbJ3NjYW4nXSA9ICdTa2Fubic7CiRsYW5nWydzZWxlY3RjYXRlZ29yeSddID0gJ1ZlbGcga2F0ZWdvcmknOwokbGFuZ1snc2l6ZSddID0gJ1N0Jm9zbGFzaDtycmVsc2UnOwokbGFuZ1snc2l6ZWtiJ10gPSAnU3Qmb3NsYXNoO3JyZWxzZSAoS2IpJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1V0ZiZvc2xhc2g7cic7CiRsYW5nWydzdW1tYXJ5X3RlbXBsYXRlJ10gPSAnU2FtbWVuZHJhZ3MgbWFsJzsKJGxhbmdbJ3N1bW1hcnknXSA9ICdTYW1tZW5kcmFnJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnVXBsb2FkcyBNb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX21vZF9hZG1pbiddID0gJ01vZHVsIEFkbWluaXN0cmFzam9uc3BhbmVsJzsKJGxhbmdbJ3RpdGxlX21vZF9wcmVmcyddID0gJ01vZHVsIElubnN0aWxsaW5nZXInOwokbGFuZ1sndGl0bGVfc2luZ19sb3VkbHknXSA9ICdTeW5nIGgmb3NsYXNoO3l0Pyc7CiRsYW5nWyd0aXRsZV9zdWJuZXRfZXhjbHVzaW9ucyddID0gJ1V0ZWx1a2sgc3VibmV0dCBmcmEgc3RhdGlzdGlra2VyJzsKJGxhbmdbJ3RpdGxlX3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnXSA9ICdHeWxkaWdlIGZpbC1lbmRlbHNlcic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBvcHBncmFkZXJ0IHRpbCB2ZXJzam9uICVzLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXN0IG9wcCc7CiRsYW5nWyd1cGxvYWRlZCddID0gJ0ZpbCAlcyBibGUgbGFzdGV0IG9wcCBhdiAlcy4nOwokbGFuZ1sncmVwbGFjZWQnXSA9ICdGaWwgJXMgYmxlIGVyc3RhdHRldCAlcy4nOwokbGFuZ1snZGVsZXRlZCddID0gJ0ZpbCAlcyBibGUgc2xldHRldC4nOwokbGFuZ1sndXBsb2FkZm9ybV90ZW1wbGF0ZSddID0gJ0xBc3Qgb3BwIG1hbCc7CiRsYW5nWyd1c2VybmFtZSddID0gJ0JydWtlcm5hdm4nOwokbGFuZ1snd2FybmluZ19kZWxldGVjYXRlZ29yeSddID0gJ0FEVkFSU0VMOiBGb3JzaWt0aWcgbiZhcmluZztyIGR1IHNsZXR0ZXIga2F0ZWdvcmllci4gIEZpbGVyIGthbiBibGkgYm9ydGUnOwokbGFuZ1snd2VsY29tZV90ZXh0J10gPSAnPHA+VmVsa29tbWVuIHRpbCBVcGxvYWRzIE1vZHVsZW5zIGFkbWluIHNla3Nqb24uIE5vZSBhbm5ldCBrdW5uZSBzdCZhcmluZzsgaGVyIG9tIG1vZHVsZW4gdmlya2VsaWcgZ2pvcmRlIG5vZS48L3A+JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnlpZCddID0gJ0VyIGlzIGdlZW4gQ2F0ZWdvcmllIGlkIG9wZ2VnZXZlbic7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3J5J10gPSAnRXIgaXMgZ2VlbiBDYXRlZ29yaWUgaWQgb3BnZWdldmVuJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIHNqYWJsb29uIG1ldCBkZXplIG5hYW0nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ1NqYWJsb29uIE5hYW0nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU2phYmxvb24nOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnTWFhayBlZW4gbmlldXcgU2phYmxvb24nOwokbGFuZ1snaGVscF9PbkRvd25sb2FkJ10gPSAnPHA+QW4gZXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSB1c2VyIGZpbmlzaGVzIGRvd25sb2FkaW5nIGEgZmlsZTwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+aWQ8L2VtPiAtIFVwbG9hZCBJRDwvbGk+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIEZpbGUgbmFtZTwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBUaGUgSVAgQWRkcmVzcyBvZiB0aGUgZG93bmxvYWRlcjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25EZWxldGVDYXRlZ29yeSddID0gJzxwPkFuIGV2ZW50IGdlbmVyYXRlZCB3aGVuIGEgY2F0ZWdvcnkgaXMgRGVsZXRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gQ2F0ZWdvcnkgbmFtZTwvbGk+DQo8bGk+PGVtPnBhdGg8L2VtPiAtIENhdGVnb3J5IHBhdGg8L2xpPg0KPC91bD4NCic7CiRsYW5nWydoZWxwX09uQ3JlYXRlQ2F0ZWdvcnknXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGNhdGVnb3J5IGlzIENyZWF0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSBjYXRlZ29yeTwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgY2F0ZWdvcnkgZGVzY3JpcHRpb248L2xpPg0KPGxpPjxlbT5wYXRoPC9lbT4gLSBUaGUgY2F0ZWdvcnkgcGF0aDwvbGk+DQo8bGk+PGVtPnBhdGg8L2VtPiAtIEEgZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSBjYXRlZ29yeSBpcyBsaXN0YWJsZTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25SZW1vdmUnXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIGZpbGUgaXMgcmVtb3ZlZCB2aWEgdGhlIGFkbWluIG9yIGZyb250ZW5kIGludGVyZmFjZXM8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPm5hbWU8L2VtPiAtIFRoZSBuYW1lIG9mIHRoZSByZW1vdmVkIGZpbGU8L2xpPg0KPGxpPjxlbT5pZDwvZW0+IC0gVGhlIGlkIG9mIHRoZSByZW1vdmVkIGZpbGU8L2xpPg0KPGxpPjxlbT5jYXRlZ29yeV9pZDwvZW0+IC0gVGhlIGlkIG9mIHRoZSBjYXRlZ29yeTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25VcGxvYWQnXSA9ICc8cD5BbiBldmVudCBnZW5lcmF0ZWQgd2hlbiBhIG5ldyBmaWxlIGlzIHVwbG9hZGVkIHZpYSB0aGUgYWRtaW4gb3IgZnJvbnRlbmQgaW50ZXJmYWNlczwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Y2F0ZWdvcnk8L2VtPiAtIFRoZSBjYXRlZ29yeSBuYW1lPC9saT4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gVGhlIG5hbWUgb2YgdGhlIHVwbG9hZGVkIGZpbGU8L2xpPg0KPGxpPjxlbT5zaXplPC9lbT4gLSBUaGUgc2l6ZSBvZiB0aGUgdXBsb2FkZWQgZmlsZTwvbGk+DQo8bGk+PGVtPnN1bW1hcnk8L2VtPiAtIFRoZSBzaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhlIHVwbG9hZGVkIGZpbGUgKG1heSBiZSBlbXB0eSk8L2VtPjwvbGk+DQo8bGk+PGVtPmRlc2NyaXB0aW9uPC9lbT4gLSBUaGUgbG9uZyBkZXNjcmlwdGlvbiBmb3IgdGhlIHVwbG9hZGVkIGZpbGUgKG1heSBiZSBlbXB0eSk8L2VtPjwvbGk+DQo8bGk+PGVtPmF1dGhvcjwvZW0+IC0gVGhlIGF1dGhvciBvZiB0aGUgdXBsb2FkZWQgZmlsZSAoaWYgYXZhaWxhYmxlKTwvZW0+PC9saT4NCjxsaT48ZW0+aXBfYWRkcmVzczwvZW0+IC0gVGhlIGludGVybmV0IGFkZHJlc3Mgb2YgdGhlIGNsaWVudCB0aGF0IHVwbG9hZGVkIHRoZSBmaWxlPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaW5mb19ldmVudF9vbmRlbGV0ZWNhdGVnb3J5J10gPSAnRXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBjYXRlZ29yeSBpcyBkZWxldGVkJzsKJGxhbmdbJ2luZm9fZXZlbnRfb25jcmVhdGVjYXRlZ29yeSddID0gJ0V2ZW50IGdlbmVyYXRlZCB3aGVuIGEgY2F0ZWdvcnkgaXMgY3JlYXRlZCc7CiRsYW5nWydpbmZvX2V2ZW50X29uZG93bmxvYWQnXSA9ICdFdmVudCBnZW5lcmF0ZWQgd2hlbiBhIGZpbGUgaXMgZG93bmxvYWRlZCc7CiRsYW5nWydpbmZvX2V2ZW50X29udXBsb2FkJ10gPSAnRXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBuZXcgZmlsZSBpcyB1cGxvYWRlZCc7CiRsYW5nWydpbmZvX2V2ZW50X29ucmVtb3ZlJ10gPSAnRXZlbnQgZ2VuZXJhdGVkIHdoZW4gYSBmaWxlIGlzIHJlbW92ZWQnOwokbGFuZ1sndGl0bGVfdXNlcnRhZ19vbnVwbG9hZCddID0gJ1VzZXIgZGVmaW5lZCB0YWcgdG8gY2FsbCBhZnRlciB1cGxvYWQgaXMgY29tcGxldGUnOwokbGFuZ1snbm9uZSddID0gJ05vbmUnOwokbGFuZ1snbWF0Y2hlc2ZvdW5kJ10gPSAnTWF0Y2hlcyBmb3VuZCc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RvbnVwbG9hZCddID0gJ1JlZGlyZWN0IHRvIHBhZ2UgaWQvYWxpYXMgb24gdXNlciB1cGxvYWQnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snY29uZmlybV9wcmVmZXJlbmNlcyddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBhZGp1c3QgdGhlIHByZWZlcmVuY2VzPyc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzdXBsb2FkZWQnXSA9ICdObyBmaWxlcyB3ZXJlIHVwbG9hZGVkLic7CiRsYW5nWydwcm9tcHRfcmVwbGFjZSddID0gJ0FsbG93IE92ZXJ3cml0ZSc7CiRsYW5nWydpbmZvX3JlcGxhY2UnXSA9ICdSZXBsYWNlIGFueSBmaWxlIHdpdGggdGhlIHNhbWUgbmFtZSAoZG9lcyBub3QgY2hhbmdlIGlkKSc7CiRsYW5nWydub19pbml0aWFsJ10gPSAnRG8gbm90IGRpc3BsYXkgYW55IGluaXRpYWwgcmVzdWx0cyB3aGVuIHRoZSBmaWx0ZXIgaXMgb24nOwokbGFuZ1sncGFyYW1fa2V5J10gPSAnUHJvdmlkZSBhbiBhZGRpdGlvbmFsIGtleSB0byB0aGUgbW9kdWxlIGZvciBmdXJ0aGVyIG9yZ2FuaXppbmcgdXBsb2Fkcy4gIFRoaXMga2V5IGNvdWxkIGJlIGFuIGVuY29kZWQgc3RyaW5nIGxpa2U6ICYjMDM5O2ZldXNlcnM6dWlkJiMwMzk7LCBldGMuICBUaGlzIHBhcmFtZXRlciBpcyB1c3VhbGx5IG9ubHkgbmVlZGVkIHdoZW4gZW1iZWRkaW5nIHRoZSB1cGxvYWRzIG1vZHVsZSBpbnRvIGFub3RoZXIgbW9kdWxlJzsKJGxhbmdbJ3BhcmFtX25vYXV0aG9yJ10gPSAnSGlkZSB0aGUgYXV0aG9yIGZpZWxkIGZyb20gdGhlIHVwbG9hZCBmb3JtLiAgVGhpcyBwYXJhbWV0ZXIgaXMgb25seSB2YWxpZCB3aGVuIG1vZGU9JiMwMzk7dXBsb2FkJiMwMzk7LiAgSWYgVGhlIEZyb250ZW5kVXNlcnMgbW9kdWxlIGlzIHByZXNlbnQsIGFuZCBhIHVzZXIgaXMgY3VycmVudGx5IGxvZ2dlZCBpbiwgYSBoaWRkZW4gZmllbGQgd2lsbCBob2xkIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXJuYW1lJzsKJGxhbmdbJ3BhcmFtX3VwbG9hZF9pZCddID0gJ3VwbG9hZF9pZD0mcXVvdDtpZCZxdW90OyAtIHNwZWNpZnkgYSBzaW5nbGUgZmlsZSBmb3IgdGhlIHVybC9saW5rIG9yIHNpbmdsZSBtb2RlcyAoYWJvdmUpJzsKJGxhbmdbJ3BhcmFtX3VzZV9zdHJpY3RfcmVnZXhwJ10gPSAnVGhlIGZpbHRlciBmaWVsZCBpcyB1c2VkIGFzIGEgc3RyaWN0IHJlZ2V4cCB3aXRob3V0IHByZXByb2Nlc3Npbmcgb2Ygc3BhY2VzJzsKJGxhbmdbJ3BhcmFtX3RlbXBsYXRlJ10gPSAnVXNlIGEgdGVtcGxhdGUgd2l0aCB0aGlzIG5hbWUgZm9yIHRoaXMgcmVwb3J0IG9yIGZvcm0uICBUaGlzIHRlbXBsYXRlIGF1dG9tYXRpY2FsbHkgcHVsbHMgYSB0ZW1wbGF0ZSB3aXRoIHRoZSBtYXRjaGluZyBuYW1lIGZyb20gdGhlIGFwcHJvcHJpYXRlIGxpc3QgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBtb2RlJzsKJGxhbmdbJ3BhcmFtX2ZpbHRlciddID0gJ0Rpc3BsYXkgdGhlIGZpbHRlcmluZyBmb3JtJzsKJGxhbmdbJ3BhcmFtX25vX2ludGl0aWFsJ10gPSAnT25seSB1c2VmdWwgd2hlbiB0aGUgZmlsdGVyIHBhcmFtZXRlciBpcyBzdXBwbGllZCwgb3Igb24gYnkgZGVmYXVsdCwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdldGhlciBpbml0aWFsIHJlc3VsdHMgc2hvdWxkIGJlIHJldHVybmVkJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJyAgPHA+U29ydCBPcmRlcnMNCiAgPHVsPg0KICA8bGk+PGVtPmRhdGVfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBkYXRlPC9saT4NCiAgPGxpPjxlbT5kYXRlX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBkYXRlPC9saT4NCiAgPGxpPjxlbT5uYW1lX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgbmFtZTwvbGk+DQogIDxsaT48ZW0+bmFtZV9kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgbmFtZTwvbGk+DQogIDxsaT48ZW0+c2l6ZV9hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIHNpemU8L2xpPg0KICA8bGk+PGVtPnNpemVfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIHNpemU8L2xpPg0KICA8bGk+PGVtPmRlc2NfYXNjPC9lbT4gLSBTb3J0IGJ5IGFzY2VuZGluZyBkZXNjcmlwdGlvbjwvbGk+DQogIDxsaT48ZW0+ZGVzY19kZXNjPC9lbT4gLSBTb3J0IGJ5IGRlc2NlbmRpbmcgZGVzY3JpcHRpb248L2xpPg0KICA8bGk+PGVtPmF1dGhvcl9hc2M8L2VtPiAtIFNvcnQgYnkgYXNjZW5kaW5nIGF1dGhvcjwvbGk+DQogIDxsaT48ZW0+YXV0aG9yX2Rlc2M8L2VtPiAtIFNvcnQgYnkgZGVzY2VuZGluZyBhdXRob3I8L2xpPg0KICA8bGk+PGVtPmlwX2FzYzwvZW0+IC0gU29ydCBieSBhc2NlbmRpbmcgaXAgYWRkcmVzczwvbGk+DQogIDxsaT48ZW0+aXBfZGVzYzwvZW0+IC0gU29ydCBieSBkZXNjZW5kaW5nIGlwIGFkZHJlc3M8L2xpPg0KICA8bGk+PGVtPnJhbmRvbTwvZW0+IC0gUmFuZG9tIHNvcnQgb3JkZXI8L2xpPg0KICA8L3VsPg0KICA8L3A+JzsKJGxhbmdbJ3BhcmFtX2ZpbGVleHRlbnNpb25zJ10gPSAnIA0KZmlsZV9leHRlbnNpb25zPSZxdW90O2V4dDEsZXh0MixleHQzJnF1b3Q7DQo8cD52YWxpZCBvbmx5IHdoZW4gbW9kZT11cGxvYWQsIHRoaXMgcGFyYW1ldGVyIGxpbWl0cyB0aGUgdHlwZXMgb2YgZmlsZXMgdGhhdCBjYW4gYmUgdXBsb2FkZWQuICBJdCBvdmVycmlkZXMgYW55IHNldHRpbmdzIGluIHRoZSBtb2R1bGUgcHJlZmVyZW5jZXMuPC9wPic7CiRsYW5nWydwYXJhbV9jb3VudCddID0gJ2NvdW50PSZxdW90O04mcXVvdDsNCjxwPkEgcGFyYW1ldGVyIHRvIGxpc3Qgb25seSB0aGUgZmlyc3QgTiByZXN1bHRzIG9mIHRoZSBxdWVyeS4gIFBhZ2luYXRpb24gd291bGQgYmUgYmV0dGVyLCBidXQgdGhpcyB3aWxsIGRvIHRoZSB0cmljayBmb3Igbm93PC9wPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ2NhdGVnb3J5PSZxdW90O25hbWUmcXVvdDsNCjxwPjxiPk5vdGU6PC9iPiBDYXRlZ29yeSBjYW4gYmUgJnF1b3Q7YWxsJnF1b3Q7LCB3aGljaCB3aWxsIGxpc3QgYWxsIG9mIHRoZSB1cGxvYWRzIGZyb20gYWxsIDxlbT5saXN0YWJsZTwvZW0+IGNhdGVnb3JpZXM8L3A+JzsKJGxhbmdbJ3BhcmFtX21vZGUnXSA9ICcgIDx1bD4NCiAgPGxpPjxlbT5kZXRhaWxlZDwvZW0+IC0gRGlzcGxheSBhIGRldGFpbGVkIGxpc3Qgb2YgYWxsIGZpbGVzIGluIHRoZSBjYXRlZ29yeTwvbGk+DQogIDxsaT48ZW0+dXBsb2FkPC9lbT4gLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBhIGZyb250ZW5kIHVzZXIgdG8gdXBsb2FkIGEgZmlsZTwvbGk+DQogIDxsaT48ZW0+dXJsIDxpPm9yPC9pPiBsaW5rPC9lbT4gLSBEaXNwbGF5IGEgbGluayB0byBhIGZpbGU8L2xpPg0KICA8bGk+PGVtPnN1bW1hcnk8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJpemVkIGxpc3Qgb2YgYWxsIGZpbGVzIGluIHRoZSBjYXRlZ29yeTwvbGk+DQogIDxsaT48ZW0+c2luZ2xlPC9lbT4gLSBEaXNwbGF5IGEgZGV0YWlsZWQgcmVwb3J0IGFib3V0IGEgc2luZ2xlIHVwbG9hZDwvbGk+DQogIDxsaT48ZW0+c2luZ2xlc3VtbWFyeTwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcml6ZWQgcmVwb3J0IGFib3V0IGEgc2luZ2xlIHVwbG9hZC9saT4NCiAgPC91bD4nOwokbGFuZ1sncmV0dXJudG9tb2R1bGUnXSA9ICdSZXR1cm4gdG8gbW9kdWxlIHBhbmVsJzsKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcmllcyddID0gJ1RoZXJlIGFyZSBubyBkZWZpbmVkIGNhdGVnb3JpZXMnOwokbGFuZ1sndGl0bGVfZW5mb3JjZWV4dGVuc2lvbnMnXSA9ICdSZXF1aXJlIGV4dGVuc2lvbnMgb24gYWxsIHVwbG9hZGVkIGZpbGVzJzsKJGxhbmdbJ3Jlc3RvcmVkZWZhdWx0c2NvbmZpcm0nXSA9ICdUaGlzIG9wZXJhdGlvbiB3aWxsIHJlc3RvcmUgdGhlIHRlbXBsYXRlIHRvIHN5c3RlbSBkZWZhdWx0cy4gIEFueSBjaGFuZ2VzIHlvdSBoYXZlIG1hZGUgd2lsbCBiZSBsb3N0LiAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ2luZm9fdGh1bWJuYWlsJ10gPSAnQW4gb3B0aW9uYWwgdGh1bWJuYWlsIGZpbGUnOwokbGFuZ1sndGh1bWJuYWlsJ10gPSAnVGh1bWJuYWlsJzsKJGxhbmdbJ2luZm9fc3VtbWFyeSddID0gJ0EgYnJpZWYgZGVzY3JpcHRpb24gb2YgdGhlIGZpbGUgKGlmIGVtcHR5LCB0aGUgZmlsZSBuYW1lIGlzIHVzZWQgd2l0aG91dCB0aGUgZXh0ZW5zaW9uKSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5bmFtZSddID0gJ0EgYnJpZWYgbmFtZSBmb3IgeW91ciBjYXRlZ29yeSAoaHVtYW4gcmVhZGFibGUpJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnlkZXNjJ10gPSAnQSBkZXNjcmlwdGlvbiBmb3IgeW91ciBjYXRlZ29yeSc7CiRsYW5nWydpbmZvX2NhdGVnb3J5cGF0aCddID0gJ1RoZSBkaXJlY3RvcnkgbmFtZSBpbnNpZGUgdGhlIHVwbG9hZHMgZGlyZWN0b3J5IHRoYXQgd2lsbCBiZSB1c2VkIHRvIHN0b3JlIGZpbGVzIGluIHRoaXMgY2F0ZWdvcnkuICBJZiB0aGUgZGlyZWN0b3J5IG9mIHRoaXMgbmFtZSBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LCBpdCBtYXkgYmUgY3JlYXRlZCc7CiRsYW5nWydpbmZvX2Rlc3RuYW1lJ10gPSAnVXNlIHRoZSAmIzAzOTtVcGxvYWQgQXMmIzAzOTsgZmllbGQgdG8gY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBmaWxlIG9uIHVwbG9hZC4gIExlYXZlIGJsYW5rIHRvIHByZXNlcnZlIHRoZSBmaWxlbmFtZSBhcy1pcy4nOwokbGFuZ1snZXJyb3JfY2FudGNyZWF0ZWRpcmVjdG9yeSddID0gJ0NvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5JzsKJGxhbmdbJ2Vycm9yX25vbWFpbGVybW9kdWxlJ10gPSAnVGhlIENNU01haWxlciBtb2R1bGUgY291bGQgbm90IGJlIGluc3RhbnRpYXRlZCc7CiRsYW5nWyd1cGxvYWRfbm90aWZpY2F0aW9uJ10gPSAnQSBuZXcgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9vbl91cGxvYWQnXSA9ICdTZW5kIHVwbG9hZCBub3RpZmljYXRpb24gdG86JzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZHVtbXlfaW5kZXhfaHRtbCddID0gJ0NyZWF0ZSBkdW1teSBpbmRleC5odG1sIGZpbGVzIGluIGVhY2ggZGlyZWN0b3J5Pzxici8+PGVtPkFueSBleGlzdGluZyBpbmRleC5odG1sIGZpbGVzIHdpbGwgcmVtYWluPC9lbT4nOwokbGFuZ1snYWJvdXQnXSA9ICdBYm91dCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yX2NvdWxkbm90d3JpdGUnXSA9ICdDb3VsZCBub3Qgd3JpdGUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdBZGQgQ2F0ZWdvcnknOwokbGFuZ1snYWxsJ10gPSAnQWxsJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgWW91IFN1cmU/JzsKJGxhbmdbJ2F1dGhvciddID0gJ0F1dGhvcic7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY2Fubm90bW9kaWZ5cGF0aCddID0gJyhUaGUgcGF0aCBjYW5ub3QgYmUgbW9kaWZpZWQpJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWVzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcnknOwokbGFuZ1snbWVzc2FnZV9jYXRlZ29yeWFkZGVkJ10gPSAnQ2F0ZWdvcnkgc3VjY2Vzc2Z1bGx5IGFkZGVkJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT4NCjxwPlZlcnNpb24gMS4wLiAtIFNlcHRlbWJlciAyMDA1LjwvcD4NCjxwPiBJbml0aWFsIFJlbGVhc2UuPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4wMS4gLSBTZXB0ZW1iZXIgMjAwNTwvcD4NCjxwPk1pbm9yIGZpeGVzLjwvcD48L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAyLiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgYWJpbGl0eSB0byBzcGVjaWZ5IHNvcnQgb3JkZXI8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjAzLiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+Rml4IHJlZ2FyZGluZyBjb25mbGljdCBpbiB0ZW1wbGF0ZSBuYW1lczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDQuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5BZGRlZCBhYmlsaXR5IHRvIHJlLXNjYW4gYSBkaXJlY3RvcnksIGFuZCB0byB1cGxvYWQgZmlsZXMgZnJvbSB0aGUgYWRtaW4gcGFnZTwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMDUuIC0gU2VwdGVtYmVyIDIwMDU8L3A+DQo8cD5GaXhlZCBzb21lIFBIUCB2YXJpYWJsZSBpc3N1ZXM8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA2LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgYXV0aG9yIGZpZWxkIHRvIHRoZSBhZG1pbiBwYW5lbCB1cGxvYWQgZm9ybSwgYWRkZWQgYSBzdW1tYXJ5IGZpZWxkLCBhbmQgbWFkZSBkZXNjcmlwdGlvbiBhIHRleHQgYXJlYSwgYW5kIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkgYSBkZXN0aW5hdGlvbiBmaWxlIG5hbWU8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA3LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QWRkZWQgdGhlIGFiaWxpdHkgdG8gcmVuYW1lIGZpbGVzIGFuZCBmaXhlZCBhIHNjYW4gZXJyb3I8L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjA4LiAtIFNlcHRlbWJlciAyMDA1PC9wPg0KPHA+QmV0dGVyIGhhbmRsaW5nIG9mIG5hbWVzIHdpdGggc3BhY2VzLCBhbmQgYSBmZXcgbWlub3IgZXJyb3JzIGZpeGVkLiAgQWRkZWQgc3dlZGlzaCB0cmFuc2xhdGlvbiAodGhhbmtzIHdlc3Rpcyk8L3A+PC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjAuIC0gT2N0b2JlciAyMDA1PC9wPg0KIDx1bD4NCiAgIDxsaT5Nb2RpZmllZCBBdHRlbXB0VXBsb2FkIGZ1bmN0aW9uIHNvIGl0IGNvdWxkIGJlIGNhbGxlZCBleHRlcm5hbGx5PC9saT4NCiAgIDxsaT5BZGRlZCBHZXRVcGxvYWREZXRhaWxzIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbGwgb2YgdGhlIGRldGFpbHMgYWJvdXQgYSBtb2R1bGUsIGluY2x1ZGluZyBhIGxpbms8L2xpPg0KICAgPGxpPkFkZGVkIFJlZGlyZWN0cyBzbyB0aGF0IHdvcmtpbmcgd2l0aCB0aGUgbW9kdWxlIGlzIGFsb3QgbmljZXIsIGl0IHJldHVybnMgdG8gdGhlIHJpZ2h0IHRhYjwvbGk+DQogICA8bGk+Q2hhbmdlZCB0aGUgZnJvbnQgdGVtcGxhdGUgdG8gbG9vayBhIGxpdHRsZSBiZXR0ZXIgYW5kIG1ha2UgbW9yZSBzZW5zZTwvbGk+DQogICA8bGk+Rml4ZXMgdG8gdGhlIHVwbG9hZHMgc3R1ZmYgc28gdGhhdCB0aGUgZGVzY3JpcHRpb24gaXMgc2V0LCBhbmQgbmFtZSBhbmQgc3VtbWFyeSBhcmUgcHV0IGluIHRoZSByaWdodCBwbGFjZTwvbGk+DQogICA8bGk+Rml4ZXMgdG8gZXZlbiBiZXR0ZXIgaGFuZGxlIHNwYWNlcyBpbiBuYW1lczwvbGk+DQogICA8bGk+T3B0aW9uYWx5IHBsYWNlIGR1bW15IGluZGV4Lmh0bWwgZmlsZXMgaW4gZWFjaCB1cGxvYWQgZGlyZWN0b3J5PC9saT4NCiAgIDxsaT5JZiBzcGVjaWZ5aW5nIGEgZGVzdGluYXRpb24gbmFtZSwgYW5kIG5vIGV4dGVuc2lvbiBpcyBnaXZlbiwgdGhlIGV4dGVuc2lvbiBvZiB0aGUgb3JpZ2luYXRpbmcgZmlsZSAoaWYgYW55IGV4aXN0cyBpcyB1c2VkPC9saT4NCiA8L3VsPg0KIDxwPjxlbT48Yj5JbXBvcnRhbnQhPC9iPjwvZW0+PGJyLz5JdCBpcyBub3QgcG9zc2libGUgdG8gdXBncmFkZSBmcm9tIGFueSBvdGhlciB2ZXJzaW9uIG9mIHRoZSBVcGxvYWRzIG1vZHVsZSB0byAxLjEuMC4gIFRoaXMgaXMgZHVlIHRvIHNvbWUgZXJyb3JzIHRoYXQgd2VyZSBtYWRlIGluIHRoZSBkYXRhYmFzZSByb3V0aW5lcywgYW5kIGV2ZW4gaW4gdGhlIHVwZ3JhZGUgcm91dGluZSBpbiAxLjAuNi4gIFlvdSBtdXN0IGRlLWluc3RhbGwgdGhlIG9sZCB2ZXJzaW9uLCBhbmQgdGhlbiByZS1pbnN0YWxsIHRoZSBuZXcgdmVyZXNpb24uIFRoaXMgd2lsbCBjYXVzZSBzaWduaWZpY2FudCBkaWZmaWN1bHR5IGlmIHlvdSBoYXZlIGRzY3JpcHRpb25zLCBldGMsIGluIHlvdXIgdGFibGVzPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEuIC0gT2N0b2JlciwgMjAwNTwvcD4NCjxwPkZpeGVkIGEgY291cGxlIG9mIG1pbm9yIGJ1Z3MgaW4gdGhlIEdldFVwbG9hZERldGFpbHMgYW5kIGFkZGVkIGFub3RoZXIgbGluayAob3IgYSB1cmwpIHRvIHRoZSB1cGxvYWRlZCBmaWxlLjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4yLiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5GaXhlZCB0aGUgVVJMIGZpZWxkIGluIEdldFVwbG9hZERldGFpbHMgdG8gcmV0dXJuIGEgZG93bmxvYWQgbGluayBhbmQgYWRkZWQgYW4gYWJzdXJsIGZpZWxkIHdoaWNoIHJldHVybnMgdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGZpbGUgb24gdGhlIHdlYnNlcnZlci4gIENsaWNrcyBvbiB0aGlzIGxpbmsgd2lsbCBub3QgYmUgY291bnRlZDwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4zLiAtIE9jdG9iZXIsIDIwMDU8L3A+DQo8cD5GaXhlZCB0aGUgdXBncmFkZSBwcm9ibGVtIGZyb20gdGhlIDEuMC54IHNlcmllcy4gIFVzZXJzIG9mIHRoZSAxLjAueCBzZXJpZXMgc2hvdWxkIGJlIGFibGUgdG8gdXBncmFkZSB0byAxLjEuMyBub3cgd2l0aCBubyBkaWZmaWN1bHR5LiA8Yj5UaG9zZSBhcmUgZmFtb3VzIGxhc3Qgd29yZHMsIHBsZWFzZSBiYWNrdXAgZmlyc3Q8L2I+LiBGaXhlZCB0aGUgY29udGVudCByZWRpcmVjdCB0aGluZ3MgdGhhdCB3ZXJlIGlycml0YXRpbmcgbWUuICBBbHNvIGFkZGVkIGNhdGVnb3J5PWFsbCB0byBsaXN0IGFsbCBvZiB0aGUgdXBsb2FkcyBpbiBhbGwgbGlzdGFibGUgY2F0ZWdvcmllcyA8ZW0+KGxldHMgYWxsIGhvcGUgSSBnb3QgdGhlIHNxbCBmaWd1cmVkIG91dCBwcm9wZXJseSk8L2VtPi48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNC4gLSBPY3RvYmVyLCAyMDA1PC9wPg0KPHA+QWRkZWQgdGhlIGNvdW50IHBhcmFtZXRlciB0byBsaXN0IG9ubHkgdGhlIGZpcnN0IE4gcmVjb3JkcywgYW5kIGFkZGVkICZxdW90O3N1bW1hcnlsaW5rJnF1b3Q7LCBhbmQgJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgdG8gdGhlIHRlbXBsYXRlcyBmb3Igd2VzdGlzLiAgRm9yIGV4YW1wbGVzIG9uIGhvdyB0byB1c2UgdGhlbSByZXNldCB5b3VyIHRlbXBsYXRlcyBiYWNrIHRvIGRlZmF1bHQuPC9wPjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS41LiAtIE5vdmVtYmVyLCAyMDA1PC9wPg0KPHA+QWRkZWQgZW1haWwgbm90aWZpY2F0aW9uIGFuZCBzb21lIGJ1ZyBmaXhlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS42LiAtIE5vdmVtYmVyLCAyMDA1PC9wPg0KPHA+QWRkZWQgYW4gYXBpIGZ1bmN0aW9uIGFuZCBmaXhlZCBzb21lIHJlZGlyZWN0aW9uIHN0dWZmPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjcuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5Nb3JlIEFQSSBmdW5jdGlvbnMsIGFuZCBub3cgaWdub3JlIGRvdCBmaWxlcyB3aGVuIHNjYW5uaW5nLiAgRW1haWwgbm90aWZpY2F0aW9uIGlzIG5vdyBpbi48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuOC4gLSBKYW51YXJ5LCAyMDA2PC9wPg0KPHA+KiBJbXByb3ZlZCBkb2NzIHdydCBhcGFjaGUgYW5kIHBocCBjb25maWdzLjwvcD4NCjxwPiogRml4ZWQgcHJvYmxlbSB3aGVyZSBmaWxlc2l6ZSB3YXMgc2hvd2luZyB1cCBhcyAwLjwvcD4NCjxwPiogTW9kaWZpZWQgcGVybWlzc2lvbnMgdG8gYmUgbW9yZSBncmFudWxhcjwvcD4NCjxwPiogQWRkZWQgc29tZSBjb21tZW50cyBhbmQgdmVyYm9zaXR5IHRvIHRoZSBjYXRlZ29yeSBhbmQgdXBsb2FkcyBmb3JtcyBpbiB0aGUgYWRtaW4gc2VjdGlvbjwvcD4NCjxwPiogQWRkZWQgJnF1b3Q7cmFuZG9tJnF1b3Q7IHNvcnQgb3JkZXI8L3A+DQo8cD4qIFNvbWUgUEhQNSBmaXhlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS45LiAtIEphbnVhcnksIDIwMDY8L3A+DQo8cD4qIEFkZGVkIHRoZSBhYmlsaXR5IHRvIHVwbG9hZCBhIHRodW1ibmFpbCBpbWFnZTwvcD4NCjxwPiogU29tZSBpbXByb3ZlZCBhdWRpdGluZzwvcD4NCjxwPiogeG1sIG5vdyBhZGRlZCB0byB0aGUgZGVmYXVsdCBmaWxlIHR5cGVzIChuZXcgaW5zdGFsbHMgb25seSk8L3A+DQo8cD4qIEFkZGVkIGEgY29uZmlybWF0aW9uIG1lc3NhZ2UgdG8gdGhlIHJlc2V0IHRvIGRlZmF1bHRzIGJ1dHRvbnMgb2YgdGhlIHRlbXBsYXRlIHBhZ2VzLjwvcD4NCjxwPiogQWRkZWQgdGhlIGZpbGVfZXh0ZW5zaW9ucyBwYXJhbWV0ZXIgZm9yIHRoZSB1cGxvYWQgZm9ybTwvcD4NCjxwPiogVGhlIGN1cnJlbnQgY2F0ZWdvcnkgc2VsZWN0ZWQgaW4gdGhlIGZpbGVzIGZpbHRlciBpcyBzdGlja3kuDQo8cD4qIEFkZGVkIGEgcHJlZmVyZW5jZSB0byBlbmZvcmljZSBmaWxlbmFtZSBleHRlbnNpb25zIChkZWZhdWx0cyB0byBvbik8L3A+DQo8cD4qIEFkZGVkIGEgbGluayB0byB0aGUgZWRpdCBwYWdlLCBpbiB0aGUgbmFtZSBjb2x1bW4gb2YgdGhlIGZpbGVzIGxpc3QuPC9wPg0KPHA+KiBNaW5vciBjaGFuZ2VzIHRvIHRoZSBsYXlvdXQgYW5kIHRleHQgdG8gYWRkIGNsYXJpdHkuPC9wPg0KPHA+KiBBZGRlZCBkb3dubG9hZF91cmwgYXMgYW4gYXZhaWxhYmxlIHNtYXJ0eSB0YWcgaW4gdGhlIHRlbXBsYXRlczwvcD4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEwLiAtIEZlYnJ1YXJ5LCAyMDA2PC9wPg0KPHA+KiBTdW1tYXJ5IG5vdyBkZWZhdWx0cyB0byB0aGUgZmlsZW5hbWUgKHdpdGhvdXQgdGhlIGV4dGVuc2lvbikgaWYgbm9uZSBpcyBzcGVjaWZpZWQ8L3A+DQo8cD4qIE5vdyBjb3JyZWN0bHkgaGFuZGxlIGlmIHRoZSB0aHVtYm5haWwgZXh0ZW5zaW9uIGlzIG5vdCBpbiB0aGUgYWNjZXB0ZWQgZXh0ZW5zaW9uIGxpc3Q8L3A+DQo8cD4qIE5vIGxvbmdlciBkaXNwbGF5IGFueSBjb250ZW50IGluIHRoZSBmaWxlcyB0YWIgaWYgdGhlcmUgYXJlIG5vIGNhdGVnb3JpZXMgZGVmaW5lZDwvcD4NCjxwPiogRGlzcGxheSBhIGxpbmsgaW4gdGhlIGVycm9yIHBhZ2UgdGhhdCB0YWtlcyB5b3UgYmFjayB0byB0aGUgbWFpbiBhZG1pbiBwYW5lbDwvcD4NCjxwPiogQWxsb3cgZm9yIHJlcGxhY2luZyBvZiB1cGxvYWRlZCBmaWxlczwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMS4gLSBNYXJjaCwgMjAwNjwvcD4NCjxwPkFkZGVkIHRoZSBhYmlsaXR5IGZvciBhIGxpbmsgdG8gYSBkZXRhaWxlZCBwYWdlIHdoZW4gaW4gc3VtbWFyeSBtb2RlLjwvcD4NCjxwPlNwbGl0IHRoZSBkZWZhdWx0IGFjdGlvbiBhbmQgZGVmYXVsdGFkbWluIGFjdGlvbnMgaW50byBzZXBhcmF0ZSBmaWxlcywgZm9yIGEgYml0IG9mIG1lbW9yeSBpbXByb3ZlbWVudCwgaG9wZWZ1bGx5PC9wPg0KPHA+QWRkIHRoZSBhYmlsaXR5IHRvIHJlZGlyZWN0IHRvIGFub3RoZXIgcGFnZSBhZnRlciBhIGZyb250ZW5kIHVzZXIgdXBsb2FkZWQgYSBmaWxlPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEyLiAtIE1hcmNoLCAyMDA2PC9wPg0KPHA+QWRkZWQgdGhlIHNpbmdsZXN1bW1hcnkgbW9kZSB0byBkaXNwbGF5IGEgc2luZ2xlIHVwbG9hZCBpbiBzdW1tYXJ5IG1vZGU8L1A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTMuIC0gQXByaWwsIDIwMDY8L3A+DQo8cD5BZGRlZCBvcHRpb25hbCBmaWx0ZXJpbmcgb24gdGhlIGZyb250ZW5kLCBhbmQgYSBjb3VwbGUgb2YgZXh0cmEgcGFyYW1ldGVycyB0byBnbyB3aXRoIGl0PC9wPg0KPHA+Rml4ZWQgYSBwcm9ibGVtIHdoZXJlIGl0IHdvdWxkIGFsbG93IHlvdSB0byBlbnRlciBhIGJsYW5rIHBhdGggd2hlbiBjcmVhdGluZyBhIGNhdGVnb3J5PC9wPg0KPHA+U3BsaXQgc3R1ZmYgaW50byAoc29tZSkgc2VwYXJhdGUgYWN0aW9uIGZpbGVzIGZvciBzb21lIGhvcGVmdWwgcGVyZm9ybWFuY2UgaW5jcmVhc2VzPC9wPg0KPHA+QWRkZWQgY29weXJpZ2h0IG5vdGljZXM8L3A+DQo8cD5DaGFuZ2VkIChvcHRpb25hbCkgZGVwZW5kZW5jeSBmcm9tIFVzZXJJRCB0byBGcm9udEVuZFVzZXJzIE1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjIuMSAtIEFwcmlsLCAyMDA2PC9wPg0KPHA+Q2hhbmdlZCBfc2NhbkRpcmVjdG9yeSB0byBhbiBBUEkgZnVuY3Rpb24gU2NhbkRpcmVjdG9yeSBhbmQgdGhlbiBhZGRlZCBTbWFydFNjYW5EaXJlY3RvcnkgdG8gc2NhbiB0aGUgZGlyZWN0b3J5IGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBzdW1tYXJ5IG9yIGRldGFpbCBsaXN0aW5nIHRvIGhhbmRsZSB0aGUNCmNhc2Ugd2hlcmUgc29tZWJvZHkgdXBsb2FkZWQgZmlsZXMgdmlhIEZUUCBvciBzb21ldGhpbmcgYW5kIGRpZCBub3QgZ28gaW50byB0aGUgYWRtaW4gc2VjdGlvbiB0byB1cGRhdGUgdGhlIGNhdGVnb3JpZXMuPC9wPg0KPHA+Q29ycmVjdGlvbiB0byBhbGwgZGIgYWNjZXNzIHN0dWZmLiBIb3BlZnVsbHkgcHJvdmlkZXMgYSBwZXJmb3JtYW5jZSBpbmNyZWFzZS48L3A+DQo8cD5GaXhlcyB0byB0aGUgYWJvdXQgc3R1ZmYsIG5vdyB1c2UgQ3JlYXRlUGFyYW1ldGVyPC9wPg0KPHA+QWRkZWQgdGhlIHVwbG9hZF90ZW1wbGF0ZSwgc3VtbWFyeV90ZW1wbGF0ZSwgYW5kIGRldGFpbF90ZW1wbGF0ZSAob3B0aW9uYWwpIHBhcmFtZXRlcjwvcD4NCjxwPkFkZGVkIHRoZSBub2F1dGhvciBwYXJhbWV0ZXIsIGFuZCB0aGUga2V5IHBhcmFtZXRlci4gIFRoZSBrZXkgcGFyYW1ldGVyIGFsbG93cyB0aGUgdXBsb2FkcyBtb2R1bGUgdG8gYmUgZW1iZWRkZWQgaW50byBvdGhlciBtb2R1bGVzPC9wPg0KPHA+TW92ZWQgdG8gdW5kZXIgdGhlIGNvbnRlbnQgbWVudSwgYW5kIGVudGl0bGVkICYjMDM5O0ZpbGVzIChVcGxvYWQgTW9kdWxlKSYjMDM5OzwvcD47DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjIuMiAtIEp1bmUsIDIwMDYNCjxwPkFkZGVkIHRoZSBhYmlsaXR5IHRvIGhhdmUgbXVsdGlwbGUgZGF0YWJhc2UgdGVtcGxhdGVzLCBhbmQgdG8gc2VsZWN0IG9uZSBvbiB0aGUgdGFnIHdpdGggdGhlIHRlbXBsYXRlIHBhcmFtZXRlci48L3A+DQo8cD5GaXhlZCBhbiBpc3N1ZSB3aGVyZSBmaWxlcyB3ZXJlIGdldHRpbmcgY29ycnVwdGVkIG9uIGRvd25sb2FkPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4yLjMgLSBKdW5lLCAyMDA2DQo8cD5GaXhlcyB0byB1c2UgYWRvZGItbGl0ZSBwcm9wZXIsIHJhdGhlciB0aGFuIHRlZHMgaGFjazwvcD4NCjxwPkRldGFpbCBsaW5rIG5vdyBkaXNwbGF5cyBpbmxpbmU8L3A+DQo8cD5PdGhlciBtaW5vciB0d2Vha3MgdGhhdCBJIGNhbnQgcmVtZW1iZXI8L3A+DQo8L2xpPg0KPC91bD4nOwokbGFuZ1snZGF0ZSddID0gJ0RhdGUnOwokbGFuZ1snZGF0ZXVwbG9hZGVkJ10gPSAnRGF0ZSBVcGxvYWRlZCc7CiRsYW5nWydkZWZhdWx0J10gPSAnRGVmYXVsdHMnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZGVzdG5hbWUnXSA9ICdVcGxvYWQgQXMnOwokbGFuZ1snZGV0YWlsX3RlbXBsYXRlJ10gPSAnRGV0YWlsIFRlbXBsYXRlJzsKJGxhbmdbJ2Rvd25sb2FkZWQnXSA9ICdGaWxlICVzIHdhcyBkb3dubG9hZGVkLic7CiRsYW5nWydkb3dubG9hZHMnXSA9ICdEb3dubG9hZHMnOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7CiRsYW5nWydlZGl0dXBsb2FkJ10gPSAnRWRpdCBVcGxvYWQnOwokbGFuZ1snZXJyb3InXSA9ICdFcnJvciEnOwokbGFuZ1snZXJyb3JfcGF0aGludXNlJ10gPSAnQSBjYXRlZ29yeSB1c2luZyB0aGF0IHBhdGggYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlleGlzdHMnXSA9ICdFcnJvcjogQ2F0ZWdvcnkgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3RlbXB0eSddID0gJ0Vycm9yISBDYW5ub3QgZGVsZXRlIGEgY2F0ZWdvcnkgdGhhdCBpcyBub3QgZW1wdHknOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3Rmb3VuZCddID0gJ0Vycm9yOiBDYXRlZ29yeSBub3QgZm91bmQhJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdFcnJvcjogRGF0YWJhc2UgZXJyb3IhJzsKJGxhbmdbJ2Vycm9yX2VtcHR5Y2F0ZWdvcnknXSA9ICdFcnJvcjogRW1wdHkgQ2F0ZWdvcnkhJzsKJGxhbmdbJ2Vycm9yX2VtcHR5cGF0aCddID0gJ0Vycm9yOiBFbXB0eSBQYXRoISc7CiRsYW5nWydlcnJvcl9maWxlZXhpc3RzJ10gPSAnRXJyb3IhIEZpbGUgJXMgYWxyZWFkeSBleGlzdHMuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0Vycm9yISBGaWxlICVzIHdhcyBub3QgZm91bmQuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0Vycm9yOiBJbnN1ZmZpY2llbnQgcGFyYW1ldGVycyBzdXBwbGllZCB0byBtb2R1bGUhJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRhdXRob3InXSA9ICdFcnJvcjogSW52YWxpZCAob3IgZW1wdHkpIGF1dGhvci4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGNhdGVnb3J5J10gPSAnRXJyb3I6IEludmFsaWQgKG9yIGVtcHR5KSBjYXRlZ29yeS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGRlc2NyaXB0aW9uJ10gPSAnRXJyb3I6IEludmFsaWQgKG9yIGVtcHR5KSBkZXNjcmlwdGlvbi4nOwokbGFuZ1snZXJyb3JfaW52YWxpZGZpbGUnXSA9ICdFcnJvcjogSW52YWxpZCAob3IgZW1wdHkpIGZpbGVuYW1lLic7CiRsYW5nWydlcnJvcl9pbnZhbGlkdXBsb2FkZmlsZW5hbWUnXSA9ICdFcnJvcjogRmlsZXMgd2l0aCB0aGF0IG5hbWUgKHByb2JhYmx5IGV4dGVuc2lvbikgYXJlIG5vdCBhbGxvd2VkICglcykuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cGxvYWRpZCddID0gJ0Vycm9yOiBJbnZhbGlkIHVwbG9hZCBpZCc7CiRsYW5nWydlcnJvcl9ub2ZpbGVzJ10gPSAnRXJyb3I6IE5vIE1hdGNoaW5nIEZpbGVzISc7CiRsYW5nWydmaWxlcyddID0gJ0ZpbGVzJzsKJGxhbmdbJ2ZpeG1lJ10gPSAnRml4IFNwYWNlcyc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdGaWxlcyAoVXBsb2FkcyBNb2R1bGUpJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPkl0IGlzIGEgbW9kdWxlIGZvciBhbGxvd2luZyBwZW9wbGUgdG8gdXBsb2FkIGFuZCBkb3dubG9hZCBmaWxlcyB0byBhbmQgZnJvbSB5b3VyIHNpdGUuICBJdCBrZWVwcyB0cmFjayBvZiB3aG8gdXBsb2FkZWQgYSBmaWxlLCBhbmQgd2hvIGhhcyBkb3dubG9hZGVkIGl0LiAgQXMgd2VsbCwgeW91IGNhbiBzb3J0IGZpbGVzIGludG8gY2F0ZWdvcmllcywgYW5kIG1hbmFnZSB0aGUgZmlsZXMgdGhhdCB3ZXJlIHVwbG9hZGVkIGxpa2UgZXZlcnkgYWRtaW5pc3RyYXRvciB3b3VsZCBkbzwvcD4gDQo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4NCjxwPlRvIHVzZSB0aGlzIG1vZHVsZSwgdG8gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIGZpbGVzIHRvIHlvdXIgc2l0ZSwgeW91IHNob3VsZCBpbnN0YWxsIHRoZSBtb2R1bGUsIGFuZCB0aGVuIGNyZWF0ZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzIChhLmsuYSkgZGlyZWN0b3JpZXMgZm9yIHRoZSB1cGxvYWRlZCBmaWxlcyB0byBnbyBpbnRvLiBUaGVuIGFkZCBhIHRhZyBpbnRvIGEgcGFnZSBvciB0ZW1wbGF0ZSBzb21ld2hlcmUgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7VXBsb2FkcyZxdW90OyBjYXRlZ29yeT0mcXVvdDtzb21lY2F0ZWdvcnkmcXVvdDsgbW9kZT0mcXVvdDtzb21lbW9kZSZxdW90O30uICBXaGVyZSBtb2RlIG1hdGNoZXMgb25lIG9mIHRoZSBtb2RlcyBsaXN0ZWQgYmVsb3cuICBUaGUgb3V0cHV0IHdpbGwgZGlmZmVyIGRlcGVuZGluZyB1cG9uIHdoaWNoIG1vZGUgeW91IHNlbGVjdC48L3A+DQo8cD5UaGlzIG1vZHVsZSBjYW4gdXNlIHRoZSBGcm9udGVuZFVzZXJzIG1vZHVsZSAob3B0aW9uYWwpIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCBhbnkgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VycyB0byBwYXJ0bHkgZmlsbCBpbiB0aGUgZm9ybSB3aGVuIHVwbG9hZGluZyBmaWxlczs8L3A+DQo8aDM+UGVybWlzc2lvbnM8L2gzPg0KPHVsPg0KPGxpPjxlbT5NYW5hZ2UgVXBsb2FkczwvZW0+IHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIG1hbmFnZSBjYXRlZ29yaWVzLCBhbmQgdGhlIGZpbGVzIHdpdGhpbiB0aGVtLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBUZW1wbGF0ZXM8L2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCBlZGl0IGFueSBvZiB0aGUgdGVtcGxhdGVzLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzL2VtPiBwZXJtaXNzaW9uIGlzIG5lZWRlZCBhbnkgb2YgdGhlIGZpbGUgc2V0dGluZ3MuPC9saT4NCjwvdWw+DQo8aDM+RW1haWxpbmc8L2gzPg0KPHA+VGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBzZW5kaW5nIGFuIGVtYWlsIHdoZW5ldmVyIGEgZmlsZSBpcyB1cGxvYWRlZCwgc2VlIHRoZSBwcmVmZXJlbmNlcyB0YWIuICBIb3dldmVyLCB0byBkbyB0aGlzIHRoZSA8Yj5DTVNNYWlsZXI8L2I+IHBhY2thZ2UgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQuICBUaGlzIGlzIGFuIDxlbT5vcHRpb25hbDwvZW0+IHN0ZXAsIGFuZCBpZiB0aGUgQ01TTWFpbGVyIG1vZHVsZSBpcyBub3QgaW5zdGFsbGVkLCBub3RoaW5nIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLCBvbmx5IGEgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBwbGFjZWQgaW50byB0aGUgYWRtaW4gbG9nPC9wPg0KPGgzPlN5c3RlbSBTZXR0aW5nczwvaDM+DQo8cD48Yj5Ob3RlOjwvYj4gVGhpcyBtb2R1bGUgZG9lcyBub3QgYnlwYXNzIG9yIGdldCBwYXN0IGFueSBmaWxlIHNpemUgbGltaXRhdGlvbnMgaW4gcGhwLiAgSXQgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGVtLiAgVGhlcmVmb3JlIHlvdSBtYXkgbmVlZCB0byBtb2RpZnkgeW91ciBwaHAuaW5pIGZpbGUgYW5kL29yIHlvdXIgaHR0cGQuY29uZiBmaWxlKHMpIHRvIGFsbG93IHlvdSB0byB1cGxvYWQgZmlsZXMgYXMgbGFyZ2UgYXMgd2hhdCB5b3UgaGF2ZSBzZXQgaW4gdGhlIHVwbG9hZHMgbW9kdWxlIHByZWZlcmVuY2VzLjwvcD4NCjxoMz5BcGFjaGUgTm90ZXM8L2gzPg0KPHA+SW4gb3JkZXIgdG8gYWxsb3cgbGFyZ2UgZmlsZSB1cGxvYWRzLCB5b3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBpbiB5b3VyIHBocC5pbmkgIEluIGFkZGl0aW9uLCB0aGUgTGltaXRSZXF1ZXN0Qm9keSBwYXJhbWV0ZXIgaW4geW91ciBhcGFjaGUgY29uZmlndXJhdGlvbiwgbWF5IG5lZWQgdG8gYmUgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhlIHVwbG9hZF9tYXhfZmlsZXNpemUgcGFyYW1ldGVyPC9wPg0KPHA+Tm90ZTogIHRoZSB1cGxvYWRfbWF4X2ZpbGVzaXplIHBhcmFtZXRlciBjYW4gYmUgc3BlY2lmaWVkIGluIGJ5dGVzLCBraWxvYnl0ZXMsIG9yIG1lZ2FieXRlcywgaG93ZXZlciB0aGUgTGltaXRSZXF1ZXRCb2R5IHBhcmFtZXRlciBpcyBvbmx5IHNwZWNpZmllZCBpbiBieXRlczwvcD4NCic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaWUgJXMgIGlzIGdlaW5zdGFsbGVlcmQuJzsKJGxhbmdbJ2lwX2FkZHJlc3MnXSA9ICdJUCBBZGRyZXNzJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnRWVuIG1vZHVsZSBvbSBnZWJydWlrZXJzIGZpbGVzIHRlIGxhdGVuIHVwbG9hZGVuIGVuIGRlIGdldXBsb2FkZSBmaWxlcyB0ZSBiZWhlcmVuLic7CiRsYW5nWyduYW1lJ10gPSAnTmFhbSc7CiRsYW5nWydyZW5hbWVtZXNzYWdlJ10gPSAnVmVyYW5kZXIgaGllciBkZSBuYWFtIG9tIGRlIGZpbGUgdmFuIG5hYW0gdGUgdmVyYW5kZXJlbi4nOwokbGFuZ1sncGF0aCddID0gJ1BhZCc7CiRsYW5nWydwYXRobWVzc2FnZSddID0gJ1ZlcmFuZGVyIGRlIGNhdGVnb3JpZSBoaWVyb20gZGUgZmlsZSBuYWFyIGVlbiBhbmRlcmUgZGlyZWN0b3JpZSB0ZSB2ZXJwbGFhdHNlbic7CiRsYW5nWydwYXRoaW51cGxvYWRzJ10gPSAnKFJlbGF0aWVmIHRlbiBvcHppY2h0ZSB2YW4gZGUgdXBsb2FkcyBkaXJlY3RvcmllKSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RlIHVwbG9hZHMgbW9kdWxlIGlzIG1ldCBzdWNjZXMgZ2VpbnN0YWxsZWVyZC4gWm9yZyBkYXQgaGV0ICAmcXVvdDtNYW5hZ2UgVXBsb2FkcyZxdW90OyByZWNodCBpcyB1aXRnZWRlZWxkISc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnRGUgVXBsb2FkcyBtb2R1bGUgaXMgbWV0IHN1Y2NlcyB2ZXJ3aWpkZXJkLiBFciB6aWpuIGdlZW4gZmlsZXMgdmVyd2lqZGVyZCB1aXQgZGUgdXBsb2FkcyBkaXJlY3RvcmllLic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0luc3RlbGxpbmdlbic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgaW5zdGVsbGluZ2VuIHppam4gYmV3YWFyZC4nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5ZGVzYyddID0gJ2Jlc2NocmlqdmluZyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlsaXN0YWJsZSddID0gJ0ZpbGVzIGluIGRlemUgZGlyZWN0b3JpZSBrdW5uZW4gd29yZGVuIHdlZXJnZWdldmVuJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeW5hbWUnXSA9ICdDYXRlZ29yaWUgTmFhbSc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnlwYXRoJ10gPSAnU2VydmVyIFBhZCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlZGlyZWN0b3J5J10gPSAnVmVyd2lqZGVyIGNhdGVnb3JpZSBkaXJlY3RvcmllPyc7CiRsYW5nWydwcm9tcHRfbWF4X3VwbG9hZHNpemUnXSA9ICdNYXhpbWFsZSB0b2VnZXN0YW5kZSBmaWxlIGdyb290dGUgKEtiKSc7CiRsYW5nWydwcm9tcHRfdmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyddID0gJ0dlbGRpZ2UgdXBsb2FkIGV4dGVudGllcyc7CiRsYW5nWydzY2FuJ10gPSAnU2Nhbic7CiRsYW5nWydzZWxlY3RjYXRlZ29yeSddID0gJ1NlbGVjdGVlciBDYXRlZ29yaWUnOwokbGFuZ1snc2l6ZSddID0gJ0dyb290dGUnOwokbGFuZ1snc2l6ZWtiJ10gPSAnR3Jvb3R0ZSAoS2IpJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydzdW1tYXJ5X3RlbXBsYXRlJ10gPSAnT21zY2hyaWp2aW5ncyBTamFibG9vbic7CiRsYW5nWydzdW1tYXJ5J10gPSAnT21zY2hyaWp2aW5nJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnVXBsb2FkcyBNb2R1bGUnOwokbGFuZ1sndGl0bGVfbW9kX2FkbWluJ10gPSAnTW9kdWxlIEFkbWluIFBhbmVsJzsKJGxhbmdbJ3RpdGxlX21vZF9wcmVmcyddID0gJ01vZHVsZSBJbnN0ZWxsaW5nZW4nOwokbGFuZ1sndGl0bGVfc2luZ19sb3VkbHknXSA9ICdTaW5nIExvdWRseT8nOwokbGFuZ1sndGl0bGVfc3VibmV0X2V4Y2x1c2lvbnMnXSA9ICdFeGNsdWRlIHN1Ym5ldHMgZnJvbSBzdGF0aXN0aWNzJzsKJGxhbmdbJ3RpdGxlX3ZhbGlkX3VwbG9hZGV4dGVuc2lvbnMnXSA9ICdWYWxpZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIFVuaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1sndXBsb2FkZWQnXSA9ICdGaWxlICVzIHdhcyB1cGxvYWRlZCBieSAlcy4nOwokbGFuZ1sncmVwbGFjZWQnXSA9ICdGaWxlICVzIHdhcyByZXBsYWNlZCBieSAlcy4nOwokbGFuZ1snZGVsZXRlZCddID0gJ0ZpbGUgJXMgd2FzIGRlbGV0ZWQuJzsKJGxhbmdbJ3VwbG9hZGZvcm1fdGVtcGxhdGUnXSA9ICdVcGxvYWQgVGVtcGxhdGUnOwokbGFuZ1sndXNlcm5hbWUnXSA9ICdHZWJydWlrZXJzbmFhbSc7CiRsYW5nWyd3YXJuaW5nX2RlbGV0ZWNhdGVnb3J5J10gPSAnV0FSTklORzogd2VlcyB2b29yemljaHRpZyBtZXQgaGV0IHZlcndpamRlcmVuIHZhbiBjYXRlZ29yaWVuLkVyIGt1bm5lbiBmaWxlcyB2ZXJsb3JlbiBnYWFuJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPldlbGNvbWUgdG8gdGhlIFVwbG9hZHMgTW9kdWxlIGFkbWluIHNlY3Rpb24uIFNvbWV0aGluZyBlbHNlIHdvdWxkIHByb2JhYmx5IGdvIGhlcmUgaWYgdGhlIG1vZHVsZSBhY3R1YWxseSBkaWQgc29tZXRoaW5nLjwvcD4nOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTYzNzA0NzU0LjQ1LjExLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj13aWtpLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL1VzZXJfSGFuZGJvb2svQWRtaW5fUGFuZWwvRXh0ZW5zaW9ucy9udVNPQVB8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTY0MjA5NTc4OC4xMTU5ODE1NjQ3LjExNjM1MzM1MzAuMTE2MzcwNDc1NC40NSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2Vycm9yX25vY2F0ZWdvcnlpZCddID0gJ0luZ2V0IGthdGVnb3JpLUlEIGFuZ2F2cyc7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3J5J10gPSAnSW5nZXQga2F0ZWdvcmktSUQgYW5nYXZzJzsKJGxhbmdbJ2Vycm9yX3RlbXBsYXRlbmFtZWV4aXN0cyddID0gJ0VuIG1hbGwgbWVkIGRldCBuYW1uZXQgZmlubnMgcmVkYW4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlbmFtZSddID0gJ01hbGxuYW1uJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ01hbGwnOwokbGFuZ1sncHJvbXB0X25ld3RlbXBsYXRlJ10gPSAnU2thcGEgZW4gbnkgbWFsbCc7CiRsYW5nWydoZWxwX09uRG93bmxvYWQnXSA9ICc8cD5FbiBoJmF1bWw7bmRlbHNlIHNvbSB1dGYmb3VtbDtycyBuJmF1bWw7ciBlbiBhbnYmYXVtbDtuZGFyZSBzbHV0ZiZvdW1sO3IgbmVkbGFkZG5pbmcgYXYgZW4gZmlsPC9wPg0KPHVsPg0KPGxpPjxlbT5pZDwvZW0+IC0gVXBwbGFkZG5pbmdzLUlEPC9saT4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gRmlsbmFtbjwvbGk+DQo8bGk+PGVtPmlwPC9lbT4gLSBOZWRsYWRkYXJlbnMgSVAtYWRyZXNzPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PbkRlbGV0ZUNhdGVnb3J5J10gPSAnDQo8cD5FbiBoJmF1bWw7bmRlbHNlIHNvbSB1dGYmb3VtbDtycyBuJmF1bWw7ciBlbiBrYXRlZ29yaSB0YXMgYm9ydDwvcD4NCjx1bD4NCjxsaT48ZW0+bmFtZTwvZW0+IC0gS2F0ZWdvcmluYW1uPC9saT4NCjxsaT48ZW0+cGF0aDwvZW0+IC0gUyZvdW1sO2t2JmF1bWw7ZyBmJm91bWw7ciBrYXRlZ29yaTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2hlbHBfT25DcmVhdGVDYXRlZ29yeSddID0gJw0KPHA+RW4gaCZhdW1sO25kZWxzZSBzb20gdXRmJm91bWw7cnMgbiZhdW1sO3IgZW4ga2F0ZWdvcmkgc2thcGFzPC9wPg0KPGg0PlBhcmFtZXRyYXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBLYXRlZ29yaW5zIG5hbW48L2xpPg0KPGxpPjxlbT5kZXNjcmlwdGlvbjwvZW0+IC0gS2F0ZWdvcmlucyBiZXNrcml2bmluZzwvbGk+DQo8bGk+PGVtPnBhdGg8L2VtPiAtIEthdGVnb3JpbnMgcyZvdW1sO2t2JmF1bWw7ZzwvbGk+DQo8bGk+PGVtPnBhdGg8L2VtPiAtIEVuIGZsYWdnYSBzb20gaW5kaWtlcmFyIG9tIGthdGVnb3JpbiBrYW4gbGlzdGFzPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PblJlbW92ZSddID0gJw0KPHA+RW4gaCZhdW1sO25kZWxzZSBzb20gdXRmJm91bWw7cnMgbiZhdW1sO3IgZW4gZmlsIHRhcyBib3J0IHZpYSBhZG1pbmlzdHJhdGlvbmVuIGVsbGVyIGZyb250ZW5kLWdyJmF1bWw7bnNzbml0dGV0PC9wPg0KPGg0PlBhcmFtZXRyYXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBOYW1uZXQgcCZhcmluZzsgZGVuIGJvcnR0YWduYSBmaWxlbjwvbGk+DQo8bGk+PGVtPmlkPC9lbT4gLSBEZW4gYm9ydHRhZ25hIGZpbGVucyBJRDwvbGk+DQo8bGk+PGVtPmNhdGVnb3J5X2lkPC9lbT4gLSBLYXRlZ29yaW5zIElEPC9saT4NCjwvdWw+DQonOwokbGFuZ1snaGVscF9PblVwbG9hZCddID0gJw0KPHA+RW4gaCZhdW1sO25kZWxzZSBzb20gdXRmJm91bWw7cnMgbiZhdW1sO3IgZW4gZmlsIGxhZGRhcyB1cHAgdmlhIGFkbWluaXN0cmF0aW9uZW4gZWxsZXIgZnJvbnRlbmQtZ3ImYXVtbDtuc3NuaXR0ZXQ8L3A+DQo8aDQ+UGFyYW1ldHJhcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmNhdGVnb3J5PC9lbT4gLSBLYXRlZ29yaW5zIG5hbW48L2xpPg0KPGxpPjxlbT5uYW1lPC9lbT4gLSBEZW4gdXBwbGFkZGFkZSBmaWxlbnMgbmFtbjwvbGk+DQo8bGk+PGVtPnNpemU8L2VtPiAtIFN0b3JsZWtlbiBwJmFyaW5nOyBkZW4gdXBwbGFkZGFkZSBmaWxlbjwvbGk+DQo8bGk+PGVtPnN1bW1hcnk8L2VtPiAtIERlbiB1cHBsYWRkYWRlIGZpbGVucyBrb3J0ZmF0dGFkZSBiZXNrcml2bmluZyAoa2FuIHZhcmEgdG9tKTwvZW0+PC9saT4NCjxsaT48ZW0+ZGVzY3JpcHRpb248L2VtPiAtIERlbiB1cHBsYWRkYWRlIGZpbGVucyBsJmFyaW5nO25nYSBiZXNrcml2bmluZyAoa2FuIHZhcmEgdG9tKTwvZW0+PC9saT4NCjxsaT48ZW0+YXV0aG9yPC9lbT4gLSBEZW4gdXBwbGFkZGUgZmlsZW5zIGYmb3VtbDtyZmF0dGFyZSAob20gbiZhcmluZztnb24pPC9lbT48L2xpPg0KPGxpPjxlbT5pcF9hZGRyZXNzPC9lbT4gLSBJbnRlcm5ldC1hZHJlc3NlbiBmJm91bWw7ciBkZW4ga2xpZW50IHNvbSBsYWRkYWRlIHVwcCBmaWxlbjwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ2luZm9fZXZlbnRfb25kZWxldGVjYXRlZ29yeSddID0gJ0gmYXVtbDtuZGVsc2Ugc29tIHV0ZiZvdW1sO3JzIG4mYXVtbDtyIGVuIGthdGVnb3JpIHRhcyBib3J0JzsKJGxhbmdbJ2luZm9fZXZlbnRfb25jcmVhdGVjYXRlZ29yeSddID0gJ0gmYXVtbDtuZGVsc2Ugc29tIHV0ZiZvdW1sO3JzIG4mYXVtbDtyIGVuIGthdGVnb3JpIHNrYXBhcyc7CiRsYW5nWydpbmZvX2V2ZW50X29uZG93bmxvYWQnXSA9ICdIJmF1bWw7bmRlbHNlIHNvbSB1dGYmb3VtbDtycyBuJmF1bWw7ciBlbiBmaWwgbGFkZGFzIG5lcic7CiRsYW5nWydpbmZvX2V2ZW50X29udXBsb2FkJ10gPSAnSCZhdW1sO25kZWxzZSBzb20gdXRmJm91bWw7cnMgbiZhdW1sO3IgZW4gbnkgZmlsIGxhZGRhcyB1cHAnOwokbGFuZ1snaW5mb19ldmVudF9vbnJlbW92ZSddID0gJ0gmYXVtbDtuZGVsc2Ugc29tIHV0ZiZvdW1sO3JzIG4mYXVtbDtyIGVuIGZpbCB0YXMgYm9ydCc7CiRsYW5nWyd0aXRsZV91c2VydGFnX29udXBsb2FkJ10gPSAnQW52JmF1bWw7bmRhcmRlZmluaWVyYWRlIHRhZ2dhciBzb20ga2FsbGFzIGVmdGVyIGF0dCB1cHBsYWRkbmluZ2VuICZhdW1sO3Iga29tcGxldHQnOwokbGFuZ1snbm9uZSddID0gJ0luZ2EnOwokbGFuZ1snbWF0Y2hlc2ZvdW5kJ10gPSAnVHImYXVtbDtmZmFyIGhpdHRhZGUnOwokbGFuZ1snZmlsdGVyJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0b251cGxvYWQnXSA9ICdPbWRpcmlnZXJhIHRpbGwgc2lkLUlELy1hbGlhcyBuJmF1bWw7ciBhbnYmYXVtbDtuZGFyZSBsYWRkYXIgdXBwJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGplcic7CiRsYW5nWydjb25maXJtX3ByZWZlcmVuY2VzJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2aWxsICZhdW1sO25kcmEgaW5zdCZhdW1sO2xsbmluZ2FybmE/JzsKJGxhbmdbJ2Vycm9yX25vZmlsZXN1cGxvYWRlZCddID0gJ0luZ2EgZmlsZXIgbGFkZGFkZXMgdXBwLic7CiRsYW5nWydwcm9tcHRfcmVwbGFjZSddID0gJ1RpbGwmYXJpbmc7dCBhdHQgc2tyaXZhICZvdW1sO3Zlcic7CiRsYW5nWydpbmZvX3JlcGxhY2UnXSA9ICdFcnMmYXVtbDt0dCBhbGxhIGZpbGVyIG1lZCBzYW1tYSBuYW1uICgmYXVtbDtuZHJhciBpbnRlIGlkLW51bXJldCknOwokbGFuZ1snbm9faW5pdGlhbCddID0gJ1Zpc2EgaW50ZSBuJmFyaW5nO2dyYSBpbmxlZGFuZGUgcmVzdWx0YXQgbiZhdW1sO3IgZmlsdHJldCAmYXVtbDtyIHAmYXJpbmc7JzsKJGxhbmdbJ3BhcmFtX2tleSddID0gJ0wmYXVtbDtnZyB0aWxsIHl0dGVybGlnYXJlIGVuIG55Y2tlbCBmJm91bWw7ciBtb2R1bGVuIGYmb3VtbDtyIHZpZGFyZSBvcmdhbmlzZXJpbmcgYXYgdXBwbGFkZG5pbmdhci4gRGVubmEgbnlja2VsIGthbiB2YXJhIGVuIGtvZGFkIHN0ciZhdW1sO25nIHNvbSAmIzAzOTtmZXVzZXJzOnVpZCYjMDM5OyBvc3YuIERlbm5hIHBhcmFtZXRlciBiZWgmb3VtbDt2cyBub3JtYWx0IGJhcmEgbiZhdW1sO3IgdXBwbGFkZG5pbmdzbW9kdWxlbiBiJmF1bWw7ZGRhcyBpbiBpIGVuIGFubmFuIG1vZHVsZSc7CiRsYW5nWydwYXJhbV9ub2F1dGhvciddID0gJ0Qmb3VtbDtsaiBmJmF1bWw7bHRldCBmJm91bWw7ciBmJm91bWw7cmZhdHRhcmUgaSB1cHBsYWRkbmluZ3Nmb3JtdWwmYXVtbDtyZXQuIERlbm5hIHBhcmFtZXRlciAmYXVtbDtyIGJhcmEgZ2lsdGlnIG4mYXVtbDtyIG1vZGU9JiMwMzk7dXBsb2FkJiMwMzk7LiBPbSBtb2R1bGVuIEZyb250ZW5kVXNlcnMgYW52JmF1bWw7bmRzIG9jaCBlbiBhbnYmYXVtbDtuZGFyZSBmJm91bWw7ciB0aWxsZiZhdW1sO2xsZXQgJmF1bWw7ciBpbmxvZ2dhZCwgc3BhcmFzIGRldCBpbmxvZ2dhZGUgYW52JmF1bWw7bmRhcm5hbW5ldCBpIGV0dCBkb2x0IGYmYXVtbDtsdC4nOwokbGFuZ1sncGFyYW1fdXBsb2FkX2lkJ10gPSAndXBsb2FkX2lkPSZxdW90O2lkJnF1b3Q7IC0gYW5nZSBlbiBlbnNraWxkIGZpbCBmJm91bWw7ciB1cmwvbCZhdW1sO25rIGVsbGVyIHNpbmdsZSBtb2RlIChvdmFuKSc7CiRsYW5nWydwYXJhbV91c2Vfc3RyaWN0X3JlZ2V4cCddID0gJ0ZpbHRlcmYmYXVtbDtsdGV0IGFudiZhdW1sO25kcyBzb20gZXR0IHN0cmlrdCByZWdleHAtdXR0cnljayB1dGFuIGF0dCBmJm91bWw7cmJlaGFuZGxhIG1lbGxhbnNsYWcnOwokbGFuZ1sncGFyYW1fdGVtcGxhdGUnXSA9ICdBbnYmYXVtbDtuZCBlbiBtYWxsIG1lZCBkZXR0YSBuYW1uZXQgZiZvdW1sO3IgZGVuIGgmYXVtbDtyIHJhcHBvcnRlbiBlbGxlciBmb3JtdWwmYXVtbDtyZXQuIERlbm5hIG1hbGxlbiB0YXIgYXV0b21hdGlza3QgbWFsbGVuIG1lZCBtb3RzdmFyYW5kZSBuYW1uIGZyJmFyaW5nO24gcGFzc2FuZGUgbGlzdGEgYmVyb2VuZGUgcCZhcmluZzsgc3RpbCAobW9kZSknOwokbGFuZ1sncGFyYW1fZmlsdGVyJ10gPSAnVmlzYSBmaWx0ZXJmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1sncGFyYW1fbm9faW50aXRpYWwnXSA9ICdCYXJhIGFudiZhdW1sO25kYmFyIG4mYXVtbDtyIGZpbHRlcnBhcmFtZXRlcm4gYW52JmF1bWw7bmRzLCBlbGxlciBuJmF1bWw7ciBkZW4gJmF1bWw7ciBwJmFyaW5nOyBzb20gc3RhbmRhcmQuIERlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGluZGlrZXJhciBvbSBpbmxlZGFuZGUgcmVzdWx0YXQgc2thIHJldHVybmVyYXMnOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnICA8cD5Tb3J0ZXJpbmdzb3JkbmluZ2FyDQogIDx1bD4NCiAgPGxpPjxlbT5kYXRlX2FzYzwvZW0+IC0gU29ydGVyYSBlZnRlciBkYXR1bSwgc3RpZ2FuZGU8L2xpPg0KICA8bGk+PGVtPmRhdGVfZGVzYzwvZW0+IC0gU29ydGVyYSBlZnRlciBkYXR1bSwgZmFsbGFuZGU8L2xpPg0KICA8bGk+PGVtPm5hbWVfYXNjPC9lbT4gLSBTb3J0ZXJhIGVmdGVyIG5hbW4sIHN0aWdhbmRlPC9saT4NCiAgPGxpPjxlbT5uYW1lX2Rlc2M8L2VtPiAtIFNvcnRlcmEgZWZ0ZXIgbmFtbiwgZmFsbGFuZGU8L2xpPg0KICA8bGk+PGVtPnNpemVfYXNjPC9lbT4gLSBTb3J0ZXJhIGVmdGVyIHN0b3JsZWssIHN0aWdhbmRlPC9saT4NCiAgPGxpPjxlbT5zaXplX2Rlc2M8L2VtPiAtIFNvcnRlcmEgZWZ0ZXIgc3RvcmxlaywgZmFsbGFuZGU8L2xpPg0KICA8bGk+PGVtPmRlc2NfYXNjPC9lbT4gLSBTb3J0ZXJhIGVmdGVyIGJlc2tyaXZuaW5nLCBzdGlnYW5kZTwvbGk+DQogIDxsaT48ZW0+ZGVzY19kZXNjPC9lbT4gLSBTb3J0ZXJhIGVmdGVyIGJlc2tyaXZuaW5nLCBmYWxsYW5kZTwvbGk+DQogIDxsaT48ZW0+YXV0aG9yX2FzYzwvZW0+IC0gU29ydGVyYSBlZnRlciBmJm91bWw7cmZhdHRhcmUsIHN0aWdhbmRlPC9saT4NCiAgPGxpPjxlbT5hdXRob3JfZGVzYzwvZW0+IC0gU29ydGVyYSBlZnRlciBmJm91bWw7cmZhdHRhcmUsIGZhbGxhbmRlPC9saT4NCiAgPGxpPjxlbT5pcF9hc2M8L2VtPiAtIFNvcnRlcmEgZWZ0ZXIgSVAtYWRyZXNzLCBzdGlnYW5kZTwvbGk+DQogIDxsaT48ZW0+aXBfZGVzYzwvZW0+IC0gU29ydGVyYSBlZnRlciBJUC1hZHJlc3MsIGZhbGxhbmRlPC9saT4NCiAgPGxpPjxlbT5yYW5kb208L2VtPiAtIFNsdW1wdmlzIHNvcnRlcmluZ3NvcmRuaW5nPC9saT4NCiAgPC91bD4NCiAgPC9wPic7CiRsYW5nWydwYXJhbV9maWxlZXh0ZW5zaW9ucyddID0gJyANCmZpbGVfZXh0ZW5zaW9ucz0mcXVvdDtleHQxLGV4dDIsZXh0MyZxdW90Ow0KPHA+ZyZhdW1sO2xsZXIgZW5iYXJ0IG4mYXVtbDtyIG1vZGU9dXBsb2FkLiBEZW4gaCZhdW1sO3IgcGFyYW1ldGVybiBiZWdyJmF1bWw7bnNhciB2aWxrYSBmaWx0eXBlciBzb20ga2FuIGxhZGRhcyB1cHAuIERlbiB1cHBoJmF1bWw7dmVyIGluc3QmYXVtbDtsbG5pbmdhcm5hIGkgbW9kdWxpbnN0JmF1bWw7bGxuaW5nYXIuPC9wPic7CiRsYW5nWydwYXJhbV9jb3VudCddID0gJ2NvdW50PSZxdW90O04mcXVvdDsNCjxwPkVuIHBhcmFtZXRlciBmJm91bWw7ciBhdHQgbGlzdGEgZW5iYXJ0IGRlIE4gZiZvdW1sO3JzdGEgcmVzdWx0YXRlbiBpIGVuIGZyJmFyaW5nO2dhLiBTaWRpbmRlbG5pbmcgKHBhZ2luYXRpb24pIHNrdWxsZSB2YXJhIGImYXVtbDt0dHJlLCBtZW4gZGV0IGgmYXVtbDtyIGZ1bmthciB0aWxscyB2aWRhcmU8L3A+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnY2F0ZWdvcnk9JnF1b3Q7bmFtZSZxdW90Ow0KPHA+PGI+Tm90ZXJhOjwvYj4gS2F0ZWdvcmkga2FuIHZhcmEgJnF1b3Q7YWxsJnF1b3Q7IChhbGxhKSwgdmlsa2V0IGxpc3RhciBhbGxhIHVwcGxhZGRuaW5nYXIgZnImYXJpbmc7biBhbGxhIDxlbT5saXN0YmFyYTwvZW0+IGthdGVnb3JpZXI8L3A+JzsKJGxhbmdbJ3BhcmFtX21vZGUnXSA9ICcgIDx1bD4NCiAgPGxpPjxlbT5kZXRhaWxlZDwvZW0+IC0gVmlzYSBlbiBkZXRhbGplcmFkIGxpc3RhICZvdW1sO3ZlciBhbGxhIGZpbGVyIGkga2F0ZWdvcmluPC9saT4NCiAgPGxpPjxlbT51cGxvYWQ8L2VtPiAtIFZpc2EgZXR0IGZvcm11bCZhdW1sO3IgZiZvdW1sO3IgYXR0IGwmYXJpbmc7dGEgZW4gYW52JmF1bWw7bmRhcmUgbGFkZGEgdXBwIGZpbGVyIHZpYSBoZW1zaWRhbjwvbGk+DQogIDxsaT48ZW0+dXJsIDxpPm9yPC9pPiBsaW5rPC9lbT4gLSBWaXNhIGVuIGwmYXVtbDtuayB0aWxsIGVuIGZpbDwvbGk+DQogIDxsaT48ZW0+c3VtbWFyeTwvZW0+IC0gVmlzYSBlbiBzYW1tYW5mYXR0YWQgbGlzdGEgJm91bWw7dmVyIGFsbGEgZmlsZXIgaSBlbiBrYXRlZ29yaTwvbGk+DQogIDxsaT48ZW0+c2luZ2xlPC9lbT4gLSBWaXNhIGVuIGRldGFsamVyYWQgcmFwcG9ydCBvbSBlbiBlbnNraWxkIHVwcGxhZGRuaW5nPC9saT4NCiAgPC91bD4nOwokbGFuZ1sncmV0dXJudG9tb2R1bGUnXSA9ICdUaWxsYmFrYSB0aWxsIG1vZHVscGFuZWxlbic7CiRsYW5nWydlcnJvcl9ub2NhdGVnb3JpZXMnXSA9ICdEZXQgZmlubnMgaW5nYSBkZWZpbmllcmFkZSBrYXRlZ29yaWVyJzsKJGxhbmdbJ3RpdGxlX2VuZm9yY2VleHRlbnNpb25zJ10gPSAnS3ImYXVtbDt2ZXIgZmlsdGlsbCZhdW1sO2dnIGYmb3VtbDtyIGFsbGEgdXBwbGFkZGFkZSBmaWxlcic7CiRsYW5nWydyZXN0b3JlZGVmYXVsdHNjb25maXJtJ10gPSAnRGV0dGEgJmFyaW5nO3RlcnN0JmF1bWw7bGxlciBtYWxsYXJuYSB0aWxsIHN5c3RlbXN0YW5kYXJkLiBBbGxhIGYmb3VtbDtyJmF1bWw7bmRyaW5nYXIgc29tIGR1IGhhciBnam9ydCBrb21tZXIgYXR0IGYmb3VtbDtybG9yYXMuICZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCBmb3J0cyZhdW1sO3R0YT8nOwokbGFuZ1snaW5mb190aHVtYm5haWwnXSA9ICdFbiB2YWxmcmkgZmlsIG1lZCB0dW1uYWdlbGJpbGQnOwokbGFuZ1sndGh1bWJuYWlsJ10gPSAnVHVtbmFnZWxiaWxkJzsKJGxhbmdbJ2luZm9fc3VtbWFyeSddID0gJ0VuIGtvcnQgYmVza3Jpdm5pbmcgYXYgZmlsZW4gKG9tIHRvbSBhbnYmYXVtbDtuZHMgZmlsbmFtbmV0IHV0YW4gZGVzcyBmaWx0aWxsJmF1bWw7Z2cpJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnluYW1lJ10gPSAnRW4ga29ydCBiZXNrcml2bmluZyBhdiBkaW4ga2F0ZWdvcmkgKGYmb3VtbDtyIGFsbG0mYXVtbDtuaGV0ZW4pJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnlkZXNjJ10gPSAnRW4gYmVza3Jpdm5pbmcgYXYgZGluIGthdGVnb3JpJzsKJGxhbmdbJ2luZm9fY2F0ZWdvcnlwYXRoJ10gPSAnTmFtbmV0IHAmYXJpbmc7IGthdGFsb2dlbiB1bmRlciBrYXRhbG9nZW4gdXBsb2Fkcywgc29tIHNrYSBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIGF0dCBzcGFyYSBmaWxlciBpIGRlbiBoJmF1bWw7ciBrYXRlZ29yaW4uIE9tIGthdGFsb2dlbiBtZWQgZGV0IGgmYXVtbDtyIG5hbW5ldCBpbnRlIGZpbm5zLCBzJmFyaW5nOyBrYW4gZGVuIHNrYXBhcy4nOwokbGFuZ1snaW5mb19kZXN0bmFtZSddID0gJ0FudiZhdW1sO25kIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldCBmJm91bWw7ciBhdHQgJmF1bWw7bmRyYSBuYW1uZXQgcCZhcmluZzsgZmlsZW4gdmlkIHVwcGxhZGRuaW5nJzsKJGxhbmdbJ2Vycm9yX2NhbnRjcmVhdGVkaXJlY3RvcnknXSA9ICdLdW5kZSBpbnRlIHNrYXBhIGthdGFsb2cnOwokbGFuZ1snZXJyb3Jfbm9tYWlsZXJtb2R1bGUnXSA9ICdNb2R1bGVuIENNU01haWxlciBrdW5kZSBpbnRlIHNrYXBhIGVuIGluc3RhbnMnOwokbGFuZ1sndXBsb2FkX25vdGlmaWNhdGlvbiddID0gJ0VuIG55IGZpbCBoYXIgbGFkZGF0cyB1cHAnOwokbGFuZ1sndGl0bGVfZW1haWxfb25fdXBsb2FkJ10gPSAnU2tpY2thIGVwb3N0IHZpZCB1cHBsYWRkbmluZyB0aWxsOic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZSddID0gJ0Vwb3N0bWFsbCc7CiRsYW5nWyd0aXRsZV9kdW1teV9pbmRleF9odG1sJ10gPSAnU2thcGEgaW5kZXguaHRtbC1maWxlciBpIHZhcmplIG1hcHA/PGJyLz48ZW0+QWxsYSBiZWZpbnRsaWdhIGluZGV4Lmh0bWwtZmlsZXIga29tbWVyIGF0dCBmaW5uYXMga3ZhcjwvZW0+JzsKJGxhbmdbJ2Fib3V0J10gPSAnT20nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJyZBcmluZzt0a29tc3QgbmVrYWQuIEtvbnRyb2xsZXJhIGRpbmEgciZhdW1sO3R0aWdoZXRlci4nOwokbGFuZ1snZXJyb3JfY291bGRub3R3cml0ZSddID0gJ0t1bmRlIGludGUgc2tyaXZhJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTCZhdW1sO2dnIHRpbGwga2F0ZWdvcmknOwokbGFuZ1snYWxsJ10gPSAnQWxsYSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyPyc7CiRsYW5nWydhdXRob3InXSA9ICdGJm91bWw7cmZhdHRhcmUnOwokbGFuZ1snY2FuY2VsJ10gPSAnJkFyaW5nO25ncmEnOwokbGFuZ1snY2Fubm90bW9kaWZ5cGF0aCddID0gJyhTJm91bWw7a3YmYXVtbDtnZW4ga2FuIGludGUgJmF1bWw7bmRyYXMpJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snbWVzc2FnZV9jYXRlZ29yeWFkZGVkJ10gPSAnS2F0ZWdvcmluIGhhciBsYWd0cyB0aWxsJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDEuMC4gIC0gU2VwdGVtYmVyIDIwMDUuIEYmb3VtbDtyc3RhIHZlcnNpb25lbi48L2xpPg0KPGxpPlZlcnNpb24gMS4wMS4gLSBTZXB0ZW1iZXIgMjAwNS4gTWluZHJlIGtvcnJpZ2VyaW5nYXIuPC9saT4NCjxsaT5WZXJzaW9uIDEuMDIuIC0gU2VwdGVtYmVyIDIwMDUuIExhIHRpbGwgbSZvdW1sO2psaWdoZXQgYXR0IHYmYXVtbDtsamEgc29ydGVyaW5nc29yZG5pbmc8L2xpPg0KPGxpPlZlcnNpb24gMS4wMy4gLSBTZXB0ZW1iZXIgMjAwNS4gS29ycmlnZXJpbmcgciZvdW1sO3JhbmRlIGtvbmZsaWt0IGkgbWFsbG5hbW48L2xpPg0KPGxpPlZlcnNpb24gMS4wNC4gLSBTZXB0ZW1iZXIgMjAwNS4gTGEgdGlsbCBtJm91bWw7amxpZ2hldCBhdHQgJmFyaW5nO3RlcnNjYW5uYSBlbiBtYXBwLCBvY2ggYXR0IGxhZGRhIHVwcCBmaWxlciBmciZhcmluZztuIGFkbWluLXNpZGFuPC9saT4NCjxsaT5WZXJzaW9uIDEuMDUuIC0gU2VwdGVtYmVyIDIwMDUuIEtvcnJpZ2VyaW5nIGF2IG4mYXJpbmc7Z3JhIGZlbGFrdGlnYSBQSFAtdmFyaWFibGVyPC9saT4NCjxsaT5WZXJzaW9uIDEuMDYuIC0gU2VwdGVtYmVyIDIwMDUuIExhIHRpbGwgZiZvdW1sO3JmYXR0YXJmJmF1bWw7bHQgaSB1cHBsYWRkbmluZ3Nmb3JtdWwmYXVtbDtyZXQgaSBhZG1pbi1wYW5lbGVuLCBsYSB0aWxsIHNhbW1hbmZhdHRuaW5nc2YmYXVtbDtsdCwgb2NoIGdqb3JkZSBvbSBiZXNrcml2bmluZyB0aWxsIHRleHQgYXJlYSwgb2NoIHRpbGwmYXJpbmc7dCBhbnYmYXVtbDtuZGFyZW4gYXR0IHYmYXVtbDtsamEgbmFtbiBwJmFyaW5nOyBkZXN0aW5hdGlvbnNmaWxlbjwvbGk+DQo8bGk+VmVyc2lvbiAxLjA3LiAtIFNlcHRlbWJlciAyMDA1LiBMYSB0aWxsIG0mb3VtbDtqbGlnaGV0IGF0dCAmYXVtbDtuZHJhIGZpbG5hbW4sIG9jaCBrb3JyaWdlcmFkZSBldHQgbWluZHJlIGZlbCBmJm91bWw7ciBzY2FubmluZyBhdiBtYXBwPC9saT4NCjxsaT5WZXJzaW9uIDEuMDguIC0gU2VwdGVtYmVyIDIwMDUuIEJldHRlciBoYW5kbGluZyBvZiBuYW1lcyB3aXRoIHNwYWNlcywgYW5kIGEgZmV3IG1pbm9yIGVycm9ycyBmaXhlZC4gIEFkZGVkIHN3ZWRpc2ggdHJhbnNsYXRpb24gKHRoYW5rcyB3ZXN0aXMpPC9saT4NCjxsaT5WZXJzaW9uIDEuMS4wLiAtIE9rdG9iZXIgMjAwNQ0KIDx1bD4NCiAgIDxsaT5Nb2RpZmllcmFkZSBBdHRlbXB0VXBsb2FkLWZ1bmt0aW9uZW4gcyZhcmluZzsgYXR0IGRlbiBrdW5kZSBrYWxsYXMgdXRpZnImYXJpbmc7bjwvbGk+DQogICA8bGk+TGEgdGlsbCBHZXRVcGxvYWREZXRhaWxzLWZ1bmt0aW9uZW4gc29tIHJldHVybmVyYXIgYWxsYSBkZXRhbGplciBvbSBlbiBtb2R1bCwgaW5rbHVzaXZlIGVuIGwmYXVtbDtuazwvbGk+DQogICA8bGk+TGEgdGlsbCBSZWRpcmVjdHMgcyZhcmluZzsgYXR0IGRldCAmYXVtbDtyIG15Y2tldCB0cmV2bGlnYXJlIGF0dCBhcmJldGEgbWVkIG1vZHVsZW4sIGRlbiBvbWRpcmlnZXJhciB0aWxsIGRlbiByJmF1bWw7dHRhIGZsaWtlbjwvbGk+DQogICA8bGk+JkF1bWw7bmRyYWRlIGZyb250LW1hbGxlbiBmJm91bWw7ciBhdHQgc2UgYiZhdW1sO3R0cmUgdXQgb2NoIGZ1bmdlcmEgdmV0dGlnYXJlPC9saT4NCiAgIDxsaT5GaXhhciBmJm91bWw7ciB1cHBsYWRkbmluZ2VuLCBzJmFyaW5nOyBhdHQgYmVza3Jpdm5pbmdlbiBzdCZhdW1sO2xscyBpbiBvY2ggbmFtbiBvY2ggc2FtbWFuZmF0dG5pbmcgaGFtbmFyIHAmYXJpbmc7IHImYXVtbDt0dCBzdCZhdW1sO2xsZTwvbGk+DQogICA8bGk+Rml4YXIgZiZvdW1sO3IgYXR0IGhhbnRlcmEgbWVsbGFuc2xhZyBpIG5hbW4gJmF1bWw7bm51IGImYXVtbDt0dHJlPGxpPg0KICAgPGxpPk0mb3VtbDtqbGlnaGV0IGF0dCB2JmF1bWw7bGphIGF0dCBsJmF1bWw7Z2dhIGluZGV4Lmh0bWwtZmlsZXIgaSB2YXJqZSB1cHBsYWRkbmluZ3NtYXBwPC9saT4NCiAgIDxsaT5PbSBtYW4gc3BlY2lmaWNlcmFyIGV0dCBtJmFyaW5nO2xuYW1uLCBvY2ggaW5nZXQgZmlsdGlsbCZhdW1sO2dnIGFuZ2VzLCBhbnYmYXVtbDtuZHMgZmlsdGlsbCZhdW1sO2dnZXQgZiZvdW1sO3Igb3JpZ2luYWxmaWxlbjwvbGk+DQogPC91bD4NCiA8cD48ZW0+PGI+VmlrdGlndCE8L2I+PC9lbT48YnIvPkRldCAmYXVtbDtyIGludGUgbSZvdW1sO2psaWd0IGF0dCB1cHBncmFkZXJhIGZyJmFyaW5nO24gbiZhcmluZztnb24gYW5uYW4gdmVyc2lvbiBhdiBVcGxvYWRzbW9kdWxlbiB0aWxsIDEuMS4wLiAgRGV0dGEgcGdhIG4mYXJpbmc7Z3JhIGZlbCBzb20gZ2pvcmRlcyBpIGRhdGFiYXNydXRpbmVybmEsIG9jaCAmYXVtbDt2ZW4gaSB1cHBncmFkZXJpbmdzcnV0aW5lbiBpIDEuMC42LiBEdSBtJmFyaW5nO3N0ZSBhdmluc3RhbGxlcmEgZGVuIGdhbWxhIHZlcnNpb25lbiBvY2ggc2VkYW4gb21pbnN0YWxsZXJhIGRlbiBueWEgdmVyc2lvbmVuLiBEZXR0YSBvcnNha2FyIHN0b3JhIHN2JmFyaW5nO3JpZ2hldGVyIG9tIGR1IGhhciBiZXNrcml2bmluZ2FyIG9jaCBhbm5hdCBpIGRpbmEgdGFiZWxsZXI8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMS4xLjEuIC0gT2t0b2JlciwgMjAwNS4gRml4YWRlIG4mYXJpbmc7Z3JhIG1pbmRyZSBidWdnYXIgaSBHZXRVcGxvYWREZXRhaWxzIG9jaCBsYSB0aWxsIHl0dGVybGlnYXJlIGVuIGwmYXVtbDtuayAoZWxsZXIgZW4gdXJsKSB0aWxsIGRlIHVwcGxhZGRhZGUgZmlsZXJuYS48L2xpPg0KPGxpPlZlcnNpb24gMS4xLjIuIC0gT2t0b2JlciwgMjAwNS4gRml4YWRlIFVSTC1mJmF1bWw7bHRldCBpIEdldFVwbG9hZERldGFpbHMgZiZvdW1sO3IgYXR0IHJldHVybmVyYSBlbiBuZWRsYWRkbmluZ3NsJmF1bWw7bmssIG9jaCBsYSB0aWxsIGV0dCBhYnN1cmwtZiZhdW1sO2x0IHNvbSByZXR1cm5lcmFyIGRlbiBhYnNvbHV0YSBzJm91bWw7a3YmYXVtbDtnZW4gdGlsbCBmaWxlbiBwJmFyaW5nOyB3ZWJic2VydmVybi4gS2xpY2sgcCZhcmluZzsgZGVubmEgbCZhdW1sO25rIGtvbW1lciBpbnRlIGF0dCByJmF1bWw7a25hcy48L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMy4gLSBPa3RvYmVyLCAyMDA1PC9wPg0KPHA+Rml4YWRlIHVwcGdyYWRlcmluZ3Nwcm9ibGVtZW4gZnImYXJpbmc7biAxLjAueC1zZXJpZW4uIERlIHNvbSBhbnYmYXVtbDtuZGVyIDEuMC54IGImb3VtbDtyIGt1bm5hIHVwcGdyYWRlcmEgdGlsbCAxLjEuMy4gbnUgdXRhbiBwcm9ibGVtLiA8c3Ryb25nPkRlIGJlciZvdW1sO21kYSBzaXN0YSBvcmRlbiwgZ2wmb3VtbDttIGludGUgYXR0IHRhIGJhY2t1cCBmJm91bWw7cnN0ITwvc3Ryb25nPi4gRml4YWRlIGNvbnRlbnQgcmVkaXJlY3QtZ3Jlam9yIHNvbSBpcnJpdGVyYWRlIG1pZy4gTGEgb2NrcyZhcmluZzsgdGlsbCBjYXRlZ29yeT1hbGwgZiZvdW1sO3IgYXR0IGxpc3RhIGFsbGEgdXBwbGFkZG5pbmdlbiBpIGFsbGEgbGlzdGJhcmEga2FlZ29yaWVyIDxlbT4obCZhcmluZzt0IG9zcyBob3BwYXMgYXR0IGZpY2sgb3JkbmluZyBwJmFyaW5nOyBzcWwtYW5yb3Blbik8L2VtPi48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuNC4gLSBPa3RvYmVyLCAyMDA1PC9wPg0KPHA+TGEgdGlsbCBjb3VudC1wYXJhbWV0ZXJuIGYmb3VtbDtyIGF0dCBsaXN0YSBkZSBmJm91bWw7cnN0YSBYIHBvc3Rlcm5hLCBvY2ggbGEgdGlsbCAmcXVvdDtzdW1tYXJ5bGluayZxdW90OyBvY2ggJnF1b3Q7Y2F0ZWdvcnkmcXVvdDsgaSBtYWxsYXJuYSBmJm91bWw7ciB3ZXN0aXMuIEYmb3VtbDtyIGV4ZW1wZWwgb20gaHVyIGRlIGFudiZhdW1sO25kcywgJmFyaW5nO3RlcnN0JmF1bWw7bGwgZGluYSBtYWxsYXIgdGlsbCBzdGFuZGFyZC48L3A+PC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjUuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5MYSB0aWxsIGUtcG9zdG5vdGlmaWVyaW5nIG9jaCBmaXhhZGUgbiZhcmluZztncmEgYnVnZ2FyPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjYuIC0gTm92ZW1iZXIsIDIwMDU8L3A+DQo8cD5MYSB0aWxsIGVuIEFQSS1mdW5rdGlvbiBvY2ggZml4YWRlIG4mYXJpbmc7Z3JhIHJlZGlyZWN0aW9uLWdyZWpvcjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS43LiAtIE5vdmVtYmVyLCAyMDA1PC9wPg0KPHA+RmxlciBBUEktZnVua3Rpb25lciBvY2ggaWdub3JlcmFyIG51IGRvdC1maWxlciB2aWQgc2Nhbm5pbmcuIEUtcG9zdG5vdGlmaWVyaW5nICZhdW1sO3IgbnUgdGlsbGFndC48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuOC4gLSBKYW51YXJpLCAyMDA2PC9wPg0KPHA+RiZvdW1sO3JiJmF1bWw7dHRyYWRlIGRva3VtZW50YXRpb25lbiBtZWQgQXBhY2hlLSBvY2ggUEhQLWtvbmZpZ3VyYXRpb24uPC9wPg0KPHA+JkF1bWw7bmRyYWRlIHImYXVtbDt0dGlnaGV0ZXJuYSwgcyZhcmluZzsgYXR0IGRlICZhdW1sO3IgbWVyIHVwcGRlbGFkZS48L3A+DQo8cD5MYSB0aWxsIG4mYXJpbmc7Z3JhIGtvbW1lbnRhcmVyIG9jaCBmbGVyIG9yZCB0aWxsIGthdGVnb3JpLSBvY2ggdXBwbGFkZG5pbmdzZm9ybXVsJmF1bWw7cmVuIGkgYWRtaW5pc3RyYXRpb25lbjwvcD4NCjxwPkxhIHRpbGwgJnF1b3Q7cmFuZG9tJnF1b3Q7IChzbHVtcHZpcykgc29ydGVyaW5nc29yZG5pbmc8L3A+DQo8L2xpPg0KPHA+VmVyc2lvbiAxLjEuOS4gLSBKYW51YXJpLCAyMDA2PC9wPg0KPHA+KiBMYSB0aWxsIG0mb3VtbDtqbGlnaGV0ZW4gYXR0IGxhZGRhIHVwcCBlbiB0dW1uYWdlbGJpbGQ8L3A+DQo8cD4qIEImYXVtbDt0dHJlIGdyYW5za25pbmc8L3A+DQo8cD4qIFhNTCB0aWxsYWd0IHRpbGwgc3RhbmRhcmRmaWx0eXBlcm5hIChlbmJhcnQgdmlkIG55IGluc3RhbGxhdGlvbik8L3A+DQo8cD4qIExhIHRpbGwgZXR0IGJla3ImYXVtbDtmdGVsc2VtZWRkZWxhbmRlIGYmb3VtbDtyIGF0dCAmYXJpbmc7dGVyc3QmYXVtbDtsbGEgc3RhbmRhcmRrbmFwcGFybmEgZiZvdW1sO3IgbWFsbHNpZG9ybmEuPC9wPg0KPHA+KiBMYSB0aWxsIHBhcmFtZXRlcm4gZmlsX2V4dGVuc2lvbnMgZiZvdW1sO3IgdXBwbGFkZG5pbmdzZm9ydWwmYXVtbDtyZXQ8L3A+DQo8cD4qIERlbiB2YWxkYSBrYXRlZ29yaW4gaSBmaWxmaWx0cmV0IGZhc3RuYXIgKGcmYXJpbmc7ciBpbnRlIHRpbGxiYWthIHRpbGwgZiZvdW1sO3JzdGEga2F0ZWdvcmluKS4NCjxwPiogTGEgdGlsbCBlbiBpbnN0JmF1bWw7bGxuaW5nIGYmb3VtbDtyIGF0dCBhbGx0aWQgbCZhdW1sO2dnYSB0aWxsIGZpbHRpbGwmYXVtbDtnZyAoc3RhbmRhcmQgJmF1bWw7ciBvbiAocCZhcmluZzspICk8L3A+DQo8cD4qIExhIHRpbGwgZW4gbCZhdW1sO25rIHRpbGwgYXR0IHJlZGlnZXJhIHNpZGFuLCBpIG5hbW5rb2x1bW5lbiBpIGxpc3RhbiAmb3VtbDt2ZXIgZmlsZXIuPC9wPg0KPHA+KiBNaW5kcmUgJmF1bWw7bmRyaW5nYXIgaSBsYXlvdXRlbiBvY2ggdGV4dGVuIGYmb3VtbDtyIGF0dCBnJm91bWw7cmEgZGV0IHR5ZGxpZ2FyZS48L3A+DQo8cD4qIExBIHRpbGwgZG93bmxvYWRfdXJsIHNvbSBlbiBzbWFydHl0YWdnIHNvbSBrYW4gYW52JmF1bWw7bmRhcyBpIG1hbGxlbjwvcD4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEwLiAtIEZlYnJ1YXJpLCAyMDA2PC9wPg0KPHA+KiBTYW1tYW5mYXR0bmluZyAmYXVtbDtyIG51IGZpbG5hbW5ldCAodXRhbiBmaWx0aWxsJmF1bWw7Z2cpIG9tIGluZ2VuIHNhbW1hbmZhdHRuaW5nIGhhciBzcGVjaWZpY2VyYXRzPC9wPg0KPHA+KiBOdSBrb3JyZWt0IGJldGVlbmRlIG9tIHR1bW5hZ2Vsc3RpbGwmYXVtbDtnZ2V0IGludGUgZmlubnMgaSBsaXN0YW4gJm91bWw7dmVyIGFjY2VwdGVyYWRlIGZpbHRpbGwmYXVtbDtnZzwvcD4NCjxwPiogVmlzYXIgaW50ZSBsJmF1bWw7bmdyZSBuJmFyaW5nO2dvdCBpbm5laCZhcmluZztsbCBpIGZpbHRhYmJlbiBvbSBpbnRlIG4mYXJpbmc7Z29uIGthdGVnb3JpIGhhciBkZWZpbmllcmF0czwvcD4NCjxwPiogVmlzYXIgZW4gbCZhdW1sO25rIHAmYXJpbmc7IGZlbHNpZGFuIHNvbSB0YXIgZGlnIHRpbGxiYWthIHRpbGwgYWRtaW5pc3RyYXRpb25zcGFuZWxlbjwvcD4NCjxwPiogTSZvdW1sO2psaWd0IGF0dCBlcnMmYXVtbDt0dGEgdXBwbGFkZGFkZSBmaWxlcjwvcD4NCjwvbGk+DQo8bGk+DQo8cD5WZXJzaW9uIDEuMS4xMS4gLSBNYXJjaCwgMjAwNjwvcD4NCjxwPkFkZGVkIHRoZSBhYmlsaXR5IGZvciBhIGxpbmsgdG8gYSBkZXRhaWxlZCBwYWdlIHdoZW4gaW4gc3VtbWFyeSBtb2RlLjwvcD4NCjxwPlNwbGl0IHRoZSBkZWZhdWx0IGFjdGlvbiBhbmQgZGVmYXVsdGFkbWluIGFjdGlvbnMgaW50byBzZXBhcmF0ZSBmaWxlcywgZm9yIGEgYml0IG9mIG1lbW9yeSBpbXByb3ZlbWVudCwgaG9wZWZ1bGx5PC9wPg0KPHA+QWRkIHRoZSBhYmlsaXR5IHRvIHJlZGlyZWN0IHRvIGFub3RoZXIgcGFnZSBhZnRlciBhIGZyb250ZW5kIHVzZXIgdXBsb2FkZWQgYSBmaWxlPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4xLjEyLiAtIE1hcmNoLCAyMDA2PC9wPg0KPHA+QWRkZWQgdGhlIHNpbmdsZXN1bW1hcnkgbW9kZSB0byBkaXNwbGF5IGEgc2luZ2xlIHVwbG9hZCBpbiBzdW1tYXJ5IG1vZGU8L1A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjEuMTMuIC0gQXByaWwsIDIwMDY8L3A+DQo8cD5BZGRlZCBvcHRpb25hbCBmaWx0ZXJpbmcgb24gdGhlIGZyb250ZW5kLCBhbmQgYSBjb3VwbGUgb2YgZXh0cmEgcGFyYW1ldGVycyB0byBnbyB3aXRoIGl0PC9wPg0KPHA+Rml4ZWQgYSBwcm9ibGVtIHdoZXJlIGl0IHdvdWxkIGFsbG93IHlvdSB0byBlbnRlciBhIGJsYW5rIHBhdGggd2hlbiBjcmVhdGluZyBhIGNhdGVnb3J5PC9wPg0KPHA+U3BsaXQgc3R1ZmYgaW50byAoc29tZSkgc2VwYXJhdGUgYWN0aW9uIGZpbGVzIGZvciBzb21lIGhvcGVmdWwgcGVyZm9ybWFuY2UgaW5jcmVhc2VzPC9wPg0KPHA+QWRkZWQgY29weXJpZ2h0IG5vdGljZXM8L3A+DQo8cD5DaGFuZ2VkIChvcHRpb25hbCkgZGVwZW5kZW5jeSBmcm9tIFVzZXJJRCB0byBGcm9udEVuZFVzZXJzIE1vZHVsZS48L3A+DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjIuMSAtIEFwcmlsLCAyMDA2PC9wPg0KPHA+Q2hhbmdlZCBfc2NhbkRpcmVjdG9yeSB0byBhbiBBUEkgZnVuY3Rpb24gU2NhbkRpcmVjdG9yeSBhbmQgdGhlbiBhZGRlZCBTbWFydFNjYW5EaXJlY3RvcnkgdG8gc2NhbiB0aGUgZGlyZWN0b3J5IGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBzdW1tYXJ5IG9yIGRldGFpbCBsaXN0aW5nIHRvIGhhbmRsZSB0aGUNCmNhc2Ugd2hlcmUgc29tZWJvZHkgdXBsb2FkZWQgZmlsZXMgdmlhIEZUUCBvciBzb21ldGhpbmcgYW5kIGRpZCBub3QgZ28gaW50byB0aGUgYWRtaW4gc2VjdGlvbiB0byB1cGRhdGUgdGhlIGNhdGVnb3JpZXMuPC9wPg0KPHA+Q29ycmVjdGlvbiB0byBhbGwgZGIgYWNjZXNzIHN0dWZmLiBIb3BlZnVsbHkgcHJvdmlkZXMgYSBwZXJmb3JtYW5jZSBpbmNyZWFzZS48L3A+DQo8cD5GaXhlcyB0byB0aGUgYWJvdXQgc3R1ZmYsIG5vdyB1c2UgQ3JlYXRlUGFyYW1ldGVyPC9wPg0KPHA+QWRkZWQgdGhlIHVwbG9hZF90ZW1wbGF0ZSwgc3VtbWFyeV90ZW1wbGF0ZSwgYW5kIGRldGFpbF90ZW1wbGF0ZSAob3B0aW9uYWwpIHBhcmFtZXRlcjwvcD4NCjxwPkFkZGVkIHRoZSBub2F1dGhvciBwYXJhbWV0ZXIsIGFuZCB0aGUga2V5IHBhcmFtZXRlci4gIFRoZSBrZXkgcGFyYW1ldGVyIGFsbG93cyB0aGUgdXBsb2FkcyBtb2R1bGUgdG8gYmUgZW1iZWRkZWQgaW50byBvdGhlciBtb2R1bGVzPC9wPg0KPHA+TW92ZWQgdG8gdW5kZXIgdGhlIGNvbnRlbnQgbWVudSwgYW5kIGVudGl0bGVkICYjMDM5O0ZpbGVzIChVcGxvYWQgTW9kdWxlKSYjMDM5OzwvcD47DQo8L2xpPg0KPGxpPg0KPHA+VmVyc2lvbiAxLjIuMiAtIEp1bmUsIDIwMDYNCjxwPkFkZGVkIHRoZSBhYmlsaXR5IHRvIGhhdmUgbXVsdGlwbGUgZGF0YWJhc2UgdGVtcGxhdGVzLCBhbmQgdG8gc2VsZWN0IG9uZSBvbiB0aGUgdGFnIHdpdGggdGhlIHRlbXBsYXRlIHBhcmFtZXRlci48L3A+DQo8cD5GaXhlZCBhbiBpc3N1ZSB3aGVyZSBmaWxlcyB3ZXJlIGdldHRpbmcgY29ycnVwdGVkIG9uIGRvd25sb2FkPC9wPg0KPC9saT4NCjxsaT4NCjxwPlZlcnNpb24gMS4yLjMgLSBKdW5lLCAyMDA2DQo8cD5GaXhlcyB0byB1c2UgYWRvZGItbGl0ZSBwcm9wZXIsIHJhdGhlciB0aGFuIHRlZHMgaGFjazwvcD4NCjxwPkRldGFpbCBsaW5rIG5vdyBkaXNwbGF5cyBpbmxpbmU8L3A+DQo8cD5PdGhlciBtaW5vciB0d2Vha3MgdGhhdCBJIGNhbnQgcmVtZW1iZXI8L3A+DQo8L2xpPg0KPC91bD4nOwokbGFuZ1snZGF0ZSddID0gJ0RhdHVtJzsKJGxhbmdbJ2RhdGV1cGxvYWRlZCddID0gJ0RhdHVtIHVwcGxhZGRhZCc7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmRpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snZGVsZXRlJ10gPSAnVGEgYm9ydCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2tyaXZuaW5nJzsKJGxhbmdbJ2Rlc3RuYW1lJ10gPSAnTGFkZGEgdXBwIHNvbSc7CiRsYW5nWydkZXRhaWxfdGVtcGxhdGUnXSA9ICdEZXRhbGptYWxsJzsKJGxhbmdbJ2Rvd25sb2FkZWQnXSA9ICdGaWxlbiAlcyAmYXVtbDtyIG5lZGxhZGRhZC4nOwokbGFuZ1snZG93bmxvYWRzJ10gPSAnTmVkbGFkZG5pbmdhcic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZWRpdGNhdGVnb3J5J10gPSAnUmVkaWdlcmEga2F0ZWdvcmknOwokbGFuZ1snZWRpdHVwbG9hZCddID0gJ1JlZGlnZXJhIHVwcGxhZGRuaW5nJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRmVsISc7CiRsYW5nWydlcnJvcl9wYXRoaW51c2UnXSA9ICdFbiBrYXRlZ29yaSBtZWQgZGVuIHMmb3VtbDtrdiZhdW1sO2dlbiBmaW5ucyByZWRhbic7CiRsYW5nWydlcnJvcl9jYXRlZ29yeWV4aXN0cyddID0gJ0ZlbDogS2F0ZWdvcmluIGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX2NhdGVnb3J5bm90ZW1wdHknXSA9ICdGZWwhIEthbiBpbnRlIHRhIGJvcnQgZW4ga2F0ZWdvcmkgc29tIGludGUgJmF1bWw7ciB0b20nOwokbGFuZ1snZXJyb3JfY2F0ZWdvcnlub3Rmb3VuZCddID0gJ0ZlbDogS2F0ZWdvcmluIGhpdHRhcyBpbnRlISc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnRmVsOiBEYXRhYmFzZmVsISc7CiRsYW5nWydlcnJvcl9lbXB0eWNhdGVnb3J5J10gPSAnRmVsOiBUb20ga2F0ZWdvcmkhJzsKJGxhbmdbJ2Vycm9yX2VtcHR5cGF0aCddID0gJ0ZlbDogVG9tIHMmb3VtbDtrdiZhdW1sO2chJzsKJGxhbmdbJ2Vycm9yX2ZpbGVleGlzdHMnXSA9ICdGZWwhIEVuIGZpbCBtZWQgZGV0dGEgbmFtbmV0IGZpbm5zIHJlZGFuLic7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGZWwhIEZpbGVuICVzIGhpdHRhZGVzIGludGUuJzsKJGxhbmdbJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcyddID0gJ0ZlbDogT3RpbGxyJmF1bWw7Y2tsaWdhIHBhcmFtZXRyYXIgYW5naXZuYSBmJm91bWw7ciBtb2R1bGVuISc7CiRsYW5nWydlcnJvcl9pbnZhbGlkYXV0aG9yJ10gPSAnRmVsOiBGZWxha3RpZyAoZWxsZXIgdG9tKSBmJm91bWw7cmZhdHRhcmUuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjYXRlZ29yeSddID0gJ0ZlbDogRmVsYWt0aWcgKGVsbGVyIHRvbSkga2F0ZWdvcmkuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRkZXNjcmlwdGlvbiddID0gJ0ZlbDogRmVsYWt0aWcgKGVsbGVyIHRvbSkgYmVza3Jpdm5pbmcuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRmaWxlJ10gPSAnRmVsOiBGZWxha3RpZ3QgKGVsbGVyIHRvbXQpIGZpbG5hbW4uJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cGxvYWRmaWxlbmFtZSddID0gJ0ZlbDogRmlsZXIgbWVkIGRldCBuYW1uZXQgKHRyb2xpZ2VuIG1lZCBkZXQgZmlsdGlsbCZhdW1sO2dnZXQpICZhdW1sO3IgaW50ZSB0aWxsJmFyaW5nO3RuYS4nOwokbGFuZ1snZXJyb3JfaW52YWxpZHVwbG9hZGlkJ10gPSAnRmVsOiBPZ2lsdGlndCB1cHBsYWRkbmluZ3MtaWQnOwokbGFuZ1snZXJyb3Jfbm9maWxlcyddID0gJ0ZlbDogSW5nYSBtYXRjaGFuZGUgZmlsZXIhJzsKJGxhbmdbJ2ZpbGVzJ10gPSAnRmlsZXInOwokbGFuZ1snZml4bWUnXSA9ICdGaXhhIG1lbGxhbnNsYWcnOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnVXBwbGFkZG5pbmcnOwokbGFuZ1snaGVscCddID0gJzxoMz5WYWQgZyZvdW1sO3IgZGVuIGgmYXVtbDtyIG1vZHVsZW4/PC9oMz4NCjxwPkRldCAmYXVtbDtyIGVuIG1vZHVsIHNvbSBnJm91bWw7ciBkZXQgbSZvdW1sO2psaWd0IGF0dCBsYWRkYSB1cHAgb2NoIGxhZGRhIG5lciBmaWxlciB0aWxsIG9jaCBmciZhcmluZztuIGRpbiB3ZWJic2lkYS4gRGVuIGgmYXJpbmc7bGxlciByZWRhIHAmYXJpbmc7IHZlbSBzb20gbGFkZGFkZSB1cHAgZW4gZmlsIG9jaCB2ZW0gc29tIGhhciBsYWRkYXQgbmVyIGRlbi4NCkRlc3N1dG9tIGthbiBkdSBkZWxhIGluIGZpbGVyIGkga2F0ZWdvcmllciBvY2ggaGFudGVyYSBmaWxlcm5hIHNvbSAmYXVtbDtyIHVwcGxhZGRhZGUgcCZhcmluZzsgc2FtbWEgcyZhdW1sO3R0IHNvbSBhbGxhIGFkbWluaXN0cmF0Jm91bWw7cmVyIHNrYSBrdW5uYSBnJm91bWw7cmEuPC9wPiANCg0KPGgzPkh1ciBhbnYmYXVtbDtuZGVyIGphZyBtb2R1bGVuPzwvaDM+DQo8cD5GJm91bWw7ciBhdHQgYW52JmF1bWw7bmRhIGRlbiBoJmF1bWw7ciBtb2R1bGVuIC0gYWxsdHMmYXJpbmc7IGF0dCB0aWxsJmFyaW5nO3RhIGFudiZhdW1sO25kYXJlIGF0dCBsYWRkYSB1cHAgZmlsZXIgdGlsbCBkaW4gd2ViYnNpZGEgLSBtJmFyaW5nO3N0ZSBkdSBpbnN0YWxsZXJhIG1vZHVsZW4gb2NoIGQmYXVtbDtyZWZ0ZXIgc2thcGEgZW4gZWxsZXIgZmxlcmEga2F0ZWdvcmllci9tYXBwYXINCnNvbSBkZSB1cHBsYWRkYWRlIGZpbGVybmEga2FuIGwmYXVtbDtnZ2FzIGkgKGkgbW9kdWxpbnN0JmF1bWw7bGxuaW5nYXJuYSkuIEwmYXVtbDtnZyBzZWRhbiB0aWxsIGVuIHRhZ2cgcCZhcmluZzsgZW4gc2lkYSBlbGxlciBtYWxsIHVuZ2VmJmF1bWw7ciBzJmFyaW5nOyBoJmF1bWw7ciB7Y21zX21vZHVsZSBtb2R1bGU9JnF1b3Q7VXBsb2FkcyZxdW90OyBjYXRlZ29yeT0mcXVvdDtlbmthdGVnb3JpJnF1b3Q7IG1vZGU9JnF1b3Q7c3RpbCZxdW90O30uIA0KU3RpbGVuIHNrYSBkJmFyaW5nOyBtYXRjaGEgbiZhcmluZztnb24gYXYgc3RpbGFybmEgbmVkYW4uIFZhZCBzb20gc2tyaXZzIHV0IHNraWxqZXIgc2lnIGJlcm9lbmRlIHAmYXJpbmc7IHZpbGtlbiBzdGlsIGR1IHYmYXVtbDtsamVyLjwvcD4NCg0KPHA+RGVuIGgmYXVtbDtyIG1vZHVsZW4ga2FuIGFudiZhdW1sO25kYSBVc2VySUQtbW9kdWxlbiAodmFsZnJpdHQpIGYmb3VtbDtyIGF0dCBmJmFyaW5nOyBpbmZvcm1hdGlvbiBvbSBhbGxhIGlubG9nZ2FkZSBhbnYmYXVtbDtuZGFyZSBmJm91bWw7ciBhdHQgZGVsdmlzIGZ5bGxhIGkgZm9ybXVsJmF1bWw7cmV0IG4mYXVtbDtyIGZpbGVyIGxhZGRhcyB1cHA7PC9wPg0KDQo8aDM+UiZhdW1sO3R0aWdoZXRlcjwvaDM+DQo8dWw+DQo8bGk+PGVtPk1hbmFnZSBVcGxvYWRzPC9lbT4gLSBiZWgmb3VtbDt2cyBmJm91bWw7ciBhdHQgaGFudGVyYSBrYXRlZ29yaWVyIG9jaCBkZXNzIGZpbGVyLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBUZW1wbGF0ZXM8L2VtPiAtIGJlaCZvdW1sO3ZzIGYmb3VtbDtyIGF0dCAmYXVtbDtuZHJhIG4mYXJpbmc7Z29uIGF2IG1hbGxhcm5hLjwvbGk+DQo8bGk+PGVtPk1vZGlmeSBTaXRlIFByZWZlcmVuY2VzPC9lbT4gLSBiZWgmb3VtbDt2cyBmJm91bWw7ciBhdHQgZiZvdW1sO3IgYXR0ICZhdW1sO2RucmEgZmlsaW5zdCZhdW1sO2xsbmluZ2FyLjwvbGk+DQo8L3VsPg0KDQo8aDM+RXBvc3Q8L2gzPg0KPHA+RGVuIGgmYXVtbDtyIG1vZHVsZW4ga2FuIHNraWNrYSBlLXBvc3QgbiZhdW1sO3IgZW4gZmlsIGhhciBsYWRkYXRzIHVwcCAoc2UgdGFiYmVuIEluc3QmYXVtbDtsbG5pbmdhcikuIE1lbiBmJm91bWw7ciBhdHQgZyZvdW1sO3JhIGRldHRhIGtyJmF1bWw7dnMgYXR0IG1vZHVsZW4gPHN0cm9uZz5DTVNNYWlsZXI8L3N0cm9uZz4gaGFyIGluc3RhbGxlcmF0cyBvY2gga29uZmlndXJlcmF0cy4gRGV0dGEgJmF1bWw7ciA8ZW0+dmFsZnJpdHQ8L2VtPiBvY2ggb20gQ01TTWFpbGVyLW1vZHVsZW4gaW50ZSAmYXVtbDtyIGluc3RhbGxlcmFkIHZpc2FzIGluZ2VudGluZyBmJm91bWw7ciBhbnYmYXVtbDtuZGFyZW4sIGJhcmEgZXR0IGxvZ2dtZWRkZWxhbmRlIGtvbW1lciBhdHQgbCZhdW1sO2dnYXMgdGlsbCBhZG1pbi1sb2dnZW4uPC9wPg0KDQo8aDM+U3lzdGVtaW5zdCZhdW1sO2xsbmluZ2FyPC9oMz4NCjxwPjxzdHJvbmc+Tm90ZXJhOjwvc3Ryb25nPiBEZW4gaCZhdW1sO3IgbW9kdWxlbiBrb21tZXIgaW50ZSBydW50IGVsbGVyIGYmb3VtbDtyYmkgbiZhcmluZztncmEgZmlsc3Rvcmxla3NiZWdyJmF1bWw7bnNuaW5nYXIgaSBwaHAuIERlbiBmdW5nZXJhciB0aWxsc2FtbWFucyBtZWQgZGVtLiANCkQmYXVtbDtyZiZvdW1sO3IgbSZhcmluZztzdGUgZHUgZXZlbnR1ZWxsdCAmYXVtbDtuZHJhIGkgZGluIHBocC5pbmktZmlsIGYmb3VtbDtyIGF0dCB0aWxsJmFyaW5nO3RhIHVwcGxhZGRuaW5nIGF2IGZpbGVyIHMmYXJpbmc7IHN0b3JhIHNvbSBkdSBoYXIgc3QmYXVtbDtsbHQgaW4gaSBpbnN0JmF1bWw7bGxuaW5nYXJuYSBmJm91bWw7ciB1cHBsYWRkbmluZ3Ntb2R1bGVuLjwvcD4NCg0KPGgzPk5vdCBmJm91bWw7ciBBcGFjaGU8L2gzPg0KPHA+RiZvdW1sO3IgYXR0IHRpbGwmYXJpbmc7dGEgc3Qmb3VtbDtycmUgZmlsdXBwbGFkZG5pbmdhciBrYW4gZHUgYmVoJm91bWw7dmEgJmF1bWw7bmRyYSBwYXJhbWV0ZXJuIHVwbG9hZF9tYXhfZmlsZXNpemUgaSBkaW4gcGhwLmluaS1maWwuIERlc3N1dG9tLCBwYXJhbWV0ZXJuIExpbWl0UmVxdWVzdEJvZHkgaW4gZGluIEFwYWNoZS1rb25maWd1cmF0aW9uIGthbiBiZWgmb3VtbDt2YSAmYXVtbDtuZHJhcyBmJm91bWw7ciBhdHQgbWF0Y2hhIHBhcmFtZXRlcm4gdXBsb2FkX21heF9maWxlc2l6ZTwvcD4NCjxwPk5vdGVyYTogcGFyYW1ldGVybiB1cGxvYWRfbWF4X2ZpbGVzaXplIGthbiBzcGVjaWZpY2VyYXMgaSBieXRlcywga2lsb2J5dGVzIGVsbGVyIG1lZ2FieXRlcy4gUGFyYW1ldGVybmEgTGltaXRSZXF1ZXN0Qm9keSBkJmF1bWw7cmVtb3QsIGthbiBiYXJhIHNwZWNpZmljZXJhcyBpIGJ5dGVzPC9wPic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsdmVyc2lvbiAlcyBpbnN0YWxsZXJhZC4nOwokbGFuZ1snaXBfYWRkcmVzcyddID0gJ0lQLWFkZHJlc3MnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdFbiBtb2R1bCBzb20gbCZhcmluZzt0ZXIgYW52JmF1bWw7bmRhcmUgbGFkZGEgdXBwIGZpbGVyIG9jaCBsJmFyaW5nO3RlciBkaWcgaGFudGVyYSBkZW0uJzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1uJzsKJGxhbmdbJ3JlbmFtZW1lc3NhZ2UnXSA9ICcmQXVtbDtuZHJhIG5hbW5ldCBoJmF1bWw7ciBmJm91bWw7ciBhdHQgZyZvdW1sO3JhIGVuIG5hbW4mYXVtbDtuZHJpbmcnOwokbGFuZ1sncGF0aCddID0gJ1Mmb3VtbDtrdiZhdW1sO2cnOwokbGFuZ1sncGF0aG1lc3NhZ2UnXSA9ICcmQXVtbDtuZHJhIGthdGVnb3JpbiBoJmF1bWw7ciBmJm91bWw7ciBhdHQgZmx5dHRhIGZpbGVuIHRpbGwgZW4gYW5uYW4gbWFwcCc7CiRsYW5nWydwYXRoaW51cGxvYWRzJ10gPSAnKHJlbGF0aXYgdGlsbCB1cHBsYWRkbmluZ3NtYXBwZW4pJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTWVkZGVsYW5kZSBlZnRlciBpbnN0YWxsYXRpb24sIHQuZXguIEdsJm91bWw7bSBpbnRlIGF0dCBzdCZhdW1sO2xsYSBpbiByJmF1bWw7dHRpZ2hldGVyIGYmb3VtbDtyICZxdW90O01hbmFnZSBVcGxvYWRzJnF1b3Q7IGYmb3VtbDtyIGF0dCBhbnYmYXVtbDtuZGEgZGVuIGgmYXVtbDtyIG1vZHVsZW4hJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdNZWRkZWxhbmRlIGVmdGVyIGF2aW5zdGFsbGF0aW9uLCB0LmV4LiAmcXVvdDtTa2l0IG9ja3MmYXJpbmc7ISBCZXNlZ3JhZCBpZ2VuISZxdW90Oyc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0luc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGluc3QmYXVtbDtsbG5pbmdhciB1cHBkYXRlcmFkZS4nOwokbGFuZ1sncHJvbXB0X2NhdGVnb3J5ZGVzYyddID0gJ0Jlc2tyaXZuaW5nJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeWxpc3RhYmxlJ10gPSAnRmlsZXJuYSBpIGRlbiBoJmF1bWw7ciBtYXBwZW4ga2FuIGxpc3Rhcyc7CiRsYW5nWydwcm9tcHRfY2F0ZWdvcnluYW1lJ10gPSAnS2F0ZWdvcmluYW1uJzsKJGxhbmdbJ3Byb21wdF9jYXRlZ29yeXBhdGgnXSA9ICdTZXJ2ZXItcyZvdW1sO2t2JmF1bWw7Zyc7CiRsYW5nWydwcm9tcHRfZGVsZXRlZGlyZWN0b3J5J10gPSAnVGEgYm9ydCBrYXRlZ29yaW1hcHA/JzsKJGxhbmdbJ3Byb21wdF9tYXhfdXBsb2Fkc2l6ZSddID0gJ01heGltYWwgZmlsc3RvcmxlayB0aWxsJmFyaW5nO3RlbiAoS2IpJzsKJGxhbmdbJ3Byb21wdF92YWxpZF91cGxvYWRleHRlbnNpb25zJ10gPSAnVGlsbCZhcmluZzt0bmEgZmlsdGlsbCZhdW1sO2dnIGYmb3VtbDtyIHVwcGxhZGRhZGUgZmlsZXInOwokbGFuZ1snc2NhbiddID0gJ1NjYW5uYSc7CiRsYW5nWydzZWxlY3RjYXRlZ29yeSddID0gJ1YmYXVtbDtsaiBrYXRlZ29yaSc7CiRsYW5nWydzaXplJ10gPSAnU3Rvcmxlayc7CiRsYW5nWydzaXpla2InXSA9ICdTdG9ybGVrIChLYiknOwokbGFuZ1snc3VibWl0J10gPSAnTCZhdW1sO2dnIHRpbGwnOwokbGFuZ1snc3VtbWFyeV90ZW1wbGF0ZSddID0gJ1NhbW1hbmZhdHRuaW5nc21hbGwnOwokbGFuZ1snc3VtbWFyeSddID0gJ1NhbW1hbmZhdHRuaW5nJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnVXBwbGFkZG5pbmdzbW9kdWwnOwokbGFuZ1sndGl0bGVfbW9kX2FkbWluJ10gPSAnQWRtaW4tcGFuZWwgZiZvdW1sO3IgbW9kdWwnOwokbGFuZ1sndGl0bGVfbW9kX3ByZWZzJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FyIGYmb3VtbDtyIG1vZHVsJzsKJGxhbmdbJ3RpdGxlX3NpbmdfbG91ZGx5J10gPSAnU2p1bmcgaCZvdW1sO2d0Pyc7CiRsYW5nWyd0aXRsZV9zdWJuZXRfZXhjbHVzaW9ucyddID0gJ0V4a2x1ZGVyYSBzdWJuJmF1bWw7dCBmciZhcmluZztuIHN0YXRpc3Rpayc7CiRsYW5nWyd0aXRsZV92YWxpZF91cGxvYWRleHRlbnNpb25zJ10gPSAnVGlsbCZhcmluZzt0bmEgZmlsdGlsbCZhdW1sO2dnJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgYXZpbnN0YWxsZXJhZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCB1cHBncmFkZXJhZCB0aWxsIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0xhZGRhIHVwcCc7CiRsYW5nWyd1cGxvYWRlZCddID0gJ0ZpbGVuICVzICZhdW1sO3IgdXBwbGFkZGFkLic7CiRsYW5nWydyZXBsYWNlZCddID0gJ0ZpbGVuICVzIGVyc2F0dGVzIGF2ICVzLic7CiRsYW5nWydkZWxldGVkJ10gPSAnRmlsZW4gJXMgJmF1bWw7ciBib3J0dGFnZW4uJzsKJGxhbmdbJ3VwbG9hZGZvcm1fdGVtcGxhdGUnXSA9ICdVcHBsYWRkbmluZ3NtYWxsJzsKJGxhbmdbJ3VzZXJuYW1lJ10gPSAnQW52JmF1bWw7bmRhcm5hbW4nOwokbGFuZ1snd2FybmluZ19kZWxldGVjYXRlZ29yeSddID0gJ1ZBUk5JTkc6IFZhciBmJm91bWw7cnNpa3RpZyBuJmF1bWw7ciBkdSB0YXIgYm9ydCBrYXRlZ29yaWVyLiBGaWxlciBrYW4gZyZhcmluZztyIGYmb3VtbDtybG9yYWRlJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPlYmYXVtbDtsa29tbWVuIHRpbGwgYWRtaW4tc2VrdGlvbmVuIGYmb3VtbDtyIFVwcGxhZGRuaW5nc21vZHVsZW4uIEgmYXVtbDtyIHNrdWxsZSBkZXQgcyZhdW1sO2tlcnQgc3QmYXJpbmc7IG4mYXJpbmc7Z290IGFubmF0IG9tIG1vZHVsZW4gZmFrdGlza3QgZ2pvcmRlIG4mYXJpbmc7Z290LjwvcD4nOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTU3MTgzMTcxLjEuMS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9pbmRleC5waHB8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzYwMTU5NzA0LjExNTcxODMxNzEuMTE1NzIzNTY0My4xMTU3ODExMjQ3LjQnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokZGIgPSYgJHRoaXMtPkdldERiKCk7CgokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5ICgkZGIpOwoKLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiRmbGRzID0gInVwbG9hZF9pZCBJIEtFWSwKICAgICAgICAgICAgIHVwbG9hZF9jYXRlZ29yeV9pZCBJLAogICAgICAgICAgICAgdXBsb2FkX25hbWUgQygyNTUpLAogICAgICAgICAgICAgdXBsb2FkX2F1dGhvciBDKDI1NSksCiAgICAgICAgICAgICB1cGxvYWRfc3VtbWFyeSBDKDI1NSksIAogICAgICAgICAgICAgdXBsb2FkX2Rlc2NyaXB0aW9uIFgsCiAgICAgICAgICAgICB1cGxvYWRfaXAgQygyNTUpLAogICAgICAgICAgICAgdXBsb2FkX3NpemUgSSwKICAgICAgICAgICAgIHVwbG9hZF9kYXRlICIuQ01TX0FET0RCX0RULiIsCiAgICAgICAgICAgICB1cGxvYWRfa2V5ICBDKDI1NSkKCSAgICAiOwoKLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgokdGFib3B0YXJyYXkgPSBhcnJheSAoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMIChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzIiwKCQkJCSAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5ICgkc3FsYXJyYXkpOwogICAgCi8vIGEgdGFibGUgZm9yIGRvd25sb2FkcwokZmxkcyA9ICJkb3dubG9hZF9pZCBJIEtFWSwKIAkgICAgIGZpbGVfaWQgICAgIEksIAoJICAgICBkb3dubG9hZF9kYXRlICIuQ01TX0FET0RCX0RULiIsCiAgICAgICAgICAgICBkb3dubG9hZF9pcCAgIEMoMjU1KSwKICAgICAgICAgICAgIGRvd25sb2FkX3VzZXIgQygyNTUpCgkgICAgIjsKCi8vIGNyZWF0ZSBpdC4gVGhpcyBzaG91bGQgZG8gZXJyb3IgY2hlY2tpbmcsIGJ1dCBJJ20gYSBsYXp5IHNvZC4KJHRhYm9wdGFycmF5ID0gYXJyYXkgKCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRzcWxhcnJheSA9CiAgJGRpY3QtPkNyZWF0ZVRhYmxlU1FMIChjbXNfZGJfcHJlZml4ICgpLiJtb2R1bGVfdXBsb2Fkc19kb3dubG9hZHMiLAoJCQkgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkgKCRzcWxhcnJheSk7CgovLyBhIHRhYmxlIGZvciBjYXRlZ29yaWVzCiRmbGRzID0gInVwbG9hZF9jYXRlZ29yeV9pZCBJIEtFWSwKCSAgICAgdXBsb2FkX2NhdGVnb3J5X25hbWUgQygyNTUpLAoJICAgICB1cGxvYWRfY2F0ZWdvcnlfZGVzY3JpcHRpb24gWCwKICAgICAgICAgICAgIHVwbG9hZF9jYXRlZ29yeV9wYXRoIEMoMjU1KSwKCSAgICAgdXBsb2FkX2NhdGVnb3J5X2xpc3RhYmxlIEkKCSAgICAiOwoKLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgokdGFib3B0YXJyYXkgPSBhcnJheSAoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0KICAkZGljdC0+Q3JlYXRlVGFibGVTUUwgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMiLAoJCQkgJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkgKCRzcWxhcnJheSk7CgovLyBhIHRhYmxlIGZvciBmaWxlIHR5cGVzCiRmbGRzID0gImlkIEksCiAgICAgICAgICAgICBzb3J0b3JkZXIgSSwKICAgICAgICAgICAgIG5hbWUgIEMoMjU1KSwKICAgICAgICAgICAgIGRlc2NyaXB0aW9uIFgsCiAgICAgICAgICAgICBleHRlbnNpb25zIEMoMjU1KSwKICAgICAgICAgICAgIGltYWdlIEMoMjU1KQogICAgICAgICAgICAiOwokdGFib3B0YXJyYXkgPSBhcnJheSAoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKJHNxbGFycmF5ID0KICAkZGljdC0+Q3JlYXRlVGFibGVTUUwgKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzIiwKCQkJICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5ICgkc3FsYXJyYXkpOwoKLy8gY3JlYXRlIGEgc2VxdWVuY2UKJGRiLT5DcmVhdGVTZXF1ZW5jZSAoY21zX2RiX3ByZWZpeCAoKS4ibW9kdWxlX3VwbG9hZHNfc2VxIik7CiAgICAKLy8gYW5kIGFub3RoZXIgb25lCiRkYi0+Q3JlYXRlU2VxdWVuY2UgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXNfc2VxIik7CgovLyBhbmQgYSB0aGlyZCBvbmUKJGRiLT5DcmVhdGVTZXF1ZW5jZSAoY21zX2RiX3ByZWZpeCAoKS4ibW9kdWxlX3VwbG9hZHNfZG93bmxvYWRzX3NlcSIpOwoKLy8gYW5kIGEgZm91cnRoCiRkYi0+Q3JlYXRlU2VxdWVuY2UgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX2ZpbGV0eXBlc19zZXEiKTsKCi8vIGNyZWF0ZSBhIHBlcm1pc3Npb24KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24gKCdNYW5hZ2UgVXBsb2FkcycsICdNYW5hZ2UgVXBsb2FkcycpOwoKLy8gY3JlYXRlIGEgcHJlZmVyZW5jZQokdGhpcy0+U2V0UHJlZmVyZW5jZSAoIm1heF91cGxvYWRzaXplIiwgMTAwMDAwMCk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgidmFsaWRfdXBsb2FkZXh0ZW5zaW9ucyIsCgkJICAgICAgInBuZyxnaWYsanBnLEpQRUcsYm1wLHdtZix3bWEsd212LG1wZyx6aXAsdGFyLGd6LGJ6MixtcDMsd2F2LGF1LG9nZyx4bWwscGRmIik7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgic3VibmV0X2V4Y2x1c2lvbnMiLCAiIiApOwokdGhpcy0+U2V0UHJlZmVyZW5jZSAoJ2NyZWF0ZV9kdW1teV9pbmRleF9odG1sJywgMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgnc2VuZF91cGxvYWRfbm90aWZpY2F0aW9uc190bycsJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSAoJ3JlcXVpcmVmaWxlbmFtZV9leHRlbnNpb25zJywxKTsKJHRoaXMtPlNldFByZWZlcmVuY2UgKCd1c2VydGFnX29udXBsb2FkJywnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlICgnYXV0b3RodW1ibmFpbF9leHRlbnNpb25zJywnZ2lmLGpwZyxqcGVnLGJtcCxwbmcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UgKCdhdXRvdGh1bWJuYWlsX3NpemUnLDgwKTsKCiRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuCiAgJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nb3JpZ191cGxvYWRmb3JtX3RlbXBsYXRlLnRwbCc7CmlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQogIHsKICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VwbG9hZGZvcm1fc3lzZGVmYXVsdCcsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgndXBsb2FkZm9ybV9kZWZhdWx0JywkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfdXBsb2FkZm9ybScsJ2RlZmF1bHQnKTsKICB9CgokZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLgogICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfc3VtbWFyeXJwdF90ZW1wbGF0ZS50cGwnOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKICB7CiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzdW1tYXJ5cnB0X3N5c2RlZmF1bHQnLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3N1bW1hcnlycHRfZGVmYXVsdCcsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N1bW1hcnlycHQnLCdkZWZhdWx0Jyk7CiAgfQoKJGZuID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4KICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX2RldGFpbHJwdF90ZW1wbGF0ZS50cGwnOwppZiggZmlsZV9leGlzdHMoICRmbiApICkKICB7CiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZXRhaWxycHRfc3lzZGVmYXVsdCcsJHRlbXBsYXRlKTsKICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZGV0YWlscnB0X2RlZmF1bHQnLCR0ZW1wbGF0ZSk7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9kZXRhaWxycHQnLCdkZWZhdWx0Jyk7CiAgfQoKLy8gdGVtcGxhdGUgdXNlZCBmb3IgZW1haWwgbm90aWZpY2F0aW9ucwokdGhpcy0+U2V0VGVtcGxhdGUoICd1cGxvYWRfZW1haWx0ZW1wbGF0ZScsICR0aGlzLT5kZmx0X2VtYWlsbm90aWZ5dGVtcGxhdGUgKTsKCi8vIEV2ZW50IGhhbmRsZXJzCiR0aGlzLT5DcmVhdGVFdmVudCggIk9uVXBsb2FkIiApOwokdGhpcy0+Q3JlYXRlRXZlbnQoICJPblJlbW92ZSIgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAiT25Eb3dubG9hZCIgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAiT25DcmVhdGVDYXRlZ29yeSIgKTsKJHRoaXMtPkNyZWF0ZUV2ZW50KCAiT25EZWxldGVDYXRlZ29yeSIgKTsKCi8vIERlZmF1bHQgZmlsZSB0eXBlcwokdGhpcy0+X0luc2VydERlZmF1bHRGaWxlVHlwZXMoKTsKCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQgKDAsICR0aGlzLT5MYW5nICgnZnJpZW5kbHluYW1lJyksCgkgICAgICAkdGhpcy0+TGFuZyAoJ2luc3RhbGxlZCcsICR0aGlzLT5HZXRWZXJzaW9uICgpKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwoKICAgIC8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkgKCRkYik7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMIChjbXNfZGJfcHJlZml4ICgpLiJtb2R1bGVfdXBsb2FkcyIpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSAoJHNxbGFycmF5KTsKCiAgICAvLyByZW1vdmUgdGhlIHNlcXVlbmNlCiAgICAkZGItPkRyb3BTZXF1ZW5jZSAoY21zX2RiX3ByZWZpeCAoKS4ibW9kdWxlX3VwbG9hZHNfc2VxIik7CgogICAgLy8gcmVtb3ZlIHRoZSBjYXRlZ29yeSB0YWJsZQogICAgJHNxbGFycmF5ID0KICAgICAgJGRpY3QtPkRyb3BUYWJsZVNRTCAoY21zX2RiX3ByZWZpeCAoKS4ibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyIpOwoKICAgIC8vIHJlbW92ZSBpdCdzIHNlcXVlbmNlCiAgICAkZGItPkRyb3BTZXF1ZW5jZSAoY21zX2RiX3ByZWZpeCAoKS4ibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllc19zZXEiKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkgKCRzcWxhcnJheSk7CgogICAgLy8gcmVtb3ZlIHRoZSBkb3dubG9hZHMgdGFibGUKICAgICRzcWxhcnJheSA9CiAgICAgICRkaWN0LT5Ecm9wVGFibGVTUUwgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX2Rvd25sb2FkcyIpOwoKICAgIC8vIGFuZCBpdCdzIHNlcXVlbmNlCiAgICAkZGItPkRyb3BTZXF1ZW5jZSAoY21zX2RiX3ByZWZpeCAoKS4ibW9kdWxlX3VwbG9hZHNfZG93bmxvYWRzX3NlcSIpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSAoJHNxbGFycmF5KTsKCiAgICAvLyByZW1vdmUgdGhlIGZpbGV0eXBlcyB0YWJsZQogICAgJHNxbGFycmF5ID0KICAgICAgJGRpY3QtPkRyb3BUYWJsZVNRTCAoY21zX2RiX3ByZWZpeCAoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzIik7CgogICAgLy8gYW5kIGl0J3Mgc2VxdWVuY2UKICAgICRkYi0+RHJvcFNlcXVlbmNlIChjbXNfZGJfcHJlZml4ICgpLiJtb2R1bGVfdXBsb2Fkc19maWxldHlwZXNfc2VxIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5ICgkc3FsYXJyYXkpOwoKICAgIC8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKICAgICR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKTsKCiAgICAvLyByZW1vdmUgYWxsIG9mIHRoZSB0aGUgcHJlZmVyZW5jZXMgZm9yIHRoaXMgbW9kdWxlCiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSAoKTsKCiAgICAvLyByZW1vdmUgdGVtcGxhdGVzCiAgICAkdGVtcGxhdGVzID0gJHRoaXMtPkxpc3RUZW1wbGF0ZXMoKTsKICAgIGZvcmVhY2goICR0ZW1wbGF0ZXMgYXMgJHRwbCApCiAgICAgIHsKCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgkdHBsKTsKICAgICAgfQoKICAgIC8vIHJlbW92ZSBldmVudHMKICAgICR0aGlzLT5SZW1vdmVFdmVudCgiT25VcGxvYWQiICk7CiAgICAkdGhpcy0+UmVtb3ZlRXZlbnQoIk9uUmVtb3ZlIiApOwogICAgJHRoaXMtPlJlbW92ZUV2ZW50KCJPbkRvd25sb2FkIiApOwogICAgJHRoaXMtPlJlbW92ZUV2ZW50KCJPbkNyZWF0ZUNhdGVnb3J5IiApOwogICAgJHRoaXMtPlJlbW92ZUV2ZW50KCJPbkRlbGV0ZUNhdGVnb3J5IiApOwoKICAgIC8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwogICAgJHRoaXMtPkF1ZGl0ICgwLCAkdGhpcy0+TGFuZyAoJ2ZyaWVuZGx5bmFtZScpLAoJCSAgJHRoaXMtPkxhbmcgKCd1bmluc3RhbGxlZCcpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDoJLy93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwogICAgc3dpdGNoKCAkb2xkdmVyc2lvbiApCiAgICAgIHsKICAgICAgY2FzZSAiMS4xLjAiOgogICAgICBjYXNlICIxLjEuMSI6CiAgICAgIGNhc2UgIjEuMS4yIjoKICAgICAgY2FzZSAiMS4xLjMiOgogICAgICBjYXNlICIxLjEuNCI6CiAgICAgIGNhc2UgIjEuMS41IjoKICAgICAgY2FzZSAiMS4xLjYiOgoJJHRoaXMtPlNldFByZWZlcmVuY2UgKCdzZW5kX3VwbG9hZF9ub3RpZmljYXRpb25zX3RvJywnJyk7CgkkdGhpcy0+U2V0VGVtcGxhdGUoICd1cGxvYWRfZW1haWx0ZW1wbGF0ZScsICR0aGlzLT5kZmx0X2VtYWlsbm90aWZ5dGVtcGxhdGUgKTsKCXJldHVybjsKICAgICAgfQoKICAgIHN3aXRjaCAoJG9sZHZlcnNpb24pCiAgICB7CiAgICBjYXNlICIxLjAiOgogICAgY2FzZSAiMS4wLjEiOgogICAgY2FzZSAiMS4wLjIiOgogICAgY2FzZSAiMS4wLjMiOgogICAgY2FzZSAiMS4wLjQiOgogICAgY2FzZSAiMS4wLjUiOgogICAgICB7CgkvLyB0aGVzZSB2ZXJzaW9ucyBkaWRuJ3QgaGF2ZSBhIHN1bW1hcnkgZmllbGQKCS8vIHNvIHdlIGNvbnZlcnQgdGhlIHNjaGVtYSBvZiB0aGUgdXBsb2FkcyB0YWJsZSB0byBoYXZlIGEgc3VtbWFyeSBmaWVsZAoJLy8gYW5kIGNvcHkgdGhlIG9sZCBkZXNjcmlwdGlvbiBpbnRvIHRoZSBuZXcgc3VtbWFyeSBmaWVsZC4KCSR0aGlzLT5fZml4VG9BZGp1c3RUYWJsZVN0cnVjdHVyZTEoKTsKICAgICAgfQogICAgY2FzZSAiMS4wLjYiOgogICAgICB7CgkvLyB0aGlzIG1vZHVsZSB3YXMgdmVyeSB2ZXJ5IG1lc3NlZCB1cC4KCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgY2FzZSAiMS4wLjciOgogICAgY2FzZSAiMS4wLjgiOgogICAgY2FzZSAiMS4wLjkiOgogICAgICB7CgkvLyB0aGVzZSB2ZXJzaW9ucyBoYWQgYSBzdW1tYXJ5IGZpZWxkIGJ1dCBpdCAibWF5IiBoYXZlIGJlZW4gcGxhY2VkIGFzCgkvLyB0aGUgbGFzdCBjb2x1bW4gZHVlIHRvIHVwZ3JhZGluZyBmcm9tIDEuMC42IG9yIGVhcmxpZXIKCS8vIHRoaXMgd2lsbCByZS1jcmVhdGUgdGhlIHRhYmxlIHRvIGVuc3VyZSB0aGF0IHRoZSBkYXRhIHdpbGwgYmUgaW4KCS8vIHRoZSBjb3JyZWN0IG9yZGVyLgoJJHRoaXMtPl9maXhUb0FkanVzdFRhYmxlU3RydWN0dXJlMigpOwogICAgICB9CgogICAgY2FzZSAiMS4xLjEwIjoKICAgIGNhc2UgIjEuMS4xMSI6CiAgICBjYXNlICIxLjEuMTIiOgogICAgY2FzZSAiMS4xLjEzIjoKICAgICAgewoJJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZXJ0YWdfb251cGxvYWQnLCcnKTsKICAgICAgfQoKICAgIGNhc2UgIjEuMi4wIjoKICAgICAgewoJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3VzZXJ0YWdfb25sdXBsb2FkJyk7CgkkdGhpcy0+Q3JlYXRlRXZlbnQoICJPblVwbG9hZCIgKTsKCSR0aGlzLT5DcmVhdGVFdmVudCggIk9uUmVtb3ZlIiApOwoJJHRoaXMtPkNyZWF0ZUV2ZW50KCAiT25Eb3dubG9hZCIgKTsKCSR0aGlzLT5DcmVhdGVFdmVudCggIk9uQ3JlYXRlQ2F0ZWdvcnkiICk7CgkkdGhpcy0+Q3JlYXRlRXZlbnQoICJPbkRlbGV0ZUNhdGVnb3J5IiApOwogICAgICB9CiAgICBjYXNlICcxLjIuMSc6CiAgICAgIHsKCSRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyIsCgkJCQkJInVwbG9hZF9rZXkgQygyNTUpIik7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKICAgICAgfQogICAgY2FzZSAnMS4yLjInOgogICAgICB7CgkkdG1wbCA9ICR0aGlzLT5HZXRUZW1wbGF0ZSgndXBsb2FkX3VwbG9hZGZvcm0nKTsKCSR0aGlzLT5EZWxldGVUZW1wbGF0ZSgndXBsb2FkX3VwbG9hZGZvcm0nKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgndXBsb2FkZm9ybV9kZWZhdWx0JywkdG1wbCk7CgoJJHRtcGwgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJ3VwbG9hZF9kaXNwbGF5c3VtbWFyeScpOwoJJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCd1cGxvYWRfZGlzcGxheXN1bW1hcnknKTsKCSR0aGlzLT5TZXRUZW1wbGF0ZSgnc3VtbWFyeXJwdF9kZWZhdWx0JywkdG1wbCk7CgoJJHRtcGwgPSAkdGhpcy0+R2V0VGVtcGxhdGUoJ3VwbG9hZF9kaXNwbGF5ZGV0YWlsJyk7CgkkdGhpcy0+RGVsZXRlVGVtcGxhdGUoJ3VwbG9hZF9kaXNwbGF5ZGV0YWlsJyk7CgkkdGhpcy0+U2V0VGVtcGxhdGUoJ2RldGFpbHJwdF9kZWZhdWx0JywkdG1wbCk7CiAgICAgIH0KICAgIGNhc2UgJzEuMi4zJzoKICAgICAgewoJLy8gYSB0YWJsZSBmb3IgZmlsZSB0eXBlcwoJJGZsZHMgPSAiaWQgSSwKICAgICAgICAgICAgIHNvcnRvcmRlciBJLAogICAgICAgICAgICAgbmFtZSAgQygyNTUpLAogICAgICAgICAgICAgZGVzY3JpcHRpb24gWCwKICAgICAgICAgICAgIGV4dGVuc2lvbnMgQygyNTUpLAogICAgICAgICAgICAgaW1hZ2UgQygyNTUpCiAgICAgICAgICAgICI7CgkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5ICgkZGIpOwoJJHNxbGFycmF5ID0KCSAgJGRpY3QtPkNyZWF0ZVRhYmxlU1FMIChjbXNfZGJfcHJlZml4ICgpLiJtb2R1bGVfdXBsb2Fkc19maWxldHlwZXMiLAoJCQkJICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSAoJHNxbGFycmF5KTsKCSRkYi0+Q3JlYXRlU2VxdWVuY2UgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX2ZpbGV0eXBlc19zZXEiKTsKCgkvLyBhbmQgc29tZSBpbml0aWFsIGRhdGEKICAgICAgICAkdGhpcy0+X0luc2VydERlZmF1bHRGaWxlVHlwZXMoKTsKCgkkZm4gPSBkaXJuYW1lKF9fRklMRV9fKS5ESVJFQ1RPUllfU0VQQVJBVE9SLgoJICAndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX3VwbG9hZGZvcm1fdGVtcGxhdGUudHBsJzsKCWlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJICB7CgkgICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VwbG9hZGZvcm1fc3lzZGVmYXVsdCcsJHRlbXBsYXRlKTsKCSAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3VwbG9hZGZvcm1fZGVmYXVsdCcsJHRlbXBsYXRlKTsKCSAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF91cGxvYWRmb3JtJywnZGVmYXVsdCcpOwoJICB9CgkKCSRmbiA9IGRpcm5hbWUoX19GSUxFX18pLkRJUkVDVE9SWV9TRVBBUkFUT1IuCgkgICd0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfc3VtbWFyeXJwdF90ZW1wbGF0ZS50cGwnOwoJaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgkgIHsKCSAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKCSAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc3VtbWFyeXJwdF9zeXNkZWZhdWx0JywkdGVtcGxhdGUpOwoJICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnc3VtbWFyeXJwdF9kZWZhdWx0JywkdGVtcGxhdGUpOwoJICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N1bW1hcnlycHQnLCdkZWZhdWx0Jyk7CgkgIH0KCQoJJGZuID0gZGlybmFtZShfX0ZJTEVfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4KCSAgJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nb3JpZ19kZXRhaWxycHRfdGVtcGxhdGUudHBsJzsKCWlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJICB7CgkgICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CgkgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RldGFpbHJwdF9zeXNkZWZhdWx0JywkdGVtcGxhdGUpOwoJICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZGV0YWlscnB0X2RlZmF1bHQnLCR0ZW1wbGF0ZSk7CgkgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfZGV0YWlscnB0JywnZGVmYXVsdCcpOwoJICB9CgoJJHRoaXMtPlNldFByZWZlcmVuY2UgKCdhdXRvdGh1bWJuYWlsX2V4dGVuc2lvbnMnLAoJCQkgICAgICAnZ2lmLGpwZyxqcGVnLGJtcCxwbmcnKTsKCSR0aGlzLT5TZXRQcmVmZXJlbmNlICgnYXV0b3RodW1ibmFpbF9zaXplJyw4MCk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBhbnl0aGluZyBwYXN0IGhlcmUgc2hvdWxkIGJlIGZpbmUuCiAgICByZXR1cm47Cj8+]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/addcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0aXRsZX0Ke2lmICRtZXNzYWdlICE9ICcnfQogIHtpZiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Ke2Vsc2V9Cnskc3RhcnRmb3JtfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2NhdGVnb3J5bmFtZX08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2NhdGVnb3J5bmFtZX08YnIvPnskaW5mb19jYXRlZ29yeW5hbWV9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2NhdGVnb3J5ZGVzY308L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2NhdGVnb3J5ZGVzY308YnIvPnskaW5mb19jYXRlZ29yeWRlc2N9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2NhdGVnb3J5cGF0aH08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2NhdGVnb3J5cGF0aH08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGluZm9fY2F0ZWdvcnlwYXRofTxici8+eyRwYXRobWVzc2FnZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfY2F0ZWdvcnlsaXN0YWJsZX08L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2NhdGVnb3J5bGlzdGFibGV9PGJyLz57JGluZm9fY2F0ZWdvcnlsaXN0YWJsZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59eyRzY2FufXskc3VibWl0fXskY2FuY2VsfTwvcD4KICA8L2Rpdj4KeyRlbmRmb3JtfQp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/addfiletype.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfbmFtZX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9uYW1lfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9kZXNjcmlwdGlvbn06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9kZXNjcmlwdGlvbn08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZXh0ZW5zaW9uc306PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9leHRlbnNpb25zfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pY29ufTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2ljb259PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KICA8L2Rpdj4KeyRlbmRmb3JtfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/adminpanel.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfc2VjdGlvbn08L2gzPgo8cD57JGFkbWluX25hdn08L3A+Cnskd2VsY29tZV90ZXh0fQ==]]></data>
	</file>
	<file>
	  <filename>/templates/adminprefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9Cnskc3RhcnRmb3JtfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbWF4X3VwbG9hZHNpemV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X21heF91cGxvYWRzaXplfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdmFsaWRfdXBsb2FkZXh0ZW5zaW9uc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdmFsaWRfdXBsb2FkZXh0ZW5zaW9uc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym5ldF9leGNsdXNpb25zfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJuZXRfZXhjbHVzaW9uc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2R1bW15X2luZGV4X2h0bWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2R1bW15X2luZGV4X2h0bWx9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9lbmZvcmNlZXh0ZW5zaW9uc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZW5mb3JjZWV4dGVuc2lvbnN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9lbWFpbF9vbl91cGxvYWR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VtYWlsX29uX3VwbG9hZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlZGlyZWN0X29uX3VwbG9hZH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVkaXJlY3Rfb25fdXBsb2FkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdXNlcnRhZ19vbnVwbG9hZH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXNlcnRhZ19vbnVwbG9hZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2F1dG90aHVtYm5haWxfZXh0ZW5zaW9uc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfYXV0b3RodW1ibmFpbF9leHRlbnNpb25zfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfYXV0b3RodW1ibmFpbF9zaXplfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hdXRvdGh1bWJuYWlsX3NpemV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/brieflist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQ0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4NCgk8dGhlYWQ+DQoJCTx0cj4NCgkJCTx0aD57JG5hbWV0ZXh0fTwvdGg+DQoJCQk8dGg+eyRhdXRob3J0ZXh0fTwvdGg+DQoJCSAgICAgICAgPHRoPnskZGF0ZXRleHR9PC90aD4NCgkJCTx0aD57JHNpemV0ZXh0fTwvdGg+CQ0KCQk8L3RyPg0KCTwvdGhlYWQ+DQoJPHRib2R5Pg0KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9Ij4NCgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS0+YXV0aG9yfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS0+ZGF0ZX08L3RkPg0KCQkJPHRkPnskZW50cnktPnNpemV9PC90ZD4NCgkJPC90cj4NCgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPg0KICAgICAgICAgICAgICAgCQk8dGQgY29sc3Bhbj0iNCI+eyRlbnRyeS0+ZGVzY3JpcHRpb259PC90ZD4gDQoJCTwvdHI+DQoJey9mb3JlYWNofQ0KCTwvdGJvZHk+DQo8L3RhYmxlPg0Key9pZn0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRpdGVtY291bnR9IENhdGVnb3JpZXMgRm91bmQ8L3A+PC9kaXY+DQp7aWYgJGl0ZW1jb3VudCA+IDB9DQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPg0KCTx0aGVhZD4NCgkJPHRyPg0KCQkJPHRoIHdpZHRoPSIxNSUiPnskY2F0ZWdvcnl0ZXh0fTwvdGg+DQoJCQk8dGg+eyRuYW1ldGV4dH08L3RoPg0KCQkJPHRoPnskcGF0aHRleHR9PC90aD4NCgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KCQk8L3RyPg0KCTwvdGhlYWQ+DQoJPHRib2R5Pg0Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0NCgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPg0KCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPg0KCQkJPHRkPnskZW50cnktPnBhdGh9PC90ZD4NCgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPg0KCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4NCgkJPC90cj4NCgkJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPiANCgkJCTx0ZD4mbmJzcDs8L3RkPg0KCQkJPHRkIGNvbHNwYW49IjQiPnskZW50cnktPmRlc2NyaXB0aW9ufTwvdGQ+DQoJCTwvdHI+DQoJIA0Key9mb3JlYWNofQ0KCTwvdGJvZHk+DQo8L3RhYmxlPg0Key9pZn0NCjxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIj48cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskYWRkbGlua308L3A+PC9kaXY+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/deletecategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8cD57JHdhcm5pbmdfZGVsZXRlY2F0ZWdvcnl9PC9wPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2RlbGV0ZWRpcmVjdG9yeX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZGVsZXRlZGlyZWN0b3J5fTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH08L3A+Cgk8L2Rpdj4KeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/editdefaulttemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19Cgk8aDQ+eyRkZWZhdWx0dGVtcGxhdGVmb3JtX3RpdGxlfTwvaDQ+CiAgICAgICAgPGVtPnskaW5mb190aXRsZX08L2VtPjxici8+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RlbXBsYXRlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JHJlc2V0fTwvcD4KCTwvZGl2Pgp7JGVuZGZvcm19Cjxici8+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPGgzPnskdGl0bGV9PC9oMz4KPC9kaXY+CnskZm9ybXN0YXJ0fXskaGlkZGVufQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGVtcGxhdGVuYW1lfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0ZW1wbGF0ZW5hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3RlbXBsYXRlfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JHRlbXBsYXRlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JHN1Ym1pdH17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGZvcm1lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aCB3aWR0aD0iNzUlIj57JG5hbWVwcm9tcHR9PC90aD4KICAgICAgPHRoPnskZGVmYXVsdHByb21wdH08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICA8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSI+CiAgICAgPHRkPnskZW50cnktPm5hbWV9PC90ZD4KICAgICA8dGQ+eyRlbnRyeS0+ZGVmYXVsdH08L3RkPgogICAgIDx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgogICAgIDx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CiAgIDwvdHI+CnsvZm9yZWFjaH0KPC90YWJsZT4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JG5ld3RlbXBsYXRlbGlua308L3A+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/editupload.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyR0aXRsZX0Ke2lmICRtZXNzYWdlICE9ICcnfQogIHtpZiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Ke2Vsc2V9Cnskc3RhcnRmb3JtfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3VwbG9hZG5hbWV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXBsb2FkbmFtZX0mbmJzcDt7JGZpeH17JG5hbWVtZXNzYWdlfTwvcD4KICA8L2Rpdj4KICB7aWYgJHBpY190aHVtYm5haWx9CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdGh1bWJuYWlsfTwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcGljX3RodW1ibmFpbH08L3A+CiAgPC9kaXY+CiAgey9pZn0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9tb3ZlY2F0ZWdvcnl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbW92ZWNhdGVnb3J5fSZuYnNwO3skcGF0aG1lc3NhZ2V9PC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X3VwbG9hZHNpemV9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZGF0YV91cGxvYWRzaXplfTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF91cGxvYWRkYXRlfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGRhdGFfdXBsb2FkZGF0ZX08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdXBsb2FkYXV0aG9yfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VwbG9hZGF1dGhvcn08L3A+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdXBsb2Fkc3VtbWFyeX06PC9wPgogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF91cGxvYWRzdW1tYXJ5fTwvcD4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF91cGxvYWRkZXNjfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VwbG9hZGRlc2N9PC9wPgogIDwvZGl2PgogIHtpZiAkaXRlbWNvdW50ID4gMH0KICAgIDxici8+CiAgICA8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogICAgICA8dGhlYWQ+CiAgICAgICAgPHRyPgoJICA8dGg+eyRkYXRldGV4dH08L3RoPgogICAgICAgICAgPHRoPnskaXB0ZXh0fTwvdGg+CgkgIDx0aD57JHVzZXJ0ZXh0fTwvdGg+CiAgICAgICAgPC90cj4KICAgICAgPC90aGVhZD4KICAgICAgPHRib2R5PgogICAgICB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgoJICA8dGQ+eyRlbnRyeS0+ZGF0ZX08L3RkPgoJICA8dGQ+eyRlbnRyeS0+aXB9PC90ZD4KCSAgPHRkPnskZW50cnktPnVzZXJ9PC90ZD4KCTwvdHI+CiAgICAgIHsvZm9yZWFjaH0KICAgICAgPC90Ym9keT4KICAgIDwvdGFibGU+CiAgey9pZn0KICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhpZGRlbn17JHN1Ym1pdH17JGNhbmNlbH08L3A+CiAgPC9kaXY+CnskZW5kZm9ybX0Key9pZn0K]]></data>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfZXJyb3J9PC9oMz4KPHA+eyRhZG1pbl9uYXZ9PC9wPgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0Ke2lmICRsaW5rIT0nJ308cD57JGxpbmt9PC9wPnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/expandedlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19DQo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRjYXRlZ29yeX08L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY2F0ZWdvcnl9eyRpbnB1dF9zZWxlY3R9eyRpbnB1dF9oaWRkZW59PC9wPg0KPC9kaXY+DQp7JGVuZGZvcm19DQp7aWYgJGl0ZW1jb3VudCA+IDB9DQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPg0KCTx0aGVhZD4NCgkJPHRyPg0KCQkJPHRoPnskdGl0bGV0ZXh0fTwvdGg+DQoJCQk8dGg+eyRwb3N0ZGF0ZXRleHR9PC90aD4NCgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQoJCQk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KCQk8L3RyPg0KCTwvdGhlYWQ+DQoJPHRib2R5Pg0KCXtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9DQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+DQoJCQk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4NCgkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS0+YXV0aG9yfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS0+aXB9PC90ZD4NCgkJCTx0ZD57JGVudHJ5LT5kYXRlfTwvdGQ+DQoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPg0KCQk8L3RyPg0KCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPg0KCSAgICAgICAgCTx0ZD4mbmJzcDs8L3RkPg0KICAgICAgICAgICAgICAgCQk8dGQgY29sc3Bhbj0iNSI+eyRlbnRyeS0+ZGVzY3JpcHRpb259PC90ZD4gDQoJCTwvdHI+DQoJey9mb3JlYWNofQ0KCTwvdGJvZHk+DQo8L3RhYmxlPg0Ke2Vsc2V9DQo8L2JyPg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+Tm8gRmlsZXMgRGV0ZWN0ZWQ8L3A+DQo8L2Rpdj4NCnsvaWZ9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/filetypes.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRpdGVtY291bnQgPiAwfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgICA8dGggd2lkdGg9IjQlIj4mbmJzcDs8L3RoPgoJPHRoPnskbmFtZXRleHR9PC90aD4KCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+Cgk8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgoJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CiAgICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgogICAgICAgIDx0ZD57JGVudHJ5LT5pY29ufTwvdGQ+CiAgICAgICAgPHRkPnskZW50cnktPm5hbWV9PC90ZD4KICAgICAgICA8dGQ+eyRlbnRyeS0+dXBsaW5rfTwvdGQ+CiAgICAgICAgPHRkPnskZW50cnktPmRvd25saW5rfTwvdGQ+CiAgICAgICAgPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+CiAgICAgICAgPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KICAgICA8L3RyPgogICAgIDx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9Ij4KICAgICAgICA8dGQ+Jm5ic3A7PC90ZD4KICAgICAgICA8dGQgY29sc3Bhbj0iNSI+eyRlbnRyeS0+ZGVzY3JpcHRpb259PC90ZD4KICAgICA8L3RyPgp7L2ZvcmVhY2h9CjwvdGFibGU+CnsvaWZ9Cjx0YWJsZSB3aWR0aD0iMTAwJSI+CiAgPHRyPgogIDx0ZCB3aXRoPSI1MCUiPgoJPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPjxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+eyRhZGRsaW5rfTwvcD48L2Rpdj4KICA8L3RkPgogIDx0ZCBhbGlnbj0icmlnaHQiPgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCXskc3RhcnRmb3JtfQoJICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHByb21wdF91cGxvYWRfaWNvbn06Jm5ic3A7eyRpbnB1dF91cGxvYWRfaWNvbn17JHN1Ym1pdH08L3A+CiAgICAgICAgeyRlbmRmb3JtfQoJPC9kaXY+CiAgPC90ZD4KICA8L3RyPgo8L3RhYmxlPgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detailrpt_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBEZXRhaWwgdGVtcGxhdGUgLS0+CntpZiBpc3NldCgkaW5wdXRfZmlsdGVyKSB9Cnskc3RhcnRmb3JtfQp7JHByb21wdF9maWx0ZXJ9eyRpbnB1dF9maWx0ZXJ9eyRoaWRkZW5fcGFyYW1zfXskaW5wdXRfc3VibWl0fQp7JGVuZGZvcm19Cjxici8+CnskbWF0Y2hlc30mbmJzcDt7JG1hdGNoZXN0ZXh0fTxici8+CnsvaWZ9Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cjx0YWJsZT4KICA8dHI+CiAgICB7aWYgaXNzZXQoJGVudHJ5LT50aHVtYm5haWxfdXJsKX0KICAgIDx0ZD57JHRodW1ibmFpbH08L3RkPgogICAgPHRkPjxpbWcgc3JjPSJ7JGVudHJ5LT50aHVtYm5haWxfdXJsfSIgYm9yZGVyPTAvPjwvdGQ+CiAgICB7ZWxzZX0KICAgIDx0ZD57JGljb259PC90ZD4KICAgIDx0ZD48aW1nIHNyYz0ieyRlbnRyeS0+aWNvbnVybH0iIGJvcmRlcj0wLz48L3RkPgogICAgey9pZn0KICA8L3RyPgogIDx0cj4KICAgIDx0ZD57JGNhdGVnb3J5fTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+Y2F0ZWdvcnl9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD57JGlkfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+aWR9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD57JG5hbWV9PC90ZD4KICAgIDx0ZD57JGVudHJ5LT5uYW1lfTxici8+eyRlbnRyeS0+ZG93bmxvYWRfdXJsfTwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+eyRkYXRlfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+ZGF0ZX08L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPnskYXV0aG9yfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+YXV0aG9yfTwvdGQ+CiAgPC90cj4KICA8dHI+CiAgICA8dGQ+eyRzaXplfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+c2l6ZX08L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPnskc3VtbWFyeX08L3RkPgogICAgPHRkPnskZW50cnktPnN1bW1hcnl9PC90ZD4KICA8L3RyPgogIDx0cj4KICAgIDx0ZD57JHN1bW1hcnl9PC90ZD4KICAgIDx0ZD57JGVudHJ5LT5zdW1tYXJ5bGlua308L3RkPgogIDwvdHI+CiAgPHRyPgogICAgPHRkPnskZGVzY3JpcHRpb259PC90ZD4KICAgIDx0ZD57JGVudHJ5LT5kZXNjcmlwdGlvbn08L3RkPgogIDwvdHI+CjwvdGFibGU+Cjxici8+Cjxici8+CnsvZm9yZWFjaH0KPCEtLSBEZXRhaWwgdGVtcGxhdGUgLS0+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_summaryrpt_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBTdGFydCBVcGxvYWQgRGlzcGxheSBUZW1wbGF0ZSAtLT4Ke2lmIGlzc2V0KCRpbnB1dF9maWx0ZXIpIH0KeyRzdGFydGZvcm19CnskcHJvbXB0X2ZpbHRlcn17JGlucHV0X2ZpbHRlcn17JGhpZGRlbl9wYXJhbXN9eyRpbnB1dF9zdWJtaXR9CnskZW5kZm9ybX0KPGJyLz4KeyRtYXRjaGVzfSZuYnNwO3skbWF0Y2hlc3RleHR9CnsvaWZ9Cjx0YWJsZT4KICA8dHI+CiAgICA8dGg+eyRjYXRlZ29yeX08L3RoPgogICAgPHRoPnskbmFtZX08L3RoPgogICAgPHRoPnskYXV0aG9yfTwvdGg+CiAgICA8dGg+eyRkYXRlfTwvdGg+CiAgICA8dGg+eyRzaXplfTwvdGg+CiAgICA8dGg+eyRkZXRhaWxzfTwvdGg+CiAgICA8dGg+eyRzdW1tYXJ5fTwvdGg+CiAgICA8dGg+eyRkZXNjcmlwdGlvbn08L3RoPgogIDwvdHI+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9CiAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPiAKICAgIDx0aD57JGVudHJ5LT5jYXRlZ29yeX08L3RkPgogICAgPHRkPgogICAgICB7JGVudHJ5LT5uYW1lfQogICAgICA8YnIvPgogICAgICB7JGVudHJ5LT5kb3dubG9hZF91cmx9CiAgICAgIHtpZiBpc3NldCgkZW50cnktPnRodW1ibmFpbF91cmwpfQogICAgICAgIDxici8+eyR0aHVtYm5haWx9Jm5ic3A7PGltZyBzcmM9InskZW50cnktPnRodW1ibmFpbF91cmx9IiBib3JkZXI9IjAiLz4KICAgICAge2Vsc2V9CiAgICAgICAgPGJyLz48aW1nIHNyYz0ieyRlbnRyeS0+aWNvbnVybH0iIGJvcmRlcj0iMCIvPgogICAgICB7L2lmfQogICAgPC90ZD4KICAgIDx0ZD57JGVudHJ5LT5hdXRob3J9PC90ZD4KICAgIDx0ZD57JGVudHJ5LT5kYXRlfTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+c2l6ZX08L3RkPgogICAgPHRkPnskZW50cnktPmRldGFpbGxpbmt9PC90ZD4KICAgIDx0ZD57JGVudHJ5LT5zdW1tYXJ5fTwvdGQ+CiAgICA8dGQ+eyRlbnRyeS0+c3VtbWFyeWxpbmt9PC90ZD4KICA8L3RyPgp7L2ZvcmVhY2h9CjwvdGFibGU+CjwhLS0gRW5kIFVwbG9hZCBEaXNwbGF5IFRlbXBsYXRlIC0tPgo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_uploadform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBVcGxvYWQgZm9ybSB0ZW1wbGF0ZSAtLT4KeyRzdGFydGZvcm19eyRpbnB1dF9rZXl9CntpZiAkbm9hdXRob3IgfSAKeyRpbnB1dF9hdXRob3J9CntlbHNlfQo8cD57JHByb21wdF9hdXRob3J9Jm5ic3A7eyRpbnB1dF9hdXRob3J9PC9wPgp7L2lmfQo8cD57JHByb21wdF9zdW1tYXJ5fSZuYnNwO3skaW5wdXRfc3VtbWFyeX08L3A+CjxwPnskcHJvbXB0X2Rlc2NyaXB0aW9ufSZuYnNwO3skaW5wdXRfZGVzY3JpcHRpb259PC9wPgo8cD57JHByb21wdF9kZXN0bmFtZX0mbmJzcDt7JGlucHV0X2Rlc3RuYW1lfSZuYnNwO3skaW5mb19kZXN0bmFtZX08L3A+CjxwPnskcHJvbXB0X3RodW1ibmFpbH0mbmJzcDt7JGlucHV0X3RodW1ibmFpbH0mbmJzcDt7JGluZm9fdGh1bWJuYWlsfTwvcD4KPHA+eyRwcm9tcHRfcmVwbGFjZX0mbmJzcDt7JGlucHV0X3JlcGxhY2V9Jm5ic3A7eyRpbmZvX3JlcGxhY2V9PC9wPgo8cD57JHByb21wdF91cGxvYWR9eyRoaWRkZW59eyRpbnB1dF9icm93c2V9PC9wPgo8cD57JGNhcHRjaGFfdGl0bGV9Jm5ic3A7eyRjYXB0Y2hhfTwvcD4KPHA+eyRpbnB1dF9jYXB0Y2hhfTwvcD4KPHA+eyRpbnB1dF9zdWJtaXR9PC9wPgp7JGVuZGZvcm19CjwhLS0gVXBsb2FkIGZvcm0gdGVtcGxhdGUgLS0+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/uploadform.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e3N0YXJ0Zm9ybX0KPHA+eyRwcm9tcHRfdXBsb2FkfXskaGlkZGVufXskaW5wdXRfc3VibWl0fTwvcD4Ke2VuZGZvcm19Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/uploadlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfQogIHtpZiAkZXJyb3IgIT0gJyd9CiAgICA8cD48Zm9udCBjb2xvcj0icmVkIj57JG1lc3NhZ2V9PC9mb250PjwvcD4KICB7ZWxzZX0KICAgIDxwPnskbWVzc2FnZX08L3A+CiAgey9pZn0Key9pZn0Ke2lmICRub2Zvcm0gPT0gJyd9Cnskc3RhcnRmb3JtfQogIDx0YWJsZT4KICAgIDx0cj48dGQ+eyRjYXRlZ29yeX08L3RkPjx0ZD57JGlucHV0X2NhdGVnb3J5fXskaW5wdXRfc2VsZWN0fXskaW5wdXRfaGlkZGVufTxici8+PC90ZD48L3RyPgogIDwvdGFibGU+CjxmaWVsZHNldD4KPGxlZ2VuZD4mbmJzcDt7JGxlZ2VuZF91cGxvYWRmb3JtfSZuYnNwOzwvbGVnZW5kPgogIDx0YWJsZT4KICAgIDx0cj48dGQ+eyRwcm9tcHRfYXV0aG9yfTwvdGQ+PHRkPnskaW5wdXRfYXV0aG9yfTwvdGQ+PC90cj4KICAgIDx0cj48dGQ+eyRwcm9tcHRfZGVzdG5hbWV9PC90ZD48dGQ+eyRpbnB1dF9kZXN0bmFtZX08L3RkPjwvdHI+CiAgICA8dHI+PHRkPiZuYnNwOzwvdGQ+PHRkPnskaW5mb19kZXN0bmFtZX08L3RkPjwvdHI+CiAgICA8dHI+PHRkPnskcHJvbXB0X3N1bW1hcnl9PC90ZD48dGQ+eyRpbnB1dF9zdW1tYXJ5fTwvdGQ+PC90cj4KICAgIDx0cj48dGQ+Jm5ic3A7PC90ZD48dGQ+eyRpbmZvX3N1bW1hcnl9PC90ZD48L3RyPgogICAgPHRyPjx0ZD57JHByb21wdF90aHVtYm5haWx9PC90ZD48dGQ+eyRpbnB1dF90aHVtYm5haWx9PC90ZD48L3RyPgogICAgPHRyPjx0ZD57JHByb21wdF9yZXBsYWNlfTwvdGQ+PHRkPnskaW5wdXRfcmVwbGFjZX08L3RkPjwvdHI+CiAgICA8dHI+PHRkPiZuYnNwOzwvdGQ+PHRkPnskaW5mb19yZXBsYWNlfTwvdGQ+PC90cj4KICAgIDx0cj48dGQ+eyRwcm9tcHRfYnJvd3NlfTwvdGQ+PHRkPnskaW5wdXRfYnJvd3NlfSZuYnNwO3skaW5wdXRfc3VibWl0fTwvdGQ+PC90cj4KICA8L3RhYmxlPgo8L2ZpZWxkc2V0PgogIDxici8+CnskZW5kZm9ybX0Ke2lmICRpdGVtY291bnQgPiAwfQo8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPiZuYnNwOzwvdGg+CgkgICAgICAgICAgICAgICAgPHRoPiZuYnNwOzwvdGg+CgkJCTx0aCB3aWR0aD0iMTUlIj57JHRpdGxldGV4dH08L3RoPgoJCQk8dGggd2lkdGg9IjQwJSI+eyRzdW1tYXJ5dGV4dH08L3RoPgoJCQk8dGg+eyRzaXpldGV4dH08L3RoPgoJCQk8dGg+eyRhdXRob3J0ZXh0fTwvdGg+CgkJCTx0aD57JGlwdGV4dH08L3RoPgoJCQk8dGg+eyRwb3N0ZGF0ZXRleHR9PC90aD4KCQkJPHRoPnskZGx0ZXh0fTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cgl7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQoJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9Ij4KCQkJPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCTx0ZD48aW1nIHNyYz0ieyRlbnRyeS0+aWNvbn0iIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgYWx0PSJ7JGVudHJ5LT5pY29ufSIvPjwvdGQ+CgkJCTx0ZD48YSBocmVmPSJ7JGVudHJ5LT5lZGl0dXJsfSI+eyRlbnRyeS0+bmFtZX08L2E+PC90ZD4KCQkJPHRkPnskZW50cnktPnN1bW1hcnl9PC90ZD4KCQkJPHRkPnskZW50cnktPnNpemV9PC90ZD4KCQkJPHRkPnskZW50cnktPmF1dGhvcn08L3RkPgoJCQk8dGQ+eyRlbnRyeS0+aXB9PC90ZD4KCQkJPHRkPnskZW50cnktPmRhdGV9PC90ZD4KCQkJPHRkPnskZW50cnktPmRvd25sb2Fkc308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4KCQk8L3RyPgoJey9mb3JlYWNofQoJPC90Ym9keT4KPC90YWJsZT4Ke2Vsc2V9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgIDxwIGNsYXNzPSJwYWdlb3B0aW9ucyI+Tm8gRmlsZXMgRGV0ZWN0ZWQ8L3A+CjwvZGl2Pgp7L2lmfQp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/Uploads.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFVwbG9hZHMgLT0gYWxsb3cgdXNlcnMgdG8gdXBsb2FkIHN0dWZmLCBhIHBzZXVkbyBmaWxlIG1hbmFnZXIiIG1vZHVsZQojIFZlcnNpb246IDEuMy4wLWJldGExLCBjYWxndXkxMDAwCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOgkvL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNsYXNzIFVwbG9hZHMgZXh0ZW5kcyBDTVNNb2R1bGUKewogLyoqCiAgKiBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB1c2VkIGluIGVtYWlsIG5vdGlmaWNhdGlvbnMKICAqLwogIHZhciAkZGZsdF9lbWFpbG5vdGlmeXRlbXBsYXRlID0gJwo8IS0tIEVtYWlsIGZvcm0gdGVtcGxhdGUgLS0+CjxwPlRoaXMgbWVzc2FnZSBpcyB0byBub3RpZnkgeW91IHRoYXQgYSBmaWxlIGhhcyBiZWVuIHVwbG9hZGVkIHRvIHlvdXIgd2Vic2l0ZS4gIFRoZSBkZXRhaWxzIG9mIHRoaXMgdXBsb2FkIGFyZSBhcyBmb2xsb3dzOjwvcD4KPHA+TmFtZTogeyRuYW1lfTwvcD4KPHA+U2l6ZTogeyRzaXplfTwvcD4KPHA+U3VtbWFyeTogeyRzdW1tYXJ5fTwvcD4KPHA+RGVzY3JpcHRpb246IHskZGVzY3JpcHRpb259PC9wPgo8cD5BdXRob3I6IHskYXV0aG9yfTwvcD4KPHA+SVAgQWRkcmVzczogeyRpcF9hZGRyZXNzfTwvcD4KPCEtLSBFbWFpbCBmb3JtIHRlbXBsYXRlIC0tPgogICAgJzsKLy8gIC8qKgovLyAgICAqIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHVzZWQgZm9yIHRoZSB1cGxvYWQgZm9ybQovLyAgICAqLwovLyAgIHZhciAkZGZsdF91cGxvYWRmb3JtdGVtcGxhdGUgPSAnCi8vIDwhLS0gVXBsb2FkIGZvcm0gdGVtcGxhdGUgLS0+Ci8vIHskc3RhcnRmb3JtfXskaW5wdXRfa2V5fQovLyB7aWYgJG5vYXV0aG9yIH0gCi8vIHskaW5wdXRfYXV0aG9yfQovLyB7ZWxzZX0KLy8gPHA+eyRwcm9tcHRfYXV0aG9yfSZuYnNwO3skaW5wdXRfYXV0aG9yfTwvcD4KLy8gey9pZn0KLy8gPHA+eyRwcm9tcHRfc3VtbWFyeX0mbmJzcDt7JGlucHV0X3N1bW1hcnl9PC9wPgovLyA8cD57JHByb21wdF9kZXNjcmlwdGlvbn0mbmJzcDt7JGlucHV0X2Rlc2NyaXB0aW9ufTwvcD4KLy8gPHA+eyRwcm9tcHRfZGVzdG5hbWV9Jm5ic3A7eyRpbnB1dF9kZXN0bmFtZX0mbmJzcDt7JGluZm9fZGVzdG5hbWV9PC9wPgovLyA8cD57JHByb21wdF90aHVtYm5haWx9Jm5ic3A7eyRpbnB1dF90aHVtYm5haWx9Jm5ic3A7eyRpbmZvX3RodW1ibmFpbH08L3A+Ci8vIDxwPnskcHJvbXB0X3JlcGxhY2V9Jm5ic3A7eyRpbnB1dF9yZXBsYWNlfSZuYnNwO3skaW5mb19yZXBsYWNlfTwvcD4KLy8gPHA+eyRwcm9tcHRfdXBsb2FkfXskaGlkZGVufXskaW5wdXRfYnJvd3NlfXskaW5wdXRfc3VibWl0fTwvcD4KLy8geyRlbmRmb3JtfQovLyA8IS0tIFVwbG9hZCBmb3JtIHRlbXBsYXRlIC0tPicKLy8gOwoKLy8gICAvKgovLyAgICAqIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IHJlcG9ydAovLyAgICAqLwovLyAgIHZhciAkZGZsdF9zdW1tYXJ5dGVtcGxhdGUgPSAnCi8vIDwhLS0gU3RhcnQgVXBsb2FkIERpc3BsYXkgVGVtcGxhdGUgLS0+Ci8vIHtpZiAkaW5wdXRfZmlsdGVyICE9IFwnXCd9Ci8vIHskc3RhcnRmb3JtfQovLyB7JHByb21wdF9maWx0ZXJ9eyRpbnB1dF9maWx0ZXJ9eyRoaWRkZW5fcGFyYW1zfXskaW5wdXRfc3VibWl0fQovLyB7JGVuZGZvcm19Ci8vIDxici8+Ci8vIHskbWF0Y2hlc30mbmJzcDt7JG1hdGNoZXN0ZXh0fQovLyB7L2lmfQovLyA8dGFibGU+Ci8vICAgPHRyPgovLyAgICAgPHRoPnskY2F0ZWdvcnl9PC90aD4KLy8gICAgIDx0aD57JG5hbWV9PC90aD4KLy8gICAgIDx0aD57JGF1dGhvcn08L3RoPgovLyAgICAgPHRoPnskZGF0ZX08L3RoPgovLyAgICAgPHRoPnskc2l6ZX08L3RoPgovLyAgICAgPHRoPnskZGV0YWlsc308L3RoPgovLyAgICAgPHRoPnskc3VtbWFyeX08L3RoPgovLyAgICAgPHRoPnskZGVzY3JpcHRpb259PC90aD4KLy8gICA8L3RyPgovLyB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQovLyAgIDx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9Ij4gCi8vICAgICA8dGg+eyRlbnRyeS0+Y2F0ZWdvcnl9PC90ZD4KLy8gICAgIDx0ZD4KLy8gICAgICAgeyRlbnRyeS0+bmFtZX0KLy8gICAgICAgPGJyLz4KLy8gICAgICAgeyRlbnRyeS0+ZG93bmxvYWRfdXJsfQovLyAgICAgICB7aWYgaXNzZXQoJGVudHJ5LT50aHVtYm5haWxfdXJsKX0KLy8gICAgICAgICA8YnIvPnskdGh1bWJuYWlsfSZuYnNwOzxpbWcgc3JjPSJ7JGVudHJ5LT50aHVtYm5haWxfdXJsfSIgYm9yZGVyPSIwIi8+Ci8vICAgICAgIHtlbHNlfQovLyAgICAgICAgIDxici8+PGltZyBzcmM9InskZW50cnktPmljb251cmx9IiBib3JkZXI9IjAiLz4KLy8gICAgICAgey9pZn0KLy8gICAgIDwvdGQ+Ci8vICAgICA8dGQ+eyRlbnRyeS0+YXV0aG9yfTwvdGQ+Ci8vICAgICA8dGQ+eyRlbnRyeS0+ZGF0ZX08L3RkPgovLyAgICAgPHRkPnskZW50cnktPnNpemV9PC90ZD4KLy8gICAgIDx0ZD57JGVudHJ5LT5kZXRhaWxsaW5rfTwvdGQ+Ci8vICAgICA8dGQ+eyRlbnRyeS0+c3VtbWFyeX08L3RkPgovLyAgICAgPHRkPnskZW50cnktPnN1bW1hcnlsaW5rfTwvdGQ+Ci8vICAgPC90cj4KLy8gey9mb3JlYWNofQovLyA8L3RhYmxlPgovLyA8IS0tIEVuZCBVcGxvYWQgRGlzcGxheSBUZW1wbGF0ZSAtLT4KLy8gJzsKCi8vICAgLyoqCi8vICAgICogVGhlIGRlZmF1bHQgdGVtcGxhdGUgdXNlZCBmb3IgdGhlIGRldGFpbCByZXBvcnQKLy8gICAgKi8KLy8gICB2YXIgJGRmbHRfZGV0YWlsdGVtcGxhdGUgPSAnCi8vIDwhLS0gRGV0YWlsIHRlbXBsYXRlIC0tPgovLyB7aWYgJGlucHV0X2ZpbHRlciAhPSBcJ1wnfQovLyB7JHN0YXJ0Zm9ybX0KLy8geyRwcm9tcHRfZmlsdGVyfXskaW5wdXRfZmlsdGVyfXskaGlkZGVuX3BhcmFtc317JGlucHV0X3N1Ym1pdH0KLy8geyRlbmRmb3JtfQovLyA8YnIvPgovLyB7JG1hdGNoZXN9Jm5ic3A7eyRtYXRjaGVzdGV4dH08YnIvPgovLyB7L2lmfQovLyB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQovLyA8dGFibGU+Ci8vICAge2lmICRlbnRyeS0+dGh1bWJuYWlsX3VybH0KLy8gICAgIDx0cj4KLy8gICAgICAgIDx0ZD57JHRodW1ibmFpbH08L3RkPgovLyAgICAgICAgPHRkPjxpbWcgc3JjPSJ7JGVudHJ5LT50aHVtYm5haWxfdXJsfSIgYm9yZGVyPTA+PC90ZD4KLy8gICAgICA8L3RyPgovLyAgIHsvaWZ9Ci8vICAgPHRyPgovLyAgICAgPHRkPnskY2F0ZWdvcnl9PC90ZD4KLy8gICAgIDx0ZD57JGVudHJ5LT5jYXRlZ29yeX08L3RkPgovLyAgIDwvdHI+Ci8vICAgPHRyPgovLyAgICAgPHRkPnskaWR9PC90ZD4KLy8gICAgIDx0ZD57JGVudHJ5LT5pZH08L3RkPgovLyAgIDwvdHI+Ci8vICAgPHRyPgovLyAgICAgPHRkPnskbmFtZX08L3RkPgovLyAgICAgPHRkPnskZW50cnktPm5hbWV9PGJyLz57JGVudHJ5LT5kb3dubG9hZF91cmx9PC90ZD4KLy8gICA8L3RyPgovLyAgIDx0cj4KLy8gICAgIDx0ZD57JGRhdGV9PC90ZD4KLy8gICAgIDx0ZD57JGVudHJ5LT5kYXRlfTwvdGQ+Ci8vICAgPC90cj4KLy8gICA8dHI+Ci8vICAgICA8dGQ+eyRhdXRob3J9PC90ZD4KLy8gICAgIDx0ZD57JGVudHJ5LT5hdXRob3J9PC90ZD4KLy8gICA8L3RyPgovLyAgIDx0cj4KLy8gICAgIDx0ZD57JHNpemV9PC90ZD4KLy8gICAgIDx0ZD57JGVudHJ5LT5zaXplfTwvdGQ+Ci8vICAgPC90cj4KLy8gICA8dHI+Ci8vICAgICA8dGQ+eyRzdW1tYXJ5fTwvdGQ+Ci8vICAgICA8dGQ+eyRlbnRyeS0+c3VtbWFyeX08L3RkPgovLyAgIDwvdHI+Ci8vICAgPHRyPgovLyAgICAgPHRkPnskc3VtbWFyeX08L3RkPgovLyAgICAgPHRkPnskZW50cnktPnN1bW1hcnlsaW5rfTwvdGQ+Ci8vICAgPC90cj4KLy8gICA8dHI+Ci8vICAgICA8dGQ+eyRkZXNjcmlwdGlvbn08L3RkPgovLyAgICAgPHRkPnskZW50cnktPmRlc2NyaXB0aW9ufTwvdGQ+Ci8vICAgPC90cj4KLy8gPC90YWJsZT4KLy8gPGJyLz4KLy8gPGJyLz4KLy8gey9mb3JlYWNofQovLyA8IS0tIERldGFpbCB0ZW1wbGF0ZSAtLT4KLy8gJzsKCiAgdmFyICR1cGxvYWRfZXh0ZW5zaW9ucyA9ICcnOwoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgX2V4cGxvZGVfd2l0aF9rZXkoICRTdHIsICRpbmdsdWU9Jz0nLCAkb3V0Z2x1Zz0nJicpOwogICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgICBFeHBsb2RlIGEgc3RyaW5nIGludG8gYW4gYXNzb2NpYXRpdmUgYXJyYXkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gZXhwbG9kZV93aXRoX2tleSgkc3RyLCAkaW5nbHVlPSc9JywgJG91dGdsdWU9JyYnKQogIHsKICAgICRyZXQgPSBhcnJheSgpOwogICAgJGExID0gc3BsaXQoJG91dGdsdWUsJHN0cik7CiAgICBmb3JlYWNoKCAkYTEgYXMgJGEyICkKICAgIHsKICAgICAgbGlzdCggJGssICR2ICkgPSBzcGxpdCggJGluZ2x1ZSwgJGEyICk7CiAgICAgICRyZXRbICRrIF0gPSAkdjsKICAgIH0KICAgIHJldHVybiAkcmV0OwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBfaW1wbG9kZV93aXRoX2tleSggJFN0ciwgJGluZ2x1ZT0nPScsICRvdXRzZ2x1Zz0nJicpOwogICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgICBJbXBsb2RlIGFuIGFzc29jaWF0aXZlIGFycmF5IGludG8gYSBzdHJpbmcKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gaW1wbG9kZV93aXRoX2tleSgkYXNzb2MsICRpbmdsdWUgPSAnPScsICRvdXRnbHVlID0gJyYnKQogIHsKICAgICAkcmV0dXJuID0gbnVsbDsKICAgICBmb3JlYWNoICgkYXNzb2MgYXMgJHRrID0+ICR0dikgJHJldHVybiAuPSAkb3V0Z2x1ZS4kdGsuJGluZ2x1ZS4kdHY7CiAgICAgcmV0dXJuIHN1YnN0cigkcmV0dXJuLHN0cmxlbigkb3V0Z2x1ZSkpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIF9jYXRlZ29yeVBhdGgoICRjYXRlZ29yeXBhdGggKQogICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgICBHZW5lcmF0ZSBhIHBhdGggdG8gYSBjZXJ0YWluIGNhdGVnb3J5CiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9jYXRlZ29yeVBhdGgoICRjYXRlZ29yeXBhdGggKQogIHsKICAgIHJldHVybiAkdGhpcy0+Y21zLT5jb25maWdbJ3VwbG9hZHNfcGF0aCddLkRJUkVDVE9SWV9TRVBBUkFUT1IuCiAgICAgICAgICAgICAgICRjYXRlZ29yeXBhdGg7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFVwbG9hZFBhdGgoICRjYXRlZ29yeXBhdGgsICRmaWxlbmFtZSApCiAgICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgIEdlbmVyYXRlIGEgZmlsZSBzcGVjaWZpY2F0aW9uIHRvIGEgZmlsZSBpbiBhIGNlcnRhaW4gCiAgICBjYXRlZ29yeS4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gX3VwbG9hZFBhdGgoICRjYXRlZ29yeXBhdGgsICRmaWxlbmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5fY2F0ZWdvcnlQYXRoKCAkY2F0ZWdvcnlwYXRoICkuRElSRUNUT1JZX1NFUEFSQVRPUi4kZmlsZW5hbWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX3Rlc3RpcCgkcmFuZ2UsJGlwKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgVGhpcyBpcyBhIGZ1bmN0aW9uIHRvIG1hdGNoIGFuIElQIGFkZHJlc3MgYWdhaW5zdCBhbiAKICAgYWRkcmVzcyByYW5nZSBzcGVjaWZpY2F0aW9uLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF90ZXN0aXAoJHJhbmdlLCRpcCkgCiAgewogICAgJHJlc3VsdCA9IDE7CgogICAgIyBJUCBQYXR0ZXJuIE1hdGNoZXIKICAgICMgSi5BZGFtcyA8am5hQHJldGluYS5uZXQ+CiAgICAjCiAgICAjIE1hdGNoZXM6CiAgICAjCiAgICAjIHh4eC54eHgueHh4Lnh4eCAgICAgICAgKGV4YWN0KQogICAgIyB4eHgueHh4Lnh4eC5beXl5LXp6el0gIChyYW5nZSkKICAgICMgeHh4Lnh4eC54eHgueHh4L25uICAgIChubiA9ICMgYml0cywgY2lzY28gc3R5bGUgLS0gaS5lLiAvMjQgPSBjbGFzcyBDKQogICAgIwogICAgIyBEb2VzIG5vdCBtYXRjaDoKICAgICMgeHh4Lnh4eC54eHgueHhbeXl5LXp6el0gIChyYW5nZSwgcGFydGlhbCBvY3RldHMgbm90IHN1cHBvcnRlZCkKIAogICAgaWYgKGVyZWcoIihbMC05XSspXC4oWzAtOV0rKVwuKFswLTldKylcLihbMC05XSspLyhbMC05XSspIiwkcmFuZ2UsJHJlZ3MpKSB7CiAgICAgICMgcGVyZm9ybSBhIG1hc2sgbWF0Y2gKICAgICAgJGlwbCA9IGlwMmxvbmcoJGlwKTsKICAgICAgJHJhbmdlbCA9IGlwMmxvbmcoJHJlZ3NbMV0gLiAiLiIgLiAkcmVnc1syXSAuICIuIiAuICRyZWdzWzNdIC4gIi4iIC4gJHJlZ3NbNF0pOwogICAgICAKICAgICAgJG1hc2tsID0gMDsKICAgICAgCiAgICAgIGZvciAoJGkgPSAwOyAkaTwgMzE7ICRpKyspIHsKCWlmICgkaSA8ICRyZWdzWzVdLTEpIHsKICAgICAgICAgICRtYXNrbCA9ICRtYXNrbCArIHBvdygyLCgzMC0kaSkpOwoJfQogICAgICB9CiAgICAgIAogICAgICBpZiAoKCRtYXNrbCAmICRyYW5nZWwpID09ICgkbWFza2wgJiAkaXBsKSkgewoJICAgICAgcmV0dXJuIDE7CiAgICAgIH0gZWxzZSB7CgkgICAgICByZXR1cm4gMDsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgCiAgICAgICMgcmFuZ2UgYmFzZWQKICAgICAgJG1hc2tvY3RzID0gc3BsaXQoIlwuIiwkcmFuZ2UpOwogICAgICAkaXBvY3RzID0gc3BsaXQoIlwuIiwkaXApOwogICAgICAKICAgICAgIyBwZXJmb3JtIGEgcmFuZ2UgbWF0Y2gKICAgICAgZm9yICgkaT0wOyAkaTw0OyAkaSsrKSB7CgkgICAgICBpZiAoZXJlZygiXFsoWzAtOV0rKVwtKFswLTldKylcXSIsJG1hc2tvY3RzWyRpXSwkcmVncykpIHsKCSAgCQkJaWYgKCAoJGlwb2N0c1skaV0gPiAkcmVnc1syXSkgfHwgKCRpcG9jdHNbJGldIDwgJHJlZ3NbMV0pKSB7CgkgICAgCQkJJHJlc3VsdCA9IDA7CgkgIAkJCX0KCQkJCX0KCQkJCWVsc2UKCSAgCQl7CgkgICAgCQlpZiAoJG1hc2tvY3RzWyRpXSA8PiAkaXBvY3RzWyRpXSkgewoJICAgICAgCQkkcmVzdWx0ID0gMDsKCSAgICAJfQoJICAJfQogICAgICB9CiAgICB9CiAgICByZXR1cm4gJHJlc3VsdDsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgZ2V0Q2F0ZWdvcnlGcm9tTmFtZSgpCiAgICBQVUJMSUMKICAKICAgIHJldHVybiB0aGUgY2F0ZWdvcnkgaWQgZ2l2ZW4gYSBuYW1lLCBvciBmYWxzZQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIGdldENhdGVnb3J5RnJvbU5hbWUoJG5hbWUpCiAgewogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgJHF1ZXJ5ID0KICAgICAgIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4ICgpLgogICAgICAibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfbmFtZSA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnksIGFycmF5ICgkbmFtZSkpOwogICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKICAgIGlmKCAhJHJvdyApIAogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIHJldHVybiAkcm93OwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBnZXRDYXRlZ29yeUxpc3QoKQogICAgUFVCTElDCiAgCiAgICByZXR1cm4gYSBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGFuZCBpZCdzCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gZ2V0Q2F0ZWdvcnlMaXN0KCkKICB7CiAgICAkZGIgPSYgJHRoaXMtPkdldERCKCk7CiAgICAkY2F0ZWdvcnlsaXN0ID0gYXJyYXkoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19jYXRlZ29yaWVzIjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5ICk7CiAgICBpZiggISRkYnJlc3VsdCApCiAgICAgIHsKICAgICAgICByZXR1cm4gJGNhdGVnb3J5bGlzdDsKICAgICAgfQoKICAgIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICAgICAgewoJJGNhdGVnb3J5bGlzdFskcm93Wyd1cGxvYWRfY2F0ZWdvcnlfbmFtZSddXSA9IAoJICAkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfaWQnXTsKICAgICAgfQogICAgcmV0dXJuICRjYXRlZ29yeWxpc3Q7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgZ2V0Q2F0ZWdvcnlQYXRoRnJvbUlEKCkKICAgUFVCTElDCiAgCiAgIHJldHVybiB0aGUgY2F0ZWdvcnkgcGF0aCBnaXZlbiBhIGNhdGVnb3J5IGlkCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgIGZ1bmN0aW9uIGdldENhdGVnb3J5UGF0aEZyb21JRCggJGNhdGVnb3J5X2lkICkKICAgewogICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyBXSEVSRSAiLgogICAgICAgInVwbG9hZF9jYXRlZ29yeV9pZCA9ID8iOwogICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGNhdGVnb3J5X2lkICkgKTsKICAgICBpZiggISRkYnJlc3VsdCApCiAgICAgICB7CgkgcmV0dXJuOwogICAgICAgfQogICAgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICAgaWYoICEkcm93ICkKICAgICAgIHsKCSByZXR1cm47CiAgICAgICB9CiAgICAgCiAgICAgcmV0dXJuICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9wYXRoJ107CiAgIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBnZXRDYXRlZ29yeVBhdGhGcm9tRmlsZUlEKCkKICAgIFBVQkxJQwogIAogICAgcmV0dXJuIHRoZSBjYXRlZ29yeSBwYXRoIGdpdmVuIGEgZmlsZSBpZAogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIGdldENhdGVnb3J5UGF0aEZyb21GaWxlSUQoICRmaWxlX2lkICkKICB7CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMgV0hFUkUgdXBsb2FkX2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRmaWxlX2lkKSApOwogICAgaWYoICEkZGJyZXN1bHQgKQogICAgICB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKICAgIGlmKCAhJHJvdyApCiAgICAgIHsKCXJldHVybjsKICAgICAgfQogICAgJGNhdCA9ICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9pZCddOwogICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMgV0hFUkUgIi4KICAgICAgInVwbG9hZF9jYXRlZ29yeV9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkY2F0ICkgKTsKICAgIGlmKCAhJGRicmVzdWx0ICkKICAgICAgewoJcmV0dXJuOwogICAgICB9CiAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwogICAgaWYoICEkcm93ICkKICAgICAgewoJcmV0dXJuOwogICAgICB9CgogICAgcmV0dXJuICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9wYXRoJ107CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGdldEZpbGVMaXN0KCAkY2F0ZWdvcnlfaWQgKQogICAgUFVCTElDCiAgCiAgICByZXR1cm4gYSBsaXN0IG9mIGZpbGVzIGluIHRoZSBnaXZlbiBjYXRlZ29yeQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIGdldEZpbGVMaXN0KCAkY2F0ZWdvcnlfaWQgKQogIHsKICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICRmaWxlbGlzdCA9IGFycmF5KCk7CiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMiLgogICAgICAiIFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkY2F0ZWdvcnlfaWQgKSApOwogICAgaWYoICEkZGJyZXN1bHQgKQogICAgICB7CiAgICAgICAgcmV0dXJuICRmaWxlbGlzdDsKICAgICAgfQoKICAgIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICAgICAgewoJJGZpbGVsaXN0WyRyb3dbJ3VwbG9hZF9uYW1lJ11dID0gCgkgICRyb3dbJ3VwbG9hZF9pZCddOwogICAgICB9CiAgICByZXR1cm4gJGZpbGVsaXN0OwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBnZXRGaWxlTmFtZSggJGZpbGVfaWQgKQogICAgUFVCTElDCiAgCiAgICByZXR1cm4gYSBsaXN0IG9mIGZpbGVzIGluIHRoZSBnaXZlbiBjYXRlZ29yeQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIGdldEZpbGVOYW1lKCAkZmlsZV9pZCApCiAgewogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzIi4KICAgICAgIiBXSEVSRSB1cGxvYWRfaWQgPSA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGZpbGVfaWQgKSApOwogICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKICAgIHJldHVybiAkcm93Wyd1cGxvYWRfbmFtZSddOwogIH0KCiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGdldEZpbGVEZXRhaWxzKCAkZmlsZV9pZCApCiAgICBQVUJMSUMKICAKICAgIHJldHVybiBhIGxpc3Qgb2YgZmlsZXMgaW4gdGhlIGdpdmVuIGNhdGVnb3J5CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gZ2V0RmlsZURldGFpbHMoICRmaWxlX2lkICkKICB7CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMiLgogICAgICAiIFdIRVJFIHVwbG9hZF9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkZmlsZV9pZCApICk7CiAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwogICAgcmV0dXJuICRyb3c7CiAgfQoKICAKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfZml4VG9BZGp1c3RUYWJsZVN0cnVjdHVyZTEoKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgLy8gbW92ZSB0aGUgZGVzY3JpcHRpb24gZmllbGQsIGV0YywgaW50byB0aGUgcHJvcGVyIHBsYWNlLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICBmdW5jdGlvbiBfZml4VG9BZGp1c3RUYWJsZVN0cnVjdHVyZTEoKQogICB7CiAgICAgJGRiID0mICR0aGlzLT5HZXREYigpOwoKICAgICAvLyB0YWJsZSBzY2hlbWEgZGVzY3JpcHRpb24KICAgICAkZmxkcyA9ICJ1cGxvYWRfaWQgSSBLRVksCiAgICAgICAgICAgICB1cGxvYWRfY2F0ZWdvcnlfaWQgSSwKICAgICAgICAgICAgIHVwbG9hZF9uYW1lIEMoMjU1KSwKICAgICAgICAgICAgIHVwbG9hZF9hdXRob3IgQygyNTUpLAogICAgICAgICAgICAgdXBsb2FkX3N1bW1hcnkgQygyNTUpLCAKICAgICAgICAgICAgIHVwbG9hZF9kZXNjcmlwdGlvbiBYLAogICAgICAgICAgICAgdXBsb2FkX2lwIEMoMjU1KSwKICAgICAgICAgICAgIHVwbG9hZF9zaXplIEksCiAgICAgICAgICAgICB1cGxvYWRfZGF0ZSBUCgkgICAgIjsKCiAgICAgLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgogICAgICR0YWJvcHRhcnJheSA9IGFycmF5ICgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwogICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkgKCRkYik7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMIChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX25ldyIsCgkJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSAoJHNxbGFycmF5KTsKICAgICAKICAgICAvLyBub3cgaGF2ZSB0byB0cmFuc2ZlciB0aGUgZGF0YQogICAgICRxID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19uZXcgCiAgICAgICAgICAgICAgU0VMRUNUIHVwbG9hZF9pZCwgdXBsb2FkX2NhdGVnb3J5X2lkLCB1cGxvYWRfbmFtZSwgdXBsb2FkX2F1dGhvciwgdXBsb2FkX2Rlc2NyaXB0aW9uLCAnJywKICAgICAgICAgICAgICB1cGxvYWRfaXAsIHVwbG9hZF9zaXplLCB1cGxvYWRfZGF0ZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyI7CiAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSApOwogICAgIGlmKCAhJGRicmVzdWx0ICkgewogICAgICAgJHRoaXMtPlNldEVycm9yKCAkZGItPkVycm9yTXNnKCkgKTsKICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgLy8gYW5kIGRyb3AgdGhlIG9yaWdpbmFsIHRhYmxlCiAgICAgJHNxbGFycmF5ID0KICAgICAgICRkaWN0LT5Ecm9wVGFibGVTUUwgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzIiwKCQkJICAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwogICAgIAogICAgIC8vIGFuZCByZW5hbWUgdGhlIG5ldyB0YWJsZQogICAgICRzcWxhcnJheSA9CiAgICAgICAkZGljdC0+UmVuYW1lVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfbmV3IiwKCQkJICAgICAgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyIgKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKICAgfSAgCgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfZml4VG9BZGp1c3RUYWJsZVN0cnVjdHVyZTIoKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgLy8gbW92ZSB0aGUgZGVzY3JpcHRpb24gZmllbGQsIGV0YywgaW50byB0aGUgcHJvcGVyIHBsYWNlLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICBmdW5jdGlvbiBfZml4VG9BZGp1c3RUYWJsZVN0cnVjdHVyZTIoKQogICB7CiAgICAgJGRiID0mICR0aGlzLT5HZXREYigpOwoKICAgICAvLyB0YWJsZSBzY2hlbWEgZGVzY3JpcHRpb24KICAgICAkZmxkcyA9ICJ1cGxvYWRfaWQgSSBLRVksCiAgICAgICAgICAgICB1cGxvYWRfY2F0ZWdvcnlfaWQgSSwKICAgICAgICAgICAgIHVwbG9hZF9uYW1lIEMoMjU1KSwKICAgICAgICAgICAgIHVwbG9hZF9hdXRob3IgQygyNTUpLAogICAgICAgICAgICAgdXBsb2FkX3N1bW1hcnkgQygyNTUpLCAKICAgICAgICAgICAgIHVwbG9hZF9kZXNjcmlwdGlvbiBYLAogICAgICAgICAgICAgdXBsb2FkX2lwIEMoMjU1KSwKICAgICAgICAgICAgIHVwbG9hZF9zaXplIEksCiAgICAgICAgICAgICB1cGxvYWRfZGF0ZSBUCgkgICAgIjsKCiAgICAgLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgogICAgICR0YWJvcHRhcnJheSA9IGFycmF5ICgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwogICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkgKCRkYik7CiAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMIChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX25ldyIsCgkJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSAoJHNxbGFycmF5KTsKICAgICAKICAgICAvLyBub3cgaGF2ZSB0byB0cmFuc2ZlciB0aGUgZGF0YQogICAgICRxID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19uZXcgCiAgICAgICAgICAgICAgU0VMRUNUIHVwbG9hZF9pZCwgdXBsb2FkX2NhdGVnb3J5X2lkLCB1cGxvYWRfbmFtZSwgdXBsb2FkX2F1dGhvciwgdXBsb2FkX3N1bW1hcnksIAogICAgICAgICAgICAgIHVwbG9hZF9kZXNjcmlwdGlvbiwKICAgICAgICAgICAgICB1cGxvYWRfaXAsIHVwbG9hZF9zaXplLCB1cGxvYWRfZGF0ZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyI7CiAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSApOwogICAgIGlmKCAhJGRicmVzdWx0ICkgewogICAgICAgJHRoaXMtPlNldEVycm9yKCAkZGItPkVycm9yTXNnKCkgKTsKICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgLy8gYW5kIGRyb3AgdGhlIG9yaWdpbmFsIHRhYmxlCiAgICAgJHNxbGFycmF5ID0KICAgICAgICRkaWN0LT5Ecm9wVGFibGVTUUwgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzIiwKCQkJICAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoICRzcWxhcnJheSApOwogICAgIAogICAgIC8vIGFuZCByZW5hbWUgdGhlIG5ldyB0YWJsZQogICAgICRzcWxhcnJheSA9CiAgICAgICAkZGljdC0+UmVuYW1lVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfbmV3IiwKCQkJICAgICAgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyIgKTsKICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCAkc3FsYXJyYXkgKTsKCiAgICAgCiAgIH0gIAoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX2dldFVwbG9hZENhdGVnb3J5RGV0YWlscyggJGNhdGVnb3J5X2lkICkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIHJldHVybnMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBzcGVjaWZpYwogICByb3cgb2YgdGhlIGNhdGVnb3JpZXMgZGF0YWJhc2UgbWF0Y2hpbmcgdGhlIHN1cHBsaWVkIAogICBjYXRlZ29yeSBpZAogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9nZXRVcGxvYWRDYXRlZ29yeURldGFpbHMoICRjYXRlZ29yeV9pZCApCiAgewogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRjYXRlZ29yeV9pZCApICk7CiAgICBpZiggISRkYnJlc3VsdCApIHsKICAgICAgcmV0dXJuOwogICAgfQoKICAgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICBpZiggISRyb3cgKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICByZXR1cm4gJHJvdzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfZ2V0VXBsb2FkRmlsZURldGFpbHMoICRjYXRlZ29yeV9pZCApCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICByZXR1cm5zIGFuIGFzc29jaWF0aXZlIGFycmF5IG1hdGNoaW5nIHRoZSBzcGVjaWZpYyByb3cgb2YKICAgdGhlIHVwbG9hZHMgdGFibGUgbWF0Y2hpbmcgdGhlIHNwZWNpZmllZCB1cGxvYWQgaWQKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfZ2V0VXBsb2FkRmlsZURldGFpbHMoICRmaWxlX2lkICkKICB7CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMgV0hFUkUgdXBsb2FkX2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRmaWxlX2lkICkgKTsKICAgIGlmKCAhJGRicmVzdWx0ICkgewogICAgICByZXR1cm47CiAgICB9CiAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwogICAgaWYoICEkcm93ICkgewogICAgICByZXR1cm47CiAgICB9CgogICAgcmV0dXJuICRyb3c7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIF9zY2FuZGlyKCAkZGlyLCAkc29ydCApCiAgICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgIFNjYW4gYSBkaXJlY3RvcnkgYW5kIHJldHVybiBhIHNvcnRlZCBsaXN0LgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfc2NhbmRpcigkZGlyID0gJy4vJywgJHNvcnQgPSAwKQogIHsKICAgICRkaXJfb3BlbiA9IEBvcGVuZGlyKCRkaXIpOwogIAogICAgaWYgKCEgJGRpcl9vcGVuKQogICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAKICAgICRmaWxlcyA9IGFycmF5KCk7CiAgICB3aGlsZSAoKCRkaXJfY29udGVudCA9IHJlYWRkaXIoJGRpcl9vcGVuKSkgIT0gZmFsc2UpCiAgICAgIHsKCS8vIHdlIGlnbm9yZSBpbmRleC5odG1sIGZpbGVzIGlmIHRoZSBwcmVmZXJlbmNlIGlzIHNldAoJaWYoICRkaXJfY29udGVudCA9PSAnaW5kZXguaHRtbCcgJiYgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9kdW1teV9pbmRleF9odG1sJykpCgkgIHsKCSAgICBjb250aW51ZTsKCSAgfQoKCS8vIGlnbm9yZSBkb3QgZmlsZXMKCWlmKCBwcmVnX21hdGNoKCAiL15cLi8iLCAkZGlyX2NvbnRlbnQgKSApCgkgIHsKCSAgICBjb250aW51ZTsKCSAgfQoKCSRmaWxlc1tdID0gJGRpcl9jb250ZW50OwogICAgICB9CiAgCiAgICBpZiggaXNfYXJyYXkoICRmaWxlcyApICkKICAgICAgewoJaWYgKCRzb3J0ID09IDEpCgkgIHJzb3J0KCRmaWxlcywgU09SVF9TVFJJTkcpOwoJZWxzZQoJICBzb3J0KCRmaWxlcywgU09SVF9TVFJJTkcpOwogICAgICB9CiAgCiAgICByZXR1cm4gJGZpbGVzOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBfbWtkaXJyKCAkcGF0aG5hbWUsICRtb2RlICkKICAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICAgTWFrZSBhIGRpcmVjdG9yeSByZWN1cnNpdmVseQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfbWtkaXJyICgkcGF0aG5hbWUsICRtb2RlID0gMDc3NykKICB7CiAgICAvLyBDaGVjayBpZiBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMKICAgIGlmIChpc19kaXIgKCRwYXRobmFtZSkgfHwgZW1wdHkgKCRwYXRobmFtZSkpCiAgICB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8vIEVuc3VyZSBhIGZpbGUgZG9lcyBub3QgYWxyZWFkeSBleGlzdCB3aXRoIHRoZSBzYW1lIG5hbWUKICAgIGlmIChpc19maWxlICgkcGF0aG5hbWUpKQogICAgewogICAgICAvLyBSQzogTW9kaWZpY2F0aW9uIHN1Y2ggdGhhdCB0aGlzIGlzbid0IGFuIGVycm9yCiAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8vIENyYXdsIHVwIHRoZSBkaXJlY3RvcnkgdHJlZQogICAgJG5leHRfcGF0aG5hbWUgPQogICAgICBzdWJzdHIgKCRwYXRobmFtZSwgMCwgc3RycnBvcyAoJHBhdGhuYW1lLCBESVJFQ1RPUllfU0VQQVJBVE9SKSk7CiAgICBpZiAoJHRoaXMtPl9ta2RpcnIgKCRuZXh0X3BhdGhuYW1lLCAkbW9kZSkpCiAgICB7CiAgICAgIGlmICghZmlsZV9leGlzdHMgKCRwYXRobmFtZSkpCiAgICAgIHsKCQkJCXJldHVybiBta2RpciAoJHBhdGhuYW1lLCAkbW9kZSk7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZmFsc2U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX2lzVmFsaWRGaWxlbmFtZSggJGZpbGVuYW1lICkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIFRlc3QgYSBzdHJpbmcgdG8gc2VlIGlmIGl0IGlzIGEgdmFsaWQgZmlsZW5hbWUgKGkuZSkgdGhlCiAgIGV4dGVuc2lvbiBmYWxscyBpbiBvdXIgYWxsb3dlZCBleHRlbnNpb25zLCBhbmQgdGhlcmUgYXJlCiAgIG5vIGludmFsaWQgY2hhcmFjdGVycy4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfaXNWYWxpZEZpbGVuYW1lICgkZmlsZW5hbWUpCiAgewogICAgJGZpbGVfbmFtZSA9IHRyaW0gKCRmaWxlbmFtZSk7CiAgICAkZXh0ZW5zaW9uID0gc3RydG9sb3dlciAoc3RycmNociAoJGZpbGVfbmFtZSwgIi4iKSk7CgogICAgLy8gYXJyYXkgb2YgZmlsZXMgd2UgZG9uJ3QgYWxsb3cKICAgICRleHRfc3RyID0gJHRoaXMtPnVwbG9hZF9leHRlbnNpb25zOwogICAgaWYoICRleHRfc3RyID09ICcnICkKICAgICAgewoJJGV4dF9zdHIgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSAoInZhbGlkX3VwbG9hZGV4dGVuc2lvbnMiKTsKICAgICAgfQogICAgJGV4dF9hcnJheSA9IHNwbGl0ICgiLCIsICRleHRfc3RyKTsKICAgICRleHRfY291bnQgPSBjb3VudCAoJGV4dF9hcnJheSk7CgogICAgaWYgKCEkZmlsZV9uYW1lKQogICAgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgIGlmICghJGV4dF9hcnJheSkKICAgICAgewoJcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgZWxzZQogICAgICB7Cglmb3JlYWNoICgkZXh0X2FycmF5IGFzICR2YWx1ZSkKCXsKCSAgJGZpcnN0X2NoYXIgPSBzdWJzdHIgKCR2YWx1ZSwgMCwgMSk7CgkgIGlmICgkZmlyc3RfY2hhciA8PiAiLiIpCgkgIHsKCSAgICAkZXh0ZW5zaW9uc1tdID0gIi4iLnN0cnRvbG93ZXIgKCR2YWx1ZSk7CgkgIH0KCSAgZWxzZQoJICB7CgkgICAgJGV4dGVuc2lvbnNbXSA9IHN0cnRvbG93ZXIgKCR2YWx1ZSk7CgkgIH0KCX0KCgkkdmFsaWRfZXh0ZW5zaW9uID0gZmFsc2U7Cglmb3JlYWNoICgkZXh0ZW5zaW9ucyBhcyAkdmFsdWUpCgl7CgkgIGlmICgkdmFsdWUgPT0gJGV4dGVuc2lvbikKCSAgewoJICAgICR2YWxpZF9leHRlbnNpb24gPSB0cnVlOwoJICAgIGJyZWFrOwoJICB9Cgl9CgoJcmV0dXJuICR2YWxpZF9leHRlbnNpb247CiAgICAgIH0KICAgIH0KICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBFTkQgT0YgVVRJTElUWSBGVU5DVElPTlMKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXROYW1lKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXROYW1lICgpCiAgewogICAgcmV0dXJuICdVcGxvYWRzJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRGcmllbmRseU5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZyAoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEV2ZW50RGVzY3JpcHRpb24oICRuYW1lICkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uKCAkbmFtZSApCiAgewogICAgc3dpdGNoICggJG5hbWUgKQogICAgICB7CiAgICAgIGNhc2UgJ09uVXBsb2FkJzoKCXJldHVybiAkdGhpcy0+TGFuZygnaW5mb19ldmVudF9vbnVwbG9hZCcpOwoJYnJlYWs7CiAgICAgIGNhc2UgJ09uUmVtb3ZlJzoKCXJldHVybiAkdGhpcy0+TGFuZygnaW5mb19ldmVudF9vbnJlbW92ZScpOwoJYnJlYWs7CiAgICAgIGNhc2UgJ09uRG93bmxvYWQnOgoJcmV0dXJuICR0aGlzLT5MYW5nKCdpbmZvX2V2ZW50X29uZG93bmxvYWQnKTsKCWJyZWFrOwogICAgICBjYXNlICdPbkNyZWF0ZUNhdGVnb3J5JzoKCXJldHVybiAkdGhpcy0+TGFuZygnaW5mb19ldmVudF9vbmNyZWF0ZWNhdGVnb3J5Jyk7CglicmVhazsKICAgICAgY2FzZSAnT25EZWxldGVDYXRlZ29yeSc6CglyZXR1cm4gJHRoaXMtPkxhbmcoJ2luZm9fZXZlbnRfb25kZWxldGVjYXRlZ29yeScpOwoJYnJlYWs7CiAgICAgIH0KICAgIHJldHVybiAiIjsKICB9CgogIAogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldFZlcnNpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldFZlcnNpb24oKQogIHsKICAgIHJldHVybiAnMS4zLjAtYmV0YTMnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEV2ZW50SGVscCggJGV2ZW50bmFtZSApCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwICggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nICgnaGVscF8nLiRldmVudG5hbWUpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0SGVscCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0SGVscCAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZyAoJ2hlbHAnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3IoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvciAoKQogIHsKICAgIHJldHVybiAnY2FsZ3V5MTAwMCc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QXV0aG9yRW1haWwoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsICgpCiAgewogICAgcmV0dXJuICdyb2JAdGVjaGNvbS5keW5kbnMub3JnJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRDaGFuZ2VMb2coKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldENoYW5nZUxvZyAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZyAoJ2NoYW5nZWxvZycpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIElzUGx1Z2luTW9kdWxlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSAoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEhhc0FkbWluKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBIYXNBZG1pbiAoKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEFkbWluU2VjdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uICgpCiAgewogICAgcmV0dXJuICdjb250ZW50JzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBNaW5pbXVtQ01TVmVyc2lvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24gKCkKICB7CiAgICByZXR1cm4gJzEuMC40JzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTZXRQYXJhbWV0ZXJzKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBTZXRQYXJhbWV0ZXJzICgpCiAgewogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigna2V5JywgJ3ZhbHVlJywgJHRoaXMtPkxhbmcoJ3BhcmFtX2tleScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ25vYXV0aG9yJywgJzEnLCAkdGhpcy0+TGFuZygncGFyYW1fbm9hdXRob3InKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd1cGxvYWRfaWQnLCdpZCcsJHRoaXMtPkxhbmcoJ3BhcmFtX3VwbG9hZF9pZCcpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NvdW50JywnJywkdGhpcy0+TGFuZygncGFyYW1fY291bnQnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0b3JkZXInLCdkYXRlX2FzYycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NvcnRvcmRlcicpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZpbGVfZXh0ZW5zaW9ucycsJ2V4dDEsZXh0MixleHQzJywkdGhpcy0+TGFuZygncGFyYW1fZmlsZWV4dGVuc2lvbnMnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeScsJ3VwbG9hZF9jYXRlZ29yeScsJHRoaXMtPkxhbmcoJ3BhcmFtX2NhdGVnb3J5JyksZmFsc2UpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmlsdGVyJywneWVzJywkdGhpcy0+TGFuZygncGFyYW1fZmlsdGVyJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm9faW5pdGlhbCcsJzEnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub19pbml0aWFsJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbW9kZScsJ3N1bW1hcnknLCR0aGlzLT5MYW5nKCdwYXJhbV9tb2RlJyksZmFsc2UpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndXNlX3N0cmljdF9yZWdleHAnLCdmYWxzZScsJHRoaXMtPkxhbmcoJ3BhcmFtX3VzZV9zdHJpY3RfcmVnZXhwJykpOwogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV90ZW1wbGF0ZScpKTsKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2RldGFpbHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZGV0YWlsdGVtcGxhdGUnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2NhcHRjaGEnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9ub2NhcHRjaGEnKSk7CiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWxldHlwZXMnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWxldHlwZXMnKSk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbiAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZyAoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIgKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01hbmFnZSBVcGxvYWRzJykgfHwKICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpIHx8CiAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0RGVwZW5kZW5jaWVzKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMgKCkKICB7CiAgICByZXR1cm4gYXJyYXkgKCk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgSW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UgKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcgKCdwb3N0aW5zdGFsbCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZyAoJ3Bvc3R1bmluc3RhbGwnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBEb0FjdGlvbigkYWN0aW9uLCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBEb0FjdGlvbiAoJGFjdGlvbiwgJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQgPSAtMSkKICB7CiAgICBzd2l0Y2ggKCRhY3Rpb24pCiAgICAgIHsKICAgICAgY2FzZSAnZG9fdXBsb2FkJzoKCXsKCSAgLy8gYSB1c2VyIGlzIHRyeWluZyB0byB1cGxvYWQgc29tZXRoaW5nCgkgIC8vIGZpcnN0IGNoZWNrIGlmIGNhcHRjaGEgd2FzIHNldAoJICAkY2FwdGNoYSA9JiAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKCSAgaWYoIGlzX29iamVjdCgkY2FwdGNoYSkgJiYgIWlzc2V0KCRwYXJhbXNbJ25vY2FwdGNoYSddKSApCgkgICAgewoJICAgICAgaWYgKCEkY2FwdGNoYS0+Q2hlY2tDYXB0Y2hhKCRwYXJhbXNbJ2lucHV0X2NhcHRjaGEnXSkpCgkJewoJCSAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCQkgICAgJHRoaXMtPkxhbmcoJ2Vycm9yX2NhcHRjaGFtaXNtYXRjaCcpKTsKCQkgIHJldHVybjsKCQl9CgkgICAgfQoJICAkcmV0ID0gJHRoaXMtPkF0dGVtcHRVcGxvYWQgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKCSAgaWYoICRyZXRbMF0gPT0gRkFMU0UgKQoJICAgIHsKCSAgICAgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkgICAgICAgJHJldFsxXSApOwoJICAgICAgcmV0dXJuOwoJICAgIH0KCSAgJHN0ciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWRpcmVjdF9vbl91cGxvYWQnKTsKCSAgJGlkID0gJHJldHVybmlkOwoJICBpZiggJHN0ciAhPSAnJyApCgkgICAgewoJICAgICAgJGlkID0gQ29udGVudE1hbmFnZXI6OkdldFBhZ2VJREZyb21BbGlhcyggJHN0ciApOwoJICAgICAgaWYoICEkaWQgKQoJCXsKCQkgIC8vIHBhZ2Ugbm90IGZvdW5kLCBpZ25vcmUgaXQKCQkgICRpZCA9ICRyZXR1cm5pZDsKCQl9CgkgICAgfQoJICAkdGhpcy0+UmVkaXJlY3RDb250ZW50KCAkaWQgKTsKCSAgYnJlYWs7Cgl9CgogICAgICBjYXNlICdkZWxldGVjYXRlZ29yeSc6Cgl7CgkgIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSkKCSAgICB7CgkgICAgICAkdGhpcy0+X0FkbWluRGVsZXRlQ2F0ZWdvcnkgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKCSAgICB9CgkgIGJyZWFrOwoJfQoKICAgICAgY2FzZSAnZG9fZGVsZXRlY2F0ZWdvcnknOgoJewoJICAvLyBjaGVjayBwZXJtaXNzaW9ucyBhZ2FpbgoJICBpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01hbmFnZSBVcGxvYWRzJykpCgkgICAgewoJICAgICAgJHRoaXMtPl9BZG1pbkRvRGVsZXRlQ2F0ZWdvcnkgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKCSAgICB9CgkgIGJyZWFrOwoJfQoKICAgICAgY2FzZSAnZWRpdHVwbG9hZCc6Cgl7CgkgIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTWFuYWdlIFVwbG9hZHMnKSkKCSAgICB7CgkgICAgICAkdGhpcy0+X0FkbWluRWRpdFVwbG9hZCAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwoJICAgIH0KCSAgYnJlYWs7Cgl9CgogICAgICBjYXNlICdkb19lZGl0dXBsb2FkJzoKCXsKCSAgLy8gY2hlY2sgcGVybWlzc2lvbnMgYWdhaW4KCSAgaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24gKCdNYW5hZ2UgVXBsb2FkcycpKQoJICAgIHsKCSAgICAgICR0aGlzLT5fQWRtaW5Eb0VkaXRVcGxvYWQgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKCSAgICB9CgkgIGJyZWFrOwoJfQoKICAgICAgY2FzZSAnZG9fZGVsZXRldXBsb2FkJzoKCXsKCSAgLy8gY2hlY2sgcGVybWlzc2lvbnMgYWdhaW4KCSAgaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24gKCdNYW5hZ2UgVXBsb2FkcycpKQoJICAgIHsKCSAgICAgICR0aGlzLT5fQWRtaW5Eb0RlbGV0ZVVwbG9hZCAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwoJICAgIH0KCSAgYnJlYWs7Cgl9CgovLyAgICAgICBjYXNlICd1cGxvYWRmb3JtdGVtcGxhdGUnOgovLyAJewovLyAJICAvLyBjaGVjayBwZXJtaXNzaW9ucyBhZ2FpbgovLyAJICBpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbiAoJ01vZGlmeSBUZW1wbGF0ZXMnKSkKLy8gCSAgICB7Ci8vIAkgICAgICBpZiAoaXNzZXQgKCRwYXJhbXNbJ2RlZmF1bHRidXR0b24nXSkpCi8vIAkJewovLyAJCSAgJHRoaXMtPlNldFRlbXBsYXRlICgndXBsb2FkX3VwbG9hZGZvcm0nLCAkdGhpcy0+ZGZsdF91cGxvYWRmb3JtdGVtcGxhdGUpOwovLyAJCX0KLy8gCSAgICAgIGVsc2UKLy8gCQl7Ci8vIAkJICAkdGhpcy0+U2V0VGVtcGxhdGUgKCd1cGxvYWRfdXBsb2FkZm9ybScsICRwYXJhbXNbJ3RlbXBsYXRlY29udGVudCddKTsKLy8gCQl9Ci8vIAkgICAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCRpZCwgJ3VwbG9hZGZvcm1fdGVtcGxhdGUnKTsKLy8gCSAgICB9Ci8vIAkgIGJyZWFrOwovLyAJfQoKICAgICAgY2FzZSAndXBkYXRlZW1haWx0ZW1wbGF0ZSc6Cgl7CgkgIC8vIGNoZWNrIHBlcm1pc3Npb25zIGFnYWluCgkgIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTW9kaWZ5IFRlbXBsYXRlcycpKQoJICAgIHsKCSAgICAgIGlmIChpc3NldCAoJHBhcmFtc1snZGVmYXVsdGJ1dHRvbiddKSkKCQl7CgkJICAkdGhpcy0+U2V0VGVtcGxhdGUgKCd1cGxvYWRfZW1haWx0ZW1wbGF0ZScsCgkJCQkgICAgICAkdGhpcy0+ZGZsdF9lbWFpbG5vdGlmeXRlbXBsYXRlKTsKCQl9CgkgICAgICBlbHNlCgkJewoJCSAgJHRoaXMtPlNldFRlbXBsYXRlICgndXBsb2FkX2VtYWlsdGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7CgkJfQoJICAgICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICdlbWFpbF90ZW1wbGF0ZScpOwoJICAgIH0KCX0KCi8vICAgICAgIGNhc2UgJ3VwZGF0ZXN1bW1hcnl0ZW1wbGF0ZSc6Ci8vIAl7Ci8vIAkgIC8vIGNoZWNrIHBlcm1pc3Npb25zIGFnYWluCi8vIAkgIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTW9kaWZ5IFRlbXBsYXRlcycpKQovLyAJICAgIHsKLy8gCSAgICAgIGlmIChpc3NldCAoJHBhcmFtc1snZGVmYXVsdGJ1dHRvbiddKSkKLy8gCQl7Ci8vIAkJICAkdGhpcy0+U2V0VGVtcGxhdGUgKCd1cGxvYWRfZGlzcGxheXN1bW1hcnknLAovLyAJCQkJICAgICAgJHRoaXMtPmRmbHRfc3VtbWFyeXRlbXBsYXRlKTsKLy8gCQl9Ci8vIAkgICAgICBlbHNlCi8vIAkJewovLyAJCSAgJHRoaXMtPlNldFRlbXBsYXRlICgndXBsb2FkX2Rpc3BsYXlzdW1tYXJ5JywgJHBhcmFtc1sndGVtcGxhdGVjb250ZW50J10pOwovLyAJCX0KLy8gCSAgICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAnc3VtbWFyeV90ZW1wbGF0ZScpOwovLyAJICAgIH0KLy8gCSAgYnJlYWs7Ci8vIAl9CgovLyAgICAgICBjYXNlICd1cGRhdGVkZXRhaWx0ZW1wbGF0ZSc6Ci8vIAl7Ci8vIAkgIC8vIGNoZWNrIHBlcm1pc3Npb25zIGFnYWluCi8vIAkgIGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uICgnTW9kaWZ5IFRlbXBsYXRlcycpKQovLyAJICAgIHsKLy8gCSAgICAgIGlmIChpc3NldCAoJHBhcmFtc1snZGVmYXVsdGJ1dHRvbiddKSkKLy8gCQl7Ci8vIAkJICAkdGhpcy0+U2V0VGVtcGxhdGUgKCd1cGxvYWRfZGlzcGxheWRldGFpbCcsICR0aGlzLT5kZmx0X2RldGFpbHRlbXBsYXRlKTsKLy8gCQl9Ci8vIAkgICAgICBlbHNlCi8vIAkJewovLyAJCSAgJHRoaXMtPlNldFRlbXBsYXRlICgndXBsb2FkX2Rpc3BsYXlkZXRhaWwnLCAkcGFyYW1zWyd0ZW1wbGF0ZWNvbnRlbnQnXSk7Ci8vIAkJfQovLyAJICAgICAgJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICdkZXRhaWxfdGVtcGxhdGUnKTsKLy8gCSAgICB9Ci8vIAkgIGJyZWFrOwovLyAJfQoKICAgICAgZGVmYXVsdDoKCXBhcmVudDo6RG9BY3Rpb24oICRhY3Rpb24sICRpZCwgJHBhcmFtcywgJHJldHVybmlkICk7CglicmVhazsKICAgICAgfQogIH0KCmZ1bmN0aW9uIFNlYXJjaFJlc3VsdCgkcmV0dXJuaWQsICRhcnRpY2xlaWQsICRhdHRyID0gJycpCiAgewogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICBpZiggJGF0dHIgPT0gJ3VwbG9hZCcpCiAgICAgIHsKCS8vIGdldCB0aGUgY2F0ZWdvcnkgaWQgZm9yIGFuIHVwbG9hZCBpZAoJJGRldGFpbHMgPSAkdGhpcy0+R2V0VXBsb2FkRGV0YWlscygkYXJ0aWNsZWlkLCcnKTsKCQoJLy8gbm93IGdldCB0aGUgY2F0ZWdvcnkgbmFtZSBpbnN0ZWFkIG9mIHRoZSBjYXRlZ29yeSBpZCwgZ29kIAoJLy8gd2FzIEkgc3R1cGlkLgoJJHEgPSAiU0VMRUNUIHVwbG9hZF9jYXRlZ29yeV9uYW1lIEFTIG5hbWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcwogICAgICAgICAgICAgIFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9pZCA9ID8iOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoJGRldGFpbHNbJ3VwbG9hZF9jYXRlZ29yeV9pZCddKSApOwoJaWYoICEkZGJyZXN1bHQgfHwgISRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSApCgkgIHsKCSAgICBkaWUoICdlcnJvcicgKTsKCSAgICAvLyB0b2RvLCBhdWRpdAoJICAgIHJldHVybjsKCSAgfQoJJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKTsKCSRyZXN1bHRbMF0gPSAkdGhpcy0+R2V0RnJpZW5kbHlOYW1lKCk7CgkkcmVzdWx0WzFdID0gJGRldGFpbHNbJ3VwbG9hZF9uYW1lJ107CgkkcmVzdWx0WzJdID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRhcnRpY2xlaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAkZGV0YWlsc1sndXBsb2FkX25hbWUnXSwKCQkJCQlhcnJheSgnbW9kZSc9PidzaW5nbGUnLAoJCQkJCSAgICAgICd1cGxvYWRfaWQnID0+ICRhcnRpY2xlaWQsCgkJCQkJICAgICAgJ2NhdGVnb3J5JyA9PiAkcm93WyduYW1lJ10gKSwgJycsIHRydWUpOwoJcmV0dXJuICRyZXN1bHQ7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIFNlYXJjaFJlSW5kZXgoJiRtb2R1bGUpCiAgewogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwoKICAgICRxdWVyeSA9ICJTRUxFQ1QgdXBsb2FkX2lkLCB1cGxvYWRfbmFtZSwgdXBsb2FkX2F1dGhvciwgdXBsb2FkX3N1bW1hcnksIHVwbG9hZF9kZXNjcmlwdGlvbiwgdXBsb2FkX2lwLCB1cGxvYWRfZGF0ZSBGUk9NIGNtc19tb2R1bGVfdXBsb2FkcyBBLCBjbXNfbW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyBCIFdIRVJFIEEudXBsb2FkX2NhdGVnb3J5X2lkID0gQi51cGxvYWRfY2F0ZWdvcnlfaWQgQU5EIEIudXBsb2FkX2NhdGVnb3J5X2xpc3RhYmxlID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoIDEgKSApOwogICAgaWYoICEkZGJyZXN1bHQgKQogICAgICB7CglkaWUoICRkYi0+RXJyb3JNc2coKSApOwogICAgICB9CiAgICB3aGlsZSggJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSApCiAgICAgIHsKCSRzdHIgPSAkcm93Wyd1cGxvYWRfbmFtZSddLicgJy4kcm93Wyd1cGxvYWRfYXV0aG9yJ10uJyAnLgoJICAkcm93Wyd1cGxvYWRfc3VtbWFyeSddLicgJy4kcm93Wyd1cGxvYWRfZGVzY3JpcHRpb24nXTsKCSRtb2R1bGUtPkFkZFdvcmRzKCAkdGhpcy0+R2V0TmFtZSgpLCAkcm93Wyd1cGxvYWRfaWQnXSwgJ3VwbG9hZCcsICRzdHIgKTsKICAgICAgfQogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQkVHSU4gT0YgVUkgU1VQUE9SVCBGVU5DVElPTlMKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0FkbWluRWRpdERlZmF1bHRUZW1wbGF0ZUZvcm0KICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIEEgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyBhIGZvcm0gZm9yIGVkaXRpbmcgYSBkZWZhdWx0IHRlbXBsYXRlCiAgIGFuZC9vciByZXR1cm5pbmcgaXQgdG8gc3lzdGVtIGRlZmF1bHRzLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9BZG1pbkVkaXREZWZhdWx0VGVtcGxhdGVGb3JtKCRpZCwkcmV0dXJuaWQsJHByZWZuYW1lLCRhY3RpdmVfdGFiLCR0aXRsZSwKCQkJCQkgJGZpbGVuYW1lLCRpbmZvKQogIHsKICAgICRzbWFydHkgPSYgJHRoaXMtPnNtYXJ0eTsKICAgICRzbWFydHktPmFzc2lnbignZGVmYXVsdHRlbXBsYXRlZm9ybV90aXRsZScsJHRpdGxlKTsKICAgICRzbWFydHktPmFzc2lnbignaW5mb190aXRsZScsJGluZm8pOwogICAgJHNtYXJ0eS0+YXNzaWduKCdzdGFydGZvcm0nLAoJCSAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnc2V0ZGVmYXVsdHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCcnLAoJCQkJCSAgIGFycmF5KCdwcmVmbmFtZSc9PiRwcmVmbmFtZSwKCQkJCQkJICdhY3RpdmVfdGFiJz0+JGFjdGl2ZV90YWIsCgkJCQkJCSAnZmlsZW5hbWUnPT4kZmlsZW5hbWUpKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ3RlbXBsYXRlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90ZW1wbGF0ZScsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwKCQkJCQkJCSAgICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwcmVmbmFtZSksCgkJCQkJCQkgICAnaW5wdXRfdGVtcGxhdGUnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKICAgICRzbWFydHktPmFzc2lnbigncmVzZXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3Jlc2V0dG9kZWZhdWx0JywKCQkJCQkJICAgICAkdGhpcy0+TGFuZygncmVzZXR0b2RlZmF1bHQnKSkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywKCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXRkZWZhdWx0dGVtcGxhdGUudHBsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0FkbWluQ3JlYXRlVGVtcGxhdGVMaXN0KCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICBBIGZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgYSBsaXN0IG9mIHRlbXBsYXRlcyBtYXRjaGluZwogICBhIHByZWZpeCwgYW5kIHRoZSBhcHByb3ByaWF0ZSBlZGl0LCBhZGQsIGFuZCBkZWxldGUgbGlua3MuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gX0FkbWluQ3JlYXRlVGVtcGxhdGVMaXN0KCAkaWQsICRyZXR1cm5pZCwgJHByZWZpeCwgJGRlZmF1bHR0ZW1wbGF0ZXByZWYsIAoJCQkJICAgICAkYWN0aXZlX3RhYiwgJGRlZmF1bHRwcmVmbmFtZSwKCQkJCSAgICAgJHRpdGxlKQogIHsKICAgIC8vIHdlJ3JlIGdvbm5hIGFsbG93IG11bHRpcGxlIHRlbXBsYXRlcyBoZXJlCiAgICAvLyBidXQgd2UncmUgZ29ubmEgcHJlZml4IHRoZW0gYWxsIHdpdGggc29tZXRoaW5nCiAgICBnbG9iYWwgJGdDbXM7CiAgICAKICAgICRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOwogICAgJHRydWVpbWFnZTEgPSAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywnZGVmYXVsdCcsJycsJycsJ3N5c3RlbWljb24nKTsKICAgICRhbGx0ZW1wbGF0ZXMgPSAkdGhpcy0+TGlzdFRlbXBsYXRlcygpOwogICAgJHJvd2FycmF5ID0gYXJyYXkoKTsKICAgICRyb3djbGFzcyA9ICdyb3cxJzsKICAgIGZvcmVhY2goICRhbGx0ZW1wbGF0ZXMgYXMgJG9uZXRlbXBsYXRlICkKICAgICAgewoJaWYoICFwcmVnX21hdGNoKCIvXiRwcmVmaXgvIiwgJG9uZXRlbXBsYXRlICkgKQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCQoJJHRtcCA9IHN1YnN0cigkb25ldGVtcGxhdGUsc3RybGVuKCRwcmVmaXgpKTsKCSRyb3cgPSBuZXcgU3RkQ2xhc3MoKTsKCSRyb3ctPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluayggJGlkLCAnZWRpdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCSR0bXAsIGFycmF5KCd0ZW1wbGF0ZScgPT4gJHRtcCwKCQkJCQkJICAgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJICAgICd0aXRsZSc9PiR0aXRsZSwKCQkJCQkJICAgICdwcmVmaXgnPT4kcHJlZml4LAoJCQkJCQkgICAgJ21vZGUnPT4nZWRpdCcpKTsKCSRyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoKCSRkZWZhdWx0ID0gKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCRkZWZhdWx0cHJlZm5hbWUpID09ICR0bXApID8gdHJ1ZSA6IGZhbHNlOwoJaWYoICRkZWZhdWx0ICkKCSAgewoJICAgICRyb3ctPmRlZmF1bHQgPSAkdHJ1ZWltYWdlMTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVmYXVsdCA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdtYWtlZGVmYXVsdHRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCSAgICAgICAkZmFsc2VpbWFnZTEsCgkJCQkJICAgICAgIGFycmF5KCd0ZW1wbGF0ZSc9PiR0bXAsCgkJCQkJCSAgICAgJ2RlZmF1bHRwcmVmbmFtZSc9PiRkZWZhdWx0cHJlZm5hbWUsCgkJCQkJCSAgICAgJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiKSk7CgkgIH0KCgkkcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJICAgICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+CgkJCQkJICAgIERpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsCgkJCQkJCQkgICR0aGlzLT5MYW5nICgnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJICAgIGFycmF5ICgndGVtcGxhdGUnID0+ICR0bXAsCgkJCQkJCSAgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJICAgJ3ByZWZpeCc9PiRwcmVmaXgsCgkJCQkJCSAgICd0aXRsZSc9PiR0aXRsZSwKCQkJCQkJICAgJ21vZGUnPT4nZWRpdCcpKTsKCQoJJHRtcCA9ICRwcmVmaXguImRlZmF1bHQiOwoJaWYoICRvbmV0ZW1wbGF0ZSA9PSAkdG1wICkKCSAgewoJICAgICRyb3ctPmRlbGV0ZWxpbmsgPSAnJm5ic3A7JzsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdkZWxldGV0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCQkJICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPgoJCQkJCQkgIERpc3BsYXlJbWFnZSAoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJCQkkdGhpcy0+TGFuZyAoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksCgkJCQkJCSAgYXJyYXkgKCd0ZW1wbGF0ZScgPT4gJG9uZXRlbXBsYXRlKSwKCQkJCQkJICAkdGhpcy0+TGFuZyAoJ2FyZXlvdXN1cmUnKSk7CgkgIH0KCQoJYXJyYXlfcHVzaCAoJHJvd2FycmF5LCAkcm93KTsKCSgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsKICAgICAgfQogICAgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHJvd2FycmF5ICk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWVwcm9tcHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X25hbWUnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlZmF1bHRwcm9tcHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X2RlZmF1bHQnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25ld3RlbXBsYXRlbGluaycsCgkJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCQkgICAgICR0aGlzLT5MYW5nKCdwcm9tcHRfbmV3dGVtcGxhdGUnKSwKCQkJCQkgICAgIGFycmF5KCdwcmVmaXgnID0+ICRwcmVmaXgsCgkJCQkJCSAgICdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJICAgJ3RpdGxlJz0+JHRpdGxlLAoJCQkJCQkgICAnbW9kZScgPT4gJ2FkZCcsCgkJCQkJCSAgICdkZWZhdWx0dGVtcGxhdGVwcmVmJyA9PiAkZGVmYXVsdHRlbXBsYXRlcHJlZgoJCQkJCQkgICApKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXR0ZW1wbGF0ZXMudHBsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0FkbWluRGVsZXRlQ2F0ZWdvcnkoICRpZCwgJHBhcmFtcywgJHJldHVybmlkICkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIEZ1bmN0aW9uIHRoYXQgcHJvdmlkZXMgYSBmb3JtIHRvIGFsbG93IHRoZSB1c2VyIHRvIGRlbGV0ZQogICBhIGNhdGVnb3J5IGZyb20gdGhlIGRhdGFiYXNlLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9BZG1pbkRlbGV0ZUNhdGVnb3J5ICgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgaWYoICFpc3NldCggJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSApICkKICAgICAgewoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKCXJldHVybjsKICAgICAgfQoKICAgIC8vIHRlc3QgdG8gc2VlIGlmIHRoZXJlIGFyZSBzdGlsbCBmaWxlcyBsZWZ0IGluIHRoaXMgY2F0ZWdvcnksIGlmIHRoZXJlIGFyZSwgdGhlbiBwdWtlCiAgICAvLyBvdGhlcndpc2UgZGVsZXRlIHRoZSBkaXJlY3RvcnkgdG9vIChtYXliZSkKICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfaWQgPSA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSApICk7CiAgICAkYyA9ICRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKTsKICAgIGlmKCAkZGJyZXN1bHQtPlJlY29yZENvdW50KCkgKQogICAgICB7CgkkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLAoJCQkJICR0aGlzLT5MYW5nICgnZXJyb3JfY2F0ZWdvcnlub3RlbXB0eScpKTsKCXJldHVybjsKICAgICAgfQoKICAgIC8vIGRpc3BsYXkgc29tZXRoaW5nIHRvIGFsbG93IHRoZSB1c2VyIHRvIGRlbGV0ZSB0aGUgY2F0ZWdvcnkuLi4uIHdpbGwgKG9wdGlvbmFsbHkpIGRlbGV0ZQogICAgLy8gYWxsIG9mIHRoZSAobWFuYWdlZCkgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeSB0b28uCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oICd3YXJuaW5nX2RlbGV0ZWNhdGVnb3J5JywKCQkJICAgJHRoaXMtPkxhbmcoJ3dhcm5pbmdfZGVsZXRlY2F0ZWdvcnknKSApOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCAnc3RhcnRmb3JtJyAsCgkJCSAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoICRpZCwgJ2RvX2RlbGV0ZWNhdGVnb3J5JywgJHJldHVybmlkKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oICdoaWRkZW4nLAoJCQkgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oICRpZCwgJ2NhdGVnb3J5X2lkJywgJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSkgKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiggJ3Byb21wdF9kZWxldGVkaXJlY3RvcnknLAoJCQkgICAkdGhpcy0+TGFuZygncHJvbXB0X2RlbGV0ZWRpcmVjdG9yeScpICk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oICdpbnB1dF9kZWxldGVkaXJlY3RvcnknLAoJCQkgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCggJGlkLAoJCQkJCQkgICAgICAgJ2lucHV0X2RlbGV0ZWRpcmVjdG9yeScsCgkJCQkJCSAgICAgICAxLDAgKSApOwkJCQkJCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzdWJtaXQnKSkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kICgpKTsKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZGVsZXRlY2F0ZWdvcnkudHBsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0FkbWluRG9EZWxldGVDYXRlZ29yeSggJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQgKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgQSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGRvZXMgdGhlIGRlbGV0aW9uIG9mIHRoZSBjYXRlZ29yeQogICBnaXZlbiB0aGUgY2F0ZWdvcnkgaWQgaW4gdGhlIHBhcmFtZXRlcnMsIGFuZCBhIGZldyBvdGhlcgogICBuZWNlc3NhcnkgZGV0YWlscy4gIFRoaXMgZnVuY3Rpb24gYWxzbyB3aWxsIG9wdGlvbmFsbHkKICAgcmVtb3ZlIGFsbCBmaWxlcyBmcm9tIHRoZSBkaXJlY3RvcnkuLi4gdGhvdWdoIEkgYW0gbm90CiAgIGNlcnRhaW4gaWYgdGhpcyBpcyBnb29kIGNvZGUKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfQWRtaW5Eb0RlbGV0ZUNhdGVnb3J5ICgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgaWYoICFpc3NldCggJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSApICkKICAgICAgewoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKCXJldHVybjsKICAgICAgfQoKICAgIC8vIGdldCB0aGUgY2F0ZWdvcnkgZGV0YWlscwogICAgJGNhdGVnb3J5ID0gJHRoaXMtPl9nZXRVcGxvYWRDYXRlZ29yeURldGFpbHMoICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10gKTsKICAgIGlmKCAhJGNhdGVnb3J5ICkgewoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAkdGhpcy0+TGFuZyAoJ2Vycm9yX2RiZXJyb3InKSk7CglyZXR1cm47CiAgICB9CgogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9kZWxldGVkaXJlY3RvcnknXSkgJiYgJHBhcmFtc1snaW5wdXRfZGVsZXRlZGlyZWN0b3J5J10gKQogICAgICB7CgkkcCA9ICR0aGlzLT5fY2F0ZWdvcnlQYXRoKCAkY2F0ZWdvcnlbJ3VwbG9hZF9jYXRlZ29yeV9wYXRoJ10gKTsKCSRkaXJfb3BlbiA9IEBvcGVuZGlyKCAkcCApOwoJaWYoICEkZGlyX29wZW4gKSB7CgkgICR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCQkgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX3BhdGhlcnJvcicpKTsKCSAgcmV0dXJuOwoJfQoKCXdoaWxlKCgkZGlyX2NvbnRlbnQgPSByZWFkZGlyKCRkaXJfb3BlbikpICE9IGZhbHNlKQoJICB7CgkgICAgaWYoIGlzX2ZpbGUoICRwLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGRpcl9jb250ZW50ICkgKSB7CgkgICAgICB1bmxpbmsoICRwLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGRpcl9jb250ZW50ICk7CgkgICAgfQoJICB9CgoJLy8gbm93IHRyeSB0byB1bmxpbmsgdGhlIGRpcmVjdG9yeSBpdHNlbGYKCS8vIGJ1dCBpZ25vcmUgYW55IGVycm9ycy4KCXJtZGlyKCAkcCApOwogICAgICB9CgoKICAgIC8vIGRlbGV0ZSB0aGUgZGlyZWN0b3J5IGNhdGVnb3J5CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ10gKSApOwoKICAgIC8vIHNlbmQgYW4gZXZlbnQKICAgICRwYXJtc1tdID0gYXJyYXkoKTsKICAgICRwYXJtc1snbmFtZSddID0gJGNhdGVnb3J5Wyd1cGxvYWRfY2F0ZWdvcnlfbmFtZSddOwogICAgJHBhcm1zWydwYXRoJ10gPSAkY2F0ZWdvcnlbJ3VwbG9hZF9jYXRlZ29yeV9wYXRoJ107CiAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkRlbGV0ZUNhdGVnb3J5JywkcGFybXMpOwoKICAgIC8vIGFuZCB3ZSdyZSBkb25lCiAgICAkdGhpcy0+bXlSZWRpcmVjdFRvVGFiKCAkaWQsICdjYXRlZ29yaWVzJyApOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIF9BZG1pbkVkaXRVcGxvYWQoICRpZCwgJHBhcmFtcywgJHJldHVybmlkICkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIEEgZnVuY3Rpb24gdGhhdCBwcm92aWRlcyBhIGZvcm0gdG8gYWxsb3cgdGhlIHVzZXIgdG8gZWRpdAogICB0aGUgcGFyYW1ldGVycyBvciBkZXRhaWxzIG9mIGFuIHVwbG9hZGVkIGZpbGUuCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gX0FkbWluRWRpdFVwbG9hZCAoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3RpdGxlJywgJHRoaXMtPkxhbmcgKCdlZGl0dXBsb2FkJykpOwogICAgCiAgICAvLyBjaGVjayB0aGluZ3Mgb3V0CiAgICBpZiAoIWlzc2V0ICgkcGFyYW1zWyd1cGxvYWRfaWQnXSkpCiAgICAgIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ21lc3NhZ2UnLCAkdGhpcy0+TGFuZyAoJ2Vycm9yX25vaWQnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlcnJvcicsIDEpOwoJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlICgnZWRpdHVwbG9hZC50cGwnKTsKCXJldHVybjsKICAgICAgfQoKICAgIC8vIGdldCB0aGUgaW5mbyBmcm9tIHRoZSBkYXRhYmFzZSAoZm9yIHRoaXMgZmlsZSkKICAgICRxdWVyeSA9CiAgICAgICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCAoKS4KICAgICAgIm1vZHVsZV91cGxvYWRzIFdIRVJFIHVwbG9hZF9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ3VwbG9hZF9pZCddKSk7CiAgICBpZiAoISRkYnJlc3VsdCkKICAgICAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgnZXJyb3JfZGJlcnJvcicpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgMSk7CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdlZGl0dXBsb2FkLnRwbCcpOwoJcmV0dXJuOwogICAgICB9CiAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdyAoKTsKICAgIGlmICghJHJvdykKICAgICAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICR0aGlzLT5MYW5nICgnZXJyb3JfZGJlcnJvcicpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgMSk7CgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdlZGl0dXBsb2FkLnRwbCcpOwoJcmV0dXJuOwogICAgICB9CgogICAgLy8gYW5kIHRoZSBjYXRlZ29yeSBpbmZvIGZvciB0aGlzIGNhdGVnb3J5CiAgICAkY2F0cGF0aCA9ICR0aGlzLT5nZXRDYXRlZ29yeVBhdGhGcm9tSUQoJHJvd1sndXBsb2FkX2NhdGVnb3J5X2lkJ10pOwoKICAgIC8vIGdldCB0aGUgY2F0ZWdvcnkgbGlzdAogICAgJGNhdGVnb3J5bGlzdCA9IGFycmF5ICgpOwogICAgJHF1ZXJ5ID0KICAgICAgIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4ICgpLgogICAgICAibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyBPUkRFUiBCWSB1cGxvYWRfY2F0ZWdvcnlfbmFtZSBBU0MiOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnkpOwogICAgaWYgKCEkZGJyZXN1bHQpCiAgICAgIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2Vycm9yJywgMSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdtZXNzYWdlJywgJHRoaXMtPkxhbmcgKCdlcnJvcl9ub2NhdGVnb3JpZXMnKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gdGhpcyBjb3VsZCBwcm9iYWJseSBiZSBkb25lIHdpdGggYSBmb3JfZWFjaCwgYnV0IHdoYXQgdGhlIGhlbGwKCXdoaWxlICgkcm93MiA9ICRkYnJlc3VsdC0+RmV0Y2hSb3cgKCkpCgkgIHsKCSAgICAkY2F0ZWdvcnlsaXN0WyRyb3cyWyd1cGxvYWRfY2F0ZWdvcnlfbmFtZSddXSA9CgkgICAgICAkcm93MlsndXBsb2FkX2NhdGVnb3J5X2lkJ107CgkgIH0KICAgICAgfQoKICAgIC8vIHBvcHVsYXRlIHRoZSB0ZW1wbGF0ZQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgic3RhcnRmb3JtIiwKCQkJCSAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fZWRpdHVwbG9hZCcsICRyZXR1cm5pZCkpOwoJICAvLyB0b2RvIGNoZWNrIHRoaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBzcGFjZXMgaW4gdGhlIG5hbWUKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2ZpeCcsCgkJICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdmaXgnLCAkdGhpcy0+TGFuZygnZml4bWUnKSkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnc3VibWl0JywKCQkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0ICgkaWQsICdzdWJtaXQnLCAkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2NhbmNlbCcsCgkJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnY2FuY2VsJywgJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdlbmRmb3JtJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQgKCkpOwogICAgCgogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X3VwbG9hZG5hbWUnLCAkdGhpcy0+TGFuZygnbmFtZScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X3VwbG9hZG5hbWUnLCAKCQkJICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X3VwbG9hZG5hbWUnLAoJCQkJCQkgICRyb3dbJ3VwbG9hZF9uYW1lJ10sIDIwLCAyNTUgKSk7CiAgICAvLyB0aHVtYm5haWw/CiAgICAkdG5maWxlID0gJHRoaXMtPl9jYXRlZ29yeVBhdGgoICRjYXRwYXRoLkRJUkVDVE9SWV9TRVBBUkFUT1IuCgkJCQkgICAgJy50aHVtYnMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJHBhcmFtc1sndXBsb2FkX2lkJ10uJ190aHVtYicpOwogICAgaWYoIGZpbGVfZXhpc3RzKCAkdG5maWxlICkgKQogICAgICB7CgkkdG51cmwgPSAkdGhpcy0+Y21zLT5jb25maWdbJ3VwbG9hZHNfdXJsJ10uIi8iLiRjYXRwYXRoLicvLnRodW1icy8nLiRwYXJhbXNbJ3VwbG9hZF9pZCddLidfdGh1bWInOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X3RodW1ibmFpbCcsICR0aGlzLT5MYW5nKCd0aHVtYm5haWwnKS4nOicpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncGljX3RodW1ibmFpbCcsICc8aW1nIHNyYz0iJy4kdG51cmwuJyIgYm9yZGVyPSIwIi8+Jyk7CiAgICAgIH0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ25hbWVtZXNzYWdlJywgJHRoaXMtPkxhbmcoJ3JlbmFtZW1lc3NhZ2UnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdwcm9tcHRfdXBsb2FkZGF0ZScsICR0aGlzLT5MYW5nKCdkYXRldXBsb2FkZWQnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdkYXRhX3VwbG9hZGRhdGUnLCAkcm93Wyd1cGxvYWRfZGF0ZSddKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF91cGxvYWRzaXplJywgJHRoaXMtPkxhbmcoJ3NpemVrYicpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2RhdGFfdXBsb2Fkc2l6ZScsIGludHZhbCgkcm93Wyd1cGxvYWRfc2l6ZSddIC8gMTAyNC4wICsgMC41KSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdwcm9tcHRfdXBsb2FkYXV0aG9yJywgJHRoaXMtPkxhbmcoJ2F1dGhvcicpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2lucHV0X3VwbG9hZGF1dGhvcicsIAoJCQkgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2lucHV0X3VwbG9hZGF1dGhvcicsCgkJCQkJCSAgJHJvd1sndXBsb2FkX2F1dGhvciddLCAyMCwgMjU1KSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdwcm9tcHRfbW92ZWNhdGVnb3J5JywgJHRoaXMtPkxhbmcgKCdwcm9tcHRfY2F0ZWdvcnluYW1lJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfbW92ZWNhdGVnb3J5JywKCQkJICAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcERvd24gKCRpZCwgImlucHV0X21vdmVjYXRlZ29yeSIsICRjYXRlZ29yeWxpc3QsIC0xLAoJCQkJCQkgICAgICAgJHJvd1sndXBsb2FkX2NhdGVnb3J5X2lkJ10pKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3BhdGhtZXNzYWdlJywgJHRoaXMtPkxhbmcoJ3BhdGhtZXNzYWdlJykpOwoKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3Byb21wdF91cGxvYWRzdW1tYXJ5JywgJHRoaXMtPkxhbmcgKCdzdW1tYXJ5JykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfdXBsb2Fkc3VtbWFyeScsCgkJCSAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQgKCRpZCwgJ2lucHV0X3VwbG9hZHN1bW1hcnknLAoJCQkJCQkgICAkcm93Wyd1cGxvYWRfc3VtbWFyeSddLCA4MCwgMjU1KSk7CgogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgncHJvbXB0X3VwbG9hZGRlc2MnLCAkdGhpcy0+TGFuZyAoJ2Rlc2NyaXB0aW9uJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnaW5wdXRfdXBsb2FkZGVzYycsCgkJCSAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYSAoZmFsc2UsICRpZCwgJHJvd1sndXBsb2FkX2Rlc2NyaXB0aW9uJ10sICdpbnB1dF91cGxvYWRkZXNjJyApKTsKCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24gKCdoaWRkZW4nLAoJCQkgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4gKCRpZCwgJ3VwbG9hZF9pZCcsJHBhcmFtc1sndXBsb2FkX2lkJ10pLgoJCQkgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4gKCRpZCwgJ2NhdGVnb3J5X2lkJywkcGFyYW1zWydjYXRlZ29yeV9pZCddKSk7CiAgICAKICAgIC8vIHBvcHVsYXRlIHRoZSByb3dzIG9mIGRvd25sb2FkIGluZm9ybWF0aW9uCiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZG93bmxvYWRzIFdIRVJFIGZpbGVfaWQgPSA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHBhcmFtc1sndXBsb2FkX2lkJ10gKSApOwoKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZGF0ZXRleHQnLCAkdGhpcy0+TGFuZygnZGF0ZScpKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaXB0ZXh0JywgJHRoaXMtPkxhbmcoJ2lwX2FkZHJlc3MnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3VzZXJ0ZXh0JywgJHRoaXMtPkxhbmcoJ3VzZXJuYW1lJykpOwogICAgJHJvd2FycmF5ID0gYXJyYXkoKTsKICAgICRyb3djbGFzcyA9ICdyb3cxJzsKICAgIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICAgICAgewoJJG9uZXJvdyA9IG5ldyBzdGRDbGFzcygpOwoJJG9uZXJvdy0+ZGF0ZSA9ICRyb3dbJ2Rvd25sb2FkX2RhdGUnXTsKCSRvbmVyb3ctPmlwICAgPSAkcm93Wydkb3dubG9hZF9pcCddOwoJJG9uZXJvdy0+dXNlciA9ICRyb3dbJ2Rvd25sb2FkX3VzZXInXTsKCSRvbmVyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwkJCSAgICAgCgoJYXJyYXlfcHVzaCggJHJvd2FycmF5LCAkb25lcm93KTsKCSgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsKICAgICAgfQoKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2l0ZW1zJywgJHJvd2FycmF5KTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ2l0ZW1jb3VudCcsIGNvdW50KCRyb3dhcnJheSkpOwoKICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSAoJ2VkaXR1cGxvYWQudHBsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgX0FkbWluRG9FZGl0VXBsb2FkKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICBBY3R1YWxseSBwZXJmb3JtIHRoZSBkYXRhYmFzZSB1cGRhdGVzIHJlcXVlc3RlZCBpbiB0aGUKICAgX0FkbWluRWRpdFVwbG9hZCBmb3JtLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9BZG1pbkRvRWRpdFVwbG9hZCAoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgIC8vIG1ha2Ugc3VyZSB3ZSBoYXZlIGFsbCB0aGUgcGFyYW1ldGVycyB3ZSBuZWVkCiAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ3VwbG9hZF9pZCddKSB8fAoJIWlzc2V0KCRwYXJhbXNbJ2lucHV0X3VwbG9hZGRlc2MnXSkgfHwKCSFpc3NldCgkcGFyYW1zWydpbnB1dF9tb3ZlY2F0ZWdvcnknXSkgKSAKICAgICAgewoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJCSAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKCXJldHVybjsKICAgICAgfQogIAoJICAvLyB0b2RvLCBhcmUgd2UgZml4aW5nIGl0PwogCiAgICAvLyBub3cgc2VlIGlmIHdlIGNhbiBmaW5kIHRoZSBkZXRhaWxzIGFib3V0IHRoaXMgdXBsb2FkCiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMgV0hFUkUgdXBsb2FkX2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRwYXJhbXNbJ3VwbG9hZF9pZCddICkgKTsKICAgIGlmKCAhJGRicmVzdWx0ICkgewogICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLAoJCQkgICAgICAgJHRoaXMtPkxhbmcgKCdlcnJvcl9kYmVycm9yJykpOwogICAgICByZXR1cm47CiAgICB9CiAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwogICAgaWYoICEkcm93ICkgewogICAgICAkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLAoJCQkgICAgICAgJHRoaXMtPkxhbmcgKCdlcnJvcl9kYmVycm9yJykpOwogICAgICByZXR1cm47CiAgICB9CgogICAgLy8gd293IHdlIGRpZC4uLiBub3cgYWxsIHdlIGhhdmUgdG8gZG8gaXMgY29tcGFyZSBjb21tZW50cywgYW5kIHRoZSBjYXRlZ29yaWVzLCBhbmQgb2ZmIHdlIGdvLgogICAgJGRvX3VwZGF0ZSA9IGZhbHNlOwogICAgJG5ld25hbWUgPSAkcm93Wyd1cGxvYWRfbmFtZSddOwogICAgJG5ld2NhdGVnb3J5ID0gJHJvd1sndXBsb2FkX2NhdGVnb3J5X2lkJ107CiAgICAkbmV3YXV0aG9yID0gJHJvd1sndXBsb2FkX2F1dGhvciddOwogICAgJG5ld2Rlc2MgPSAkcm93Wyd1cGxvYWRfZGVzY3JpcHRpb24nXTsKICAgICRuZXdzdW1tYXJ5ID0gJHJvd1sndXBsb2FkX3N1bW1hcnknXTsKICAgIGlmKCAkcGFyYW1zWydpbnB1dF9tb3ZlY2F0ZWdvcnknXSAhPSAkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfaWQnXSB8fAoJJHBhcmFtc1snaW5wdXRfdXBsb2FkbmFtZSddICE9ICRyb3dbJ3VwbG9hZF9uYW1lJ10gKSB7CiAgICAgIC8vIGxvb2tzIGxpa2Ugd2UgaGF2ZSB0byBtb3ZlIGl0CiAgICAgIC8vIGdldCB0aGUgaW5mbyBmb3IgdGhlIG5ldyBjYXRlZ29yeQogICAgICAkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfY2F0ZWdvcmllcyBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfaWQgPSA/IjsKICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkcGFyYW1zWydpbnB1dF9tb3ZlY2F0ZWdvcnknXSApICk7CiAgICAgICRjYXQxcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwogICAgICBpZiggISRjYXQxcm93ICkgewoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcgKCdlcnJvcl9kYmVycm9yJykpOwoJcmV0dXJuOwogICAgICB9CgogICAgICAvLyBhbmQgdGhlIG9sZCBjYXRlZ29yeQogICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9pZCddICkgKTsKICAgICAgJGNhdDJyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICAgIGlmKCAhJGNhdDJyb3cgKSB7CgkkdGhpcy0+X0Rpc3BsYXlFcnJvclBhZ2UgKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkdGhpcy0+TGFuZyAoJ2Vycm9yX2RiZXJyb3InKSk7CglyZXR1cm47CiAgICAgIH0KICAgICAgCiAgICAgIC8vIG5vdyB3ZSBjYW4gbW92ZSB0aGUgZmlsZSBmcm9tIGRpcmVjdG9yeSBvbmUgdG8gdHdvLgogICAgICAvLyBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QgaW4gdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeQogICAgICAkZnJvbWZpbGUgPSAkdGhpcy0+X3VwbG9hZFBhdGgoICRjYXQycm93Wyd1cGxvYWRfY2F0ZWdvcnlfcGF0aCddLCB0cmltKCRyb3dbJ3VwbG9hZF9uYW1lJ10pICk7CiAgICAgICR0b2ZpbGUgICA9ICR0aGlzLT5fdXBsb2FkUGF0aCggJGNhdDFyb3dbJ3VwbG9hZF9jYXRlZ29yeV9wYXRoJ10sIHRyaW0oJHBhcmFtc1snaW5wdXRfdXBsb2FkbmFtZSddKSApOwoKICAgICAgLy8gbW92ZSB0aGUgZmlsZQogICAgICBpZiggZmlsZV9leGlzdHMoICR0b2ZpbGUgKSApIHsKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nICgnZXJyb3JfZmlsZWV4aXN0cycsJHRvZmlsZSkpOwoJcmV0dXJuOwogICAgICB9CiAgICAgIGlmKCAhcmVuYW1lKCAkZnJvbWZpbGUsICR0b2ZpbGUgKSApIHsKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nICgnZXJyb3JfY2Fubm90cmVuYW1lJykpOwoJcmV0dXJuOwogICAgICB9CgogICAgICAvLyBhbmQgbW92ZSBhbnkgdGh1bWJuYWlsCiAgICAgICR0bl9mcm9tZmlsZSA9ICR0aGlzLT5fY2F0ZWdvcnlQYXRoKCAkY2F0MnJvd1sndXBsb2FkX2NhdGVnb3J5X3BhdGgnXS5ESVJFQ1RPUllfU0VQQVJBVE9SLgoJCQkJCSAgICcudGh1bWJzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLiRwYXJhbXNbJ3VwbG9hZF9pZCddLidfdGh1bWInKTsKICAgICAgJHRuX3RvZmlsZSAgID0gJHRoaXMtPl9jYXRlZ29yeVBhdGgoICRjYXQxcm93Wyd1cGxvYWRfY2F0ZWdvcnlfcGF0aCddLkRJUkVDVE9SWV9TRVBBUkFUT1IuCgkJCQkJICAgJy50aHVtYnMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJHBhcmFtc1sndXBsb2FkX2lkJ10uJ190aHVtYicpOwogICAgICBpZiggZmlsZV9leGlzdHMoICR0bl9mcm9tZmlsZSApICkKCXsKCSAgLy8geWVwLCB3ZSBnb3R0YSBtb3ZlIHRoZSB0aHVtYm5haWwgdG9vCgkgICR0b2RpciA9IGRpcm5hbWUoICR0bl90b2ZpbGUgKTsKCSAgaWYoICFmaWxlX2V4aXN0cyggJHRvZGlyICkgKQoJICAgIHsKCSAgICAgICRyZXN1bHQgPSAkdGhpcy0+X21rZGlyciggJHRvZGlyICk7CgkgICAgICBpZiggJHJlc3VsdCA9PSBmYWxzZSApCgkJewoJCSAgLy8gdWgtb2gsIHRoZSByZW5hbWUgZmFpbGVkLCBwdXQgdGhlIG9sZCBmaWxlIGJhY2sKCQkgIHJlbmFtZSggJHRvZmlsZSwgJGZyb21maWxlICk7CgkJICAvLyBhbmQgZGlzcGxheSBhbiBlcnJvcgoJCSAgJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcgKCdlcnJvcl9jYW5ub3RjcmVhdGVkaXJlY3RvcnknKQoJCQkJCSAgICAuJzogJy4kdG9kaXIpOwoJCSAgcmV0dXJuOwoJCX0KCgkgICAgICAvLyB3b29ob28sIGRpcmVjdG9yeSBjcmVhdGVkCgkgICAgICAvLyBub3cgY3JlYXRlIHRoZSAuaW5kZXguaHRtbAoJICAgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcmVhdGVfZHVtbXlfaW5kZXhfaHRtbCcpICkKCQl7CgkJICB0b3VjaCggJHRvZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuImluZGV4Lmh0bWwiICk7CgkJfQoKCSAgICB9CgoJICAvLyBhbmQgcmVuYW1lIHRoZSB0aHVtYm5haWwKCSAgcmVuYW1lKCAkdG5fZnJvbWZpbGUsICR0bl90b2ZpbGUgKTsKCX0KCiAgICAgICRkb191cGRhdGUgPSB0cnVlOwogICAgICAkbmV3Y2F0ZWdvcnkgPSAkcGFyYW1zWydpbnB1dF9tb3ZlY2F0ZWdvcnknXTsKICAgICAgJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksCgkJICAgICR0aGlzLT5MYW5nKCdtb3ZlZGZpbGUnLCAkZnJvbWZpbGUsICR0b2ZpbGUgKSk7CiAgICB9CgogICAgaWYoICRwYXJhbXNbJ2lucHV0X3VwbG9hZGRlc2MnXSAhPSAkcm93Wyd1cGxvYWRfZGVzY3JpcHRpb24nXSApIHsKICAgICAgJGRvX3VwZGF0ZSA9IHRydWU7CiAgICAgICRuZXdkZXNjID0gdHJpbSgkcGFyYW1zWydpbnB1dF91cGxvYWRkZXNjJ10pOwogICAgfQogICAgaWYoICRwYXJhbXNbJ2lucHV0X3VwbG9hZG5hbWUnXSAhPSAkcm93Wyd1cGxvYWRfbmFtZSddICkgewogICAgICAkZG9fdXBkYXRlID0gdHJ1ZTsKICAgICAgJG5ld25hbWUgPSB0cmltKCRwYXJhbXNbJ2lucHV0X3VwbG9hZG5hbWUnXSk7CiAgICB9CiAgICBpZiggJHBhcmFtc1snaW5wdXRfdXBsb2Fkc3VtbWFyeSddICE9ICRyb3dbJ3VwbG9hZF9zdW1tYXJ5J10gKSB7CiAgICAgICRkb191cGRhdGUgPSB0cnVlOwogICAgICAkbmV3c3VtbWFyeSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfdXBsb2Fkc3VtbWFyeSddKTsKICAgIH0KICAgIGlmKCAkcGFyYW1zWydpbnB1dF91cGxvYWRhdXRob3InXSAhPSAkcm93Wyd1cGxvYWRfYXV0aG9yJ10gKSB7CiAgICAgICRkb191cGRhdGUgPSB0cnVlOwogICAgICAkbmV3YXV0aG9yID0gdHJpbSgkcGFyYW1zWydpbnB1dF91cGxvYWRhdXRob3InXSk7CiAgICB9CgogICAgaWYoICRkb191cGRhdGUgKSB7CiAgICAgICRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzIFNFVAogICAgICAgICAgICAgICAgICB1cGxvYWRfbmFtZSA9ID8sIHVwbG9hZF9hdXRob3IgPSA/LAogICAgICAgICAgICAgICAgICB1cGxvYWRfc3VtbWFyeSA9ID8sIHVwbG9hZF9kZXNjcmlwdGlvbiA9ID8sCiAgICAgICAgICAgICAgICAgIHVwbG9hZF9jYXRlZ29yeV9pZCA9ID8gV0hFUkUgdXBsb2FkX2lkID0gPyI7CiAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJG5ld25hbWUsICRuZXdhdXRob3IsICRuZXdzdW1tYXJ5LCAkbmV3ZGVzYywgJG5ld2NhdGVnb3J5LCAkcGFyYW1zWyd1cGxvYWRfaWQnXSApICk7CiAgICB9CgogICAgLy8gZG9uZS4KICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAnZmlsZXMnLCBhcnJheSggJ2N1cmNhdGVnb3J5JyA9PiAkcGFyYW1zWydjYXRlZ29yeV9pZCddKSApOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIF9BZG1pbkRvRGVsZXRlVXBsb2FkKCAkaWQsICRwYXJhbXMsICRyZXR1cm5pZCApCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICBBY3R1YWxseSBkZWxldGUgYW4gdXBsb2FkIGZyb20gdGhlIGZpbGVzeXN0ZW0gYW5kCiAgIGZyb20gdGhlIGRhdGFiYXNlLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIF9BZG1pbkRvRGVsZXRlVXBsb2FkICgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgLy8gd2UncmUgZ29ubmEgcHV0IHNvbWUgdGhvdWdodCBpbnRvIHRoaXMuLi4gdGhlIHVzZXIKICAgIC8vIGhhcyBhbHJlYWR5IGFuc3dlcmVkLCBZZXAsIFdlJ3JlIHN1cmUgdGhlIGZpbGUgZXhpc3RzLCBkb24ndCByZWFsbHkgY2FyZSBhbnl3YXlzCiAgICAvLyBzbyBhbGwgd2UgaGF2ZSB0byBkbyBpcyByZW1vdmUgdGhlIGZpbGUsIGFuZCByZW1vdmUgdGhlIHJlY29yZCBmcm9tIHRoZSBkYXRhYmFzZS4KCiAgICBpZiggIWlzc2V0KCAkcGFyYW1zWyd1cGxvYWRfaWQnXSApICkgCiAgICAgIHsKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX2luc3VmZmljaWVudHBhcmFtcycpKTsKCXJldHVybjsKICAgICAgfQoKICAgIC8vIGdldCB0aGUgaW5mbyBhYm91dCB0aGUgdXBsb2FkIHdlJ3JlIGdvbm5hIGRlbGV0ZQogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzIFdIRVJFIHVwbG9hZF9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkcGFyYW1zWyd1cGxvYWRfaWQnXSApICk7CiAgICBpZiggISRkYnJlc3VsdCApIHsKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX2RiZXJyb3InKSk7CglyZXR1cm47CiAgICB9CiAgICAkdXBsb2Fkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwogICAgaWYoICEkdXBsb2Fkcm93ICkgewoJJHRoaXMtPl9EaXNwbGF5RXJyb3JQYWdlICgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCwKCQkJICAgICAgICR0aGlzLT5MYW5nICgnZXJyb3JfZGJlcnJvcicpKTsKCXJldHVybjsKICAgIH0KICAgIAogICAgLy8gYW5kIHRoZSBpbmZvIGFib3V0IGl0J3MgY2F0ZWdvcnkKICAgICRxdWVyeSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19jYXRlZ29yaWVzIFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkdXBsb2Fkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfaWQnXSApICk7CiAgICBpZiggISRkYnJlc3VsdCApIHsKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX2RiZXJyb3InKSk7CglyZXR1cm47CiAgICB9CiAgICAkY2F0ZWdvcnlyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICBpZiggISRjYXRlZ29yeXJvdyApIHsKCSR0aGlzLT5fRGlzcGxheUVycm9yUGFnZSAoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsCgkJCSAgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX2RiZXJyb3InKSk7CglyZXR1cm47CiAgICB9CiAgICAKICAgIC8vIG5vdyBidWlsZCB0aGUgcGF0aAogICAgJGZpbGUgPSAkdGhpcy0+X3VwbG9hZFBhdGgoICRjYXRlZ29yeXJvd1sndXBsb2FkX2NhdGVnb3J5X3BhdGgnXSwgJHVwbG9hZHJvd1sndXBsb2FkX25hbWUnXSApOwoKICAgIC8vIGFuZCBkZWxldGUgdGhlIGZpbGUKICAgIEB1bmxpbmsoICRmaWxlICk7CgogICAgLy8gYW5kIHRoZSB0aHVtYm5haWwgaWYgb25lIGV4aXN0cwogICAgJHRuZmlsZSA9ICR0aGlzLT5fY2F0ZWdvcnlQYXRoKCAkY2F0ZWdvcnlyb3dbJ3VwbG9hZF9jYXRlZ29yeV9wYXRoJ10gKS5ESVJFQ1RPUllfU0VQQVJBVE9SLicudGh1bWJzJzsKICAgICR0bmZpbGUgLj0gRElSRUNUT1JZX1NFUEFSQVRPUi4kcGFyYW1zWyd1cGxvYWRfaWQnXS4nX3RodW1iJzsKICAgIEB1bmxpbmsoICR0bmZpbGUgKTsKCiAgICAvLyBhbmQgdGhlIGRvd25sb2FkcwogICAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19kb3dubG9hZHMgV0hFUkUgZmlsZV9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkdXBsb2Fkcm93Wyd1cGxvYWRfaWQnXSApICk7CgogICAgLy8gYW5kIHRoZSByZWNvcmQgaXRzZWxmLgogICAgJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2FkcyBXSEVSRSB1cGxvYWRfaWQgPSA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJHVwbG9hZHJvd1sndXBsb2FkX2lkJ10gKSApOwoKICAgIC8vIGFuZCB3ZSdyZSBkb25lCiAgICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5sYW5nKCdmcmllbmRseW5hbWUnKSwKCQkgICR0aGlzLT5sYW5nKCdkZWxldGVkJywgJGRlc3RuYW1lKSApOwoKICAgIC8vIGRlbGV0ZSB0aGUgc2VhcmNoIHN0dWZmCiAgICAkbW9kdWxlID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CiAgICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkKICAgICAgewoJJG1vZHVsZS0+RGVsZXRlV29yZHMoJHRoaXMtPkdldE5hbWUoKSwgJHVwbG9hZHJvd1sndXBsb2FkX2lkJ10sICd1cGxvYWQnKTsKICAgICAgfQogICAgCgogICAgLy8gc2VuZCBhbiBldmVudAogICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICRwYXJtc1snaWQnXSA9ICR1cGxvYWRyb3dbJ3VwbG9hZF9pZCddOwogICAgJHBhcm1zWyduYW1lJ10gPSAkdXBsb2Fkcm93Wyd1cGxvYWRfbmFtZSddOwogICAgJHBhcm1zWydjYXRlZ29yeV9pZCddID0gJHVwbG9hZHJvd1sndXBsb2FkX2NhdGVnb3J5X2lkJ107CiAgICAkdGhpcy0+U2VuZEV2ZW50KCdPblJlbW92ZScsICRwYXJtcyApOwoKICAgICR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAnZmlsZXMnLCBhcnJheSggJ2lucHV0X2NhdGVnb3J5JyA9PiAkdXBsb2Fkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfaWQnXSkpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIF9EaXNwbGF5RXJyb3JQYWdlKCRpZCwgJHBhcmFtcywgJHJldHVybmlkLCAkbWVzc2FnZSkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKICAgCiAgIFRoaXMgaXMgYSBtZXRob2QgdG8gZGlzcGxheQogICBlcnJvciBpbmZvcm1hdGlvbiBvbiB0aGUgYWRtaW4gc2lkZS4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfRGlzcGxheUVycm9yUGFnZSAoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkLCAkbWVzc2FnZSA9ICcnKQogIHsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbiAoJ3RpdGxlX2Vycm9yJywgJHRoaXMtPkxhbmcgKCdlcnJvcicpKTsKICAgIGlmICgkbWVzc2FnZSAhPSAnJykKICAgICAgewoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduICgnbWVzc2FnZScsICRtZXNzYWdlKTsKICAgICAgfQogICAgaWYoICRyZXR1cm5pZCA9PSAnJyApCiAgICAgIHsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbGluaycsCgkJCSAgICAgICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQsCgkJCQkJCSR0aGlzLT5MYW5nKCdyZXR1cm50b21vZHVsZScpKSk7CiAgICAgIH0KICAgIAogICAgLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUgKCdlcnJvci50cGwnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRVcGxvYWREZXRhaWxzKCRpZCwkcmV0dXJuaWQpCiAgIAogICBSZXR1cm4gdGhlIGRldGFpbHMgYWJvdXQgYSBzcGVjaWZpYyB1cGxvYWQKICAgICAgdXBsb2FkX2lkCiAgICAgIHVwbG9hZF9jYXRlZ29yeV9pZAogICAgICB1cGxvYWRfbmFtZQogICAgICB1cGxvYWRfYXV0aG9yCiAgICAgIHVwbG9hZF9zdW1tYXJ5CiAgICAgIHVwbG9hZF9kZXNjcmlwdGlvbgogICAgICB1cGxvYWRfaXAKICAgICAgdXBsb2FkX3NpemUKICAgICAgdXBsb2FkX2RhdGUKICAgICAgdXJsCiAgICAgIGFic3VybAogICAgICBsaW5rCiAgIG9yIGFuIGFycmF5IChGQUxTRSxFUlJPUk1TRykKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRVcGxvYWREZXRhaWxzKCAkaWQsICRyZXR1cm5pZCApCiAgewogICAgJGRiID0mICR0aGlzLT5HZXREYigpOwogICAgJHEgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMKICAgICAgICAgIFdIRVJFIHVwbG9hZF9pZCA9ID8iOwogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcSwgYXJyYXkoICRpZCApICk7CiAgICBpZiggISRkYnJlc3VsdCApCiAgICAgIHsKCXJldHVybiBhcnJheSggRkFMU0UsICRkYi0+RXJyb3JNc2coKSApOwogICAgICB9CiAgICBpZiggISRkYnJlc3VsdC0+UmVjb3JkQ291bnQoKSApCiAgICAgIHsKCXJldHVybiBhcnJheSggRkFMU0UsICR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkdXBsb2FkaWQnKSk7CiAgICAgIH0KICAgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CgkgIGlmKCAhJHJvdyApCiAgICB7CgkgICAgcmV0dXJuIGFycmF5KEZBTFNFLCAkZGItPkVycm9yTXNnKCkpOwogICAgfQoKICAgIC8vIGhhdmUgZGV0YWlscyBmcm9tIHRoZSB0YWJsZSwgbm93CiAgICAvLyBoYXZlIHRvIGFkZCBzb21ldGhpbmcgc3VjaCB0aGF0IGEgbGluayBjYW4gYmUgZ2VuZXJhdGVkCiAgICAvLyB0aGF0IHdpbGwgc3RpbGwgY291bnQgdGhlIG51bWJlciBvZiBkb3dubG9hZHMsIGV0YwogICAgJHJvd1sndXJsJ10gPSAkdGhpcy0+Q3JlYXRlTGluayAoJGlkLCAnZ2V0ZmlsZScsICRyZXR1cm5pZCwgJycsCgkJCQkgICAgIGFycmF5ICgndXBsb2FkX2lkJyA9PiAkcm93Wyd1cGxvYWRfaWQnXSksICcnLCB0cnVlKTsKICAgICRyb3dbJ2xpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rICgkaWQsICdnZXRmaWxlJywgJHJldHVybmlkLCAkcm93Wyd1cGxvYWRfbmFtZSddLAoJCQkJICAgICAgYXJyYXkgKCd1cGxvYWRfaWQnID0+ICRyb3dbJ3VwbG9hZF9pZCddKSk7CiAgICAkcm93WydhYnN1cmwnXSA9ICR0aGlzLT5jbXMtPmNvbmZpZ1sndXBsb2Fkc191cmwnXS4iLyIuCiAgICAgICR0aGlzLT5nZXRDYXRlZ29yeVBhdGhGcm9tRmlsZUlEKCAkcm93Wyd1cGxvYWRfaWQnXSApLiIvIi4KICAgICAgJHJvd1sndXBsb2FkX25hbWUnXTsKICAgIHJldHVybiAkcm93OwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEF0dGVtcHRVcGxvYWQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICAKICAgVGhpcyBpcyBhIG1ldGhvZCB0byBhY3R1YWxseSB0cnkgdXBsb2FkaW5nIHRoZSBmaWxlCiAgIGVuc3VyaW5nIGl0IGlzIHZhbGlkLCBhbmQgdGhlbiBhZGRpbmcgdGhlIHN0dWZmIHRvCiAgIHRoZSBkYXRhYmFzZS4KCiAgIFJldHVybnMgYW4gYXJyYXksIGZpcnN0IGVsZW1lbnQgaXMgc3VjY2VzcyAodHJ1ZS9mYWxzZSkKICAgc2Vjb25kIGVsZW1lbnQgaXMgKGlmIGZpcnN0IGVsZW1lbnQgaXMgZmFsc2UpIGFuIGVycm9yIG1lc3NhZ2UsCiAgIG9yIHRoZSBpZCBvZiB0aGUgdXBsb2FkZWQgZmlsZS4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBBdHRlbXB0VXBsb2FkICgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJGZpZWxkbmFtZSA9ICRpZC4naW5wdXRfYnJvd3NlJzsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydmaWVsZF9uYW1lJ10pICkKICAgICAgewoJJGZpZWxkbmFtZSA9ICRwYXJhbXNbJ2ZpZWxkX25hbWUnXTsKICAgICAgfQoKICAgIC8vIGNoZWNrIGZvciB0aGUgZmlsZXR5cGVzIHBhcmFtCiAgICBpZiAoaXNzZXQoICRwYXJhbXNbJ2ZpbGVfZXh0ZW5zaW9ucyddICkgKQogICAgICB7CgkkdGhpcy0+dXBsb2FkX2V4dGVuc2lvbnMgPSAkcGFyYW1zWydmaWxlX2V4dGVuc2lvbnMnXTsKICAgICAgfQoKICAgIC8vIGNoZWNrIHRoZSBhdXRob3IKICAgIGlmICghaXNzZXQgKCRwYXJhbXNbJ2lucHV0X2F1dGhvciddKSkKICAgICAgewoJcmV0dXJuIGFycmF5KCBGQUxTRSwgJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRhdXRob3InKSApOwogICAgICB9CiAgICAKICAgIC8vIHNlZSBpZiB0aGVyZSdzIGEga2V5CiAgICAka2V5ID0gbnVsbDsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfa2V5J10gKSApCiAgICAgIHsKCSRrZXkgPSAkcGFyYW1zWydpbnB1dF9rZXknXTsKICAgICAgfQoKICAgIC8vIHZhbGlkYXRlIHRoZSB1cGxvYWQgbmFtZQogICAgJGRlc3RuYW1lID0gJF9GSUxFU1skZmllbGRuYW1lXVsnbmFtZSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2lucHV0X2Rlc3RuYW1lJ10pICYmICRwYXJhbXNbJ2lucHV0X2Rlc3RuYW1lJ10gIT0gJycpCiAgICAgIHsKCSRkZXN0bmFtZSA9IHRyaW0oYmFzZW5hbWUoJHBhcmFtc1snaW5wdXRfZGVzdG5hbWUnXSkpOwogICAgICB9CgogICAgJHJlcGxhY2VfZXhpc3RpbmcgPSBmYWxzZTsKICAgIGlmKCBpc3NldCggJHBhcmFtc1snaW5wdXRfcmVwbGFjZSddKSAmJiAkcGFyYW1zWydpbnB1dF9yZXBsYWNlJ10gPT0gMSApCiAgICAgIHsKCSRyZXBsYWNlX2V4aXN0aW5nID0gdHJ1ZTsKICAgICAgfQoKICAgIC8vIGNoZWNrIHRoZSBkZXNjcmlwdGlvbgogICAgaWYgKCAhaXNzZXQoJHBhcmFtc1snaW5wdXRfc3VtbWFyeSddKSB8fCAkcGFyYW1zWydpbnB1dF9zdW1tYXJ5J10gPT0gJycgKQogICAgICB7CgkvLyB3ZSdsbCBjaGVhdCwgaWYgdGhlIHN1bW1hcnkgaXMgbGVmdCBhcyBlbXB0eQoJLy8gd2UnbGwgdXNlIHRoZSB1cGxvYWQgbmFtZQoJJHAgPSBzdHJwb3MoICRkZXN0bmFtZSwgJy4nICk7CglpZiggJHAgKQoJICB7CgkgICAgJHBhcmFtc1snaW5wdXRfc3VtbWFyeSddID0gc3Vic3RyKCAkZGVzdG5hbWUsIDAsICRwICk7CgkgIH0KCWVsc2UKCSAgewoJICAgICRwYXJhbXNbJ2lucHV0X3N1bW1hcnknXSA9ICRkZXN0bmFtZTsKCSAgfQoJLy9yZXR1cm4gYXJyYXkoIEZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHN1bW1hcnknKSApOwogICAgICB9CgogICAgLy8gY2hlY2sgdGhlIGNhdGVnb3J5CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkZGJyZXN1bHQgPSAiIjsKICAgICRyb3cgPSBhcnJheSgpOwogICAgJGNhdGVnb3J5X2lkID0gMDsKICAgIGlmIChpc3NldCggJHBhcmFtc1snY2F0ZWdvcnlfaWQnXSApICkKICAgICAgewogICAgICAgICRjYXRlZ29yeV9pZCA9ICRwYXJhbXNbJ2NhdGVnb3J5X2lkJ107CiAgICAgICAgJHF1ZXJ5ID0KICAgICAgICAgICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgogICAgICAgICAgIm1vZHVsZV91cGxvYWRzX2NhdGVnb3JpZXMgV0hFUkUgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnksIGFycmF5ICgkY2F0ZWdvcnlfaWQpKTsKICAgICAgfQogICAgZWxzZSBpZiAoaXNzZXQgKCRwYXJhbXNbJ2NhdGVnb3J5J10pKQogICAgICB7CiAgICAgICAgLy8gZ2V0IHRoZSBjYXRlZ29yeSBpbmZvIGdpdmVuIGl0J3MgbmFtZQogICAgICAgICRxdWVyeSA9CiAgICAgICAgICAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAgICJtb2R1bGVfdXBsb2Fkc19jYXRlZ29yaWVzIFdIRVJFIHVwbG9hZF9jYXRlZ29yeV9uYW1lID0gPyI7CiAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlICgkcXVlcnksIGFycmF5ICgkcGFyYW1zWydjYXRlZ29yeSddKSk7CiAgICAgIH0KICAgIGlmICghJGRicmVzdWx0KQogICAgICB7CglyZXR1cm4gYXJyYXkoIEZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGNhdGVnb3J5JykgKTsKICAgICAgfQogICAgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3cgKCk7CiAgICBpZiggISRyb3cgKQogICAgICB7CglyZXR1cm4gYXJyYXkoIEZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZGNhdGVnb3J5JykgKTsKICAgICAgfQogICAgJGNhdGVnb3J5X2lkID0gJHJvd1sndXBsb2FkX2NhdGVnb3J5X2lkJ107CiAgICAkY2F0ZWdvcnlfbmFtZSA9ICRyb3dbJ3VwbG9hZF9jYXRlZ29yeV9uYW1lJ107CiAKICAgIC8vIG5vdyBkbyB0aGUgdXBsb2FkLCBob3BlZnVsbHkKICAgIC8vIGZpcnN0IHRoZSBmaWxlIGl0c2VsZi4KICAgICRkaXIgPSAkdGhpcy0+X2NhdGVnb3J5UGF0aCgkcm93Wyd1cGxvYWRfY2F0ZWdvcnlfcGF0aCddKTsKICAgICRyZXN1bHQgPQogICAgICAkdGhpcy0+X2hhbmRsZVVwbG9hZCAoJGRpciwKCQkJICAgICR0aGlzLT5HZXRQcmVmZXJlbmNlICgnbWF4X3VwbG9hZHNpemUnLCAxMDAwMDAwKSAqIDEwMjQsIAoJCQkgICAgJGZpZWxkbmFtZSwKCQkJICAgIGZhbHNlLAoJCQkgICAgJGRlc3RuYW1lLAoJCQkgICAgdHJ1ZSwKCQkJICAgICRyZXBsYWNlX2V4aXN0aW5nKTsKICAgIGlmICghJHJlc3VsdFswXSkKICAgICAgewoJcmV0dXJuIGFycmF5KCBGQUxTRSwgJHJlc3VsdFsxXSApOwogICAgICB9CiAgICAkZGVzdG5hbWUgPSAkcmVzdWx0WzFdWyduYW1lJ107CgoKICAgIC8vIGNoZWNrIGZvciBhbiBleGlzdGluZyBkYXRhYmFzZSBlbnRyeQogICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzIFdIRVJFIHVwbG9hZF9uYW1lID0gPyBBTkQKCQkJdXBsb2FkX2NhdGVnb3J5X2lkID0gPyI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRkZXN0bmFtZSwgJGNhdGVnb3J5X2lkICkgKTsKICAgIGlmKCAhJGRicmVzdWx0ICkgCiAgICAgIHsKCXJldHVybiBhcnJheSggRkFMU0UsICR0aGlzLT5MYW5nKCdlcnJvcl9kYmVycm9yJykgKTsKICAgICAgfQogICAgJHJvdzIgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CgogICAgJGZpbGVpZCA9ICcnOwogICAgaWYoICRyZXBsYWNlX2V4aXN0aW5nID09IDAgKQogICAgICB7CgkvLyB3ZXJlIG5vdCBhbGxvd2luZyBvdmVyd3JpdGUKCWlmKCAkcm93MiApIAoJICB7CgkgICAgLy8gdGhpcyBpYSByZWR1bmRhbnQgZXJyb3IsIGFzIGl0IHNob3VsZCBoYXZlIGhhcHBlbmVkIGluIHRoZSBfaGFuZGxlVXBsb2FkCgkgICAgLy8gYnV0IG9oIHdlbGwKCSAgICByZXR1cm4gYXJyYXkoIEZBTFNFLCAkdGhpcy0+TGFuZygnZXJyb3JfZmlsZWV4aXN0cycpICk7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CgkvLyB3ZSdyZSBhbGxvd2luZyBvdmVyd3JpdGUKCSRmaWxlaWQgPSAkcm93MlsndXBsb2FkX2lkJ107CgkkcmVwbGFjZV9leGlzdGluZyA9IHRydWU7CiAgICAgIH0KIAkgICAgICAgCgogICAgIyBjcmVhdGUgdGhlIHRodW1icyBkaXJlY3RvcnkgaWYgaXQgaXNuJ3QgdGhlcmUgYWxyZWFkeQogICAgJHRuZGlyID0gJHRoaXMtPl9jYXRlZ29yeVBhdGgoJHJvd1sndXBsb2FkX2NhdGVnb3J5X3BhdGgnXSkuRElSRUNUT1JZX1NFUEFSQVRPUi4nLnRodW1icyc7CiAgICBpZiggIWZpbGVfZXhpc3RzKCAkdG5kaXIgKSApCiAgICAgIHsKCSRyZXN1bHQyID0gJHRoaXMtPl9ta2RpcnIoICR0bmRpciApOwoJaWYgKCRyZXN1bHQyID09IGZhbHNlKSAKCSAgewoJICAgICRtc2cgPSAkdGhpcy0+TGFuZygnZXJyb3JfY2FudGNyZWF0ZWRpcmVjdG9yeScpLic6ICcuJHRuZGlyOwoJICAgIHJldHVybiBhcnJheSggRkFMU0UsICRtc2cgKTsKCSAgfQoJLy8gY3JlYXRlIGFuIGluZGV4Lmh0bWwgZmlsZSAoZW1wdHkpCglpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWF0ZV9kdW1teV9pbmRleF9odG1sJykgKQoJICB7CgkgICAgQHRvdWNoKCAkdG5kaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4iaW5kZXguaHRtbCIgKTsKCSAgfQogICAgICB9CgogICAgLy8gY3JlYXRlIGEgbmV3IHVwbG9hZCBpZCBoZXJlLgogICAgaWYoICRmaWxlaWQgPT0gJycgKQogICAgICB7CgkkbmV3aWQgPSAkZGItPkdlbklEIChjbXNfZGJfcHJlZml4ICgpLiJtb2R1bGVfdXBsb2Fkc19zZXEiKTsKICAgICAgfQoKICAgIC8vIGFuZCB0aGVuIG1heWJlIHRoZSB0aHVtYm5haWwKICAgIGlmKCBpc3NldCggJF9GSUxFU1skaWQuJ2lucHV0X3RodW1ibmFpbCddWyduYW1lJ10gKSAmJgoJJF9GSUxFU1skaWQuJ2lucHV0X3RodW1ibmFpbCddWyduYW1lJ10gIT0gJycgJiYgCgkkX0ZJTEVTWyRpZC4naW5wdXRfdGh1bWJuYWlsJ11bJ3NpemUnXSA+IDApCiAgICAgIHsKCSRmaWQgPSAkZmlsZWlkOwoJaWYoICRmaWQgPT0gJycgKQoJICB7CgkgICAgJGZpZCA9ICRuZXdpZDsKCSAgfQoJJHJlc3VsdDIgPQoJICAkdGhpcy0+X2hhbmRsZVVwbG9hZCAoJHRuZGlyLCR0aGlzLT5HZXRQcmVmZXJlbmNlICgnbWF4X3VwbG9hZHNpemUnLCAxMDAwMDAwKSAqIDEwMjQsIAoJCQkJJGlkLidpbnB1dF90aHVtYm5haWwnLGZhbHNlLCRmaWQuJ190aHVtYicsZmFsc2UsCgkJCQkkcmVwbGFjZV9leGlzdGluZyk7CglpZiAoISRyZXN1bHQyWzBdKQoJICB7CgkgICAgLy8gdWgtb2gsIHRoZSBzZWNvbmQgdXBsb2FkIGZhaWxlZC4uLi4gbm93IHdlJ3ZlIGdvdHRhIAoJICAgIC8vIGRlbGV0ZSB0aGUgZmlyc3QgZmlsZSB0byBhdm9pZCBhbnkgY29ycnVwdGlvbgoJICAgIC8vIHRvZG8KCSAgICB1bmxpbmsoICRyZXN1bHRbMV1bJ2RpciddLkRJUkVDVE9SWV9TRVBBUkFUT1IuJHJlc3VsdFsxXVsnbmFtZSddICk7CgkgICAgcmV0dXJuIGFycmF5KCBGQUxTRSwgJHJlc3VsdDJbMV0gKTsKCSAgfQogICAgICB9CiAgICBlbHNlIAogICAgICB7CgkvLyBzZWUgaWYgd2UgY2FuIGF1dG8tY3JlYXRlIGEgdGh1bWJuYWlsCglpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG90aHVtYm5haWxfZXh0ZW5zaW9ucycpICE9ICcnICYmCgkgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG90aHVtYm5haWxfc2l6ZScpICE9ICcnICkKCSAgewoJICAgICRmaWQgPSAkZmlsZWlkOwoJICAgIGlmKCAkZmlkID09ICcnICkKCSAgICAgIHsKCQkkZmlkID0gJG5ld2lkOwoJICAgICAgfQoKCSAgICAkZmlsZWV4dGVuc2lvbiA9IHN0cnRvbG93ZXIoc3RycmNocigkZGVzdG5hbWUsJy4nKSk7CgkgICAgJHRodW1iX2V4dF9hcnIgPSBleHBsb2RlKCIsIiwKCQkJCSAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG90aHVtYm5haWxfZXh0ZW5zaW9ucycpKTsKCSAgICBnbG9iYWwgJGdDbXM7CgoJICAgIGZvcmVhY2goICR0aHVtYl9leHRfYXJyIGFzICR0aHVtYl9leHQgKQoJICAgICAgewoJCWlmKCAiLiIuJHRodW1iX2V4dCA9PSAkZmlsZWV4dGVuc2lvbiApCgkJICB7CgkJICAgIC8vIHdvb2hvbywgd2UgY2FuIGNyZWF0ZSBhIHRodW1ibmFpbAoJCSAgICAkZGVzdCA9ICR0bmRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWQuJ190aHVtYic7CgkJICAgICRzcmMgID0gJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRkZXN0bmFtZTsKCQkgICAgJHRoaXMtPmltYWdlVHJhbnNmb3JtKCRzcmMsJGRlc3QsCgkJCQkJICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYXV0b3RodW1ibmFpbF9zaXplJyksCgkJCQkJICAkZ0Ntcy0+Y29uZmlnKTsKCQkgIH0KCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgLy8gYXBwYXJlbnRseSB0aGUgdXBsb2FkIHN1Y2NlZWRlZCwgbm93IHdlIGhhdmUgdG8gbG9nIGl0CiAgICAkZGVzYyA9ICIiOwogICAgaWYoIGlzc2V0KCAkcGFyYW1zWydpbnB1dF9kZXNjcmlwdGlvbiddICkgKQogICAgICB7CgkkZGVzYyA9ICRwYXJhbXNbJ2lucHV0X2Rlc2NyaXB0aW9uJ107CiAgICAgIH0KCiAgICBpZiggJGZpbGVpZCA9PSAnJyApCiAgICAgIHsKCSRxdWVyeSA9CgkgICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXggKCkuCgkgICJtb2R1bGVfdXBsb2FkcyBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8pIjsKCSRkYnJlc3VsdCA9CgkgICRkYi0+RXhlY3V0ZSAoJHF1ZXJ5LAoJCQlhcnJheSAoJG5ld2lkLAoJCQkgICAgICAgJHJvd1sndXBsb2FkX2NhdGVnb3J5X2lkJ10sCgkJCSAgICAgICAkZGVzdG5hbWUsIAoJCQkgICAgICAgJHBhcmFtc1snaW5wdXRfYXV0aG9yJ10sCgkJCSAgICAgICAkcGFyYW1zWydpbnB1dF9zdW1tYXJ5J10sCgkJCSAgICAgICAkZGVzYywKCQkJICAgICAgIGdldGVudiAoIlJFTU9URV9BRERSIiksIAoJCQkgICAgICAgJHJlc3VsdFsxXVsnc2l6ZSddLAoJCQkgICAgICAgdHJpbSgkZGItPkRCVGltZVN0YW1wICh0aW1lICgpKSwiJyIpLAoJCQkgICAgICAgJGtleQoJCQkgICAgICAgKSk7CgkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5sYW5nKCdmcmllbmRseW5hbWUnKSwKCQkgICAgICAkdGhpcy0+bGFuZygndXBsb2FkZWQnLCBhcnJheSgkZGVzdG5hbWUsICRwYXJhbXNbJ2lucHV0X2F1dGhvciddKSkgKTsKCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlIHVwbG9hZHMKICAgICAgICAgICBTRVQgdXBsb2FkX25hbWUgPSA/LCB1cGxvYWRfYXV0aG9yID0gPywKICAgICAgICAgICAgICAgdXBsb2FkX3N1bW1hcnkgPSA/LCB1cGxvYWRfZGVzY3JpcHRpb24gPSA/LAogICAgICAgICAgICAgICB1cGxvYWRfaXAgPSA/LCB1cGxvYWRfc2l6ZSA9ID8sIHVwbG9hZF9kYXRlID0gPwogICAgICAgICAgIFdIRVJFIHVwbG9hZF9pZCA9ID8iOwoJJGRicmVzdWx0ID0KCSAgJGRiLT5FeGVjdXRlKCAkcXVlcnksCgkJCWFycmF5KCAkZGVzdG5hbWUsCgkJCSAgICAgICAkcGFyYW1zWydpbnB1dF9hdXRob3InXSwKCQkJICAgICAgICRwYXJhbXNbJ2lucHV0X3N1bW1hcnknXSwKCQkJICAgICAgICRkZXNjLAoJCQkgICAgICAgZ2V0ZW52KCAiUkVNT1RFX0FERFIiICksCgkJCSAgICAgICAkcmVzdWx0WzFdWydzaXplJ10sCgkJCSAgICAgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwiJyIpLAoJCQkgICAgICAgJGZpbGVpZCApKTsKCSRuZXdpZCA9ICRmaWxlaWQ7CgkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5sYW5nKCdmcmllbmRseW5hbWUnKSwKCQkgICAgICAkdGhpcy0+bGFuZygncmVwbGFjZWQnLCAkZGVzdG5hbWUsICRwYXJhbXNbJ2lucHV0X2F1dGhvciddKSApOwogICAgICB9CgoKICAgIC8vIHRoYXQgc2hvdWxkIGRvIHRoZSB0cmljawogICAgLy8gbm93IG1heWJlIHdlJ2xsIHNlbmQgYW4gZW1haWwKICAgICR0b19hZGRyZXNzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NlbmRfdXBsb2FkX25vdGlmaWNhdGlvbnNfdG8nKTsKICAgIGlmKCAkdG9fYWRkcmVzcyAmJiAkdG9fYWRkcmVzcyAhPSAnJyApCiAgICAgIHsKCS8vIGZpbGwgb3V0IHRoZSB0ZW1wbGF0ZSwgYW5kIHNlbmQgYW4gZW1haWwKCSRjbXNtYWlsZXIgPSAkdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoICdDTVNNYWlsZXInICk7CglpZiggISRjbXNtYWlsZXIgKQoJICB7CgkgICAgLy8gd2UncmUgbm90IGdvbm5hIHJldHVybiBhbiBlcnJvciwgYnV0IHB1dAoJICAgIC8vIGEgbWVzc2FnZSBpbnRvIHRoZSBhZG1pbiBsb2cKCSAgICAkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwKCQkJICAkdGhpcy0+TGFuZygnZXJyb3Jfbm9tYWlsZXJtb2R1bGUnKSk7CgkgIH0KCWVsc2UKCSAgewoJICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbmFtZScsICRkZXN0bmFtZSApOwoJICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc2l6ZScsICRyZXN1bHRbMV1bJ3NpemUnXSApOwoJICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3VtbWFyeScsICRwYXJhbXNbJ2lucHV0X3N1bW1hcnknXSApOwoJICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZGVzY3JpcHRpb24nLCAkZGVzYyApOwoJICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYXV0aG9yJywgJHBhcmFtc1snaW5wdXRfYXV0aG9yJ10gKTsKCSAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lwX2FkZHJlc3MnLCBnZXRlbnYgKCJSRU1PVEVfQUREUiIpICk7CgkgICAgJGJvZHkgPSAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCd1cGxvYWRfZW1haWx0ZW1wbGF0ZScpOwoJICAgICRjbXNtYWlsZXItPkFkZEFkZHJlc3MoICR0b19hZGRyZXNzICk7CgkgICAgJGNtc21haWxlci0+U2V0Qm9keSggJGJvZHkgKTsKCSAgICAkY21zbWFpbGVyLT5Jc0hUTUwodHJ1ZSk7CgkgICAgJGNtc21haWxlci0+U2V0U3ViamVjdCgkdGhpcy0+TGFuZygndXBsb2FkX25vdGlmaWNhdGlvbicpKTsKCSAgICAkY21zbWFpbGVyLT5TZW5kKCk7CgkgIH0KICAgICAgfQoKCiAgICAvLyB1cGRhdGUgc2VhcmNoIHdvcmRzCiAgICAkc2VhcmNoID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnU2VhcmNoJyk7CiAgICBpZiAoJHNlYXJjaCAhPSBGQUxTRSkKICAgICAgewoJJHN0ciA9ICRkZXN0bmFtZS4nICcuJHBhcmFtc1snaW5wdXRfYXV0aG9yJ10uJyAnLgoJICAkcGFyYW1zWydpbnB1dF9zdW1tYXJ5J10uJGRlc2M7Cgkkc2VhcmNoLT5BZGRXb3JkcyggJHRoaXMtPkdldE5hbWUoKSwgJG5ld2lkLCAndXBsb2FkJywgJHN0ciApOwogICAgICB9CgogICAgLy8gc2VuZCBhbiBldmVudAogICAgJHBhcm1zID0gYXJyYXkoKTsKICAgICRwYXJtc1snY2F0ZWdvcnknXSA9ICRjYXRlZ29yeV9uYW1lOwogICAgJHBhcm1zWyduYW1lJ10gPSAkZGVzdG5hbWU7CiAgICAkcGFybXNbJ3NpemUnXSA9ICRyZXN1bHRbMV1bJ3NpemUnXTsKICAgICRwYXJtc1snc3VtbWFyeSddID0gJHBhcmFtc1snaW5wdXRfc3VtbWFyeSddOwogICAgJHBhcm1zWydkZXNjcmlwdGlvbiddID0gJGRlc2M7CiAgICAkcGFybXNbJ2F1dGhvciddID0gJHBhcmFtc1snaW5wdXRfYXV0aG9yJ107CiAgICAkcGFybXNbJ2lwX2FkZHJlc3MnXSA9IGdldGVudigiUkVNT1RFX0FERFIiKTsKICAgICR0aGlzLT5TZW5kRXZlbnQoICJPblVwbG9hZCIsICRwYXJhbXMgKTsKCiAgICBpZiggJGZpbGVpZCA9PSAnJyApCiAgICAgIHsKCXJldHVybiBhcnJheSggVFJVRSwgJG5ld2lkICk7CiAgICAgIH0KICAgIHJldHVybiBhcnJheSggVFJVRSwgJGZpbGVpZCApOwogIH0KCgogIGZ1bmN0aW9uIG15UmVkaXJlY3RUb1RhYiggJGlkLCAkdGFiLCAkcGFyYW1zID0gJycgKQogIHsKICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICBpZiggaXNfYXJyYXkoICRwYXJhbXMgKSApCiAgICAgIHsKCSRwYXJtcyA9ICRwYXJhbXM7CiAgICAgIH0KICAgICRwYXJtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAkdGFiICk7CiAgICAkdGhpcy0+bXlSZWRpcmVjdCggJGlkLCAnZGVmYXVsdGFkbWluJywgJHBhcm1zICk7CiAgfQoKICBmdW5jdGlvbiBteVJlZGlyZWN0KCAkaWQsICRhY3Rpb24sICRwYXJhbXMgPSAnJyApCiAgewogICAgdW5zZXQoICRwYXJhbXNbJ2FjdGlvbiddICk7CiAgICAkdGhpcy0+UmVkaXJlY3QoICRpZCwgJGFjdGlvbiwgJycsICRwYXJhbXMgKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBfaGFuZGxlVXBsb2FkKCAkZGVzdERpciwgJG1heEZpbGVTaXplLCAkZmllbGROYW1lLCAkbmFtZUNhbGxiYWMgKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgVGhpcyBtZXRob2QgaGFuZGxlcyB2YWxpZGF0aW5nIHRoZSB1cGxvYWQgcGFyYW1ldGVycywgYW5kIGNvcHlpbmcKICAgdGhlIGZpbGUgZnJvbSBpdCdzIHRlbXBvcmFyeSBsb2NhdGlvbiB0byBpdCdzIHBlcm1hbmVudCBsb2NhdGlvbi4KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBfaGFuZGxlVXBsb2FkICgkZGVzdERpciwgJG1heEZpbGVTaXplID0KCQkJICBmYWxzZSwgJGZpZWxkTmFtZSA9ICdfdXBsb2FkJywgJG5hbWVDYWxsYmFjayA9IGZhbHNlLAoJCQkgICRkZXN0bmFtZSA9ICcnLCRlbmZvcmNlZXh0ZW5zaW9uID0gdHJ1ZSwKCQkJICAkcmVwbGFjZV9leGlzdGluZyA9IGZhbHNlKQogIHsKICAgIC8vbWFrZSBzdXJlIHNvbWV0aGluZyBpcyB0aGVyZQogICAgaWYgKCFpc3NldCAoJF9GSUxFU1skZmllbGROYW1lXSkgfHwgIWlzc2V0ICgkX0ZJTEVTKQoJfHwgIWlzX2FycmF5ICgkX0ZJTEVTWyRmaWVsZE5hbWVdKSB8fCAhJF9GSUxFU1skZmllbGROYW1lXVsnbmFtZSddKQogICAgICB7CglyZXR1cm4gYXJyYXkgKGZhbHNlLCAkdGhpcy0+TGFuZygnZXJyb3Jfbm9maWxlc3VwbG9hZGVkJykpOwogICAgICB9CgogICAgLy9ub3JtYWxpemUgdGhlIGZpbGUgdmFyaWFibGUKICAgICRmaWxlID0gJF9GSUxFU1skZmllbGROYW1lXTsKICAgIGlmICghaXNzZXQgKCRmaWxlWyd0eXBlJ10pKQogICAgICAkZmlsZVsndHlwZSddID0gJyc7CiAgICBpZiAoIWlzc2V0ICgkZmlsZVsnc2l6ZSddKSkKICAgICAgJGZpbGVbJ3NpemUnXSA9ICcnOwogICAgaWYgKCFpc3NldCAoJGZpbGVbJ3RtcF9uYW1lJ10pKQogICAgICAkZmlsZVsndG1wX25hbWUnXSA9ICcnOwogICAgJGZpbGVbJ25hbWUnXSA9CiAgICAgIHByZWdfcmVwbGFjZSgnL1teYS16QS1aMC05XC5cJFwlXCdcYFwtXEBce1x9XH5cIVwjXChcKVwmXF9cXl0vJywgJycsCiAgICAgICBzdHJfcmVwbGFjZSAoYXJyYXkgKCcgJywgJyUyMCcpLCBhcnJheSAoJ18nLCAnXycpLCAkZmlsZVsnbmFtZSddKSk7CgogICAgLy8gdmFsaWRhdGUgdGhlIGZpbGVuYW1lCiAgICBpZiAoISR0aGlzLT5faXNWYWxpZEZpbGVuYW1lICgkZmlsZVsnbmFtZSddKSkKICAgICAgewoJcmV0dXJuIGFycmF5IChmYWxzZSwgJHRoaXMtPkxhbmcgKCdlcnJvcl9pbnZhbGlkdXBsb2FkZmlsZW5hbWUnLCRmaWxlWyduYW1lJ10pKTsKICAgICAgfQoKICAgIC8vd2FzIGl0IHRvIGJpZz8KICAgIGlmICgkbWF4RmlsZVNpemUgJiYgKCRmaWxlWydzaXplJ10gPiAoJG1heEZpbGVTaXplICogMTAyNCkpKQogICAgICByZXR1cm4gYXJyYXkgKGZhbHNlLCAkdGhpcy0+TGFuZyAoJ2Vycm9yX2ZpbGV0b29sYXJnZScpKTsKCiAgICAvL25vcm1hbGl6ZSBkZXN0RGlyCiAgICBpZiAoc3RybGVuICgkZGVzdERpcikgPiAwICYmICRkZXN0RGlyW3N0cmxlbiAoJGRlc3REaXIpIC0gMV0gIT0gIi8iKQogICAgICAkZGVzdERpciA9ICRkZXN0RGlyLicvJzsKCiAgICAvLyBnZXQgdGhlIGRlc3RpbmF0aW9uIG5hbWUKICAgIGlmKCAkZGVzdG5hbWUgPT0gJycgKSB7CiAgICAgICRkZXN0bmFtZSA9ICRmaWxlWyduYW1lJ107CiAgICB9CiAgICAKICAgIC8vc2hvdWxkIHdlIGNoYW5nZSB0aGUgZmlsZW5hbWUgdmlhIGEgY2FsbGJhY2s/CiAgICBpZiAoJG5hbWVDYWxsYmFjaykKICAgICAgewoJJGRlc3RuYW1lID0KCSAgY2FsbF91c2VyX2Z1bmNfYXJyYXkgKCRuYW1lQ2FsbGJhY2ssIGFycmF5ICgkZmlsZSwgJGRlc3REaXIpKTsKICAgICAgfQoKICAgIGlmKCAkZW5mb3JjZWV4dGVuc2lvbiA9PSB0cnVlICYmICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlZmlsZW5hbWVfZXh0ZW5zaW9ucycsMSkpCiAgICAgIHsKCS8vIG1ha2Ugc3VyZSBpdCBoYXMgYW4gZXh0ZW5zaW9uCgkvLyBpZiBpdCBkb2Vzbid0IGhhdmUgb25lLCB3ZSBnaXZlIGl0IG9uZSAodGhlIG9uZSBvZmYgdGhlIGlucHV0IGZpbGUpCglpZiggc3RycG9zKCRkZXN0bmFtZSwnLicpID09IGZhbHNlICkKCSAgewoJICAgIGlmKCAoJHAgPSBzdHJwb3MoICRmaWxlWyduYW1lJ10sICcuJyApICkgIT0gZmFsc2UgKQoJICAgICAgewoJCSRkZXN0bmFtZSA9ICRkZXN0bmFtZSAuIHN1YnN0ciggJGZpbGVbJ25hbWUnXSwgJHAgKTsKCSAgICAgIH0KCSAgfQogICAgICB9CgogICAgLy8gYW5kIGNsZWFuIGl0IHVwCiAgICAkZGVzdG5hbWUgPSAKICAgICAgcHJlZ19yZXBsYWNlKCcvW15hLXpBLVowLTlcLlwkXCVcJ1xgXC1cQFx7XH1cflwhXCNcKFwpXCZcX1xeXS8nLCAnJywKCQkgICBzdHJfcmVwbGFjZSAoYXJyYXkgKCcgJywgJyUyMCcpLCBhcnJheSAoJ18nLCAnXycpLCAkZGVzdG5hbWUpKTsKCiAgICBpZiggJHJlcGxhY2VfZXhpc3RpbmcgPT0gZmFsc2UgKQogICAgICB7CglpZiggZmlsZV9leGlzdHMoICRkZXN0RGlyLiRkZXN0bmFtZSApICYmICRyZXBsYWNlX2V4aXN0aW5nID09IGZhbHNlICkgewoJICByZXR1cm4gYXJyYXkoIGZhbHNlLCAkdGhpcy0+TGFuZyggJ2Vycm9yX2ZpbGVleGlzdHMnLCAkZGVzdERpci4kZGVzdG5hbWUgKSk7Cgl9CiAgICAgIH0KCiAgICAvL2FuZCBub3cgdGhlIGJpZyBtb21lbnQKICAgIGlmICghQGNvcHkgKCRmaWxlWyd0bXBfbmFtZSddLCAkZGVzdERpci4kZGVzdG5hbWUpKQogICAgICB7CglyZXR1cm4gYXJyYXkgKGZhbHNlLAoJCSAgICAgICR0aGlzLT5MYW5nICgnZXJyb3JfY291bGRub3R3cml0ZScpLgoJCSAgICAgICc6Jm5ic3AnLiRmaWxlWyduYW1lJ10uIiAtPiAiLiRkZXN0RGlyLiIgIi4KCQkgICAgICAkdGhpcy0+TGFuZyAoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGFycmF5ICh0cnVlLCBhcnJheSgnbmFtZScgPT4gJGRlc3RuYW1lLCAnc2l6ZScgPT4gJGZpbGVbJ3NpemUnXSwKCQkJCSAgJ2RpcicgPT4gJGRlc3REaXIgKSk7CiAgICAgIH0KICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBTY2FuRGlyZWN0b3J5KCRjYXRlZ29yeV9pZCwgJGRpciApCiAgIE5PVCBQQVJUIE9GIFRIRSBNT0RVTEUgQVBJCgogICBBIHV0aWxpdHkgdG8gaW5zZXJ0IHJlY29yZHMgaW50byB0aGUgdXBsb2FkcyBkYXRhYmFzZQogICBmb3IgYWxsIGZpbGVzIHRoYXQgY3VycmVudGx5IGV4aXN0IGluIGEgZGlyZWN0b3J5LgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNjYW5EaXJlY3RvcnkoJGNhdGVnb3J5X2lkLCAkZGlyICkKICB7CiAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CiAgICAkZGVzYyA9ICJQcmUtZXhpc3RpbmcgZmlsZSI7CgogICAgJGZpbGVzID0gJHRoaXMtPl9zY2FuZGlyKCAkZGlyICk7CiAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NyZWFlX2R1bW15X2luZGV4X2h0bWwnKSApCiAgICAgIHsKCUB0b3VjaCggJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiJpbmRleC5odG1sIiApOwogICAgICB9CiAgICBpZiggJGZpbGVzICkKICAgICAgewoJZm9yZWFjaCggJGZpbGVzIGFzICRmaWxlICkgewoJICAvLyBpZ25vcmUgZGlyZWN0b3JpZXMgLiBhbmQgLi4KCSAgaWYoICRmaWxlID09ICIuIiB8fCAkZmlsZSA9PSAiLi4iICkgewoJICAgIGNvbnRpbnVlOwoJICB9CgoJICAvLyBpZ25vcmUgYW55IGRpcmVjdG9yaWVzCgkgICRzcmNwID0gJGRpci5ESVJFQ1RPUllfU0VQQVJBVE9SLiRmaWxlOwoJICBpZiggaXNfZGlyKCAkc3JjcCApICkgewoJICAgIGNvbnRpbnVlOwoJICB9CgoJICAvLyBnb3QgdGhlIGZpbGUsIG5vdyBuZWVkIGl0J3Mgc2l6ZQoJICAkc2l6ZSA9IGZpbGVzaXplKCRzcmNwKTsKCSAgCgkgIC8vIG5vdyB3ZSBuZWVkIHRvIG1heWJlIHJlbmFtZSB0aGUgZmlsZS4uLgoJICAvLyBjdXogaXQgbWF5IGhhdmUgc3BhY2VzIGluIGl0LCBhbmQgaHR0cCBtYXkgbm90IGxpa2UgdGhhdAoJICAvLyB3ZSB1c2UgYW4gKG9wdGlvbmFsKSBjb3VudGVyIHRvIG1ha2Ugc3VyZSB0aGF0IHdlCgkgIC8vIGNhbiBoYXZlIG51bWVyb3VzIGZpbGVzIHdpdGggc2ltaWxhciBuYW1lcwoJICAkcG9zdGZpeCA9ICIiOwoJICB3aGlsZSggJHBvc3RmaXggPCAxMDAgKQoJICAgIHsKCSAgICAgICRkZXN0ZmlsZSA9IHN0cl9yZXBsYWNlIChhcnJheSAoJyAnLCAnJTIwJyksIGFycmF5ICgnXycsICdfJyksICRmaWxlICk7CgkgICAgICBpZiggJHBvc3RmaXggIT0gIiIgKQoJCXsKCQkgICRkZXN0ZmlsZSAuPSAiXyIgLiAkcG9zdGZpeDsKCQl9CgkgICAgICAKCSAgICAgIGlmKCAkZGVzdGZpbGUgIT0gJGZpbGUgKQoJCXsKCQkgICRkZXN0cCA9ICRkaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZGVzdGZpbGU7CgkJICAKCQkgIC8vIHllcCwgd2UgZ290dGEgcmVuYW1lIGl0CgkJICAvLyBidXQgbWFrZSBzdXJlIHRoZSBmaWxlIGRvZXNuJ3QgYWxyZWFkeSBleGlzdCBmaXJzdAoJCSAgaWYoIGZpbGVfZXhpc3RzKCAkZGVzdHAgKSApCgkJICAgIHsKCQkgICAgICAvLyB1aC1vaCBpdCBleGlzdHMKCQkgICAgICAvLyBpbmNyZW1lbnQgdGhlIHBvc3RmaXgKCQkgICAgICBpZiggJHBvc3RmaXggPT0gIiIgKQoJCQl7CgkJCSAgJHBvc3RmaXggPSAxOwoJCQl9CgkJICAgICAgZWxzZQoJCQl7CgkJCSAgJHBvc3RmaXgrKzsKCQkJfQoJCSAgICAgIGNvbnRpbnVlOwoJCSAgICB9CgkJICAKCQkgIHJlbmFtZSggJHNyY3AsICRkZXN0cCApOwoJCSAgJGZpbGUgPSAkZGVzdGZpbGU7CgkJICAkc3JjcCA9ICRkZXN0cDsKCQl9CgkgICAgICAKCSAgICAgIGJyZWFrOyAvLyBnZXQgb3V0IG9mIHRoaXMgd2hpbGUgc3RhdGVtZW50CgkgICAgfQoJICAKCSAgaWYoICRwb3N0Zml4ID49IDEwMCApCgkgICAgewoJICAgICAgLy8gZm9yIHNvbWUgb2RkIHJlYXNvbiwgd2UgY291bGQgbm90IGZpbmQgYSByZWFzb25hYmxlCgkgICAgICAvLyBmaWxlbmFtZSB0byByZW5hbWUgdG8uCgkgICAgICAvLyB3ZSdsbCBqdXN0IHNraXAgdGhpcyBmaWxlCgkgICAgICBjb250aW51ZTsKCSAgICB9CgkgIAoJICAvLyBuZXh0IGNoZWNrIHRvIG1ha2Ugc3VyZSBpdHMgbm90IGFscmVhZHkgaW4gdGhlIGRhdGFiYXNlCgkgICRxID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV91cGxvYWRzIFdIRVJFCiAgICAgICAgICAgIHVwbG9hZF9uYW1lID0gPyBBTkQgdXBsb2FkX2NhdGVnb3J5X2lkID0gPyI7CgkgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHEsIGFycmF5KCAkZmlsZSwgJGNhdGVnb3J5X2lkKSApOwoJICBpZiggISRkYnJlc3VsdCApIHsKCSAgICBlY2hvICRkYi0+RXJyb3JNc2coKS4iPGJyLz4iOwoJICAgIHJldHVybjsKCSAgfQoJICBlbHNlIHsKCSAgICAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJICAgIGlmKCAkcm93ICkgewoJICAgICAgLy8gZmlsZSBleGlzdHMKCSAgICAgIGNvbnRpbnVlOwoJICAgIH0KCSAgfSAKCSAgCgkgIC8vIGFuZCBhZGQgaXQgdG8gdGhlIGRhdGFiYXNlCgkgICRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyxudWxsKSI7CgkgICR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7CgkgICR1c2VybmFtZSA9ICRfU0VTU0lPTlsiY21zX2FkbWluX3VzZXJuYW1lIl07CgkgICRuZXdpZCA9ICRkYi0+R2VuSUQgKGNtc19kYl9wcmVmaXggKCkuIm1vZHVsZV91cGxvYWRzX3NlcSIpOwoJICAkcGFybXMgPQlhcnJheSggJG5ld2lkLCAKCQkJICAgICAgICRjYXRlZ29yeV9pZCwKCQkJICAgICAgICRmaWxlLCAKCQkJICAgICAgICR1c2VybmFtZSwgCgkJCSAgICAgICAkZGVzYywgCgkJCSAgICAgICAiIiwgCgkJCSAgICAgICAibG9jYWxob3N0IiwgCgkJCSAgICAgICAkc2l6ZSwKCQkJICAgICAgIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCInIikgKTsKCSAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksICRwYXJtcyApOwoJICBpZiggISRkYnJlc3VsdCApIHsKCSAgICBlY2hvICRkYi0+RXJyb3JNc2coKS4iPGJyLz4iOwoJICAgIHJldHVybjsKCSAgfQoKCSAgLy8gYW5kIG1heWJlLCBqdXN0IG1heWJlIGNyZWF0ZSBhIHRodW1ibmFpbCBmb3IgaXQKCSAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhdXRvdGh1bWJuYWlsX2V4dGVuc2lvbnMnKSAhPSAnJyAmJgoJICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG90aHVtYm5haWxfc2l6ZScpICE9ICcnICkKCSAgICB7CgkgICAgICBnbG9iYWwgJGdDbXM7CgkgICAgICAkdG5kaXIgPSAkZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuJy50aHVtYnMnOwoJICAgICAgJGRlc3RuYW1lID0gJHRuZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuJG5ld2lkLidfdGh1bWInOwoJICAgICAgaWYoICFmaWxlX2V4aXN0cyggJGRlc3RuYW1lICkgKQoJCXsKCQkgICR0aGlzLT5pbWFnZVRyYW5zZm9ybSgkc3JjcCwkZGVzdG5hbWUsCgkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2F1dG90aHVtYm5haWxfc2l6ZScpLAoJCQkJCSRnQ21zLT5jb25maWcpOwoJCX0KCSAgICB9Cgl9IC8vIGZvcmVhY2gKICAgICAgfSAvLyBpZgogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNtYXJ0U2NhbkRpcmVjdG9yeSgkY2F0ZWdvcnlfaWQsICRkaXIgKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQoKICAgQSBtZXRob2QgdG8gcGVyZm9ybSBhIHNjYW4gZGlyZWN0b3J5IGlmIHRoZSBjb3VudCBvZiB0aGUKICAgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeSBkb2VzIG5vdCBtYXRjaCB0aGUgY291bnQgb2YgdGhlIGZpbGVzCiAgIGluIHRoZSBkYXRhYmFzZQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNtYXJ0U2NhbkRpcmVjdG9yeSgkY2F0ZWdvcnlfaWQsICRkaXIgKQogIHsKICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgQ09VTlQoKikgQVMgY291bnQgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHMKICAgICAgICAgICAgICBXSEVSRSB1cGxvYWRfY2F0ZWdvcnlfaWQgPSA/IjsKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGNhdGVnb3J5X2lkICkgKTsKICAgIGlmKCAhJGRicmVzdWx0ICkKICAgICAgewogICAgICAgIGVjaG8gJGRiLT5FcnJvck1zZygpLiI8YnIvPiI7CglyZXR1cm47CiAgICAgIH0KICAgICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CiAgICAkcm93Y291bnQgPSAkcm93Wydjb3VudCddOwoKICAgIC8vIGdldCB0aGUgbnVtYmVyIG9mIGZpbGVzCiAgICAkZmlsZXMgPSAkdGhpcy0+X3NjYW5kaXIoICRkaXIgKTsKICAgICRjb3VudCA9IDA7CiAgICBpZiggJGZpbGVzICkKICAgICAgewoJZm9yZWFjaCggJGZpbGVzIGFzICRmaWxlICkKCSAgewoJICAgIC8vIGlnbm9yZSBkaXJlY3RvcmllcyAuIGFuZCAuLgoJICAgIGlmKCAkZmlsZSA9PSAiLiIgfHwgJGZpbGUgPT0gIi4uIiApIHsKCSAgICAgIGNvbnRpbnVlOwoJICAgIH0KCSAgICAKCSAgICAvLyBpZ25vcmUgYW55IGRpcmVjdG9yaWVzCgkgICAgJHNyY3AgPSAkZGlyLkRJUkVDVE9SWV9TRVBBUkFUT1IuJGZpbGU7CgkgICAgaWYoIGlzX2RpciggJHNyY3AgKSApIHsKCSAgICAgIGNvbnRpbnVlOwoJICAgIH0KCSAgICAKCSAgICAkY291bnQrKzsKCSAgfSAvLyBmb3JlYWNoCiAgICAgIH0KCiAgICBpZiggJGNvdW50ICE9ICRyb3djb3VudCApCiAgICAgIHsKCSR0aGlzLT5TY2FuRGlyZWN0b3J5KCAkY2F0ZWdvcnlfaWQsICRkaXIgKTsKICAgICAgfQogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIF9JbnNlcnREZWZhdWx0RmlsZVR5cGVzKCkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICAgZnVuY3Rpb24gX0luc2VydERlZmF1bHRGaWxlVHlwZXMoKQogICB7CiAgICAgLy8gZGVmYXVsdCBmaWxlIHR5cGVzCiAgICAgJGZpbGV0eXBlcyA9IGFycmF5KCk7CiAgICAgJGZpbGV0eXBlc1tdID0gYXJyYXkoJ3NvcnRvcmRlcic9PjEsJ25hbWUnPT4nU291bmQnLAoJCQkgICdkZXNjcmlwdGlvbic9PidTb3VuZCBmaWxlcycsCgkJCSAgJ2V4dGVuc2lvbnMnPT4nbXAzLG9nZyx3YXYnLAoJCQkgICdpbWFnZSc9Pidzb3VuZC5wbmcnKTsKICAgICAkZmlsZXR5cGVzW10gPSBhcnJheSgnc29ydG9yZGVyJz0+MiwnbmFtZSc9PidJbWFnZScsCgkJCSAgJ2Rlc2NyaXB0aW9uJz0+J0ltYWdlIGZpbGVzJywKCQkJICAnZXh0ZW5zaW9ucyc9PidwbmcsZ2lmLGpwZyxqcGVnLGJtcCcsCgkJCSAgJ2ltYWdlJz0+J2ltYWdlLnBuZycpOwogICAgICRmaWxldHlwZXNbXSA9IGFycmF5KCdzb3J0b3JkZXInPT4zLCduYW1lJz0+J1BERiBEb2N1bWVudCcsCgkJCSAgJ2Rlc2NyaXB0aW9uJz0+J0Fkb2JlIEFjcm9iYXQgUERGIERvY3VtZW50JywKCQkJICAnZXh0ZW5zaW9ucyc9PidwZGYnLAoJCQkgICdpbWFnZSc9PidwZGYucG5nJyk7CiAgICAgJGZpbGV0eXBlc1tdID0gYXJyYXkoJ3NvcnRvcmRlcic9PjQsJ25hbWUnPT4nU3ByZWFkc2hlZXQnLAoJCQkgICdkZXNjcmlwdGlvbic9PidTcHJlYWRzaGVldHMnLAoJCQkgICdleHRlbnNpb25zJz0+J3hscycsCgkJCSAgJ2ltYWdlJz0+J3NwcmVhZHNoZWV0LnBuZycpOwogICAgICRmaWxldHlwZXNbXSA9IGFycmF5KCdzb3J0b3JkZXInPT41LCduYW1lJz0+J0NvbXByZXNzZWQnLAoJCQkgICdkZXNjcmlwdGlvbic9PidDb21wcmVzc2VkIGZpbGUnLAoJCQkgICdleHRlbnNpb25zJz0+J3ppcCx0YXIsZ3oscmFyLGFyaicsCgkJCSAgJ2ltYWdlJz0+J3ppcC5wbmcnKTsKICAgICAkZmlsZXR5cGVzW10gPSBhcnJheSgnc29ydG9yZGVyJz0+NiwnbmFtZSc9PidUZXh0JywKCQkJICAnZGVzY3JpcHRpb24nPT4nVGV4dCBGaWxlJywKCQkJICAnZXh0ZW5zaW9ucyc9Pid0eHQsdGV4dCcsCgkJCSAgJ2ltYWdlJz0+J3R4dC5wbmcnKTsKICAgICAkZmlsZXR5cGVzW10gPSBhcnJheSgnc29ydG9yZGVyJz0+NywnbmFtZSc9PidWaWRlbycsCgkJCSAgJ2Rlc2NyaXB0aW9uJz0+J1ZpZGVvIEZpbGVzJywKCQkJICAnZXh0ZW5zaW9ucyc9PidhdmksbXBnLndtdicsCgkJCSAgJ2ltYWdlJz0+J3ZpZGVvLnBuZycpOwogICAgICRmaWxldHlwZXNbXSA9IGFycmF5KCdzb3J0b3JkZXInPT44LCduYW1lJz0+J1dvcmQgUHJvY2Vzc2luZycsCgkJCSAgJ2Rlc2NyaXB0aW9uJz0+J1dvcmQgUHJvY2Vzc2luZyBGaWxlcycsCgkJCSAgJ2V4dGVuc2lvbnMnPT4nZG9jJywKCQkJICAnaW1hZ2UnPT4nd29yZHByb2Nlc3NpbmcucG5nJyk7CgogICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgICAkcSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3VwbG9hZHNfZmlsZXR5cGVzCiAgICAgIChpZCxzb3J0b3JkZXIsbmFtZSxkZXNjcmlwdGlvbixleHRlbnNpb25zLGltYWdlKSBWQUxVRVMgKD8sPyw/LD8sPyw/KSI7CiAgICAgZm9yZWFjaCggJGZpbGV0eXBlcyBhcyAkb25lZmlsZXR5cGUgKQogICAgICAgewoJICRuZXdpZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19maWxldHlwZXNfc2VxIik7CgkgJGRicmVzdWx0ID0gICRkYi0+RXhlY3V0ZSggJHEsIAoJCQkJICAgIGFycmF5KCAkbmV3aWQsICRvbmVmaWxldHlwZVsnc29ydG9yZGVyJ10sCgkJCQkJICAgJG9uZWZpbGV0eXBlWyduYW1lJ10sCgkJCQkJICAgJG9uZWZpbGV0eXBlWydkZXNjcmlwdGlvbiddLAoJCQkJCSAgICRvbmVmaWxldHlwZVsnZXh0ZW5zaW9ucyddLAoJCQkJCSAgICRvbmVmaWxldHlwZVsnaW1hZ2UnXSApICk7CiAgICAgICB9CiAgIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIF9HZXRGaWxlVHlwZSggJGZpbGVuYW1lICkKICAgTk9UIFBBUlQgT0YgVEhFIE1PRFVMRSBBUEkKCiAgIEdpdmVuIGEgZmlsZW5hbWUsIHJldHVybiB0aGUgZmlsZSB0eXBlIGluZm9ybWF0aW9uIGZvciB0aGF0IAogICBmaWxlLgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogICBmdW5jdGlvbiBfR2V0RmlsZVR5cGUoICRmaWxlbmFtZSApCiAgIHsKICAgICAkZGIgPSYgJHRoaXMtPkdldERiKCk7CgogICAgICR0aGVfZXh0ZW5zaW9uID0gc3RydG9sb3dlcihzdHJyY2hyKCRmaWxlbmFtZSwnLicpKTsKICAgICAkcSA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfdXBsb2Fkc19maWxldHlwZXMKICAgICAgICAgICAgT1JERVIgQlkgc29ydG9yZGVyIjsKICAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxICk7CiAgICAgd2hpbGUoICRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICAgICAgIHsKCSAkYXJyID0gZXhwbG9kZSggIiwiLCRyb3dbJ2V4dGVuc2lvbnMnXSApOwoJIGZvcmVhY2goICRhcnIgYXMgJG9uZWV4dCApCgkgICB7CgkgICAgIGlmKCBzdHJ0b2xvd2VyKCAiLiRvbmVleHQiICkgPT0gJHRoZV9leHRlbnNpb24gKSAKCSAgICAgICB7CgkJIHJldHVybiAkcm93OwoJICAgICAgIH0KCSAgIH0KICAgICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiAgIH0KCgogICBmdW5jdGlvbiBpbWFnZVRyYW5zZm9ybSgkc3JjU3BlYywgJGRlc3RTcGVjLCAkc2l6ZSwgJiRjb25maWcpCiAgIHsKICAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy8uLi8uLi9saWIvZmlsZW1hbmFnZXIvSW1hZ2VNYW5hZ2VyL0NsYXNzZXMvVHJhbnNmb3JtLnBocCcpOwogICAgIAogICAgICRpdCA9IG5ldyBJbWFnZV9UcmFuc2Zvcm07CiAgICAgJGltZyA9ICRpdC0+ZmFjdG9yeSgkY29uZmlnWydpbWFnZV9tYW5pcHVsYXRpb25fcHJvZyddKTsKICAgICAkaW1nLT5sb2FkKCRzcmNTcGVjKTsKICAgICBpZiAoJGltZy0+aW1nX3ggPCAkaW1nLT5pbWdfeSkKICAgICAgIHsKCSAkbG9uZ19heGlzID0gJGltZy0+aW1nX3k7CiAgICAgICB9CiAgICAgZWxzZQogICAgICAgewoJICRsb25nX2F4aXMgPSAkaW1nLT5pbWdfeDsKICAgICAgIH0KICAgICAKICAgICBpZiAoJGxvbmdfYXhpcyA+ICRzaXplKQogICAgICAgewoJICRpbWctPnNjYWxlQnlMZW5ndGgoJHNpemUpOwoJICRpbWctPnNhdmUoJGRlc3RTcGVjLCAnanBlZycpOwogICAgICAgfQogICAgIGVsc2UKICAgICAgIHsKCSAkaW1nLT5zYXZlKCRkZXN0U3BlYywgJ2pwZWcnKTsKICAgICAgIH0KICAgICAkaW1nLT5mcmVlKCk7CiAgIH0KCn0KCiMgdmltOnRzPTIgc3c9MiBub2V0Cj8+Cg==]]></data>
	</file>
</module>
