<?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>Products</name>
	<version>2.27.5</version>
    <mincmsversion>2.2.2</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24gd2l0aGluIENNU01TLiBPciwgaWYgeW91IHdpc2gsIGJlIHBhcnQgb2YgYW4gZWNvbW1lcmNlIHNvbHV0aW9uLiAgVGhlIG1vZHVsZSBzdXBwb3J0cyBhbiBpdGVtIGV4aXN0aW5nIGluIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnksIHN1cHBvcnRzIG9yZ2FuaXppbmcgcHJvZHVjdHMgaW50byBoaWVyYXJjaGllcywgc3VwcG9ydHMgU0tVJ3MsIGRpbWVuc2lvbnMsIGl0ZW0gd2VpZ2h0LCBwcmljZSwgYW5kIGF0dHJpYnV0ZXMgc3VjaCBhcyBzaXplIGFuZCBjb2xvciB3aXRoIGRpZmZlcmVudCBTS1UgYW5kIHByaWNpbmcgb3B0aW9ucy4gIEVhY2ggaXRlbSBvcHRpb24gY2FuIGhhdmUgYSBwcmljZSBhZGp1c3RtZW50LiAgRWFjaCBpdGVtIGNhbiBiZSBzZXQgYXMgdGF4YWJsZSwgb3Igbm9uIHRheGFibGUuPC9wPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIG11bHRpcGxlIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkaXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4KCjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4KICAgIDx1bD4KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPgogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPgogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+CiAgICAgIDxsaT5BZHZhbmNlZCBzZWFyY2g8L2xpPgogICAgICA8bGk+bW9yZS4uLjwvbGk+CiAgICA8L3VsPgogIDxsaT5FbnRpcmVseSB0ZW1wbGF0ZSBkcml2ZW4KICAgIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+CiAgPC9saT4KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPgogIDxsaT5OdW1lcm91cyBjdXN0b20gZmllbGRzIGNhbiBiZSBkZWZpbmVkLCBpbmNsdWRpbmcgaW1hZ2VzPC9saT4KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPgogIDxsaT5Qcm9kdWN0IG9wdGlvbnMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+CiAgPGxpPldlaWdodCwgZGltZW5zaW9ucyBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCwgZGlzYWJsZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+CiAgPGxpPlN0cm9uZyBwcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPgogIDxsaT5BY3RzIGFzIGEgcHJvZHVjdCBzb3VyY2UgYW5kIGNvbW11bmljYXRlcyB3aXRoIHRoZSBFY29tbWVyY2Ugc3VpdGUgYnkgdGhlIHNhbWUgYXV0aG9yLjwvbGk+CiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+CjwvdWw+Cgo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+CjxvbD4KPGxpPlNldCBwcmVmZXJlbmNlcwogIDxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4KICA8cD5JZiB5b3UgYXJlIHByZXBhcmluZyBhbiBlLWNvbW1lcmNlIHNvbHV0aW9uIHRoZW4gdW5pdHMgYXJlIGNvbmZpZ3VyZWQgaW4gdGhlIENHRWNvbW1lcmNlQmFzZSBtb2R1bGUuPC9saT4KPC9saT4KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9ucwogIDxwPlRoZSAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnIHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJ01vZGlmeSBQcm9kdWN0cycgcGVybWlzc2lvbi48L3A+CjwvbGk+CjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzCiAgPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICdDYXRlZ29yaWVzJyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICdBZGQgQSBDYXRlZ29yeScuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPgo8L2xpPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgYSBwcm9kdWN0IGhpZXJhcmNoeS4KICA8cD5Zb3UgY2FuIG9yZ2FuaXplIHlvdXIgcHJvZHVjdHMgaW50byBhIGhpZXJhcmNoeS4gIFRoZSBoaWVyYXJjaHkgaXMgc2ltaWxhciB0byBjYXRlZ29yaWVzIGV4Y2VwdCB0aGF0IGVhY2ggbm9kZSBpbiB0aGUgaGllcmFyY2h5IGNhbiBoYXZlIHplcm8gb3IgbW9yZSBjaGlsZHJlcm4uICBBIHByb2R1Y3QgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBwbGFjZSBpbiB0aGUgaGllcmFyY2h5LjwvcD4KPC9saT4KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMKICA8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAgZm9yIHNpbXBsZSB1c2FnZSBzY2VuYXJpb3MsIGJ1dCBtYXkgYmUgcmVxdWlyZWQgd2hlbiBpbXBsZW1lbnRpbmcgYW4gRWNvbW1lcmNlIGFwcGxpY2F0aW9uLiAgQ3VzdG9tIGZpZWxkcyBhcmUgbm90IG5lZWRlZCBpZiB0aGlzIG1vZHVsZSBzdWl0cyB5b3UgZXhhY3RseSBhcyBpdCBpcy4gIEhvd2V2ZXIgaWYgeW91IHdvdWxkIGxpa2UgdG8gc3RvcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZWFjaCBvZiB5b3VyIHByb2R1Y3RzIHlvdSBjYW4gY3JlYXRlIGN1c3RvbSBmaWVsZHMuICBDcmVhdGluZyBjdXN0b20gZmllbGRzIGlzIHNpbWlsYXIgdG8gY3JlYXRpbmcgY2F0ZWdvcmllcywgZXhjZXB0IHRoYXQgbW9yZSBkYXRhIGlzIHJlcXVlc3RlZC48L3A+CjxwPkN1cnJlbnRseSBhIG51bWJlciBvZiB0eXBlcyBvZiBjdXN0b20gZmllbGRzIGFyZSBhdmFpbGFibGUsIGluY2x1ZGluZzogJ3RleHRib3gnLCdjaGVja2JveCcsYW5kICd0ZXh0YXJlYScsICdkcm9wZG93bicsIGFuZCAnZmlsZScuICBTZWxlY3Qgb25lIG9mIHRoZXNlLCBnaXZlIHlvdXIgbmV3IGZpZWxkIGEgbmFtZSwgYW5kIGluZGljYXRlIHdldGhlciB0aGF0IGZpZWxkIHNob3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBwdWJsaWMgaW4gdGhlIHZhcmlvdXMgdmlld3MuICBUaGVuIGhpdCBzdWJtaXQ8L3A+CjwvbGk+CjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgaXRlbXMuCjxwPllvdSBzaG91bGQgY3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzIHRvIGRpc3BsYXkgaW4geW91ciB3ZWJzaXRlIGNvbnRlbnQuICBHaXZlIGVhY2ggcHJvZHVjdCBhIG5hbWUsIGEgcHJpY2UgKG9wdGlvbmFsKSBhIHdlaWdodCAob3B0aW9uYWwpLCBhIHN0YXR1cyAoZHJhZnQgb3IgcHVibGlzaGVkKSwgYW5kIHNvbWUgaW5mb3JtYXRpb24uICBBZGRpdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUuPC9wPgo8cD5JZiB5b3UgYXJlIGltcGxlbWVudGluZyBhbiBlLWNvbW1lcmNlIHNvbHV0aW9uIHRoZW4geW91IHNob3VsZCBwcm92aWRlIGVhY2ggcHJvZHVjdCB3aXRoIGEgdW5pcXVlIFNLVS4gQW5kIGRlcGVuZGluZyB1cG9uIHlvdXIgYXBwbGljYXRpb24gcmVxdWlyZW1lbnRzLCB3ZWlnaHQgYW5kIGRpbWVuc2lvbnMgZm9yIGVhY2ggcHJvZHVjdC48L3A+CjxwPllvdSBjYW4gY3JlYXRlIG11bHRpcGxlIGF0dHJpYnV0ZXMgZm9yIGEgcHJvZHVjdCB0byBkZWZpbmUgdmFyaWF0aW9ucyBvbiBzaXplLCBjb2xvciwgZXRjLiAgRWFjaCB2YXJpYXRpb24gY2FuIGhhdmUgYSBkaWZmZXJlbnQgU0tVLjwvcD4KPHA+SWYgY2F0ZWdvcmllcyBhcmUgZGVmaW5lZCwgdGhlbiBhIG11bHRpc2VsZWN0IGZpZWxkIHdpbGwgYXBwZWFyIGFsbG93aW5nIHlvdSB0byBzZWxlY3QgdGhlIGNhdGVnb3JpZXMgZm9yIHRoZSBpdGVtLjwvcD4KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPgo8L2xpPgo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPgo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8Y29kZT57UHJvZHVjdHN9PC9jb2RlPiB0YWcgaW50byB0aGUgY29udGVudCBhcmVhIG9mIG9uZSBvZiB5b3VyIHBhZ2VzLCBvciBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxjb2RlPntQcm9kdWN0c308L2NvZGU+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIGl0ZW1zIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0nY2F0ZWdvcnluYW1lJ308L2NvZGU+PC9wPgo8L29sPgoKPGgzPlByZXR0eSBVUkxTPC9oMz4KPHA+SWYgeW91IGhhdmUgZW5hYmxlZCBwcmV0dHkgVVJMUyBpbiB0aGUgQ01TTVMgY29uZmlnIGZpbGUgPGVtPihlaXRoZXIgbW9kX3Jld3JpdGUsIG9yIGludGVybmFsIHByZXR0eSBVUkxTKTwvZW0+IFRoZW4gdGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHByZXR0eSBVUkxTIGZvciB2YXJpb3VzIGxpbmtzIHRvIHByb2R1Y3Qgdmlld3MuICBUaGVyZSBpcyBhbHNvIHRoZSBwb3dlciB0byBjb21wbGV0ZWx5IGN1c3RvbWl6ZSB0aGUgVVJMIHRvIGEgcHJvZHVjdCBkZXRhaWwgdmlldy4gIFRoZXJlIGFyZSBhIGZldyBzZXR0aW5ncyBpbiB0aGUgbW9kdWxlJ3MgYWRtaW4gcGFuZWxzIHRvIGNvbmZpZ3VyZS48L3A+CjxoND5VUkwgU2x1Z3M6PC9oND4KPHA+VVJMIFNsdWdzIGFyZSBwb3J0aW9ucyBvZiBhIFVSTCB0aGF0IGFyZSBhcHBlbmRlZCB0byB0aGUgcm9vdCB1cmwgKGFsb25nIHdpdGggdGhlIFVSTCBwcmVmaXggZGVzY3JpYmVkIGJlbG93KSB0byBhbGxvdyB1bmlxdWVseSBzcGVjaWZ5aW5nIGEgVVJMIHRvIGFuIGluZGl2aWR1YWwgcHJvZHVjdC4gIFVSTCBTbHVncyAoYmFzaWNhbGx5IGZpeGVkIHN0cmluZyByb3V0ZXMpIG11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW50aXJlIHdlYnNpdGUsIGFuZCBhbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZCBpZiB0aGUgc2x1ZyBwcm92aWRlZCBpcyBhbHJlYWR5IGluIHVzZS48L3A+CjxwPldoZW4gYSBuZXcgcHJvZHVjdCBpcyBjcmVhdGVkLCBvciBhIHByb2R1Y3Qgd2l0aG91dCBhIFVSTCBzbHVnIGlzIGVkaXRlZCwgdGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBVUkwgc2x1ZyBiYXNlZCBvbiB0aGUgcHJvZHVjdCBuYW1lLCB0aGUgc2VsZWN0ZWQgaGllcmFyY2h5IGxldmVsLCB0aGUgc2VsZWN0ZWQgY2F0ZWdvcmllcywgYW5kIHRoZSBzbHVnIHRlbXBsYXRlIGluIHRoZSBwcmVmZXJlbmNlcyBwYW5lbC4gIFlvdSBtYXkgYWxzbyBlbnRlciB5b3VyIG93biBVUkwgc2x1ZyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGQgb2YgdGhlIGZvcm0uPC9wPgo8cD5UaGUgc3lzdGVtIHdpbGwgbmV2ZXIgYXV0b210aWNhbGx5IGFkanVzdCBhbiBleGlzdGluZyBVUkwgc2x1ZywgZXZlbiBpZiB5b3UgbW92ZSB0aGUgcHJvZHVjdCB0byBhIGRpZmZlcmVudCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5LCBvciBjaGFuZ2UgdGhlIHNsdWcgdGVtcGxhdGUuICBBZGp1c3RpbmcgYSBVUkwgc2x1ZyBtdXN0IGludm9sdmUgYW4gYXV0aG9yaXplZCBhZG1pbmlzdHJhdG9yLCBhbmQgc2hvdWxkIGJlIGRvbmUgd2l0aCBjYXV0aW9uIGZvciBTRU8gcHVycG9zZXMuPC9wPgoKPGg0Pk9wdGlvbnM6PC9oND4KPHVsPgogIDxsaT5EZWZhdWx0IERldGFpbCBQYWdlICA8c3Ryb25nPipyZXF1aXJlZCo8L3N0cm9uZz46CiAgICA8cD5XaGVuIHVzaW5nIHByZXR0eSBVUkxTLCBhbmQgZWl0aGVyIGEgVVJMIHNsdWcgZXhpc3RzLCBvciB0aGUgJnF1b3Q7VXNlIEhpZXJhcmNoeSBQYXRoJnF1b3Q7IHByZWZlcmVuY2UgPGVtPihkZXNjcmliZWQgYmVsb3cpIGlzIGVuYWJsZWQsIGEgcGFnZSBpZCB3aWxsIG5vdCBiZSBzcGVjaWZpZWQgb24gdGhlIFVSTC4gIEZvciB0aGlzIHB1cnBvc2UgaXQgaXMgbmNlc3NhcnkgdG8gdGVsbCB0aGUgbW9kdWxlIHdoaWNoIGNvbnRlbnQgcGFnZSB0aGUgZGV0YWlsIHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBvbi48L3A+CiAgPC9saT4KCiAgPGxpPlByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZToKICAgICA8cD5UaGlzIHByZWZlcmVuY2UgaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRoYXQgd2lsbCBiZSBwcmVwZW5kZWQgdG8gZWFjaCBhbmQgZXZlcnkgcHJldHR5IFVSTCBnZW5lcmF0ZWQgYnkgdGhlIHByb2R1Y3RzIG1vZHVsZS4gIFRoaXMgbWF5IGJlIG5lY2Vzc2FyeSB0byBlbnN1cmUgdW5pcXVlbmVzcyBhY3Jvc3MgdGhlIHdlYnNpdGUsIGFuZCBmb3Igb3JnYW5pemF0aW9uYWwgcHVycG9zZXMuPC9wPgogIDwvbGk+CgogIDxsaT5Vc2UgSGllcmFyY2h5IFBhdGggaW4gSXRlbSBEZXRhaWwgVVJMUzoKICAgIDxwPlRoaXMgYm9vbGVhbiBwcmVmZXJlbmNlIGluZGljYXRlcyB0aGF0IHdoZW4gY3JlYXRpbmcgYSBkZXRhaWwgVVJMIHRvIGEgcHJvZHVjdCwgYW5kIG5vIFVSTCBzbHVncyBhcmUgcHJlc2VudCBhbiBhdHRlbXB0IHNob3VsZCBiZSBtYWRlIHRvIHVzZSB0aGUgaGllcmFyY2h5IHBhdGggaW4gdGhlIFVSTC48L3A+CiAgICA8cD5UaGlzIGlzIHByb2JsZW1hdGljIHNvbHV0aW9uIHJlbWFpbmluZyBvbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3NlcywgYXMgaWYgYSBwcm9kdWN0IGlzIGV2ZXIgbW92ZWQgdG8gYSBkaWZmZXJlbnQgcGxhY2UgaW4gdGhlIGhpZXJhcmNoeSB0cmVlLCBvciBldmVuIGlmIHRoZSBzcGVsbGluZyBvZiBvbmUgb2YgdGhlIHBhdGhzIGluIHRoZSBoaWVyYXJjaHkgcGF0aCBjaGFuZ2VzLCB0aGUgVVJMIHdvdWxkIGNoYW5nZS4gIFRoaXMgaXMgbm90IGEgZ29vZCBzb2x1dGlvbiBmb3IgU0VPIHB1cnBvc2VzLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLjwvcD4KICA8L2xpPgoKICA8bGk+RGVmYXVsdCBEZXRhaWwgUGFnZToKICAgICA8cD5XaGVuIHVzaW5nIHByZXR0eSB1cmxzLCBhbmQgcGFydGljdWxhcmx5IHdoZW4gc3BlY2lmeWluZyBhbGlhc2VzIG9yIFVSTCBzbHVncyBmb3IgcHJvZHVjdHMsIGl0IGlzIHJlcXVpcmVkIHRvIHRlbGwgdGhlIHN5c3RlbSB3aGF0IENNU01TIGNvbnRlbnQgcGFnZSB0byB1c2UgdG8gZGlzcGxheSB0aGF0IHByb2R1Y3QuICBJZiBvbmUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgY29udGVudCBwYWdlIHdpbGwgYmUgdXNlZC48L3A+CiAgPC9saT4KCiAgPGxpPkRlZmF1bHQgUGFnZSBmb3IgSGllcmFyY2h5IFZpZXc6CiAgICAgPHA+V2hlbiB1c2luZyBwcmV0dHkgdXJscywgYW5kIHBhcnRpY3VsYXJseSB3aGVuIHNwZWNpZnlpbmcgYWxpYXNlcyBvciBVUkwgc2x1Z3MgZm9yIHByb2R1Y3RzLCBpdCBpcyByZXF1aXJlZCB0byB0ZWxsIHRoZSBzeXN0ZW0gd2hhdCBDTVNNUyBjb250ZW50IHBhZ2UgdG8gdXNlIHRvIGRpc3BsYXkgYSBoaWVyYXJjaHkgdmlldy48L3A+CiAgPC9saT4KPC91bD4KCjxoMz5TS1UgYW5kIFF1YW50aXR5IEhhbmRsaW5nPC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB1bmlxdWUgZmllbGQgZm9yIGVhY2ggaXRlbSA8ZW0+KGFuZCBpdGVtIG9wdGlvbik8L2VtPi4gIFRoZSBTS1UgdmFsdWUgY2FuIGJlIHVzZWQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgYW4gaXRlbSBvciBvcHRpb24uICBXaGVuIHVzaW5nIHRoaXMgc3lzdGVtIGFzIGFuIGUtY29tbWVyY2Ugc3lzdGVtIGVhY2ggaXRlbSBhbmQgb3B0aW9uIGlzIHJlcXVpcmVkIHRvIGhhdmUgYSBTS1UuPC9wPgo8aDM+UHJvZHVjdCBPcHRpb25zPC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGNhcGFiaWxpdHkgb2YgaGFuZGxpbmcgPGVtPihvcHRpb25zKTwvZW0+IHRvIGJhc2UgaXRlbXMuICBPcHRpb25zIGNhbiBiZSB1c2VkIGZvciBtYWtpbmcgZGlmZmVyZW50IHNpemVzLCBvciBjb2xvcnMgb2YgYW4gaXRlbSBhdmFpbGFibGUgaW4gdGhlIGNhcnQuICAgRWFjaCBvcHRpb24gY2FuIGhhdmUgYSBkZXNjcmlwdGlvbiwgYSBwcmljZSA8ZW0+KG9yIHByaWNlIGFkanVzdG1lbnQpPC9lbT4gYW5kIGEgU0tVIGZvciBlLWNvbW1lcmNlIHB1cnBvc2VzLjwvcD4KCjxoMz5TbWFydHkgUGx1Z2luczwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsc28gcmVnaXN0ZXJzIG9uZSBvciBtb3JlIHNtYXJ0eSBwbHVnaW5zIHRvIGFpZGUgaW4gcmV0cmlldmluZyB2YXJpb3VzIHByb2R1Y3RzIHJlbGF0ZWQgaW5mb3JtYXRpb24gd2hlbiBkZXNpZ25pbmcgcHJvZHVjdHMgbW9kdWxlIHRlbXBsYXRlczo8L3A+Cjx1bD4KICA8bGk+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9Jzk5JyBbYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGNhdGVnb3J5IGlkIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhlIHJldHVybmVkIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBjYXRlZ29yeSwgaW5jbHVkaW5nIGl0cyBmaWVsZCB2YWx1ZXMuPGJyLz5pLmU6LiA8Y29kZT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0xIGFzc2lnbj0ndG1wJ31DYXRlZ29yeSBuYW1lID0ge1wkdG1wLT5uYW1lfTwvY29kZT48L3A+CiAgPC9saT4KICA8bGk+e3Byb2R1Y3RzX2dldGhpZXJhcmNoeSBpZD0nOTknIFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIGFsbG93cyByZXRyaWV2aW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgaGllcmFyY2h5IGxldmVsIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhlIHJldHVybmVkIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBoaWVyYXJjaHksIGluY2x1ZGluZyBpdHMgZmllbGQgdmFsdWVzLjxici8+aS5lOi4gPGNvZGU+e3Byb2R1Y3RzX2dldGhpZXJhcmNoeSBpZD0xIGFzc2lnbj0ndG1wJ31uYW1lID0ge1wkdG1wLm5hbWV9PC9jb2RlPjwvcD4KICA8L2xpPgogIDxsaT57cHJvZHVjdHNfaGllcmFyY2h5X2JyZWFkY3J1bWIgaGllcmFyY2h5aWQ9Jzk5JyBbcGFnZWlkPWFsaWFzXSBbZGVsaW09JyAmcmFxdW8gJ11bYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyB0aGUgYnJlYWRjcnVtYiBwYXRoIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGlzIHBsdWdpbiB3aWxsIG91dHB1dCB6ZXJvIG9yIG1vcmUgbGlua3MgdG8gaGllcmFyY2h5IHZpZXdzIHdpdGggb25lIGxpbmsgZm9yIGVhY2ggbGV2ZWwgaW4gdGhlIGhpZXJhcmNoeS4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgZGVsaW1pdGVyIHVzZSB0aGUgImRlbGltIiBhcmd1bWVudC4gIElmIGFuIGVtcHR5IGRlbGltaXRlciBpcyBzcGVjaWZpZWQsIHRoZW4gYW4gYXJyYXkgb2YgbGlua3Mgd2lsbCBiZSByZXR1cm5lZCByYXRoZXIgdGhhbiBvbmUgY29uaW51b3VzIGh0bWwgc2VnbWVudC4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgcGFnZSBpZCBmb3J0aGUgbGlua3MsIHVzZSB0aGUgcGFnZWlkIGF0dHJpYnV0ZS4gICBJZiB0aGUgcGFnZWlkIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCBhbmQgdGhlIGhpZXJhcmNoeSBpZCBwcmVmZXJlbmNlIGlzIHNldCBpdCB3aWxsIGJlIHVzZWQuICBPdGhlcndpc2UgdGhlIGN1cnJlbnQgcGFnZSBpZCB3aWxsIGJlIHVzZWQuPC9wPgogIDwvbGk+CiAgPGxpPntwcm9kdWN0c19oaWVyYXJjaHlfcGFyZW50IGhpZXJhcmNoeWlkPTk5IFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIHdpbGwgcmV0dXJuIHRoZSBwYXJlbnQgaGllcmFyY2h5IGlkIGZvciBhIGdpdmVuIGhpZXJhcmNoeSBpZC4gIElmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGV4aXN0LCB0aGVuIG5vdGhpbmcgd2lsbCBiZSByZXR1cm5lZC4gIGlmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGhhdmUgYSBwYXJlbnQgdGhpcyBwbHVnaW4gd2lsbCByZXR1cm4gLTEuPC9wPgogIDwvbGk+CjwvdWw+CjxoMz5UaGUgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IEFjdGlvbjwvaDM+CiAgPHA+VGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBpcyBhIHNwZWNpYWwgYWN0aW9uIHRoYXQgaXMgdXNlZCB0byByZXR1cm4gdGhlIGRpc3RpbmN0IHZhbHVlcyBvZiBhIGN1c3RvbSBmaWVsZCwgb3IgYSBwcm9wZXJ0eSB2aWEganNvbi4gIFR5cGljYWxseSB0aGlzIGFjdGlvbiBpcyB1c2VkIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGFjdGlvbnMsIGFuZCB1c3VhbGx5IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCBhY3Rpb24uICBUaGlzIGFjdGlvbiBhY2NlcHRzIHRoZSBwYXJhbWV0ZXJzOiBmaWVsZCBmb3IgdGhlIG5hbWUgb2YgdGhlIGZpZWxkLCBhbmQgZmllbGR2YWwgZm9yIGluZGljYXRpbmcgYSBzdGFydGluZyB2YWx1ZS4gIE5vbmUgb2YgdGhlIHBhcmFtZXRlcnMgY2FuIGJlIGVtcHR5LiAgQmVsb3cgeW91IHdpbGwgZmluZCBhIHNpbXBsZSBleGFtcGxlIG9mIHVzaW5nIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGZvciBpdGVtIG5hbWVzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCB0ZW1wbGF0ZS48L3A+CjxwcmU+PGNvZGU+Jmx0O3NjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiJmd0O3tsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIHZhciBhamF4X3VybCA9ICd7L2xpdGVyYWx9PHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPnttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPVByb2R1Y3RzIGFjdGlvbj1hamF4X3Byb3B2YWwgdXJsb25seT0xIGpzZnJpZW5kbHk9MX08L3NwYW4+e2xpdGVyYWx9JzsKICBhamF4X3VybCA9IGFqYXhfdXJsICsgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJnNob3d0ZW1wbGF0ZT1mYWxzZSc8L3NwYW4+OwoKICAkKDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPicjcHJvZHVjdG5hbWUnPC9zcGFuPikuYXV0b2NvbXBsZXRlKHsKICAgIHNvdXJjZTogZnVuY3Rpb24ocmVxLGFkZCl7CiAgICAgIHZhciB0bXAgPSAgYWpheF91cmwrPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJmNudG50MDFmaWVsZD06Om5hbWU6OiZjbnRudDAxZmllbGR2YWw9Jzwvc3Bhbj4rcmVxLnRlcm07CiAgICAgICQuZ2V0SlNPTih0bXAsZnVuY3Rpb24oanNvbil7CiAgICAgICAgaWYoIGpzb24uc3RhdHVzID09ICdPSycgJiYganNvbi5kYXRhLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGFkZChqc29uLmRhdGEpOwogICAgICAgIH0KICAgICAgfSkKICAgIH0KICB9KTsKfSk7CnsvbGl0ZXJhbH0mbHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcHJlPgo8cD5BcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBjb2RlIHNuaXBwZXQuLiB0aGUge21vZHVsZV9hY3Rpb25fbGlua30gcGx1Z2luIGZyb20gQ0dTaW1wbGVTbWFydHkgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIHVybCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbi4gIEFmdGVyIHRoYXQgVVJMIGlzIHJldHJpZXZlZCwgdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIgaXMgYWRkZWQgdG8gdGhlIFVSTC4gICBXaGVuIHNldHRpbmcgdXAgdGhlIGF1dG9jb21wbGV0ZSBwbHVnaW4sIHRoZSBjYWxsYmFjayB1c2VkIHRvIGZpbGwgaW4gdGhlIGRhdGEgdmFsdWVzIGZvciB0aGUgZmllbGQgdXNlcyBhamF4LiAgV2UgdGFrZSB0aGUgYWpheF91cmwgYWxyZWFkeSBwcmVwYXJlZCBhbmQgYWRkIHRoZSBmaWVsZD06Om5hbWU6OiBhbmQgZmllbGR2YWw9cmVxLnRlcm0gcGFyYW1ldGVycyB0byB0aGUgVVJMLiAgVGhlIHRlcm0gaXMgYXV0b21hdGljYWxseSBwcm92aWRlZCBieSB0aGUgYXV0b2NvbXBsZXRlIHBsdWdpbiBpbiB0aGUgcmVxLnRlcm0gdmFyaWlhYmxlLjwvcD4KPHA+VG8gdXNlIHRoaXMgZXhhbXBsZSwgdGhlIHVzZXIgd291bGQgbmVlZCB0byBlbnN1cmUgdGhhdCBqcXVlcnkgaXMgbG9hZGVkLCBhbG9uZyB3aXRoIHRoZSBqcXVlcnkgdWkgKGluY2x1ZGluZyBhdXRvY29tcGxldGUpLCBhbmQgYW55IHJlcXVpcmVkIHN0eWxlc2hlZXRzLiAgVGhpcyBjb3VsZCBiZSBkb25lIGVpdGhlciBpbiB0aGUgcGFnZSBzcGVjaWZpYyBtZXRhZGF0YSBmaWVsZCB3aGVuIGVkaXRpbmcgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgc2VhcmNoIGZvcm0sIG9yIGluIHRoZSBwYWdlIHRlbXBsYXRlIGl0c2VsZi48L3A+CjxoMz5JbXBvcnRpbmcgZnJvbSBBU0NJSTwvaDM+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgZmxleGlibGUgbWVjaGFuaXNtIG9mIGltcG9ydGluZyBhbmQgdXBkYXRpbmcgaXRlbSBpbmZvcm1hdGlvbiBmcm9tIEFTQ0lJIGZpbGVzLiAgVGhlIHN5c3RlbSBoYW5kbGVzIG11bHRpLWxpbmUgcmVjb3JkcyB3aXRoIGRpZmZlcmVudCBsaW5lIGVuZGluZ3MgKFVuaXgvTUFDL0RPUykgYW5kIGRpZmZlcmVudCBmaWVsZCBkZWxpbWl0ZXJzLiAgQ2F0ZWdvcmllcywgaGllcmFyY2h5IGluZm9ybWF0aW9uLCBhbmQgY3VzdG9tIGZpZWxkIGluZm9ybWF0aW9uIGNhbiBiZSBpbXBvcnRlZCBmb3IgZWFjaCBpdGVtLjwvcD4KPHA+VGhlIGltcG9ydCBzeXN0ZW0gaXMgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgaXRlbXMsIG9yIHVwZGF0aW5nIGV4aXN0aW5nIG9uZXMsIGNyZWF0aW5nIHVua25vd24gY2F0ZWdvcmllcywgaGllcmFyY2hpZXMsIG9yIGN1c3RvbSBmaWVsZHMsIGFuZCBhdHRhY2hpbmcgaW1hZ2VzIHRvIHVwbG9hZGVkIGZpbGVzLjwvcD4KPGg0PkltYWdlczwvaDQ+CjxwPkltYWdlcyBjYW4gb3B0aW9uYWxseSBiZSBhc3NvY2lhdGVkIHdpdGggaW1wb3J0ZWQgcmVjb3JkcywgYnV0IG11c3QgYmUgcHJldmlvdXNseSB1cGxvYWRlZCB0byBhIGNlbnRyYWwgbG9jYXRpb24uICBXaGVuIGEgaW1hZ2UgZmllbGQgdmFsdWUgc3BlY2lmaWVzIGFuIGltYWdlIGZpbGVuYW1lLCBhbmQgdGhhdCBmaWxlIGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KS4gaXQgd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgZm9yIGZ1dHVyZSBkaXNwbGF5IGFuZCBtYW5hZ2VtZW50LjwvcD4KCjxoMz5Ib29rczwvaDM+Cjx1bD4KICAgPGxpPjxjb2RlPlByb2R1Y3Q6OkFmdGVySW5zZXJ0UHJvZHVjdDwvY29kZT4KICAgICAgPHA+UGFyYW1ldGVyczo8L3A+CiAgICAgIDxvbD4KICAgICAgICAgPGxpPiRwcm9kdWN0IC0gb2JqZWN0IG9mIHR5cGUgUHJvZHVjdCAtLSBUaGUgcHJvZHVjdCBhZnRlciBpbnNlcnRpb24gaW50byB0aGUgZGF0YWJhc2UuPC9saT4KICAgICAgPC9vbD4KICAgPC9saT4KICAgPGxpPjxjb2RlPlByb2R1Y3Q6OkJlZm9yZVVwZGF0ZXRQcm9kdWN0PC9jb2RlPgogICAgICA8cD5QYXJhbWV0ZXJzOjwvcD4KICAgICAgPG9sPgogICAgICAgICA8bGk+JHByb2R1Y3QgLSBvYmplY3Qgb2YgdHlwZSBQcm9kdWN0IC0tIFRoZSBwcm9kdWN0IG9iamVjdCBiZWZvcmUgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLjwvbGk+CiAgICAgIDwvb2w+CiAgIDwvbGk+CiAgIDxsaT48Y29kZT5Qcm9kdWN0OjpBZnRlclVwZGF0ZXRQcm9kdWN0PC9jb2RlPgogICAgICA8cD5QYXJhbWV0ZXJzOjwvcD4KICAgICAgPG9sPgogICAgICAgICA8bGk+JHByb2R1Y3QgLSBvYmplY3Qgb2YgdHlwZSBQcm9kdWN0IC0tIFRoZSBwcm9kdWN0IGFmdGVyIHVwZGF0aW5nIHRoZSBkYXRhYmFzZSB0aGUgZGF0YWJhc2UuPC9saT4KICAgICAgPC9vbD4KICAgPC9saT4KICAgPGxpPjxjb2RlPlByb2R1Y3Q6OkJlZm9yZURlbGV0ZVByb2R1Y3Q8L2NvZGU+CiAgICAgIDxwPlBhcmFtZXRlcnM6PC9wPgogICAgICA8b2w+CiAgICAgICAgIDxsaT4kcHJvZHVjdF9pZCAtIGludGVnZXIgLS0gVGhlIHByb2R1Y3QgYWZ0ZXIgdXBkYXRpbmcgdGhlIGRhdGFiYXNlIHRoZSBkYXRhYmFzZS48L2xpPgogICAgICA8L29sPgogICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHJvZHVjdHMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo8aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjU2LjI8L2xpPjxsaT5DR1NpbXBsZVNtYXJ0eSA9Jmd0OyAyLjEuNjwvbGk+PGxpPkpRdWVyeVRvb2xzID0mZ3Q7IDEuNDwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGFjdGlvbj0iZGVmYXVsdCIgLSBTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYW4gaXRlbSBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+CiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIGl0ZW0gY2F0ZWdvcmllczwvbGk+CiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBpdGVtczwvbGk+CiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgaXRlbTwvbGk+CiAgPGxpPmZpZWxkbGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHZhbHVlcyBmcm9tIGEgc3BlY2lmaWVkIGZpZWxkLgogICAgIDxwPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstIFRoaXMgYWN0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5hdmlnYXRpb24gZnJvbSB0aGUgdmFsdWVzIG9mIGEgc3BlY2lmaWMgZmllbGQuICBpLmU6ICB5b3UgY291bGQgY3JlYXRlIGEgY3VzdG9tIGRyb3Bkb3duIGZpZWxkIGNhbGxlZCAmcXVvdDtjb2xvciZxdW90OyBhbmQgdGhlbiBjcmVhdGUgYSBuYXZpZ2F0aW9uIGJhc2VkIG9uIHRoZSBkaWZmZXJlbnQgY29sb3JzLgogICAgIDwvcD4KICA8L2xpPgogIDxsaT5zZWFyY2ggLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgaXRlbXMgb24gdmFyaW91cyBjcml0ZXJpdW08L2xpPgo8bGk+YWpheF9wcm9wdmFsIC0gUmV0dXJuIGEganNvbiBlbmNvZGVkIGxpc3Qgb2YgcHJvcGVydHkgdmFsdWVzIG1hdGNoaW5nIHRoZSBjcml0ZXJpYSBzcGVjaWZpZWQuICBUaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHZpYSBhamF4LCBhbmQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHRoZSBzaG93dGVtcGxhdGU9ZmFsc2UgcGFyYW1ldGVyIG9uIHRoZSBVUkwuPC9saT4KPC91bD48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHByb2R1Y3RpZD0iIiAtIFVzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IGl0ZW0gdG8gdXNlIGZvciB0aGUgZGlzcGxheS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG93bmVyPSIiIC0gQXBwbGljYWJsZSBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgZGlzcGxheXMgcmVzdWx0cyBvd25lZCBieSB0aGUgc3BlY2lmaWVkIEZFVSB1c2VyIGlkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZGV0YWlscGFnZT0iIiAtIFRoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0LiAgSXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBvciBzZWFyY2ggYWN0aW9ucy4gIFRoaXMgb3B0aW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMgb2YgYW55IHNvcnQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeWxpc3R0ZW1wbGF0ZT0iIiAtIFVzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGU9IiIgLSBVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheSBvZiB0aGUgY2F0ZWdvcnkgZGV0YWlscy4gIFRoaXMgdXNlcyBhIGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUuLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRldGFpbHRlbXBsYXRlPSIiIC0gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLiAgVGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdCB3aGVuIHByZXR0eSB1cmxzIGFyZSBlbmFibGVkLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc3VtbWFyeXRlbXBsYXRlPSIiIC0gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJdCBpcyBhbHNvIGFjY2VwdGVkIGluIHRoZSBzZWFyY2ggYWN0aW9uLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBoaWVyYXJjaHl0ZW1wbGF0ZT0iIiAtIFRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGhpZXJhcmNoeXBhZ2U9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGhpZXJhcmNoeSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIChieSBwYWdlIGlkIG9yIGFsaWFzKSBhIHBhZ2UgdG8gdXNlIGZvciBjaGlsZCBoaWVyYXJjaHkgbGlua3M8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNvcnRieT0icHJvZHVjdF9uYW1lIiAtIEFwcGxpY2FibGUgaW4gdGhlIHN1bW1hcnksIGNhdGVnb3J5bGlzdCBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0LiAgUG9zc2libGUgdmFsdWVzIGFyZToKPHVsPgogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+CiAgPGxpPmlkIC0tIFRoZSBpdGVtIGlkPC9saT4KICA8bGk+d2VpZ2h0IC0tIFRoZSBpdGVtIHdlaWdodDwvbGk+CiAgPGxpPnByaWNlIC0tIFRoZSBpdGVtIGJhc2UgcHJpY2U8L2xpPgogIDxsaT5za3UgLS0gVGhlIGl0ZW0gc2t1LjwvbGk+CiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPgogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4KICA8bGk+ZjpmaWVsZG5hbWUgLS0gQWxsb3dzIHNvcnRpbmcgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMuPC9saT4KPC91bD4KPHA+QSBwcmVmZXJlbmNlIGV4aXN0cyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzb3J0YnkgdmFsdWUuPC9wPgo8cD5UaGUgY2F0ZWdvcnkgbGlzdCB2aWV3IHN1cHBvcnRzIG9ubHkgYSBmZXcgc3BlY2lmaWMgc29ydGluZyBvcHRpb25zOjwvcD4KPHVsPgogIDxsaT5pZCAtLSBUaGUgY2F0ZWdvcnkgaWQuPC9saT4KICA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0tIFRoZSBjYXRlZ29yeSBuYW1lLjwvbGk+CjwvdWw+PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBzb3J0b3JkZXI9ImFzYyIgLSBTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgKGluY2x1ZGluZyBhZnRlciBhIHNlYXJjaCkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD4KPHA+QSBwcmVmZXJlbmNlIGV4aXN0cyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzb3J0b3JkZXIgdmFsdWUuPC9wPjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc29ydHR5cGU9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBleGNsdWRlY2F0PSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciB3aWxsIGFsbG93IGV4Y2x1ZGluZyBpdGVtcyB0aGF0IGFyZSBpbiBhIHNwZWNpZmljIGNhdGVnb3J5IGZyb20gdGhlIHJlc3VsdC4gQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBuYW1lcyBpcyBhbGxvd2VkLiBUaGlzIHBhcmFtZXRlciBjYW4gd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBjYXRlZ29yeSBwYXJhbWV0ZXIgdG8gcHJvdmlkZSBhIGxpc3Qgb2YgdGhlIGl0ZW1zIHRoYXQgYXJlIGluIHRoaXMgY2F0ZWdvcnksIGJ1dCBub3QgaW4gdGhhdCBjYXRlZ29yeTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm90cHJldHR5PSIiIC0gVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWN0aW9ucyB0byB3aGljaCBwcmV0dHkgdXJscyBzaG91bGQgbm90IGJlIGdlbmVyYXRlZC4gIGkuZTogbm90cHJldHR5PWhpZXJhcmNoeSxkZWZhdWx0IHdpbGwgbm90IGdlbmVyYXRlIHByZXR0eSB1cmxzIHRvIGhpZXJhcmNoeSwgb3Igc3VtbWFyeSAoZGVmYXVsdCkgYWN0aW9ucywgYnV0IHdpbGwgYWxsb3cgZ2VuZXJhdGlvbiBvZiBwcmV0dHkgdXJscyB0byBkZXRhaWwgdmlld3MuICBBcyBhIHNwZWNpYWwgdmFsdWUgJnF1b3Q7YWxsJnF1b3Q7IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhhdCBubyBwcmV0dHkgdXJscyBzaG91bGQgYmUgZ2VuZXJhdGVkPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBjYXRlZ29yeT0iIiAtIFdoZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBpdGVtcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKS4gIFRoaXMgcGFyYW1ldGVyIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiB0byBsaW1pdCB0aGUgb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgaXRlbSBjYXRlZ29yaWVzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gaGllcmFyY2h5PSIiIC0gVXNlZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIGhpZXJhY2h5IGFjdGlvbnMgdGhpcyBwYXJhbWV0ZXIgaGFzIHR3byB1c2VzLiAgV2hlbiB1c2VkIGluIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSd0cnVja3MqJ30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9Jyp0cnVja3MnfSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIGl0ZW1zIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4gIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgY2FuIGJlIHN1cHBsaWVkLiAgaS5lOiB7UHJvZHVjdHMgYWN0aW9uPWhpZXJhcmNoeSBoaWVyYXJjaHk9J3RydWNrcyxjYXJzJ308L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBhZ2VsaW1pdD0iIiAtIFVzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHBhcmVudD0iIiAtIEFwcGxpY2FibGUgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBpbnRlZ2VyIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4gIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgJGFjdGl2ZV9oaWVyYXJjaHkgc21hcnR5IHZhcmlhYmxlIHdpbGwgYmUgaWdub3JlZC4gIElmIG5laXRoZXIgaXMgc2V0LCB0aGVuIHRoZSBoaWVyYXJjaHkgdmlldyB3aWxsIHN0YXJ0IGZyb20gdGhlIHJvb3QuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBwYXJlbnRzPSIiIC0gVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNob3dhbGw9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBpdGVtcykgd2lsbCBiZSBkaXNwbGF5ZWQuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWVsZD0iIiAtIFVzZWQgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhbmQgdGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLiBJbiB0aGUgZmllbGRsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uICBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggZmllbGQgdG8gdXNlIHRvIGV4dHJhY3QgYSBsaXN0IG9mIHZhbHVlcy4gIEFueSB2YWxpZCBmaWVsZCBuYW1lcyBhcmUgYWNjZXB0ZWQgKHRob3VnaCBvbmx5IHRleHQgZmllbGQgYW5kIGRyb3Bkb3duIGZpZWxkIG5hbWVzIHdpbGwgd29yayBwcm9wZXJseS4gIEFkZGl0aW9uYWxseSB0aGUgc3BlY2lhbCB2YWx1ZXMgOjpuYW1lOjosIDo6c2t1OjosIGFuZCA6OmFsaWFzOjogY2FuIGJlIHNwZWNpZmllZCB0byByZXR1cm4gdmFsdWVzIGZyb20gdGhlIGl0ZW0gbmFtZSwgc2t1IGFuZCBhbGlhcyByZXNwZWN0aXZlbHkuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWVsZGlkPSIiIC0gVXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24uICBUaGlzIHBhcmFtZXRlciB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBmaWVsZHZhbCBwYXJhbWV0ZXIgdG8gYWxsb3cgZmlsdGVyaW5nIHByb2R1Y3RzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGN1c3RvbSBmaWVsZC4gIE5vdGU6ICBPbmx5IGN1c3RvbSBmaWVsZHMgdGhhdCBzdXBwb3J0IGEgc2luZ2xlIHZhbHVlIHdpbGwgd29yay48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZpZWxkdmFsPSIiIC0gVXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhbmQgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIEluIHRoZSBkZWZhdWx0IGFjdGlvbiB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7IGFuZCB3aWxkY2FyZCBjaGFycyAoKiBvciAlKS4gSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBmaWVsZCBpcyBleHBlY3RlZCB0byBjb250YWluIG9ubHkgYSBmZXcgbGV0dGVycywgdG8gaW5kaWNhdGUgYSBzbWFsbCBmaWx0ZXIuICBpLmU6IGZpZWxkdmFsPWIgdG8gcmV0dXJuIGFsbCBmaWVsZCB2YWx1ZXMgdGhhdCBiZWdpbiB3aXRoIHRoZSBsZXR0ZXIgYi48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGNhdGVnb3J5ZmllbGQ9IiIgLSBBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBjYXRlZ29yaWVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGNhdGVnb3J5IGZpZWxkLiAgSXQgd2lsbCBub3Qgd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBvciAmcXVvdDtjYXRlZ29yeV9pZCZxdW90OyBwYXJhbWV0ZXJzLiAgIFRoZSBzeW50YXggb2YgdGhpcyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcywgYW5kIGZpZWxkIHZhbHVlcy4gIGkuZTogIGNhdGVnb3J5bGlzdD0mcXVvdDtmaWVsZCBuYW1lOnZhbHVlLGZpZWxkIG5hbWUgMjp2YWx1ZSAyJnF1b3Q7PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBpbmxpbmU9IjAiIC0gVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZXN1bHRwYWdlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2gsIGFuZCBjYXRlZ29yeSBsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgcmVzdWx0cy4gIElmIHNwZWNpZmllZCwgdGhpcyB3aWxsIG92ZXJyaWRlIHRoZSBpbmxpbmUgcGFyYW1ldGVyLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gc2VhcmNoZm9ybXRlbXBsYXRlPSIiIC0gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHNlYXJjaGZpZWxkPSIiIC0gPGVtPihkZXByZWNhdGVkKTwvZW0+IEFwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbWF5IGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSBzZWFyY2g8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHN1bW1hcnlwYWdlPSJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyIgLSA8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHByb2R1Y3RsaXN0PSJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBwcm9kdWN0IGlkcyB0byBkaXNwbGF5LiAgTm8gcGFnaW5hdGlvbiBvciBzb3J0aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGVzZSB2YWx1ZXMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuIiAtIDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbm9jaGlsZHJlbj0iQXBwbGljYWJsZSB0byB0aGUgaGllcmFyY2h5IHZpZXcsIGFuZCB0aGUgc3VtbWFyeSB2aWV3IHdoZW4gZGlzcGxheWluZyBpdGVtcyBvZiBhIHNwZWNpZmljIGhpZXJhcmNoeSwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgY2hpbGQgaGllcmFyY2hpZXMgc2hvdWxkIGJlIGV4Y2x1ZGVkIiAtIDwvbGk+PC91bD4=]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDIuMjcuNTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPjx1bD4KPGxpPlZlcnNpb24gMS4wIC0gRGVjZW1iZXIsIDIwMDcKICAgPHA+SW5pdGlhbCBSZWxlYXNlPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAxLjAuMSAtIEphbnVhcnksIDIwMDgKICAgPHVsPgogICAgIDxsaT5BZGRzIHBhZ2luYXRpb24gaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgICA8bGk+Rml4ZXMgYSBwcm9ibGVtIHdpdGggZHVwbGljYXRlIGxpbmtzIGluIHN1bW1hcnkgdmlldzwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMCAtIEFwcmlsLCAyMDA4CiAgPHVsPgogICAgIDxsaT5BZGRzIGhpZXJhcmNoaWNhbCBjYXRlZ29yaWVzIGFzIHdlbGwgYXMgdGhlIG9yaWdpbmFsICd0YWcnIGJhc2VkIGNhdGVnb3JpZXMuPGJyLz4KICAgICAgICAgSGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgY2FuIGhhdmUgYW4gaW1hZ2UgYXMgd2VsbCBhcyBhIGRlc2NyaXB0aW9uLjwvbGk+CiAgICAgPGxpPkFkZHMgbW9yZSBjdXN0b20gZmllbGQgdHlwZXMgKGltYWdlLCBkcm9wZG93bik8YnIvPgogICAgICAgICBJbmNsdWRpbmcgdGh1bWJuYWlsIGdlbmVyYXRpb24uPC9saT4KICAgICA8bGk+UmVtb3ZlIHRoZSBvcmlnaW5hbCBpbWFnZSBmaWVsZHM8L2xpPgogICAgIDxsaT5BZGRzIFNlYXJjaCBtb2R1bGUgY2FwYWJpbGl0eTwvbGk+CiAgICAgPGxpPkFkZHMgYSBoaWVyYXJjaGljYWwgY2F0ZWdvcnkgdmlldyB3aXRoIGRyaWxsIGRvd24gc3VwcG9ydDwvbGk+CiAgICAgPGxpPk11Y2gsIG11Y2ggbW9yZTwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4wLjEgLSBBcHJpbCwgMjAwOAogIDx1bD4KICAgICA8bGk+Rml4ZXMgbnVtZXJvdXMgc21hbGwgZXJyb3JzLjwvbGk+CiAgICAgPGxpPkZpeCB0byBhbGxvdyBzcGFjZXMgYW5kIG90aGVyIGNoYXJhY3RlcnMgaW4gaGllcmFyY2h5IG5hbWVzPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjAuMiAtIEF1Z3VzdCwgMjAwOAogIDx1bD4KICAgICA8bGk+QnVnIGZpeGVzPC9saT4KICAgICA8bGk+Tm93IFJlcXVpcmUgQ0dFeHRlbnNpb25zIDEuOTwvbGk+CiAgICAgPGxpPkFkZCBhIGN1cnJlbmN5IGNvZGUgcHJlZmVyZW5jZTwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xLjEgLSBTZXB0ZW1iZXIsIDIwMDgKICA8dWw+CiAgICAgPGxpPkJ1ZyBmaXhlczwvbGk+CiAgICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBhc3NvY2lhdGUgc3RhdGljIGRhdGEgd2l0aCBhbnkgY2F0ZWdvcnk8L2xpPgogICAgIDxsaT5BZGQgdGhlIGFiaWxpdHkgdG8gY29weSBjYXRlZ29yaWVzPC9saT4KICAgICA8bGk+QWRkIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIHdhdGVybWFyayB1cGxvYWRlZCBhYmlsaXRpZXMuPC9saT4KICAgICA8bGk+QWRkIHRoZSBvcHRpb25hbCBhYmlsaXR5IHRvIGNoYW5nZSB0aGUgbG9jYXRpb24gb2YgdGhlIHdhdGVybWFyayBpbiB1cGxvYWRlZCBpbWFnZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEuMiAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5VcGRhdGUgZGVwZW5kZW5jaWVzLCBhbmQgcmVtb3ZlIGRlYnVnIHN0YXRlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEuMyAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5NaW5vciBCdWdmaXhlczwvbGk+CiAgICA8bGk+Q2hhbmdlIHRoZSBkZWxpbWl0ZXIgb24gdGhlIGF0dHJpYnV0ZXMgZHJvcGRvd248L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMiAtIERlY2VtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk51bWVyb3VzIEJ1Z2ZpeGVzPC9saT4KICAgIDxsaT5Qcm9kdWN0cyBtb2R1bGUgbm93IGhhcyBhIENhcnQgbW9kdWxlIHByZWZlcmVuY2UsIHdoZXJlIHlvdSBjYW4gcGljayBmcm9tIHRoZSBhdmFpbGFibGUgY2FydCBtb2R1bGVzLjwvbGk+CiAgICA8bGk+TW9kaWZ5IGRlZmF1bHQgdGVtcGxhdGVzIHNvIHRoYXQgdGhlIGNhcnQgbW9kdWxlIHByZWZlcmVuY2UgaXMgdXNlZC48L2xpPgogICAgPGxpPlJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byB0YXhlcyBvciBzaGlwcGluZyBtb2R1bGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yLjEgLSBKYW51YXJ5LCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZCBhYmlsaXR5IHRvIHNvcnQgYnkgd2VpZ2h0LjwvbGk+CiAgICA8bGk+QWRkIGJyZWFkY3J1bWJzIHRvIGRldGFpbCB2aWV3LjwvbGk+CiAgICA8bGk+QWRkIGNhdGVnb3J5IGluZm9ybWF0aW9uIHRvIHN1bW1hcnkgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMi4yIC0gSmFudWFyeSwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXggbWlub3IgcHJvYmxlbSB3aXRoIGNhdGVnb3J5IGluZm9ybWF0aW9uIGluIHN1bW1hcnkgdmlldy48L2xpPgogICAgPGxpPkFkZCBjb25zaXN0ZW50IG9yZGVyaW5nIHRvIEdldENhdGVnb3JpZXNGb3JQcm9kdWN0PC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIuNCAtIEZlYnJ1YXJ5LCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZCBJRCB0byB0aGUgaGllcmFyY2h5IHRhYjwvbGk+CiAgICA8bGk+QWRkIHRoZSB7JHBhcmVudH0gdmFyaWFibGUgdG8gdGhlIGhpZXJhcmNoeSBkaXNwbGF5LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4zIC0gTWFyY2gsIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIENTViBJbXBvcnQ8L2xpPgogICAgPGxpPkFkZCBpbmRleGVzIHRvIHRoZSB0YWJsZXMsIHNob3VsZCByZXN1bHQgaW4gYSBtYXNzaXZlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50LjwvbGk+CiAgICA8bGk+QWRkIEV4dHJhMSBhbmQgRXh0cmEyIGZpZWxkcyB0byB0aGUgaGllcmFyY2h5IGRlZmluaXRpb24uPC9saT4KICAgIDxsaT5GaXhlcyBwcm9ibGVtcyB3aXRoIGRhdGVzCiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4zLjEgLSBNYXJjaCwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXhlcyB0byBDU1YgSW1wb3J0PC9saT4KICAgIDxsaT5CdW1wIG1pbmltdW0gQ01TIFZlcnNpb24gdG8gMS41LjM8L2xpPgogICAgPGxpPkJ1Z2ZpeGVzIHRvIGVkaXQgYXR0cmlidXRlIHNldC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNCAtIEp1bHksIDIwMDgKICA8dWw+CiAgICA8bGk+Rml4ZXMgRWRpdCBBdHRyaWJ1dGUgU2V0IFByb2JsZW08L2xpPgogICAgPGxpPkFkZHMgR2V0Q2F0ZWdvcnkoKSBtZXRob2QuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuMiAtIEp1bHksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkcyBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIHVzZSBieSB0aGUgUHJvbW90aW9ucyBhbmQgb3RoZXIgbW9kdWxlcy48L2xpPgogICAgPGxpPkZpeGVzIG1pbm9yIGJ1Z3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNCAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXhlcyBtaW5vciBidWdzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjUgLSBOb3ZlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5NaW5vciBzbWFydHkgaW1wcm92ZW1lbnRzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjcgLSBEZWNlbWJlciwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGRzIGFiaWxpdHkgdG8gc3BlY2lmeSBhIHRlbXBsYXRlIGZvciBwcm9kdWN0IGF0dHJpYnV0ZSB2YWx1ZSBkaXNwbGF5IGluIHRoZSBkcm9wZG93bnMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBzaG93YWxsIHBhcmFtZXRlciAob3B0aW9uYWwpIHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40LjggLSBKYW51YXJ5LCAyMDA5CiAgPHVsPgogICAgPGxpPkFkZHMgaGFuZGxpbmcgZm9yIGRpcmVjdCBhY2Nlc3MgdG8gZGlzYWJsZWQvZGVsZXRlZC9pbnZhbGlkIHByb2R1Y3QgZGV0YWlsIHZpZXdzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi41LjEgLSBGZWJydWFyeSwgMjAxMAogIDx1bD4KICAgIDxsaT5JbXByb3ZlbWVudHMgZm9yIE1BQyBmb3JtYXQgQVNDSUkgY3N2IGZpbGVzLjwvbGk+CiAgICA8bGk+QWRkcyBwcm9kdWN0IGFsaWFzIG1lY2hhbmlzbS48L2xpPgogICAgPGxpPkFkZHMgYnJlYWRjcnVtYiBzdXBwb3J0IGludG8gdGhlIGRldGFpbCB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyBwcmV0dHkgdXJsIHN1cHBvcnQgaW50byB0aGUgc2VhcmNoIHJlc3VsdHMuPC9saT4KICAgIDxsaT5BZGRzIGNhbm9uaWNhbCBzdXBwb3J0IGludG8gdGhlIGRldGFpbCB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyBTS1Ugc3VwcG9ydC48L2xpPgogICAgPGxpPkJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNiAtIE1hcmNoLCAyMDE5CiA8dWw+CiAgIDxsaT5Nb2RpZmljYXRpb25zIHRvIHdvcmsgd2l0aCBuZXcgRS1jb21tZXJjZSBzZXR1cC48L2xpPgogICA8bGk+TWFueSBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNi4xIC0gQXByaWwsIDIwMTkKIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42LjIgLSBBcHJpbCwgMjAxOQogPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcgLSBBcHJpbCwgMjAxOQogPHVsPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBzb3J0IHN1bW1hcnkgdmlld3MgYnkgY3VzdG9tIGZpZWxkcy48L2xpPgogICA8bGk+QWRkcyB0aGUgZmllbGRsaXN0IGFjdGlvbiB0byBhbGxvdyBjcmVhdGluZyBuYXZpZ2F0aW9ucyBvbiBjdXN0b20gZmllbGRzLjwvbGk+CiAgIDxsaT5BZGRzIHNlYXJjaCBhY3Rpb24gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzLjwvbGk+CiAgIDxsaT5SZW1vdmUgY3VycmVuY3kgY29kZSBhbmQgb3RoZXIgcHJlZmVyZW5jZXMgdGhhdCBhcmUgbm93IGluIENHRWNvbW1lcmNlQmFzZS4uLiB3ZWxsIGlmIENHRWNvbW1lcmNlQmFzZSBpcyBpbnN0YWxsZWQgYW55d2F5cy48L2xpPgogICA8bGk+UmVtb3ZlIHNvbWUgcHJlZmVyZW5jZXMgYW5kIHRlbXBsYXRlcyB0aGF0IGFyZSBub3cgaG9zdGVkIGluIENHRWNvbW1lcmNlQmFzZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjEgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+QWRkcyBhIHJldHVybiBsaW5rIHRvIHRoZSBjYXRlZ29yeSBmaWVsZHMgZWRpdCBwYWdlLjwvbGk+CiAgIDxsaT5BZGRzIGEgZGV0YWlsX3VybCBwYXJhbSB0byB0aGUgY2F0ZWdvcnkgbGlzdCB2aWV3LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBjYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSBwYXJhbS48L2xpPgogICA8bGk+Q2F0ZWdvcnkgTGlzdCB2aWV3IG5vdyB1c2VzIHRoZSByZXN1bHRwYWdlIHBhcmFtZXRlciBieSBkZWZhdWx0LjwvbGk+CiAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBkZWxldGluZyBmaWxlcyBpbiB0aGUgZWRpdCBwcm9kdWN0IHBhZ2UuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNy4zIC0gQXByaWwsIDIwMTAKIDx1bD4KICAgPGxpPlJlbW92ZSB0aGUgaW1hZ2Ugd2hlbiByZW1vdmluZyB0aGUgaGllcmFyY2h5IGl0ZW0uPC9saT4KICAgPGxpPkltcHJvdmVtZW50cyB0byBjYXRlZ29yeSBmaWVsZCBvcmRlcmluZy48L2xpPgogICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byByZW5hbWUgY2F0ZWdvcnkgZmllbGRzLjwvbGk+CiAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNy40IC0gQXByaWwsIDIwMTAKIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjUgLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPkZpeGVzIHByb2JsZW0gd2l0aCBzZWFyY2ggdGVtcGxhdGVzIG9uIHVwZ3JhZGUuPC9saT4KICAgPGxpPkFkZHMgY2F0ZWdvcnkgZmllbGQgcmVvcmRlcmluZy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjYgLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPkZpeGVzIHRvIGNhdGVnb3J5IGZpZWxkIHJlLW9yZGVyaW5nLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjggLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPkFkZHMgYSB0cnVlIGhpZXJhcmNoeSBtb2RlLjxici8+CiAgICAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgd2lsbCBicmVhayBleGlzdGluZyBzaXRlcyB1c2luZyB0aGUgb2xkZXIgaGllcmFyY2h5IHZpZXcuICBZb3Ugc2hvdWxkIHJlYWQgdGhlIGhlbHAgZm9yIGluZm9ybWF0aW9uIGFzIHRvIGhvdyB0byB1c2UgdGhlIG5ldyB2aWV3LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGFkZCBjdXN0b20gZmllbGRzIHRvIHRoZSBhZG1pbiBzaWRlIHByb2R1Y3QgdGFibGUgdmlldy48L2xpPgogICA8bGk+SW1wcm92ZXMgdGhlIENTViBpbXBvcnQgZnVuY3Rpb24uPC9saT4KICAgPGxpPkFkZHMgYSBuZXcgZGltZW5zaW9uIGRhdGEgZmllbGQuPC9saQogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjEgLSBNYXksIDIwMTAKIDx1bD4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcyB0byBhZG1pbiBkaXNwbGF5LjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMiAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4IHRvIGRlZmF1bHQgaGllcmFyY2h5IHRlbXBsYXRlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMiAtIE1heSwgMjAxMAogPHVsPgogICAgPGxpPkFkZHMgc3Vic2NyaXB0aW9uIGZpZWxkIHR5cGUuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5BZGRlZCBzdXBwb3J0IGZvciBmaWVsZHZhbD0nOjpub3RudWxsOjonIG9uIHRoZSBzdW1tYXJ5IHZpZXcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4zIC0gSnVseSwgMjAxMAogPHVsPgogICAgPGxpPlJlbW92ZXMgdGhlIHVzZW9sZGhpZXJhcmNoeSBwYXJhbSBmcm9tIHRoZSBoaWVyYXJjaHkgdmlldy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZmlsdGVyIHRoZSBvdXRwdXQgaW4gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguNCAtIFNlcHRlbWJlciwgMjAxMAogPHVsPgogICAgPGxpPkFkZHMgYSBwcmVmZXJlbmNlIGZvciB0aGUgZGVmYXVsdCBwYWdlIGxpbWl0IGluIHN1bW1hcnkgbW9kZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjUgLSBTZXB0ZW1iZXIsIDIwMTAKIDx1bD4KICAgIDxsaT5BZGRzIHNvcnRpbmcgY2FwYWJpbGl0aWVzIHRvIHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L2xpPgogICAgPGxpPlJlLXdvcmtzIHRoZSBoaWVyYXJjaHkgdmlldyAoYWdhaW4pLiAgVGVtcGxhdGVzIHdpbGwgbmVlZCB0byBjaGFuZ2UuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGV4cGxpY2l0bHkgbGlzdCBoaWVyYXJjaHkgaXRlbXMgaW4gdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyBjb21tYSBzZXBhcmF0ZWQgaGllcmFyY2h5IGNhcGFiaWxpdHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguNiAtIFNlcHRlbWJlciwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgdG8gQ1NWIGltcG9ydCBzdHVmZi48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi45IC0gRGVjZW1iZXIsIDIwMTAKIDx1bD4KICAgPGxpPkZpeGVzIHNvbWUgaXNzdWVzIHJlbGF0ZWQgdG8gRV9TVFJJQ1QgYW5kIEVfREVQUkVDQVRFRDwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGNvcHkgYXR0cmlidXRlIHNldHMgZnJvbSBhbm90aGVyIHByb2R1Y3QuPC9saT4KICAgPGxpPkZpeGVzIHRvIENTViBpbXBvcnQgc3R1ZmYuPC9saT4KICAgPGxpPkZpeGVzIHRvIGVudGVyaW5nIGEgc2t1IGluIGF0dHJpYnV0ZXMuPC9saT4KICAgPGxpPkFkZHMgaGllcmFyY2h5IGluZm9ybWF0aW9uIHRvIHNlYXJjaCwgc3VtbWFyeSBhbmQgZGV0YWlsIHZpZXdzLjwvbGk+CiAgIDxsaT5GaXhlcyBhbiBpc3N1ZSB3aXRoIHBhZ2luYXRpb24gaW4gdGhlIGFkbWluIHBhbmVsIHByb2R1Y3RzIHRhYi48L2xpPgogICA8bGk+Rml4ZXMgYW4gaXNzdWUgd2l0aCBwYWdlIGNvdW50cyBpbiB0aGUgcHJvZHVjdHMgdGFiIHdoZW4gYSBjdXN0b20gZmllbGQgaXMgYWRkZWQgdG8gdGhlIHZpZXcgbGlzdC48L2xpPgogICA8bGk+TWFueSBtb3JlIGJ1ZyBmaXhlcyBhbmQgbWlub3IgaW1wcm92ZW1lbnRzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjIgLSBKYW51YXJ5LCAyMDExCiA8dWw+CiAgIDxsaT5BZGRzIGNhbm9uaWNhbCBVUkwgdG8gdGhlIGhpZXJhcmNoeSBpdGVtLCBpbiB0aGUgaGllcmFyY2h5IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIHByb2R1Y3RsaXN0IHBhcmFtZXRlciB0byBvdXRwdXQgYSBzdW1tYXJ5IHZpZXcgb2Ygc3BlY2lmaWMgcHJvZHVjdHMuICBEb2VzIG5vdCBwcm92aWRlIHBhZ2luYXRpb24gb3Igc29ydGluZy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC4zIC0gRmVicnVhcnksIDIwMTEKIDx1bD4KICAgPGxpPkZpeGVzIGJ1ZyB3aXRoIGRlZmF1bHQgdmlldy4uLi4gdGhhbmtzIHN0aWtraTwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjQgLSBNYXksIDIwMTEKIDx1bD4KICAgPGxpPk1pbm9yIGZpeCB0byB0aGUgdW5pbnN0YWxsZXIuPC9saT4KICAgPGxpPkFkZHMgdGhlIGNhdGVnb3J5ZmllbGQgcGFyYW1ldGVyIHRvIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLjwvbGk+CiAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBjYXRlZ29yeSBmaWVsZHMgd2hlbiBjb3B5aW5nIGEgY2F0ZWdvcnkuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuNSAtIE1heSwgMjAxMQogPHVsPgogICA8bGk+TWlub3JlcyBmaXggdG8gY2F0ZW9ncnkgZmllbGRzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjExIC0gTWF5LCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgdGhlICZxdW90O2V4Y2x1ZGVjYXQmcXVvdDsgcGFyYW1ldGVyLjwvbGk+CiAgICA8bGk+UmVtb3ZlcyBzb21lIGVycmFudCBkZWJ1ZyBzdGF0ZW1lbnRzIGluIHRoZSBjYXRlZ29yeWxpc3Qgdmlldy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTIgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+VGhlcmUgaXMgbm93IGFuIG9wdGlvbiB0byBtYWtlIHN1cmUgdGhhdCB0aGUgU0tVIGlzIHJlcXVpcmVkIHdoZW4gYWRkaW5nL2VkaXRpbmcgcHJvZHVjdHMvYXR0cmlidXRlcy48L2xpPgogICAgPGxpPlRoZSBpbWFnZSB0aHVtYm5haWwsIHByZXZpZXcsIGFuZCB3YXRlcm1hcmtpbmcgc3R1ZmYgaXMgbm93IERFUFJFQ0FURUQuPC9saT4KICAgIDxsaT5BZGRlZCB0aGUgYXR0cmlic19mdWxsIHN0dWZmIGludG8gdGhlIGRldGFpbCBhbmQgc3VtbWFyeSB2aWV3cy4gICB0aGUgYXR0cmlidXRlcyBtZW1iZXIgb2Ygb3V0cHV0IG9iamVjdHMgaXMgZGVwcmVjYXRlZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTIuMSAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIGNhY2hpbmcgZm9yIGZpZWxkIGRlZmluaXRpb25zLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMyAtIEp1bHksIDIwMTEKICA8dWw+CiAgIDxsaT5BZGRzIGJ1bGsgYWN0aW9ucyBpbiB0aGUgcHJvZHVjdCBsaXN0LjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGV4Y2x1ZGUgcHJvZHVjdHMgaW4gY2VydGFpbiBjYXRlZ29yaWVzIGZyb20gdGhlIHByb2R1Y3QgbGlzdC48L2xpPgogICA8bGk+TnVtZXJvdXMgbWlub3IgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMy4xIC0gSnVseSwgMjAxMQogIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMuMiAtIEp1bHksIDIwMTEKICA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzLjMgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE0IC0gQXVndXN0LCAyMDExCiAgPHVsPgogICA8bGk+QWRkcyBmdW5jdGlvbmFsaXR5IGZvciBkeW5hbWljYWxseSByZW9yZ2FuaXppbmcgdGhlIGhpZXJhcmNoeSB0cmVlLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNSAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgIDxsaT5BZGRzIGEgc2ltcGxlIHF1YW50aXR5LW9uLWhhbmQgZmllbGQuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE2IC0gQXVndXN0LCAyMDExCiAgPHVsPgogICAgPGxpPlZhc3RseSBpbXByb3ZlZCBzZWFyY2ggY2FwYWJpbGl0aWVzLiAgTm90ZTogZXhpc3RpbmcgdGVtcGxhdGVzIHdpbGwgbmVlZCB0byBiZSB1cGRhdGVkIGFzIGZpZWxkIG5hbWVzIGhhdmUgY2hhbmdlZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTcgLSBNYXJjaCwgMjAxMgogIDx1bD4KICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGR1cGxpY2F0ZSBhIHByb2R1Y3QuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE4LjIgLSBKdW5lLCAyMDEyCiAgPHVsPgogICAgPGxpPkNyZWF0ZXMgYSBuZXcgZmxleGlibGUgcXVlcnkgY2xhc3MgYW5kIG1hdGNoaW5nIHJlc3VsdHNldCBjbGFzcy48L2xpPgogICAgPGxpPkRyYW1hdGljIHBlcmZvcm1hbmNlIGltcHJvdm1lbnQgZm9yIHN1bW1hcnkgdmlld3MuPC9saT4KICAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIGV4cG9ydCBwcm9kdWN0IGluZm9ybWF0aW9uIHRvIGNzdi48L2xpPgogICAgPGxpPk1hbnkgaW1wcm92ZW1lbnRzIHRvIENTViBpbXBvcnQuPC9saT4KICAgIDxsaT5BZGRzIGFuIG9wdGlvbmFsIG5ldyBkZWZhdWx0IGFjdGlvbiB3aGljaCBzaG91bGQgYmUgbXVjaCBmYXN0ZXIuICBPcmlnaW5hbCBkZWZhdWx0IGFjdGlvbiB3aWxsIGJlIHJlbW92ZWQgb3ZlciB0aW1lLjwvbGk+CiAgICA8bGk+SGVscCBpcyBub3cgaW4gaXRzIG93biBmaWxlLjwvbGk+CiAgICA8bGk+QWRkIHRoZSAncGFyZW50cycgcGFyYW1ldGVyIHRvIHRoZSBoaWVyYXJjaHkgYWN0aW9uLjwvbGk+CiAgICA8bGk+TnVtZXJvdXMgY2FjaGluZyBvcHRpbWl6YXRpb25zLjwvbGk+CiAgICA8bGk+TW9yZSBpbmRleGVzIG9uIHRoZSBwcm9kdWN0cyB0YWJsZSBkdXJpbmcgaW5zdGFsbC48L2xpPgogICAgPGxpPkxhbmd1YWdlIGNoYW5nZS4uLiBpbiBtb3N0IHBsYWNlcywgcHJvZHVjdHMgYXJlIG5vdyByZWZlcnJlZCB0byBhcyAmcXVvdDtpdGVtcyZxdW90OzwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xOC4zIC0gSnVseSwgMjAxMgogIDx1bD4KICAgIDxsaT5NaW5vciBGaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTkueCAtIERlY2VtYmVyLCAyMDEyCiAgPHA+PHN0cm9uZz5OT1RFOiBDT01QQVRJQklMSVRZIEJST0tFTi4gIFNPTUUgQ0hBTkdFUyBSRVFVSVJFRC48L3N0cm9uZz48L3A+CiAgPHA+PHN0cm9uZz5OT1RFOiBQSFAgNS4zLnggSVMgUkVRVUlSRUQuPC9zdHJvbmc+PC9wPgogIDx1bD4KICAgIDxsaT5SZW1vdmVzIHRoZSBlbnRpcmUgYXR0cmlidXRlIG1lY2hhbmlzbSBhbmQgcmVwbGFjZXMgaXQgd2l0aCBhIGZsYXQgbGlzdCBvZiBvcHRpb25zLgogICAgICA8cD5UaGlzIG1lYW5zIHRoYXQgc2hvcHMgdXNpbmcgdGhlIGF0dHJpYnV0ZXMgd2lsbCBuZWVkIHRvIGFkanVzdCB0aGVpciBwcm9kdWN0cyBiZWNhdXNlIGluc3RlYWQgb2YgaGF2aW5nIG11bHRpcGxlICZxdW90O2F0dHJpYnV0ZXMmcXVvdDsgdGhlcmUgaXMgbm93IG9uZSBmbGF0IGxpc3Qgb2Ygb3B0aW9ucyB3aXRoIGEgc2ltcGxlIHRleHQgZmllbGQgdG8gZGVzY3JpYmUgdGhlbS48L3A+CiAgICAgIDxwPkFkZGl0aW9uYWxseSwgc3VtbWFyeSBhbmQgZGV0YWlsIHRlbXBsYXRlcyB3aGVyZSBhdHRyaWJ1dGVzIHdlcmUgZGlzcGxheWVkIHdpbGwgbmVlZCBhZGp1c3RtZW50LjwvcD4KICAgIDwvbGk+CiAgICA8bGk+U0tVcyBhcmUgbm93IHJlcXVpcmVkIGJ5IGRlZmF1bHQgKGFzIHRoZXkgYXJlIG5lZWRlZCBmb3IgdGhlIENhcnQyIG1vZHVsZSk8L2xpPgogICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMjAgLSBPY3RvYmVyLCAyMDEzCiAgPHVsPgogICAgPGxpPlJlZmFjdG9yIHRoZSBzZWFyY2ggYWN0aW9uCiAgICAgIDx1bD4KICAgICAgICA8bGk+SW1wcm92ZWQgYWJpbGl0eSB0byBzZWFyY2ggb24gY3VzdG9tIGZpZWxkczwvbGk+CiAgICAgICAgPGxpPkltcHJvdmVkIGFiaWxpdHkgdG8gc3BlY2lmeSBzZWFyY2ggYmVoYXZpb3IgaW4gdGhlIHNlYXJjaCB0ZW1wbGF0ZSwgYXMgb3Bwb3NlZCB0byB0aGUgUHJvZHVjdHMgVGFnLjwvbGk+CiAgICAgICAgPGxpPkZpeGVzIHBhZ2luYXRpb24gbGlua3MuPC9saT4KICAgICAgICA8bGk+SW1wcm92ZWQgZG9jdW1lbnRhdGlvbiBpbiB0aGUgcHJvdG90eXBlIHNlYXJjaCBmb3JtIHRlbXBsYXRlLjwvbGk+CiAgICAgICAgPGxpPk5vdyB1c2VzIHRoZSBzYW1lIGNsYXNzZXMgdXNlZCBmb3IgZ2VuZXJhdGluZyBzdW1tYXJ5IHZpZXdzLi4uLiB3aXRoIHRoZSBzYW1lIG9wdGltaXphdGlvbnMuPC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+TmV3IGNvbXBhbnlkaXJlY3RvcnkgZmllbGQgdHlwZSBhbGxvd2luZyBsaW5raW5nIGEgcHJvZHVjdCB0byBhIGNvbXBhbnkuICBVc2VzIGFuIGFqYXh5IGF1dG9jb21wbGV0ZSBtZWNoYW5pc20gZm9yIGZpbmRpbmcgQ29tcGFuaWVzLjwvbGk+CiAgICA8bGk+SW1wcm92ZWQgYWRtaW4gZmlsdGVyaW5nCiAgICAgIDx1bD4KICAgICAgICA8bGk+RmlsdGVyIG9uIFNLVSBvciBwcm9kdWN0IG5hbWU8L2xpPgogICAgICAgIDxsaT5BZGRzIGFiaWxpdHkgdG8gc29ydCBvbiBjdXN0b20gZmllbGRzIG51bWVyaWNhbGx5LjwvbGk+CiAgICAgICAgPGxpPkZpbHRlciBpcyBub3cgc3RvcmVkIGFzIGEgdXNlciBwcmVmZXJlbmNlLCBhbmQgcGFnZSBudW1iZXIgc3RvcmVkIGluIHRoZSBzZXNzaW9uLjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpPlR3ZWFrcyB0byBDU1YgSW1wb3J0PC9saT4KICAgIDxsaT5OdW1lcm91cyBtaW5vciBlbmhhbmNlbWVudHM8L2xpPgogICAgPGxpPkEgY291cGxlIG5ldyBkYXRhYmFzZSBpbmRleGVzIGZvciBwZXJmb3JtYW5jZS48L2xpPgogICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPk1vcmUuLi48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMjEueAogIDx1bD4KICAgIDxsaT5BZGRzIG9yZGVyaW5nIHRvIHRoZSBwcm9kdWN0IG9wdGlvbnMuPC9saT4KICAgIDxsaT5SZXdyb3RlIHRoZSBwcm9kdWN0IG9wdGlvbnMgZGlhbG9nLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yMi54CiAgPHVsPgogICAgPGxpPlJld29yayB0aGUgaGllcmFyY2h5IGFjdGlvbiBhZ2Fpbi4uLiBub3cgc3VwcG9ydCBzaG93aW5nIGl0ZW1zIGZyb20gY2hpbGQgY2F0ZWdvcmllcyA8c3Ryb25nPmJ5IGRlZmF1bHQ8L3N0cm9uZz4uCiAgICAgIDxwPjxzdHJvbmc+VGhpcyBpcyBhIGNoYW5nZSBpbiBiZWhhdmlvcjo8L3N0cm9uZz4geW91IG1heSBuZWVkIHRvIGFkanVzdCB5b3VyIHdlYnNpdGVzLjwvcD4KICAgICAgPHA+VGhpcyBtZWFucyB0aGF0IHRoZSBhY3Rpb249aGllcmFyY2h5IHdpbGwgbm93IGdlbmVyYXRlIGxpbmtzIHRvIHN1bW1hcnkgdmlld3MgdGhhdCB3aWxsIHNob3cgdGhlIHByb2R1Y3RzIG9mIHRoYXQgaGllcmFyY2h5LCBhbmQgaXRzIGNoaWxkcmVuLjwvcD4KICAgICAgPHA+VG8gcmVzdG9yZSB0aGUgb2xkIGJlaGF2aW9yIHRoZSBub2NoaWxkcmVuPTEgcGFyYW1ldGVyIHdhcyBhZGRlZC4gIEhvd2V2ZXIsIHRoZSBVUkxTIGdlbmVyYXRlZCB3aGVuIG5vY2hpbGRyZW49MSBpcyBhZGRlZCB0byB0aGUgdGFnIHdpbGwgbm90IGJlIHByZXR0eS48L3A+CiAgICA8L2xpPgogICAgPGxpPkltcHJvdmVtZW50cyB0byBBU0NJSSBpbXBvcnRpbmc6CiAgICAgIDxwPk5vdyBzdXBwb3J0cyBpbXBvcnRpbmcgcHJvZHVjdCBvcHRpb25zIHByb3Blcmx5LjwvcD4KICAgICAgPHA+Tm93IHN1cHBvcnQgaW1wb3J0aW5nIGNhdGVnb3JpZXMgd2l0aCB0aGUgZGVsaW1pdGVyIGluIGl0cyBuYW1lLjwvcD4KICAgIDwvbGk+CiAgICA8bGk+YmVnaW4gcmVtb3ZpbmcgZGVwcmVjYXRlZCBmdW5jdGlvbnMgYW5kIGZ1bmN0aW9uYWxpdHkuPC9saT4KICAgIDxsaT5JbXByb3ZlbWVudHMgdG8gdGhlIG9yZGVydXBkYXRlZCBldmVudCB3cnQgdXBkYXRpbmcgcXVhbnRpdHkgb24gaGFuZC48L2xpPgogIDwvdWw+CjwvbGk+PgoKICAgPGxpPlZlcnNpb24gMi4yMy54CiAgICAgPGRpdiBjbGFzcz0iaW5mb3JtYXRpb24iPjxzdHJvbmc+V0FSTklORzo8L3N0cm9uZz4gVGhlIHByb2R1Y3RzIG1vZHVsZSB3aWxsIG5vIGxvbmdlciBnZW5lcmF0ZSBwcmV2aWV3IGFuZCB0aHVtYm5haWwgaW1hZ2VzIG9uIGltYWdlIHVwbG9hZC4gIFVzZSBDR1NtYXJ0SW1hZ2UgZm9yIHRoaXMgcHVycG9zZS4KICAgICAgIFRob3VnaCB0aGVyZSBpcyBzdGlsbCBzb21lIGNvZGUgdG8gd29yayB3aXRoIHByZXZpZXcgYW5kIHRodW1iIGltYWdlcyBpZiB0aGV5IGFscmVhZHkgZXhpc3QuICBUaGlzIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSByZW1vdmVkIGF0IGEgbGF0ZXIgZGF0ZS48L2Rpdj4KICAgICA8dWw+CiAgIDwvbGk+CgogICA8bGk+VmVyc2lvbiAyLjI0CiAgICAgPHVsPgogICAgICAgPGxpPkFkZCBVUkwgc2x1ZyBmdW5jdGlvbmFsaXR5IGxpa2Ugd2hhdCBDR0Jsb2cgYW5kIE5ld3MgSGF2ZS48L2xpPgogICAgICAgPGxpPkNvZGUgY2xlYW51cCBhbmQgdGVtcGxhdGUgZml4ZXMuPC9saT4KICAgICAgIDxsaT5SZXdvcmsgKGFnYWluKSB0aGUgaGllcmFyY2h5IHZpZXcuPC9saT4KICAgICAgIDxsaT5OdW1lcm91cyBidWcgZml4ZXMuPC9saT4KICAgICA8L3VsPgogICA8L2xpPgoKICAgPGxpPlZlcnNpb24gMi4yNQogICAgIDxici8+CiAgICAgPHAgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+V2FybmluZzo8L3N0cm9uZz4gVGhpcyBpcyB0aGUgbGFzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlIGZvciBDTVNNUyAxLnguICBBbGwgc3Vic2VxdWVudCByZWxlYXNlcyB3aWxsIHJlcXVpcmUgQ01TTVMgMi54IGFuZCB3aWxsIGludGVncmF0ZSB3aXRoIHRoZSBEZXNpZ24gTWFuYWdlci48L3A+CiAgICAgPHVsPgogICAgICAgPGxpPkFkZHMgYSBuZXcgYnVsayBhY3Rpb24gZm9yIGFkanVzdG5nIHN0b2NrIGxldmVscy48L2xpPgogICAgIDwvdWw+CiAgIDwvbGk+CgogICA8bGk+VmVyc2lvbiAyLjI2CiAgICAgPGRpdiBjbGFzcz0id2FybmluZyI+PGg0Pldhcm5pbmc6PC9oND4KICAgICAgIDxwPlRoaXMgdmVyc2lvbiBub3cgdXNlcyBEZXNpZ25NYW5hZ2VyIHRvIG1hbmFnZSBhbGwgZnJvbnRlbmQgdmlldyB0ZW1wbGF0ZXMuICBUaG91Z2ggdGhlIHRlbXBsYXRlIGNvbnRlbnRzIGhhdmUgbm90IGNoYW5nZWQsIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRlbXBsYXRlIG5hbWVzIGFyZSB1bmlxdWUgdGhlIG5hbWVzIG1heSBoYXZlIGJlZW4gYWx0ZXJlZCBkdXJpbmcgdGhlIGNvbnZlcnNpb24gcHJvY2Vzcy4gICBZb3UgbWF5IG5lZWQgdG8gbW9kaWZ5IHRoZSBsb2NhdGlvbnMgd2hlcmUgeW91IHNwZWNpZnkgYWx0ZXJuYXRlIHRlbXBsYXRlcyB0byByZWZsZWN0IHRoZSBuZXcgdGVtcGxhdGUgbmFtZXMuPC9wPgogICAgICAgPHA+VGhpcyBpcyBhIG1ham9yIHJldmlzaW9uLiAgVGhvdWdoIHRlc3RpbmcgaGFzIGJlZW4gcGVyZm9ybWVkLCBhbmQgZGF0YSBzdHJ1Y3R1cmUgY2hhbmdlcyBhcmUgbWluaW1hbCwgcGxlYXNlIGRvIGV4dGVuc2l2ZSB0ZXN0aW5nLjwvcD4KICAgICA8L2Rpdj4KICAgICA8dWw+CiAgICAgICA8bGk+Tm93IHJlcXVpcmVzIENNU01TIDIuMS42IG9yIGxhdGVyLjwvbGk+CiAgICAgICA8bGk+QWRkcyBhbiBvd25lcl9pZCBmaWVsZCBhbmQgYW4gYWJpbGl0eSB0byBzZXQgYW4gb3duZXI8L2xpPgogICAgICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogICAgICAgPGxpPkFkZHMgYW4gb3B0aW9uIGZvciBGRVUgb3duZXIgZ3JvdXAgdG8gdGhlIHByZWZlcmVuY2VzIHRhYi48L2xpPgogICAgICAgPGxpPk5vdyBzdG9yZXMgYWxsIGJ1dCBlbWFpbCB0ZW1wbGF0ZXMgaW4gRGVzaWduTWFuYWdlciwgYWxsb3dzIGdldHRpbmcgcmlkIG9mIGFsb3Qgb2YgY29kZS48L2xpPgogICAgICAgPGxpPk5vdyB3b3JrcyB3aXRoIHRoZSBBZG1pblNlYXJjaCBtb2R1bGUuPC9saT4KICAgICAgIDxsaT5SZWZhY3RvcmluZyBvZiBhbGwgcXVlcnksIHN0b3JhZ2UsIGFuZCBkaXNwbGF5IGNsYXNzZXMuPC9saT4KICAgICAgIDxsaT5SZWZhY3RvcnkgdGhlIGFkZCBhbmQgZWRpdCBwcm9kdWN0IGZvcm1zLjwvbGk+CiAgICAgICA8bGk+UmVtb3ZlIGFsbCB0cmFjZXMgb2YgaW1hZ2UgcHJvY2Vzc2luZy48L2xpPgogICAgICAgPGxpPnJlLWZhY3RvciBudW1lcm91cyBhZG1pbiBmb3JtcyBhbmQgZGlzcGxheXMgdG8gYmUgc21hbGxlciwgY2xlYW5lciwgYW5kIG1vcmUgZWZmaWNpZW50LjwvbGk+CiAgICAgICA8bGk+ZmllbGQgZGVmaW5pdGlvbnMgY2FuIG5vdyBiZSByZS1vcmRlcmVkIHZpYSBkcmFnL2Ryb3AuPC9saT4KICAgICAgIDxsaT5tb3JlLi4uPC9saT4KICAgICA8L3VsPgogICA8L2xpPgoKICAgPGxpPlZlcnNpb24gMi4yNy54CiAgICAgPHVsPgogICAgICAgPGxpTD5Ob3cgYmVnaW5zIHRvIHVzZSBob29rcy48L2xpPgogICAgICAgPGxpPk5vdyByZXF1aXJlcyBDTVNNUyAyLjIuMiBvciBsYXRlci48L2xpPgogICAgICAgPGxpPlJld3JpdGUgYnVsayBhY3Rpb24gZnVuY3Rpb25hbGl0eS48L2xpPgogICAgICAgPGxpPkFkZHMgYSBuZXcgbGlua2VkIGZpbGUgZmllbGQgdHlwZS48L2xpPgogICAgICAgPGxpPkFkZHMgYSBuZXcgc2ltcGxlIGFsYnVtIGludGVyZmFjZSB1c2luZyB0aGUge2Ntc19maWxlcGlja2VyfTwvbGk+CiAgICAgICA8bGk+QWRkcyB7cHJvZHVjdHNfZ2V0aGllcmFyY2h5fSBzbWFydHkgcGx1Z2luLjwvbGk+CiAgICAgICA8bGk+TWlub3IgZml4ZXMuPC9saT4KICAgICA8L3VsPgogICA8L2xpPgo8L3VsPgo8YnIgLz4=]]></about>
	<description><![CDATA[A module for managing a catalog of items, their price, images, etc, and for allowing users to build a cart]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.56.2</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>2.1.6</requiredversion>
	</requires>
	<requires>
	  <requiredname>JQueryTools</requiredname>
	  <requiredversion>1.4</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/.#action.addcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/action.addcategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSByZXR1cm47CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjYXRlZ29yaWVzJyk7CgppZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pICkgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgcmV0dXJuOwp9CgojCiMgSW5pdGlhbGl6YXRpb24KIwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CiRmaWVsZHR5cGUgPSAndGV4dGJveCc7CiRmaWVsZG5hbWUgPSAnJzsKJGZpZWxkcHJvbXB0ID0gJyc7CiRmaWVsZHZhbHVlID0gbnVsbDsKJG9sZF9maWVsZG5hbWUgPSAnJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2ZsZG5hbWUnXSkgKSB7CiAgICAkZmllbGRuYW1lID0gdHJpbSgkcGFyYW1zWydmbGRuYW1lJ10pOwogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX25hbWUgPSA/JzsKICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkLCRmaWVsZG5hbWUpKTsKICAgICRmaWVsZHR5cGUgPSAkcm93WydmaWVsZF90eXBlJ107CiAgICAkZmllbGRwcm9tcHQgPSAkcm93WydmaWVsZF9wcm9tcHQnXTsKICAgICRmaWVsZHZhbHVlID0gJHJvd1snZmllbGRfdmFsdWUnXTsKICAgICRvbGRfZmllbGRuYW1lID0gJGZpZWxkbmFtZTsKfQoKCi8vIEdldCB0aGUgY2F0ZWdvcnkgZGF0YQokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgaWQgPSA/JzsKJGNhdGVnb3J5ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjYXRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkY2F0ZWdvcnkpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRjYXRlZ29yeWZpZWxkcycsJHJldHVybmlkLCBhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKSB7CiAgICAvLwogICAgLy8gVmFsaWRhdGUgRm9ybSBJbnB1dAogICAgLy8KICAgIHRyeSB7CiAgICAgICAgICAgICR1cGxvYWRfaGFuZGxlciA9IGZ1bmN0aW9uKCAkaWQsICRjYXRpZCwgJG9sZHZhbHVlLCAkYWxsb3dlZCApIHsKICAgICAgICAgICAgJGRlc3RkaXIgPSBwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcnlfdXBsb2FkX3BhdGgoJGNhdGlkKTsKICAgICAgICAgICAgY2dlX2Rpcjo6bWtkaXJyKCRkZXN0ZGlyKTsKICAgICAgICAgICAgaWYoICFpc19kaXIoJGRlc3RkaXIpICkgZGllKCdkaXJlY3Rvcnkgc3RpbGwgZG9lcyBub3QgZXhpc3QnKTsKICAgICAgICAgICAgJGhhbmRsZXIgPSBuZXcgY2dfZmlsZXVwbG9hZCgkaWQsJGRlc3RkaXIpOwogICAgICAgICAgICAkaGFuZGxlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkYWxsb3dlZCk7CiAgICAgICAgICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgnaW5wdXRfZmllbGR2YWx1ZScpOwogICAgICAgICAgICAkZXJyID0gJGhhbmRsZXItPmdldF9lcnJvcigpOwogICAgICAgICAgICBpZiggISRyZXMgJiYgJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSAgewogICAgICAgICAgICAgICAgJGVycm9yID0gc3ByaW50ZigiJXMgJXM6ICVzIiwkdGhpcy0+TGFuZygnZmllbGQnKSwnaW5wdXRfZmllbGR2YWx1ZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRlcnJvcik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggISRyZXMgJiYgJGVyciA9PSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSByZXR1cm4gJy0xJzsKICAgICAgICAgICAgaWYoICRvbGR2YWx1ZSApIEB1bmxpbmsoJGRlc3RkaXIuJy8nLiRvbGR2YWx1ZSk7CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH07CgogICAgICAgIC8vCiAgICAgICAgLy8gR2V0IFBhcmFtZXRlciBWYWx1cwogICAgICAgIC8vCiAgICAgICAgJG9sZF9maWVsZF92YWx1ZSA9ICRmaWVsZHZhbHVlOwogICAgICAgICRmaWVsZHR5cGUgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdpbnB1dF9maWVsZHR5cGUnLCRmaWVsZHR5cGUpOwogICAgICAgICRmaWVsZG5hbWUgPSB0cmltKGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2lucHV0X2ZpZWxkbmFtZScsJGZpZWxkbmFtZSkpOwogICAgICAgICRmaWVsZHByb21wdCA9IHRyaW0oY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaW5wdXRfZmllbGRwcm9tcHQnLCRmaWVsZHByb21wdCkpOwoKICAgICAgICAvLyBOYW1lIGNhbiBiZSBlbXB0eSAod2UnbGwgZ2VuZXJhdGUgb25lKQogICAgICAgIGlmKCBlbXB0eSgkZmllbGRuYW1lKSApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBDT1VOVChjYXRlZ29yeV9pZCkrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgICAgICRmaWVsZG5hbWUgPSAnZmllbGRfJy4kZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBQcm9tcHQgY2FuIGJlIGVtcHR5ICh3ZSdsbCB1c2UgdGhlIGZpZWxkIG5hbWUpCiAgICAgICAgaWYoIGVtcHR5KCRmaWVsZHByb21wdCkgKSAkZmllbGRwcm9tcHQgPSAkZmllbGRuYW1lOwoKICAgICAgICBzd2l0Y2goJGZpZWxkdHlwZSkgewogICAgICAgIGNhc2UgJ2ltYWdlJzoKICAgICAgICAgICAgJHJlcyA9ICR1cGxvYWRfaGFuZGxlciggJGlkLCAkY2F0aWQsICRvbGRfZmllbGRfdmFsdWUsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnKSApOwogICAgICAgICAgICBpZiggJHJlcyAhPT0gJy0xJyApICRmaWVsZHZhbHVlID0gJHJlczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICRyZXMgPSAkdXBsb2FkX2hhbmRsZXIoICRpZCwgJGNhdGlkLCAkb2xkX2ZpZWxkX3ZhbHVlLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSApOwogICAgICAgICAgICBpZiggJHJlcyAhPT0gJy0xJyApICRmaWVsZHZhbHVlID0gJHJlczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgJGZpZWxkdmFsdWUgPSBjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdpbnB1dF9maWVsZHZhbHVlJywkZmllbGR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgLy8gQXQgdGhpcyBwb2ludCwgdmFsdWUgY2Fubm90IGJlIGVtcHR5CiAgICAgICAgaWYoICEkZmllbGR2YWx1ZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignZXJyb3JfZmllbGR2YWx1ZV9lbXB0eScpOwoKICAgICAgICAvLyBTdG9yZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgICAgIGlmKCAkb2xkX2ZpZWxkbmFtZSApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAgICAgICAgU0VUIGZpZWxkX25hbWUgPSA/LCBmaWVsZF90eXBlID0gPywgZmllbGRfcHJvbXB0ID0gPywgZmllbGRfdmFsdWUgPSA/CiAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIFsgJGZpZWxkbmFtZSwkZmllbGR0eXBlLCRmaWVsZHByb21wdCwkZmllbGR2YWx1ZSwkY2F0aWQsJG9sZF9maWVsZG5hbWUgXSApOwogICAgICAgIH0KICAgICAgICBlbHNlICB7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgTUFYKGZpZWxkX29yZGVyKSBBUyBudW0gRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgICAgICR0bXAgPSAkZGItPkdldFJvdygkcXVlcnksWyAkY2F0aWQgXSk7CiAgICAgICAgICAgICRmaWVsZG9yZGVyID0gMDsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICkgJGZpZWxkb3JkZXIgPSAkdG1wWydudW0nXSsxOwogICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeV9pZCwgZmllbGRfdHlwZSwgZmllbGRfbmFtZSwgZmllbGRfcHJvbXB0LCBmaWVsZF92YWx1ZSwgZmllbGRfb3JkZXIpCiAgICAgICAgICAgICAgICAgICAgICBWQUxVRVMgKD8sPyw/LD8sPyw/KSc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIFsgJGNhdGlkLCRmaWVsZHR5cGUsJGZpZWxkbmFtZSwkZmllbGRwcm9tcHQsJGZpZWxkdmFsdWUsJGZpZWxkb3JkZXIgXSApOwogICAgICAgIH0KCgogICAgICAgIC8vIFJlZGlyZWN0LgogICAgICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRjYXRlZ29yeWZpZWxkcycsJHJldHVybmlkLCBhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9Cn0KCi8vCi8vIENyZWF0ZSB0aGUgZm9ybQovLwokc21hcnR5LT5hc3NpZ24oJ2NhdGlkJywkY2F0aWQpOwokc21hcnR5LT5hc3NpZ24oJ2ZpZWxkbmFtZScsJGZpZWxkbmFtZSk7CiRzbWFydHktPmFzc2lnbignZmllbGR0eXBlJywkZmllbGR0eXBlKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHByb21wdCcsJGZpZWxkcHJvbXB0KTsKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHZhbHVlJywkZmllbGR2YWx1ZSk7CgokZmllbGR0eXBlcyA9IGFycmF5KCk7CiRmaWVsZHR5cGVzWyR0aGlzLT5MYW5nKCd0ZXh0Ym94JyldID0gJ3RleHRib3gnOwokZmllbGR0eXBlc1skdGhpcy0+TGFuZygndGV4dGFyZWEnKV0gPSAndGV4dGFyZWEnOwokZmllbGR0eXBlc1skdGhpcy0+TGFuZygnaW1hZ2V0ZXh0JyldID0gJ2ltYWdlJzsKJGZpZWxkdHlwZXNbJHRoaXMtPkxhbmcoJ2ZpbGUnKV0gPSAnZmlsZSc7CiRzbWFydHktPmFzc2lnbignZmllbGR0eXBlcycsYXJyYXlfZmxpcCgkZmllbGR0eXBlcykpOwoKc3dpdGNoKCAkZmllbGR0eXBlICkgewpjYXNlICd0ZXh0Ym94JzoKICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGR2YWx1ZScsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2lucHV0X2ZpZWxkdmFsdWUnLCRmaWVsZHZhbHVlLDgwLDI1NSkpOwogICAgYnJlYWs7CgpjYXNlICd0ZXh0YXJlYSc6CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2ZpZWxkdmFsdWUnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCRpZCwkZmllbGR2YWx1ZSwnaW5wdXRfZmllbGR2YWx1ZScpKTsKICAgIGJyZWFrOwoKY2FzZSAnaW1hZ2UnOgogICAgaWYoICFlbXB0eSgkZmllbGR2YWx1ZSkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9oaWRkZW4nLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2lucHV0X2ZpZWxkdmFsdWUnLCRmaWVsZHZhbHVlKSk7CiAgICB9CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpbGVsb2NhdGlvbicscHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3J5X3VwbG9hZF91cmwoJGNhdGlkKSk7CiAgICBpZiggZmlsZV9leGlzdHMoIGNtc19qb2luX3BhdGgoIHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yeV91cGxvYWRfcGF0aCgoaW50KSRjYXRpZCksJGZpZWxkdmFsdWUpICkgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdmaWxlZXhpc3RzJywxKTsKICAgIH0KICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfZmllbGR2YWx1ZScsICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdpbnB1dF9maWxlJywnJyw0MCkpOwogICAgYnJlYWs7CgpjYXNlICdmaWxlJzoKICAgIGlmKCAhZW1wdHkoJGZpZWxkdmFsdWUpICkgewogICAgICAgICRzbWFydHktPmFzc2lnbignaW5wdXRfaGlkZGVuJywkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdpbnB1dF9maWVsZHZhbHVlJywkZmllbGR2YWx1ZSkpOwogICAgfQogICAgJHNtYXJ0eS0+YXNzaWduKCdmaWxlbG9jYXRpb24nLCd1cGxvYWRzLycuJHRoaXMtPkdldE5hbWUoKS4nL2NhdGVnb3JpZXMvJy4kY2F0aWQpOwogICAgaWYoIGZpbGVfZXhpc3RzKCBjbXNfam9pbl9wYXRoKCBwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcnlfdXBsb2FkX3BhdGgoJGNhdGlkKSwkZmllbGR2YWx1ZSkgKSApIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpbGVleGlzdHMnLDEpOwogICAgfQogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9maWVsZHZhbHVlJywgICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdpbnB1dF9maWxlJywnJyw0MCkpOwogICAgYnJlYWs7Cn0KCiMgUHJvY2VzcyB0ZW1wbGF0ZQplY2hvICR0aGlzLT5DR1Byb2Nlc3NUZW1wbGF0ZSgnYWRkY2F0ZWdvcnlmaWVsZC50cGwnKTsKCiMKIyBFT0YKIw==]]></data>
	</file>
	<file>
	  <filename>/action.addproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CgovLwovLyBBIHV0aWxpdHkgZnVuY3Rpb24KLy8KZnVuY3Rpb24gZ2V0X2ZpZWxkX2RlZigmJGZpZWxkZGVmcywkaWQpCnsKICAgIGZvcmVhY2goICRmaWVsZGRlZnMgYXMgJG9uZWRlZiApIHsKICAgICAgICBpZiggJG9uZWRlZi0+aWQgPT0gJGlkICkgewogICAgICAgICAgICByZXR1cm4gJG9uZWRlZjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmlmIChpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkpICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgokcHJvZHVjdCA9IHByb2R1Y3Rfb3BzOjpjcmVhdGVfbmV3X3Byb2R1Y3QoKTsKJHVzZXJpZCA9IGdldF91c2VyaWQoKTsKJGZpZWxkZGVmcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnModHJ1ZSk7CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7CiAgICAkZXJyb3JzID0gW107IC8vIG91dHNpZGUgb2YgdHJ5L2NhdGNoCgogICAgdHJ5IHsKICAgICAgICAkaGF2ZV91cGxvYWRlZF9maWxlcyA9IFtdOwogICAgICAgICRwcm9kdWN0LT5zZXRfbmFtZShcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3Byb2R1Y3RfbmFtZScpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X3ByaWNlKFxjZ2VfcGFyYW06OmdldF9mbG9hdCgkcGFyYW1zLCdwcmljZScpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X3dlaWdodChcY2dlX3BhcmFtOjpnZXRfZmxvYXQoJHBhcmFtcywnd2VpZ2h0JykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfc2t1KFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc2t1JykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfYWxpYXMoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdhbGlhcycpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X2RldGFpbHMoXGNnZV9wYXJhbTo6Z2V0X2h0bWwoJHBhcmFtcywnZGV0YWlscycpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X3N0YXR1cyhcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3N0YXR1cycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfc3RhdHVzJywkcHJvZHVjdDo6U1RBVFVTX1BVQkxJU0hFRCkpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X3RheGFibGUoXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywndGF4YWJsZScsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGF4YWJsZScsMSkpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X2V4dHJhKCdzZWFyY2hhYmxlJyxcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdzZWFyY2hhYmxlJykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfZGlnaXRhbChcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdkaWdpdGFsJykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfdXJsKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywndXJsc2x1ZycpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X293bmVyKFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnb3duZXInKSk7CiAgICAgICAgJGhpZXIgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2hpZXJhcmNoeScpOwogICAgICAgIGlmKCAkaGllciApICRoaWVyID0gWyAkaGllciBdOwogICAgICAgICRwcm9kdWN0LT5zZXRfaGllcmFyY2hpZXMoICRoaWVyICk7CiAgICAgICAgJHByb2R1Y3QtPnNldF9jYXRlZ29yaWVzKCBcY2dlX3V0aWxzOjpnZXRfcGFyYW0oICRwYXJhbXMsICdjYXRlZ29yaWVzJyApICk7CiAgICAgICAgLy8gcHJvY2VzcyB0aGUgYWxidW0KICAgICAgICAkYWxidW0gPSBudWxsOwogICAgICAgIGlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnYWxidW0nKSApIHsKICAgICAgICAgICAgJHRtcCA9IFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdhbGJ1bScpOwogICAgICAgICAgICAkYWxidW0gPSBudWxsOwogICAgICAgICAgICAvLyBnZXQgcmlkIG9mIGR1cGxpY2F0ZXMsIGFuZCBlbXB0eSB2YWx1ZXMuCiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZV9pbWFnZSApIHsKICAgICAgICAgICAgICAgICAgICAkb25lX2ltYWdlID0gdHJpbSgkb25lX2ltYWdlKTsKICAgICAgICAgICAgICAgICAgICBpZiggJG9uZV9pbWFnZSAmJiAoIWlzX2FycmF5KCRhbGJ1bSkgfHwgIWluX2FycmF5KCRvbmVfaW1hZ2UsJGFsYnVtKSkgKSAkYWxidW1bXSA9ICRvbmVfaW1hZ2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJHByb2R1Y3QtPnNldF9leHRyYSgnYWxidW0nLCRhbGJ1bSk7CgogICAgICAgICRmaWVsZF92YWxzID0gW107CiAgICAgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10pKSB7CiAgICAgICAgICAgIC8vIEhhbmRsZSBjdXN0b20gZmllbGRzCiAgICAgICAgICAgIGZvcmVhY2ggKCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ10gYXMgJGs9PiR2KSB7CiAgICAgICAgICAgICAgICBpZiAoc3RhcnRzd2l0aCgkaywgJ2ZpZWxkLScpKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBmaWVsZCBpbmRleAogICAgICAgICAgICAgICAgICAgICRmaWQgPSAoaW50KSBzdWJzdHIoJGssIDYpOwoKICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGZpZWxkIHR5cGUKICAgICAgICAgICAgICAgICAgICAkZGVmID0gZ2V0X2ZpZWxkX2RlZigkZmllbGRkZWZzLCRmaWQpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJGRlZiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGllKCdjb3VsZCBub3QgZ2V0IGZpZWxkIGRlZiBmb3IgJy4kZmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBoYW5kbGUgdGhlIHVwbG9hZCAoaWYgYW55KQogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJGRlZi0+dHlwZSApIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICdmaWxlJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgICAgICAgICAgICAgICRoYW5kbGVyID0gbmV3IFxjZ19maWxldXBsb2FkKCRpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkaGFuZGxlci0+Y2hlY2tfdXBsb2FkKCdjdXN0b21maWVsZCcsJ2ZpZWxkLScuJGZpZCxGQUxTRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRlcnIgPSAkaGFuZGxlci0+Z2V0X2Vycm9yKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhJHJlcyAmJiAkZXJyICE9IGNnX2ZpbGV1cGxvYWQ6Ok5PRklMRSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvcnNbXSA9IHNwcmludGYoIiVzICVzOiAlcyIsJHRoaXMtPkxhbmcoJ2ZpZWxkJyksJGRlZi0+bmFtZSwkdGhpcy0+R2V0VXBsb2FkRXJyb3JNZXNzYWdlKCRlcnIpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmKCAhJGVyciApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRoYXZlX3VwbG9hZGVkX2ZpbGVzW10gPSAkZmlkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAkaGFuZGxlci0+Z2V0X3VwbG9hZGVkX2ZpbGVuYW1lKCdjdXN0b21maWVsZCcsJ2ZpZWxkLScuJGZpZCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3F1YW50aXR5JzoKICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAoaW50KSR2OwogICAgICAgICAgICAgICAgICAgICAgICAkdiA9IG1heCgwLCR2KTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N1YnNjcmlwdGlvbic6CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdikgKSAkdiA9IHNlcmlhbGl6ZSgkdik7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdkaW1lbnNpb25zJzoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90aGluZy4uIHV0aWxpemUgdGhlIGFycmF5LgogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29tcGFueWRpcic6CiAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gKGludCkkdjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICR2IDwgMSApICR2ID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbGVsaW5rJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICd0ZXh0Ym94JzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Ryb3Bkb3duJzoKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oInskZGVmLT50eXBlfSBpcyBhbiB1bmtub3duIGZpZWxkIHR5cGUiKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vIGNvbW1pdCBpdC4KICAgICAgICAgICAgICAgICAgICBpZiggIWlzX251bGwoJHYpICYmICR2ICE9PSAnJyApICRwcm9kdWN0LT5zZXRfZmllbGQoICRmaWQsICR2ICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIHNhdmUgdGhlIHRoaW5nLgogICAgICAgICRwcm9kdWN0ID0gJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPnNhdmUoICRwcm9kdWN0ICk7CgogICAgICAgIC8vIG5vdyBtb3ZlIGZpbGVzIHRvIGZpbmFsIGxvY2F0aW9uLgogICAgICAgIGlmKCBjb3VudCgkaGF2ZV91cGxvYWRlZF9maWxlcykgKSB7CiAgICAgICAgICAgICRtb2RpZmllZCA9IGZhbHNlOwogICAgICAgICAgICBmb3JlYWNoKCAkaGF2ZV91cGxvYWRlZF9maWxlcyBhcyAkZmllbGRfaWQgKSB7CiAgICAgICAgICAgICAgICAkZGVzdGRpciA9IFxwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfcGF0aCggJHByb2R1Y3QtPmlkICk7CiAgICAgICAgICAgICAgICBcY2dlX2Rpcjo6bWtkaXJyKCAkZGVzdGRpciApOwogICAgICAgICAgICAgICAgJGhhbmRsZXIgPSBuZXcgXGNnX2ZpbGV1cGxvYWQoJGlkLCRkZXN0ZGlyKTsKICAgICAgICAgICAgICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCggJ2N1c3RvbWZpZWxkJywgJycsICdmaWVsZC0nLiRmaWVsZF9pZCApOwogICAgICAgICAgICAgICAgJGVyciA9ICRoYW5kbGVyLT5nZXRfZXJyb3IoKTsKICAgICAgICAgICAgICAgIGlmKCAhJHJlcyAmJiAkZXJyICE9ICRoYW5kbGVyOjpOT0ZJTEUgKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yc1tdID0gc3ByaW50ZigiJXMgJXM6ICVzIiwkdGhpcy0+TGFuZygnZmllbGQnKSwkZGVmLT5uYW1lLCR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpOwogICAgICAgICAgICAgICAgICAgIGRlYnVnX2Rpc3BsYXkoJGVycm9ycyk7CiAgICAgICAgICAgICAgICAgICAgZGllKCdzaG91bGQgbm90IGhhcHBlbicpOwogICAgICAgICAgICAgICAgICAgICRwcm9kdWN0LT5zZXRfZmllbGRfdmFsdWUoICRmaWVsZF9pZCwgbnVsbCApOwogICAgICAgICAgICAgICAgICAgICRtb2RpZmllZCA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRtb2RpZmllZCApICRwcm9kdWN0ID0gJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPnNhdmUoICRwcm9kdWN0ICk7CiAgICAgICAgfQoKICAgICAgICAkbW9kdWxlID0gY21zX3V0aWxzOjpnZXRfc2VhcmNoX21vZHVsZSgpOwogICAgICAgIGlmICgkbW9kdWxlICE9IEZBTFNFKSB7CiAgICAgICAgICAgIGlmKCAkcHJvZHVjdC0+c3RhdHVzID09ICRwcm9kdWN0OjpTVEFUVVNfUFVCTElTSEVEICYmICRwcm9kdWN0LT5nZXRfZXh0cmEoJ3NlYXJjaGFibGUnKSApIHsKICAgICAgICAgICAgICAgICRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRwcm9kdWN0LT5pZCwgJ3Byb2R1Y3QnLCBpbXBsb2RlKCcgJywgJHRoaXMtPkdldFNlYXJjaGFibGVUZXh0KCRwcm9kdWN0KSApKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYoIGNvdW50KCRlcnJvcnMpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdpbmZvX2ZpZWxkcHJvYmxlbXMnKSk7CgogICAgICAgIC8vIGFsbCBkb25lCiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgIC8vIGhhbmRsZSBlcnJvcnMuCiAgICAgICAgaWYoIGNvdW50KCRlcnJvcnMpICkgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsKICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQp9CgokZmllbGRhcnJheSA9IGFycmF5KCk7CmlmIChjb3VudCgkZmllbGRkZWZzKSA+IDApIHsKICAgICRzdWJzY3JpYmVfb3B0cyA9IGFycmF5KCk7CiAgICAkc3Vic2NyaWJlX29wdHNbLTFdID0gJHRoaXMtPkxhbmcoJ25vbmUnKTsKICAgICRzdWJzY3JpYmVfb3B0c1snbW9udGhseSddID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl9tb250aGx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ3F1YXJ0ZXJseSddID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl9xdWFydGVybHknKTsKICAgICRzdWJzY3JpYmVfb3B0c1snc2VtaWFudWFsbHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3Jfc2VtaWFudWFsbHknKTsKICAgICRzdWJzY3JpYmVfb3B0c1sneWVhcmx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX3llYXJseScpOwogICAgJHN1YnNjcmliZV9vcHRzID0gYXJyYXlfZmxpcCgkc3Vic2NyaWJlX29wdHMpOwoKICAgICRleHBpcmVfb3B0cyA9IGFycmF5KCk7CiAgICAkZXhwaXJlX29wdHNbJHRoaXMtPkxhbmcoJ25vbmUnKV0gPSAtMTsKICAgICRleHBpcmVfb3B0c1skdGhpcy0+TGFuZygnZXhwaXJlX3NpeF9tb250aHMnKV0gPSAnNic7CiAgICAkZXhwaXJlX29wdHNbJHRoaXMtPkxhbmcoJ2V4cGlyZV9vbmVfeWVhcicpXSA9ICcxMic7CiAgICAkZXhwaXJlX29wdHNbJHRoaXMtPkxhbmcoJ2V4cGlyZV90d29feWVhcicpXSA9ICcyNCc7CgogICAgZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpIHsKICAgICAgICAkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCiAgICAgICAgJHZhbHVlID0gJHByb2R1Y3QtPmdldF9maWVsZF92YWx1ZSggJGZpZWxkZGVmLT5pZCApOwogICAgICAgICRmaWVsZC0+aWQgPSAkZmllbGRkZWYtPmlkOwogICAgICAgICRmaWVsZC0+bmFtZSA9ICRmaWVsZGRlZi0+bmFtZTsKICAgICAgICAkZmllbGQtPnZhbHVlID0gbnVsbDsKICAgICAgICAkZmllbGQtPnByb21wdCA9ICRmaWVsZGRlZi0+cHJvbXB0OwogICAgICAgICRmaWVsZC0+dHlwZSA9ICRmaWVsZGRlZi0+dHlwZTsKICAgICAgICAkZmllbGQtPm5hbWVhdHRyID0gJGlkLidjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZC0+aWQuJ10nOwogICAgICAgIHN3aXRjaCAoJGZpZWxkZGVmLT50eXBlKSB7CiAgICAgICAgY2FzZSAnZGltZW5zaW9ucyc6CiAgICAgICAgICAgICRmaWVsZC0+cHJvbXB0IC49ICcmbmJzcDsoJy5wcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpLicpJzsKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPQogICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2FiYnJfbGVuZ3RoJykuJzombmJzcCcuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtsZW5ndGhdJywkdmFsdWUsMywzKS5wcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpLicmbmJzcCcuCiAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnYWJicl93aWR0aCcpLic6Jm5ic3AnLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bd2lkdGhdJywgJHZhbHVlLDMsMykucHJvZHVjdF9vcHM6OmdldF9sZW5ndGhfdW5pdHMoKS4nJm5ic3AnLgogICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2FiYnJfaGVpZ2h0JykuJzombmJzcCcuJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtoZWlnaHRdJywgJHZhbHVlLDMsMykucHJvZHVjdF9vcHM6OmdldF9sZW5ndGhfdW5pdHMoKS4nJm5ic3AnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicgLiAkaWQgLiAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJyAuICciIHZhbHVlPSJmYWxzZSIgLz4nLiR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICd0cnVlJywgJHZhbHVlID09ICd0cnVlJyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlVGV4dEFyZWEodHJ1ZSwgJGlkLCAkdmFsdWUsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICRmaWVsZGRlZi0+b3B0aW9ucywgLTEsICR2YWx1ZSApOwogICAgICAgICAgICAkZmllbGQtPm9wdGlvbnMgPSBhcnJheV9mbGlwKCRmaWVsZGRlZi0+b3B0aW9ucyk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2ZpbGVsaW5rJzoKICAgICAgICAgICAgLy8gZG8gdGhpcyBpbiB0aGUgdGVtcGxhdGUuCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2ZpbGUnOgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnLDUwKTsKICAgICAgICAgICAgJGZpZWxkLT5oaWRkZW4gPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnKTsKICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0gJHRoaXMtPkNyZWF0ZUZpbGVVcGxvYWRJbnB1dCgkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycsNTApOwogICAgICAgICAgICAkZmllbGQtPmhpZGRlbiA9ICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsJycpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdzdWJzY3JpcHRpb24nOgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfcGF5cGVyaW9kJykuJzombmJzcDsnOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtwYXlwZXJpb2RdJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmliZV9vcHRzLCAtMSwgJHZhbHVlKTsKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJzxici8+Jy4kdGhpcy0+TGFuZygnc3Vic2NyX2RlbHBlcmlvZCcpLic6Jm5ic3A7JzsKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bZGVscGVyaW9kXScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpYmVfb3B0cywgLTEsICR2YWx1ZSk7CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8YnIvPicuJHRoaXMtPkxhbmcoJ3N1YnNjcl9leHBpcnknKS4nOiZuYnNwOyc7CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2V4cGlyZV0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXhwaXJlX29wdHMsIC0xLCAkdmFsdWUpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAncXVhbnRpdHknOgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywgJHZhbHVlLCA0LCA0KTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2NvbXBhbnlkaXInOgogICAgICAgICAgICAkY2Rtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NvbXBhbnlEaXJlY3RvcnknLCcxLjE5Jyk7CiAgICAgICAgICAgIGlmKCAkY2Rtb2QgKSB7CiAgICAgICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCR2YWx1ZSwxMCwxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGxhY2Vob2xkZXI9XCJ7JHRoaXMtPkxhbmcoJ2NkX2F1dG9jb21wbGV0ZScpfVwiIHRpdGxlPVwieyR0aGlzLT5MYW5nKCd0aXRsZV9jZGF1dG9jb21wbGV0ZScpfVwiIik7CiAgICAgICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICc8c3BhbiBjbGFzcz0iY2RhdXRvY29tcGxldGUiPicuJGZpZWxkLT5pbnB1dF9ib3guJzwvc3Bhbj4nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICd0ZXh0Ym94JzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywgJHZhbHVlLCA4MCwgMjU1KTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgICRmaWVsZGFycmF5W10gPSAkZmllbGQ7CiAgICB9Cn0KCi8vIERpc3BsYXkgdGhlIHRlbXBsYXRlCgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCdlZGl0cHJvZHVjdC50cGwnKTsKJHRwbC0+YXNzaWduKCdjb21waWQnLCRwcm9kdWN0LT5pZCk7CiR0cGwtPmFzc2lnbigncHJvZHVjdF9uYW1lJywkcHJvZHVjdC0+bmFtZSk7CiR0cGwtPmFzc2lnbigncHJpY2UnLCRwcm9kdWN0LT5wcmljZSk7CiR0cGwtPmFzc2lnbignd2VpZ2h0JywkcHJvZHVjdC0+d2VpZ2h0KTsKJHRwbC0+YXNzaWduKCdza3UnLCRwcm9kdWN0LT5za3UpOwokdHBsLT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiR0cGwtPmFzc2lnbignd2VpZ2h0dW5pdHMnLHByb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwokdHBsLT5hc3NpZ24oJ2xlbmd0aHVuaXRzJyxwcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpKTsKJHRwbC0+YXNzaWduKCdpbnB1dGFsaWFzJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYWxpYXMnLCRwcm9kdWN0LT5hbGlhcyw0MCwyNTUpKTsKJHRwbC0+YXNzaWduKCdkZXRhaWxzdGV4dCcsICR0aGlzLT5MYW5nKCdkZXRhaWxzJykpOwokdHBsLT5hc3NpZ24oJ2lucHV0ZGV0YWlscycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICRwcm9kdWN0LT5kZXRhaWxzLCAnZGV0YWlscycsICcnLCAnJywgJycsICcnLCAnODAnLCAnNScpKTsKJHRwbC0+YXNzaWduKCdhbGxfY2F0ZWdvcmllcycscHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3J5X2xpc3QoKSk7CiR0cGwtPmFzc2lnbignc2VsY2F0YXJyYXknLGFycmF5KCkpOwokdHBsLT5hc3NpZ24oJ3RheGFibGV0ZXh0JywkdGhpcy0+TGFuZygndGF4YWJsZScpKTsKJHRwbC0+YXNzaWduKCdpbnB1dHRheGFibGUnLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3RheGFibGUnLDEsJHByb2R1Y3QtPnRheGFibGUpKTsKCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiR0cGwtPmFzc2lnbignaGllcmFyY2h5X2l0ZW1zJywkaGllcmFyY2h5X2l0ZW1zKTsKJHRwbC0+YXNzaWduKCdoaWVyYXJjaHlfcG9zJyxpc3NldCgkcGFyYW1zWydoaWVyYXJjaHknXSk/JHBhcmFtc1snaGllcmFyY2h5J106LTEpOwoKJHN0YXR1c2VzID0gWyAkdGhpcy0+TGFuZygncHVibGlzaGVkJyk9PidwdWJsaXNoZWQnLCAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcgXTsKJHRwbC0+YXNzaWduKCdzdGF0dXN0ZXh0JywkdGhpcy0+TGFuZygnc3RhdHVzJykpOwokdHBsLT5hc3NpZ24oJ2lucHV0c3RhdHVzJywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3N0YXR1cycsJHN0YXR1c2VzLC0xLCRwcm9kdWN0LT5zdGF0dXMpKTsKJHRwbC0+YXNzaWduKCdoaWRkZW4nLCAnJyk7CiR0cGwtPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiR0cGwtPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CiR0cGwtPmFzc2lnbignY3VzdG9tZmllbGRzJywgJGZpZWxkYXJyYXkpOwokdHBsLT5hc3NpZ24oJ2N1c3RvbWZpZWxkc2NvdW50JywgY291bnQoJGZpZWxkYXJyYXkpKTsKJHRwbC0+YXNzaWduKCd1cmxzbHVnJywkcHJvZHVjdC0+dXJsKTsKJHRwbC0+YXNzaWduKCdwcm9kdWN0JywkcHJvZHVjdCk7CgokZmV1X293bmVybGlzdCA9IHByb2R1Y3RfdXRpbHM6OmdldF9mZXVfb3duZXJsaXN0KCk7CiR0cGwtPmFzc2lnbignZmV1X293bmVybGlzdCcsJGZldV9vd25lcmxpc3QpOwokdHBsLT5kaXNwbGF5KCk7Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_getslug.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKCiRwaWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ3BpZCcpOwokbmFtZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbmFtZScpOwokaGllcl9pZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaGllcicpOwokdG1wID0gXGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2NhdHMnKTsKCi8vIGNsZWFuIGNhdHMgYXJyYXkKJGNhdHNfdCA9IGFycmF5KCk7CmZvcmVhY2goICRjYXRzX3QgYXMgJGNhdCApIHsKICAgICR0bXBfaSA9IChpbnQpICRjYXQ7CiAgICBpZiggJHRtcF9pID4gMCApICRjYXRzX3RbXSA9ICR0bXBfaTsKfQokY2F0c190ID0gYXJyYXlfdW5pcXVlKCRjYXRzX3QpOwoKLy8gZ2V0IGFsbCBvZiBvdXIgaGVyYXJjaGllcyBhbmQgY2F0ZWdvcmllcwokaGllciA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkaGllcl9pZCk7CiRhbGxjYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoKTsKCgovLyBnaXZlIGV2ZXJ5dGhpbmcgdG8gc21hcnR5Ci8vIHdlIGdpdmUgdGhlIGhpZXJhcmNoeSBsb25nIG5hbWUgdG8gc21hcnR5IGluIGEgZmV3IHdheXMKLy8gYXMgYW4gYXJyYXksIGFuZCBhcyBhIHNpbmdsZSBzdHJpbmcKJHRwbCA9ICdzdHJpbmc6e3N0cmlwfScuJHRoaXMtPkdldFRlbXBsYXRlKCdzbHVndGVtcGxhdGUnKS4ney9zdHJpcH0nOwokdHBsID0gJHNtYXJ0eS0+Q3JlYXRlVGVtcGxhdGUoJHRwbCk7CiRsbiA9ICRoaWVyWydsb25nX25hbWUnXTsKJHBhcnRzX3QgPSBleHBsb2RlKCcgfCAnLCRsbik7CiRwYXJ0cyA9IGFycmF5KCk7CmZvcmVhY2goICRwYXJ0c190IGFzICRwICkgewogICAgJHAgPSB0cmltKG11bmdlX3N0cmluZ190b191cmwoJHApKTsKICAgIGlmKCAkcCApICRwYXJ0c1tdID0gJHA7Cn0KJHRwbC0+YXNzaWduKCdoaWVyX3BhcnRzJywkcGFydHMpOwokdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeScsaW1wbG9kZSgnLycsJHBhcnRzKSk7CiR0cGwtPmFzc2lnbignaGllcmFyY2h5MycsaW1wbG9kZSgnLycsYXJyYXlfc2xpY2UoJHBhcnRzLDAsMykpKTsKCiRjYXRlZ29yaWVzID0gYXJyYXkoKTsKaWYoIGNvdW50KCRjYXRzX3QpICkgewogICAgZm9yZWFjaCggJGNhdHNfdCBhcyAkY19pZCApIHsKICAgICAgICBpZiggIWlzc2V0KCRhbGxjYXRzWyRjX2lkXSkgKSBjb250aW51ZTsKICAgICAgICAkY2F0ZWdvcmllc1tdID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkY2FsbGNhdHNbJGNfaWRdWyduYW1lJ10pOwogICAgfQp9CiR0cGwtPmFzc2lnbignY2F0ZWdvcnlfcGFydHMnLCRjYXRlZ29yaWVzKTsKJGZpcnN0Y2F0ID0gKGNvdW50KCRjYXRlZ29yaWVzKSk/JGNhdGVnb3JpZXNbMF06Jyc7CiR0cGwtPmFzc2lnbignZmlyc3RfY2F0ZWdvcnknLCRmaXJzdGNhdCk7CiR0cGwtPmFzc2lnbignbmFtZScsdHJpbShtdW5nZV9zdHJpbmdfdG9fdXJsKCRuYW1lKSkpOwoKJHRlc3RfaSA9IDE7CiRiYXNlX3VybCA9ICR0cGwtPmZldGNoKCk7CndoaWxlKCAkdGVzdF9pIDwgMTAwICkgewogICAgLy8gcHJvY2VzcyB0aGUgdGVtcGxhdGUKICAgICR1cmwgPSB0cmltKCRiYXNlX3VybCwiIC9cdFxyXG5cMFx4MDgiKTsKICAgIGlmKCAkdGVzdF9pID4gMSApICR1cmwgLj0gIi17JHRlc3RfaX0iOwogICAgJHRlc3RfaSsrOwoKICAgICRyb3V0ZSA9IGNtc19yb3V0ZV9tYW5hZ2VyOjpmaW5kX21hdGNoKCR1cmwpOwogICAgaWYoICEkcm91dGUgKSBicmVhazsKCiAgICAkZGZsdHMgPSAkcm91dGUtPmdldF9kZWZhdWx0cygpOwogICAgaWYoICRyb3V0LT5nZXRfZGVzdCgpID09ICR0aGlzLT5HZXROYW1lKCkgKSB7CiAgICAgICAgLy8gcm91dGUgaXMgZm9yIHRoaXMgbW9kdWxlCiAgICAgICAgaWYoIGlzc2V0KCRkZmx0c1snY29tcGlkJ10pICYmICRkZmx0c1snY29tcGlkJ10gPT0gJHBpZCApIHsKICAgICAgICAgICAgLy8gaXQncyBmb3IgdGhpcyBwcm9kdWN0CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KfQoKLy8gZ2l2ZSBpdCBiYWNrIHZpYSBhamF4ClxjZ2VfdXRpbHM6OnNlbmRfYWpheF9hbmRfZXhpdCgkdXJsKTsKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_ajax_orderfields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKCnRyeSB7CiAgICAkaWRsaXN0ID0gXGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2lkbGlzdCcpOwoKICAgICRzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBpdGVtX29yZGVyID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpICBXSEVSRSBpZCA9ID8nOwogICAgJGl0ZW1fb3JkZXIgPSAxOwogICAgZm9yZWFjaCggJGlkbGlzdCBhcyAkaWQgKSB7CiAgICAgICAgJGRiLT5FeGVjdXRlKCAkc3FsLCBbICRpdGVtX29yZGVyLCAoaW50KSAkaWQgXSApOwogICAgICAgICRpdGVtX29yZGVyKys7CiAgICB9CiAgICAvLyBub3Rob25nIHRvIG91dHB1dC4KfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgIGhlYWRlcignSFRUUC8xLjAgNTAwICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0KZXhpdDsK]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulkaction.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CgppZiggaXNzZXQoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkgJiYgaXNfYXJyYXkoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkgJiYgY291bnQoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSkgJiYgaXNzZXQoJHBhcmFtc1snYnVsa2FjdGlvbiddKSApIHsKICAgIHRyeSB7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHBhcmFtc1snbXVsdGlzZWxlY3QnXSk7ICRpKysgKSB7CiAgICAgICAgICAgICRwYXJhbXNbJ211bHRpc2VsZWN0J11bJGldID0gKGludCkkcGFyYW1zWydtdWx0aXNlbGVjdCddWyRpXTsKICAgICAgICB9CgogICAgICAgICRidWxrX21vZGlmeV9wcm9kdWN0X3N0YXR1cyA9IGZ1bmN0aW9uKCAkcHJvZHVjdF9saXN0LCAkc3RhdHVzICkgewogICAgICAgICAgICAkcXVlcnkgPSBuZXcgcHJvZHVjdHNfcXVlcnkoIFsnc3RhdHVzJz0+JyonLCAncHJvZHVjdGxpc3QnPT4kcHJvZHVjdF9saXN0IF0gKTsKICAgICAgICAgICAgJHJzID0gJHF1ZXJ5LT5leGVjdXRlKCk7CiAgICAgICAgICAgIGlmKCAkcnMtPnRvdGFscm93cyA9PSAwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW50ZXJuYWwgZXJyb3I6IFByb2R1Y3RzIGRpZCBub3QgbWF0Y2ggaW4gcXVlcnknKTsKICAgICAgICAgICAgd2hpbGUoICEkcnMtPkVPRiApewogICAgICAgICAgICAgICAgJHByb2R1Y3QgPSAkcnMtPmdldF9vYmplY3QoKTsKICAgICAgICAgICAgICAgICRwcm9kdWN0LT5zZXRfc3RhdHVzKCAkc3RhdHVzICk7CiAgICAgICAgICAgICAgICAkdGhpcy0+R2V0UHJvZHVjdFN0b3JhZ2UoKS0+U2F2ZSggJHByb2R1Y3QgKTsKICAgICAgICAgICAgICAgICRycy0+TW92ZU5leHQoKTsKICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIHN3aXRjaCggJHBhcmFtc1snYnVsa2FjdGlvbiddICkgewogICAgICAgIGNhc2UgJ2RlbGV0ZSc6CiAgICAgICAgICAgIGZvcmVhY2goICRwYXJhbXNbJ211bHRpc2VsZWN0J10gYXMgJHByb2R1Y3RfaWQgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+R2V0UHJvZHVjdFN0b3JhZ2UoKS0+ZGVsZXRlX2J5X2lkKCAkcHJvZHVjdF9pZCApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdzZXRkcmFmdCc6CiAgICAgICAgICAgICRidWxrX21vZGlmeV9wcm9kdWN0X3N0YXR1cyggJHBhcmFtc1snbXVsdGlzZWxlY3QnXSwgXFByb2R1Y3RzXFByb2R1Y3Q6OlNUQVRVU19EUkFGVCApOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnc2V0ZGlzYWJsZWQnOgogICAgICAgICAgICAkYnVsa19tb2RpZnlfcHJvZHVjdF9zdGF0dXMoICRwYXJhbXNbJ211bHRpc2VsZWN0J10sIFxQcm9kdWN0c1xQcm9kdWN0OjpTVEFUVVNfRElTQUJMRUQgKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3NldHB1Ymxpc2hlZCc6CiAgICAgICAgICAgICRidWxrX21vZGlmeV9wcm9kdWN0X3N0YXR1cyggJHBhcmFtc1snbXVsdGlzZWxlY3QnXSwgXFByb2R1Y3RzXFByb2R1Y3Q6OlNUQVRVU19QVUJMSVNIRUQgKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2VkaXRxdWFudGl0eSc6CiAgICAgICAgICAgIC8vIGhlcmUgd2UgaGF2ZSB0byBkaXNwbGF5IGEgZm9ybQogICAgICAgICAgICAkcGFybXMgPSBhcnJheSgnbXVsdGlzZWxlY3QnPT4kcGFyYW1zWydtdWx0aXNlbGVjdCddKTsKICAgICAgICAgICAgJGRhdGEgPSBhcnJheSgnY2RfbXVsdGlzZWxlY3QnPT5iYXNlNjRfZW5jb2RlKHNlcmlhbGl6ZSgkcGFyYW1zKSkpOwogICAgICAgICAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdhZG1pbl9idWxrX2VkaXRxdWFudGl0eScsJHJldHVybmlkLCRkYXRhKTsKICAgICAgICB9CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KfQoKJHRoaXMtPlNldG1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jb21wbGV0ZScpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_bulk_editquantity.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7Cgp0cnkgewogICAgLy8gbm90ZSwgdGhpcyBkb2VzIG5vdCB0cmlnZ2VyIGEgaG9vay4KICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSB7CiAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jYW5jZWxsZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKICAgIH0KCiAgICAkbXNfcmF3ZGF0YSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY2RfbXVsdGlzZWxlY3QnKTsKICAgIGlmKCAhJG1zX3Jhd2RhdGEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdNaXNzaW5nIFBhcmFtZXRlciBkYXRhIGZvciBhZG1pbl9idWxrX2VkaXRxdWFudGl0eSBhY3Rpb24nKTsKICAgICRtc19kYXRhID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkbXNfcmF3ZGF0YSkpOwogICAgaWYoICFpc3NldCgkbXNfZGF0YVsnbXVsdGlzZWxlY3QnXSkgfHwgIWlzX2FycmF5KCRtc19kYXRhWydtdWx0aXNlbGVjdCddKSB8fCAhY291bnQoJG1zX2RhdGFbJ211bHRpc2VsZWN0J10pICkgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ05vIERhdGEnKTsKICAgIH0KCiAgICAkc3RvY2tfZmllbGQgPSBwcm9kdWN0X3V0aWxzOjpnZXRfcXVhbnRpdHlfZmllbGQoKTsKICAgIGlmKCAhJHN0b2NrX2ZpZWxkICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIG5hbWUgb2YgdGhlIHF1YW50aXR5IGZpZWxkJyk7CgogICAgJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5KGFycmF5KCdwcm9kdWN0bGlzdCc9PiRtc19kYXRhWydtdWx0aXNlbGVjdCddKSk7CiAgICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgIGlmKCAkcnMtPnRvdGFscm93cyA9PSAwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQ291bGQgbm90IHJldHJpZXZlIHRoZSBwcm9kdWN0cyBzZWxlY3RlZCcpOwogICAgJGxpc3QgPSBhcnJheSgpOwogICAgd2hpbGUoICEkcnMtPkVPRigpICkgewogICAgICAgICRwcm9kdWN0ID0gJHJzLT5nZXRfcHJvZHVjdCgpOwoKICAgICAgICBpZiggaXNzZXQoJHByb2R1Y3QtPmF0dHJpYnV0ZXMpICYmIGNvdW50KCRwcm9kdWN0LT5hdHRyaWJ1dGVzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHByb2R1Y3QtPmF0dHJpYnV0ZXMgYXMgJGF0dHJpYiApIHsKICAgICAgICAgICAgICAgICRvYmogPSBuZXcgU3RkQ2xhc3M7CiAgICAgICAgICAgICAgICAkb2JqLT5wcm9kdWN0X2lkID0gJHByb2R1Y3QtPmlkOwogICAgICAgICAgICAgICAgJG9iai0+cHJvZHVjdF9uYW1lID0gJHByb2R1Y3QtPnByb2R1Y3RfbmFtZTsKICAgICAgICAgICAgICAgICRvYmotPmF0dHJpYnV0ZSA9ICRhdHRyaWJbJ3RleHQnXTsKICAgICAgICAgICAgICAgICRvYmotPnNrdSA9ICRhdHRyaWJbJ3NrdSddOwogICAgICAgICAgICAgICAgJG9iai0+c3RvY2sgPSAkYXR0cmliWydxb2gnXTsKICAgICAgICAgICAgICAgICRsaXN0X2FbJG9iai0+c2t1XSA9ICRvYmo7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRvYmogPSBuZXcgU3RkQ2xhc3M7CiAgICAgICAgICAgICRvYmotPnByb2R1Y3QgPSAkcHJvZHVjdDsKICAgICAgICAgICAgJG9iai0+cHJvZHVjdF9pZCA9ICRwcm9kdWN0LT5pZDsKICAgICAgICAgICAgJG9iai0+cHJvZHVjdF9uYW1lID0gJHByb2R1Y3QtPnByb2R1Y3RfbmFtZTsKICAgICAgICAgICAgJG9iai0+YXR0cmlidXRlID0gbnVsbDsKICAgICAgICAgICAgJG9iai0+c2t1ID0gJHByb2R1Y3QtPnNrdTsKICAgICAgICAgICAgaWYoIGlzc2V0KCRwcm9kdWN0LT5maWVsZHMpICYmIGlzc2V0KCRwcm9kdWN0LT5maWVsZHNbJHN0b2NrX2ZpZWxkLT5uYW1lXSkgKSB7CiAgICAgICAgICAgICAgICAkb2JqLT5zdG9jayA9IChpbnQpICRwcm9kdWN0LT5maWVsZHNbJHN0b2NrX2ZpZWxkLT5uYW1lXS0+dmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkb2JqLT5zdG9jayA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGxpc3RfYVskb2JqLT5za3VdID0gJG9iajsKICAgICAgICB9CgogICAgICAgICRycy0+TW92ZU5leHQoKTsKICAgIH0KCiAgICBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIC8vIHVwZGF0ZSB0aGUgbGlzdF9hIG9iamVjdHMKICAgICAgICAgICAgZm9yZWFjaCggJHBhcmFtc1snY2RfcW9oJ10gYXMgJHNrdSA9PiAkcW9oICkgewogICAgICAgICAgICAgICAgJHNrdSA9IHRyaW0oJHNrdSk7CiAgICAgICAgICAgICAgICAkcW9oID0gKGludCkgJHFvaDsKCiAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRsaXN0X2FbJHNrdV0pICkgY29udGludWU7IC8vIGlnbm9yZSBhbnl0aGluZyBub3QgZXhwbGljaXRseSBrbm93bgogICAgICAgICAgICAgICAgJG9iaiA9ICRsaXN0X2FbJHNrdV07CiAgICAgICAgICAgICAgICBpZiggJG9iai0+YXR0cmlidXRlICkgewogICAgICAgICAgICAgICAgICAgIC8vIGl0J3MgYW4gYXR0cmlidXRlIHNrdQogICAgICAgICAgICAgICAgICAgICRzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBTRVQgcW9oID0gPyBXSEVSRSBza3UgPSA/IEFORCBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwsYXJyYXkoJHFvaCwkc2t1LChpbnQpJG9iai0+cHJvZHVjdF9pZCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBhIHByb2R1Y3Qgc2t1CiAgICAgICAgICAgICAgICAgICAgJHNxbCA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgU0VUIHZhbHVlID0gPyBXSEVSRSBwcm9kdWN0X2lkID0gPyBBTkQgZmllbGRkZWZfaWQgPSA/JzsKICAgICAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoJHNxbCxhcnJheSgkcW9oLChpbnQpJG9iai0+cHJvZHVjdF9pZCwoaW50KSRzdG9ja19maWVsZC0+aWQpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jb21wbGV0ZScpKTsKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgfQoKICAgICR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ2FkbWluX2J1bGtfZWRpdHF1YW50aXR5LnRwbCcpOwogICAgJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2J1bGtfZWRpdHF1YW50aXR5JywkcmV0dXJuaWQsYXJyYXkoJ2NkX211bHRpc2VsZWN0Jz0+JG1zX3Jhd2RhdGEpKSk7CiAgICAkdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJHRwbC0+YXNzaWduKCdlZGl0YWJsZScsJGxpc3RfYSk7CiAgICAkdHBsLT5kaXNwbGF5KCk7Cn0KY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigpOwp9]]></data>
	</file>
	<file>
	  <filename>/action.admin_copyproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ1Byb2R1Y3RzJyk7CgokZ2V0X3VuaXF1ZV9uYW1lID0gZnVuY3Rpb24oICRpbnB1dCApIHsKICAgICRuYW1lID0gJ0NvcHkgb2YgJy4kaW5wdXQ7CiAgICAkc3VmZml4ID0gbnVsbDsKICAgICRzdG9yYWdlID0gJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCk7CiAgICB3aGlsZSggJHN1ZmZpeCA8IDEwMCApIHsKICAgICAgICAkdG5hbWUgPSB0cmltKCRuYW1lLicgJy4kc3VmZml4KTsKICAgICAgICBpZiggISAkc3RvcmFnZS0+Z2V0X2J5X25hbWUoICR0bmFtZSApICkgcmV0dXJuICR0bmFtZTsKICAgICAgICBpZiggISRzdWZmaXggKSAkc3VmZml4ID0gMTsKICAgICAgICAkc3VmZml4Kys7CiAgICB9Cn07CgokZ2V0X3VuaXF1ZV9za3UgPSBmdW5jdGlvbiggJGlucHV0ICkgewogICAgJGlkeCA9ICcnOwogICAgaWYoICgkcCA9IHN0cnBvcygkaW5wdXQsJ19jb3B5JykpICE9PSBGQUxTRSApIHsKICAgICAgICBpZiggJHAgIT09IEZBTFNFICkgJGlkeCA9IChpbnQpc3Vic3RyKCRpbnB1dCwkcCtzdHJsZW4oJ19jb3B5JykpOwogICAgICAgICRpZHggPSBtYXgoMiwkaWR4KzEpOwogICAgfQogICAgJG5ld19za3UgPSAkaW5wdXQgLiAnX2NvcHknIC4gJGlkeDsKICAgIHdoaWxlKCAkaWR4IDwgMTAwICkgewogICAgICAgIGlmKCAhcHJvZHVjdF9vcHM6OmNoZWNrX3NrdV91c2VkKCRuZXdfc2t1KSApIHJldHVybiAkbmV3X3NrdTsKCiAgICAgICAgaWYoICRpZHggPT0gJycgKSAkaWR4ID0gMTsKICAgICAgICAkaWR4Kys7CiAgICAgICAgJG5ld19za3UgPSAkaW5wdXQgLiAnX2NvcHknIC4gJGlkeDsKICAgIH0KfTsKCnRyeSB7CiAgICAkY29tcGlkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjb21waWQnKTsKICAgIGlmKCAkY29tcGlkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKCiAgICAkcHJvZHVjdCA9ICR0aGlzLT5HZXRQcm9kdWN0U3RvcmFnZSgpLT5nZXRfYnlfaWQoICRjb21waWQgKTsKICAgIGlmKCAhJHByb2R1Y3QgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9wcm9kdWN0bm90Zm91bmQnKSk7CgogICAgJHNyY2RpciA9IHByb2R1Y3RfdXRpbHM6OmdldF9wcm9kdWN0X3VwbG9hZF9wYXRoKCRwcm9kdWN0LT5pZCk7CiAgICAkc3JjX2ZpbGVzID0gZ2xvYigkc3JjZGlyLicvKicpOwoKICAgICRwcm9kdWN0MiA9IGNsb25lICRwcm9kdWN0OwogICAgJHByb2R1Y3QyLT5zZXRfbmFtZSgkZ2V0X3VuaXF1ZV9uYW1lKCAkcHJvZHVjdC0+bmFtZSApKTsKICAgIGlmKCAkcHJvZHVjdDItPmFsaWFzICkgJHByb2R1Y3QyLT5zZXRfYWxpYXMoIFxwcm9kdWN0X29wczo6Z2VuZXJhdGVfYWxpYXMoICRwcm9kdWN0Mi0+bmFtZSkgKTsKICAgIGlmKCAkcHJvZHVjdDItPnNrdSApICRwcm9kdWN0Mi0+c2V0X3NrdSggJGdldF91bmlxdWVfc2t1KCAkcHJvZHVjdDItPnNrdSApICk7CiAgICAkcHJvZHVjdDIgPSAkdGhpcy0+R2V0UHJvZHVjdFN0b3JhZ2UoKS0+c2F2ZSggJHByb2R1Y3QyICk7CiAgICBpZiggY291bnQoJHNyY19maWxlcykgKSB7CiAgICAgICAgJGRlc3RkaXIgPSBwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfcGF0aCgkcHJvZHVjdDItPmlkKTsKICAgICAgICBAXGNnZV9kaXI6Om1rZGlyciggJGRlc3RkaXIgKTsKICAgICAgICBmb3JlYWNoKCAkc3JjX2ZpbGVzIGFzICRvbmVfZmlsZSApIHsKICAgICAgICAgICAgJGZuID0gYmFzZW5hbWUoICRvbmVfZmlsZSApOwogICAgICAgICAgICBjb3B5KCRvbmVfZmlsZSxjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCRmbikpOwogICAgICAgIH0KICAgIH0KCiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX3Byb2R1Y3Rjb3BpZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0cHJvZHVjdCcsJycsYXJyYXkoJ2NvbXBpZCc9PiRwcm9kdWN0Mi0+aWQpKTsKfQpjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkZS0+R2V0TWVzc2FnZSgpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCgovKgogIC8vCiAgLy8gY29weSBmaWxlcy4KICAvLwogIGlmKCBpc19kaXIoJHNyY2RpcikgKSB7CiAgICAgICRmaWxlcyA9IGdsb2IoJHNyY2Rpci4nLyonKTsKICAgICAgaWYoIGlzX2FycmF5KCRmaWxlcykgJiYgY291bnQoJGZpbGVzKSApIHsKICAgICAgICAgIEBta2RpcigkZGVzdGRpcik7CiAgICAgICAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJG9uZWZpbGUgKSB7CiAgICAgICAgICAgICAgJGZuID0gYmFzZW5hbWUoJG9uZWZpbGUpOwogICAgICAgICAgICAgIGNvcHkoJG9uZWZpbGUsY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkZm4pKTsKICAgICAgICAgIH0KICAgICAgfQogIH0KKi8KCi8vCi8vIGFsbCBkb25lLi4gcmVkaXJlY3QgdG8gZWRpdCBmb3JtCi8vCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2hpZXJhcmNoeScpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeV9pZCddKSApIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQokaGllcmFyY2h5X2lkID0gKGludCkkcGFyYW1zWydoaWVyYXJjaHlfaWQnXTsKCi8vIEdldCB0aGlzIGhpZXJhcmNoeSBpdGVtJwokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwokZGF0YSA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkaGllcmFyY2h5X2lkKSk7CmlmKCAkZGF0YVsnaW1hZ2UnXSApIHsKICAgICRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X2hpZXJhcmNoeV91cGxvYWRfcGF0aCgpOwogICAgJGZuID0gY21zX2pvaW5fcGF0aCgkZGVzdGRpciwkZGF0YVsnaW1hZ2UnXSk7CiAgICBpZiggQGZpbGVfZXhpc3RzKCRmbikgKQlAdW5saW5rKCRmbik7CiAgICAkZm4gPSBjbXNfam9pbl9wYXRoKCRkZXN0ZGlyLCd0aHVtYl8nLiRkYXRhWydpbWFnZSddKTsKICAgIGlmKCBAZmlsZV9leGlzdHMoJGZuKSApCUB1bmxpbmsoJGZuKTsKICAgICRmbiA9IGNtc19qb2luX3BhdGgoJGRlc3RkaXIsJ3ByZXZpZXdfJy4kZGF0YVsnaW1hZ2UnXSk7CiAgICBpZiggQGZpbGVfZXhpc3RzKCRmbikgKQlAdW5saW5rKCRmbik7Cn0KCi8vIHJlc2V0IGFsbCBwZWVyIGhpZXJhcmNoaWVzIGl0ZW0gb3JkZXIKJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgaXRlbV9vcmRlciA9IGl0ZW1fb3JkZXIgLSAxCiAgICAgICAgICBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBpdGVtX29yZGVyID4gPyc7CiRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRkYXRhWydwYXJlbnRfaWQnXSwkZGF0YVsnaXRlbV9vcmRlciddKSk7CgovLyBSZXNldCBhbGwgaGllcmFyY2hpZXMgdXNpbmcgdGhpcyBwYXJlbnQgdG8gaGF2ZSBubyBwYXJlbnQgKC0xKQokcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFNFVCBwYXJlbnRfaWQgPSAtMSBXSEVSRSBwYXJlbnRfaWQgPSA/JzsKJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGhpZXJhcmNoeV9pZCApICk7CgovLyBOb3cgcmVtb3ZlIGl0CiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwokZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRoaWVyYXJjaHlfaWQgKSApOwoKLy8gQW5kIG5vdyB1cGRhdGUgYW55IHByb2R1Y3RzIHRvIGhhdmUgbm8gY2F0ZWdvcnkKLy8gaWYgdGhleSBoYXZlIHRoaXMgaGllcmFyY2h5X2lkCiRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgaGllcmFyY2h5X2lkID0gPyc7CiRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJGhpZXJhcmNoeV9pZCApICk7CgokdGhpcy0+VXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCk7CgovLyBkb25lCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_attribs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0KCk7CmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykgKSByZXR1cm47CmlmKCAhaXNzZXQoJHBhcmFtc1sncHJvZGlkJ10pICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CiRwcm9kdWN0ID0gJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPmdldF9ieV9pZCggXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdwcm9kaWQnKSApOwokc2tlbCA9IG5ldyBcUHJvZHVjdHNcUHJvZHVjdEF0dHJpYnV0ZSgpOwokYXR0cmlicyA9IFsgJHNrZWwgXTsKaWYoICRwcm9kdWN0LT5hdHRyaWJzICkgJGF0dHJpYnMgPSAkcHJvZHVjdC0+YXR0cmliczsKCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSB7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnb3BlcmF0aW9uX2NhbmNlbGxlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvdGFiKCRpZCk7Cn0KaWYoIGlzc2V0KCRwYXJhbXNbJ2NvcHlhdHRyaWJzJ10pICkgewogICAgaWYoICFpc3NldCgkcGFyYW1zWydjb3B5ZnJvbSddKSB8fCAkcGFyYW1zWydjb3B5ZnJvbSddIDwgMSApIHsKICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkcHJvZHVjdDIgPSAkdGhpcy0+R2V0UHJvZHVjdFN0b3JhZ2UoKS0+Z2V0X2J5X2lkKCBcY2dlX3BhcmFtOjpnZXRfaW50KCAkcGFyYW1zLCAnY29weWZyb20nKSApOwogICAgICAgICRhdHRyaWJzID0gJHByb2R1Y3QyLT5hdHRyaWJzOwogICAgICAgIGVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfb3B0aW9uc2NvcGllZCcpKTsKICAgIH0KfQppZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkgewogICAgdHJ5IHsKICAgICAgICBwcm9kdWN0c19hdHRyaWI6OmRlbGV0ZV9ieV9wcm9kdWN0KCRwYXJhbXNbJ3Byb2RpZCddKTsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snc2t1J10pICYmIGlzc2V0KCRwYXJhbXNbJ3RleHQnXSkgKSB7CiAgICAgICAgICAgIC8vIHdlIGhhdmUgc29tZSBvcHRpb25zLgogICAgICAgICAgICAkYXR0cmlicyA9IFtdOwogICAgICAgICAgICAka2V5cyA9IFsgJ3RleHQnLCdhZGp1c3RtZW50Jywnc2t1JywncW9oJywnbm90ZXMnIF07CiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRwYXJhbXNbJ3NrdSddKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICRyZWMgPSBbICdwcm9kdWN0X2lkJz0+KGludCkkcGFyYW1zWydwcm9kaWQnXSBdIDsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRrZXlzIGFzICRrZXkgKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlY1ska2V5XSA9ICRwYXJhbXNbJGtleV1bJGldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGF0dHJpYiA9IG5ldyBcUHJvZHVjdHNcUHJvZHVjdEF0dHJpYnV0ZSgpOwogICAgICAgICAgICAgICAgJGF0dHJpYi0+ZnJvbV9hcnJheSgkcmVjKTsKICAgICAgICAgICAgICAgICRhdHRyaWJzW10gPSAkYXR0cmliOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRwcm9kdWN0LT5zZXRfYXR0cmlidXRlcyggJGF0dHJpYnMgKTsKICAgICAgICAgICAgJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPnNhdmUoICRwcm9kdWN0ICk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX29wdGlvbnNfc2F2ZWQnKSk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KICAgIGNhdGNoKCBDbXNFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KfQplbHNlIHsKICAkdG1wID0gcHJvZHVjdHNfYXR0cmliOjpsb2FkX2J5X3Byb2R1Y3QoJHBhcmFtc1sncHJvZGlkJ10pOwogIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKCSRhdHRyaWJzID0gJHRtcDsKICB9Cn0KCgovLyBnZXQgYSBsaXN0IG9mIHByb2R1Y3RzIChleGNlcHQgdGhpcyBvbmUpIHdpdGggb3B0aW9ucwovLyB0b2RvOiB1c2UgcHJvZHVjdFN0b3JhZ2UgbWV0aG9kLgokcXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIFAuaWQsUC5wcm9kdWN0X25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMgQQogICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgUAogICAgICAgICAgT04gQS5wcm9kdWN0X2lkID0gUC5pZCBXSEVSRSBBLnByb2R1Y3RfaWQgIT0gPwogICAgICAgICAgT1JERVIgQlkgcHJvZHVjdF9uYW1lIEFTQyc7CiR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSxbICRwcm9kdWN0LT5pZCBdKTsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICR0MiA9IGFycmF5KCk7CiAgZm9yZWFjaCggJHRtcCBhcyAkcmVjICkgewoJJHQyWyRyZWNbJ2lkJ11dID0gJHJlY1sncHJvZHVjdF9uYW1lJ107CiAgfQogICRzbWFydHktPmFzc2lnbigncHJvZHVjdHNfd2l0aF9hdHRyaWJzJywkdDIpOwp9Cgokc21hcnR5LT5hc3NpZ24oJ3Byb2R1Y3QnLCRwcm9kdWN0KTsKJHNtYXJ0eS0+YXNzaWduKCdza3VfaXNfcmVxdWlyZWQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdza3VyZXF1aXJlZCcsMCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fZWRpdF9hdHRyaWJzJywnJyxhcnJheSgncHJvZGlkJz0+JHBhcmFtc1sncHJvZGlkJ10pKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignc2tlbF9yb3cnLCRza2VsKTsKJHNtYXJ0eS0+YXNzaWduKCdhdHRyaWJzJywkYXR0cmlicyk7CmVjaG8gJHRoaXMtPkNHUHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9lZGl0X2F0dHJpYnMudHBsJyk7CgojCiMgRU9GCiM=]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_hierarchy_item.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTcgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2hpZXJhcmNoeScpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApIHsKICAgIC8vIHdlJ3JlIGNhbmNlbGxpbmcKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCi8vCi8vIERlZmF1bHRzCi8vCiRkZXN0ZGlyID0gcHJvZHVjdF91dGlsczo6Z2V0X2hpZXJhcmNoeV91cGxvYWRfcGF0aCgpOwokaGllcl9yZWMgPSBbJ2lkJz0+bnVsbCwgJ3BhcmVudF9pZCc9Pi0xLCAnbmFtZSc9Pm51bGwsICdpbWFnZSc9Pm51bGwsICdkZXNjcmlwdGlvbic9Pm51bGwsICdleHRyYTEnPT5udWxsLCAnZXh0cmEyJz0+bnVsbCwgJ2l0ZW1fb3JkZXInPT5udWxsIF07CiRoaWVyX2lkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdoaWVyYXJjaHlfaWQnKTsKaWYoICRoaWVyX2lkID4gMCApIHsKICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9ID8nOwogICAgJGhpZXJfcmVjID0gJGRiLT5HZXRSb3coICRzcWwsIFsgJGhpZXJfaWQgXSApOwp9CgoKaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdzdWJtaXQnKSApIHsKICAgIHRyeSB7CiAgICAgICAgJG9sZF9yZWMgPSAkaGllcl9yZWM7CiAgICAgICAgJGhpZXJfcmVjWydwYXJlbnRfaWQnXSA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywncGFyZW50X2lkJywkaGllcl9yZWNbJ3BhcmVudF9pZCddKTsKICAgICAgICAkaGllcl9yZWNbJ25hbWUnXSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbmFtZScsJGhpZXJfcmVjWyduYW1lJ10pOwogICAgICAgICRoaWVyX3JlY1snZGVzY3JpcHRpb24nXSA9IFxjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdkZXNjcmlwdGlvbicsJGhpZXJfcmVjWydkZXNjcmlwdGlvbiddKTsKICAgICAgICAkaGllcl9yZWNbJ2V4dHJhMSddID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdleHRyYTEnLCRoaWVyX3JlY1snZXh0cmExJ10pOwogICAgICAgICRoaWVyX3JlY1snZXh0cmEyJ10gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2V4dHJhMicsJGhpZXJfcmVjWydleHRyYTInXSk7CgogICAgICAgIGlmKCAhJGhpZXJfcmVjWyduYW1lJ10gKSB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyX25vbmFtZScpKTsKCiAgICAgICAgaWYoICRoaWVyX3JlY1snaWQnXSAmJiAkaGllcl9yZWNbJ3BhcmVudF9pZCddICE9ICRvbGRfcmVjWydwYXJlbnRfaWQnXSApIHsKICAgICAgICAgICAgLy8gcGFyZW50IGNoYW5nZSBvbiB1cGRhdGUuCiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBuYW1lID0gPyc7CiAgICAgICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksIFsgJGhpZXJfcmVjWydwYXJlbnRfaWQnXSwgJGhpZXJfcmVjWyduYW1lJ10gXSApOwogICAgICAgICAgICBpZiggJHRtcCApIHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9uYW1ldXNlZCcpKTsKICAgICAgICB9CgogICAgICAgIGlmKCAkaGllcl9yZWNbJ2lkJ10gPiAwICkgewogICAgICAgICAgICAvLyBpdCdzIGFuIHVwZGF0ZQoKICAgICAgICAgICAgLy8gaGFuZGxlIGRlbGV0aW5nIGltYWdlcwogICAgICAgICAgICBpZiggXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2RlbGV0ZWltZycpICYmICRoaWVyX3JlY1snaW1hZ2UnXSApIHsKICAgICAgICAgICAgICAgIEB1bmxpbmsoJGRlc3RkaXIuJy8nLiRoaWVyX3JlY1snaW1hZ2UnXSk7CiAgICAgICAgICAgICAgICAkaGllcl9yZWNbJ2ltYWdlJ10gPSBudWxsOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggJG9sZF9yZWNbJ3BhcmVudF9pZCddICE9ICRoaWVyX3JlY1sncGFyZW50X2lkJ10gJiYgJGhpZXJfcmVjWydpdGVtX29yZGVyJ10gPiAtMSApIHsKICAgICAgICAgICAgICAgIC8vIGNoYW5nZWQgdG8gYSBkaWZmZXJlbnQgcGFyZW50LgogICAgICAgICAgICAgICAgaWYoICRoaWVyX3JlY1sncGFyZW50X2lkJ10gPiAwICYmIHByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9pc3BhcmVudG9mKCAkaGllcl9yZWNbJ3BhcmVudF9pZCddLCAkaGllcl9yZWNbJ2lkJ10gKSApIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXJlbnQnKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gZGVjcmVtZW50IGFsbCBvZiB0aGUgcHJldmlvdXMgc2libGluZ3Mgd2l0aCB0aGUgbGFyZ2VyIGl0ZW1fb3JkZXIKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyaWFyY2h5IFNFVCBpdGVtX29yZGVyID0gaXRlbV9vcmRlciAtIDEKICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBwYXJlbnRfaWQgPSA/IEFORCBpdGVtX29yZGVyID4gPyc7CiAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoICRxdWVyeSwgWyAkb2xkX3JlY1sncGFyZW50X2lkJ10sJGhpZXJfcmVjWydpdGVtX29yZGVyJ10gXSApOwoKICAgICAgICAgICAgICAgIC8vIGZpbmQgYSBuZXcgaXRlbSBvcmRlciBpbiB0aGUgbmV3IHBhcmVudC4KICAgICAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgQ09BTEVTQ0UoTUFYKGl0ZW1fb3JkZXIpLDApKzEgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeQogICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgICAgICAgICAgICAgJGhpZXJfcmVjWydpdGVtX29yZGVyJ10gID0gKGludCkgJGRiLT5HZXRPbmUoICRxdWVyeSxbICRoaWVyX3JlY1sncGFyZW50X2lkJ10gXSApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5CiAgICAgICAgICAgICAgICAgICAgICBTRVQgbmFtZSA9ID8sIGltYWdlID0gPywgaXRlbV9vcmRlciA9ID8sIHBhcmVudF9pZCA9ID8sIGRlc2NyaXB0aW9uID0gPywKICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYTEgPSA/LCBleHRyYTIgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgWyAkaGllcl9yZWNbJ25hbWUnXSwgJGhpZXJfcmVjWydpbWFnZSddLCAkaGllcl9yZWNbJ2l0ZW1fb3JkZXInXSwgJGhpZXJfcmVjWydwYXJlbnRfaWQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhpZXJfcmVjWydkZXNjcmlwdGlvbiddLCAkaGllcl9yZWNbJ2V4dHJhMSddLCAkaGllcl9yZWNbJ2V4dHJhMiddLCAkaGllcl9yZWNbJ2lkJ10gXSApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gaXQncyBhbiBpbnNlcnQKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBNQVgoaXRlbV9vcmRlcikrMSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIHBhcmVudF9pZCA9ID8nOwogICAgICAgICAgICAkaXRlbV9vcmRlciA9IChpbnQpICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkcGFyZW50KSk7CiAgICAgICAgICAgIGlmKCAhJGl0ZW1fb3JkZXIgKSAkaXRlbV9vcmRlciA9IDE7CgogICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICAgICAgKG5hbWUsIHBhcmVudF9pZCwgZGVzY3JpcHRpb24sIGltYWdlLCBleHRyYTEsIGV4dHJhMiwgaXRlbV9vcmRlcikgVkFMVUVTKD8sPyw/LD8sPyw/LD8pJzsKICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIFsgJGhpZXJfcmVjWyduYW1lJ10sICRoaWVyX3JlY1sncGFyZW50X2lkJ10sICRoaWVyX3JlY1snZGVzY3JpcHRpb24nXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhpZXJfcmVjWydpbWFnZSddLCAkaGllcl9yZWNbJ2V4dHJhMSddLCAkaGllcl9yZWNbJ2V4dHJhMiddLCAkaXRlbV9vcmRlciBdICk7CiAgICAgICAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkZGItPkVycm9yTXNnKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRoaWVyX3JlY1snaWQnXSA9IChpbnQpICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgICAgfQoKICAgICAgICAkaGFuZGxlciA9IG5ldyBcY2dfZmlsZXVwbG9hZCgkaWQsJGRlc3RkaXIpOwogICAgICAgICRoYW5kbGVyLT5zZXRfYWxsb3dfb3ZlcndyaXRlKCk7CiAgICAgICAgJGhhbmRsZXItPnNldF9hY2NlcHRlZF9maWxldHlwZXMoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnKSApOwogICAgICAgICRoYXZlX3VwbG9hZCA9ICRoYW5kbGVyLT5jaGVja191cGxvYWRfYXR0ZW1wdGVkKCdpbWFnZScpOwogICAgICAgIGlmKCAkaGF2ZV91cGxvYWQgKSB7CiAgICAgICAgICAgIFxjZ2VfZGlyOjpta2RpcnIoICRkZXN0ZGlyICk7CiAgICAgICAgICAgIGlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbiggJHRoaXMtPkxhbmcoJ2Vycl9ta2RpcicsICRkZXN0ZGlyKSApOwogICAgICAgICAgICAkZGVzdG5hbWUgPSAnaCcuJGhpZXJfcmVjWydpZCddLicuaW1nJzsgIC8vIGV4dGVuc2lvbiB3aWxsIGJlIHJlcGxhY2VkLgogICAgICAgICAgICAkcmVzID0gJGhhbmRsZXItPmhhbmRsZV91cGxvYWQoJ2ltYWdlJywkZGVzdG5hbWUpOwogICAgICAgICAgICAkZXJyID0gJGhhbmRsZXItPmdldF9lcnJvcigpOwogICAgICAgICAgICBpZiggISRyZXMgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oICR0aGlzLT5HZXRVcGxvYWRFcnJvcm1lc3NhZ2UoICRlcnIgKSApOwogICAgICAgICAgICBpZiggJHJlcyApIHsKICAgICAgICAgICAgICAgICRoaWVyX3JlY1snaW1hZ2UnXSA9ICRyZXM7CiAgICAgICAgICAgICAgICAkc3FsID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgaW1hZ2UgPSA/IFdIRVJFIGlkID0gPyc7CiAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoICRzcWwsIFsgJGhpZXJfcmVjWydpbWFnZSddLCAkaGllcl9yZWNbJ2lkJ10gXSApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+VXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCk7CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9Cn0KCiMKIyBCdWlsZCB0aGUgZm9ybQojCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiRpbWFnZV91cmwgPSBudWxsOwppZiggJGhpZXJfcmVjWydpbWFnZSddICkgewogICAgJGltYWdlX3VybCA9IHByb2R1Y3RfdXRpbHM6OmdldF9oaWVyYXJjaHlfdXBsb2FkX3VybCgpLicvJy4kaGllcl9yZWNbJ2ltYWdlJ107Cn0KJHNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmwnLCRpbWFnZV91cmwpOwokc21hcnR5LT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtcycsYXJyYXlfZmxpcCgkaGllcmFyY2h5X2l0ZW1zKSk7CiRzbWFydHktPmFzc2lnbignaGllcl9yZWMnLCAkaGllcl9yZWMpOwplY2hvICR0aGlzLT5DR1Byb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZWRpdF9oaWVyYXJjaHlfaXRlbS50cGwnKTsKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgovLwovLyBpbml0aWFsaXplCi8vCmZ1bmN0aW9uIG9yZGVyaGllcl9jcmVhdGVfZmxhdGxpc3QoJHRyZWUsJHBhcmVudF9pZCA9IC0xKQp7CiAgJGRhdGEgPSBhcnJheSgpOwogICRvcmRlciA9IDE7CiAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkKICAgIHsKICAgICAgaWYoIGlzX2FycmF5KCRub2RlKSAmJiBjb3VudCgkbm9kZSkgPT0gMiApCgl7CgkgICRwaWQgPSAoaW50KXN1YnN0cigkbm9kZVswXSxzdHJsZW4oJ2hpZXJfJykpOwoJICAkZGF0YVtdID0gYXJyYXkoJ2lkJz0+JHBpZCwncGFyZW50X2lkJz0+JHBhcmVudF9pZCwnb3JkZXInPT4kb3JkZXIpOwoJICBpZiggaXNzZXQoJG5vZGVbMV0pICYmIGlzX2FycmF5KCRub2RlWzFdKSApCgkgICAgewoJICAgICAgJGRhdGEgPSBhcnJheV9tZXJnZSgkZGF0YSxvcmRlcmhpZXJfY3JlYXRlX2ZsYXRsaXN0KCRub2RlWzFdLCRwaWQpKTsKCSAgICB9Cgl9CiAgICAgIGVsc2UKCXsKCSAgJHBpZCA9IChpbnQpc3Vic3RyKCRub2RlLHN0cmxlbignaGllcl8nKSk7CgkgICRkYXRhW10gPSBhcnJheSgnaWQnPT4kcGlkLCdwYXJlbnRfaWQnPT4kcGFyZW50X2lkLCdvcmRlcic9PiRvcmRlcik7Cgl9CiAgICAgICRvcmRlcisrOwogICAgfQogIHJldHVybiAkZGF0YTsKfQoKLy8KLy8gc2V0dXAgdGhlIGRhdGEKLy8KJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2hpZXJhcmNoeScpOwokdHJlZSA9IHByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9nZXRfdHJlZSgpOwoKLy8KLy8gaGFuZGxlIGZvcm0gc3VibWlzc2lvbl8KLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgJHRoaXMtPlNldE1lc3NhZ2UoJHRoaXMtPkxhbmcoJ29wZXJhdGlvbl9jYW5jZWxsZWQnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAkcGFyYW1zWydvcmRlcmRhdGEnXSA9IGpzb25fZGVjb2RlKCRwYXJhbXNbJ29yZGVyZGF0YSddKTsKCiAgICAvLyAxLiBNYXNzYWdlIHRoZSBvcmRlciBkYXRhIGZyb20gdGhlIGZvcm0uCiAgICAkZGF0YSA9IG9yZGVyaGllcl9jcmVhdGVfZmxhdGxpc3QoJHBhcmFtc1snb3JkZXJkYXRhJ10pOwoKICAgIC8vIDIuIFVwZGF0ZSB0aGUgZGF0YSBhcnJheSB3aXRoIGluZm8gZnJvbSB0aGUgdHJlZS4KICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IE9SREVSIGJ5IGhpZXJhcmNoeSc7CiAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgJGRiciA9IGNnZV9hcnJheTo6dG9faGFzaCgkZGJyLCdpZCcpOwoKICAgIC8vIDMuIFVwZGF0ZSB0aGUgZGF0YWJhc2UKICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgU0VUIHBhcmVudF9pZCA9ID8sIGl0ZW1fb3JkZXIgPSA/LCBoaWVyYXJjaHkgPSA/LCBsb25nX25hbWUgPSA/IFdIRVJFIGlkID0gPyc7CiAgICBmb3JlYWNoKCAkZGF0YSBhcyAkcmVjICkKICAgICAgewoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHJlY1sncGFyZW50X2lkJ10sJHJlY1snb3JkZXInXSwnJywnJywkcmVjWydpZCddKSk7CiAgICAgIH0KICAgIHByb2R1Y3RfdXRpbHM6OnVwZGF0ZV9oaWVyYXJjaHlfcG9zaXRpb25zKCk7CgogICAgLy8gYW5kIGdldCBvdXQgb2YgaGVyZS4KICAgICR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdvcGVyYXRpb25fY29tcGxldGUnKSk7CiAgICAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgcmV0dXJuOwogIH0KCi8vCi8vIGdpdmUgaXQgdG8gc21hcnR5Ci8vCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9yZW9yZGVyX2hpZXJhcmNoeScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCd0cmVlJywkdHJlZSk7CiRzbWFydHktPmFzc2lnbignZGVwdGgnLDApOwoKLy8gZGlzcGxheSB0aGUgZm9ybS4KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9yZW9yZGVyX2hpZXJhcmNoeS50cGwnKTsKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCggJGdDbXMgKSApIHJldHVybjsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgcmV0dXJuOwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3ByZWZzJyk7CgppZiggaXNzZXQoJHBhcmFtc1snc2V0ZWNvbWhhbmRsZXJzJ10pICkgewogICAgJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyxGQUxTRSk7CiAgICAkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cn0KCmlmKCAhaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdCddICkgKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3RheGFibGUnXSkgKSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywoaW50KSRwYXJhbXNbJ3RheGFibGUnXSk7Cn0KZWxzZSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywwKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N0YXR1cyddKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N0YXR1cycsJHBhcmFtc1snc3RhdHVzJ10pOwp9CmVsc2UgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfc3RhdHVzJywwKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsJHBhcmFtc1snZGV0YWlscGFnZSddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJwYWdlJ10pICkgIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdoaWVycGFnZScsJHBhcmFtc1snaGllcnBhZ2UnXSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydwcmV0dHloaWVydXJscyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJldHR5aGllcnVybHMnLCRwYXJhbXNbJ3ByZXR0eWhpZXJ1cmxzJ10pOwp9CgppZiggaXNzZXQoJHBhcmFtc1snc29ydG9yZGVyJ10pICkgIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCRwYXJhbXNbJ3NvcnRvcmRlciddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlfbmV3ZGVmYXVsdCddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9uZXdkZWZhdWx0JywoaW50KSRwYXJhbXNbJ3N1bW1hcnlfbmV3ZGVmYXVsdCddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlfcGFnZWxpbWl0J10pICkgIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzdW1tYXJ5X3BhZ2VsaW1pdCcsKGludCkkcGFyYW1zWydzdW1tYXJ5X3BhZ2VsaW1pdCddKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3NvcnRieSddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc29ydGJ5JywkcGFyYW1zWydzb3J0YnknXSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydjdXJyZW5jeXN5bWJvbCddKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcsdHJpbSgkcGFyYW1zWydjdXJyZW5jeXN5bWJvbCddKSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWyd3ZWlnaHR1bml0cyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfd2VpZ2h0dW5pdHMnLHRyaW0oJHBhcmFtc1snd2VpZ2h0dW5pdHMnXSkpOwp9CgppZiggaXNzZXQoJHBhcmFtc1snbGVuZ3RodW5pdHMnXSkgKSAgewogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2xlbmd0aHVuaXRzJyx0cmltKCRwYXJhbXNbJ2xlbmd0aHVuaXRzJ10pKTsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2FsbG93ZWRfaW1hZ2V0eXBlcyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJyx0cmltKCRwYXJhbXNbJ2FsbG93ZWRfaW1hZ2V0eXBlcyddKSk7Cn0KCmlmKCBpc3NldCgkcGFyYW1zWydhbGxvd2VkX2ZpbGV0eXBlcyddKSApICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnLHRyaW0oJHBhcmFtc1snYWxsb3dlZF9maWxldHlwZXMnXSkpOwp9CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZmV1X293bmVyZ3JvdXAnLFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZmV1X293bmVyZ3JvdXAnKSk7CgppZiggaXNzZXQoJHBhcmFtc1sndXJscHJlZml4J10pICkgewogICAgaWYoICRwYXJhbXNbJ3VybHByZWZpeCddICE9ICcnICkgewogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCRwYXJhbXNbJ3VybHByZWZpeCddKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCd1cmxwcmVmaXgnKTsKICAgIH0KfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGV0ZXByb2R1Y3RmaWxlcyddKSApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdkZWxldGVwcm9kdWN0ZmlsZXMnLHRyaW0oJHBhcmFtc1snZGVsZXRlcHJvZHVjdGZpbGVzJ10pKTsKfQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnLChpbnQpJHBhcmFtc1sndXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VzZWhpZXJwYXRodXJscycsKGludCkkcGFyYW1zWyd1c2VoaWVycGF0aHVybHMnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmQnLHRyaW0oJHBhcmFtc1sncHJvZG5vdGZvdW5kJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZG1zZycsdHJpbSgkcGFyYW1zWydwcm9kbm90Zm91bmRtc2cnXSkpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kcGFnZScsdHJpbSgkcGFyYW1zWydwcm9kbm90Zm91bmRwYWdlJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJywoaW50KSRwYXJhbXNbJ3NrdXJlcXVpcmVkJ10pOwokdGhpcy0+U2V0VGVtcGxhdGUoJ3NsdWd0ZW1wbGF0ZScsXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdzbHVndGVtcGxhdGUnKSk7CgokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_setdflttemplates.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApIGV4aXQoKTsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdkZWZhdWx0X3RlbXBsYXRlcycpOwoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfc3VtbWFyeXRlbXBsYXRlJ10gKSApIHsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsdHJpbSgkcGFyYW1zWydpbnB1dF9zdW1tYXJ5dGVtcGxhdGUnXSkpOwp9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9zdW1tYXJ5dGVtcGxhdGUnXSApICkgewogICRmbiA9IF9fRElSX18uRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX3N1bW1hcnlfdGVtcGxhdGUudHBsJzsKICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NVTU1BUllfVEVNUExBVEUsJHRlbXBsYXRlKTsKICB9Cn0KCmlmKCBpc3NldCggJHBhcmFtc1snc3VibWl0X2RldGFpbHRlbXBsYXRlJ10gKSApIHsKICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURSx0cmltKCRwYXJhbXNbJ2lucHV0X2RldGFpbHRlbXBsYXRlJ10pKTsKfQplbHNlIGlmKCBpc3NldCggJHBhcmFtc1sncmVzZXRfZGV0YWlsdGVtcGxhdGUnXSApICkgewogICRmbiA9IF9fRElSX18uRElSRUNUT1JZX1NFUEFSQVRPUi4ndGVtcGxhdGVzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLidvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGwnOwogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXREVUQUlMX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CiAgfQp9CgoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfYnloaWVyYXJjaHl0ZW1wbGF0ZSddICkgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdCWUhJRVJBUkNIWV9URU1QTEFURSx0cmltKCRwYXJhbXNbJ2lucHV0X2J5aGllcmFyY2h5dGVtcGxhdGUnXSkpOwp9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9ieWhpZXJhcmNoeXRlbXBsYXRlJ10gKSApIHsKICAkZm4gPSBfX0RJUl9fLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nb3JpZ19ieWhpZXJhcmNoeV90ZW1wbGF0ZS50cGwnOwogIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKSB7CiAgICAkdGVtcGxhdGUgPSBAZmlsZV9nZXRfY29udGVudHMoJGZuKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUsJHRlbXBsYXRlKTsKICB9Cn0KCgppZiggaXNzZXQoICRwYXJhbXNbJ3N1Ym1pdF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddICkgKSB7CiAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUsdHJpbSgkcGFyYW1zWydpbnB1dF9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddKSk7Cn0KZWxzZSBpZiggaXNzZXQoICRwYXJhbXNbJ3Jlc2V0X2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gKSApIHsKICAkZm4gPSBfX0RJUl9fLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ3RlbXBsYXRlcycuRElSRUNUT1JZX1NFUEFSQVRPUi4nb3JpZ19jYXRlZ29yeWxpc3RfdGVtcGxhdGUudHBsJzsKICBpZiggZmlsZV9leGlzdHMoICRmbiApICkgewogICAgJHRlbXBsYXRlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV0NBVEVHT1JZTElTVF9URU1QTEFURSwkdGVtcGxhdGUpOwogIH0KfQoKaWYoIGlzc2V0KCAkcGFyYW1zWydzdWJtaXRfc2VhcmNodGVtcGxhdGUnXSApICkgewogICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFLHRyaW0oJHBhcmFtc1snaW5wdXRfc2VhcmNodGVtcGxhdGUnXSkpOwp9CmVsc2UgaWYoIGlzc2V0KCAkcGFyYW1zWydyZXNldF9zZWFyY2h0ZW1wbGF0ZSddICkgKSB7CiAgJGZuID0gX19ESVJfXy5ESVJFQ1RPUllfU0VQQVJBVE9SLid0ZW1wbGF0ZXMnLkRJUkVDVE9SWV9TRVBBUkFUT1IuJ29yaWdfc2VhcmNoX3RlbXBsYXRlLnRwbCc7CiAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApIHsKICAgICR0ZW1wbGF0ZSA9IEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ORVdTRUFSQ0hfVEVNUExBVEUsJHRlbXBsYXRlKTsKICB9Cn0KCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.ajax_propval.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgovLwovLyByZXRyaWV2ZSBhbGwgb2YgdGhlIHZhbHVlcyBvZiBhIGZpZWxkCi8vIHRoaXMgaXMgYW4gYWN0aW9uIGludGVuZGVkIHRvIGJlIGNhbGxlZCB2aWEgYWpheC4uLiBpLmU6IHdpdGggdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIKLy8KCi8vCi8vIHNldHVwCi8vCiRyZXMgPSBhcnJheSgnc3RhdHVzJz0+J0VSUk9SJywnZGF0YSc9PicnKTsKJGZpZWxkID0gJyc7CiRmaWVsZHZhbCA9ICcnOwokZmllbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcygpOwokZGF0YSA9ICcnOwoKZnVuY3Rpb24gZG9fZXJyb3IoJG1zZywkZXh0cmEgPSBudWxsKSB7CiAgICAkcmVzWydzdGF0dXMnXSA9ICdFUlJPUic7CiAgICAkcmVzWydkYXRhJ10gPSAkbXNnOwogICAgaWYoICFpc19udWxsKCRleHRyYSkgKSAkcmVzWydleHRyYSddID0gJGV4dHJhOwogICAgZWNobyBqc29uX2VuY29kZSgkcmVzKTsKICAgIGV4aXQ7Cn0KCi8vCi8vIGRhdGEgdmFsaWRhdGlvbgovLwppZiggIWlzc2V0KCRwYXJhbXNbJ2ZpZWxkJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmaWVsZHZhbCddKSApIHsKICAgIGRvX2Vycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7Cn0KJGZpZWxkID0gdHJpbSgkcGFyYW1zWydmaWVsZCddKTsKJGZpZWxkdmFsID0gdHJpbSgkcGFyYW1zWydmaWVsZHZhbCddKTsKCi8vCi8vIGRvIHRoZSB3b3JrCi8vCiRsZmllbGQgPSBzdHJ0b2xvd2VyKCRmaWVsZCk7CnN3aXRjaCggc3RydG9sb3dlcigkbGZpZWxkKSApIHsKY2FzZSAnOjpza3U6Oic6CiAgICAkcXVlcnkgPSAnU0VMRUNUIHNrdSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgc2t1IExJS0UgPyc7CiAgICAkZGF0YSA9ICRkYi0+R2V0Q29sKCRxdWVyeSxhcnJheSgkZmllbGR2YWwuJyUnKSk7CiAgICBicmVhazsKCmNhc2UgJzo6bmFtZTo6JzoKICAgICRxdWVyeSA9ICdTRUxFQ1QgcHJvZHVjdF9uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBXSEVSRSBwcm9kdWN0X25hbWUgTElLRSA/JzsKICAgICRkYXRhID0gJGRiLT5HZXRDb2woJHF1ZXJ5LGFycmF5KCRmaWVsZHZhbC4nJScpKTsKICAgIGJyZWFrOwoKY2FzZSAnOjphbGlhczo6JzoKICAgICRxdWVyeSA9ICdTRUxFQ1QgYWxpYXMgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGFsaWFzIExJS0UgPyc7CiAgICAkZGF0YSA9ICRkYi0+R2V0Q29sKCRxdWVyeSxhcnJheSgkZmllbGR2YWwuJyUnKSk7CiAgICBicmVhazsKCmRlZmF1bHQ6CiAgICAkZm5kID0gMDsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRmaWVsZGRlZnMpOyAkaSsrICkgewogICAgICAgIGlmKCAkZmllbGRkZWZzWyRpXS0+bmFtZSA9PSAkZmllbGQgKSB7CiAgICAgICAgICAgICRmbmQgPSAxOwogICAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgRElTVElOQ1QgdmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBmaWVsZGRlZl9pZCA9ID8gQU5EIHZhbHVlIExJS0UgPyc7CiAgICAgICAgICAgICAgJGRhdGEgPSAkZGItPkdldENvbCgkcXVlcnksYXJyYXkoJGZpZWxkZGVmc1skaV0tPmlkLCRmaWVsZHZhbC4nJScpKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBpZiggISRmbmQgKSB7CiAgICAgICAgJGV4dCA9IGFycmF5KCdsb29rZm9yJz0+JGxmaWVsZCwnZmQnPT4kZmllbGRkZWZzLCd2YWwnPT4kZmllbGR2YWwuJyUnKTsKICAgICAgICBkb19lcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZF9uYW1lJyksJGV4dCk7CiAgICB9CiAgICBicmVhazsKfQoKLy8KLy8gb3V0cHV0Ci8vCiRyZXNbJ3N0YXR1cyddID0gJ09LJzsKJHJlc1snZGF0YSddID0gJGRhdGE7CmVjaG8ganNvbl9lbmNvZGUoJHJlcyk7CmV4aXQ7CgojCiMgRU9GCiM/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.categorylist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCiR0aGV0ZW1wbGF0ZSA9ICR0aGlzLT5maW5kX2xheW91dF90ZW1wbGF0ZSgkcGFyYW1zLCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsJ1Byb2R1Y3RzOjpDYXRlZ29yeSBWaWV3Jyk7CiRzb3J0YnkgPSAnQS5uYW1lJzsKJHNvcnRvcmRlciA9ICdhc2MnOwokY2F0ZWdvcnlfaWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2NhdGVnb3J5aWQnKTsKJGNhdGVnb3J5ID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdjYXRlZ29yeScpOwokY2F0ZWdvcnlmaWVsZCA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnY2F0ZWdvcnlmaWVsZCcpOwokcmVzdWx0cGFnZSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncmVzdWx0cGFnZScpOwoKJHJlc3VsdHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVzdWx0cGFnZScsJycpOwppZiggIWVtcHR5KCRyZXN1bHRwYWdlKSApIHsKICAgICRtYW5hZ2VyID0gJGdDbXMtPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkcmVzdWx0cGFnZSk7CiAgICBpZiAoaXNzZXQoJG5vZGUpKSB7CiAgICAgICAgJGNvbnRlbnQgPSAkbm9kZS0+R2V0Q29udGVudCgpOwogICAgICAgIGlmIChpc3NldCgkY29udGVudCkpICRyZXN1bHRwYWdlID0gJGNvbnRlbnQtPklkKCk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJHJlc3VsdHBhZ2UpOwogICAgICAgIGlmICghaXNzZXQoJG5vZGUpKSAkcmVzdWx0cGFnZSA9ICcnOwogICAgfQp9CgokdG1wID0gc3RydG9sb3dlcihcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3NvcnRieScpKTsKc3dpdGNoKCAkdG1wICkgewpjYXNlICdpZCc6CmNhc2UgJ25hbWUnOgoJJHNvcnRieSA9ICdBLicuJHRtcDsKCWJyZWFrOwp9CiR0bXAgPSBzdHJ0b2xvd2VyKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc29ydG9yZGVyJykpOwpzd2l0Y2goICR0bXAgKSB7CmNhc2UgJ2FzYyc6CmNhc2UgJ2Rlc2MnOgoJJHNvcnRvcmRlciA9ICR0bXA7CglicmVhazsKfQoKJHF1ZXJ5ID0gIlNFTEVDVCBBLmlkLEEubmFtZSxjb3VudChCLnByb2R1Y3RfaWQpIEFTIGNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIEEgTEVGVCBPVVRFUiBKT0lOICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIEIgT04gQS5pZCA9IEIuY2F0ZWdvcnlfaWQiOwokam9pbnMgPSBhcnJheSgpOwokanBhcm1zID0gYXJyYXkoKTsKJHdoZXJlID0gYXJyYXkoKTsKJHFwYXJtcyA9IGFycmF5KCk7CmlmKCAkY2F0ZWdvcnlfaWQgKSB7CiAgICAkd2hlcmVbXSAuPSAiQS5pZCA9ID8iOwogICAgJHFwYXJtc1tdID0gJGNhdGVnb3J5X2lkOwp9CmVsc2UgaWYoICRjYXRlZ29yeSkgewogICAgJHEyID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBuYW1lIElOICgnOwogICAgJHRtcCA9IGV4cGxvZGUoJywnLCRjYXRlZ29yeSk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKICAgICAgICAkdG1wWyRpXSA9ICciJy4kdG1wWyRpXS4nIic7CiAgICB9CiAgICAkcTIgLj0gaW1wbG9kZSgnLCcsJHRtcCkuJyknOwogICAgJGlkcyA9ICRkYi0+R2V0Q29sKCRxMik7CiAgICBpZiggaXNfYXJyYXkoJGlkcykgJiYgY291bnQoJGlkcykgKSB7CiAgICAgICAgJHdoZXJlW10gPSAnQS5pZCBJTiAoJy5pbXBsb2RlKCcsJywkaWRzKS4nKSc7CiAgICB9Cn0KZWxzZSBpZiggJGNhdGVnb3J5ZmllbGQgKSB7CiAgICAkZXhwcnMgPSBjZ2VfYXJyYXk6OnNtYXJ0X2V4cGxvZGUoJGNhdGVnb3J5ZmllbGQpOwogICAgaWYoIGlzX2FycmF5KCRleHBycykgJiYgY291bnQoJGV4cHJzKSApIHsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZXhwcnMpOyAkaSsrICkgewogICAgICAgICAgICBsaXN0KCRmbGRuYW1lLCRmbGR2YWwpID0gZXhwbG9kZSgnOicsJGV4cHJzWyRpXSwyKTsKICAgICAgICAgICAgaWYoICRmbGRuYW1lICE9ICcnICYmICRmbGR2YWwgIT0gJycgKSB7CiAgICAgICAgICAgICAgICAkam9pbnNbXSA9IGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyBDRnskaX0gT04gQS5pZCA9IENGeyRpfS5jYXRlZ29yeV9pZCBBTkQgQ0Z7JGl9LmZpZWxkX25hbWUgPSA/IjsKICAgICAgICAgICAgICAgICRqcGFybXNbXSA9ICRmbGRuYW1lOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAiQ0Z7JGl9LmZpZWxkX3ZhbHVlID0gPyI7CiAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkZmxkdmFsOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgovLyBmaW5hbCBxdWVyeSBhc3NlbWJseS4KaWYoIGNvdW50KCRqb2lucykgKSAkcXVlcnkgLj0gJyBMRUZUIEpPSU4gJy5pbXBsb2RlKCcgTEVGVCBKT0lOICcsJGpvaW5zKTsKaWYoIGNvdW50KCR3aGVyZSkgKSAkcXVlcnkgLj0gJyBXSEVSRSAnLmltcGxvZGUoJyBBTkQgJywkd2hlcmUpOwokcXBhcm1zID0gYXJyYXlfbWVyZ2UoJGpwYXJtcywkcXBhcm1zKTsKJHF1ZXJ5IC49ICIgR1JPVVAgQlkgQS5pZCBPUkRFUiBCWSAkc29ydGJ5ICRzb3J0b3JkZXIiOwokY2F0ZWdvcmllcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCRxcGFybXMpOwppZiggISRjYXRlZ29yaWVzICkgcmV0dXJuOwoKJHRtcCA9IGNnZV9hcnJheTo6ZXh0cmFjdF9maWVsZCgkY2F0ZWdvcmllcywnaWQnKTsKJHF1ZXJ5MiA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCR0bXApLicpIE9SREVSIEJZIGNhdGVnb3J5X2lkIEFTQywgZmllbGRfb3JkZXIgQVNDJzsKJHRtcDIgPSAkZGItPkdldEFycmF5KCRxdWVyeTIpOwokcmVzdWx0cyA9IGFycmF5KCk7CmZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRjYXRlZ29yaWVzKTsgJGkrKyApIHsKICAgICRyb3cgPSYgJGNhdGVnb3JpZXNbJGldOwogICAgaWYoICghaXNzZXQoJHBhcmFtc1snc2hvd2FsbCddKSB8fCAkcGFyYW1zWydzaG93YWxsJ10gPCAxKSAmJiAkcm93Wydjb3VudCddIDw9IDAgKSBjb250aW51ZTsKCiAgICAkb2JqID0gbmV3IFN0ZENsYXNzKCk7CiAgICBmb3JlYWNoKCAkcm93IGFzICRrID0+ICR2ICkgewogICAgICAgICRvYmotPiRrID0gJHY7CiAgICB9CgogICAgLy8gZXh0cmFjdCBhbGwgb2YgdGhlIHJvd3MgdGhhdCBoYXZlIHRoaXMgY2F0ZWdvcnkgaWQKICAgICR0bXBhID0gYXJyYXkoKTsKICAgIGZvciggJGogPSAwOyAkaiA8IGNvdW50KCR0bXAyKTsgJGorKyApIHsKICAgICAgICBpZiggJHRtcDJbJGpdWydjYXRlZ29yeV9pZCddIDwgJHJvd1snaWQnXSApIGNvbnRpbnVlOwogICAgICAgIGlmKCAkdG1wMlskal1bJ2NhdGVnb3J5X2lkJ10gPiAkcm93WydpZCddICkgYnJlYWs7CgogICAgICAgICR0bXBhW10gPSAkdG1wMlskal07CiAgICB9CiAgICBpZiggaXNfYXJyYXkoJHRtcGEpICYmIGNvdW50KCR0bXBhKSA+IDAgKSAkb2JqLT5maWVsZHMgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcGEsJ2ZpZWxkX25hbWUnKTsKCiAgICAkcGFyYW1zWydjYXRlZ29yeWlkJ10gPSAkb2JqLT5pZDsKICAgIGlmKCAhJGNhdGVnb3J5X2lkICkgewogICAgICAgICRvYmotPmRldGFpbF91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2NhdGVnb3J5bGlzdCcsKCRyZXN1bHRwYWdlIT0nJyk/JHJlc3VsdHBhZ2U6JHJldHVybmlkLCRwYXJhbXMpOwogICAgfQogICAgJHBhcmFtc1snY2F0ZWdvcnluYW1lJ10gPSAkb2JqLT5uYW1lOwogICAgJG9iai0+c3VtbWFyeV91cmwgPSAkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCgkcmVzdWx0cGFnZSE9JycpPyRyZXN1bHRwYWdlOiRyZXR1cm5pZCwkcGFyYW1zKTsKICAgICRyZXN1bHRzW10gPSAkb2JqOwp9CgokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSk7CiR0cGwtPmFzc2lnbignY2F0ZWdvcnlsaXN0JywkcmVzdWx0cyk7CiR0cGwtPmRpc3BsYXkoKTsKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/action.copycategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQppZiAoIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pKQp7CiAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbWlzc2luZ3BhcmFtJykpOwogIHJldHVybjsKfQoKIyBJbml0aWFsaXphdGlvbgokbmFtZSA9ICcnOwokY2F0aWQgPSAoaW50KSRwYXJhbXNbJ2NhdGlkJ107CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKQp7CiAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKfQoKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzCiAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKCmlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQp7CiAgLy8gbWFrZSBzdXJlIHRoZSBuYW1lIGlzIG5vdCBlbXB0eQogIGlmKCBpc3NldCgkcGFyYW1zWyduYW1lJ10pICkKICAgIHsKICAgICAgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CiAgICB9CiAgaWYoIGVtcHR5KCRuYW1lKSApCiAgICB7CiAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25vbmFtZScpKTsKICAgIH0KICBlbHNlCiAgICB7CiAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMKICAgICAgICAgICAgICAgICAgV0hFUkUgbmFtZSA9ID8nOwogICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgIGlmKCAkdG1wICkKCXsKCSAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbmFtZXVzZWQnKSk7Cgl9CiAgICAgIGVsc2UKCXsKCSAgLy8gaXQncyBnb29kIHRvIGdvLgoJICAkbm93ID0gJGRiLT5EYlRpbWVTdGFtcCh0aW1lKCkpOwoJICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzCiAgICAgICAgICAgICAgICAgKG5hbWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LCRub3csJG5vdykiOwoJICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CgkgICRuZXdfaWQgPSAkZGItPkluc2VydF9JRCgpOwoKCSAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gT1JERVIgQlkgZmllbGRfb3JkZXInOwoJICAkcmVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7CgoJICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMKICAgICAgICAgICAgICAgICAgKGNhdGVnb3J5X2lkLCBmaWVsZF90eXBlLCBmaWVsZF9uYW1lLCBmaWVsZF9wcm9tcHQsIGZpZWxkX3ZhbHVlLCBmaWVsZF9vcmRlcikKICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8pJzsKCSAgJGlkeCA9IDE7CgkgIGZvcmVhY2goICRyZXMgYXMgJG9uZSApCgkgICAgewoJICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwKCQkJICAgYXJyYXkoJG5ld19pZCwkb25lWydmaWVsZF90eXBlJ10sJG9uZVsnZmllbGRfbmFtZSddLAoJCQkJICRvbmVbJ2ZpZWxkX3Byb21wdCddLCRvbmVbJ2ZpZWxkX3ZhbHVlJ10sJGlkeCsrKSk7CgkgICAgfQoKCSAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCX0KICAgIH0KfQoKaWYoICRyb3cgKQp7CiAgJHNtYXJ0eS0+YXNzaWduKCdjYXRlZ29yeScsJHJvdyk7Cn0KCiMgRGlzcGxheSBUZW1wbGF0ZQokc21hcnR5LT5hc3NpZ24oJ3N0YXJ0Zm9ybScsCgkJJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsJ2NvcHljYXRlZ29yeScsJHJldHVybmlkKSk7CiRzbWFydHktPmFzc2lnbignZW5kZm9ybScsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0bmFtZScsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ25hbWUnLCRuYW1lLDgwLDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnY2F0aWQnLCRjYXRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnY2FuY2VsJywgbGFuZygnY2FuY2VsJykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnY29weWNhdGVnb3J5LnRwbCcpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhldGVtcGxhdGUgPSAkdGhpcy0+ZmluZF9sYXlvdXRfdGVtcGxhdGUoJHBhcmFtcywnc3VtbWFyeXRlbXBsYXRlJywnUHJvZHVjdHM6Okxpc3QgVmlldycpOwokY2FjaGVfaWQgPSAnfHBzJy5tZDUoc2VyaWFsaXplKCRwYXJhbXMpKTsKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgkdGhldGVtcGxhdGUsbnVsbCwkY2FjaGVfaWQpOwppZiggISR0cGwtPmlzQ2FjaGVkKCkgKSB7CgogICAgLy8gc2V0dXAgdGhlIHF1ZXJ5CiAgICB0cnkgewogICAgICAgICRxdWVyeSA9IG5ldyBwcm9kdWN0c19xdWVyeSgpOwogICAgICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkcXVlcnlbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgICAgIC8vIGlnbm9yZSB0aGlzIGVycm9yLgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0cyA9IG5ldyBwcm9kdWN0c19yZXN1bHRzZXQoJHF1ZXJ5KTsKICAgICAgICAkcmVzdWx0cy0+Y3VycGFnZSA9ICRyZXR1cm5pZDsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snbm90cHJldHR5J10pICkgJHJlc3VsdHMtPm5vdHByZXR0eSA9ICRwYXJhbXNbJ25vdHByZXR0eSddOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSApICRyZXN1bHRzLT5kZXRhaWx0ZW1wbGF0ZSA9ICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CiAgICAgICAgaWYoICgkdG1wID0gXGNnZV9wYXJhbTo6ZXhpc3RzKCRwYXJhbXMsJ2RldGFpbHBhZ2UnKSkgKSAkcmVzdWx0cy0+ZGV0YWlscGFnZSA9ICR0bXA7CiAgICAgICAgJGVudHJ5YXJyYXkgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCAhJHJlc3VsdHMtPkVPRiApIHsKICAgICAgICAgICAgJGVudHJ5YXJyYXlbXSA9ICRyZXN1bHRzLT5nZXRfcHJvZHVjdF9mb3JfZGlzcGxheSgpOwogICAgICAgICAgICAkcmVzdWx0cy0+TW92ZU5leHQoKTsKICAgICAgICB9CgogICAgICAgIC8vCiAgICAgICAgLy8gZ2l2ZSBldmVyeXRoaW5nIHRvIHNtYXJ0eQogICAgICAgIC8vCiAgICAgICAgaWYoIGlzc2V0KCRxdWVyeVsnaGllcmFyY2h5aWQnXSkgKSAkdHBsLT5hc3NpZ24oJ2FjdGl2ZV9oaWVyYXJjaHknLCRxdWVyeVsnaGllcmFyY2h5aWQnXSk7CiAgICAgICAgJHBhZ2luYXRpb24gPSAkcmVzdWx0cy0+Z2V0X3BhZ2luYXRpb24oKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2l0ZW1zJywkZW50cnlhcnJheSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdpdGVtY291bnQnLGNvdW50KCRlbnRyeWFycmF5KSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd0b3RhbGNvdW50JywkcGFnaW5hdGlvblsndG90YWxyb3dzJ10pOwogICAgICAgICR0cGwtPmFzc2lnbigncGFnZWNvdW50JywkcGFnaW5hdGlvblsncGFnZWNvdW50J10pOwogICAgICAgICR0cGwtPmFzc2lnbignY3VycGFnZScsJHBhZ2luYXRpb25bJ3BhZ2UnXSk7CiAgICAgICAgJHBhZ2UgPSAkcGFnaW5hdGlvblsncGFnZSddOwogICAgICAgIGlmKCAkcGFnZSA9PSAxICkgewogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdwcmV2bGluaycsJHRoaXMtPkxhbmcoJ3ByZXZwYWdlJykpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gMTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdmaXJzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdmaXJzdHBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdmaXJzdHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkcGFybXMpKTsKCiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgLSAxOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygncHJldnBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdwcmV2cGFnZV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgICAgIH0KCiAgICAgICAgaWYoICRwYWdlID09ICRyZXN1bHRzLT5udW1wYWdlcyApIHsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHBhcm1zID0gJHBhcmFtczsKICAgICAgICAgICAgJHBhcm1zWydwYWdlJ10gPSAkcmVzdWx0cy0+bnVtcGFnZXM7CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignbGFzdGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdsYXN0cGFnZScpLCRwYXJtcykpOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkZWZhdWx0JywkcmV0dXJuaWQsJHBhcm1zKSk7CiAgICAgICAgICAgICRwYXJtc1sncGFnZSddID0gJHBhZ2UgKyAxOwogICAgICAgICAgICAkdHBsLT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RlZmF1bHQnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnbmV4dHBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAgICAgJHRwbC0+YXNzaWduKCduZXh0cGFnZV91cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgICAgIH0KCiAgICAgICAgJHRwbC0+YXNzaWduKCdwYWdldGV4dCcsJHRoaXMtPkxhbmcoJ3BhZ2UnKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdvZicpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCd3ZWlnaHRfdW5pdHMnLHByb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwogICAgfQogICAgY2F0Y2goIEV4Y2VwdGlvbiAkZSApIHsKICAgICAgICBlY2hvICR0aGlzLT5EaXNwbGF5RXJyb3JNZXNzYWdlKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQp9CgokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gIENNUyBNYWRlIFNpbXBsZSB0byBhbGxvdyB1c2VycyB0byBjcmVhdGUsIG1hbmFnZQojICBhbmQgZGlzcGxheSBwcm9kdWN0cyBpbiBhIHZhcmlldHkgb2Ygd2F5cy4KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVmlzaXQgdGhlIENNU01TIEhvbWVwYWdlIGF0OiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBIb3dldmVyLCBhcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQKIyBhcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKIyBpbiBhbnkgTm9uIEdQTCB2ZXJzaW9uIG9mIENNUyBNYWRlIHNpbXBsZSwgb3IgaW4gYW55IHZlcnNpb24gb2YgQ01TCiMgTWFkZSBzaW1wbGUgdGhhdCBkb2VzIG5vdCBpbmRpY2F0ZSBjbGVhcmx5IGFuZCBvYnZpb3VzbHkgaW4gaXRzIGFkbWluCiMgc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiNFTkRfTElDRU5TRQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgojVGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3Byb2R1Y3RzJywkdGhpcy0+TGFuZygncHJvZHVjdHMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdmaWVsZGRlZnMnLCR0aGlzLT5MYW5nKCdmaWVsZGRlZnMnKSk7CiAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdoaWVyYXJjaHknLCR0aGlzLT5MYW5nKCdwcm9kdWN0X2hpZXJhcmNoeScpKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2NhdGVnb3JpZXMnLCR0aGlzLT5MYW5nKCdjYXRlZ29yaWVzJykpOwp9CgppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSkgewogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcigncHJlZnMnLCR0aGlzLT5MYW5nKCdwcmVmZXJlbmNlcycpKTsKfQplY2hvICR0aGlzLT5FbmRUYWJIZWFkZXJzKCk7CgojVGhlIGNvbnRlbnQgb2YgdGhlIHRhYnMKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkgewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcm9kdWN0cycsICRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX3Byb2R1Y3RzdGFiLnBocCcpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwoKICBlY2hvICR0aGlzLT5TdGFydFRhYignZmllbGRkZWZzJywgJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fZmllbGRkZWZzX3RhYi5waHAnKTsKICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2hpZXJhcmNoeScsICRwYXJhbXMpOwogIGluY2x1ZGUoX19ESVJfXy4nL2Z1bmN0aW9uLmFkbWluX2hpZXJhcmNoeV90YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdjYXRlZ29yaWVzJywgJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fY2F0ZWdvcmllc190YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkgewogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdwcmVmcycsJHBhcmFtcyk7CiAgaW5jbHVkZShfX0RJUl9fLicvZnVuY3Rpb24uYWRtaW5fcHJlZnN0YWIucGhwJyk7CiAgZWNobyAkdGhpcy0+RW5kVGFiKCk7Cn0KCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsK]]></data>
	</file>
	<file>
	  <filename>/action.defaulturl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCmlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkKICB7CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHQnLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydwYXJlbnQnXSkgKQogIHsKICAgICR0aGlzLT5Eb0FjdGlvbignaGllcmFyY2h5JywkaWQsJHBhcmFtcywkcmV0dXJuaWQpOwogIH0KZWxzZQogIHsKICAgICR0aGlzLT5Eb0FjdGlvbignZGV0YWlscycsICRpZCwgJHBhcmFtcywgJHJldHVybmlkKTsKICB9CgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.deletecategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpKSByZXR1cm47CgokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwokY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pICkgewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KJGNhdGlkID0gKGludCkkcGFyYW1zWydjYXRpZCddOwoKLy8gR2V0IHRoZSBjYXRlZ29yeSBkZXRhaWxzCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8nOwokcm93ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBhcnJheSggJGNhdGlkKSk7CgovLyBOb3cgcmVtb3ZlIGFueSBjYXRlZ29yeSBmaWVsZHMKJHF1ZXJ5IC0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKJHJlc3VsdHMgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgkY2F0aWQpKTsKaWYoIGlzX2FycmF5KCRyZXN1bHRzKSAmJiBjb3VudCgkcmVzdWx0cykgKSB7CiAgICBmb3JlYWNoKCAkcmVzdWx0cyBhcyAkb25lICkgewogICAgICAgIHN3aXRjaCgkb25lWydmaWVsZF90eXBlJ10pIHsKICAgICAgICBjYXNlICdpbWFnZSc6CiAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICRmaWxlcyA9IGFycmF5KCRyb3dbJ2ZpZWxkX3ZhbHVlJ10sJ3RodW1iXycuJHJvd1snZmllbGRfdmFsdWUnXSwncHJldmlld18nLiRyb3dbJ2ZpZWxkX3ZhbHVlJ10pOwogICAgICAgICAgICBmb3JlYWNoKCAkZmlsZXMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRmbiA9IGNtc19qb2luX3BhdGgocHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3J5X3VwbG9hZF9wYXRoKCRjYXRpZCksJG9uZSk7CiAgICAgICAgICAgICAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApIEB1bmxpbmsoJGZuKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/JzsKICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkKSk7Cn0KCi8vTm93IHJlbW92ZSB0aGUgY2F0ZWdvcnkKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCi8vQW5kIHJlbW92ZSBpdCBmcm9tIGFueSBlbnRyaWVzCiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkY2F0aWQpKTsKCiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfY2F0ZWdvcnlfZGVsZXRlZCcpKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletecategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYignY2F0ZWdvcmllcycpOwoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQppZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGlkJ10pICkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KaWYoICFpc3NldCgkcGFyYW1zWydmbGRuYW1lJ10pICkKewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX21pc3NpbmdwYXJhbScpKTsKICByZXR1cm47Cn0KCiMKIyBJbml0aWFsaXphdGlvbgojCiRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0aWQnXTsKJGZsZG5hbWUgPSB0cmltKCRwYXJhbXNbJ2ZsZG5hbWUnXSk7CgovLyBHZXQgdGhlIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGFiYXNlCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGlkLCRmbGRuYW1lKSk7CgovLyBEZWxldGUgYW55IGZpbGVzIHRoYXQgbWF5IGJlIGF0dGFjaGVkCnN3aXRjaCggJHJvd1snZmllbGRfdHlwZSddICkgewogIGNhc2UgJ2ZpbGUnOgogIGNhc2UgJ2ltYWdlJzoKICAgICRmaWxlcyA9IGFycmF5KCRyb3dbJ2ZpZWxkX3ZhbHVlJ10sJ3RodW1iXycuJHJvd1snZmllbGRfdmFsdWUnXSwncHJldmlld18nLiRyb3dbJ2ZpZWxkX3ZhbHVlJ10pOwogICAgZm9yZWFjaCggJGZpbGVzIGFzICRvbmUgKSB7CiAgICAgICAgJGZuID0gY21zX2pvaW5fcGF0aChwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcnlfdXBsb2FkX3BhdGgoJGNhdGlkKSwkb25lKTsKICAgICAgICBpZiggZmlsZV9leGlzdHMoJGZuKSApIEB1bmxpbmsoJGZuKTsKICAgIH0KfQoKLy8gRGVsZXRlIHRoZSByZWNvcmQKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkLCRmbGRuYW1lKSk7CgovLyBVcGRhdGUgdGhlIGNvdW50cwokcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzCiAgICAgICAgICAgICBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciAtIDEKICAgICAgICAgICBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gQU5EIGZpZWxkX29yZGVyID4gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGNhdGlkLCRyb3dbJ2ZpZWxkX29yZGVyJ10pKTsKCi8vIFJlZGlyZWN0CiR0aGlzLT5SZWRpcmVjdCgkaWQsJ2VkaXRjYXRlZ29yeWZpZWxkcycsJHJldHVybmlkLAoJCWFycmF5KCdjYXRpZCc9PiRjYXRpZCkpOwoKIwojIEVPRgojCj8+]]></data>
	</file>
	<file>
	  <filename>/action.deletefielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmaWVsZGRlZnMnKTsKCiRmZGlkID0gJyc7CmlmIChpc3NldCgkcGFyYW1zWydmZGlkJ10pKQp7CgkkZmRpZCA9ICRwYXJhbXNbJ2ZkaWQnXTsKfQoKLy8gR2V0IHRoZSBjYXRlZ29yeSBkZXRhaWxzCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIGlkID0gPyc7CiRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksIGFycmF5KCRmZGlkKSk7CgovL05vdyByZW1vdmUgdGhlIGNhdGVnb3J5CiRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBpZCA9ID8iOwokZGItPkV4ZWN1dGUoJHF1ZXJ5LCBhcnJheSgkZmRpZCkpOwoKLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGVudHJpZXMKJHF1ZXJ5ID0gIkRFTEVURSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIGZpZWxkZGVmX2lkID0gPyI7CiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmZGlkKSk7CgokZGItPkV4ZWN1dGUoJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBTRVQgaXRlbV9vcmRlciA9IChpdGVtX29yZGVyIC0gMSkgV0hFUkUgaXRlbV9vcmRlciA+ID8nLCBhcnJheSgkcm93WydpdGVtX29yZGVyJ10pKTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.deleteproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIHJldHVybjsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CgokY29tcGlkID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjb21waWQnKTsKJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPmRlbGV0ZV9ieV9pZCggJGNvbXBpZCApOwokc2VhcmNoID0gXGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKaWYoICRzZWFyY2ggKSB7CiAgICAkc2VhcmNoLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY29tcGlkLCAncHJvZHVjdCcgKTsKfQokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.details.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhldGVtcGxhdGUgPSAkdGhpcy0+ZmluZF9sYXlvdXRfdGVtcGxhdGUoJHBhcmFtcywnZGV0YWlsdGVtcGxhdGUnLCdQcm9kdWN0czo6RGV0YWlsIFZpZXcnKTsKJGNhY2hlX2lkID0gJ3xwZCcubWQ1KHNlcmlhbGl6ZSgkcGFyYW1zKSk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlLG51bGwsJGNhY2hlX2lkKTsKaWYoICEkdHBsLT5pc0NhY2hlZCgpICkgewogICAgJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5OwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3Byb2R1Y3RpZCddKSApIHsKICAgICAgICAkcXVlcnlbJ3Byb2R1Y3RpZCddID0gJHBhcmFtc1sncHJvZHVjdGlkJ107CiAgICB9CiAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydhbGlhcyddKSApIHsKICAgICAgICAkcXVlcnlbJ2FsaWFzJ10gPSAkcGFyYW1zWydhbGlhcyddOwogICAgfQogICAgJHJzID0gJHF1ZXJ5LT5leGVjdXRlKCk7CiAgICAkcnMtPmN1cnBhZ2UgPSAkcmV0dXJuaWQ7CiAgICBpZiggJHJzLT50b3RhbHJvd3MgPT0gMSApIHsKICAgICAgICAkb25lcm93ID0gJHJzLT5nZXRfcHJvZHVjdF9mb3JfZGlzcGxheSgpOwogICAgICAgIGlmKCAkb25lcm93LT5oaWVyYXJjaHlfaWQgPiAwICkgJHRwbC0+YXNzaWduKCdhY3RpdmVfaGllcmFyY2h5Jywkb25lcm93LT5oaWVyYXJjaHlfaWQpOwogICAgICAgICR0cGwtPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2N1cnJlbmN5X3N5bWJvbCcscHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKSk7CiAgICAgICAgJHRwbC0+YXNzaWduKCdlbnRyeScsJG9uZXJvdyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAvLyBwcm9kdWN0IG5vdCBmb3VuZCBmb3Igc29tZSByZWFzb24uCiAgICAgICAgJGFjdGlvbiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmQnLCdkb21zZycpOwogICAgICAgIHN3aXRjaCgkYWN0aW9uKSB7CiAgICAgICAgY2FzZSAnZG80MDQnOgogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXJyb3I0MDRFeGNlcHRpb24oJ3Byb2R1Y3Qgbm90IGZvdW5kJyk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdkbzMwMSc6CiAgICAgICAgICAgICRwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZHBhZ2UnLC0xKTsKICAgICAgICAgICAgaWYoICRwYWdlICE9ICcnICYmICRwYWdlICE9IC0xICkgY2dlX3JlZGlyZWN0OjpyZWRpcmVjdDMwMSgkcGFnZSk7CiAgICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaCB0byBkb21zZwoKICAgICAgICBjYXNlICdkb21zZyc6CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgJG1zZyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kbm90Zm91bmRtc2cnLCAkdGhpcy0+TGFuZygnZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCcpKTsKICAgICAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1zZyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9Cn0KCiR0cGwtPmRpc3BsYXkoKTs=]]></data>
	</file>
	<file>
	  <filename>/action.do_search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJGZpZWxkcyA9IGFycmF5KCk7CnsKICAgIC8vIGdldCBhbGwgb2YgdGhlIGZpZWxkIGRlZmluaXRpb25zCiAgICAvLyBhbmQgZmlsdGVyIHRoZW0gZm9yIHRoZSBvbmVzIHRoYXQgd2UgY2FuIHNlYXJjaCBvbi4KICAgICR0bXAgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKCk7CiAgICBpZiggY291bnQoJHRtcCkgKSB7CiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRtcCk7ICRpKysgKSB7CiAgICAgICAgICAgICRvYmogPSAkdG1wWyRpXTsKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRvYmotPnR5cGUsYXJyYXkoJ3RleHRib3gnLCdjaGVja2JveCcsJ3RleHRhcmVhJywnZHJvcGRvd24nKSkgKSB7CiAgICAgICAgICAgICAgICAkZmllbGRzWyRvYmotPm5hbWVdID0gJG9iajsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsJHJldHVybmlkKTsKJHRoZXRlbXBsYXRlID0gJ3N1bW1hcnlfJy4kdGhpcy0+R2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTVU1NQVJZX1RFTVBMQVRFKTsKJGRlc3RwYWdlID0gJHJldHVybmlkOwokZW50cnlhcnJheSA9ICcnOwokbnBhZ2VzID0gMDsKJGlubGluZSA9IDA7CgoKLy8KLy8gaGFuZGxlIHBhcmFtcwovLwppZiggaXNzZXQoJHBhcmFtc1snY2RfY2FuY2VsJ10pICkgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkZGVzdHBhZ2UpOwppZiggaXNzZXQoJHBhcmFtc1snY2Rfc2VyJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2NkX3NlcmNrJ10pICkgewogICAgJHNhbHQgPSBfX0RJUl9fOwogICAgaWYoIG1kNSgkc2FsdC4kcGFyYW1zWydjZF9zZXInXSkgPT0gJHBhcmFtc1snY2Rfc2VyY2snXSApIHsKICAgICAgICAkdG1wID0gdW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkcGFyYW1zWydjZF9zZXInXSkpOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgdW5zZXQoJHBhcmFtc1snY2Rfc2VyJ10sJHBhcmFtc1snY2Rfc2VyY2snXSk7CiAgICAgICAgICAgICRwYXJhbXMgPSBhcnJheV9tZXJnZSgkdG1wLCRwYXJhbXMpOwogICAgICAgIH0KICAgIH0KfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnl0ZW1wbGF0ZSddKSApICR0aGV0ZW1wbGF0ZSA9ICdzdW1tYXJ5XycuJHBhcmFtc1snc3VtbWFyeXRlbXBsYXRlJ107CmlmKCBpc3NldCgkcGFyYW1zWydjZF9ub3RwcmV0dHknXSkgKSB7CiAgICAkcGFyYW1zWydub3RwcmV0dHknXSA9ICRwYXJhbXNbJ2NkX25vdHByZXR0eSddOwogICAgdW5zZXQoJHBhcmFtc1snY2Rfbm90cHJldHR5J10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9kZXRhaWxwYWdlJ10pICkgewogICAgJHBhcmFtc1snZGV0YWlscGFnZSddID0gJHBhcmFtc1snY2RfZGV0YWlscGFnZSddOwogICAgdW5zZXQoJHBhcmFtc1snY2RfZGV0YWlscGFnZSddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snY2RfcGFnZWxpbWl0J10pICkgewogICAgJHBhcmFtc1sncGFnZWxpbWl0J10gPSAkcGFyYW1zWydjZF9wYWdlbGltaXQnXTsKICAgIHVuc2V0KCRwYXJhbXNbJ2NkX3BhZ2VsaW1pdCddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snY2Rfb3JpZ3BhZ2UnXSkgKSAkZGVzdHBhZ2UgPSAoaW50KSRwYXJhbXNbJ2NkX29yaWdwYWdlJ107CmlmKCBpc3NldCgkcGFyYW1zWydwYWdlbGltaXQnXSkgKSB7CiAgICAkcGFnZWxpbWl0ID0gKGludCkkcGFyYW1zWydwYWdlbGltaXQnXTsKICAgICRwYWdlbGltaXQgPSBtYXgoJHBhZ2VsaW1pdCwxKTsKICAgICRwYWdlbGltaXQgPSBtaW4oNTAwLCRwYWdlbGltaXQpOwp9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9zb3J0YnknXSkgKSB7CiAgICAkcGFyYW1zWydzb3J0YnknXSA9ICRwYXJhbXNbJ2NkX3NvcnRieSddOwogICAgdW5zZXQoJHBhcmFtc1snY2Rfc29ydGJ5J10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydjZF9zb3J0b3JkZXInXSkgKSB7CiAgICAkcGFyYW1zWydzb3J0b3JkZXInXSA9ICRwYXJhbXNbJ2NkX3NvcnRvcmRlciddOwogICAgdW5zZXQoJHBhcmFtc1snY2Rfc29ydG9yZGVyJ10pOwp9CmlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWxwYWdlJ10pICkgewogICAgJHN0ciA9IHRyaW0oJHBhcmFtc1snZGV0YWlscGFnZSddKTsKICAgIGlmKCAkc3RyICkgJHN0ciA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRzdHIpOwogICAgaWYoICRzdHIgKSAkZGV0YWlscGFnZSA9ICRzdHI7Cn0KCi8vCi8vIGhhbmRsZSBmb3JtIHN1Ym1pc3Npb24KLy8KdHJ5IHsKICAgIC8vIHRha2UgdGhlIHBhcmFtcyBwYXNzZWQgZnJvbSB0aGUgdGFnLCBhbmQvb3IgZm9ybSwgb3IgZnJvbSBhIHBhZ2luYXRpb24gbGluayBhbmQgYnVpbGQgYSBxdWVyeSBvYmplY3QKICAgICRwcm9kdWN0c19xdWVyeSA9IG5ldyBwcm9kdWN0c19xdWVyeTsKICAgIGZvcmVhY2goICRwYXJhbXMgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHByb2R1Y3RzX3F1ZXJ5WyRrZXldID0gJHZhbHVlOwogICAgICAgIH0KICAgICAgICBjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAvLyBpZ25vcmUgdGhpcyBlcnJvci4KICAgICAgICB9CiAgICB9CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RuYW1lJ10pICYmICRwYXJhbXNbJ2NkX3Byb2RuYW1lJ10pICRwcm9kdWN0c19xdWVyeVsncHJvZHVjdG5hbWVsaWtlJ10gPSB0cmltKCRwYXJhbXNbJ2NkX3Byb2RuYW1lJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RkZXNjJ10pICYmICRwYXJhbXNbJ2NkX3Byb2RkZXNjJ10pICRwcm9kdWN0c19xdWVyeVsnZGVzY2xpa2UnXSA9IHRyaW0oJHBhcmFtc1snY2RfcHJvZGRlc2MnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY2RfYWxsYW55J10pICkgJHByb2R1Y3RzX3F1ZXJ5Wyd1c2VvciddID0gJHBhcmFtc1snY2RfYWxsYW55J107CgogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NkX3Byb2RwcmljZV9taW4nXSkgfHwgaXNzZXQoJHBhcmFtc1snY2RfcHJvZHByaWNlX21heCddKSApIHsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snY2RfcHJvZHByaWNlX21pbiddKSApICRwcmljZV9taW4gPSAoZmxvYXQpdHJpbSgkcGFyYW1zWydjZF9wcm9kcHJpY2VfbWluJ10pOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kcHJpY2VfbWF4J10pICkgJHByaWNlX21heCA9IChmbG9hdCl0cmltKCRwYXJhbXNbJ2NkX3Byb2RwcmljZV9tYXgnXSk7CiAgICAgICAgJHByb2R1Y3RzX3F1ZXJ5WydwcmljZXJhbmdlJ10gPSAieyRwcmljZV9taW59OnskcHJpY2VfbWF4fSI7CiAgICB9CiAgICBlbHNlIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kcHJpY2UnXSkgJiYgJHBhcmFtc1snY2RfcHJvZHByaWNlJ10gIT0gLTEgKSB7CiAgICAgICAgaWYoIHN0cnBvcygkcGFyYW1zWydjZF9wcm9kcHJpY2UnXSwnOicpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgbGlzdCgkbWluLCRtYXgpID0gZXhwbG9kZSgnOicsdHJpbSgkcGFyYW1zWydjZF9wcm9kcHJpY2UnXSksMik7CiAgICAgICAgICAgICRtaW4gPSB0cmltKCRtaW4pOwogICAgICAgICAgICAkbWF4ID0gdHJpbSgkbWF4KTsKICAgICAgICAgICAgaWYoICRtaW4gIT0gJycgJiYgJG1heCAhPSAnJyApIHsKICAgICAgICAgICAgICAgICRtaW4gPSBmbG9hdHZhbCgkbWluKTsKICAgICAgICAgICAgICAgICRtYXggPSBmbG9hdHZhbCgkbWF4KTsKICAgICAgICAgICAgICAgICRwcm9kdWN0c19xdWVyeVsncHJpY2VyYW5nZSddID0gInskbWlufTp7JG1heH0iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRtaW4gIT0gJycgKSB7CiAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAkcHJvZHVjdHNfcXVlcnlbJ3ByaWNlcmFuZ2UnXSA9ICJ7JG1pbn06IjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkbWF4ICAhPSAnJyApIHsKICAgICAgICAgICAgICAgICRtYXggPSBmbG9hdHZhbCgkbWF4KTsKICAgICAgICAgICAgICAgICRwcm9kdWN0c19xdWVyeVsncHJpY2VyYW5nZSddID0gIjp7JG1heH0iOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kdmFsdWUnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ2NkX3Byb2R2YWx1ZSddKSApICRwYXJhbXNbJ2NkX3Byb2R2YWx1ZSddID0gdW5zZXJpYWxpemUoJHBhcmFtc1snY2RfcHJvZHZhbHVlJ10pOwogICAgJHRmaWVsZHMgPSBhcnJheV9rZXlzKCRmaWVsZHMpOwogICAgZm9yZWFjaCggJHRmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAkZmllbGRpZCA9ICRmaWVsZHNbJG9uZV0tPmlkOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydjZF9wcm9kdmFsdWUnXVskb25lXSkgJiYgJHBhcmFtc1snY2RfcHJvZHZhbHVlJ11bJG9uZV0gIT0gJy0xJyAmJiAhZW1wdHkoJHBhcmFtc1snY2RfcHJvZHZhbHVlJ11bJG9uZV0pICkgewogICAgICAgICAgICAkcHJvZHVjdHNfcXVlcnktPmFkZF9maWVsZF9leHByKCRmaWVsZGlkLHRyaW0oJHBhcmFtc1snY2RfcHJvZHZhbHVlJ11bJG9uZV0pKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQoKICAgICAgICAka2V5MSA9ICdjZF9wcm9kdmFsdWVfJy4kb25lLidfbWluJzsKICAgICAgICAka2V5MiA9ICdjZF9wcm9kdmFsdWVfJy4kb25lLidfbWF4JzsKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1ska2V5MV0pIHx8IGlzc2V0KCRwYXJhbXNbJGtleTJdKSApIHsKICAgICAgICAgICAgJHRkYXRhID0gYXJyYXkoJ21pbic9PicnLCdtYXgnPT4nJyk7CiAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWyRrZXkxXSkgKSAkdGRhdGFbJ21pbiddID0gKGZsb2F0KXRyaW0oJHBhcmFtc1ska2V5MV0pOwogICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1ska2V5Ml0pICkgJHRkYXRhWydtYXgnXSA9IChmbG9hdCl0cmltKCRwYXJhbXNbJGtleTJdKTsKICAgICAgICAgICAgaWYoICR0ZGF0YVsnbWluJ10gJiYgJHRkYXRhWydtYXgnXSApIHsKICAgICAgICAgICAgICAgIGlmKCAkdGRhdGFbJ21pbiddID4gJHRkYXRhWydtYXgnXSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gJHRkYXRhWydtYXgnXTsKICAgICAgICAgICAgICAgICAgICAkdGRhdGFbJ21heCddID0gJHRkYXRhWydtaW4nXTsKICAgICAgICAgICAgICAgICAgICAkdGRhdGFbJ21pbiddID0gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRwcm9kdWN0c19xdWVyeS0+YWRkX2ZpZWxkX2V4cHIoJGZpZWxkaWQsInskdGRhdGFbJ21pbiddfTp7JHRkYXRhWydtYXgnXX0iKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkdGRhdGFbJ21pbiddICkgewogICAgICAgICAgICAgICAgJHByb2R1Y3RzX3F1ZXJ5LT5hZGRfZmllbGRfZXhwcigkZmllbGRpZCwieyR0ZGF0YVsnbWluJ119OiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICR0ZGF0YVsnbWF4J10gKSB7CiAgICAgICAgICAgICAgICAkcHJvZHVjdHNfcXVlcnktPmFkZF9maWVsZF9leHByKCRpZWxkaWQsIjp7JHRkYXRhWydtaW4nXX0iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkcmVzdWx0cyA9ICRwcm9kdWN0c19xdWVyeS0+ZXhlY3V0ZSgpOwogICAgJHJlc3VsdHMtPmN1cnBhZ2UgPSAkcmV0dXJuaWQ7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snbm90cHJldHR5J10pICkgJHJlc3VsdHMtPm5vdHByZXR0eSA9ICRwYXJhbXNbJ25vdHByZXR0eSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RldGFpbHBhZ2UnXSkgKSAkcmVzdWx0cy0+ZGV0YWlscGFnZSA9ICRwYXJhbXNbJ2RldGFpbHBhZ2UnXTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydkZXRhaWx0ZW1wbGF0ZSddKSApICRyZXN1bHRzLT5kZXRhaWx0ZW1wbGF0ZSA9ICRwYXJhbXNbJ2RldGFpbHRlbXBsYXRlJ107CiAgICAkZW50cnlhcnJheSA9IGFycmF5KCk7CiAgICB3aGlsZSggISRyZXN1bHRzLT5FT0YgKSB7CiAgICAgICAgJGVudHJ5YXJyYXlbXSA9ICRyZXN1bHRzLT5nZXRfcHJvZHVjdF9mb3JfZGlzcGxheSgpOwogICAgICAgICRyZXN1bHRzLT5Nb3ZlTmV4dCgpOwogICAgfQoKICAgICRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkZW50cnlhcnJheSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3RvdGFsY291bnQnLCRyZXN1bHRzLT50b3RhbHJvd3MpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdwYWdlY291bnQnLCRyZXN1bHRzLT5udW1wYWdlcyk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2N1cnBhZ2UnLCRwcm9kdWN0c19xdWVyeVsncGFnZSddKTsKCiAgICAkc2VyID0gYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJHBhcmFtcykpOwogICAgJHNlcmNrID0gbWQ1KF9fRElSX18uJHNlcik7CiAgICAkcGFybXMgPSBhcnJheSgnY2Rfc2VyJz0+JHNlciwnY2Rfc2VyY2snPT4kc2VyY2spOwoKICAgICRwYWdlID0gJHByb2R1Y3RzX3F1ZXJ5WydwYWdlJ107CiAgICBpZiggJHBhZ2UgPT0gMSApIHsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkxhbmcoJ2ZpcnN0cGFnZScpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+TGFuZygncHJldnBhZ2UnKSk7CiAgICB9IGVsc2UgewogICAgICAgICRwYXJtc1sncGFnZSddID0gMTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2ZpcnN0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkb19zZWFyY2gnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnZmlyc3RwYWdlJyksJHBhcm1zKSk7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdmaXJzdHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCRwYXJtcykpOwoKICAgICAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlIC0gMTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3ByZXZsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCdwcmV2cGFnZScpLCRwYXJtcykpOwogICAgICAgICRzbWFydHktPmFzc2lnbigncHJldnBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgfQoKICAgIGlmKCAkcGFnZSA9PSAkcmVzdWx0cy0+bnVtcGFnZXMgKSB7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkxhbmcoJ2xhc3RwYWdlJykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignbmV4dGxpbmsnLCR0aGlzLT5MYW5nKCduZXh0cGFnZScpKTsKICAgIH0gZWxzZSB7CiAgICAgICAgJHBhcm1zWydwYWdlJ10gPSAkcmVzdWx0cy0+bnVtcGFnZXM7CiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdsYXN0bGluaycsJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdkb19zZWFyY2gnLCRyZXR1cm5pZCwkdGhpcy0+TGFuZygnbGFzdHBhZ2UnKSwkcGFybXMpKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdkb19zZWFyY2gnLCRyZXR1cm5pZCwkcGFybXMpKTsKICAgICAgICAkcGFybXNbJ3BhZ2UnXSA9ICRwYWdlICsgMTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ25leHRsaW5rJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCR0aGlzLT5MYW5nKCduZXh0cGFnZScpLCRwYXJtcykpOwogICAgICAgICRzbWFydHktPmFzc2lnbignbmV4dHBhZ2VfdXJsJywkdGhpcy0+Y3JlYXRlX3VybCgkaWQsJ2RvX3NlYXJjaCcsJHJldHVybmlkLCRwYXJtcykpOwogICAgfQoKICAgICRzbWFydHktPmFzc2lnbigncGFnZXRleHQnLCR0aGlzLT5MYW5nKCdwYWdlJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdvZnRleHQnLCR0aGlzLT5MYW5nKCdvZicpKTsKICAgICRzbWFydHktPmFzc2lnbignY3VycmVuY3lfc3ltYm9sJyxwcm9kdWN0X29wczo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpKTsKICAgICRzbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXRzJyxwcm9kdWN0X29wczo6Z2V0X3dlaWdodF91bml0cygpKTsKfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgZGllKCdnb3QgZXhjZXB0aW9uOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwp9CgovLwovLyBQcm9jZXNzIHRoZSB0ZW1wbGF0ZQovLwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJHRoZXRlbXBsYXRlKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.editcategory.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdjYXRlZ29yaWVzJyk7CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKCiR0YWJsZV9uYW1lID0gY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyc7CiRjYXRpZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY2F0aWQnKTsKJGNhdGVnb3J5ID0gWyAnaWQnPT4kY2F0aWQsJ25hbWUnPT5udWxsIF07CmlmKCAkY2F0aWQgPiAwICkgewoJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gJHRhYmxlX25hbWUgV0hFUkUgaWQgPSA/IjsKCSRjYXRlZ29yeSA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGNhdGlkKSk7Cn0KCmlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnc3VibWl0JykgKSB7CiAgICB0cnkgewogICAgICAgICRuYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCduYW1lJyk7CiAgICAgICAgaWYoICRuYW1lICkgewogICAgICAgICAgICBpZiggJGNhdGlkID4gMCApIHsKICAgICAgICAgICAgICAgICRzcWwgPSAiU0VMRUNUIGlkIEZST00gJHRhYmxlX25hbWUgV0hFUkUgbmFtZSA9ID8gQU5EIGlkICE9ID8iOwogICAgICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0T25lKCRzcWwsWyAkbmFtZSwgJGNhdGlkIF0gKTsKICAgICAgICAgICAgICAgIGlmKCAkdG1wID4gMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2NhdGVnb3J5ZXhpc3RzJykpOwoKICAgICAgICAgICAgICAgICRzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBTRVQgbmFtZSA9ID8sIG1vZGlmaWVkX2RhdGUgPSBOT1coKSBXSEVSRSBpZCA9ID8nOwogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRzcWwsIFsgJG5hbWUsICRjYXRpZCBdICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkc3FsID0gIlNFTEVDVCBpZCBGUk9NICR0YWJsZV9uYW1lIFdIRVJFIG5hbWUgPSA/IjsKICAgICAgICAgICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkc3FsLFsgJG5hbWUgXSApOwogICAgICAgICAgICAgICAgaWYoICR0bXAgPiAwICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkdGhpcy0+TGFuZygnY2F0ZWdvcnlleGlzdHMnKSk7CgogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyAobmFtZSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyxOT1coKSxOT1coKSknOwogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgWyAkbmFtZSBdICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgICAgICB9CiAgICB9CiAgICBjYXRjaCggXEV4Y2VwdGlvbiAkZSApIHsKCQllY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwoJfQp9Cgokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkY2F0ZWdvcnkpOwplY2hvICR0aGlzLT5DR1Byb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5LnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.editcategoryfields.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2NhdGVnb3JpZXMnKTsKCiRjYXRpZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY2F0aWQnKTsKaWYoICEkY2F0aWQgKSB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICByZXR1cm47Cn0KCi8vIEdldCB0aGUgaW5mbyBmb3IgdGhpcyBjYXRlZ29yeQokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgaWQgPSA/JzsKJGNhdGVnb3J5ID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRjYXRpZCkpOwokc21hcnR5LT5hc3NpZ24oJ2NhdGVnb3J5JywkY2F0ZWdvcnkpOwokdGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKCi8vIGdldCB0aGUgbGlzdCBvZiBmaWVsZHMgZm9yIHRoaXMgcHJvZHVjdAokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyBXSEVSRSBjYXRlZ29yeV9pZCA9ID8gT1JERVIgQlkgZmllbGRfb3JkZXIgQVNDJzsKJGZpZWxkcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5LCBbICRjYXRpZCBdKTsKJHRoZW1lID0gY21zX3V0aWxzOjpnZXRfdGhlbWVfb2JqZWN0KCk7CmZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRmaWVsZHMpOyAkaSsrICkgIHsKICAgIGlmKCAkZmllbGRzWyRpXVsnZmllbGRfb3JkZXInXSA+IDEgKXsKICAgICAgICAkZmllbGRzWyRpXVsnbW92ZV91cCddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ21vdmVjYXRlZ29yeWZpZWxkJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ21vdmVfdXAnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL3NvcnRfdXAuZ2lmJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnY2F0aWQnPT4kY2F0aWQsJ2Rpcic9Pid1cCcsJ2ZsZG5hbWUnPT4kZmllbGRzWyRpXVsnZmllbGRfbmFtZSddKSk7CiAgICB9CiAgICBpZiggJGkgPCBjb3VudCgkZmllbGRzKSAtIDEgKSB7CiAgICAgICAgJGZpZWxkc1skaV1bJ21vdmVfZG93biddID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ21vdmVjYXRlZ29yeWZpZWxkJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ21vdmVfZG93bicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb25zL3N5c3RlbS9zb3J0X2Rvd24uZ2lmJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdjYXRpZCc9PiRjYXRpZCwnZGlyJz0+J2Rvd24nLCdmbGRuYW1lJz0+JGZpZWxkc1skaV1bJ2ZpZWxkX25hbWUnXSkpOwogICAgfQp9CiRzbWFydHktPmFzc2lnbignZmllbGRzJywkZmllbGRzKTsKJHNtYXJ0eS0+YXNzaWduKCdjYXRpZCcsJGNhdGlkKTsKCiMgRGlzcGxheSBUZW1wbGF0ZQplY2hvICR0aGlzLT5DR1Byb2Nlc3NUZW1wbGF0ZSgnZWRpdGNhdGVnb3J5ZmllbGRzLnRwbCcpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.editfielddef.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CmlmICghJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFByb2R1Y3RzJykpIGV4aXQ7CiR0aGlzLT5TZXRDdXJyZW50VGFiKCdmaWVsZGRlZnMnKTsKCmlmKCBcY2dlX3BhcmFtOjpleGlzdHMoJHBhcmFtcywnY2FuY2VsJykgKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKJGZkaWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2ZkaWQnKTsKJHJvdyA9IFsnaWQnPT5udWxsLCAnbmFtZSc9Pm51bGwsJ3Byb21wdCc9Pm51bGwsJ3R5cGUnPT5udWxsLCdtYXhfbGVuZ3RoJz0+bnVsbCwnbmFtZSc9Pm51bGwsJ3B1YmxpYyc9PjEsJ29wdGlvbnMnPT5udWxsXTsKaWYoICRmZGlkID4gMCApIHsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIGlkID0gPyc7CiAgICAkdG1wID0gJGRiLT5HZXRSb3coJHF1ZXJ5LCBbICRmZGlkIF0gKTsKICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApICRyb3cgPSAkdG1wOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snc3VibWl0J10pKSB7CiAgICB0cnkgewogICAgICAgICRvbGRfcm93ID0gJHJvdzsKICAgICAgICAkcm93WyduYW1lJ10gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ25hbWUnKTsKICAgICAgICAkcm93Wydwcm9tcHQnXSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncHJvbXB0Jyk7CiAgICAgICAgJHJvd1snb3B0aW9ucyddID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdvcHRpb25zJyk7CiAgICAgICAgJHJvd1sndHlwZSddID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCd0eXBlJyk7CiAgICAgICAgJHJvd1sncHVibGljJ10gPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdwdWJsaWMnKTsKICAgICAgICAkcm93WydtYXhfbGVuZ3RoJ10gPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ21heF9sZW5ndGgnKTsKCiAgICAgICAgaWYoICEkcm93Wyd0eXBlJ10gKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycm9yX25vZmllbGR0eXBlJykpOwogICAgICAgIGlmKCAhJHJvd1snbmFtZSddICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdub25hbWVnaXZlbicpKTsKICAgICAgICBpZiggISR0aGlzLT5pc19hbGlhcygkcm93WyduYW1lJ10pICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkX25hbWUnKSk7CiAgICAgICAgaWYoICRyb3dbJ3R5cGUnXSA9PSAnc3Vic2NyaXB0aW9uJyAmJiAhJGZkaWQgJiYgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/JywgWyAkcm93Wyd0eXBlJ10gXSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnKTsKICAgICAgICB9CiAgICAgICAgaWYoICRyb3dbJ3R5cGUnXSA9PSAncXVhbnRpdHknICYmICEkZmRpZCAmJiAgJGRiLT5HZXRPbmUoJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIHR5cGUgPSA/JywgWyAkcm93Wyd0eXBlJ10gXSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbignZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCcpOwogICAgICAgIH0KICAgICAgICBpZiggJHJvd1snaWQnXSA8IDEgKSB7CiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSBmaWVsZGRlZiBuYW1lIGRvZXMgbm90IGV4aXN0LgogICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAgICAgJHRtcCA9IChpbnQpICRkYi0+R2V0T25lKCRzcWwsIFsgJHJvd1snbmFtZSddIF0gKTsKICAgICAgICAgICAgaWYoICR0bXAgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2Vycl9maWVsZGRlZl9leGlzdHMnKSk7CgogICAgICAgICAgICAvLyBpdHMgYW4gaW5zZXJ0CiAgICAgICAgICAgICRtYXggPSAkZGItPkdldE9uZSgnU0VMRUNUIG1heChpdGVtX29yZGVyKSArIDEgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnKTsKICAgICAgICAgICAgaWYoICEkbWF4ICkgJG1heCA9IDA7CgogICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIChuYW1lLCBwcm9tcHQsIHR5cGUsIG1heF9sZW5ndGgsIGl0ZW1fb3JkZXIsIG9wdGlvbnMsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sTk9XKCksTk9XKCkpJzsKICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSggJHNxbCwgWyAkcm93WyduYW1lJ10sICRyb3dbJ3Byb21wdCddLCAkcm93Wyd0eXBlJ10sICRyb3dbJ21heF9sZW5ndGgnXSwgJG1heCwgJHJvd1snb3B0aW9ucyddIF0gKTsKICAgICAgICAgICAgaWYoICEkZGJyICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignU1FMIEVSUk9SOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIGZpZWxkZGVmIG5hbWUgZG9lcyBub3QgZXhpc3QuCiAgICAgICAgICAgICRzcWwgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgbmFtZSA9ID8gQU5EIGlkICE9ID8nOwogICAgICAgICAgICAkdG1wID0gKGludCkgJGRiLT5HZXRPbmUoJHNxbCwgWyAkcm93WyduYW1lJ10sICRyb3dbJ2lkJ10gXSApOwogICAgICAgICAgICBpZiggJHRtcCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyX2ZpZWxkZGVmX2V4aXN0cycpKTsKCiAgICAgICAgICAgIC8vIGl0cyBhbiB1cGRhdGUKICAgICAgICAgICAgaWYoICRyb3dbJ3R5cGUnXSAhPSAkb2xkX3Jvd1sndHlwZSddICYmICgkb2xkX3Jvd1sndHlwZSddID09ICdpbWFnZScgfHwgJG9sZF9yb3dbJ3R5cGUnXSA9PSAnZmlsZScpICkgewogICAgICAgICAgICAgICAgLy8gdXNlZCB0byBiZSBhIGZpbGUgb3IgaW1hZ2UgZmllbGQuCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIFNFVCBuYW1lID0gPywgcHJvbXB0ID0gPywgdHlwZSA9ID8sIG1heF9sZW5ndGggPSA/LCBtb2RpZmllZF9kYXRlID0gTk9XKCksCiAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgPSA/LCBvcHRpb25zID0gPyBXSEVSRSBpZCA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCAkc3FsLCBbICRyb3dbJ25hbWUnXSwgJHJvd1sncHJvbXB0J10sICRyb3dbJ3R5cGUnXSwgJHJvd1snbWF4X2xlbmd0aCddLCAkcm93WydwdWJsaWMnXSwgJHJvd1snb3B0aW9ucyddLCAkZmRpZCBdICk7CiAgICAgICAgICAgIGlmKCAhJGRiciApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ1NRTCBFUlJPUjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJGUtPkdldE1lc3NhZ2UoKSk7CiAgICB9Cn0KCgojRGlzcGxheSB0ZW1wbGF0ZQokdHlwZXMgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRfdHlwZXMoKTsKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZCcsJHJvdyk7CiRzbWFydHktPmFzc2lnbigndHlwZXMnLCR0eXBlcyk7CmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdGZpZWxkZGVmLnRwbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.editproduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwokdGhpcy0+U2V0Q3VycmVudFRhYigncHJvZHVjdHMnKTsKCi8vCi8vIEEgdXRpbGl0eSBmdW5jdGlvbgovLwpmdW5jdGlvbiBnZXRfZmllbGRfZGVmKCRmaWVsZGRlZnMsJGlkKSB7CiAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkb25lZGVmICkgewogICAgaWYoICRvbmVkZWYtPmlkID09ICRpZCApIHJldHVybiAkb25lZGVmOwogIH0KICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIHByb2R1Y3RzX2RlbGV0ZV91cGxvYWRlZF9maWxlKCRkaXIsJGZpbGVuYW1lKQp7CiAgaWYoIGVtcHR5KCRmaWxlbmFtZSkgKSByZXR1cm47CgogICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRmaWxlbmFtZSk7CiAgQHVubGluayhjbXNfam9pbl9wYXRoKCRkaXIsJGZpbGVuYW1lKSk7CiAgQHVubGluayhjbXNfam9pbl9wYXRoKCRkaXIsJ3RodW1iXycuJGZpbGVuYW1lKSk7CiAgQHVubGluayhjbXNfam9pbl9wYXRoKCRkaXIsJ3ByZXZpZXdfJy4kZmlsZW5hbWUpKTsKfQoKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkgewogIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ25lZWRwZXJtaXNzaW9uJywgYXJyYXkoJ01vZGlmeSBQcm9kdWN0cycpKSk7CiAgcmV0dXJuOwp9CgppZiAoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKJGNvbXBpZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnY29tcGlkJyk7CiRwcm9kdWN0ID0gJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPmdldF9ieV9pZCggJGNvbXBpZCApOwoKJGZpZWxkYXJyYXkgPSBhcnJheSgpOwokdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwokZmllbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyh0cnVlKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkpIHsKICAgICRlcnJvcnMgPSBbXTsgLy8gb3V0c2lkZSBvZiB0cnkvY2F0Y2gKICAgIHRyeSB7CiAgICAgICAgJHByb2R1Y3QtPnNldF9uYW1lKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywncHJvZHVjdF9uYW1lJykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfcHJpY2UoXGNnZV9wYXJhbTo6Z2V0X2Zsb2F0KCRwYXJhbXMsJ3ByaWNlJykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfd2VpZ2h0KFxjZ2VfcGFyYW06OmdldF9mbG9hdCgkcGFyYW1zLCd3ZWlnaHQnKSk7CiAgICAgICAgJHByb2R1Y3QtPnNldF9za3UoXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdza3UnKSk7CiAgICAgICAgJHByb2R1Y3QtPnNldF9hbGlhcyhcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2FsaWFzJykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfZGV0YWlscyhcY2dlX3BhcmFtOjpnZXRfaHRtbCgkcGFyYW1zLCdkZXRhaWxzJykpOwogICAgICAgICRwcm9kdWN0LT5zZXRfc3RhdHVzKFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnc3RhdHVzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9zdGF0dXMnLCRwcm9kdWN0OjpTVEFUVVNfUFVCTElTSEVEKSkpOwogICAgICAgICRwcm9kdWN0LT5zZXRfdGF4YWJsZShcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCd0YXhhYmxlJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywxKSkpOwogICAgICAgICRwcm9kdWN0LT5zZXRfZXh0cmEoJ3NlYXJjaGFibGUnLFxjZ2VfcGFyYW06OmdldF9ib29sKCRwYXJhbXMsJ3NlYXJjaGFibGUnLDEpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X2RpZ2l0YWwoXGNnZV9wYXJhbTo6Z2V0X2Jvb2woJHBhcmFtcywnZGlnaXRhbCcpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X3VybChcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ3VybHNsdWcnKSk7CiAgICAgICAgJHByb2R1Y3QtPnNldF9vd25lcihcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ293bmVyJykpOwogICAgICAgICRoaWVyID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdoaWVyYXJjaHknKTsKICAgICAgICBpZiggJGhpZXIgKSAkaGllciA9IFsgJGhpZXIgXTsKICAgICAgICAkcHJvZHVjdC0+c2V0X2hpZXJhcmNoaWVzKCAkaGllciApOwogICAgICAgICRwcm9kdWN0LT5zZXRfY2F0ZWdvcmllcyggXGNnZV91dGlsczo6Z2V0X3BhcmFtKCAkcGFyYW1zLCAnY2F0ZWdvcmllcycgKSApOwoKICAgICAgICAvLyBwcm9jZXNzIHRoZSBhbGJ1bQogICAgICAgICRhbGJ1bSA9IG51bGw7CiAgICAgICAgaWYoIFxjZ2VfcGFyYW06OmV4aXN0cygkcGFyYW1zLCdhbGJ1bScpICkgewogICAgICAgICAgICAkdG1wID0gXGNnZV91dGlsczo6Z2V0X3BhcmFtKCRwYXJhbXMsJ2FsYnVtJyk7CiAgICAgICAgICAgICRhbGJ1bSA9IG51bGw7CiAgICAgICAgICAgIC8vIGdldCByaWQgb2YgZHVwbGljYXRlcywgYW5kIGVtcHR5IHZhbHVlcy4KICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICAgICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lX2ltYWdlICkgewogICAgICAgICAgICAgICAgICAgICRvbmVfaW1hZ2UgPSB0cmltKCRvbmVfaW1hZ2UpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkb25lX2ltYWdlICYmICghaXNfYXJyYXkoJGFsYnVtKSB8fCAhaW5fYXJyYXkoJG9uZV9pbWFnZSwkYWxidW0pKSApICRhbGJ1bVtdID0gJG9uZV9pbWFnZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkcHJvZHVjdC0+c2V0X2V4dHJhKCdhbGJ1bScsJGFsYnVtKTsKCiAgICAgICAgJGRlc3RkaXIgPSBwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfcGF0aCgkcHJvZHVjdC0+aWQpOwoKICAgICAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSkpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJF9SRVFVRVNUWyRpZC4nY3VzdG9tZmllbGQnXSBhcyAkaz0+JHYpIHsKICAgICAgICAgICAgICAgIC8vIGhhbmRsZSBmaWxlIGRlbGV0aW9ucwogICAgICAgICAgICAgICAgaWYgKHN0YXJ0c3dpdGgoJGssICdkZWxldGVmaWVsZC0nKSkgewogICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgZmllbGQgaW5kZXgKICAgICAgICAgICAgICAgICAgICAkZmlkID0gKGludCkgc3Vic3RyKCRrLCBzdHJsZW4oJ2RlbGV0ZWZpZWxkLScpKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBmaWVsZCB0eXBlCiAgICAgICAgICAgICAgICAgICAgJGRlZiA9IGdldF9maWVsZF9kZWYoJGZpZWxkZGVmcywkZmlkKTsKICAgICAgICAgICAgICAgICAgICBpZiggISRkZWYgKSBkaWUoJ2NvdWxkIG5vdCBnZXQgZmllbGQgZGVmIGZvciAnLiRmaWQpOwogICAgICAgICAgICAgICAgICAgICRjdXJfZmllbGRfdmFsdWUgPSAkcHJvZHVjdC0+Z2V0X2ZpZWxkX3ZhbHVlKCRmaWQpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJGN1cl9maWVsZF92YWx1ZSApIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRkZWYtPnR5cGUgKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaW1hZ2UnOgogICAgICAgICAgICAgICAgICAgICAgICAvLyBkZWxldGUgdGhlIGZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNfZGVsZXRlX3VwbG9hZGVkX2ZpbGUoJGRlc3RkaXIsJGN1cl9maWVsZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICRwcm9kdWN0LT5zZXRfZmllbGQoICRmaWQsIG51bGwgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3JlYWNoICgkX1JFUVVFU1RbJGlkLidjdXN0b21maWVsZCddIGFzICRrPT4kdikgewogICAgICAgICAgICAgICAgLy8gaGFuZGxlIG5ldyB2YWx1ZXMgKG9yIGhpZGRlbiB2YWx1ZXMpCiAgICAgICAgICAgICAgICBpZiAoc3RhcnRzd2l0aCgkaywgJ2ZpZWxkLScpKSB7IC8vIGVsc2UKICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIGZpZWxkIGluZGV4CiAgICAgICAgICAgICAgICAgICAgJGZpZCA9IChpbnQpIHN1YnN0cigkaywgNik7CgogICAgICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgZmllbGQgdHlwZQogICAgICAgICAgICAgICAgICAgICRkZWYgPSBnZXRfZmllbGRfZGVmKCRmaWVsZGRlZnMsJGZpZCk7CiAgICAgICAgICAgICAgICAgICAgaWYoICEkZGVmICkgewogICAgICAgICAgICAgICAgICAgICAgICBkaWUoJ2NvdWxkIG5vdCBnZXQgZmllbGQgZGVmIGZvciAnLiRmaWQpOwogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIC8vIGhhbmRsZSB0aGUgdXBsb2FkIChpZiBhbnkpCiAgICAgICAgICAgICAgICAgICAgJGN1cl9maWVsZF92YWx1ZSA9ICRwcm9kdWN0LT5nZXRfZmllbGRfdmFsdWUoICRmaWQgKTsKICAgICAgICAgICAgICAgICAgICBzd2l0Y2goICRkZWYtPnR5cGUgKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZmlsZSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnaW1hZ2UnOgogICAgICAgICAgICAgICAgICAgICAgICAkaGFuZGxlciA9IG5ldyBcY2dfZmlsZXVwbG9hZCgkaWQsJGRlc3RkaXIpOwogICAgICAgICAgICAgICAgICAgICAgICAkaGFuZGxlci0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9maWxldHlwZXMnKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkY3VyX2ZpZWxkX3ZhbHVlICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJlcyA9ICRoYW5kbGVyLT5jaGVja191cGxvYWQoJ2N1c3RvbWZpZWxkJywnZmllbGQtJy4kZmlkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnIgPSAkaGFuZGxlci0+Z2V0X2Vycm9yKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIGEgdmFsaWQgcmVwbGFjZW1lbnQgdXBsb2FkLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RzX2RlbGV0ZV91cGxvYWRlZF9maWxlKCRkZXN0ZGlyLCRjdXJfZmllbGRfdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdGRpcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNfZGlyKCRkZXN0ZGlyKSApIGRpZSgnZGlyZWN0b3J5IHN0aWxsIGRvZXMgbm90IGV4aXN0Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXMgPSAkaGFuZGxlci0+aGFuZGxlX3VwbG9hZCgnY3VzdG9tZmllbGQnLCcnLCdmaWVsZC0nLiRmaWQpOwogICAgICAgICAgICAgICAgICAgICAgICAkZXJyID0gJGhhbmRsZXItPmdldF9lcnJvcigpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggISRyZXMgJiYgJGVyciAhPSBjZ19maWxldXBsb2FkOjpOT0ZJTEUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3JzW10gPSBzcHJpbnRmKCIlcyAlczogJXMiLCR0aGlzLT5MYW5nKCdmaWVsZCcpLCRkZWYtPm5hbWUsICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJGVycikpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoICRyZXMgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaWxlIHVwbG9hZGVkLiAgJHJlcyBpcyB0aGUgbmV3IHZhbHVlLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByb2R1Y3QtPnNldF9maWVsZCgkZmlkLCRyZXMpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdxdWFudGl0eSc6CiAgICAgICAgICAgICAgICAgICAgICAgICR2ID0gKGludCkkdjsKICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSBtYXgoMCwkdik7CiAgICAgICAgICAgICAgICAgICAgICAgICRwcm9kdWN0LT5zZXRfZmllbGQoICRmaWQsICR2ICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdzdWJzY3JpcHRpb24nOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgogICAgICAgICAgICAgICAgICAgICAgICAvL2lmKCBpc19hcnJheSgkdikgKSAkdiA9IHNlcmlhbGl6ZSgkdik7CiAgICAgICAgICAgICAgICAgICAgICAgICRwcm9kdWN0LT5zZXRfZmllbGQoICRmaWQsICR2ICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICd0ZXh0Ym94JzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Ryb3Bkb3duJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdmaWxlbGluayc6CiAgICAgICAgICAgICAgICAgICAgICAgICRwcm9kdWN0LT5zZXRfZmllbGQoICRmaWQsICR2ICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgICBjYXNlICdjb21wYW55ZGlyJzoKICAgICAgICAgICAgICAgICAgICAgICAgJHYgPSAoaW50KSR2OwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJHYgPCAxICkgJHYgPSBudWxsOwogICAgICAgICAgICAgICAgICAgICAgICAkcHJvZHVjdC0+c2V0X2ZpZWxkKCAkZmlkLCAkdiApOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgZGllKCJ1bmtub3duIHR5cGU6ICIuJGRlZi0+dHlwZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPnNhdmUoICRwcm9kdWN0ICk7CgogICAgICAgICAgICAvLyBVcGRhdGUgc2VhcmNoIGluZGV4ID8/CiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X3NlYXJjaF9tb2R1bGUoKTsKICAgICAgICBpZiAoJG1vZHVsZSAhPSBGQUxTRSkgewogICAgICAgICAgICAkbW9kdWxlLT5EZWxldGVXb3JkcygkdGhpcy0+R2V0TmFtZSgpLCAkY29tcGlkLCAncHJvZHVjdCcpOwogICAgICAgICAgICBpZiggJHByb2R1Y3QtPmdldF9leHRyYSgnc2VhcmNoYWJsZScsMSkgJiYgJHByb2R1Y3QtPnN0YXR1cyA9PSAkcHJvZHVjdDo6U1RBVFVTX1BVQkxJU0hFRCApIHsKICAgICAgICAgICAgICAgICRtb2R1bGUtPkFkZFdvcmRzKCR0aGlzLT5HZXROYW1lKCksICRjb21waWQsICdwcm9kdWN0JywgaW1wbG9kZSgnICcsICR0aGlzLT5HZXRTZWFyY2hhYmxlVGV4dCgkcHJvZHVjdCkgKSApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggY291bnQoJGVycm9ycykgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPkxhbmcoJ2luZm9fZmllbGRwcm9ibGVtcycpKTsKCiAgICAgICAgLy8gYWxsIGRvbmUuCiAgICAgICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICAgIH0KICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgIC8vIGhhbmRsZSBlcnJvcnMuCiAgICAgICAgaWYoIGNvdW50KCRlcnJvcnMpICkgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3JzKTsKICAgICAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCRlLT5HZXRNZXNzYWdlKCkpOwogICAgfQp9CgovLwovLyBkaXNwbGF5IHNtYXJ0eSB0ZW1wbGF0ZQovLwoKJGZpZWxkYXJyYXkgPSBhcnJheSgpOwppZiAoY291bnQoJGZpZWxkZGVmcykgPiAwKSB7CiAgICAkc3Vic2NyaWJlX29wdHMgPSBhcnJheSgpOwogICAgJHN1YnNjcmliZV9vcHRzWy0xXSA9ICR0aGlzLT5MYW5nKCdub25lJyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ21vbnRobHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfbW9udGhseScpOwogICAgJHN1YnNjcmliZV9vcHRzWydxdWFydGVybHknXSA9ICR0aGlzLT5MYW5nKCdzdWJzY3JfcXVhcnRlcmx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ3NlbWlhbnVhbGx5J10gPSAkdGhpcy0+TGFuZygnc3Vic2NyX3NlbWlhbnVhbGx5Jyk7CiAgICAkc3Vic2NyaWJlX29wdHNbJ3llYXJseSddID0gJHRoaXMtPkxhbmcoJ3N1YnNjcl95ZWFybHknKTsKICAgICRzdWJzY3JpYmVfb3B0cyA9IGFycmF5X2ZsaXAoJHN1YnNjcmliZV9vcHRzKTsKCiAgICAkZXhwaXJlX29wdHMgPSBhcnJheSgpOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdub25lJyldID0gLTE7CiAgICAkZXhwaXJlX29wdHNbJHRoaXMtPkxhbmcoJ2V4cGlyZV9zaXhfbW9udGhzJyldID0gJzYnOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfb25lX3llYXInKV0gPSAnMTInOwogICAgJGV4cGlyZV9vcHRzWyR0aGlzLT5MYW5nKCdleHBpcmVfdHdvX3llYXInKV0gPSAnMjQnOwoKICAgICR3bW9wdHMgPSBhcnJheSgpOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnbm9uZScpXSA9ICdub25lJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2RlZmF1bHQnKV0gPSAnZGVmYXVsdCc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl91bCcpXSA9ICcwJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX3VjJyldID0gJzEnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fdXInKV0gPSAnMic7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9tbCcpXSA9ICczJzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX21jJyldID0gJzQnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbXInKV0gPSAnNSc7CiAgICAkd21vcHRzWyR0aGlzLT5MYW5nKCdhbGlnbl9sbCcpXSA9ICc2JzsKICAgICR3bW9wdHNbJHRoaXMtPkxhbmcoJ2FsaWduX2xjJyldID0gJzcnOwogICAgJHdtb3B0c1skdGhpcy0+TGFuZygnYWxpZ25fbHInKV0gPSAnOCc7CgogICAgZm9yZWFjaCAoJGZpZWxkZGVmcyBhcyAkZmllbGRkZWYpIHsKICAgICAgICAkZmllbGQgPSBuZXcgc3RkQ2xhc3MoKTsKCiAgICAgICAgJHZhbHVlID0gJHByb2R1Y3QtPmdldF9maWVsZF92YWx1ZSgkZmllbGRkZWYtPmlkKTsKCiAgICAgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF0pKSB7CiAgICAgICAgICAgICR2YWx1ZSA9ICRfUkVRVUVTVFskaWQuJ2N1c3RvbWZpZWxkJ11bJ2ZpZWxkLScuJGZpZWxkZGVmLT5pZF07CiAgICAgICAgfQoKICAgICAgICAkZmllbGQtPmlkID0gJGZpZWxkZGVmLT5pZDsKICAgICAgICAkZmllbGQtPm5hbWUgPSAkZmllbGRkZWYtPm5hbWU7CiAgICAgICAgJGZpZWxkLT50eXBlID0gJGZpZWxkZGVmLT50eXBlOwogICAgICAgICRmaWVsZC0+dmFsdWUgPSAkdmFsdWU7CiAgICAgICAgJGZpZWxkLT5wcm9tcHQgPSAkZmllbGRkZWYtPnByb21wdDsKICAgICAgICAkZmllbGQtPm5hbWVhdHRyID0gJGlkLidjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZC0+aWQuJ10nOwogICAgICAgIHN3aXRjaCAoJGZpZWxkZGVmLT50eXBlKSB7CiAgICAgICAgY2FzZSAnZGltZW5zaW9ucyc6CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbHVlKSAmJiAkdmFsdWUgKSAkdmFsdWUgPSB1bnNlcmlhbGl6ZSgkdmFsdWUpOwogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBhcnJheSgnbGVuZ3RoJz0+MCwnd2lkdGgnPT4wLCdoZWlnaHQnPT4wKTsKICAgICAgICAgICAgJGZpZWxkLT5wcm9tcHQgLj0gJyZuYnNwOygnLnByb2R1Y3Rfb3BzOjpnZXRfbGVuZ3RoX3VuaXRzKCkuJyknOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9CiAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnYWJicl9sZW5ndGgnKS4nOiZuYnNwJy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2xlbmd0aF0nLCR2YWx1ZVsnbGVuZ3RoJ10sMywzKS5wcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpLicmbmJzcCcuCiAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnYWJicl93aWR0aCcpLic6Jm5ic3AnLiR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bd2lkdGhdJywkdmFsdWVbJ3dpZHRoJ10sMywzKS5wcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpLicmbmJzcCcuCiAgICAgICAgICAgICAgICAkdGhpcy0+TGFuZygnYWJicl9oZWlnaHQnKS4nOiZuYnNwJy4kdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2hlaWdodF0nLCR2YWx1ZVsnaGVpZ2h0J10sMywzKS5wcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpLicmbmJzcCc7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94ID0KICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSInIC4gJGlkIC4gJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScgLiAnIiB2YWx1ZT0iZmFsc2UiIC8+JyAuCiAgICAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCAndHJ1ZScsICR2YWx1ZSApOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICR2YWx1ZSwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZpZWxkZGVmLT5vcHRpb25zLCAtMSwgJHZhbHVlICk7CiAgICAgICAgICAgICRmaWVsZC0+b3B0aW9ucyA9IGFycmF5X2ZsaXAoJGZpZWxkZGVmLT5vcHRpb25zKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ZpbGVsaW5rJzoKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2ZpbGUnOgogICAgICAgICAgICAkZmllbGQtPmRlbGV0ZSA9ICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnY3VzdG9tZmllbGRbZGVsZXRlZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLDApOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnLDUwKTsKICAgICAgICAgICAgJGZpZWxkLT5oaWRkZW4gPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCR2YWx1ZSk7CiAgICAgICAgICAgICRmaWVsZC0+dXJsID0gbnVsbDsKICAgICAgICAgICAgaWYgKCR2YWx1ZSkgewogICAgICAgICAgICAgICAgJGZpZWxkLT51cmwgPSBwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfdXJsKCRjb21waWQpLiIvJHZhbHVlIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnaW1hZ2UnOgogICAgICAgICAgICAkZmllbGQtPnVybCA9IG51bGw7CiAgICAgICAgICAgIGlmICgkdmFsdWUpIHsKICAgICAgICAgICAgICAgICRmaWVsZC0+dXJsID0gcHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3VybCgkY29tcGlkKS4iLyR2YWx1ZSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGZpZWxkLT5kZWxldGUgPSAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2N1c3RvbWZpZWxkW2RlbGV0ZWZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICAxLDApOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCA9ICR0aGlzLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCcnLDUwKTsKICAgICAgICAgICAgJGZpZWxkLT5oaWRkZW4gPSAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ10nLCR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdzdWJzY3JpcHRpb24nOgogICAgICAgICAgICBpZiggIWlzX2FycmF5KCR2YWx1ZSkgKSAkdmFsdWUgPSBhcnJheSgncGF5cGVyaW9kJz0+LTEsJ2RlbHBlcmlvZCc9Pi0xLCdleHBpcmUnPT4xKTsKICAgICAgICAgICAgaWYoICFpc3NldCgkdmFsdWVbJ3BheXBlcmlvZCddKSApICR2YWx1ZVsncGF5cGVyaW9kJ10gPSAtMTsKICAgICAgICAgICAgaWYoICFpc3NldCgkdmFsdWVbJ2RlbHBlcmlvZCddKSApICR2YWx1ZVsnZGVscGVyaW9kJ10gPSAtMTsKICAgICAgICAgICAgaWYoICFpc3NldCgkdmFsdWVbJ2V4cGlyZSddKSApICR2YWx1ZVsnZXhwaXJlJ10gPSAtMTsKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+TGFuZygnc3Vic2NyX3BheXBlcmlvZCcpLic6Jm5ic3A7JzsKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggLj0gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjdXN0b21maWVsZFtmaWVsZC0nLiRmaWVsZGRlZi0+aWQuJ11bcGF5cGVyaW9kXScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3JpYmVfb3B0cywgLTEsICR2YWx1ZVsncGF5cGVyaW9kJ10pOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCAuPSAnPGJyLz4nLiR0aGlzLT5MYW5nKCdzdWJzY3JfZGVscGVyaW9kJykuJzombmJzcDsnOwogICAgICAgICAgICAkZmllbGQtPmlucHV0X2JveCAuPSAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXVtkZWxwZXJpb2RdJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN1YnNjcmliZV9vcHRzLCAtMSwgJHZhbHVlWydkZWxwZXJpb2QnXSk7CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICc8YnIvPicuJHRoaXMtPkxhbmcoJ3N1YnNjcl9leHBpcnknKS4nOiZuYnNwOyc7CiAgICAgICAgICAgICRmaWVsZC0+aW5wdXRfYm94IC49ICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddW2V4cGlyZV0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXhwaXJlX29wdHMsIC0xLCAkdmFsdWVbJ2V4cGlyZSddKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3F1YW50aXR5JzoKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICR2YWx1ZSwgNCwgNCk7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdjb21wYW55ZGlyJzoKICAgICAgICAgICAgJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5JywnMS4xOScpOwogICAgICAgICAgICBpZiggJGNkbW9kICkgewogICAgICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY3VzdG9tZmllbGRbZmllbGQtJy4kZmllbGRkZWYtPmlkLiddJywkdmFsdWUsMTAsMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNlaG9sZGVyPVwieyR0aGlzLT5MYW5nKCdjZF9hdXRvY29tcGxldGUnKX1cIiB0aXRsZT1cInskdGhpcy0+TGFuZygndGl0bGVfY2RhdXRvY29tcGxldGUnKX1cIiIpOwogICAgICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAnPHNwYW4gY2xhc3M9ImNkYXV0b2NvbXBsZXRlIj4nLiRmaWVsZC0+aW5wdXRfYm94Lic8L3NwYW4+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAndGV4dGJveCc6CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgJGZpZWxkLT5pbnB1dF9ib3ggPSAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2N1c3RvbWZpZWxkW2ZpZWxkLScuJGZpZWxkZGVmLT5pZC4nXScsICR2YWx1ZSwgODAsIDI1NSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgJGZpZWxkYXJyYXlbXSA9ICRmaWVsZDsKICAgIH0KfQoKJGFsbGNhdGVnb3JpZXMgPSBccHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoKTsKJGNhdGFycmF5ID0gYXJyYXkoKTsKaWYoIGlzX2FycmF5KCRhbGxjYXRlZ29yaWVzKSAmJiBjb3VudCgkYWxsY2F0ZWdvcmllcykgKSB7CiAgICBmb3JlYWNoKCAkYWxsY2F0ZWdvcmllcyBhcyAkb25lICkgewogICAgICAgICRjYXRhcnJheVskb25lLT5pZF0gPSAkb25lLT5uYW1lOwogICAgfQp9CiRzZWxjYXRhcnJheSA9ICRwcm9kdWN0LT5jYXRlZ29yaWVzOwoKJHRwbCA9ICR0aGlzLT5DcmVhdGVTbWFydHlUZW1wbGF0ZSgnZWRpdHByb2R1Y3QudHBsJyk7CiR0cGwtPmFzc2lnbigncHJvZHVjdCcsJHByb2R1Y3QpOwokdHBsLT5hc3NpZ24oJ3Byb2R1Y3RfbmFtZScsJHByb2R1Y3QtPm5hbWUpOwokdHBsLT5hc3NpZ24oJ3ByaWNlJywkcHJvZHVjdC0+cHJpY2UpOwokdHBsLT5hc3NpZ24oJ3dlaWdodCcsJHByb2R1Y3QtPndlaWdodCk7CiR0cGwtPmFzc2lnbignc2t1JywkcHJvZHVjdC0+c2t1KTsKJHRwbC0+YXNzaWduKCd1cmxzbHVnJywkcHJvZHVjdC0+dXJsKTsKJHRwbC0+YXNzaWduKCdzdGFydGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2VkaXRwcm9kdWN0JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwokdHBsLT5hc3NpZ24oJ2VuZGZvcm0nLCAkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+YXNzaWduKCdjdXJyZW5jeV9zeW1ib2wnLHByb2R1Y3Rfb3BzOjpnZXRfY3VycmVuY3lfc3ltYm9sKCkpOwokdHBsLT5hc3NpZ24oJ2lucHV0cHJpY2UnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3ByaWNlJywgc3ByaW50ZigiJS4yZiIsJHByb2R1Y3QtPnByaWNlKSwgMTAsIDEyKSk7CiR0cGwtPmFzc2lnbignd2VpZ2h0dW5pdHMnLHByb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCkpOwokdHBsLT5hc3NpZ24oJ2xlbmd0aHVuaXRzJyxwcm9kdWN0X29wczo6Z2V0X2xlbmd0aF91bml0cygpKTsKJHRwbC0+YXNzaWduKCdpbnB1dGFsaWFzJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYWxpYXMnLCRwcm9kdWN0LT5hbGlhcyw0MCwyNTUpKTsKJHRwbC0+YXNzaWduKCdkZXRhaWxzdGV4dCcsICR0aGlzLT5MYW5nKCdkZXRhaWxzJykpOwokdHBsLT5hc3NpZ24oJ2lucHV0ZGV0YWlscycsICR0aGlzLT5DcmVhdGVUZXh0QXJlYSh0cnVlLCAkaWQsICRwcm9kdWN0LT5kZXRhaWxzLCAnZGV0YWlscycsICcnLCAnJywgJycsICcnLCAnODAnLCAnNScpKTsKCmlmKCBjb3VudCgkY2F0YXJyYXkpID4gMCApIHsKICAgICRuID0gY291bnQoJGNhdGFycmF5KS80OwogICAgJG4gPSBtaW4oJG4sMjApOwogICAgJG4gPSBtYXgoJG4sNSk7CiAgICAkdHBsLT5hc3NpZ24oJ2FsbF9jYXRlZ29yaWVzJywkY2F0YXJyYXkpOwogICAgJHRwbC0+YXNzaWduKCdzZWxfY2F0ZWdvcmllcycsJHNlbGNhdGFycmF5KTsKfQokdHBsLT5hc3NpZ24oJ3RheGFibGV0ZXh0JywkdGhpcy0+TGFuZygndGF4YWJsZScpKTsKJHRwbC0+YXNzaWduKCdpbnB1dHRheGFibGUnLAkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3RheGFibGUnLDEsJHByb2R1Y3QtPnRheGFibGUpKTsKCiRoaWVyYXJjaHlfaXRlbXMgPSAkdGhpcy0+QnVpbGRIaWVyYXJjaHlMaXN0KCk7CiR0cGwtPmFzc2lnbignaGllcmFyY2h5X2l0ZW1zJywkaGllcmFyY2h5X2l0ZW1zKTsKJHRwbC0+YXNzaWduKCdoaWVyYXJjaHlfcG9zJywkcHJvZHVjdC0+Zmlyc3RfaGllcmFyY2h5KTsKCiRzdGF0dXNlcyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwdWJsaXNoZWQnKT0+J3B1Ymxpc2hlZCcsCgkJICAkdGhpcy0+TGFuZygnZHJhZnQnKT0+J2RyYWZ0JywKCQkgICR0aGlzLT5MYW5nKCdkaXNhYmxlZCcpPT4nZGlzYWJsZWQnKTsKJHRwbC0+YXNzaWduKCdzdGF0dXN0ZXh0JywkdGhpcy0+TGFuZygnc3RhdHVzJykpOwokdHBsLT5hc3NpZ24oJ2lucHV0c3RhdHVzJywgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdzdGF0dXMnLCRzdGF0dXNlcywtMSwkcHJvZHVjdC0+c3RhdHVzKSk7CgokdHBsLT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokdHBsLT5hc3NpZ24oJ2NvbXBpZCcsJHByb2R1Y3QtPmlkKTsKJHRwbC0+YXNzaWduKCdoaWRkZW4nLG51bGwpOyAvLyByZW1vdmUgbWUuCiR0cGwtPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsIGxhbmcoJ3N1Ym1pdCcpKSk7CiR0cGwtPmFzc2lnbignY2FuY2VsJywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2NhbmNlbCcsIGxhbmcoJ2NhbmNlbCcpKSk7CiR0cGwtPmFzc2lnbignY3VzdG9tZmllbGRzJywgJGZpZWxkYXJyYXkpOwokdHBsLT5hc3NpZ24oJ2N1c3RvbWZpZWxkc2NvdW50JywgY291bnQoJGZpZWxkYXJyYXkpKTsKJHRwbC0+YXNzaWduKCdzdGFydHRhYmhlYWRlcnMnLCR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSk7CiR0cGwtPmFzc2lnbigndGFiaGVhZGVyX21haW4nLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ21haW4nLCR0aGlzLT5MYW5nKCdwcm9kdWN0X2luZm8nKSkpOwokdHBsLT5hc3NpZ24oJ3RhYmhlYWRlcl9maWVsZHMnLCR0aGlzLT5TZXRUYWJIZWFkZXIoJ2ZpZWxkcycsJHRoaXMtPkxhbmcoJ2ZpZWxkcycpKSk7CiR0cGwtPmFzc2lnbigndGFiaGVhZGVyX2FkdmFuY2VkJywkdGhpcy0+U2V0VGFiSGVhZGVyKCdhZHZhbmNlZCcsJHRoaXMtPkxhbmcoJ2FkdmFuY2VkJykpKTsKJHRwbC0+YXNzaWduKCdlbmR0YWJoZWFkZXJzJywkdGhpcy0+RW5kVGFiSGVhZGVycygpKTsKJHRwbC0+YXNzaWduKCdzdGFydHRhYmNvbnRlbnQnLCR0aGlzLT5TdGFydFRhYkNvbnRlbnQoKSk7CiR0cGwtPmFzc2lnbigndGFiX21haW4nLCR0aGlzLT5TdGFydFRhYignbWFpbicpKTsKJHRwbC0+YXNzaWduKCd0YWJfZmllbGRzJywkdGhpcy0+U3RhcnRUYWIoJ2ZpZWxkcycpKTsKJHRwbC0+YXNzaWduKCd0YWJfYWR2YW5jZWQnLCR0aGlzLT5TdGFydFRhYignYWR2YW5jZWQnKSk7CiR0cGwtPmFzc2lnbignZW5kdGFiJywkdGhpcy0+RW5kVGFiKCkpOwokdHBsLT5hc3NpZ24oJ2VuZHRhYmNvbnRlbnQnLCR0aGlzLT5FbmRUYWJDb250ZW50KCkpOwoKJGZldV9vd25lcmxpc3QgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmV1X293bmVybGlzdCgpOwokdHBsLT5hc3NpZ24oJ2ZldV9vd25lcmxpc3QnLCRmZXVfb3duZXJsaXN0KTsKJHRwbC0+ZGlzcGxheSgpOwo=]]></data>
	</file>
	<file>
	  <filename>/action.exportcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ3Byb2R1Y3RzJyk7CmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKJGFsbGNhdHMgPSAnJzsKJGFsbGZpZWxkcyA9ICcnOwokb3BzID0gYXJyYXkoJ2V4cG9ydGRyYWZ0Jz0+MSwKICAgICAgICAgICAgICdleHBvcnRjYXRzJz0+MSwKICAgICAgICAgICAgICdleHBvcnRmaWVsZHMnPT4xLAogICAgICAgICAgICAgJ2V4cG9ydG9wdGlvbnMnPT4xLAogICAgICAgICAgICAgJ2V4cG9ydGRlbGltJz0+JywnKTsKCmZ1bmN0aW9uIHF1b3RlKCRzdHIpCnsKICAgIGlmKCBpc19zdHJpbmcoJHN0cikgKSByZXR1cm4gJyInLiRzdHIuJyInOwp9CgpmdW5jdGlvbiBnZXRfYXR0cl9wYXJ0cyggJGluX2tleSApCnsKICAgIC8vIGtleSBpcyBpbiB0aGUgZm9ybWF0IEFUVFI6IyNfeHh4LiAgbmVlZCB0aGUgaW5kZXggYW5kIHRoZSB4eHggcG9ydGlvbi4KICAgICRwYXJ0cyA9IGV4cGxvZGUoJ18nLCRpbl9rZXksMik7CiAgICAka2V5ID0gJGlkeCA9IG51bGw7CiAgICBpZiggY291bnQoJHBhcnRzKSAhPSAyICkgcmV0dXJuOwoKICAgICRrZXkgPSB0cmltKCRwYXJ0c1sxXSk7CiAgICAkaWR4ID0gKGludCkgc3Vic3RyKCRwYXJ0c1swXSw1KTsKICAgIHJldHVybiBbICRpZHgsICRrZXkgXTsKfQoKZnVuY3Rpb24gdG9fZmxhdF9hcnJheSgkcHJvZHVjdCwkbWFwKQp7CiAgICBzdGF0aWMgJF9jYXRzID0gLTE7CiAgICBpZiggJF9jYXRzID09IC0xICkgICRfY2F0cyA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKCBUUlVFICk7CiAgICBzdGF0aWMgJF9kZWZzID0gLTE7CiAgICBpZiggJF9kZWZzID09IC0xICkgJF9kZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyh0cnVlLHRydWUsdHJ1ZSk7CgogICAgJG91dCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkbWFwIGFzICRrZXkgKSB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ0ZMQUcnOgogICAgICAgICAgICAkb3V0W10gPSAnUCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICAkb3V0W10gPSBxdW90ZSgkcHJvZHVjdC0+bmFtZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3NrdSc6CiAgICAgICAgICAgICRvdXRbXSA9IHF1b3RlKCRwcm9kdWN0LT5za3UpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdkZXRhaWxzJzoKICAgICAgICAgICAgJG91dFtdID0gcXVvdGUoJHByb2R1Y3QtPmRldGFpbHMpOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdwcmljZSc6CiAgICAgICAgICAgICRvdXRbXSA9ICRwcm9kdWN0LT5wcmljZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY3JlYXRlX2RhdGUnOgogICAgICAgICAgICAkb3V0W10gPSAkcHJvZHVjdC0+Y3JlYXRlX2RhdGU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ21vZGlmaWVkX2RhdGUnOgogICAgICAgICAgICAkb3V0W10gPSAkcHJvZHVjdC0+bW9kaWZpZWRfZGF0ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAndGF4YWJsZSc6CiAgICAgICAgICAgICRvdXRbXSA9ICRwcm9kdWN0LT50YXhhYmxlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdzdGF0dXMnOgogICAgICAgICAgICAkb3V0W10gPSBxdW90ZSgkcHJvZHVjdC0+c3RhdHVzKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnd2VpZ2h0JzoKICAgICAgICAgICAgJG91dFtdID0gJHByb2R1Y3QtPndlaWdodDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ0hJRVInOgogICAgICAgICAgICAkdmFsID0gJyc7CiAgICAgICAgICAgIGlmKCAkcHJvZHVjdC0+aGllcmFyY2h5X2lkICkgewogICAgICAgICAgICAgICAgJGhpZXIgPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJHByb2R1Y3QtPmhpZXJhcmNoeV9pZCk7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJGhpZXIpICYmIGNvdW50KCRoaWVyKSApIHsKICAgICAgICAgICAgICAgICAgICAkdmFsID0gc3RyX3JlcGxhY2UoJ3wnLCc+PicsJGhpZXJbJ2xvbmdfbmFtZSddKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkb3V0W10gPSBxdW90ZSgkdmFsKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ09QVElPTlMnOgogICAgICAgICAgICAvLyBTZXQ6QXR0cjphZGosc2t1LS0KICAgICAgICAgICAgJHZhbCA9ICcnOwogICAgICAgICAgICBpZiggaXNzZXQoJHByb2R1Y3QtPmF0dHJpYnV0ZXMpICYmIGNvdW50KCRwcm9kdWN0LT5hdHRyaWJ1dGVzKSApIHsKICAgICAgICAgICAgICAgICRpZHggPSAwOwogICAgICAgICAgICAgICAgJG9wdHMgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJHByb2R1Y3QtPmF0dHJpYnV0ZXMgYXMgJG9wdGlvbiApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAkdG1wW10gPSBxdW90ZSgkb3B0aW9uWyd0ZXh0J10pOwogICAgICAgICAgICAgICAgICAgICR0bXBbXSA9ICRvcHRpb25bJ2FkanVzdG1lbnQnXTsKICAgICAgICAgICAgICAgICAgICAkdG1wW10gPSBxdW90ZSgkb3B0aW9uWydza3UnXSk7CiAgICAgICAgICAgICAgICAgICAgJHRtcFtdID0gKGludCkgJG9wdGlvblsncW9oJ107CiAgICAgICAgICAgICAgICAgICAgJG9wdHNbXSA9IGltcGxvZGUoJzonLCR0bXApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHZhbCA9IGltcGxvZGUoJy0tJywkb3B0cyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG91dFtdID0gJHZhbDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRrZXksJ0NBVDonKSApIHsKICAgICAgICAgICAgICAgIC8vIGNhdGVnb3JpZXMgYXJlIG9ubHkgMSBvciAwCiAgICAgICAgICAgICAgICAkdmFsID0gMDsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcHJvZHVjdC0+Y2F0ZWdvcmllcykgJiYgY291bnQoJHByb2R1Y3QtPmNhdGVnb3JpZXMpICkgewogICAgICAgICAgICAgICAgICAgICRuYW1lID0gc3Vic3RyKCRrZXksNCk7CiAgICAgICAgICAgICAgICAgICAgJGlkID0gJF9jYXRzWyRuYW1lXS0+aWQ7CiAgICAgICAgICAgICAgICAgICAgaWYoIGluX2FycmF5KCAkaWQsICRwcm9kdWN0LT5jYXRlZ29yaWVzICkgKSAkdmFsID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRvdXRbXSA9ICR2YWw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZWlmKCBzdGFydHN3aXRoKCRrZXksJ0ZJRUxEOicpICkgewogICAgICAgICAgICAgICAgJHZhbCA9ICcnOwogICAgICAgICAgICAgICAgbGlzdCgkdDAsJHQxLCRuYW1lKSA9IGV4cGxvZGUoJzonLCRrZXksMyk7CiAgICAgICAgICAgICAgICAkZGVmID0gJF9kZWZzWyRuYW1lXTsKICAgICAgICAgICAgICAgICRmbGRfaWQgPSAkZGVmLT5pZDsKICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkcHJvZHVjdC0+ZmllbGRfdmFscykgJiYgY291bnQoJHByb2R1Y3QtPmZpZWxkX3ZhbHMpICYmIGFycmF5X2tleV9leGlzdHMoJGZsZF9pZCwkcHJvZHVjdC0+ZmllbGRfdmFscykgKSB7CiAgICAgICAgICAgICAgICAgICAgJGluX3ZhbCA9ICRwcm9kdWN0LT5maWVsZF92YWxzWyRmbGRfaWRdOwogICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJGRlZi0+dHlwZSApIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICdkaW1lbnNpb25zJzoKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICdsOicuJGluX3ZhbFsnbGVuZ3RoJ10uJyx3OicuJGluX3ZhbFsnd2lkdGgnXS4nLGg6Jy4kaW5fdmFsWydoZWlnaHQnXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3Vic2NyaXB0aW9uJzoKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICcnOyAvLyBzdWJzY3JpcHRpb24gaW5mbyBub3Qgb3V0cHV0LG9yIHJlYWQuLi4gZm9yIG5vdy4KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgJHZhbCA9ICRpbl92YWw7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJG91dFtdID0gcXVvdGUoJHZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZWlmKCBzdGFydHN3aXRoKCRrZXksJ0FUVFI6JykgKSB7CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHByb2R1Y3QtPmF0dHJpYnV0ZXMpICYmIGNvdW50KCRwcm9kdWN0LT5hdHRyaWJ1dGVzKSApIHsKICAgICAgICAgICAgICAgICAgICBsaXN0KCRhdHRyX2lkeCwkYXR0cl9rZXkpID0gZ2V0X2F0dHJfcGFydHMoJGtleSk7CiAgICAgICAgICAgICAgICAgICAgaWYoICRhdHRyX2lkeCAmJiAkYXR0cl9rZXkgJiYgaXNzZXQoJHByb2R1Y3QtPmF0dHJpYnV0ZXNbJGF0dHJfaWR4XSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkcHJvZHVjdC0+YXR0cmlidXRlc1skYXR0cl9pZHhdWyRhdHRyX2tleV07CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRbXSA9IHF1b3RlKCR2YWwpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gJG91dDsKfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgIHNldF90aW1lX2xpbWl0KDk5OTkpOwoKICAgIC8vVGhlbiBmb3JjZSB0aGUgb3V0cHV0IG5vcm1hbGx5IGFuZCBleGl0IHNvIHdlIGRvbid0IGdldCBhIGZvb3RlcgogICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1wcm9kdWN0cy4iIC4gZGF0ZSgiWS1tLWQiKSAuICIuY3N2Iik7CiAgICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogdGV4dC9jc3YiKTsKICAgIGZsdXNoKCk7CgogICAgJG9wc1snZXhwb3J0Y2F0cyddID0gKGludCkkcGFyYW1zWydleHBvcnRjYXRzJ107CiAgICAkb3BzWydleHBvcnRkcmFmdCddID0gKGludCkkcGFyYW1zWydleHBvcnRkcmFmdCddOwogICAgJG9wc1snZXhwb3J0ZmllbGRzJ10gPSAoaW50KSRwYXJhbXNbJ2V4cG9ydGZpZWxkcyddOwogICAgJG9wc1snZXhwb3J0b3B0aW9ucyddID0gKGludCkkcGFyYW1zWydleHBvcnRvcHRpb25zJ107CiAgICAkb3BzWydleHBvcnRkZWxpbSddID0gdHJpbSgkcGFyYW1zWydleHBvcnRkZWxpbSddKTsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdleHBvcnRvcHRpb25zJyxzZXJpYWxpemUoJG9wcykpOwoKICAgIC8vIG5vdyBkbyB0aGUgZXhwb3J0LgogICAgaWYoICRvcHNbJ2V4cG9ydGNhdHMnXSApIHsKICAgICAgICAkYWxsY2F0cyA9IHByb2R1Y3RfdXRpbHM6OmdldF9jYXRlZ29yaWVzKCk7CiAgICAgICAgJG1hcCA9IGFycmF5KCdGTEFHJywnbmFtZScsJ3NrdScsJ2RldGFpbHMnLCdwcmljZScsJ2NyZWF0ZV9kYXRlJywnbW9kaWZpZWRfZGF0ZScsJ3RheGFibGUnLCdzdGF0dXMnLCd3ZWlnaHQnLCdISUVSJyk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRhbGxjYXRzKSAmJiBjb3VudCgkYWxsY2F0cykgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRhbGxjYXRzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkbWFwW10gPSAnQ0FUOicuJG9uZS0+bmFtZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiggJG9wc1snZXhwb3J0ZmllbGRzJ10gKSB7CiAgICAgICAgJGFsbGZpZWxkcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGFsbGZpZWxkcykgJiYgY291bnQoJGFsbGZpZWxkcykgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRhbGxmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICRtYXBbXSA9ICdGSUVMRDonLiRvbmUtPnR5cGUuJzonLiRvbmUtPm5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYoICRvcHNbJ2V4cG9ydG9wdGlvbnMnXSApIHsKICAgICAgICBmb3IoICRpID0gMTsgJGkgPD0gMjA7ICRpKysgKSB7CiAgICAgICAgICAgICRwcmVmaXggPSBzcHJpbnRmKCJBVFRSOiUwMmRfIiwkaSk7CiAgICAgICAgICAgICRtYXBbXSA9ICRwcmVmaXguJ3RleHQnOwogICAgICAgICAgICAkbWFwW10gPSAkcHJlZml4LidhZGp1c3RtZW50JzsKICAgICAgICAgICAgJG1hcFtdID0gJHByZWZpeC4nc2t1JzsKICAgICAgICAgICAgJG1hcFtdID0gJHByZWZpeC4ncW9oJzsKICAgICAgICB9CiAgICB9CgogICAgJGhhbmRsZXJzID0gb2JfbGlzdF9oYW5kbGVycygpOwogICAgZm9yICgkY250ID0gMDsgJGNudCA8IHNpemVvZigkaGFuZGxlcnMpOyAkY250KyspIHsgb2JfZW5kX2NsZWFuKCk7IH0KICAgICRvdXRwdXQgPSAnJzsKICAgIHsKICAgICAgICAkaGVhZGVyID0gJG1hcDsKICAgICAgICBmb3JlYWNoKCAkaGVhZGVyIGFzICYkb25lICkgewogICAgICAgICAgICAkcGFydHMgPSBleHBsb2RlKCc6Jywkb25lKTsKICAgICAgICAgICAgaWYoIGNvdW50KCRwYXJ0cykgPiAxICkgewogICAgICAgICAgICAgICAgJGxhc3QgPSAkcGFydHNbY291bnQoJHBhcnRzKS0xXTsKICAgICAgICAgICAgICAgIGlmKCBzdHJwb3MoJGxhc3QsJG9wc1snZXhwb3J0ZGVsaW0nXSkgIT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICRwYXJ0c1tjb3VudCgkcGFydHMpLTFdID0gcXVvdGUoJGxhc3QpOwogICAgICAgICAgICAgICAgICAgICRvbmUgPSBpbXBsb2RlKCc6JywkcGFydHMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRvbmUgPSAnIycuJG9uZTsKICAgICAgICB9CiAgICAgICAgJG91dHB1dCAuPSBpbXBsb2RlKCRvcHNbJ2V4cG9ydGRlbGltJ10sJGhlYWRlcikuIlxuIjsKICAgIH0KICAgIGVjaG8gJG91dHB1dDsgZmx1c2goKTsKCiAgICAvLyBub3cgZ2V0IHRoZSBwcm9kdWN0cy4uLgogICAgJHF1ZXJ5ID0gbmV3IHByb2R1Y3RzX3F1ZXJ5KCk7CiAgICAkcXVlcnlbJ3BhZ2VsaW1pdCddID0gMTAwMDAwMDsKICAgIGlmKCAkb3BzWydleHBvcnRkcmFmdCddICkgJHF1ZXJ5WydzdGF0dXMnXSA9ICchZGlzYWJsZWQnOwogICAgJHJlc3VsdHMgPSBuZXcgcHJvZHVjdHNfcmVzdWx0c2V0KCRxdWVyeSk7CgogICAgd2hpbGUoICEkcmVzdWx0cy0+RU9GICkgewogICAgICAgICRwcm9kdWN0ID0gJHJlc3VsdHMtPmdldF9wcm9kdWN0KCk7IC8vIHJlYWxseSBkb24ndCBuZWVkIHRoaXMgZm9yIGV4cG9ydCwgY3V6IGxpbmtzIGFyZSBpcnJlbGV2YW50CiAgICAgICAgJHRtcCA9IHRvX2ZsYXRfYXJyYXkoJHByb2R1Y3QsJG1hcCk7CiAgICAgICAgJG91dHB1dCA9IGltcGxvZGUoJG9wc1snZXhwb3J0ZGVsaW0nXSwkdG1wKS4iXG4iOwogICAgICAgICRyZXN1bHRzLT5Nb3ZlTmV4dCgpOwogICAgICAgIGVjaG8gJG91dHB1dDsgZmx1c2goKTsKICAgIH0KCiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdFeHBvcnRlZCBwcm9kdWN0IGRhdGEgdG8gY3N2Jyk7CiAgICBleGl0KCk7Cn0KCgokdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2V4cG9ydG9wdGlvbnMnKTsKaWYoICR0bXAgKSAkb3BzID0gdW5zZXJpYWxpemUoJHRtcCk7Cgokc21hcnR5LT5hc3NpZ24oJ29wdGlvbnMnLCRvcHMpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZXhwb3J0Y3N2JykpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2V4cG9ydGNzdi50cGwnKTsKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/action.fieldlist.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUQ0FURUdPUllMSVNUX1RFTVBMQVRFKTsKJHRoZXRlbXBsYXRlID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsJHRoZXRlbXBsYXRlKTsKCiRjYWNoZV9pZCA9ICd8cGQnLm1kNShzZXJpYWxpemUoJHBhcmFtcykpOwokdHBsID0gJHRoaXMtPkNyZWF0ZVNtYXJ0eVRlbXBsYXRlKCR0aGV0ZW1wbGF0ZSwnY2F0ZWdvcnlsaXN0XycsJGNhY2hlX2lkKTsKaWYoICEkdHBsLT5pc0NhY2hlZCgpICkgewogICAgdHJ5IHsKICAgICAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgICAgICB7CiAgICAgICAgICAgICR0bXAgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKCk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApIHsKICAgICAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0bXApOyAkaSsrICkgewogICAgICAgICAgICAgICAgICAgICRvYmogPSAkdG1wWyRpXTsKICAgICAgICAgICAgICAgICAgICAkZmllbGRzWyRvYmotPm5hbWVdID0gJG9iajsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkZmllbGRuYW1lID0gJyc7CiAgICAgICAgJHNob3dhbGwgPSAwOwoKICAgICAgICAkZGV0YWlscGFnZSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZXRhaWxwYWdlJywtMSk7CiAgICAgICAgJGRldGFpbHBhZ2UgPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2RldGFpbHBhZ2UnLCRkZXRhaWxwYWdlKTsKCiAgICAgICAgaWYoICFlbXB0eSgkZGV0YWlscGFnZSkgJiYgJGRldGFpbHBhZ2UgIT0gLTEgKSAgewogICAgICAgICAgICAkbWFuYWdlciA9ICRnQ21zLT5HZXRIaWVyYXJjaHlNYW5hZ2VyKCk7CiAgICAgICAgICAgICRub2RlID0gJG1hbmFnZXItPnN1cmVHZXROb2RlQnlBbGlhcygkZGV0YWlscGFnZSk7CiAgICAgICAgICAgIGlmIChpc3NldCgkbm9kZSkpIHsKICAgICAgICAgICAgICAgICRjb250ZW50ID0gJG5vZGUtPkdldENvbnRlbnQoKTsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkY29udGVudCkpICRkZXRhaWxwYWdlID0gJGNvbnRlbnQtPklkKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkbm9kZSA9ICRtYW5hZ2VyLT5zdXJlR2V0Tm9kZUJ5SWQoJGRldGFpbHBhZ2UpOwogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkbm9kZSkpICRkZXRhaWxwYWdlID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoIGVtcHR5KCRkZXRhaWxwYWdlKSB8fCAkZGV0YWlscGFnZSA9PSAtMSApICRkZXRhaWxwYWdlID0gJHJldHVybmlkOwoKICAgICAgICAkZmllbGRuYW1lID0gXGNnZV9wYXJhbTo6Z2V0X3N0cmluZygkcGFyYW1zLCdmaWVsZCcpOwogICAgICAgIGlmKCAhJGZpZWxkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oImZpZWxkIGlzIGEgcmVxdWlyZWQgcGFyYW1ldGVyIik7CiAgICAgICAgaWYoICFpc3NldCgkZmllbGRzWyRmaWVsZG5hbWVdKSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIGEgdmlzaWJsZSBjdXN0b20gZmllbGQgbmFtZWQgIi4kZmllbGRuYW1lKTsKICAgICAgICAkc2hvd2FsbCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnc2hvd2FsbCcpOwogICAgICAgICRmaWVsZCA9ICRmaWVsZHNbJGZpZWxkbmFtZV07CgogICAgICAgIC8vIG9raWUsIG5vdyBnb3R0YSBnZXQgdGhlIGRpc3RpbmN0IHZhbHVlcyBvdXQgb2YgdGhlIGRhdGFiYXNlCiAgICAgICAgLy8gZm9yIHRoaXMgZmllbGQuCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBESVNUSU5DVCB2YWx1ZSBBUyBuYW1lLGNvdW50KHZhbHVlKSBhcyBjb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzCiAgICAgICAgICAgV0hFUkUgZmllbGRkZWZfaWQgPSA/IEdST1VQIEJZIHZhbHVlJzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnksYXJyYXkoJGZpZWxkc1skZmllbGRuYW1lXS0+aWQpKTsKICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgJHRyZXN1bHRzID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ25hbWUnKTsKICAgICAgICAgICAgZm9yZWFjaCggJHRyZXN1bHRzIGFzICRrZXkgPT4gJiRyb3cgKSB7CiAgICAgICAgICAgICAgICAkbnBhcmFtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICB1bnNldCgkbnBhcmFtc1snZmllbGQnXSk7CiAgICAgICAgICAgICAgICAkbnBhcmFtc1snZmllbGRpZCddID0gJGZpZWxkLT5pZDsKICAgICAgICAgICAgICAgICRucGFyYW1zWydmaWVsZHZhbCddID0gJHJvd1snbmFtZSddOwogICAgICAgICAgICAgICAgJHJvd1snc3VtbWFyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkZGV0YWlscGFnZSwkbnBhcmFtcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoICRzaG93YWxsICkgewogICAgICAgICAgICAgICAgaWYoICRmaWVsZC0+dHlwZSAhPSAnZHJvcGRvd24nICkgewogICAgICAgICAgICAgICAgICAgIC8vIGl0J3MgYW5vdGhlciBmaWVsZCB0eXBlLi4gcHJvbGx5IGEgdGV4dCBmaWVsZC4KICAgICAgICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGNvdW50KEEuaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBBCiAgICAgICAgICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEIKICAgICAgICAgICAgICAgICAgICAgIE9OIEEuaWQgPSBCLnByb2R1Y3RfaWQgQU5EIEIuZmllbGRkZWZfaWQgPSA/CiAgICAgICAgICAgICAgICAgICBXSEVSRSBCLnByb2R1Y3RfaWQgSVMgTlVMTCc7CiAgICAgICAgICAgICAgICAgICAgJHRyb3cgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICAgICR0cm93Wydjb3VudCddID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRmaWVsZC0+aWQpKTsKICAgICAgICAgICAgICAgICAgICAkdHJvd1snbmFtZSddID0gJHRoaXMtPkxhbmcoJ3VuZGVmaW5lZF9maWVsZF92YWx1ZScpOwoKICAgICAgICAgICAgICAgICAgICAkbnBhcmFtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG5wYXJhbXNbJ2ZpZWxkJ10pOwogICAgICAgICAgICAgICAgICAgICRucGFyYW1zWydmaWVsZGlkJ10gPSAkZmllbGQtPmlkOwogICAgICAgICAgICAgICAgICAgICRucGFyYW1zWydmaWVsZHZhbCddID0gJzo6bnVsbDo6JzsKICAgICAgICAgICAgICAgICAgICAkdHJvd1snc3VtbWFyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkZGV0YWlscGFnZSwkbnBhcmFtcyk7CiAgICAgICAgICAgICAgICAgICAgJHRyZXN1bHRzWyctLTpwcm9kdWN0c191bnNldF9maWVsZDotLSddID0gJHRyb3c7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBpdCdzIGEgZHJvcGRvd24KICAgICAgICAgICAgICAgICAgICAvLyBmaWxsIGluIHRoZSByZWNvcmRzIGZvciB0aGUgb3RoZXIgb3B0aW9ucywgd2hpbGUgcHJlc2VydmluZyBvcHRpb24gb3JkZXIuCiAgICAgICAgICAgICAgICAgICAgJHRtcCA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJGZpZWxkLT5vcHRpb25zIGFzICRvcHRpb24gKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCgkdHJlc3VsdHNbJG9wdGlvbl0pICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRtcFskb3B0aW9uXSA9ICR0cmVzdWx0c1skb3B0aW9uXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICR0cm93ID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRyb3dbJ25hbWUnXSA9ICRvcHRpb247CiAgICAgICAgICAgICAgICAgICAgICAgICR0cm93Wydjb3VudCddID0gMDsKCiAgICAgICAgICAgICAgICAgICAgICAgICRucGFyYW1zID0gJHBhcmFtczsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJG5wYXJhbXNbJ2ZpZWxkJ10pOwogICAgICAgICAgICAgICAgICAgICAgICAkbnBhcmFtc1snZmllbGRpZCddID0gJGZpZWxkLT5pZDsKICAgICAgICAgICAgICAgICAgICAgICAgJG5wYXJhbXNbJ2ZpZWxkdmFsJ10gPSAnOjpudWxsOjonOwogICAgICAgICAgICAgICAgICAgICAgICAkdHJvd1snc3VtbWFyeV91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0JywkZGV0YWlscGFnZSwkbnBhcmFtcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXBbJG9wdGlvbl0gPSAkdHJvdzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHRyZXN1bHRzID0gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJlc3VsdHMgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkdHJlc3VsdHMgYXMgJGtleSA9PiAkcmVjICkgewogICAgICAgICAgICAgICAgJHJlc3VsdHNbXSA9IGNnZV9hcnJheTo6dG9fb2JqZWN0KCRyZWMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0cGwtPmFzc2lnbignY2F0ZWdvcnlsaXN0JywkcmVzdWx0cyk7CiAgICAgICAgfQogICAgfQogICAgY2F0Y2goIFxFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnZmllbGRsaXN0IGFjdGlvbjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KfSAvLyBub3QgY2FjaGVkCgokdHBsLT5kaXNwbGF5KCk7CgojCiMgRU9GCiMKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.hierarchy.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCiRzdW1tYXJ5cGFnZSA9ICRyZXR1cm5pZDsKaWYoIGlzc2V0KCRwYXJhbXNbJ3N1bW1hcnlwYWdlJ10pICkgewogICAgJHN1bW1hcnlwYWdlID0gJHRoaXMtPnJlc29sdmVfYWxpYXNfb3JfaWQoJHBhcmFtc1snc3VtbWFyeXBhZ2UnXSk7CiAgICBpZiggISRzdW1tYXJ5cGFnZSApICRzdW1tYXJ5cGFnZSA9ICRyZXR1cm5pZDsKfQoKJGFjdGl2ZV9oaWVyYXJjaHkgPSAoaW50KSRzbWFydHktPmdldF90ZW1wbGF0ZV92YXJzKCdhY3RpdmVfaGllcmFyY2h5Jyk7CmlmKCAhaXNzZXQoJHBhcmFtc1sncGFyZW50J10pICYmICRhY3RpdmVfaGllcmFyY2h5ID4gMCApICRwYXJhbXNbJ3BhcmVudCddID0gJGFjdGl2ZV9oaWVyYXJjaHk7CgokaW5saW5lID0gKGludClnZXRfcGFyYW1ldGVyX3ZhbHVlKCRwYXJhbXMsJ2lubGluZScsMCk7CgokaGllcnBhZ2UgPSAkcmV0dXJuaWQ7CiR0bXAgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnKTsKaWYoICR0bXAgPiAwICkgJGhpZXJwYWdlID0gJHRtcDsKCmlmKCBpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlwYWdlJ10pICkgewogICAgJHRtcCA9ICR0aGlzLT5yZXNvbHZlX2FsaWFzX29yX2lkKCRwYXJhbXNbJ2hpZXJhcmNoeXBhZ2UnXSk7CiAgICBpZiggJHRtcCApICRoaWVycGFnZSA9ICR0bXA7Cn0KCmlmKCAhZnVuY3Rpb25fZXhpc3RzKCdwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcycpICkgewogICAgZnVuY3Rpb24gcHJvZHVjdHNfYnloaWVyYXJjaHlfcG9zdHByb2Nlc3MoJiRkYXRhLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSwkaW5saW5lLCRpZCkKICAgIHsKICAgICAgICBpZiggaXNfYXJyYXkoJGRhdGEpICkgewogICAgICAgICAgICAkY29uZmlnID0gY21zbXMoKS0+R2V0Q29uZmlnKCk7CiAgICAgICAgICAgICRtb2R1bGUgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgICAgICRpbWdkaXIgPSBwcm9kdWN0X3V0aWxzOjpnZXRfaGllcmFyY2h5X3VwbG9hZF9wYXRoKCk7CgogICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGF0YSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAkcmVjID0mICRkYXRhWyRpXTsKCiAgICAgICAgICAgICAgICAkdG4gPSBjbXNfam9pbl9wYXRoKCRpbWdkaXIsJ3RodW1iXycuJHJlY1snaW1hZ2UnXSk7CiAgICAgICAgICAgICAgICBpZiggZmlsZV9leGlzdHMoJHRuKSApICRyZWNbJ3RodW1ibmFpbCddID0gJ3RodW1iXycuJHJlY1snaW1hZ2UnXTsKCiAgICAgICAgICAgICAgICAkdG4gPSBjbXNfam9pbl9wYXRoKCRpbWdkaXIsJ3ByZXZpZXdfJy4kcmVjWydpbWFnZSddKTsKICAgICAgICAgICAgICAgIGlmKCBmaWxlX2V4aXN0cygkdG4pICkgJHJlY1sncHJldmlldyddID0gJ3ByZXZpZXdfJy4kcmVjWydpbWFnZSddOwogICAgICAgICAgICAgICAgaWYoICFpc3NldCgkcmVjWydjb3VudCddKSApICRyZWNbJ2NvdW50J10gPSAwOwoKICAgICAgICAgICAgICAgICRwYXJtcyA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICAkcGFybXNbJ3BhcmVudCddID0gJHJlY1snaWQnXTsKICAgICAgICAgICAgICAgIHVuc2V0KCRwYXJtc1snaW5saW5lJ10pOwoKICAgICAgICAgICAgICAgICRyZWNbJ2Rvd25fdXJsJ10gPSAkbW9kdWxlLT5DcmVhdGVVUkwoJGlkLCdoaWVyYXJjaHknLCRoaWVycGFnZSwkcGFybXMsJGlubGluZSk7CgogICAgICAgICAgICAgICAgJHBhcm1zID0gJHBhcmFtczsKICAgICAgICAgICAgICAgICRwYXJtc1snaGllcmFyY2h5aWQnXSA9ICRyZWNbJ2lkJ107CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHBhcm1zWydzdW1tYXJ5cGFnZSddKSApIHVuc2V0KCRwYXJtc1snc3VtbWFyeXBhZ2UnXSk7CiAgICAgICAgICAgICAgICBpZiggJHJlY1snY291bnQnXSA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gc3VtbWFyeSBVUkxTIGFyZSBub24gaW5saW5lCiAgICAgICAgICAgICAgICAgICAgJHJlY1sndXJsJ10gPSAkbW9kdWxlLT5jcmVhdGVfdXJsKCdjbnRudDAxJywnZGVmYXVsdCcsJHN1bW1hcnlwYWdlLCRwYXJtcyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoIGlzc2V0KCRyZWNbJ2NoaWxkcmVuJ10pICkgcHJvZHVjdHNfYnloaWVyYXJjaHlfcG9zdHByb2Nlc3MoJHJlY1snY2hpbGRyZW4nXSwkcGFyYW1zLCRzdW1tYXJ5cGFnZSwkaGllcnBhZ2UsJGlubGluZSwkaWQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgokdGhldGVtcGxhdGUgPSAkdGhpcy0+ZmluZF9sYXlvdXRfdGVtcGxhdGUoJHBhcmFtcywnaGllcmFyY2h5dGVtcGxhdGUnLCdQcm9kdWN0czo6SGllcmFyY2h5IFZpZXcnKTsKdW5zZXQoJHBhcmFtc1snaGllcmFyY2h5dGVtcGxhdGUnXSk7CiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKCiRub2RlcyA9IGFycmF5KCk7CiRwYXJlbnRzID0gYXJyYXkoLTEpOwppZiggaXNzZXQoJHBhcmFtc1sncGFyZW50J10gKSApIHsKICAgICRwYXJlbnRzID0gYXJyYXkoKGludCkkcGFyYW1zWydwYXJlbnQnXSk7CiAgICB1bnNldCgkcGFyYW1zWydwYXJlbnQnXSk7Cn0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1sncGFyZW50cyddKSApIHsKICAgICR0bXAgPSBleHBsb2RlKCcsJywkcGFyYW1zWydwYXJlbnRzJ10pOwogICAgJHRtcDIgPSBhcnJheSgpOwogICAgJGFsbF9oaWVyYXJjaHkgPSBoaWVyYXJjaHlfb3BzOjpnZXRfYWxsX2hpZXJhcmNoeV9pbmZvKCk7CiAgICBpZiggIWlzX2FycmF5KCRhbGxfaGllcmFyY2h5KSB8fCBjb3VudCgkYWxsX2hpZXJhcmNoeSkgPT0gMCApIHJldHVybjsgLy8gbm90aGluZyB0byBkby4KICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICBmb3JlYWNoKCAkYWxsX2hpZXJhcmNoeSBhcyAkb25laGllciApIHsKICAgICAgICAgICAgaWYoIGlzX251bWVyaWMoJG9uZSkgJiYgJG9uZWhpZXJbJ2lkJ10gPT0gJG9uZSApIHsKICAgICAgICAgICAgICAgICR0bXAyW10gPSAkb25lOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJG9uZWhpZXJbJ25hbWUnXSA9PSAkb25lICkgewogICAgICAgICAgICAgICAgJHRtcDJbXSA9ICRvbmVoaWVyWydpZCddOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAkdG1wMiA9IGFycmF5X3VuaXF1ZSgkdG1wMik7CiAgICBpZiggIWlzX2FycmF5KCR0bXAyKSB8fCBjb3VudCgkdG1wMikgPT0gMCApIHJldHVybjsgLy8gbm90aGluZyB0byBkaXNwbGF5LgogICAgJHBhcmVudHMgPSAkdG1wMjsKICAgIHVuc2V0KCRwYXJhbXNbJ3BhcmVudHMnXSk7Cn0KLyogbm90IHVzZWQ/CiAgIGVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKSApIHsKICAgJHRtcCA9IGV4cGxvZGUoJywnLCRwYXJhbXNbJ2hpZXJhcmNoeSddKTsKICAgJHRtcDIgPSBhcnJheSgpOwogICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICR0bXAyW10gPSAiJyIudHJpbSgkb25lKS4iJyI7CiAgIH0KICAgJHRtcDIgPSBpbXBsb2RlKCcsJywkdG1wMik7CiAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBuYW1lIElOICgnLiR0bXAyLicpJzsKICAgJG5vZGVzID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKICAgJG5vZGVzID0gYXJyYXlfdW5pcXVlKCRub2Rlcyk7CiAgIHVuc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeSddKTsKICAgfQoqLwoKaWYoICFjb3VudCgkcGFyZW50cykgKSByZXR1cm47IC8vIG5vdGhpbmcgZm91bmQgdG8gc3RhcnQgd2l0aAoKJGRhdGEgPSBhcnJheSgpOwppZiggY291bnQoJG5vZGVzKSApIHsKICAgIC8vIG5vdCB1c2VkPwogICAgLy8gdGhpcyB3aWxsIG9ubHkgZGlzcGxheSB0aGUgc2VsZWN0ZWQgaGllcmFyY2hpZXMgKG5vdCBpbmNsdWRpbmcgdGhlaXIgY2hpbGRyZW4pIHRoYXQgaGF2ZSBwcm9kdWN0cy4KICAgICRub2RlcyA9IGltcGxvZGUoJywnLCRub2Rlcyk7CiAgICAkcXVlcnkgPSAnU0VMRUNUIHBoLiosY291bnQocHIuaWQpIEFTIGNvdW50IEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgcGgKICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIHB0aAogICAgICAgICAgICAgICAgT04gcGguaWQgPSBwdGguaGllcmFyY2h5X2lkCiAgICAgICAgICAgICAgTEVGVCBPVVRFUiBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgcHIKICAgICAgICAgICAgICAgIE9OIHB0aC5wcm9kdWN0X2lkID0gcHIuaWQKICAgICAgICAgICAgIFdIRVJFIHByLnN0YXR1cyA9IFwncHVibGlzaGVkXCcKICAgICAgICAgICAgICAgQU5EIHBoLmlkIElOICgnLiRub2Rlcy4nKQogICAgICAgICAgICAgR1JPVVAgQlkgcGguaWQgT1JERVIgQlkgcGguaGllcmFyY2h5JzsKICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICBwcm9kdWN0c19ieWhpZXJhcmNoeV9wb3N0cHJvY2VzcygkdG1wLCRwYXJhbXMsJHN1bW1hcnlwYWdlLCRoaWVycGFnZSwkaW5saW5lLCRpZCk7CiAgICAkZGF0YSA9ICR0bXA7Cn0KZWxzZSB7CiAgICBmb3JlYWNoKCAkcGFyZW50cyBhcyAkcGFyZW50X2lkICkgewogICAgICAgIGlmKCAhJHBhcmVudF9pZCApIGNvbnRpbnVlOwoKICAgICAgICAkdG1wID0gcHJvZHVjdF91dGlsczo6aGllcmFyY2h5X2dldF90cmVlKCRwYXJlbnRfaWQpOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgcHJvZHVjdHNfYnloaWVyYXJjaHlfcG9zdHByb2Nlc3MoJHRtcCwkcGFyYW1zLCRzdW1tYXJ5cGFnZSwkaGllcnBhZ2UsJGlubGluZSwkaWQpOwogICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICR0bXAyICkgewogICAgICAgICAgICAgICAgJGRhdGFbXSA9ICR0bXAyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgokaGllcmRhdGEgPSAnJzsKJHRwbC0+YXNzaWduKCdoaWVyZGF0YScsJGRhdGEpOwppZiggY291bnQoJHBhcmVudHMpID09IDEgKSB7CiAgICAkaGllcmRhdGEgPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJHBhcmVudHNbMF0pOwogICAgaWYoICRoaWVyZGF0YSApIHsKICAgICAgICAvLyBvbmx5IGlmIHdlIGhhdmUgYSBwYXJlbnQgaGllcmFyY2h5PwogICAgICAgICRoaWVyZGF0YVsncGFyZW50X3VybCddID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdoaWVyYXJjaHknLCRyZXR1cm5pZCxhcnJheSgncGFyZW50Jz0+JGhpZXJkYXRhWydwYXJlbnRfaWQnXSkpOwogICAgICAgICR0cGwtPmFzc2lnbignYWN0aXZlX2hpZXJhcmNoeScsJHBhcmVudHNbMF0pOwogICAgICAgIGlmKCAkaW5saW5lID09IDAgKSAkaGllcmRhdGFbJ2Nhbm9uaWNhbCddID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdoaWVyYXJjaHknLCRyZXR1cm5pZCxhcnJheSgncGFyZW50Jz0+JHBhcmVudHNbMF0pKTsKICAgICAgICAkdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeV9pdGVtJywkaGllcmRhdGEpOwogICAgfQp9Cgokbm9jaGlsZHJlbiA9IGNnZV91dGlsczo6dG9fYm9vbChjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdub2NoaWxkcmVuJywwKSk7CgovLwovLyB0ZW1wbGF0ZQovLwokdHBsLT5hc3NpZ24oJ2hpZXJhcmNoeV9pbWFnZV9sb2NhdGlvbicsJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4nLycuJHRoaXMtPkdldE5hbWUoKS4nL2hpZXJhcmNoeScpOwokdHBsLT5hc3NpZ24oJ25vY2hpbGRyZW4nLCRub2NoaWxkcmVuKTsKJHRwbC0+ZGlzcGxheSgpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/action.importcsv.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKCiRnbyA9IDA7CmlmKCBpc3NldCgkcGFyYW1zWydnbyddKSApICRnbyA9IDE7CgppZiggIWlzc2V0KCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXSkgKSBkaWUoKTsKJHBhcmFtcyA9ICRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXTsKCmZ1bmN0aW9uIHByb2dyZXNzKCRwY3QpIHsKICAgIGVjaG8gJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5wYXJlbnQucHJvZ3Jlc3MoJy4kcGN0LicpOzwvc2NyaXB0Pic7Cn0KZnVuY3Rpb24gZG9fZXJyb3IoJHN0cikgewogICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBhcmVudC5vbkVycm9yKFwnJy4kc3RyLidcJyk7PC9zY3JpcHQ+JzsKfQpmdW5jdGlvbiBkb25lKCkgewogICAgZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnBhcmVudC5kb25lKCk7PC9zY3JpcHQ+JzsKfQoKLy8gc2V0dXAgZGlzcGxheQppZiggJGdvID09IDEgKSB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb2Nlc3N1cmwnLCR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQsIGFycmF5KCdzaG93dGVtcGxhdGUnPT4nZmFsc2UnKSkpOwogICAgJHVybCA9ICR0aGlzLT5jcmVhdGVfdXJsKCRpZCwnZGVmYXVsdGFkbWluJywkcmV0dXJuaWQpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdkb25ldXJsJyxzdHJfcmVwbGFjZSgnJmFtcDsnLCcmJywkdXJsKSk7CiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ltcG9ydGNzdi50cGwnKTsKICAgIHJldHVybjsKfQoKc2V0X3RpbWVfbGltaXQoMCk7ICAgICAgICAgICAgICAgICAgIC8vIGlnbm9yZSBwaHAgdGltZW91dAppZ25vcmVfdXNlcl9hYm9ydCh0cnVlKTsgICAgICAgICAgICAgLy8ga2VlcCBvbiBnb2luZyBldmVuIGlmIHVzZXIgcHVsbHMgdGhlIHBsdWcqCndoaWxlKG9iX2dldF9sZXZlbCgpKW9iX2VuZF9jbGVhbigpOyAvLyByZW1vdmUgb3V0cHV0IGJ1ZmZlcnMKb2JfaW1wbGljaXRfZmx1c2godHJ1ZSk7ICAgICAgICAgICAgIC8vIG91dHB1dCBzdHVmZiBkaXJlY3RseQoKCi8vIGJlZ2luIHdvcmsKZWNobyAnPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5Pic7IC8vIHdlYmtpdCBob3RmaXgKCiRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiRmbiA9ICRjb25maWdbJ3Jvb3RfcGF0aCddLicvdG1wL2NhY2hlLycuJHBhcmFtc1snZmlsZW5hbWUnXTsKJGZoID0gZm9wZW4oJGZuLCdyJyk7CmlmKCAhJGZoICkgewogICAgZXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpbGVvcGVuJykpOwogICAgcmV0dXJuOwp9CiRmaWxlc2l6ZSA9IGZpbGVzaXplKCRmbik7CgokaW1hZ2VIYW5kbGVyID0gbmV3IGltcG9ydEltYWdlSGFuZGxlcigkdGhpcyk7CiRpbWFnZUhhbmRsZXItPnNldFNvdXJjZUxvY2F0aW9uKGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHBhcmFtc1snaW1hZ2VwYXRoJ10pKTsKJGltYWdlSGFuZGxlci0+c2V0RGVzdGluYXRpb25CYXNlKHByb2R1Y3RfdXRpbHM6OmdldF9iYXNlX3VwbG9hZF9wYXRoKCkpOwokaW1hZ2VIYW5kbGVyLT5zZXRVbmlxdWVOYW1lcygpOwoKJGltcG9ydGVyID0gbmV3IHByb2R1Y3RzQ3N2SW1wb3J0ZXIoJHRoaXMpOwokaW1wb3J0ZXItPnNldEltYWdlSGFuZGxlcigkaW1hZ2VIYW5kbGVyKTsKJGltcG9ydGVyLT5zZXREZWxpbSgkcGFyYW1zWydkZWxpbWl0ZXInXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9maWVsZHMnLChpbnQpJHBhcmFtc1snY3JlYXRlZmllbGRzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdoYW5kbGVfaW1hZ2VzJywoaW50KSRwYXJhbXNbJ2hhbmRsZWltYWdlcyddKTsKJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2hpZXJhcmNoeScsKGludCkkcGFyYW1zWydjcmVhdGVoaWVyYXJjaHknXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9jYXRlZ29yaWVzJywoaW50KSRwYXJhbXNbJ2NyZWF0ZWNhdGVnb3JpZXMnXSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2ltYWdlX3NvdXJjZV9sb2NhdGlvbicsJHBhcmFtc1snaW1hZ2VwYXRoJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdvbl9kdXBsaWNhdGVfcHJvZHVjdCcsdHJpbSgkcGFyYW1zWydkdXBsaWNhdGVwcm9kdWN0cyddKSk7CiRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NsZWFyZmllbGRzJywoaW50KSRwYXJhbXNbJ2NsZWFyZmllbGRzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjbGVhcmF0dHJpYnMnLChpbnQpJHBhcmFtc1snY2xlYXJhdHRyaWJzJ10pOwokaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdjbGVhcmNhdGVnb3JpZXMnLChpbnQpJHBhcmFtc1snY2xlYXJjYXRlZ29yaWVzJ10pOwoKd2hpbGUoICFmZW9mKCRmaCkgKSB7CiAgICAkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwogICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgICRwb3MgPSBmdGVsbCgkZmgpOwogICAgaWYoIGVtcHR5KCRsaW5lKSApIGNvbnRpbnVlOwoKICAgICRwY3QgPSAoaW50KSgkcG9zIC8gJGZpbGVzaXplICogMTAwLjApOwogICAgcHJvZ3Jlc3MoJHBjdCk7CgogICAgJHJlcyA9ICRpbXBvcnRlci0+aGFuZGxlTGluZSgkbGluZSk7CiAgICBpZiggISRyZXMgKSB7CiAgICAgICAgJGVycm9ycyA9ICRpbXBvcnRlci0+Z2V0RXJyb3JzKCk7CiAgICAgICAgJGltcG9ydGVyLT5jbGVhckVycm9ycygpOwogICAgICAgIGlmKCBpc19hcnJheSgkZXJyb3JzKSAmJiBjb3VudCgkZXJyb3JzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGVycm9ycyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgZG9fZXJyb3IoJG9uZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCi8vIHdvb3QsIHdlJ3JlIGRvbmUKZmNsb3NlKCRmaCk7CmRvbmUoKTsKZXhpdCgpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.importproducts.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIHJldHVybjsKCiMKIyBJbml0aWFsaXphdGlvbgojCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdwcm9kdWN0cycpOwokZmxhZ19jcmVhdGVmaWVsZHMgPSAwOwokZmxhZ19oYW5kbGVpbWFnZXMgPSAwOwokaW1hZ2VwYXRoID0gJyc7CiRmbGFnX2NyZWF0ZWhpZXJhcmNoeSA9IDA7CiRmbGFnX2NyZWF0ZWNhdGVnb3JpZXMgPSAwOwokZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyA9ICdza2lwJzsKJGRlbGVtZXRlciA9ICd8JzsKJGJhdGNoc2l6ZSA9IDUwOwoKIwojIFNldHVwCiMKJGZsYWdfY3JlYXRlZmllbGRzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jcmVhdGVmaWVsZHMnLDEpOwokZmxhZ19oYW5kbGVpbWFnZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2hhbmRsZWltYWdlcycsMCk7CiRpbWFnZXBhdGggPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2ltYWdlcGF0aCcsJycpOwokZmxhZ19jcmVhdGVoaWVyYXJjaHkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWhpZXJhcmNoeScsMSk7CiRmbGFnX2NyZWF0ZWNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWNhdGVnb3JpZXMnLDEpOwokZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfZHVwbGljYXRlcHJvZHVjdHMnLCdvdmVyd3JpdGUnKTsKJGRlbGltaXRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbXBvcnRfZGVsaW1pdGVyJywnfCcpOwokYmF0Y2hzaXplID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9iYXRjaHNpemUnLDUwKTsKJGNsZWFyZmllbGRzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmZpZWxkcycsMSk7CiRjbGVhcmF0dHJpYnMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NsZWFyYXR0cmlicycsMSk7CiRjbGVhcmNhdGVnb3JpZXMgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NsZWFyY2F0ZWdvcmllcycsMSk7CgojCiMgSGFuZGxlIEZvcm0gRGF0YQojCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKSAkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKaWYoIGlzc2V0KCRwYXJhbXNbJ3Rlc3QnXSkgKSB7CiAgICAvLyBnZXQgdGhlIGZvcm0gZGF0YQogICAgJGZsYWdfY3JlYXRlZmllbGRzID0gKGludCkkcGFyYW1zWydjcmVhdGVmaWVsZHMnXTsKICAgICRmbGFnX2hhbmRsZWltYWdlcyA9IChpbnQpJHBhcmFtc1snaGFuZGxlaW1hZ2VzJ107CiAgICAkaW1hZ2VwYXRoID0gdHJpbSgkcGFyYW1zWydpbWFnZXBhdGgnXSk7CiAgICAkZmxhZ19jcmVhdGVoaWVyYXJjaHkgPSAoaW50KSRwYXJhbXNbJ2NyZWF0ZWhpZXJhcmNoeSddOwogICAgJGZsYWdfY3JlYXRlY2F0ZWdvcmllcyA9IChpbnQpJHBhcmFtc1snY3JlYXRlY2F0ZWdvcmllcyddOwogICAgJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMgPSAkcGFyYW1zWydkdXBsaWNhdGVwcm9kdWN0cyddOwogICAgJGRlbGltaXRlciA9ICRwYXJhbXNbJ2RlbGltaXRlciddOwogICAgJGJhdGNoc2l6ZSA9IChpbnQpJHBhcmFtc1snYmF0Y2hzaXplJ107CiAgICAkY2xlYXJmaWVsZHMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyZmllbGRzJ107CiAgICAkY2xlYXJhdHRyaWJzID0gKGludCkkcGFyYW1zWydjbGVhcmF0dHJpYnMnXTsKICAgICRjbGVhcmNhdGVnb3JpZXMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyY2F0ZWdvcmllcyddOwoKICAgIC8vIHZhbGlkYXRlIHRoZSBmb3JtIGRhdGEKICAgICRlcnJvciA9ICcnOwogICAgJG1lc3NhZ2VzID0gYXJyYXkoKTsKICAgICRpbXBvcnRfZXJyb3JzID0gYXJyYXkoKTsKICAgICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkdWggPSBuZXcgY2dfZmlsZXVwbG9hZCgkaWQsJGNvbmZpZ1sncm9vdF9wYXRoJ10uJy90bXAvY2FjaGUnKTsKICAgICR1aC0+c2V0X2FjY2VwdGVkX2ZpbGV0eXBlcygnY3N2Jyk7CiAgICAkdWgtPnNldF9hbGxvd19vdmVyd3JpdGUoKTsKICAgICRyZXMgPSAkdWgtPmhhbmRsZV91cGxvYWQoJ2NzdmZpbGUnLCdwcm9kdWN0cycpOwogICAgaWYoICRyZXMgPT09IGZhbHNlICkgewogICAgICAgICR0bXAgPSAkdWgtPmdldF9lcnJvcigpOwogICAgICAgICRlcnJvciA9ICR0aGlzLT5HZXRVcGxvYWRFcnJvck1lc3NhZ2UoJHRtcCk7CiAgICB9CgogICAgaWYoIGVtcHR5KCRlcnJvcikgKSB7CiAgICAgICAgLy8gcmVhZHkgdG8gZG8gc29tZSB0ZXN0aW5nIG9uIHRoZSBjc3YgZmlsZS4KICAgICAgICAkZm4gPSAkY29uZmlnWydyb290X3BhdGgnXS4nL3RtcC9jYWNoZS9wcm9kdWN0cy5jc3YnOwogICAgICAgICR0aGVfZmlsZXNpemUgPSBmaWxlc2l6ZSgkZm4pOwogICAgICAgICRmaCA9IGZvcGVuKCRmbiwncicpOwogICAgICAgIGlmKCAhJGZoICkgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpbGVvcGVuJywkZm4pOwoKICAgICAgICBpZiggZW1wdHkoJGVycm9yKSApIHsKICAgICAgICAgICAgJGxpbmVudW0gPSAwOwogICAgICAgICAgICAkaW1wb3J0ZXIgPSBuZXcgcHJvZHVjdHNDc3ZJbXBvcnRlcigkdGhpcyk7CiAgICAgICAgICAgICRpbXBvcnRlci0+c2V0RGVsaW0oJGRlbGltaXRlcik7CiAgICAgICAgICAgIHdoaWxlKCAhZmVvZigkZmgpICYmICRsaW5lbnVtIDwgMjAgKSB7CiAgICAgICAgICAgICAgICAkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwogICAgICAgICAgICAgICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgICAgICAgICAgICAgICRsaW5lbnVtKys7CiAgICAgICAgICAgICAgICAkdG1wID0gYXJyYXkoKTsKCiAgICAgICAgICAgICAgICBpZiggZW1wdHkoJGxpbmUpICkgY29udGludWU7CgogICAgICAgICAgICAgICAgJHJlcyA9ICRpbXBvcnRlci0+dGVzdExpbmUoJGxpbmUsJHRtcCk7CiAgICAgICAgICAgICAgICBpZiggJHJlcyA9PT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX2ZpbGVmb3JtYXQnKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRtZXNzYWdlcyA9IGFycmF5X21lcmdlKCRtZXNzYWdlcywkdG1wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBpZiggIWVtcHR5KCRlcnJvcikgJiYgaXNzZXQoJGltcG9ydGVyKSAmJiBpc19vYmplY3QoJGltcG9ydGVyKSApICRpbXBvcnRfZXJyb3JzID0gJGltcG9ydGVyLT5nZXRFcnJvcnMoKTsKCiAgICBpZiggZW1wdHkoJGVycm9yKSApIHsKICAgICAgICAvLyBzYXZlIHRoZSBwcmVmZXJlbmNlcwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY3JlYXRlZmllbGRzJywkZmxhZ19jcmVhdGVmaWVsZHMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfaGFuZGxlaW1hZ2VzJywkZmxhZ19oYW5kbGVpbWFnZXMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfaW1hZ2VwYXRoJywkaW1hZ2VwYXRoKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWhpZXJhcmNoeScsJGZsYWdfY3JlYXRlaGllcmFyY2h5KTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2NyZWF0ZWNhdGVnb3JpZXMnLCRmbGFnX2NyZWF0ZWNhdGVnb3JpZXMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfZHVwbGljYXRlcHJvZHVjdHMnLCRmbGFnX2R1cGxpY2F0ZXByb2R1Y3RzKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1wb3J0X2RlbGltaXRlcicsJGRlbGltaXRlcik7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9iYXRjaHNpemUnLCRiYXRjaHNpemUpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2xlYXJmaWVsZHMnLCRjbGVhcmZpZWxkcyk7CiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ltcG9ydF9jbGVhcmF0dHJpYnMnLCRjbGVhcmF0dHJpYnMpOwogICAgICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbXBvcnRfY2xlYXJjYXRlZ29yaWVzJywkY2xlYXJjYXRlZ29yaWVzKTsKCiAgICAgICAgLy8gc2F2ZSBwYXJhbWV0ZXJzIGluIHNlc3Npb24KICAgICAgICAkcGFyYW1zWydmaWxlbmFtZSddID0gJ3Byb2R1Y3RzLmNzdic7CiAgICAgICAgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddID0gJHBhcmFtczsKCiAgICAgICAgLy8gR2V0IHJlYWR5IGZvciB0aGUgZ28gYWN0aW9uCiAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCdjc3ZmaWxlJywkcGFyYW1zWydmaWxlbmFtZSddKTsKICAgICAgICBpZiggY291bnQoJG1lc3NhZ2VzKSA+IDAgKSAkc21hcnR5LT5hc3NpZ24oJ21lc3NhZ2VzJywkbWVzc2FnZXMpOwogICAgICAgIGVjaG8gJHRoaXMtPlNob3dNZXNzYWdlKCR0aGlzLT5MYW5nKCdpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCcpKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRzbWFydHktPmFzc2lnbignZXJyb3JzJywkaW1wb3J0X2Vycm9ycyk7CiAgICAgICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkZXJyb3IpOwogICAgfQp9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ2dvJ10pICkgewogICAgJHRoaXMtPlJlZGlyZWN0KCRpZCwnaW1wb3J0Y3N2JywkcmV0dXJuaWQsJHBhcmFtcyk7CiAgICAkY2dlID0gJHRoaXMtPkdldE1vZHVsZUluc3RhbmNlKCdDR0V4dGVuc2lvbnMnKTsKICAgICRmbiA9ICRjZ2UtPkdldE1vZHVsZVBhdGgoKS4nL2xpYi9Qcm9ncmVzczJfTGl0ZS5waHAnOwogICAgaW5jbHVkZSgkZm4pOwoKICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddKSApIGRpZSgpOwogICAgJHBhcmFtcyA9ICRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXTsKICAgICRiYXRjaHNpemUgPSA1MDsKICAgICRjbGVhcmZpZWxkcyA9IDE7CiAgICAkY2xlYXJhdHRyaWJzID0gMTsKICAgICRjbGVhcmNhdGVnb3JpZXMgPSAxOwogICAgJGxpbmVudW0gPSAwOwogICAgJGZwb3MgPSAwOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2JhdGNoc2l6ZSddKSApICRiYXRjaHNpemUgPSAoaW50KSRwYXJhbXNbJ2JhdGNoc2l6ZSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2xpbmVudW0nXSkgKSAkbGluZW51bSA9IChpbnQpJHBhcmFtc1snbGluZW51bSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Zwb3MnXSkgKSAkZnBvcyA9IChpbnQpJHBhcmFtc1snZnBvcyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsZWFyZmllbGRzJ10pICkgJGNsZWFyZmllbGRzID0gKGludCkkcGFyYW1zWydjbGVhcmZpZWxkcyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsZWFyYXR0cmlicyddKSApICRjbGVhcmF0dHJpYnMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyYXR0cmlicyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NsZWFyY2F0ZWdvcmllcyddKSApICRjbGVhcmNhdGVnb3JpZXMgPSAoaW50KSRwYXJhbXNbJ2NsZWFyY2F0ZWdvcmllcyddOwoKICAgICRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkZm4gPSAkY29uZmlnWydyb290X3BhdGgnXS4nL3RtcC9jYWNoZS8nLiRwYXJhbXNbJ2ZpbGVuYW1lJ107CiAgICAkdGhlX2ZpbGVzaXplID0gZmlsZXNpemUoJGZuKTsKICAgICRmaCA9IGZvcGVuKCRmbiwncicpOwogICAgaWYoICEkZmggKSB7CiAgICAgICAgZWNobyAkdGhpcy0+TGFuZygnZXJyb3JfZmlsZW9wZW4nKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgJGltYWdlSGFuZGxlciA9IG5ldyBpbXBvcnRJbWFnZUhhbmRsZXIoJHRoaXMpOwogICAgJGltYWdlSGFuZGxlci0+c2V0U291cmNlTG9jYXRpb24oY21zX2pvaW5fcGF0aCgkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSwkcGFyYW1zWydpbWFnZXBhdGgnXSkpOwogICAgJGltYWdlSGFuZGxlci0+c2V0RGVzdGluYXRpb25CYXNlKHByb2R1Y3RfdXRpbHM6OmdldF9iYXNlX3VwbG9hZF9wYXRoKCkpOwogICAgJGltYWdlSGFuZGxlci0+c2V0VW5pcXVlTmFtZXMoKTsKCiAgICAkaW1wb3J0ZXIgPSBuZXcgcHJvZHVjdHNDc3ZJbXBvcnRlcigkdGhpcyk7CiAgICAkaW1wb3J0ZXItPnNldEltYWdlSGFuZGxlcigkaW1hZ2VIYW5kbGVyKTsKICAgICRpbXBvcnRlci0+c2V0RGVsaW0oJHBhcmFtc1snZGVsaW1pdGVyJ10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2ZpZWxkcycsKGludCkkcGFyYW1zWydjcmVhdGVmaWVsZHMnXSk7CiAgICAkaW1wb3J0ZXItPnNldFBvbGljeVZhbHVlKCdoYW5kbGVfaW1hZ2VzJywoaW50KSRwYXJhbXNbJ2hhbmRsZWltYWdlcyddKTsKICAgICRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2NyZWF0ZV9oaWVyYXJjaHknLChpbnQpJHBhcmFtc1snY3JlYXRlaGllcmFyY2h5J10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2NhdGVnb3JpZXMnLChpbnQpJHBhcmFtc1snY3JlYXRlY2F0ZWdvcmllcyddKTsKICAgICRpbXBvcnRlci0+c2V0UG9saWN5VmFsdWUoJ2ltYWdlX3NvdXJjZV9sb2NhdGlvbicsJHBhcmFtc1snaW1hZ2VwYXRoJ10pOwogICAgJGltcG9ydGVyLT5zZXRQb2xpY3lWYWx1ZSgnc2tpcF9leGlzdGluZ19wcm9kdWN0cycsJHBhcmFtc1snZHVwbGljYXRlcHJvZHVjdHMnXSA9PSAnc2tpcCcpOwoKICAgICRiYXRjaGxpbmVzID0gMDsKICAgIGlmKCAkZnBvcyA+IDAgKSB7CiAgICAgICAgLy8gcHJvY2VzcyB0aGUgZmlyc3QgbGluZSBhZ2Fpbi4KICAgICAgICAkbGluZSA9ICRpbXBvcnRlci0+Z2V0X3VucGFyc2VkX3JlY29yZCgkZmgpOwogICAgICAgICRsaW5lID0gdHJpbSgkbGluZSk7CiAgICAgICAgaWYoIGVtcHR5KCRsaW5lKSApIHJldHVybjsKICAgICAgICAkcmVzID0gJGltcG9ydGVyLT5oYW5kbGVMaW5lKCRsaW5lKTsKCiAgICAgICAgLy8gc2VlayB0byBvdXIgb2xkIHBvc2l0aW9uLgogICAgICAgIGZzZWVrKCRmaCwkZnBvcyk7CiAgICB9CiAgICB3aGlsZSggIWZlb2YoJGZoKSAmJiAkYmF0Y2hsaW5lcyA8ICRiYXRjaHNpemUgKSB7CiAgICAgICAgJGxpbmUgPSAkaW1wb3J0ZXItPmdldF91bnBhcnNlZF9yZWNvcmQoJGZoKTsKICAgICAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgICAgICRsaW5lbnVtKys7CiAgICAgICAgJGJhdGNobGluZXMrKzsKICAgICAgICAkcG9zID0gZnRlbGwoJGZoKTsKICAgICAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb2dyZXNzJywoaW50KSgkcG9zIC8gJHRoZV9maWxlc2l6ZSAqIDEwMC4wKSk7CiAgICAgICAgaWYoIGVtcHR5KCRsaW5lKSApIGNvbnRpbnVlOwoKICAgICAgICAkcmVzID0gJGltcG9ydGVyLT5oYW5kbGVMaW5lKCRsaW5lKTsKICAgIH0KICAgIGlmKCAhZmVvZigkZmgpICkgewogICAgICAgIC8vIHJlYWR5IGZvciB0aGUgbmV4dCBiYXRjaAoKICAgICAgICAvLyBzYXZlIGFueSBlcnJvcnMKICAgICAgICAkZXJyb3JzID0gJGltcG9ydGVyLT5nZXRfZXJyb3JzKCk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRlcnJvcnMpICYmIGNvdW50KCRlcnJvcnMpICkgewogICAgICAgICAgICBpZiggIWlzc2V0KCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXVsnZXJyb3JzJ10pICkgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSA9IGFycmF5KCk7CiAgICAgICAgICAgICRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXVsnZXJyb3JzJ10gPSAgYXJyYXlfbWVyZ2UoJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSwkZXJyb3JzKTsKICAgICAgICB9CgogICAgICAgIC8vIHNhdmUgb3VyIHBvc2l0aW9uCiAgICAgICAgJHBvcyA9IGZ0ZWxsKCRmaCk7CiAgICAgICAgZmNsb3NlKCRmaCk7CiAgICAgICAgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydmcG9zJ10gPSAkcG9zOwogICAgICAgICRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXVsnbGluZW51bSddID0gJGxpbmVudW07CgogICAgICAgICRwYXJtcyA9IGFycmF5KCdnbyc9PjEpOwogICAgICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2ltcG9ydHByb2R1Y3RzJywkcmV0dXJuaWQsJHBhcm1zKTsKICAgIH0KICAgIC8vIHdlJ3JlIGRvbmUuCiAgICBmY2xvc2UoJGZoKTsKICAgICRlcnJvcnMgPSAkaW1wb3J0ZXItPmdldEVycm9ycygpOwogICAgaWYoIGlzX2FycmF5KCRlcnJvcnMpICkgJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSA9ICBhcnJheV9tZXJnZSgkX1NFU1NJT05bJ3Byb2R1Y3RzX2ltcG9ydF9kYXRhJ11bJ2Vycm9ycyddLCRlcnJvcnMpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdlcnJvcnMnLCRfU0VTU0lPTlsncHJvZHVjdHNfaW1wb3J0X2RhdGEnXVsnZXJyb3JzJ10pOwogICAgdW5zZXQoJF9TRVNTSU9OWydwcm9kdWN0c19pbXBvcnRfZGF0YSddWydlcnJvcnMnXSk7Cn0KCiMKIyBHaXZlIEV2ZXJ5dGhpbmcgdG8gU21hcnR5CiMKJHNtYXJ0eS0+YXNzaWduKCdmbGFnX2NyZWF0ZWZpZWxkcycsJGZsYWdfY3JlYXRlZmllbGRzKTsKJHNtYXJ0eS0+YXNzaWduKCdmbGFnX2hhbmRsZWltYWdlcycsJGZsYWdfaGFuZGxlaW1hZ2VzKTsKJHNtYXJ0eS0+YXNzaWduKCdpbWFnZXBhdGgnLCRpbWFnZXBhdGgpOwokc21hcnR5LT5hc3NpZ24oJ2ZsYWdfY3JlYXRlaGllcmFyY2h5JywkZmxhZ19jcmVhdGVoaWVyYXJjaHkpOwokc21hcnR5LT5hc3NpZ24oJ2ZsYWdfY3JlYXRlY2F0ZWdvcmllcycsJGZsYWdfY3JlYXRlY2F0ZWdvcmllcyk7CiRzbWFydHktPmFzc2lnbignZmxhZ19kdXBsaWNhdGVwcm9kdWN0cycsJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMpOwokc21hcnR5LT5hc3NpZ24oJ2RlbGltaXRlcicsJGRlbGltaXRlcik7CiRzbWFydHktPmFzc2lnbignYmF0Y2hzaXplJywkYmF0Y2hzaXplKTsKJHNtYXJ0eS0+YXNzaWduKCdjbGVhcmZpZWxkcycsJGNsZWFyZmllbGRzKTsKJHNtYXJ0eS0+YXNzaWduKCdjbGVhcmF0dHJpYnMnLCRjbGVhcmF0dHJpYnMpOwokc21hcnR5LT5hc3NpZ24oJ2NsZWFyY2F0ZWdvcmllcycsJGNsZWFyY2F0ZWdvcmllcyk7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnaW1wb3J0cHJvZHVjdHMnLCRyZXR1cm5pZCxhcnJheSgpLGZhbHNlLCdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHllc25vID0gYXJyYXkoJzAnPT4kdGhpcy0+TGFuZygnbm8nKSwnMSc9PiR0aGlzLT5MYW5nKCd5ZXMnKSk7CiRzbWFydHktPmFzc2lnbigneWVzbm8nLCR5ZXNubyk7CgojCiMgUHJvY2VzcyBUaGUgVGVtcGxhdGUKIwplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2ltcG9ydHByb2R1Y3RzLnRwbCcpOwoKIwojIEVPRgojCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.movecategoryfield.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSkKewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnbmVlZHBlcm1pc3Npb24nLCBhcnJheSgnTW9kaWZ5IFByb2R1Y3RzJykpKTsKCXJldHVybjsKfQoKLy8gaW5pdGlhbGl6ZQokZGlyID0gJ3VwJzsKJGNhdGlkID0gJyc7CiRmbGRuYW1lID0gJyc7CgppZiggaXNzZXQoJHBhcmFtc1snZGlyJ10pICkKICB7CiAgICAkZGlyID0gdHJpbSgkcGFyYW1zWydkaXInXSk7CiAgfQppZiggaXNzZXQoJHBhcmFtc1snY2F0aWQnXSkgKQogIHsKICAgICRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0aWQnXTsKICB9CmlmKCBpc3NldCgkcGFyYW1zWydmbGRuYW1lJ10pICkKICB7CiAgICAkZmxkbmFtZSA9IHRyaW0oJHBhcmFtc1snZmxkbmFtZSddKTsKICB9CgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwokZGF0YSA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkY2F0aWQsJGZsZG5hbWUpKTsKaWYoICFpc19hcnJheSgkZGF0YSkgKQogIHsKICAgIGVjaG8gIkRFQlVHOiAiLiRkYi0+c3FsLic8YnIvPic7IGRpZSgpOwogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9taXNzaW5ncGFyYW0nKSk7CiAgICAkdGhpcy0+UmVkaXJlY3QoJGlkLCdlZGl0Y2F0ZWdvcnlmaWVsZHMnLCRyZXR1cm5pZCxhcnJheSgnY2F0aWQnPT4kY2F0aWQpKTsKICB9CgokdGFibGUgPSBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMnOwpzd2l0Y2goJGRpcikKICB7CiAgY2FzZSAndXAnOgogICAgJHF1ZXJ5ID0gIlVQREFURSAkdGFibGUgU0VUIGZpZWxkX29yZGVyID0gZmllbGRfb3JkZXIgKyAxIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfb3JkZXIgPSA/IjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkZGF0YVsnZmllbGRfb3JkZXInXS0xKSk7CiAgICAkcXVlcnkgPSAiVVBEQVRFICR0YWJsZSBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciAtIDEgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyI7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY2F0aWQsJGRhdGFbJ2ZpZWxkX25hbWUnXSkpOwogICAgYnJlYWs7CgogIGNhc2UgJ2Rvd24nOgogICAgJHF1ZXJ5ID0gIlVQREFURSAkdGFibGUgU0VUIGZpZWxkX29yZGVyID0gZmllbGRfb3JkZXIgLSAxIFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfb3JkZXIgPSA/IjsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRjYXRpZCwkZGF0YVsnZmllbGRfb3JkZXInXSsxKSk7CiAgICAkcXVlcnkgPSAiVVBEQVRFICR0YWJsZSBTRVQgZmllbGRfb3JkZXIgPSBmaWVsZF9vcmRlciArIDEgV0hFUkUgY2F0ZWdvcnlfaWQgPSA/IEFORCBmaWVsZF9uYW1lID0gPyI7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkY2F0aWQsJGRhdGFbJ2ZpZWxkX25hbWUnXSkpOwogICAgYnJlYWs7CiAgfQoKJHRoaXMtPlJlZGlyZWN0KCRpZCwnZWRpdGNhdGVnb3J5ZmllbGRzJywkcmV0dXJuaWQsYXJyYXkoJ2NhdGlkJz0+JGNhdGlkKSk7CgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.search.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8KLy8gaW5pdGlhbGl6YXRpb24KLy8KJGlubGluZSA9IDA7CiRyZXN1bHRwYWdlID0gJHJldHVybmlkOwokdGhldGVtcGxhdGUgPSAkdGhpcy0+ZmluZF9sYXlvdXRfdGVtcGxhdGUoJHBhcmFtcywnc2VhcmNoZm9ybXRlbXBsYXRlJywnUHJvZHVjdHM6OlNlYXJjaCcpOwp1bnNldCgkcGFyYW1zWydzZWFyY2hmb3JtdGVtcGxhdGUnXSk7CiRzZWFyY2hmaWVsZCA9ICcnOwokc29ydG9yZGVyID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NvcnRvcmRlcicsJ2FzYycpOwokc29ydGJ5ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NvcnRieScsJ3Byb2R1Y3RfbmFtZScpOwokZmllbGRzID0gYXJyYXkoKTsKewogICAgLy8gZ2V0IGFsbCBvZiB0aGUgZmllbGQgZGVmaW5pdGlvbnMKICAgIC8vIGZpbHRlciBmb3IgdGhvc2UgdGhhdCBjYW4gYmUgdXNlZCBpbiBzZWFyY2gKICAgIC8vIGFuZCBwcmVwYXJlIHRoZSBvYmplY3RzIHNvIHRoYXQgdGhlcmUgaXMgZW5vdWdoIGluZm8gdG8gYnVpbGQgYSBmb3JtLgogICAgJHRtcCA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoKTsKICAgIGlmKCBjb3VudCgkdG1wKSApIHsKICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvYmogKSB7CiAgICAgICAgICAgIGlmKCBpbl9hcnJheSgkb2JqLT50eXBlLGFycmF5KCd0ZXh0Ym94JywnY2hlY2tib3gnLCd0ZXh0YXJlYScsJ2Ryb3Bkb3duJykpICkgewogICAgICAgICAgICAgICAgaWYoICRvYmotPnR5cGUgPT0gJ3RleHQnIHx8ICRvYmotPnR5cGUgPT0gJ3RleHRhcmVhJyB8fCAkb2JqLT50eXBlID09ICd0ZXh0Ym94JyApICRvYmotPnR5cGUgPSAndGV4dCc7CiAgICAgICAgICAgICAgICBpZiggJG9iai0+dHlwZSA9PSAnZHJvcGRvd24nICkgJG9iai0+b3B0aW9ucyA9IGNnZV9hcnJheTo6aGFzaF9wcmVwZW5kKCRvYmotPm9wdGlvbnMsLTEsJHRoaXMtPkxhbmcoJ2FueScpKTsKICAgICAgICAgICAgICAgICRmaWVsZHNbJG9iai0+bmFtZV0gPSAkb2JqOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgovLwovLyBHZXQgcGFyYW1ldGVycwovLwppZiggaXNzZXQoJHBhcmFtc1snaW5saW5lJ10pICYmICRwYXJhbXNbJ2lubGluZSddICE9IDAgKSB7CiAgICAkaW5saW5lID0gMTsKICAgIHVuc2V0KCRwYXJhbXNbJ2lubGluZSddKTsKfQppZiggaXNzZXQoJHBhcmFtc1sncmVzdWx0cGFnZSddKSApIHsKICAgICR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydyZXN1bHRwYWdlJ10pOwogICAgaWYoICR0bXAgKSB7CiAgICAgICAgJHJlc3VsdHBhZ2UgPSAkdG1wOwogICAgICAgICRpbmxpbmUgPSAwOwogICAgfQogICAgdW5zZXQoJHBhcmFtc1sncmVzdWx0cGFnZSddKTsKfQppZiggaXNzZXQoJHBhcmFtc1snc2VhcmNoZmllbGQnXSkgKSAkc2VhcmNoZmllbGQgPSB0cmltKCRwYXJhbXNbJ3NlYXJjaGZpZWxkJ10pOyAvLyB0aGlzIHBhcmFtIGlzIGRlcHJlY2F0ZWQKCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJHRoZXRlbXBsYXRlKTsKLy8KLy8gR2V0IHRoZSBmaWVsZCBkZWZpbml0aW9ucy4KLy8KaWYoICFlbXB0eSgkc2VhcmNoZmllbGQpICkgewogICAgJHNlYXJjaGZpZWxkcyA9IGFycmF5KCk7CiAgICAkdGZpZWxkID0gZXhwbG9kZSgnLCcsJHNlYXJjaGZpZWxkKTsKICAgIGZvcmVhY2goICR0ZmllbGQgYXMgJG9uZWZpZWxkICkgewogICAgICAgICRvbmVmaWVsZCA9IHRyaW0oJG9uZWZpZWxkKTsKICAgICAgICBpZiggISRvbmVmaWVsZCApIGNvbnRpbnVlOwogICAgICAgIGlmKCAhaXNzZXQoJGZpZWxkc1skb25lZmllbGRdKSApIGNvbnRpbnVlOwoKICAgICAgICAkc2VhcmNoZmllbGRzWyRvbmVmaWVsZF0gPSAkZmllbGRzWyRvbmVmaWVsZF07CiAgICB9CiAgICBpZiggY291bnQoJHNlYXJjaGZpZWxkcykgKSAkdHBsLT5hc3NpZ24oJ3NlYXJjaHByb3BzJywkc2VhcmNoZmllbGRzKTsKfQplbHNlIHsKICAgIGlmKCBjb3VudCgkZmllbGRzKSApICR0cGwtPmFzc2lnbignc2VhcmNocHJvcHMnLCRmaWVsZHMpOwp9CgokdHBsLT5hc3NpZ24oJ2NkX29yaWdwYWdlJywkcmV0dXJuaWQpOwokdHBsLT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZG9fc2VhcmNoJywkcmVzdWx0cGFnZSwkcGFyYW1zLCRpbmxpbmUpKTsKJHRwbC0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRwbC0+ZGlzcGxheSgpOwoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/docs/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/docs/changelog.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+VmVyc2lvbiAxLjAgLSBEZWNlbWJlciwgMjAwNwogICA8cD5Jbml0aWFsIFJlbGVhc2U8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDEuMC4xIC0gSmFudWFyeSwgMjAwOAogICA8dWw+CiAgICAgPGxpPkFkZHMgcGFnaW5hdGlvbiBpbiBzdW1tYXJ5IHZpZXc8L2xpPgogICAgIDxsaT5GaXhlcyBhIHByb2JsZW0gd2l0aCBkdXBsaWNhdGUgbGlua3MgaW4gc3VtbWFyeSB2aWV3PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4wIC0gQXByaWwsIDIwMDgKICA8dWw+CiAgICAgPGxpPkFkZHMgaGllcmFyY2hpY2FsIGNhdGVnb3JpZXMgYXMgd2VsbCBhcyB0aGUgb3JpZ2luYWwgJ3RhZycgYmFzZWQgY2F0ZWdvcmllcy48YnIvPgogICAgICAgICBIaWVyYXJjaGljYWwgY2F0ZWdvcmllcyBjYW4gaGF2ZSBhbiBpbWFnZSBhcyB3ZWxsIGFzIGEgZGVzY3JpcHRpb24uPC9saT4KICAgICA8bGk+QWRkcyBtb3JlIGN1c3RvbSBmaWVsZCB0eXBlcyAoaW1hZ2UsIGRyb3Bkb3duKTxici8+CiAgICAgICAgIEluY2x1ZGluZyB0aHVtYm5haWwgZ2VuZXJhdGlvbi48L2xpPgogICAgIDxsaT5SZW1vdmUgdGhlIG9yaWdpbmFsIGltYWdlIGZpZWxkczwvbGk+CiAgICAgPGxpPkFkZHMgU2VhcmNoIG1vZHVsZSBjYXBhYmlsaXR5PC9saT4KICAgICA8bGk+QWRkcyBhIGhpZXJhcmNoaWNhbCBjYXRlZ29yeSB2aWV3IHdpdGggZHJpbGwgZG93biBzdXBwb3J0PC9saT4KICAgICA8bGk+TXVjaCwgbXVjaCBtb3JlPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjAuMSAtIEFwcmlsLCAyMDA4CiAgPHVsPgogICAgIDxsaT5GaXhlcyBudW1lcm91cyBzbWFsbCBlcnJvcnMuPC9saT4KICAgICA8bGk+Rml4IHRvIGFsbG93IHNwYWNlcyBhbmQgb3RoZXIgY2hhcmFjdGVycyBpbiBoaWVyYXJjaHkgbmFtZXM8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMC4yIC0gQXVndXN0LCAyMDA4CiAgPHVsPgogICAgIDxsaT5CdWcgZml4ZXM8L2xpPgogICAgIDxsaT5Ob3cgUmVxdWlyZSBDR0V4dGVuc2lvbnMgMS45PC9saT4KICAgICA8bGk+QWRkIGEgY3VycmVuY3kgY29kZSBwcmVmZXJlbmNlPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEuMSAtIFNlcHRlbWJlciwgMjAwOAogIDx1bD4KICAgICA8bGk+QnVnIGZpeGVzPC9saT4KICAgICA8bGk+QWRkIHRoZSBhYmlsaXR5IHRvIGFzc29jaWF0ZSBzdGF0aWMgZGF0YSB3aXRoIGFueSBjYXRlZ29yeTwvbGk+CiAgICAgPGxpPkFkZCB0aGUgYWJpbGl0eSB0byBjb3B5IGNhdGVnb3JpZXM8L2xpPgogICAgIDxsaT5BZGQgdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gd2F0ZXJtYXJrIHVwbG9hZGVkIGFiaWxpdGllcy48L2xpPgogICAgIDxsaT5BZGQgdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBsb2NhdGlvbiBvZiB0aGUgd2F0ZXJtYXJrIGluIHVwbG9hZGVkIGltYWdlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMS4yIC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPlVwZGF0ZSBkZXBlbmRlbmNpZXMsIGFuZCByZW1vdmUgZGVidWcgc3RhdGVtZW50cy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMS4zIC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk1pbm9yIEJ1Z2ZpeGVzPC9saT4KICAgIDxsaT5DaGFuZ2UgdGhlIGRlbGltaXRlciBvbiB0aGUgYXR0cmlidXRlcyBkcm9wZG93bjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yIC0gRGVjZW1iZXIsIDIwMDgKICA8dWw+CiAgICA8bGk+TnVtZXJvdXMgQnVnZml4ZXM8L2xpPgogICAgPGxpPlByb2R1Y3RzIG1vZHVsZSBub3cgaGFzIGEgQ2FydCBtb2R1bGUgcHJlZmVyZW5jZSwgd2hlcmUgeW91IGNhbiBwaWNrIGZyb20gdGhlIGF2YWlsYWJsZSBjYXJ0IG1vZHVsZXMuPC9saT4KICAgIDxsaT5Nb2RpZnkgZGVmYXVsdCB0ZW1wbGF0ZXMgc28gdGhhdCB0aGUgY2FydCBtb2R1bGUgcHJlZmVyZW5jZSBpcyB1c2VkLjwvbGk+CiAgICA8bGk+UmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIHRheGVzIG9yIHNoaXBwaW5nIG1vZHVsZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIuMSAtIEphbnVhcnksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIGFiaWxpdHkgdG8gc29ydCBieSB3ZWlnaHQuPC9saT4KICAgIDxsaT5BZGQgYnJlYWRjcnVtYnMgdG8gZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGQgY2F0ZWdvcnkgaW5mb3JtYXRpb24gdG8gc3VtbWFyeSB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yLjIgLSBKYW51YXJ5LCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeCBtaW5vciBwcm9ibGVtIHdpdGggY2F0ZWdvcnkgaW5mb3JtYXRpb24gaW4gc3VtbWFyeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkIGNvbnNpc3RlbnQgb3JkZXJpbmcgdG8gR2V0Q2F0ZWdvcmllc0ZvclByb2R1Y3Q8L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMi40IC0gRmVicnVhcnksIDIwMDgKICA8dWw+CiAgICA8bGk+QWRkIElEIHRvIHRoZSBoaWVyYXJjaHkgdGFiPC9saT4KICAgIDxsaT5BZGQgdGhlIHskcGFyZW50fSB2YXJpYWJsZSB0byB0aGUgaGllcmFyY2h5IGRpc3BsYXkuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjMgLSBNYXJjaCwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGQgQ1NWIEltcG9ydDwvbGk+CiAgICA8bGk+QWRkIGluZGV4ZXMgdG8gdGhlIHRhYmxlcywgc2hvdWxkIHJlc3VsdCBpbiBhIG1hc3NpdmUgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQuPC9saT4KICAgIDxsaT5BZGQgRXh0cmExIGFuZCBFeHRyYTIgZmllbGRzIHRvIHRoZSBoaWVyYXJjaHkgZGVmaW5pdGlvbi48L2xpPgogICAgPGxpPkZpeGVzIHByb2JsZW1zIHdpdGggZGF0ZXMKICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjMuMSAtIE1hcmNoLCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeGVzIHRvIENTViBJbXBvcnQ8L2xpPgogICAgPGxpPkJ1bXAgbWluaW11bSBDTVMgVmVyc2lvbiB0byAxLjUuMzwvbGk+CiAgICA8bGk+QnVnZml4ZXMgdG8gZWRpdCBhdHRyaWJ1dGUgc2V0LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi40IC0gSnVseSwgMjAwOAogIDx1bD4KICAgIDxsaT5GaXhlcyBFZGl0IEF0dHJpYnV0ZSBTZXQgUHJvYmxlbTwvbGk+CiAgICA8bGk+QWRkcyBHZXRDYXRlZ29yeSgpIG1ldGhvZC48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC4yIC0gSnVseSwgMjAwOAogIDx1bD4KICAgIDxsaT5BZGRzIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgdXNlIGJ5IHRoZSBQcm9tb3Rpb25zIGFuZCBvdGhlciBtb2R1bGVzLjwvbGk+CiAgICA8bGk+Rml4ZXMgbWlub3IgYnVncy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNC40IC0gU2VwdGVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPkZpeGVzIG1pbm9yIGJ1Z3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNSAtIE5vdmVtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPk1pbm9yIHNtYXJ0eSBpbXByb3ZlbWVudHMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuNyAtIERlY2VtYmVyLCAyMDA4CiAgPHVsPgogICAgPGxpPkFkZHMgYWJpbGl0eSB0byBzcGVjaWZ5IGEgdGVtcGxhdGUgZm9yIHByb2R1Y3QgYXR0cmlidXRlIHZhbHVlIGRpc3BsYXkgaW4gdGhlIGRyb3Bkb3ducy48L2xpPgogICAgPGxpPkFkZHMgdGhlIHNob3dhbGwgcGFyYW1ldGVyIChvcHRpb25hbCkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24uPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjQuOCAtIEphbnVhcnksIDIwMDkKICA8dWw+CiAgICA8bGk+QWRkcyBoYW5kbGluZyBmb3IgZGlyZWN0IGFjY2VzcyB0byBkaXNhYmxlZC9kZWxldGVkL2ludmFsaWQgcHJvZHVjdCBkZXRhaWwgdmlld3MuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjUuMSAtIEZlYnJ1YXJ5LCAyMDEwCiAgPHVsPgogICAgPGxpPkltcHJvdmVtZW50cyBmb3IgTUFDIGZvcm1hdCBBU0NJSSBjc3YgZmlsZXMuPC9saT4KICAgIDxsaT5BZGRzIHByb2R1Y3QgYWxpYXMgbWVjaGFuaXNtLjwvbGk+CiAgICA8bGk+QWRkcyBicmVhZGNydW1iIHN1cHBvcnQgaW50byB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIHByZXR0eSB1cmwgc3VwcG9ydCBpbnRvIHRoZSBzZWFyY2ggcmVzdWx0cy48L2xpPgogICAgPGxpPkFkZHMgY2Fub25pY2FsIHN1cHBvcnQgaW50byB0aGUgZGV0YWlsIHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIFNLVSBzdXBwb3J0LjwvbGk+CiAgICA8bGk+QnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42IC0gTWFyY2gsIDIwMTkKIDx1bD4KICAgPGxpPk1vZGlmaWNhdGlvbnMgdG8gd29yayB3aXRoIG5ldyBFLWNvbW1lcmNlIHNldHVwLjwvbGk+CiAgIDxsaT5NYW55IGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi42LjEgLSBBcHJpbCwgMjAxOQogPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjYuMiAtIEFwcmlsLCAyMDE5CiA8dWw+CiAgIDxsaT5CdWcgRml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuNyAtIEFwcmlsLCAyMDE5CiA8dWw+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHNvcnQgc3VtbWFyeSB2aWV3cyBieSBjdXN0b20gZmllbGRzLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBmaWVsZGxpc3QgYWN0aW9uIHRvIGFsbG93IGNyZWF0aW5nIG5hdmlnYXRpb25zIG9uIGN1c3RvbSBmaWVsZHMuPC9saT4KICAgPGxpPkFkZHMgc2VhcmNoIGFjdGlvbiB0byBhbGxvdyBzZWFyY2hpbmcgcHJvZHVjdHMuPC9saT4KICAgPGxpPlJlbW92ZSBjdXJyZW5jeSBjb2RlIGFuZCBvdGhlciBwcmVmZXJlbmNlcyB0aGF0IGFyZSBub3cgaW4gQ0dFY29tbWVyY2VCYXNlLi4uIHdlbGwgaWYgQ0dFY29tbWVyY2VCYXNlIGlzIGluc3RhbGxlZCBhbnl3YXlzLjwvbGk+CiAgIDxsaT5SZW1vdmUgc29tZSBwcmVmZXJlbmNlcyBhbmQgdGVtcGxhdGVzIHRoYXQgYXJlIG5vdyBob3N0ZWQgaW4gQ0dFY29tbWVyY2VCYXNlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuMSAtIEFwcmlsLCAyMDEwCiA8dWw+CiAgIDxsaT5BZGRzIGEgcmV0dXJuIGxpbmsgdG8gdGhlIGNhdGVnb3J5IGZpZWxkcyBlZGl0IHBhZ2UuPC9saT4KICAgPGxpPkFkZHMgYSBkZXRhaWxfdXJsIHBhcmFtIHRvIHRoZSBjYXRlZ29yeSBsaXN0IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIGNhdGVnb3J5bGlzdGR0bHRlbXBsYXRlIHBhcmFtLjwvbGk+CiAgIDxsaT5DYXRlZ29yeSBMaXN0IHZpZXcgbm93IHVzZXMgdGhlIHJlc3VsdHBhZ2UgcGFyYW1ldGVyIGJ5IGRlZmF1bHQuPC9saT4KICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGRlbGV0aW5nIGZpbGVzIGluIHRoZSBlZGl0IHByb2R1Y3QgcGFnZS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjMgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+UmVtb3ZlIHRoZSBpbWFnZSB3aGVuIHJlbW92aW5nIHRoZSBoaWVyYXJjaHkgaXRlbS48L2xpPgogICA8bGk+SW1wcm92ZW1lbnRzIHRvIGNhdGVnb3J5IGZpZWxkIG9yZGVyaW5nLjwvbGk+CiAgIDxsaT5BZGRzIHRoZSBhYmlsaXR5IHRvIHJlbmFtZSBjYXRlZ29yeSBmaWVsZHMuPC9saT4KICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi43LjQgLSBBcHJpbCwgMjAxMAogPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuNSAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgcHJvYmxlbSB3aXRoIHNlYXJjaCB0ZW1wbGF0ZXMgb24gdXBncmFkZS48L2xpPgogICA8bGk+QWRkcyBjYXRlZ29yeSBmaWVsZCByZW9yZGVyaW5nLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjcuNiAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgdG8gY2F0ZWdvcnkgZmllbGQgcmUtb3JkZXJpbmcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOCAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+QWRkcyBhIHRydWUgaGllcmFyY2h5IG1vZGUuPGJyLz4KICAgICAgIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyB3aWxsIGJyZWFrIGV4aXN0aW5nIHNpdGVzIHVzaW5nIHRoZSBvbGRlciBoaWVyYXJjaHkgdmlldy4gIFlvdSBzaG91bGQgcmVhZCB0aGUgaGVscCBmb3IgaW5mb3JtYXRpb24gYXMgdG8gaG93IHRvIHVzZSB0aGUgbmV3IHZpZXcuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gYWRkIGN1c3RvbSBmaWVsZHMgdG8gdGhlIGFkbWluIHNpZGUgcHJvZHVjdCB0YWJsZSB2aWV3LjwvbGk+CiAgIDxsaT5JbXByb3ZlcyB0aGUgQ1NWIGltcG9ydCBmdW5jdGlvbi48L2xpPgogICA8bGk+QWRkcyBhIG5ldyBkaW1lbnNpb24gZGF0YSBmaWVsZC48L2xpCiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguMSAtIE1heSwgMjAxMAogPHVsPgogICA8bGk+TWlub3IgYnVnIGZpeGVzIHRvIGFkbWluIGRpc3BsYXkuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4yIC0gTWF5LCAyMDEwCiA8dWw+CiAgIDxsaT5GaXggdG8gZGVmYXVsdCBoaWVyYXJjaHkgdGVtcGxhdGUuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC4yIC0gTWF5LCAyMDEwCiA8dWw+CiAgICA8bGk+QWRkcyBzdWJzY3JpcHRpb24gZmllbGQgdHlwZS48L2xpPgogICAgPGxpPk1pbm9yIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPkFkZGVkIHN1cHBvcnQgZm9yIGZpZWxkdmFsPSc6Om5vdG51bGw6Oicgb24gdGhlIHN1bW1hcnkgdmlldy48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi44LjMgLSBKdWx5LCAyMDEwCiA8dWw+CiAgICA8bGk+UmVtb3ZlcyB0aGUgdXNlb2xkaGllcmFyY2h5IHBhcmFtIGZyb20gdGhlIGhpZXJhcmNoeSB2aWV3LjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBmaWx0ZXIgdGhlIG91dHB1dCBpbiB0aGUgY2F0ZWdvcnlsaXN0IHZpZXcuPC9saT4KICAgIDxsaT5NaW5vciBidWcgZml4ZXMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC40IC0gU2VwdGVtYmVyLCAyMDEwCiA8dWw+CiAgICA8bGk+QWRkcyBhIHByZWZlcmVuY2UgZm9yIHRoZSBkZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjguNSAtIFNlcHRlbWJlciwgMjAxMAogPHVsPgogICAgPGxpPkFkZHMgc29ydGluZyBjYXBhYmlsaXRpZXMgdG8gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgICA8bGk+UmUtd29ya3MgdGhlIGhpZXJhcmNoeSB2aWV3IChhZ2FpbikuICBUZW1wbGF0ZXMgd2lsbCBuZWVkIHRvIGNoYW5nZS48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZXhwbGljaXRseSBsaXN0IGhpZXJhcmNoeSBpdGVtcyBpbiB0aGUgaGllcmFyY2h5IHZpZXcuPC9saT4KICAgIDxsaT5BZGRzIGNvbW1hIHNlcGFyYXRlZCBoaWVyYXJjaHkgY2FwYWJpbGl0eSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuOC42IC0gU2VwdGVtYmVyLCAyMDEwCiA8dWw+CiAgIDxsaT5GaXhlcyB0byBDU1YgaW1wb3J0IHN0dWZmLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjkgLSBEZWNlbWJlciwgMjAxMAogPHVsPgogICA8bGk+Rml4ZXMgc29tZSBpc3N1ZXMgcmVsYXRlZCB0byBFX1NUUklDVCBhbmQgRV9ERVBSRUNBVEVEPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gY29weSBhdHRyaWJ1dGUgc2V0cyBmcm9tIGFub3RoZXIgcHJvZHVjdC48L2xpPgogICA8bGk+Rml4ZXMgdG8gQ1NWIGltcG9ydCBzdHVmZi48L2xpPgogICA8bGk+Rml4ZXMgdG8gZW50ZXJpbmcgYSBza3UgaW4gYXR0cmlidXRlcy48L2xpPgogICA8bGk+QWRkcyBoaWVyYXJjaHkgaW5mb3JtYXRpb24gdG8gc2VhcmNoLCBzdW1tYXJ5IGFuZCBkZXRhaWwgdmlld3MuPC9saT4KICAgPGxpPkZpeGVzIGFuIGlzc3VlIHdpdGggcGFnaW5hdGlvbiBpbiB0aGUgYWRtaW4gcGFuZWwgcHJvZHVjdHMgdGFiLjwvbGk+CiAgIDxsaT5GaXhlcyBhbiBpc3N1ZSB3aXRoIHBhZ2UgY291bnRzIGluIHRoZSBwcm9kdWN0cyB0YWIgd2hlbiBhIGN1c3RvbSBmaWVsZCBpcyBhZGRlZCB0byB0aGUgdmlldyBsaXN0LjwvbGk+CiAgIDxsaT5NYW55IG1vcmUgYnVnIGZpeGVzIGFuZCBtaW5vciBpbXByb3ZlbWVudHMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuMiAtIEphbnVhcnksIDIwMTEKIDx1bD4KICAgPGxpPkFkZHMgY2Fub25pY2FsIFVSTCB0byB0aGUgaGllcmFyY2h5IGl0ZW0sIGluIHRoZSBoaWVyYXJjaHkgdmlldy48L2xpPgogICA8bGk+QWRkcyB0aGUgcHJvZHVjdGxpc3QgcGFyYW1ldGVyIHRvIG91dHB1dCBhIHN1bW1hcnkgdmlldyBvZiBzcGVjaWZpYyBwcm9kdWN0cy4gIERvZXMgbm90IHByb3ZpZGUgcGFnaW5hdGlvbiBvciBzb3J0aW5nLjwvbGk+CiA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEwLjMgLSBGZWJydWFyeSwgMjAxMQogPHVsPgogICA8bGk+Rml4ZXMgYnVnIHdpdGggZGVmYXVsdCB2aWV3Li4uLiB0aGFua3Mgc3Rpa2tpPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTAuNCAtIE1heSwgMjAxMQogPHVsPgogICA8bGk+TWlub3IgZml4IHRvIHRoZSB1bmluc3RhbGxlci48L2xpPgogICA8bGk+QWRkcyB0aGUgY2F0ZWdvcnlmaWVsZCBwYXJhbWV0ZXIgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24uPC9saT4KICAgPGxpPkZpeGVzIGEgcHJvYmxlbSB3aXRoIGNhdGVnb3J5IGZpZWxkcyB3aGVuIGNvcHlpbmcgYSBjYXRlZ29yeS48L2xpPgogPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMC41IC0gTWF5LCAyMDExCiA8dWw+CiAgIDxsaT5NaW5vcmVzIGZpeCB0byBjYXRlb2dyeSBmaWVsZHMuPC9saT4KIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTEgLSBNYXksIDIwMTEKICA8dWw+CiAgICA8bGk+QWRkcyB0aGUgJnF1b3Q7ZXhjbHVkZWNhdCZxdW90OyBwYXJhbWV0ZXIuPC9saT4KICAgIDxsaT5SZW1vdmVzIHNvbWUgZXJyYW50IGRlYnVnIHN0YXRlbWVudHMgaW4gdGhlIGNhdGVnb3J5bGlzdCB2aWV3LjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMiAtIE1heSwgMjAxMQogIDx1bD4KICAgIDxsaT5UaGVyZSBpcyBub3cgYW4gb3B0aW9uIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBTS1UgaXMgcmVxdWlyZWQgd2hlbiBhZGRpbmcvZWRpdGluZyBwcm9kdWN0cy9hdHRyaWJ1dGVzLjwvbGk+CiAgICA8bGk+VGhlIGltYWdlIHRodW1ibmFpbCwgcHJldmlldywgYW5kIHdhdGVybWFya2luZyBzdHVmZiBpcyBub3cgREVQUkVDQVRFRC48L2xpPgogICAgPGxpPkFkZGVkIHRoZSBhdHRyaWJzX2Z1bGwgc3R1ZmYgaW50byB0aGUgZGV0YWlsIGFuZCBzdW1tYXJ5IHZpZXdzLiAgIHRoZSBhdHRyaWJ1dGVzIG1lbWJlciBvZiBvdXRwdXQgb2JqZWN0cyBpcyBkZXByZWNhdGVkLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMi4xIC0gTWF5LCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgY2FjaGluZyBmb3IgZmllbGQgZGVmaW5pdGlvbnMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzIC0gSnVseSwgMjAxMQogIDx1bD4KICAgPGxpPkFkZHMgYnVsayBhY3Rpb25zIGluIHRoZSBwcm9kdWN0IGxpc3QuPC9saT4KICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZXhjbHVkZSBwcm9kdWN0cyBpbiBjZXJ0YWluIGNhdGVnb3JpZXMgZnJvbSB0aGUgcHJvZHVjdCBsaXN0LjwvbGk+CiAgIDxsaT5OdW1lcm91cyBtaW5vciBidWcgZml4ZXMuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjEzLjEgLSBKdWx5LCAyMDExCiAgPHVsPgogICA8bGk+QnVnIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xMy4yIC0gSnVseSwgMjAxMQogIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTMuMyAtIEF1Z3VzdCwgMjAxMQogIDx1bD4KICAgPGxpPkJ1ZyBGaXhlcy48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTQgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgIDxsaT5BZGRzIGZ1bmN0aW9uYWxpdHkgZm9yIGR5bmFtaWNhbGx5IHJlb3JnYW5pemluZyB0aGUgaGllcmFyY2h5IHRyZWUuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE1IC0gQXVndXN0LCAyMDExCiAgPHVsPgogICAgPGxpPkFkZHMgYSBzaW1wbGUgcXVhbnRpdHktb24taGFuZCBmaWVsZC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTYgLSBBdWd1c3QsIDIwMTEKICA8dWw+CiAgICA8bGk+VmFzdGx5IGltcHJvdmVkIHNlYXJjaCBjYXBhYmlsaXRpZXMuICBOb3RlOiBleGlzdGluZyB0ZW1wbGF0ZXMgd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQgYXMgZmllbGQgbmFtZXMgaGF2ZSBjaGFuZ2VkLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xNyAtIE1hcmNoLCAyMDEyCiAgPHVsPgogICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZHVwbGljYXRlIGEgcHJvZHVjdC48L2xpPgogIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDIuMTguMiAtIEp1bmUsIDIwMTIKICA8dWw+CiAgICA8bGk+Q3JlYXRlcyBhIG5ldyBmbGV4aWJsZSBxdWVyeSBjbGFzcyBhbmQgbWF0Y2hpbmcgcmVzdWx0c2V0IGNsYXNzLjwvbGk+CiAgICA8bGk+RHJhbWF0aWMgcGVyZm9ybWFuY2UgaW1wcm92bWVudCBmb3Igc3VtbWFyeSB2aWV3cy48L2xpPgogICAgPGxpPkFkZHMgdGhlIGFiaWxpdHkgdG8gZXhwb3J0IHByb2R1Y3QgaW5mb3JtYXRpb24gdG8gY3N2LjwvbGk+CiAgICA8bGk+TWFueSBpbXByb3ZlbWVudHMgdG8gQ1NWIGltcG9ydC48L2xpPgogICAgPGxpPkFkZHMgYW4gb3B0aW9uYWwgbmV3IGRlZmF1bHQgYWN0aW9uIHdoaWNoIHNob3VsZCBiZSBtdWNoIGZhc3Rlci4gIE9yaWdpbmFsIGRlZmF1bHQgYWN0aW9uIHdpbGwgYmUgcmVtb3ZlZCBvdmVyIHRpbWUuPC9saT4KICAgIDxsaT5IZWxwIGlzIG5vdyBpbiBpdHMgb3duIGZpbGUuPC9saT4KICAgIDxsaT5BZGQgdGhlICdwYXJlbnRzJyBwYXJhbWV0ZXIgdG8gdGhlIGhpZXJhcmNoeSBhY3Rpb24uPC9saT4KICAgIDxsaT5OdW1lcm91cyBjYWNoaW5nIG9wdGltaXphdGlvbnMuPC9saT4KICAgIDxsaT5Nb3JlIGluZGV4ZXMgb24gdGhlIHByb2R1Y3RzIHRhYmxlIGR1cmluZyBpbnN0YWxsLjwvbGk+CiAgICA8bGk+TGFuZ3VhZ2UgY2hhbmdlLi4uIGluIG1vc3QgcGxhY2VzLCBwcm9kdWN0cyBhcmUgbm93IHJlZmVycmVkIHRvIGFzICZxdW90O2l0ZW1zJnF1b3Q7PC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjE4LjMgLSBKdWx5LCAyMDEyCiAgPHVsPgogICAgPGxpPk1pbm9yIEZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4xOS54IC0gRGVjZW1iZXIsIDIwMTIKICA8cD48c3Ryb25nPk5PVEU6IENPTVBBVElCSUxJVFkgQlJPS0VOLiAgU09NRSBDSEFOR0VTIFJFUVVJUkVELjwvc3Ryb25nPjwvcD4KICA8cD48c3Ryb25nPk5PVEU6IFBIUCA1LjMueCBJUyBSRVFVSVJFRC48L3N0cm9uZz48L3A+CiAgPHVsPgogICAgPGxpPlJlbW92ZXMgdGhlIGVudGlyZSBhdHRyaWJ1dGUgbWVjaGFuaXNtIGFuZCByZXBsYWNlcyBpdCB3aXRoIGEgZmxhdCBsaXN0IG9mIG9wdGlvbnMuCiAgICAgIDxwPlRoaXMgbWVhbnMgdGhhdCBzaG9wcyB1c2luZyB0aGUgYXR0cmlidXRlcyB3aWxsIG5lZWQgdG8gYWRqdXN0IHRoZWlyIHByb2R1Y3RzIGJlY2F1c2UgaW5zdGVhZCBvZiBoYXZpbmcgbXVsdGlwbGUgJnF1b3Q7YXR0cmlidXRlcyZxdW90OyB0aGVyZSBpcyBub3cgb25lIGZsYXQgbGlzdCBvZiBvcHRpb25zIHdpdGggYSBzaW1wbGUgdGV4dCBmaWVsZCB0byBkZXNjcmliZSB0aGVtLjwvcD4KICAgICAgPHA+QWRkaXRpb25hbGx5LCBzdW1tYXJ5IGFuZCBkZXRhaWwgdGVtcGxhdGVzIHdoZXJlIGF0dHJpYnV0ZXMgd2VyZSBkaXNwbGF5ZWQgd2lsbCBuZWVkIGFkanVzdG1lbnQuPC9wPgogICAgPC9saT4KICAgIDxsaT5TS1VzIGFyZSBub3cgcmVxdWlyZWQgYnkgZGVmYXVsdCAoYXMgdGhleSBhcmUgbmVlZGVkIGZvciB0aGUgQ2FydDIgbW9kdWxlKTwvbGk+CiAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yMCAtIE9jdG9iZXIsIDIwMTMKICA8dWw+CiAgICA8bGk+UmVmYWN0b3IgdGhlIHNlYXJjaCBhY3Rpb24KICAgICAgPHVsPgogICAgICAgIDxsaT5JbXByb3ZlZCBhYmlsaXR5IHRvIHNlYXJjaCBvbiBjdXN0b20gZmllbGRzPC9saT4KICAgICAgICA8bGk+SW1wcm92ZWQgYWJpbGl0eSB0byBzcGVjaWZ5IHNlYXJjaCBiZWhhdmlvciBpbiB0aGUgc2VhcmNoIHRlbXBsYXRlLCBhcyBvcHBvc2VkIHRvIHRoZSBQcm9kdWN0cyBUYWcuPC9saT4KICAgICAgICA8bGk+Rml4ZXMgcGFnaW5hdGlvbiBsaW5rcy48L2xpPgogICAgICAgIDxsaT5JbXByb3ZlZCBkb2N1bWVudGF0aW9uIGluIHRoZSBwcm90b3R5cGUgc2VhcmNoIGZvcm0gdGVtcGxhdGUuPC9saT4KICAgICAgICA8bGk+Tm93IHVzZXMgdGhlIHNhbWUgY2xhc3NlcyB1c2VkIGZvciBnZW5lcmF0aW5nIHN1bW1hcnkgdmlld3MuLi4uIHdpdGggdGhlIHNhbWUgb3B0aW1pemF0aW9ucy48L2xpPgogICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaT5OZXcgY29tcGFueWRpcmVjdG9yeSBmaWVsZCB0eXBlIGFsbG93aW5nIGxpbmtpbmcgYSBwcm9kdWN0IHRvIGEgY29tcGFueS4gIFVzZXMgYW4gYWpheHkgYXV0b2NvbXBsZXRlIG1lY2hhbmlzbSBmb3IgZmluZGluZyBDb21wYW5pZXMuPC9saT4KICAgIDxsaT5JbXByb3ZlZCBhZG1pbiBmaWx0ZXJpbmcKICAgICAgPHVsPgogICAgICAgIDxsaT5GaWx0ZXIgb24gU0tVIG9yIHByb2R1Y3QgbmFtZTwvbGk+CiAgICAgICAgPGxpPkFkZHMgYWJpbGl0eSB0byBzb3J0IG9uIGN1c3RvbSBmaWVsZHMgbnVtZXJpY2FsbHkuPC9saT4KICAgICAgICA8bGk+RmlsdGVyIGlzIG5vdyBzdG9yZWQgYXMgYSB1c2VyIHByZWZlcmVuY2UsIGFuZCBwYWdlIG51bWJlciBzdG9yZWQgaW4gdGhlIHNlc3Npb24uPC9saT4KICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGk+VHdlYWtzIHRvIENTViBJbXBvcnQ8L2xpPgogICAgPGxpPk51bWVyb3VzIG1pbm9yIGVuaGFuY2VtZW50czwvbGk+CiAgICA8bGk+QSBjb3VwbGUgbmV3IGRhdGFiYXNlIGluZGV4ZXMgZm9yIHBlcmZvcm1hbmNlLjwvbGk+CiAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgICA8bGk+TW9yZS4uLjwvbGk+CiAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMi4yMS54CiAgPHVsPgogICAgPGxpPkFkZHMgb3JkZXJpbmcgdG8gdGhlIHByb2R1Y3Qgb3B0aW9ucy48L2xpPgogICAgPGxpPlJld3JvdGUgdGhlIHByb2R1Y3Qgb3B0aW9ucyBkaWFsb2cuPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAyLjIyLngKICA8dWw+CiAgICA8bGk+UmV3b3JrIHRoZSBoaWVyYXJjaHkgYWN0aW9uIGFnYWluLi4uIG5vdyBzdXBwb3J0IHNob3dpbmcgaXRlbXMgZnJvbSBjaGlsZCBjYXRlZ29yaWVzIDxzdHJvbmc+YnkgZGVmYXVsdDwvc3Ryb25nPi4KICAgICAgPHA+PHN0cm9uZz5UaGlzIGlzIGEgY2hhbmdlIGluIGJlaGF2aW9yOjwvc3Ryb25nPiB5b3UgbWF5IG5lZWQgdG8gYWRqdXN0IHlvdXIgd2Vic2l0ZXMuPC9wPgogICAgICA8cD5UaGlzIG1lYW5zIHRoYXQgdGhlIGFjdGlvbj1oaWVyYXJjaHkgd2lsbCBub3cgZ2VuZXJhdGUgbGlua3MgdG8gc3VtbWFyeSB2aWV3cyB0aGF0IHdpbGwgc2hvdyB0aGUgcHJvZHVjdHMgb2YgdGhhdCBoaWVyYXJjaHksIGFuZCBpdHMgY2hpbGRyZW4uPC9wPgogICAgICA8cD5UbyByZXN0b3JlIHRoZSBvbGQgYmVoYXZpb3IgdGhlIG5vY2hpbGRyZW49MSBwYXJhbWV0ZXIgd2FzIGFkZGVkLiAgSG93ZXZlciwgdGhlIFVSTFMgZ2VuZXJhdGVkIHdoZW4gbm9jaGlsZHJlbj0xIGlzIGFkZGVkIHRvIHRoZSB0YWcgd2lsbCBub3QgYmUgcHJldHR5LjwvcD4KICAgIDwvbGk+CiAgICA8bGk+SW1wcm92ZW1lbnRzIHRvIEFTQ0lJIGltcG9ydGluZzoKICAgICAgPHA+Tm93IHN1cHBvcnRzIGltcG9ydGluZyBwcm9kdWN0IG9wdGlvbnMgcHJvcGVybHkuPC9wPgogICAgICA8cD5Ob3cgc3VwcG9ydCBpbXBvcnRpbmcgY2F0ZWdvcmllcyB3aXRoIHRoZSBkZWxpbWl0ZXIgaW4gaXRzIG5hbWUuPC9wPgogICAgPC9saT4KICAgIDxsaT5iZWdpbiByZW1vdmluZyBkZXByZWNhdGVkIGZ1bmN0aW9ucyBhbmQgZnVuY3Rpb25hbGl0eS48L2xpPgogICAgPGxpPkltcHJvdmVtZW50cyB0byB0aGUgb3JkZXJ1cGRhdGVkIGV2ZW50IHdydCB1cGRhdGluZyBxdWFudGl0eSBvbiBoYW5kLjwvbGk+CiAgPC91bD4KPC9saT4+CgogICA8bGk+VmVyc2lvbiAyLjIzLngKICAgICA8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+PHN0cm9uZz5XQVJOSU5HOjwvc3Ryb25nPiBUaGUgcHJvZHVjdHMgbW9kdWxlIHdpbGwgbm8gbG9uZ2VyIGdlbmVyYXRlIHByZXZpZXcgYW5kIHRodW1ibmFpbCBpbWFnZXMgb24gaW1hZ2UgdXBsb2FkLiAgVXNlIENHU21hcnRJbWFnZSBmb3IgdGhpcyBwdXJwb3NlLgogICAgICAgVGhvdWdoIHRoZXJlIGlzIHN0aWxsIHNvbWUgY29kZSB0byB3b3JrIHdpdGggcHJldmlldyBhbmQgdGh1bWIgaW1hZ2VzIGlmIHRoZXkgYWxyZWFkeSBleGlzdC4gIFRoaXMgZnVuY3Rpb25hbGl0eSB3aWxsIGJlIHJlbW92ZWQgYXQgYSBsYXRlciBkYXRlLjwvZGl2PgogICAgIDx1bD4KICAgPC9saT4KCiAgIDxsaT5WZXJzaW9uIDIuMjQKICAgICA8dWw+CiAgICAgICA8bGk+QWRkIFVSTCBzbHVnIGZ1bmN0aW9uYWxpdHkgbGlrZSB3aGF0IENHQmxvZyBhbmQgTmV3cyBIYXZlLjwvbGk+CiAgICAgICA8bGk+Q29kZSBjbGVhbnVwIGFuZCB0ZW1wbGF0ZSBmaXhlcy48L2xpPgogICAgICAgPGxpPlJld29yayAoYWdhaW4pIHRoZSBoaWVyYXJjaHkgdmlldy48L2xpPgogICAgICAgPGxpPk51bWVyb3VzIGJ1ZyBmaXhlcy48L2xpPgogICAgIDwvdWw+CiAgIDwvbGk+CgogICA8bGk+VmVyc2lvbiAyLjI1CiAgICAgPGJyLz4KICAgICA8cCBjbGFzcz0id2FybmluZyI+PHN0cm9uZz5XYXJuaW5nOjwvc3Ryb25nPiBUaGlzIGlzIHRoZSBsYXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgZm9yIENNU01TIDEueC4gIEFsbCBzdWJzZXF1ZW50IHJlbGVhc2VzIHdpbGwgcmVxdWlyZSBDTVNNUyAyLnggYW5kIHdpbGwgaW50ZWdyYXRlIHdpdGggdGhlIERlc2lnbiBNYW5hZ2VyLjwvcD4KICAgICA8dWw+CiAgICAgICA8bGk+QWRkcyBhIG5ldyBidWxrIGFjdGlvbiBmb3IgYWRqdXN0bmcgc3RvY2sgbGV2ZWxzLjwvbGk+CiAgICAgPC91bD4KICAgPC9saT4KCiAgIDxsaT5WZXJzaW9uIDIuMjYKICAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48aDQ+V2FybmluZzo8L2g0PgogICAgICAgPHA+VGhpcyB2ZXJzaW9uIG5vdyB1c2VzIERlc2lnbk1hbmFnZXIgdG8gbWFuYWdlIGFsbCBmcm9udGVuZCB2aWV3IHRlbXBsYXRlcy4gIFRob3VnaCB0aGUgdGVtcGxhdGUgY29udGVudHMgaGF2ZSBub3QgY2hhbmdlZCwgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGVtcGxhdGUgbmFtZXMgYXJlIHVuaXF1ZSB0aGUgbmFtZXMgbWF5IGhhdmUgYmVlbiBhbHRlcmVkIGR1cmluZyB0aGUgY29udmVyc2lvbiBwcm9jZXNzLiAgIFlvdSBtYXkgbmVlZCB0byBtb2RpZnkgdGhlIGxvY2F0aW9ucyB3aGVyZSB5b3Ugc3BlY2lmeSBhbHRlcm5hdGUgdGVtcGxhdGVzIHRvIHJlZmxlY3QgdGhlIG5ldyB0ZW1wbGF0ZSBuYW1lcy48L3A+CiAgICAgICA8cD5UaGlzIGlzIGEgbWFqb3IgcmV2aXNpb24uICBUaG91Z2ggdGVzdGluZyBoYXMgYmVlbiBwZXJmb3JtZWQsIGFuZCBkYXRhIHN0cnVjdHVyZSBjaGFuZ2VzIGFyZSBtaW5pbWFsLCBwbGVhc2UgZG8gZXh0ZW5zaXZlIHRlc3RpbmcuPC9wPgogICAgIDwvZGl2PgogICAgIDx1bD4KICAgICAgIDxsaT5Ob3cgcmVxdWlyZXMgQ01TTVMgMi4xLjYgb3IgbGF0ZXIuPC9saT4KICAgICAgIDxsaT5BZGRzIGFuIG93bmVyX2lkIGZpZWxkIGFuZCBhbiBhYmlsaXR5IHRvIHNldCBhbiBvd25lcjwvbGk+CiAgICAgICA8bGk+TnVtZXJvdXMgYnVnIGZpeGVzLjwvbGk+CiAgICAgICA8bGk+QWRkcyBhbiBvcHRpb24gZm9yIEZFVSBvd25lciBncm91cCB0byB0aGUgcHJlZmVyZW5jZXMgdGFiLjwvbGk+CiAgICAgICA8bGk+Tm93IHN0b3JlcyBhbGwgYnV0IGVtYWlsIHRlbXBsYXRlcyBpbiBEZXNpZ25NYW5hZ2VyLCBhbGxvd3MgZ2V0dGluZyByaWQgb2YgYWxvdCBvZiBjb2RlLjwvbGk+CiAgICAgICA8bGk+Tm93IHdvcmtzIHdpdGggdGhlIEFkbWluU2VhcmNoIG1vZHVsZS48L2xpPgogICAgICAgPGxpPlJlZmFjdG9yaW5nIG9mIGFsbCBxdWVyeSwgc3RvcmFnZSwgYW5kIGRpc3BsYXkgY2xhc3Nlcy48L2xpPgogICAgICAgPGxpPlJlZmFjdG9yeSB0aGUgYWRkIGFuZCBlZGl0IHByb2R1Y3QgZm9ybXMuPC9saT4KICAgICAgIDxsaT5SZW1vdmUgYWxsIHRyYWNlcyBvZiBpbWFnZSBwcm9jZXNzaW5nLjwvbGk+CiAgICAgICA8bGk+cmUtZmFjdG9yIG51bWVyb3VzIGFkbWluIGZvcm1zIGFuZCBkaXNwbGF5cyB0byBiZSBzbWFsbGVyLCBjbGVhbmVyLCBhbmQgbW9yZSBlZmZpY2llbnQuPC9saT4KICAgICAgIDxsaT5maWVsZCBkZWZpbml0aW9ucyBjYW4gbm93IGJlIHJlLW9yZGVyZWQgdmlhIGRyYWcvZHJvcC48L2xpPgogICAgICAgPGxpPm1vcmUuLi48L2xpPgogICAgIDwvdWw+CiAgIDwvbGk+CgogICA8bGk+VmVyc2lvbiAyLjI3LngKICAgICA8dWw+CiAgICAgICA8bGlMPk5vdyBiZWdpbnMgdG8gdXNlIGhvb2tzLjwvbGk+CiAgICAgICA8bGk+Tm93IHJlcXVpcmVzIENNU01TIDIuMi4yIG9yIGxhdGVyLjwvbGk+CiAgICAgICA8bGk+UmV3cml0ZSBidWxrIGFjdGlvbiBmdW5jdGlvbmFsaXR5LjwvbGk+CiAgICAgICA8bGk+QWRkcyBhIG5ldyBsaW5rZWQgZmlsZSBmaWVsZCB0eXBlLjwvbGk+CiAgICAgICA8bGk+QWRkcyBhIG5ldyBzaW1wbGUgYWxidW0gaW50ZXJmYWNlIHVzaW5nIHRoZSB7Y21zX2ZpbGVwaWNrZXJ9PC9saT4KICAgICAgIDxsaT5BZGRzIHtwcm9kdWN0c19nZXRoaWVyYXJjaHl9IHNtYXJ0eSBwbHVnaW4uPC9saT4KICAgICAgIDxsaT5NaW5vciBmaXhlcy48L2xpPgogICAgIDwvdWw+CiAgIDwvbGk+CjwvdWw+Cg==]]></data>
	</file>
	<file>
	  <filename>/docs/COPYING</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgpzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3MuCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAp0byB0YWtlIGF3YXkgeW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAgQnkgY29udHJhc3QsCnRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCnNoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQpzb2Z0d2FyZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1c2UgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCmFueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91CndhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CmZyZWUgcHJvZ3JhbXMsIGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKdGhlc2UgcmlnaHRzIG9yIGFza2luZyB5b3UgdG8gc3VycmVuZGVyIHRoZSByaWdodHMuICBUaGVyZWZvcmUsIHlvdSBoYXZlCmNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgp5b3UgbW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKZnJlZWRvbXMgdGhhdCB5b3UgcmVjZWl2ZWQuICBZb3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGV5LCB0b28sIHJlY2VpdmUKb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKa25vdyB0aGVpciByaWdodHMuCgogIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0aGlzIExpY2Vuc2UKZ2l2aW5nIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSBpdC4KCiAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCnRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZSBzb2Z0d2FyZS4gIEZvciBib3RoIHVzZXJzJyBhbmQKYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcwpjaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KYXV0aG9ycyBvZiBwcmV2aW91cyB2ZXJzaW9ucy4KCiAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0byBpbnN0YWxsIG9yIHJ1bgptb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGUgc29mdHdhcmUgaW5zaWRlIHRoZW0sIGFsdGhvdWdoIHRoZSBtYW51ZmFjdHVyZXIKY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKcHJvdGVjdGluZyB1c2VycycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKcGF0dGVybiBvZiBzdWNoIGFidXNlIG9jY3VycyBpbiB0aGUgYXJlYSBvZiBwcm9kdWN0cyBmb3IgaW5kaXZpZHVhbHMgdG8KdXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCmhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQpwcm9kdWN0cy4gIElmIHN1Y2ggcHJvYmxlbXMgYXJpc2Ugc3Vic3RhbnRpYWxseSBpbiBvdGhlciBkb21haW5zLCB3ZQpzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20gb2YgdXNlcnMuCgogIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuClN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgpzb2Z0d2FyZSBvbiBnZW5lcmFsLXB1cnBvc2UgY29tcHV0ZXJzLCBidXQgaW4gdGhvc2UgdGhhdCBkbywgd2Ugd2lzaCB0bwphdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKcGF0ZW50cyBjYW5ub3QgYmUgdXNlZCB0byByZW5kZXIgdGhlIHByb2dyYW0gbm9uLWZyZWUuCgogIFRoZSBwcmVjaXNlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCm1vZGlmaWNhdGlvbiBmb2xsb3cuCgogICAgICAgICAgICAgICAgICAgICAgIFRFUk1TIEFORCBDT05ESVRJT05TCgogIDAuIERlZmluaXRpb25zLgoKICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgIkNvcHlyaWdodCIgYWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8gb3RoZXIga2luZHMgb2YKd29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KCiAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHlyaWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCkxpY2Vuc2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFuZAoicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCgogIFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBhcnQgb2YgdGhlIHdvcmsKaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCmV4YWN0IGNvcHkuICBUaGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNpb24iIG9mIHRoZQplYXJsaWVyIHdvcmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KCiAgQSAiY292ZXJlZCB3b3JrIiBtZWFucyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFzZWQKb24gdGhlIFByb2dyYW0uCgogIFRvICJwcm9wYWdhdGUiIGEgd29yayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQKcGVybWlzc2lvbiwgd291bGQgbWFrZSB5b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgppbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKY29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFnYXRpb24gaW5jbHVkZXMgY29weWluZywKZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFraW5nIGF2YWlsYWJsZSB0byB0aGUKcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgoKICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtpbmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCnBhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAphIGNvbXB1dGVyIG5ldHdvcmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5aW5nLgoKICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKdG8gdGhlIGV4dGVudCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50bHkgdmlzaWJsZQpmZWF0dXJlIHRoYXQgKDEpIGRpc3BsYXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKdGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJvdmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQp3b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgp0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQptZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMgY3JpdGVyaW9uLgoKICAxLiBTb3VyY2UgQ29kZS4KCiAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsKZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQpmb3JtIG9mIGEgd29yay4KCiAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKc3RhbmRhcmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9yLCBpbiB0aGUgY2FzZSBvZgppbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAppcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KCiAgVGhlICJTeXN0ZW0gTGlicmFyaWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKdGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9uZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgpDb21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxlIHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCmltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNvdXJjZSBjb2RlIGZvcm0uICBBCiJNYWpvciBDb21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBvbmVudAooa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCihpZiBhbnkpIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRvCnByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVjdCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgoKICBUaGUgIkNvcnJlc3BvbmRpbmcgU291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMgYWxsCnRoZSBzb3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1dGFibGUKd29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bwpjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVyLCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKU3lzdGVtIExpYnJhcmllcywgb3IgZ2VuZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQpwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENvcnJlc3BvbmRpbmcgU291cmNlCmluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCnRoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQpsaW5rZWQgc3VicHJvZ3JhbXMgdGhhdCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWlyZSwKc3VjaCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdlZW4gdGhvc2UKc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVzZXJzCmNhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZwpTb3VyY2UuCgogIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdApzYW1lIHdvcmsuCgogIDIuIEJhc2ljIFBlcm1pc3Npb25zLgoKICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgpjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZApjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2UgZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCnBlcm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20gcnVubmluZyBhCmNvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cwpjb250ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5zZSBhY2tub3dsZWRnZXMgeW91cgpyaWdodHMgb2YgZmFpciB1c2Ugb3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KCiAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVkIHdvcmtzIHRoYXQgeW91IGRvIG5vdApjb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBvdGhlcndpc2UgcmVtYWlucwppbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCm9mIGhhdmluZyB0aGVtIG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBwcm92aWRlIHlvdQp3aXRoIGZhY2lsaXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3aXRoCnRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCm5vdCBjb250cm9sIGNvcHlyaWdodC4gIFRob3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MKZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgphbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKeW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4KCiAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5nIGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCm1ha2VzIGl0IHVubmVjZXNzYXJ5LgoKICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMgRnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgoKICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcgZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCjExIG9mIHRoZSBXSVBPIGNvcHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgpzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCm1lYXN1cmVzLgoKICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCmNpcmN1bXZlbnRpb24gb2YgdGVjaG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3VtdmVudGlvbgppcyBlZmZlY3RlZCBieSBleGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCnRoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEgbWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVnYWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCnRlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCgogIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCgogIFlvdSBtYXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNvdXJjZSBjb2RlIGFzIHlvdQpyZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5IGFuZAphcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRpbmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQpub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQgd2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7CmtlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCnJlY2lwaWVudHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCmFuZCB5b3UgbWF5IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBmZWUuCgogIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCgogIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1vZGlmaWNhdGlvbnMgdG8KcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKdGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCiAgICBpdCwgYW5kIGdpdmluZyBhIHJlbGV2YW50IGRhdGUuCgogICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKICAgIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRkZWQgdW5kZXIgc2VjdGlvbgogICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50IGluIHNlY3Rpb24gNCB0bwogICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KCiAgICBjKSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhpcwogICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCiAgICBMaWNlbnNlIHdpbGwgdGhlcmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rpb24gNwogICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdob2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCiAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CiAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJlY2VpdmVkIGl0LgoKICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CiAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzOyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCiAgICB3b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KCiAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAp3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBuYXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAphbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBhIGxhcmdlciBwcm9ncmFtLAppbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCiJhZ2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGluZyBjb3B5cmlnaHQgYXJlIG5vdAp1c2VkIHRvIGxpbWl0IHRoZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCmJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yawppbiBhbiBhZ2dyZWdhdGUgZG9lcyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhlcgpwYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgoKICA2LiBDb252ZXlpbmcgTm9uLVNvdXJjZSBGb3Jtcy4KCiAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKb2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBjb252ZXkgdGhlCm1hY2hpbmUtcmVhZGFibGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKaW4gb25lIG9mIHRoZXNlIHdheXM6CgogICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAogICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgoKICAgIGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgYQogICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKICAgIGxvbmcgYXMgeW91IG9mZmVyIHNwYXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVjdAogICAgbW9kZWwsIHRvIGdpdmUgYW55b25lIHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQogICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCiAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAogICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLCBmb3IgYSBwcmljZSBubwogICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCiAgICBjb252ZXlpbmcgb2Ygc291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEgbmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgoKICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCiAgICB3cml0dGVuIG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwogICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKICAgIG9ubHkgaWYgeW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2ZmZXIsIGluIGFjY29yZAogICAgd2l0aCBzdWJzZWN0aW9uIDZiLgoKICAgIGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIGZyb20gYSBkZXNpZ25hdGVkCiAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFsZW50IGFjY2VzcyB0byB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCiAgICBmdXJ0aGVyIGNoYXJnZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCiAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIgKG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQogICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNvcHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCiAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQgc2VydmVyIGhvc3RzIHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVuc3VyZSB0aGF0IGl0IGlzCiAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgoKICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCiAgICBTb3VyY2Ugb2YgdGhlIHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGljIGF0IG5vCiAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KCiAgQSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3NlIHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCmZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnksIG5lZWQgbm90IGJlCmluY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KCiAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3QiLCB3aGljaCBtZWFucyBhbnkKdGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgppbnRvIGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1bWVyIHByb2R1Y3QsCmRvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgpwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKdHlwaWNhbCBvciBjb21tb24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVzCm9mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCmFjdHVhbGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAppcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbApjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAp0aGUgb25seSBzaWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KCiAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLApwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9uIGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3RhbGwKYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQphIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29udGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZlcmVkIHdpdGggc29sZWx5IGJlY2F1c2UKbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCgogIElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4sIG9yIHdpdGgsIG9yCnNwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCnBhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUgcmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQpVc2VyIFByb2R1Y3QgaXMgdHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCmZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCkNvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGFjY29tcGFuaWVkCmJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBCdXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQppZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAptb2RpZmllZCBvYmplY3QgY29kZSBvbiB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFzCmJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCgogIFRoZSByZXF1aXJlbWVudCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5vdCBpbmNsdWRlIGEKcmVxdWlyZW1lbnQgdG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRhdGVzCmZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCnRoZSBVc2VyIFByb2R1Y3QgaW4gd2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNjZXNzIHRvIGEKbmV0d29yayBtYXkgYmUgZGVuaWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCnByb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBhY3Jvc3MgdGhlIG5ldHdvcmsuCgogIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAppbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBhIGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5CmRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCnNvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgp1bnBhY2tpbmcsIHJlYWRpbmcgb3IgY29weWluZy4KCiAgNy4gQWRkaXRpb25hbCBUZXJtcy4KCiAgIkFkZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMKTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgpBZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8gdGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCmJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRoZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKdGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKYXBwbHkgb25seSB0byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQgc2VwYXJhdGVseQp1bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUgUHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5CnRoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY29weSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgpyZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKaXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgpyZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3b3JrLikgIFlvdSBtYXkgcGxhY2UKYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLApmb3Igd2hpY2ggeW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBlcm1pc3Npb24uCgogIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQphZGQgdG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCnRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgoKICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxpYWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQogICAgdGVybXMgb2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKCiAgICBiKSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25hYmxlIGxlZ2FsIG5vdGljZXMgb3IKICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBwcm9wcmlhdGUgTGVnYWwKICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCgogICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgogICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJlbnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKCiAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCiAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlhbDsgb3IKCiAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCiAgICB0cmFkZSBuYW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKCiAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CiAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hvIGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBvZgogICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgb2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgogICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgogICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3JzLgoKICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgpyZXN0cmljdGlvbnMiIHdpdGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dyYW0gYXMgeW91CnJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGluZyB0aGF0IGl0IGlzCmdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgpyZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJtLiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCmEgZnVydGhlciByZXN0cmljdGlvbiBidXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwpMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKb2YgdGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGRvZXMKbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcuCgogIElmIHlvdSBhZGQgdGVybXMgdG8gYSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5b3UKbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBmaWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCmFkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZwp3aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgoKICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQpmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwp0aGUgYWJvdmUgcmVxdWlyZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCgogIDguIFRlcm1pbmF0aW9uLgoKICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNlIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKdGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZApwYXJhZ3JhcGggb2Ygc2VjdGlvbiAxMSkuCgogIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCmxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQpwcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVudGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCmZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKaG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgoKICBNb3Jlb3ZlciwgeW91ciBsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMKcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmllcyB5b3Ugb2YgdGhlCnZpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0CmNvcHlyaWdodCBob2xkZXIsIGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKeW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCgogIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCmxpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgp0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVybWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CnJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5ldyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KCiAgOS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCgogIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgpydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9mIGEgY292ZXJlZCB3b3JrCm9jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCnRvIHJlY2VpdmUgYSBjb3B5IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2ZXIsCm5vdGhpbmcgb3RoZXIgdGhhbiB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgptb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbwpub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KCiAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2YgRG93bnN0cmVhbSBSZWNpcGllbnRzLgoKICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CnJlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNlbnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90IHJlc3BvbnNpYmxlCmZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgoKICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5zYWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCm9yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4Kb3JnYW5pemF0aW9uLCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQKd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRvIHRoYXQKdHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCmxpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRlY2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZApnaXZlIHVuZGVyIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKdGhlIHByZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJsZSBlZmZvcnRzLgoKICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKcmlnaHRzIGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9yIGV4YW1wbGUsIHlvdSBtYXkKbm90IGltcG9zZSBhIGxpY2Vuc2UgZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCnJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQKYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5nLCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCnNhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KCiAgMTEuIFBhdGVudHMuCgogIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdodCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dyYW0gaXMgYmFzZWQuICBUaGUKd29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCgogIEEgY29udHJpYnV0b3IncyAiZXNzZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwpvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCmhlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZApieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxpbmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCmJ1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCmNvbnNlcXVlbmNlIG9mIGZ1cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9uLiAgRm9yCnB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudApwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKdGhpcyBMaWNlbnNlLgoKICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQpwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KbWFrZSwgdXNlLCBzZWxsLCBvZmZlciBmb3Igc2FsZSwgaW1wb3J0IGFuZCBvdGhlcndpc2UgcnVuLCBtb2RpZnkgYW5kCnByb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCgogIEluIHRoZSBmb2xsb3dpbmcgdGhyZWUgcGFyYWdyYXBocywgYSAicGF0ZW50IGxpY2Vuc2UiIGlzIGFueSBleHByZXNzCmFncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAooc3VjaCBhcyBhbiBleHByZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCnN1ZSBmb3IgcGF0ZW50IGluZnJpbmdlbWVudCkuICBUbyAiZ3JhbnQiIHN1Y2ggYSBwYXRlbnQgbGljZW5zZSB0byBhCnBhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCnBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KCiAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBhbnlvbmUKdG8gY29weSwgZnJlZSBvZiBjaGFyZ2UgYW5kIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIHRocm91Z2ggYQpwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAp0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCmF2YWlsYWJsZSwgb3IgKDIpIGFycmFuZ2UgdG8gZGVwcml2ZSB5b3Vyc2VsZiBvZiB0aGUgYmVuZWZpdCBvZiB0aGUKcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudApsaWNlbnNlIHRvIGRvd25zdHJlYW0gcmVjaXBpZW50cy4gICJLbm93aW5nbHkgcmVseWluZyIgbWVhbnMgeW91IGhhdmUKYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCmNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKaW4gYSBjb3VudHJ5LCB3b3VsZCBpbmZyaW5nZSBvbmUgb3IgbW9yZSBpZGVudGlmaWFibGUgcGF0ZW50cyBpbiB0aGF0CmNvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCgogIElmLCBwdXJzdWFudCB0byBvciBpbiBjb25uZWN0aW9uIHdpdGggYSBzaW5nbGUgdHJhbnNhY3Rpb24gb3IKYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQpjb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhlIHBhcnRpZXMKcmVjZWl2aW5nIHRoZSBjb3ZlcmVkIHdvcmsgYXV0aG9yaXppbmcgdGhlbSB0byB1c2UsIHByb3BhZ2F0ZSwgbW9kaWZ5Cm9yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKeW91IGdyYW50IGlzIGF1dG9tYXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKd29yayBhbmQgd29ya3MgYmFzZWQgb24gaXQuCgogIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgp0aGUgc2NvcGUgb2YgaXRzIGNvdmVyYWdlLCBwcm9oaWJpdHMgdGhlIGV4ZXJjaXNlIG9mLCBvciBpcwpjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAp3b3JrIGlmIHlvdSBhcmUgYSBwYXJ0eSB0byBhbiBhcnJhbmdlbWVudCB3aXRoIGEgdGhpcmQgcGFydHkgdGhhdCBpcwppbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50CnRvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCnRoZSB3b3JrLCBhbmQgdW5kZXIgd2hpY2ggdGhlIHRoaXJkIHBhcnR5IGdyYW50cywgdG8gYW55IG9mIHRoZQpwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawpjb252ZXllZCBieSB5b3UgKG9yIGNvcGllcyBtYWRlIGZyb20gdGhvc2UgY29waWVzKSwgb3IgKGIpIHByaW1hcmlseQpmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdApjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCm9yIHRoYXQgcGF0ZW50IGxpY2Vuc2Ugd2FzIGdyYW50ZWQsIHByaW9yIHRvIDI4IE1hcmNoIDIwMDcuCgogIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKYW55IGltcGxpZWQgbGljZW5zZSBvciBvdGhlciBkZWZlbnNlcyB0byBpbmZyaW5nZW1lbnQgdGhhdCBtYXkKb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgoKICAxMi4gTm8gU3VycmVuZGVyIG9mIE90aGVycycgRnJlZWRvbS4KCiAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCmNvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91IG1heQpub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKdG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5CnRoZSBQcm9ncmFtLCB0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90aCB0aG9zZSB0ZXJtcyBhbmQgdGhpcwpMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCgogIDEzLiBVc2Ugd2l0aCB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCnBlcm1pc3Npb24gdG8gbGluayBvciBjb21iaW5lIGFueSBjb3ZlcmVkIHdvcmsgd2l0aCBhIHdvcmsgbGljZW5zZWQKdW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQpjb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2Ugd2lsbCBjb250aW51ZSB0byBhcHBseSB0byB0aGUgcGFydCB3aGljaCBpcyB0aGUgY292ZXJlZCB3b3JrLApidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCnNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBseSB0byB0aGUKY29tYmluYXRpb24gYXMgc3VjaC4KCiAgMTQuIFJldmlzZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgoKICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCiAgRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKUHVibGljIExpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUKb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkCmJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgogIElmIHRoZSBQcm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKdmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJtYW5lbnRseSBhdXRob3JpemVzIHlvdQp0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4KCiAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9ucyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25zIGFyZSBpbXBvc2VkIG9uIGFueQphdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCmxhdGVyIHZlcnNpb24uCgogIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgoKICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCkFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQpPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgpQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQpJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCgogIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTClRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQpHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgpEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRApQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRVMuCgogIDE3LiBJbnRlcnByZXRhdGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCgogIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAphYm92ZSBjYW5ub3QgYmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCmFuIGFic29sdXRlIHdhaXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0aCB0aGUKUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1wdGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQpjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCgogICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCiAgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9ncmFtcwoKICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0CnBvc3NpYmxlIHVzZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlzIGlzIHRvIG1ha2UgaXQKZnJlZSBzb2Z0d2FyZSB3aGljaCBldmVyeW9uZSBjYW4gcmVkaXN0cmlidXRlIGFuZCBjaGFuZ2UgdW5kZXIgdGhlc2UgdGVybXMuCgogIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2VzIHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0CnRvIGF0dGFjaCB0aGVtIHRvIHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBmaWxlIHRvIG1vc3QgZWZmZWN0aXZlbHkKc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCgogIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KICAgIFRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICBUaGlzIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0CiAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCgpUaGUgaHlwb3RoZXRpY2FsIGNvbW1hbmRzIGBzaG93IHcnIGFuZCBgc2hvdyBjJyBzaG91bGQgc2hvdyB0aGUgYXBwcm9wcmlhdGUKcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCm1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KCiAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKaWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcywgYW5kIGhvdyB0byBhcHBseSBhbmQgZm9sbG93IHRoZSBHTlUgR1BMLCBzZWUKPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+Lgo=]]></data>
	</file>
	<file>
	  <filename>/docs/help.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPzwvaDM+CiAgPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY29sbGVjdCwgb3JnYW5pemUsIGFuZCBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHByb2R1Y3RzLiAgVGhpcyBtb2R1bGUgY2FuIHN0YW5kIG9uIGl0cyBvd24gd2l0aGluIENNU01TLiBPciwgaWYgeW91IHdpc2gsIGJlIHBhcnQgb2YgYW4gZWNvbW1lcmNlIHNvbHV0aW9uLiAgVGhlIG1vZHVsZSBzdXBwb3J0cyBhbiBpdGVtIGV4aXN0aW5nIGluIG1vcmUgdGhhbiBvbmUgY2F0ZWdvcnksIHN1cHBvcnRzIG9yZ2FuaXppbmcgcHJvZHVjdHMgaW50byBoaWVyYXJjaGllcywgc3VwcG9ydHMgU0tVJ3MsIGRpbWVuc2lvbnMsIGl0ZW0gd2VpZ2h0LCBwcmljZSwgYW5kIGF0dHJpYnV0ZXMgc3VjaCBhcyBzaXplIGFuZCBjb2xvciB3aXRoIGRpZmZlcmVudCBTS1UgYW5kIHByaWNpbmcgb3B0aW9ucy4gIEVhY2ggaXRlbSBvcHRpb24gY2FuIGhhdmUgYSBwcmljZSBhZGp1c3RtZW50LiAgRWFjaCBpdGVtIGNhbiBiZSBzZXQgYXMgdGF4YWJsZSwgb3Igbm9uIHRheGFibGUuPC9wPgogIDxwPlRoaXMgbW9kdWxlIHByb3ZpZGVzIG11bHRpcGxlIGN1c3RvbSBmaWVsZCBkZWZpbml0aW9ucywgYW5kIGZvciB0aGUgYWJpbGl0eSB0byBkaXNjcmltaW5hdGUgcHJpdmF0ZSBmcm9tIHB1YmxpYyBkYXRhLjwvcD4KCjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPk51bWVyb3VzIFZpZXdzPC9saT4KICAgIDx1bD4KICAgICAgPGxpPlN1bW1hcnkgdmlldzwvbGk+CiAgICAgIDxsaT5DYXRlZ29yeSBMaXN0IFZpZXc8L2xpPgogICAgICA8bGk+RGV0YWlsIHZpZXc8L2xpPgogICAgICA8bGk+SGllcmFyY2h5IERyaWxsLWRvd24gVmlldzwvbGk+CiAgICAgIDxsaT5BZHZhbmNlZCBzZWFyY2g8L2xpPgogICAgICA8bGk+bW9yZS4uLjwvbGk+CiAgICA8L3VsPgogIDxsaT5FbnRpcmVseSB0ZW1wbGF0ZSBkcml2ZW4KICAgIDxwPk51bWVyb3VzIHRlbXBsYXRlcyBvZiBlYWNoIHR5cGUgY2FuIGJlIGRlZmluZWQsIGRlZmF1bHRzIHNwZWNpZmllZCBmb3IgZWFjaCB0eXBlLCBhbmQgdGhlIHRlbXBsYXRlIHVzZWQgZm9yIGVhY2ggcGFydGljdWxhciB2aWV3IGNhbiBiZSBzcGVjaWZpZWQgYXMgYSBwYXJhbWV0ZXI8L3A+CiAgPC9saT4KICA8bGk+U29ydGluZyBhbmQgcGFnaW5hdGlvbiBpbiB0aGUgc3VtbWFyeSB2aWV3PC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGV4aXN0IGluIG11bHRpcGxlIGNhdGVnb3JpZXM8L2xpPgogIDxsaT5OdW1lcm91cyBjdXN0b20gZmllbGRzIGNhbiBiZSBkZWZpbmVkLCBpbmNsdWRpbmcgaW1hZ2VzPC9saT4KICA8bGk+QWRtaW4gZGVmaW5lZCBmaWVsZHM8L2xpPgogIDxsaT5Qcm9kdWN0IG9wdGlvbnMgKGluY2x1ZGluZyBwcmljZSBhZGp1c3RtZW50KTwvbGk+CiAgPGxpPldlaWdodCwgZGltZW5zaW9ucyBhbmQgdGF4YWJsZSBmaWVsZHMgKGZvciB1c2UgaW4gZS1jb21tZXJjZSBzb2x1dGlvbnMpPC9saT4KICA8bGk+UHJvZHVjdHMgY2FuIGhhdmUgYSBzdGF0dXMgKHB1Ymxpc2hlZCwgZGlzYWJsZWQgb3IgZHJhZnQpIGluIG9yZGVyIHRvIGhpZGUgcHJvZHVjdHMgZnJvbSBwdWJsaWMgZGlzcGxheSBhdCBhbnkgdGltZTwvbGk+CiAgPGxpPlN0cm9uZyBwcmV0dHkgVVJMIFN1cHBvcnQ8L2xpPgogIDxsaT5BY3RzIGFzIGEgcHJvZHVjdCBzb3VyY2UgYW5kIGNvbW11bmljYXRlcyB3aXRoIHRoZSBFY29tbWVyY2Ugc3VpdGUgYnkgdGhlIHNhbWUgYXV0aG9yLjwvbGk+CiAgPGxpPjxzdHJvbmc+TW9yZS4uLjwvc3Ryb25nPjwvbGk+CjwvdWw+Cgo8aDM+SG93IERvIEkgVXNlIEl0OjwvaDM+CjxvbD4KPGxpPlNldCBwcmVmZXJlbmNlcwogIDxwPlVzdWFsbHkgdGhpcyBpcyBqdXN0IGEgZm9ybWFsaXR5LiAgWW91IHNob3VsZCBzcGVjaWZ5IHlvdXIgZGVmYXVsdCB3ZWlnaHQgdW5pdHMsIGFuZCB5b3VyIGRlZmF1bHQgY3VycmVuY3kgc3ltYm9sIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LjwvcD4KICA8cD5JZiB5b3UgYXJlIHByZXBhcmluZyBhbiBlLWNvbW1lcmNlIHNvbHV0aW9uIHRoZW4gdW5pdHMgYXJlIGNvbmZpZ3VyZWQgaW4gdGhlIENHRWNvbW1lcmNlQmFzZSBtb2R1bGUuPC9saT4KPC9saT4KPGxpPlNldHVwIHVzZXJzIGFuZCBwZXJtaXNzaW9ucwogIDxwPlRoZSAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnIHBlcm1pc3Npb24gaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWRqdXN0IHRoZSBtb2R1bGVzIHByZWZlcmVuY2VzLiAgSW4gb3JkZXIgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBtb2RpZnkgZmllbGQgZGVmaW5pdGlvbnMsIGNhdGVnb3JpZXMsIG9yIHByb2R1Y3RzLCB5b3VyIHVzZXJzIHdpbGwgbmVlZCB0aGUgJ01vZGlmeSBQcm9kdWN0cycgcGVybWlzc2lvbi48L3A+CjwvbGk+CjxsaT4ob3B0aW9uYWwpIERlZmluZSBvbmUgb3IgbW9yZSBjYXRlZ29yaWVzCiAgPHA+VGhpcyBpcyBhbiBvcHRpb25hbCBzdGVwLCBidXQgeW91IHdpbGwgcHJvYmFibHkgd2FudCB0byBkbyB0aGlzIGVhcmx5IHRvIHByZXZlbnQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gbW9kaWZ5IGVhY2ggYW5kIGV2ZXJ5IHByb2R1Y3QgbGF0ZXIuICBBZGRpbmcgYSBjYXRlZ29yeSBpcyBhcyBzaW1wbGUgYXMgY2xpY2tpbmcgb24gdGhlICdDYXRlZ29yaWVzJyB0YWIgaW4gdGhlIFByb2R1Y3QgTWFuYWdlcnMgYWRtaW4gc2VjdGlvbiwgYW5kIGNsaWNraW5nICdBZGQgQSBDYXRlZ29yeScuICBGcm9tIHRoZXJlIHlvdSB3aWxsIGJlIHByb21wdGVkIGZvciBhIGNhdGVnb3J5IG5hbWUuPC9wPgo8L2xpPgo8bGk+KG9wdGlvbmFsKSBEZWZpbmUgYSBwcm9kdWN0IGhpZXJhcmNoeS4KICA8cD5Zb3UgY2FuIG9yZ2FuaXplIHlvdXIgcHJvZHVjdHMgaW50byBhIGhpZXJhcmNoeS4gIFRoZSBoaWVyYXJjaHkgaXMgc2ltaWxhciB0byBjYXRlZ29yaWVzIGV4Y2VwdCB0aGF0IGVhY2ggbm9kZSBpbiB0aGUgaGllcmFyY2h5IGNhbiBoYXZlIHplcm8gb3IgbW9yZSBjaGlsZHJlcm4uICBBIHByb2R1Y3QgY2FuIG9ubHkgYmVsb25nIHRvIG9uZSBwbGFjZSBpbiB0aGUgaGllcmFyY2h5LjwvcD4KPC9saT4KPGxpPihvcHRpb25hbCkgRGVmaW5lIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMKICA8cD5UaGlzIGlzIGFuIG9wdGlvbmFsIHN0ZXAgZm9yIHNpbXBsZSB1c2FnZSBzY2VuYXJpb3MsIGJ1dCBtYXkgYmUgcmVxdWlyZWQgd2hlbiBpbXBsZW1lbnRpbmcgYW4gRWNvbW1lcmNlIGFwcGxpY2F0aW9uLiAgQ3VzdG9tIGZpZWxkcyBhcmUgbm90IG5lZWRlZCBpZiB0aGlzIG1vZHVsZSBzdWl0cyB5b3UgZXhhY3RseSBhcyBpdCBpcy4gIEhvd2V2ZXIgaWYgeW91IHdvdWxkIGxpa2UgdG8gc3RvcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmb3IgZWFjaCBvZiB5b3VyIHByb2R1Y3RzIHlvdSBjYW4gY3JlYXRlIGN1c3RvbSBmaWVsZHMuICBDcmVhdGluZyBjdXN0b20gZmllbGRzIGlzIHNpbWlsYXIgdG8gY3JlYXRpbmcgY2F0ZWdvcmllcywgZXhjZXB0IHRoYXQgbW9yZSBkYXRhIGlzIHJlcXVlc3RlZC48L3A+CjxwPkN1cnJlbnRseSBhIG51bWJlciBvZiB0eXBlcyBvZiBjdXN0b20gZmllbGRzIGFyZSBhdmFpbGFibGUsIGluY2x1ZGluZzogJ3RleHRib3gnLCdjaGVja2JveCcsYW5kICd0ZXh0YXJlYScsICdkcm9wZG93bicsIGFuZCAnZmlsZScuICBTZWxlY3Qgb25lIG9mIHRoZXNlLCBnaXZlIHlvdXIgbmV3IGZpZWxkIGEgbmFtZSwgYW5kIGluZGljYXRlIHdldGhlciB0aGF0IGZpZWxkIHNob3VsZCBiZSB2aXNpYmxlIHRvIHRoZSBwdWJsaWMgaW4gdGhlIHZhcmlvdXMgdmlld3MuICBUaGVuIGhpdCBzdWJtaXQ8L3A+CjwvbGk+CjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgaXRlbXMuCjxwPllvdSBzaG91bGQgY3JlYXRlIG9uZSBvciBtb3JlIHByb2R1Y3RzIHRvIGRpc3BsYXkgaW4geW91ciB3ZWJzaXRlIGNvbnRlbnQuICBHaXZlIGVhY2ggcHJvZHVjdCBhIG5hbWUsIGEgcHJpY2UgKG9wdGlvbmFsKSBhIHdlaWdodCAob3B0aW9uYWwpLCBhIHN0YXR1cyAoZHJhZnQgb3IgcHVibGlzaGVkKSwgYW5kIHNvbWUgaW5mb3JtYXRpb24uICBBZGRpdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IGlmIHRoZSBwcm9kdWN0IGlzIHRheGFibGUuPC9wPgo8cD5JZiB5b3UgYXJlIGltcGxlbWVudGluZyBhbiBlLWNvbW1lcmNlIHNvbHV0aW9uIHRoZW4geW91IHNob3VsZCBwcm92aWRlIGVhY2ggcHJvZHVjdCB3aXRoIGEgdW5pcXVlIFNLVS4gQW5kIGRlcGVuZGluZyB1cG9uIHlvdXIgYXBwbGljYXRpb24gcmVxdWlyZW1lbnRzLCB3ZWlnaHQgYW5kIGRpbWVuc2lvbnMgZm9yIGVhY2ggcHJvZHVjdC48L3A+CjxwPllvdSBjYW4gY3JlYXRlIG11bHRpcGxlIGF0dHJpYnV0ZXMgZm9yIGEgcHJvZHVjdCB0byBkZWZpbmUgdmFyaWF0aW9ucyBvbiBzaXplLCBjb2xvciwgZXRjLiAgRWFjaCB2YXJpYXRpb24gY2FuIGhhdmUgYSBkaWZmZXJlbnQgU0tVLjwvcD4KPHA+SWYgY2F0ZWdvcmllcyBhcmUgZGVmaW5lZCwgdGhlbiBhIG11bHRpc2VsZWN0IGZpZWxkIHdpbGwgYXBwZWFyIGFsbG93aW5nIHlvdSB0byBzZWxlY3QgdGhlIGNhdGVnb3JpZXMgZm9yIHRoZSBpdGVtLjwvcD4KPHA+SWYgY3VzdG9tIGZpZWxkcyBhcmUgZGVmaW5lZCwgdGhlbiBpbnB1dCBmaWVsZHMgYXBwcm9wcmlhdGUgdG8gdGhlIHR5cGUgb2YgY3VzdG9tIGZpZWxkIHdpbGwgYXBwZWFyIGFuZCBhbGxvdyB5b3UgdG8gc3BlY2lmeSBkYXRhIGZvciBlYWNoIG9mIHRoZW0uICBUaGlzIGRhdGEgaXMgb3B0aW9uYWwuPC9wPgo8L2xpPgo8bGk+QWRkIHRoZSBhcHByb3ByaWF0ZSB0YWdzIGludG8geW91ciBwYWdlIHRlbXBsYXRlcyBvciBwYWdlIGNvbnRlbnQ8L2xpPgo8cD5UaGlzIGNhbiBiZSBhcyBzaW1wbGUgYXMgYWRkaW5nIHRoZSA8Y29kZT57UHJvZHVjdHN9PC9jb2RlPiB0YWcgaW50byB0aGUgY29udGVudCBhcmVhIG9mIG9uZSBvZiB5b3VyIHBhZ2VzLCBvciBpbnRvIHlvdXIgcGFnZSB0ZW1wbGF0ZS48L3A+CjxwPklmIHlvdSB3aXNoIHRvIGFsdGVyIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBhcHBsaWNhdGlvbiBmcm9tIGl0cyBkZWZhdWx0LCB5b3UgY2FuIGRvIHRoYXQgYnkgYWRkaW5nIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgdG8gdGhlIDxjb2RlPntQcm9kdWN0c308L2NvZGU+IHRhZy4gIFRoZSBjb21wbGV0ZSBsaXN0IG9mIHBhcmFtZXRlcnMgYW5kIHRoZWlyIGJlaGF2aW91ciBpcyBsaXN0ZWQgYmVsb3cuICBCdXQgZm9yIGV4YW1wbGUsIHRvIGRpc3BsYXkgYSBsaXN0IG9mIGl0ZW1zIGluIGEgc2luZ2xlLCBleGlzdGluZyBjYXRlZ29yeSwgeW91IGNvdWxkIHVzZSBhIHRhZyBsaWtlIDxjb2RlPntQcm9kdWN0cyBjYXRlZ29yeT0nY2F0ZWdvcnluYW1lJ308L2NvZGU+PC9wPgo8L29sPgoKPGgzPlByZXR0eSBVUkxTPC9oMz4KPHA+SWYgeW91IGhhdmUgZW5hYmxlZCBwcmV0dHkgVVJMUyBpbiB0aGUgQ01TTVMgY29uZmlnIGZpbGUgPGVtPihlaXRoZXIgbW9kX3Jld3JpdGUsIG9yIGludGVybmFsIHByZXR0eSBVUkxTKTwvZW0+IFRoZW4gdGhpcyBtb2R1bGUgaXMgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHByZXR0eSBVUkxTIGZvciB2YXJpb3VzIGxpbmtzIHRvIHByb2R1Y3Qgdmlld3MuICBUaGVyZSBpcyBhbHNvIHRoZSBwb3dlciB0byBjb21wbGV0ZWx5IGN1c3RvbWl6ZSB0aGUgVVJMIHRvIGEgcHJvZHVjdCBkZXRhaWwgdmlldy4gIFRoZXJlIGFyZSBhIGZldyBzZXR0aW5ncyBpbiB0aGUgbW9kdWxlJ3MgYWRtaW4gcGFuZWxzIHRvIGNvbmZpZ3VyZS48L3A+CjxoND5VUkwgU2x1Z3M6PC9oND4KPHA+VVJMIFNsdWdzIGFyZSBwb3J0aW9ucyBvZiBhIFVSTCB0aGF0IGFyZSBhcHBlbmRlZCB0byB0aGUgcm9vdCB1cmwgKGFsb25nIHdpdGggdGhlIFVSTCBwcmVmaXggZGVzY3JpYmVkIGJlbG93KSB0byBhbGxvdyB1bmlxdWVseSBzcGVjaWZ5aW5nIGEgVVJMIHRvIGFuIGluZGl2aWR1YWwgcHJvZHVjdC4gIFVSTCBTbHVncyAoYmFzaWNhbGx5IGZpeGVkIHN0cmluZyByb3V0ZXMpIG11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW50aXJlIHdlYnNpdGUsIGFuZCBhbiBlcnJvciB3aWxsIGJlIGdlbmVyYXRlZCBpZiB0aGUgc2x1ZyBwcm92aWRlZCBpcyBhbHJlYWR5IGluIHVzZS48L3A+CjxwPldoZW4gYSBuZXcgcHJvZHVjdCBpcyBjcmVhdGVkLCBvciBhIHByb2R1Y3Qgd2l0aG91dCBhIFVSTCBzbHVnIGlzIGVkaXRlZCwgdGhlIHN5c3RlbSB3aWxsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgYSBVUkwgc2x1ZyBiYXNlZCBvbiB0aGUgcHJvZHVjdCBuYW1lLCB0aGUgc2VsZWN0ZWQgaGllcmFyY2h5IGxldmVsLCB0aGUgc2VsZWN0ZWQgY2F0ZWdvcmllcywgYW5kIHRoZSBzbHVnIHRlbXBsYXRlIGluIHRoZSBwcmVmZXJlbmNlcyBwYW5lbC4gIFlvdSBtYXkgYWxzbyBlbnRlciB5b3VyIG93biBVUkwgc2x1ZyBpbiB0aGUgYXBwcm9wcmlhdGUgZmllbGQgb2YgdGhlIGZvcm0uPC9wPgo8cD5UaGUgc3lzdGVtIHdpbGwgbmV2ZXIgYXV0b210aWNhbGx5IGFkanVzdCBhbiBleGlzdGluZyBVUkwgc2x1ZywgZXZlbiBpZiB5b3UgbW92ZSB0aGUgcHJvZHVjdCB0byBhIGRpZmZlcmVudCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5LCBvciBjaGFuZ2UgdGhlIHNsdWcgdGVtcGxhdGUuICBBZGp1c3RpbmcgYSBVUkwgc2x1ZyBtdXN0IGludm9sdmUgYW4gYXV0aG9yaXplZCBhZG1pbmlzdHJhdG9yLCBhbmQgc2hvdWxkIGJlIGRvbmUgd2l0aCBjYXV0aW9uIGZvciBTRU8gcHVycG9zZXMuPC9wPgoKPGg0Pk9wdGlvbnM6PC9oND4KPHVsPgogIDxsaT5EZWZhdWx0IERldGFpbCBQYWdlICA8c3Ryb25nPipyZXF1aXJlZCo8L3N0cm9uZz46CiAgICA8cD5XaGVuIHVzaW5nIHByZXR0eSBVUkxTLCBhbmQgZWl0aGVyIGEgVVJMIHNsdWcgZXhpc3RzLCBvciB0aGUgJnF1b3Q7VXNlIEhpZXJhcmNoeSBQYXRoJnF1b3Q7IHByZWZlcmVuY2UgPGVtPihkZXNjcmliZWQgYmVsb3cpIGlzIGVuYWJsZWQsIGEgcGFnZSBpZCB3aWxsIG5vdCBiZSBzcGVjaWZpZWQgb24gdGhlIFVSTC4gIEZvciB0aGlzIHB1cnBvc2UgaXQgaXMgbmNlc3NhcnkgdG8gdGVsbCB0aGUgbW9kdWxlIHdoaWNoIGNvbnRlbnQgcGFnZSB0aGUgZGV0YWlsIHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBvbi48L3A+CiAgPC9saT4KCiAgPGxpPlByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZToKICAgICA8cD5UaGlzIHByZWZlcmVuY2UgaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRoYXQgd2lsbCBiZSBwcmVwZW5kZWQgdG8gZWFjaCBhbmQgZXZlcnkgcHJldHR5IFVSTCBnZW5lcmF0ZWQgYnkgdGhlIHByb2R1Y3RzIG1vZHVsZS4gIFRoaXMgbWF5IGJlIG5lY2Vzc2FyeSB0byBlbnN1cmUgdW5pcXVlbmVzcyBhY3Jvc3MgdGhlIHdlYnNpdGUsIGFuZCBmb3Igb3JnYW5pemF0aW9uYWwgcHVycG9zZXMuPC9wPgogIDwvbGk+CgogIDxsaT5Vc2UgSGllcmFyY2h5IFBhdGggaW4gSXRlbSBEZXRhaWwgVVJMUzoKICAgIDxwPlRoaXMgYm9vbGVhbiBwcmVmZXJlbmNlIGluZGljYXRlcyB0aGF0IHdoZW4gY3JlYXRpbmcgYSBkZXRhaWwgVVJMIHRvIGEgcHJvZHVjdCwgYW5kIG5vIFVSTCBzbHVncyBhcmUgcHJlc2VudCBhbiBhdHRlbXB0IHNob3VsZCBiZSBtYWRlIHRvIHVzZSB0aGUgaGllcmFyY2h5IHBhdGggaW4gdGhlIFVSTC48L3A+CiAgICA8cD5UaGlzIGlzIHByb2JsZW1hdGljIHNvbHV0aW9uIHJlbWFpbmluZyBvbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwdXJwb3NlcywgYXMgaWYgYSBwcm9kdWN0IGlzIGV2ZXIgbW92ZWQgdG8gYSBkaWZmZXJlbnQgcGxhY2UgaW4gdGhlIGhpZXJhcmNoeSB0cmVlLCBvciBldmVuIGlmIHRoZSBzcGVsbGluZyBvZiBvbmUgb2YgdGhlIHBhdGhzIGluIHRoZSBoaWVyYXJjaHkgcGF0aCBjaGFuZ2VzLCB0aGUgVVJMIHdvdWxkIGNoYW5nZS4gIFRoaXMgaXMgbm90IGEgZ29vZCBzb2x1dGlvbiBmb3IgU0VPIHB1cnBvc2VzLCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLjwvcD4KICA8L2xpPgoKICA8bGk+RGVmYXVsdCBEZXRhaWwgUGFnZToKICAgICA8cD5XaGVuIHVzaW5nIHByZXR0eSB1cmxzLCBhbmQgcGFydGljdWxhcmx5IHdoZW4gc3BlY2lmeWluZyBhbGlhc2VzIG9yIFVSTCBzbHVncyBmb3IgcHJvZHVjdHMsIGl0IGlzIHJlcXVpcmVkIHRvIHRlbGwgdGhlIHN5c3RlbSB3aGF0IENNU01TIGNvbnRlbnQgcGFnZSB0byB1c2UgdG8gZGlzcGxheSB0aGF0IHByb2R1Y3QuICBJZiBvbmUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgY29udGVudCBwYWdlIHdpbGwgYmUgdXNlZC48L3A+CiAgPC9saT4KCiAgPGxpPkRlZmF1bHQgUGFnZSBmb3IgSGllcmFyY2h5IFZpZXc6CiAgICAgPHA+V2hlbiB1c2luZyBwcmV0dHkgdXJscywgYW5kIHBhcnRpY3VsYXJseSB3aGVuIHNwZWNpZnlpbmcgYWxpYXNlcyBvciBVUkwgc2x1Z3MgZm9yIHByb2R1Y3RzLCBpdCBpcyByZXF1aXJlZCB0byB0ZWxsIHRoZSBzeXN0ZW0gd2hhdCBDTVNNUyBjb250ZW50IHBhZ2UgdG8gdXNlIHRvIGRpc3BsYXkgYSBoaWVyYXJjaHkgdmlldy48L3A+CiAgPC9saT4KPC91bD4KCjxoMz5TS1UgYW5kIFF1YW50aXR5IEhhbmRsaW5nPC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB1bmlxdWUgZmllbGQgZm9yIGVhY2ggaXRlbSA8ZW0+KGFuZCBpdGVtIG9wdGlvbik8L2VtPi4gIFRoZSBTS1UgdmFsdWUgY2FuIGJlIHVzZWQgdG8gdW5pcXVlbHkgaWRlbnRpZnkgYW4gaXRlbSBvciBvcHRpb24uICBXaGVuIHVzaW5nIHRoaXMgc3lzdGVtIGFzIGFuIGUtY29tbWVyY2Ugc3lzdGVtIGVhY2ggaXRlbSBhbmQgb3B0aW9uIGlzIHJlcXVpcmVkIHRvIGhhdmUgYSBTS1UuPC9wPgo8aDM+UHJvZHVjdCBPcHRpb25zPC9oMz4KPHA+VGhpcyBtb2R1bGUgcHJvdmlkZXMgdGhlIGNhcGFiaWxpdHkgb2YgaGFuZGxpbmcgPGVtPihvcHRpb25zKTwvZW0+IHRvIGJhc2UgaXRlbXMuICBPcHRpb25zIGNhbiBiZSB1c2VkIGZvciBtYWtpbmcgZGlmZmVyZW50IHNpemVzLCBvciBjb2xvcnMgb2YgYW4gaXRlbSBhdmFpbGFibGUgaW4gdGhlIGNhcnQuICAgRWFjaCBvcHRpb24gY2FuIGhhdmUgYSBkZXNjcmlwdGlvbiwgYSBwcmljZSA8ZW0+KG9yIHByaWNlIGFkanVzdG1lbnQpPC9lbT4gYW5kIGEgU0tVIGZvciBlLWNvbW1lcmNlIHB1cnBvc2VzLjwvcD4KCjxoMz5TbWFydHkgUGx1Z2luczwvaDM+CjxwPlRoaXMgbW9kdWxlIGFsc28gcmVnaXN0ZXJzIG9uZSBvciBtb3JlIHNtYXJ0eSBwbHVnaW5zIHRvIGFpZGUgaW4gcmV0cmlldmluZyB2YXJpb3VzIHByb2R1Y3RzIHJlbGF0ZWQgaW5mb3JtYXRpb24gd2hlbiBkZXNpZ25pbmcgcHJvZHVjdHMgbW9kdWxlIHRlbXBsYXRlczo8L3A+Cjx1bD4KICA8bGk+e3Byb2R1Y3RzX2dldGNhdGVnb3J5IGNhdGVnb3J5aWQ9Jzk5JyBbYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyBhbGwgb2YgdGhlIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGNhdGVnb3J5IGlkIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhlIHJldHVybmVkIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBjYXRlZ29yeSwgaW5jbHVkaW5nIGl0cyBmaWVsZCB2YWx1ZXMuPGJyLz5pLmU6LiA8Y29kZT57cHJvZHVjdHNfZ2V0Y2F0ZWdvcnkgY2F0ZWdvcnlpZD0xIGFzc2lnbj0ndG1wJ31DYXRlZ29yeSBuYW1lID0ge1wkdG1wLT5uYW1lfTwvY29kZT48L3A+CiAgPC9saT4KICA8bGk+e3Byb2R1Y3RzX2dldGhpZXJhcmNoeSBpZD0nOTknIFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIGFsbG93cyByZXRyaWV2aW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gZm9yIGEgc3BlY2lmaWMgaGllcmFyY2h5IGxldmVsIGFuZCBvcHRpb25hbGx5IGFzc2lnbmluZyBpdCB0byB0aGUgbmFtZWQgc21hcnR5IHZhcmlhYmxlLiAgVGhlIHJldHVybmVkIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gYWJvdXQgYSBoaWVyYXJjaHksIGluY2x1ZGluZyBpdHMgZmllbGQgdmFsdWVzLjxici8+aS5lOi4gPGNvZGU+e3Byb2R1Y3RzX2dldGhpZXJhcmNoeSBpZD0xIGFzc2lnbj0ndG1wJ31uYW1lID0ge1wkdG1wLm5hbWV9PC9jb2RlPjwvcD4KICA8L2xpPgogIDxsaT57cHJvZHVjdHNfaGllcmFyY2h5X2JyZWFkY3J1bWIgaGllcmFyY2h5aWQ9Jzk5JyBbcGFnZWlkPWFsaWFzXSBbZGVsaW09JyAmcmFxdW8gJ11bYXNzaWduPSd0bXAnXX0KICA8cD5UaGlzIHBsdWdpbiBhbGxvd3MgcmV0cmlldmluZyB0aGUgYnJlYWRjcnVtYiBwYXRoIHRvIGEgcGFydGljdWxhciBoaWVyYXJjaHkgaWQgYW5kIG9wdGlvbmFsbHkgYXNzaWduaW5nIGl0IHRvIHRoZSBuYW1lZCBzbWFydHkgdmFyaWFibGUuICBUaGlzIHBsdWdpbiB3aWxsIG91dHB1dCB6ZXJvIG9yIG1vcmUgbGlua3MgdG8gaGllcmFyY2h5IHZpZXdzIHdpdGggb25lIGxpbmsgZm9yIGVhY2ggbGV2ZWwgaW4gdGhlIGhpZXJhcmNoeS4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgZGVsaW1pdGVyIHVzZSB0aGUgImRlbGltIiBhcmd1bWVudC4gIElmIGFuIGVtcHR5IGRlbGltaXRlciBpcyBzcGVjaWZpZWQsIHRoZW4gYW4gYXJyYXkgb2YgbGlua3Mgd2lsbCBiZSByZXR1cm5lZCByYXRoZXIgdGhhbiBvbmUgY29uaW51b3VzIGh0bWwgc2VnbWVudC4gIFRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgcGFnZSBpZCBmb3J0aGUgbGlua3MsIHVzZSB0aGUgcGFnZWlkIGF0dHJpYnV0ZS4gICBJZiB0aGUgcGFnZWlkIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCBhbmQgdGhlIGhpZXJhcmNoeSBpZCBwcmVmZXJlbmNlIGlzIHNldCBpdCB3aWxsIGJlIHVzZWQuICBPdGhlcndpc2UgdGhlIGN1cnJlbnQgcGFnZSBpZCB3aWxsIGJlIHVzZWQuPC9wPgogIDwvbGk+CiAgPGxpPntwcm9kdWN0c19oaWVyYXJjaHlfcGFyZW50IGhpZXJhcmNoeWlkPTk5IFthc3NpZ249J3RtcCddfQogIDxwPlRoaXMgcGx1Z2luIHdpbGwgcmV0dXJuIHRoZSBwYXJlbnQgaGllcmFyY2h5IGlkIGZvciBhIGdpdmVuIGhpZXJhcmNoeSBpZC4gIElmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGV4aXN0LCB0aGVuIG5vdGhpbmcgd2lsbCBiZSByZXR1cm5lZC4gIGlmIHRoZSBzcGVjaWZpZWQgaGllcmFyY2h5IGlkIGRvZXMgbm90IGhhdmUgYSBwYXJlbnQgdGhpcyBwbHVnaW4gd2lsbCByZXR1cm4gLTEuPC9wPgogIDwvbGk+CjwvdWw+CjxoMz5UaGUgPGVtPmFqYXhfcHJvcHZhbDwvZW0+IEFjdGlvbjwvaDM+CiAgPHA+VGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBpcyBhIHNwZWNpYWwgYWN0aW9uIHRoYXQgaXMgdXNlZCB0byByZXR1cm4gdGhlIGRpc3RpbmN0IHZhbHVlcyBvZiBhIGN1c3RvbSBmaWVsZCwgb3IgYSBwcm9wZXJ0eSB2aWEganNvbi4gIFR5cGljYWxseSB0aGlzIGFjdGlvbiBpcyB1c2VkIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGFjdGlvbnMsIGFuZCB1c3VhbGx5IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCBhY3Rpb24uICBUaGlzIGFjdGlvbiBhY2NlcHRzIHRoZSBwYXJhbWV0ZXJzOiBmaWVsZCBmb3IgdGhlIG5hbWUgb2YgdGhlIGZpZWxkLCBhbmQgZmllbGR2YWwgZm9yIGluZGljYXRpbmcgYSBzdGFydGluZyB2YWx1ZS4gIE5vbmUgb2YgdGhlIHBhcmFtZXRlcnMgY2FuIGJlIGVtcHR5LiAgQmVsb3cgeW91IHdpbGwgZmluZCBhIHNpbXBsZSBleGFtcGxlIG9mIHVzaW5nIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uIHRvIHBlcmZvcm0gYXV0b2NvbXBsZXRlIGZvciBpdGVtIG5hbWVzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHNlYXJjaCB0ZW1wbGF0ZS48L3A+CjxwcmU+PGNvZGU+Jmx0O3NjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiJmd0O3tsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIHZhciBhamF4X3VybCA9ICd7L2xpdGVyYWx9PHNwYW4gc3R5bGU9ImNvbG9yOiBncmVlbjsiPnttb2R1bGVfYWN0aW9uX2xpbmsgbW9kdWxlPVByb2R1Y3RzIGFjdGlvbj1hamF4X3Byb3B2YWwgdXJsb25seT0xIGpzZnJpZW5kbHk9MX08L3NwYW4+e2xpdGVyYWx9JzsKICBhamF4X3VybCA9IGFqYXhfdXJsICsgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJnNob3d0ZW1wbGF0ZT1mYWxzZSc8L3NwYW4+OwoKICAkKDxzcGFuIHN0eWxlPSJjb2xvcjogYmx1ZTsiPicjcHJvZHVjdG5hbWUnPC9zcGFuPikuYXV0b2NvbXBsZXRlKHsKICAgIHNvdXJjZTogZnVuY3Rpb24ocmVxLGFkZCl7CiAgICAgIHZhciB0bXAgPSAgYWpheF91cmwrPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij4nJmNudG50MDFmaWVsZD06Om5hbWU6OiZjbnRudDAxZmllbGR2YWw9Jzwvc3Bhbj4rcmVxLnRlcm07CiAgICAgICQuZ2V0SlNPTih0bXAsZnVuY3Rpb24oanNvbil7CiAgICAgICAgaWYoIGpzb24uc3RhdHVzID09ICdPSycgJiYganNvbi5kYXRhLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGFkZChqc29uLmRhdGEpOwogICAgICAgIH0KICAgICAgfSkKICAgIH0KICB9KTsKfSk7CnsvbGl0ZXJhbH0mbHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcHJlPgo8cD5BcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSBjb2RlIHNuaXBwZXQuLiB0aGUge21vZHVsZV9hY3Rpb25fbGlua30gcGx1Z2luIGZyb20gQ0dTaW1wbGVTbWFydHkgaXMgdXNlZCB0byBnZW5lcmF0ZSBhIHVybCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbi4gIEFmdGVyIHRoYXQgVVJMIGlzIHJldHJpZXZlZCwgdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIgaXMgYWRkZWQgdG8gdGhlIFVSTC4gICBXaGVuIHNldHRpbmcgdXAgdGhlIGF1dG9jb21wbGV0ZSBwbHVnaW4sIHRoZSBjYWxsYmFjayB1c2VkIHRvIGZpbGwgaW4gdGhlIGRhdGEgdmFsdWVzIGZvciB0aGUgZmllbGQgdXNlcyBhamF4LiAgV2UgdGFrZSB0aGUgYWpheF91cmwgYWxyZWFkeSBwcmVwYXJlZCBhbmQgYWRkIHRoZSBmaWVsZD06Om5hbWU6OiBhbmQgZmllbGR2YWw9cmVxLnRlcm0gcGFyYW1ldGVycyB0byB0aGUgVVJMLiAgVGhlIHRlcm0gaXMgYXV0b21hdGljYWxseSBwcm92aWRlZCBieSB0aGUgYXV0b2NvbXBsZXRlIHBsdWdpbiBpbiB0aGUgcmVxLnRlcm0gdmFyaWlhYmxlLjwvcD4KPHA+VG8gdXNlIHRoaXMgZXhhbXBsZSwgdGhlIHVzZXIgd291bGQgbmVlZCB0byBlbnN1cmUgdGhhdCBqcXVlcnkgaXMgbG9hZGVkLCBhbG9uZyB3aXRoIHRoZSBqcXVlcnkgdWkgKGluY2x1ZGluZyBhdXRvY29tcGxldGUpLCBhbmQgYW55IHJlcXVpcmVkIHN0eWxlc2hlZXRzLiAgVGhpcyBjb3VsZCBiZSBkb25lIGVpdGhlciBpbiB0aGUgcGFnZSBzcGVjaWZpYyBtZXRhZGF0YSBmaWVsZCB3aGVuIGVkaXRpbmcgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgc2VhcmNoIGZvcm0sIG9yIGluIHRoZSBwYWdlIHRlbXBsYXRlIGl0c2VsZi48L3A+CjxoMz5JbXBvcnRpbmcgZnJvbSBBU0NJSTwvaDM+CjxwPlRoaXMgbW9kdWxlIGluY2x1ZGVzIGEgZmxleGlibGUgbWVjaGFuaXNtIG9mIGltcG9ydGluZyBhbmQgdXBkYXRpbmcgaXRlbSBpbmZvcm1hdGlvbiBmcm9tIEFTQ0lJIGZpbGVzLiAgVGhlIHN5c3RlbSBoYW5kbGVzIG11bHRpLWxpbmUgcmVjb3JkcyB3aXRoIGRpZmZlcmVudCBsaW5lIGVuZGluZ3MgKFVuaXgvTUFDL0RPUykgYW5kIGRpZmZlcmVudCBmaWVsZCBkZWxpbWl0ZXJzLiAgQ2F0ZWdvcmllcywgaGllcmFyY2h5IGluZm9ybWF0aW9uLCBhbmQgY3VzdG9tIGZpZWxkIGluZm9ybWF0aW9uIGNhbiBiZSBpbXBvcnRlZCBmb3IgZWFjaCBpdGVtLjwvcD4KPHA+VGhlIGltcG9ydCBzeXN0ZW0gaXMgY2FwYWJsZSBvZiBjcmVhdGluZyBuZXcgaXRlbXMsIG9yIHVwZGF0aW5nIGV4aXN0aW5nIG9uZXMsIGNyZWF0aW5nIHVua25vd24gY2F0ZWdvcmllcywgaGllcmFyY2hpZXMsIG9yIGN1c3RvbSBmaWVsZHMsIGFuZCBhdHRhY2hpbmcgaW1hZ2VzIHRvIHVwbG9hZGVkIGZpbGVzLjwvcD4KPGg0PkltYWdlczwvaDQ+CjxwPkltYWdlcyBjYW4gb3B0aW9uYWxseSBiZSBhc3NvY2lhdGVkIHdpdGggaW1wb3J0ZWQgcmVjb3JkcywgYnV0IG11c3QgYmUgcHJldmlvdXNseSB1cGxvYWRlZCB0byBhIGNlbnRyYWwgbG9jYXRpb24uICBXaGVuIGEgaW1hZ2UgZmllbGQgdmFsdWUgc3BlY2lmaWVzIGFuIGltYWdlIGZpbGVuYW1lLCBhbmQgdGhhdCBmaWxlIGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeSAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KS4gaXQgd2lsbCBiZSBjb3BpZWQgaW50byB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgZm9yIGZ1dHVyZSBkaXNwbGF5IGFuZCBtYW5hZ2VtZW50LjwvcD4KCjxoMz5Ib29rczwvaDM+Cjx1bD4KICAgPGxpPjxjb2RlPlByb2R1Y3Q6OkFmdGVySW5zZXJ0UHJvZHVjdDwvY29kZT4KICAgICAgPHA+UGFyYW1ldGVyczo8L3A+CiAgICAgIDxvbD4KICAgICAgICAgPGxpPiRwcm9kdWN0IC0gb2JqZWN0IG9mIHR5cGUgUHJvZHVjdCAtLSBUaGUgcHJvZHVjdCBhZnRlciBpbnNlcnRpb24gaW50byB0aGUgZGF0YWJhc2UuPC9saT4KICAgICAgPC9vbD4KICAgPC9saT4KICAgPGxpPjxjb2RlPlByb2R1Y3Q6OkJlZm9yZVVwZGF0ZXRQcm9kdWN0PC9jb2RlPgogICAgICA8cD5QYXJhbWV0ZXJzOjwvcD4KICAgICAgPG9sPgogICAgICAgICA8bGk+JHByb2R1Y3QgLSBvYmplY3Qgb2YgdHlwZSBQcm9kdWN0IC0tIFRoZSBwcm9kdWN0IG9iamVjdCBiZWZvcmUgdXBkYXRpbmcgdGhlIGRhdGFiYXNlLjwvbGk+CiAgICAgIDwvb2w+CiAgIDwvbGk+CiAgIDxsaT48Y29kZT5Qcm9kdWN0OjpBZnRlclVwZGF0ZXRQcm9kdWN0PC9jb2RlPgogICAgICA8cD5QYXJhbWV0ZXJzOjwvcD4KICAgICAgPG9sPgogICAgICAgICA8bGk+JHByb2R1Y3QgLSBvYmplY3Qgb2YgdHlwZSBQcm9kdWN0IC0tIFRoZSBwcm9kdWN0IGFmdGVyIHVwZGF0aW5nIHRoZSBkYXRhYmFzZSB0aGUgZGF0YWJhc2UuPC9saT4KICAgICAgPC9vbD4KICAgPC9saT4KICAgPGxpPjxjb2RlPlByb2R1Y3Q6OkJlZm9yZURlbGV0ZVByb2R1Y3Q8L2NvZGU+CiAgICAgIDxwPlBhcmFtZXRlcnM6PC9wPgogICAgICA8b2w+CiAgICAgICAgIDxsaT4kcHJvZHVjdF9pZCAtIGludGVnZXIgLS0gVGhlIHByb2R1Y3QgYWZ0ZXIgdXBkYXRpbmcgdGhlIGRhdGFiYXNlIHRoZSBkYXRhYmFzZS48L2xpPgogICAgICA8L29sPgogICA8L2xpPgo8L3VsPgoKPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGUgbW9kdWxlIGF1dGhvciBpcyBpbiBubyB3YXkgb2JsaWdhdGVkIHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhpcyBjb2RlIGluIGFueSBmYXNoaW9uLiAgSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkEgYnVnIHRyYWNraW5nIGFuZCBmZWF0dXJlIHJlcXVlc3Qgc3lzdGVtIGhhcyBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgbW9kdWxlIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvcHJvZHVjdHMiPmhlcmU8L2E+LiAgUGxlYXNlIGJlIHZlcmJvc2UgYW5kIGRlc2NyaXB0aXZlIHdoZW4gc3VibWl0dGluZyBidWcgcmVwb3J0cyBhbmQgZmVhdHVyZSByZXF1ZXN0cywgYW5kIGZvciBidWcgcmVwb3J0cyBlbnN1cmUgdGhhdCB5b3UgaGF2ZSBwcm92aWRlZCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIHJlbGlhYmx5IHJlcHJvZHVjZSB0aGUgaXNzdWUuPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi4gIFdoZW4gZGVzY3JpYmluZyBhbiBpc3N1ZSBwbGVhc2UgbWFrZSBhbiBlZmZvcnQgdG8gcHJvdmlkZSBhbGwgcmVsYXZhbnQgaW5mb3JtYXRpb24sIGEgdGhvcm91Z2ggZGVzY3JpcHRpb24gb2YgeW91ciBpc3N1ZSwgYW5kIHN0ZXBzIHRvIHJlcHJvZHVjZSBpdCBvciB5b3VyIGRpc2N1c3Npb24gbWF5IGJlIGlnbm9yZWQuPC9saT4KPGxpPlRoZSBhdXRob3IsIGNhbGd1eTEwMDAsIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseS4gIEhvd2V2ZXIsIHBsZWFzZSB1c2UgdGhpcyBhcyBhIGxhc3QgcmVzb3J0LCBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgZm9sbG93ZWQgYWxsIGFwcGxpY2FibGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSBmb3JnZSwgaW4gdGhlIGZvcnVtcywgZXRjLjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDE3LCBSb2JlcnQgQ2FtcGJlbGwgPGEgaHJlZj0ibWFpbHRvOmNhbGd1eTEwMDBAY21zbWFkZXNpbXBsZS5vcmciPiZsdDtjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi48L3A+CjxwPkhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBkaXN0cmlidXRlZAphcyBhbiBhZGRvbiBtb2R1bGUgdG8gQ01TIE1hZGUgU2ltcGxlLiAgWW91IG1heSBub3QgdXNlIHRoaXMgc29mdHdhcmUKaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwpNYWRlIHNpbXBsZSB0aGF0IGRvZXMgbm90IGluZGljYXRlIGNsZWFybHkgYW5kIG9idmlvdXNseSBpbiBpdHMgYWRtaW4Kc2VjdGlvbiB0aGF0IHRoZSBzaXRlIHdhcyBidWlsdCB3aXRoIENNUyBNYWRlIHNpbXBsZS48L3A+CjxwPlRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLApidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgpNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCk9yIHJlYWQgaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5vbmxpbmU8L2E+PC9wPgo=]]></data>
	</file>
	<file>
	  <filename>/event.CGEcommerceBase.OrderUpdated.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICFpc3NldCgkcGFyYW1zWydvcmRlcl9pZCddKSApIHJldHVybjsKCi8vIGhhbmRsZSB0aGUgY2FzZSBvZiBhdHRlbXB0ZWQgcmVjdXJzaW9uLgppZiggY2dlX3RtcGRhdGE6OmV4aXN0cyhfX0ZJTEVfXykgKSByZXR1cm47CmNnZV90bXBkYXRhOjpzZXQoX19GSUxFX18sMSk7CgovLyBnZXQgdGhlIGZpZWxkIGRlZmluaXRpb25zLgokZGVmcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKCi8vIGNoZWNrIGZpZWxkIGRlZnMgZm9yIGFuIGVudHJ5IG9mIHR5cGUgJ3F1YW50aXR5JwppZiggIWlzX2FycmF5KCRkZWZzKSB8fCBjb3VudCgkZGVmcykgPT0gMCApIHJldHVybjsKJHFvaF9maWVsZF9pZCA9IC0xOwpmb3JlYWNoKCAkZGVmcyBhcyAkaWQgPT4gJGRlZiApIHsKICAgIGlmKCAkZGVmLT50eXBlID09ICdxdWFudGl0eScgKSAkcW9oX2ZpZWxkX2lkID0gKGludCkkZGVmLT5pZDsKfQppZiggJHFvaF9maWVsZF9pZCA8IDEgKSByZXR1cm47CgovLyBnZXQgdGhlIG9yZGVyLgokb3JkZXJfaWQgPSAoaW50KSRwYXJhbXNbJ29yZGVyX2lkJ107CiRvcmRlcl9vYmogPSBvcmRlcnNfb3BzOjpsb2FkX2J5X2lkKCRvcmRlcl9pZCk7CmlmKCAhJG9yZGVyX29iaiApIHJldHVybjsKaWYoICFpbl9hcnJheSgkb3JkZXJfb2JqLT5nZXRfc3RhdHVzKCksYXJyYXkoJ2ludm9pY2VkJywncGFpZCcpKSApIHJldHVybjsKCi8vIGZpbmQgdGhlIGxpbmUgd2l0aCB3aXRoIGEgcHJvZHVjdCBpbiBpdC4KZm9yKCAkcyA9IDA7ICRzIDwgJG9yZGVyX29iai0+Y291bnRfZGVzdGluYXRpb25zKCk7ICRzKysgKSB7CiAgICAkc2hpcHBpbmcgPSAkb3JkZXJfb2JqLT5nZXRfc2hpcHBpbmcoJHMpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgJHNoaXBwaW5nLT5jb3VudF9hbGxfaXRlbXMoKTsgJGkrKyApIHsKICAgICAgICAkaXRlbSA9ICRzaGlwcGluZy0+Z2V0X2l0ZW0oJGkpOwogICAgICAgIGlmKCAkaXRlbS0+Z2V0X3NvdXJjZSgpICE9ICdQcm9kdWN0cycgKSBjb250aW51ZTsKICAgICAgICBpZiggJGl0ZW0tPmdldF9pdGVtX3R5cGUoKSAhPSBsaW5lX2l0ZW06OklURU1UWVBFX1BST0RVQ1QgKSBjb250aW51ZTsKCiAgICAgICAgLy8gZ2V0IHRoZSBwcm9kdWN0IGlkLi4uIGFuZCB1cGRhdGUgdGhlIHF1YW50aXR5IGF2YWlsYWJsZS4KICAgICAgICAkc2t1ID0gJGl0ZW0tPmdldF9za3UoKTsKICAgICAgICAkcHJvZHVjdF9pZCA9ICRpdGVtLT5nZXRfaXRlbV9pZCgpOwogICAgICAgICRwcm9kdWN0ID0gJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPmdldF9ieV9hbnlfc2t1KCRza3UpOwogICAgICAgIGlmKCAhICRwcm9kdWN0IHx8ICRwcm9kdWN0LT5pZCAhPSAkcHJvZHVjdF9pZCApIHsKICAgICAgICAgICAgYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnaW4gT3JkZXJVcGRhdGVkIHByb2R1Y3QgaWQgZG9lcyBub3QgbWF0Y2ggb3JkZXIgaXRlbSB3aGVuIGZldGNoZWQgYnkgc2t1Jyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICRjdXJfdmFsID0gJy0tdW5kZWZpbmVkLS0nOwogICAgICAgIGlmKCAkcHJvZHVjdC0+c2t1ID09ICRza3UgKSB7CiAgICAgICAgICAgIC8vIHRoZSBza3UgaXMgZm9yIHRoZSBwcm9kdWN0IGl0c2VsZi4uLgogICAgICAgICAgICAkY3VyX3ZhbCA9IDA7CiAgICAgICAgICAgICRmb3VuZCA9IDA7CiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5HZXRSb3coJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRxb2hfZmllbGRfaWQpKTsKICAgICAgICAgICAgaWYoICRkYnIgKSB7CiAgICAgICAgICAgICAgICAkY3VyX3ZhbCA9IChpbnQpJGRiclsndmFsdWUnXTsKICAgICAgICAgICAgICAgICRmb3VuZCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGN1cl92YWwgLT0gKGludCkkaXRlbS0+Z2V0X3F1YW50aXR5KCk7CiAgICAgICAgICAgIGlmKCAhJGZvdW5kICkgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIChwcm9kdWN0X2lkLGZpZWxkZGVmX2lkLHZhbHVlLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LD8sTk9XKCksTk9XKCkpJzsKICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRxb2hfZmllbGRfaWQsJGN1cl92YWwpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgU0VUIHZhbHVlID0gPywgbW9kaWZpZWRfZGF0ZSA9IE5PVygpIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGN1cl92YWwsJHByb2R1Y3RfaWQsJHFvaF9maWVsZF9pZCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGF1ZGl0KCRwcm9kdWN0X2lkLCR0aGlzLT5HZXROYW1lKCksJ1VwZGF0ZWQgcXVhbnRpdHkgb2YgYXZhaWxhYmxlIHByb2R1Y3QgdG8gJy4kY3VyX3ZhbCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGNvdW50KCRwcm9kdWN0LT5hdHRyaWJzKSApIHsKICAgICAgICAgICAgLy8gaXQgbWF5IGJlIGFuIG9wdGlvbj8KICAgICAgICAgICAgZm9yZWFjaCggJHByb2R1Y3QtPmF0dHJpYnMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgIGlmKCAkb25lLT5za3UgPT0gJHNrdSAmJiAkb25lLT5pZCA+IDAgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gZm91bmQgdGhlIG9wdGlvbgogICAgICAgICAgICAgICAgICAgICRjdXJfdmFsID0gKGludCkgJG9uZS0+cW9oIC0gKGludCkgJGl0ZW0tPmdldF9xdWFudGl0eSgpOwogICAgICAgICAgICAgICAgICAgICRzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBTRVQgcW9oID0gPyBXSEVSRSBpZCA9ID8nOwogICAgICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoICRzcWwsWyAkY3VyX3ZhbCwoaW50KSAkb25lLT5pZCBdICk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCi8vIHNldHVwIGZvciBhbm90aGVyIG9yZGVyLi4uIHNob3VsZG4ndCBoYXBwZW4sIGJ1dCBqdXN0IGluIGNhc2UuCmNnZV90bXBkYXRhOjplcmFzZShfX0ZJTEVfXyk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/function.admin_categories_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKCiNQdXQgdG9nZXRoZXIgYSBsaXN0IG9mIGN1cnJlbnQgY2F0ZWdvcmllcy4uLgokZW50cnlhcnJheSA9IGFycmF5KCk7CgokcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgT1JERVIgQlkgbmFtZSI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJHJvd2NsYXNzID0gJ3JvdzEnOwokdGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CiAgICAkb25lcm93LT5pZCA9ICRyb3dbJ2lkJ107CiAgICAkb25lcm93LT5uYW1lID0gJHJvd1snbmFtZSddOwogICAgJGVudHJ5YXJyYXlbXSA9ICRvbmVyb3c7Cn0KCiRzbWFydHktPmFzc2lnbignaXRlbXMnLCAkZW50cnlhcnJheSk7CmVjaG8gJHRoaXMtPkNHUHJvY2Vzc1RlbXBsYXRlKCdjYXRlZ29yeWxpc3QudHBsJyk7CgoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_fielddefs_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSApIGV4aXQ7CgokZW50cnlhcnJheSA9IGFycmF5KCk7CgokbWF4ID0gJGRiLT5HZXRPbmUoIlNFTEVDVCBtYXgoaXRlbV9vcmRlcikgYXMgbWF4X2l0ZW1fb3JkZXIgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyIpOwoKJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgT1JERVIgQlkgaXRlbV9vcmRlciI7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoKJHJvd2NsYXNzID0gJ3JvdzEnOwokdGhlbWUgPSBjbXNfdXRpbHM6OmdldF90aGVtZV9vYmplY3QoKTsKd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgogICAgJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwogICAgJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICRvbmVyb3ctPnR5cGUgPSAkcm93Wyd0eXBlJ107CiAgICAkb25lcm93LT5tYXhfbGVuZ3RoID0gJHJvd1snbWF4X2xlbmd0aCddOwogICAgJG9uZXJvdy0+aXRlbV9vcmRlciA9ICRyb3dbJ2l0ZW1fb3JkZXInXTsKICAgICRvbmVyb3ctPmRvd25saW5rID0gJyc7CiAgICAkb25lcm93LT51cGxpbmsgPSAnJzsKICAgICRvbmVyb3ctPmVkaXRfdXJsID0gJHRoaXMtPmNyZWF0ZV91cmwoJGlkLCdlZGl0ZmllbGRkZWYnLCRyZXR1cm5pZCxhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10pKTsKICAgICRvbmVyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdGZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywgJHRoaXMtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10pKTsKCiAgICAkb25lcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZGVsZXRlZmllbGRkZWYnLCAkcmV0dXJuaWQsICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsICR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmRpZCc9PiRyb3dbJ2lkJ10pLCAkdGhpcy0+TGFuZygnYXJleW91c3VyZScpKTsKCiAgICAkZW50cnlhcnJheVtdID0gJG9uZXJvdzsKfQoKJHNtYXJ0eS0+YXNzaWduKCdmaWVsZHR5cGVzJyxwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRfdHlwZXMoKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRmaWVsZGRlZicsICRyZXR1cm5pZCwgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZGZpZWxkZGVmJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkZGZpZWxkZGVmJywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkZmllbGRkZWYnKSwgYXJyYXkoKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpZWxkZGVmdGV4dCcsICR0aGlzLT5MYW5nKCdmaWVsZGRlZicpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0eXBldGV4dCcsICR0aGlzLT5MYW5nKCd0eXBlJykpOwoKI0Rpc3BsYXkgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdmaWVsZGRlZmxpc3QudHBsJyk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/function.admin_hierarchy_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgZXhpdDsKCiRlbnRyeWFycmF5ID0gaGllcmFyY2h5X29wczo6Z2V0X2ZsYXRfbGlzdCgpOwokc21hcnR5LT5hc3NpZ24oJ2VudHJpZXMnLCRlbnRyeWFycmF5KTsKaWYoIGNvdW50KCRlbnRyeWFycmF5KSA+IDEgKSAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdyZW9yZGVyX2xpbmsnLAoJCSAgICAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fcmVvcmRlcl9oaWVyYXJjaHknLAoJCQkJCSAgICRyZXR1cm5pZCwKCQkJCQkgICAkdGhpcy0+TGFuZygncmVvcmRlcl9oaWVyYXJjaHknKSwKCQkJCQkgICAnaWNvbnMvc3lzdGVtL3Jlb3JkZXIuZ2lmJywKCQkJCQkgICBhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiAgfQoKZWNobyAkdGhpcy0+Q0dQcm9jZXNzVGVtcGxhdGUoJ2FkbWluX2hpZXJhcmNoeV90YWIudHBsJyk7CiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJGNvbnRlbnRvcHMgPSAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKJHNvcnRvcmRlciA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0b3JkZXInLCdhc2MnKTsKJHNvcnRieSA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnKTsKCiRzbWFydHktPmFzc2lnbignbW9kJywkdGhpcyk7CiRzbWFydHktPmFzc2lnbignc3RhcnRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fc2F2ZXByZWZzJywkcmV0dXJuaWQpKTsKJHNtYXJ0eS0+YXNzaWduKCdlbmRmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9kZXRhaWxwYWdlJywkdGhpcy0+TGFuZygncHJvbXB0X2RldGFpbHBhZ2UnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZGV0YWlscGFnZScsCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlkLidkZXRhaWxwYWdlJykpOwoKJHN0YXR1c2VzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ3B1Ymxpc2hlZCcpPT4ncHVibGlzaGVkJywKCQkgICR0aGlzLT5MYW5nKCdkcmFmdCcpPT4nZHJhZnQnLAoJCSAgJHRoaXMtPkxhbmcoJ2Rpc2FibGVkJyk9PidkaXNhYmxlZCcpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N0YXR1cycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdzdGF0dXMnLAoJCQkJCSAgICRzdGF0dXNlcywtMSwKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9zdGF0dXMnLCdwdWJsaXNoZWQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3RheGFibGUnLAoJCS8vCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCd0YXhhYmxlJywwKS4KCQkkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ3RheGFibGUnLDEsCgkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfdGF4YWJsZScsMSkpKTsKCiRzb3J0b3JkZXJzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2FzY2VuZGluZycpPT4nYXNjJywKCQkgICAgJHRoaXMtPkxhbmcoJ2Rlc2NlbmRpbmcnKT0+J2Rlc2MnKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfc3VtbWFyeXNvcnRvcmRlcicsJHRoaXMtPkxhbmcoJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlzb3J0b3JkZXInLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnc29ydG9yZGVyJywkc29ydG9yZGVycywtMSwkc29ydG9yZGVyKSk7CgppZiggIWNsYXNzX2V4aXN0cygnY2dfZWNvbW0nKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY3VycmVuY3lzeW1ib2wnLCR0aGlzLT5MYW5nKCdwcm9tcHRfY3VycmVuY3lzeW1ib2wnKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2lucHV0X2N1cnJlbmN5c3ltYm9sJywKCQkgICAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2N1cnJlbmN5c3ltYm9sJywKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfY3VycmVuY3lzeW1ib2wnKSkpOwoKICAgICRzbWFydHktPmFzc2lnbigncHJvbXB0X3dlaWdodHVuaXRzJywkdGhpcy0+TGFuZygncHJvbXB0X3dlaWdodHVuaXRzJykpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF93ZWlnaHR1bml0cycsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCd3ZWlnaHR1bml0cycsCgkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3dlaWdodHVuaXRzJykpKTsKCiAgICAkc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9sZW5ndGh1bml0cycsJHRoaXMtPkxhbmcoJ3Byb21wdF9sZW5ndGh1bml0cycpKTsKICAgICRvcHRzID0gYXJyYXkoJHRoaXMtPkxhbmcoJ2luY2hlcycpPT4naW4nLAoJCSAgJHRoaXMtPkxhbmcoJ2NlbnRpbWV0ZXJzJyk9PidjbScpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sZW5ndGh1bml0cycsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnbGVuZ3RodW5pdHMnLCRvcHRzLC0xLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfbGVuZ3RodW5pdHMnKSkpOwogIH0KCgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2FsbG93ZWRfaW1hZ2V0eXBlcycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2FsbG93ZWRfaW1hZ2V0eXBlcycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnKSw1MCwyNTUpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfYWxsb3dlZF9maWxldHlwZXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdhbGxvd2VkX2ZpbGV0eXBlcycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycpLDUwLDI1NSkpOwoKJHNtYXJ0eS0+YXNzaWduKCd1cmxwcmVmaXgnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCcnKSk7Cgokb3B0cyA9IGFycmF5KCk7CiRvcHRzWyR0aGlzLT5MYW5nKCdub25lJyldID0gJ25vbmUnOwokb3B0c1skdGhpcy0+TGFuZygnYXV0b21hdGljJyldID0gJ2F1dG8nOwokb3B0c1skdGhpcy0+TGFuZygnYWRqdXN0YWJsZScpXSA9ICdhZGp1c3RhYmxlJzsKJHNtYXJ0eS0+YXNzaWduKCdzdW1tYXJ5X25ld2RlZmF1bHQnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzdW1tYXJ5X25ld2RlZmF1bHQnLDApKTsKJHNtYXJ0eS0+YXNzaWduKCdzdW1tYXJ5X3BhZ2VsaW1pdCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3N1bW1hcnlfcGFnZWxpbWl0JywxMDApKTsKCiRzb3J0aW5ncyA9IGFycmF5KCR0aGlzLT5MYW5nKCdwcm9kdWN0bmFtZScpPT4ncHJvZHVjdF9uYW1lJywKCQkgICR0aGlzLT5MYW5nKCdwcmljZScpPT4ncHJpY2UnLAoJCSAgJHRoaXMtPkxhbmcoJ2NyZWF0ZWRkYXRlJyk9PidjcmVhdGVfZGF0ZScsCgkJICAkdGhpcy0+TGFuZygnbW9kaWZpZWRkYXRlJyk9Pidtb2RpZmllZF9kYXRlJywKCQkgICR0aGlzLT5MYW5nKCdyYW5kb20nKT0+J3JhbmRvbScsCgkJICAkdGhpcy0+TGFuZygnc2t1Jyk9Pidza3UnLAoJCSAgJHRoaXMtPkxhbmcoJ3N0YXR1cycpPT4nc3RhdHVzJyk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X3N1bW1hcnlzb3J0aW5nJywkdGhpcy0+TGFuZygncHJvbXB0X3N1bW1hcnlzb3J0aW5nJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1bW1hcnlzb3J0aW5nJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ3NvcnRieScsJHNvcnRpbmdzLC0xLCRzb3J0YnkpKTsKCiRzbWFydHktPmFzc2lnbignaW5wdXRfZGVsZXRlcHJvZHVjdGZpbGVzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnZGVsZXRlcHJvZHVjdGZpbGVzJywKCQkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlbGV0ZXByb2R1Y3RmaWxlcycpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZWhpZXJwYXRodXJscycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ3VzZWhpZXJwYXRodXJscycsCgkJCQkJCSR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1c2VoaWVycGF0aHVybHMnLDApKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCd1c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJywKCQkJCQkJJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnLDApKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZXJwYWdlJywKCQkkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZXJwYWdlJyksCgkJCQkJICAgICAgICRpZC4naGllcnBhZ2UnKSk7CiRzbWFydHktPmFzc2lnbigncHJldHR5aGllcnVybHMnLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcmV0dHloaWVydXJscycsMCkpOwoKJG5vdGZvdW5kX29wdHMgPSBhcnJheSgpOwokbm90Zm91bmRfb3B0c1snZG80MDQnXSA9ICR0aGlzLT5MYW5nKCdwcm9tcHRfbm90Zm91bmRfNDA0Jyk7CiRub3Rmb3VuZF9vcHRzWydkbzMwMSddID0gJHRoaXMtPkxhbmcoJ3Byb21wdF9ub3Rmb3VuZF8zMDEnKTsKJG5vdGZvdW5kX29wdHNbJ2RvbXNnJ10gPSAkdGhpcy0+TGFuZygncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJyk7CiRzbWFydHktPmFzc2lnbignbm90Zm91bmRfb3B0cycsJG5vdGZvdW5kX29wdHMpOwokc21hcnR5LT5hc3NpZ24oJ3Byb2Rub3Rmb3VuZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZCcsJ2RvbXNnJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb2Rub3Rmb3VuZG1zZycsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2Rub3Rmb3VuZG1zZycsJHRoaXMtPkxhbmcoJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnKSkpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3Byb2Rub3Rmb3VuZHBhZ2UnLAoJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgncHJvZG5vdGZvdW5kcGFnZScsLTEpLCRpZC4ncHJvZG5vdGZvdW5kcGFnZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdza3VyZXF1aXJlZCcsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJywwKSk7CiRzbWFydHktPmFzc2lnbignc2x1Z3RlbXBsYXRlJywkdGhpcy0+R2V0VGVtcGxhdGUoJ3NsdWd0ZW1wbGF0ZScpKTsKCiRmZXUgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CmlmKCAkZmV1ICkgewogICAgJGdyb3VwbGlzdCA9IGFycmF5X2ZsaXAoJGZldS0+R2V0R3JvdXBMaXN0KCkpOwogICAgaWYoIGNvdW50KCRncm91cGxpc3QpICkgewogICAgICAgICRvdXQgPSBbJyc9PiR0aGlzLT5MYW5nKCdub25lJyldOwogICAgICAgIGZvcmVhY2goICRncm91cGxpc3QgYXMgJGdpZCA9PiAkZ25hbWUgKSB7CiAgICAgICAgICAgICRvdXRbJGdpZF0gPSAkZ25hbWU7CiAgICAgICAgfQogICAgICAgICRzbWFydHktPmFzc2lnbignZmV1X2dyb3VwbGlzdCcsJG91dCk7CiAgICB9CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ZldV9vd25lcmdyb3VwJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZmV1X293bmVyZ3JvdXAnKSk7Cn0KZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdwcmVmcy50cGwnKTsKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_productstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpICkgcmV0dXJuOwoKLy8KLy8gU2V0dXAKLy8KJHBhZ2VsaW1pdHMgPSBhcnJheSgnMic9PjIsJzUnPT41LCcyNSc9PjI1LCcxMDAnPT4xMDAsJzUwMCc9PjUwMCk7CiRzb3J0aXRlbXMgPSBhcnJheSgpOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCdwcm9kdWN0bmFtZScpXSA9ICdwcm9kdWN0X25hbWUnOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCdwcmljZScpXSA9ICdwcmljZSc7CiRzb3J0aXRlbXNbJHRoaXMtPkxhbmcoJ3dlaWdodCcpXSA9ICd3ZWlnaHQnOwokc29ydGl0ZW1zWyR0aGlzLT5MYW5nKCdza3UnKV0gPSAnc2t1JzsKJHNvcnRpdGVtc1skdGhpcy0+TGFuZygnY3JlYXRlZGRhdGUnKV0gPSAncC5jcmVhdGVfZGF0ZSc7CiRzb3J0aXRlbXNbJHRoaXMtPkxhbmcoJ21vZGlmaWVkZGF0ZScpXSA9ICdwLm1vZGlmaWVkX2RhdGUnOwokc29ydG9yZGVycyA9IGFycmF5KCk7CiRzb3J0b3JkZXJzWyR0aGlzLT5MYW5nKCdhc2NlbmRpbmcnKV0gPSAnYXNjJzsKJHNvcnRvcmRlcnNbJHRoaXMtPkxhbmcoJ2Rlc2NlbmRpbmcnKV0gPSAnZGVzYyc7CiR1aWQgPSBnZXRfdXNlcmlkKGZhbHNlKTsKJGJhcmVfZmlsdGVyID0gYXJyYXkoJ3Byb2R1Y3RuYW1lJz0+JycsJ3NrdSc9PicnLCdoaWVyYXJjaHknPT4nJywnY2hpbGRyZW4nPT4wLCdwYWdlbGltaXQnPT4yNSwnc29ydGJ5Jz0+J3AuY3JlYXRlX2RhdGUnLAoJCSAgICAgJ3NvcnRvcmRlcic9PidkZXNjJywnY2F0ZWdvcmllcyc9PmFycmF5KCksJ2V4Y2x1ZGVjYXRzJz0+MCwnY3VzdG9tX2ZpZWxkcyc9PmFycmF5KCkpOwokZmlsdGVyID0gJGJhcmVfZmlsdGVyOwokdG1wID0gY21zX3VzZXJwcmVmczo6Z2V0KCdwcm9kdWN0c19maWx0ZXInKTsKaWYoICR0bXAgKSB7CiAgICAkdG1wID0gdW5zZXJpYWxpemUoJHRtcCk7CiAgICAkZmlsdGVyID0gYXJyYXlfbWVyZ2UoJGJhcmVfZmlsdGVyLCR0bXApOwp9CgovLyAkaGllcmFyY2h5ID0gJyc7Ci8vICRjaGlsZHJlbiAgPSAwOwovLyAkcGFnZWxpbWl0ID0gMjU7Ci8vICRzb3J0YnkgICAgPSAnY3JlYXRlX2RhdGUnOwovLyAkc29ydG9yZGVyID0gJ2Rlc2MnOwokcGFnZW51bWJlciA9IDE7CiRmaWVsZHNfdmlld2FibGUgPSAkZmllbGRfbmFtZXMgPSBbXTsKCmlmKCBpc3NldCgkcGFyYW1zWydyZXNldCddKSApIHsKICAgICRmaWx0ZXIgPSAkYmFyZV9maWx0ZXI7CiAgICBjbXNfdXNlcnByZWZzOjpyZW1vdmUoJ3Byb2R1Y3RzX2ZpbHRlcicpOwogICAgdW5zZXQoJF9TRVNTSU9OWydwcm9kdWN0c19zZWxfcGFnZW51bSddKTsKfQoKLy8KLy8gR2V0IHByZWZlcmVuY2VzCi8vCgovLwovLyBIYW5kbGUgR2V0IHBhcmFtZXRlcnMKLy8KaWYoIGlzc2V0KCRfU0VTU0lPTlsncHJvZHVjdHNfc2VsX3BhZ2VudW0nXSkgKSAkcGFnZW51bWJlciA9IChpbnQpJF9TRVNTSU9OWydwcm9kdWN0c19zZWxfcGFnZW51bSddOwppZiggaXNzZXQoJHBhcmFtc1sncGFnZW51bWJlciddKSApICRwYWdlbnVtYmVyID0gKGludCkkcGFyYW1zWydwYWdlbnVtYmVyJ107CiRwYWdlbnVtYmVyID0gbWF4KDEsJHBhZ2VudW1iZXIpOwppZiggJHBhZ2VudW1iZXIgPiAxICkgJF9TRVNTSU9OWydwcm9kdWN0c19zZWxfcGFnZW51bSddID0gJHBhZ2VudW1iZXI7CgovLwovLyBIYW5kbGUgZm9ybSBzdWJtaXQKLy8KaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApIHsKICAgICRmaWx0ZXJbJ3Byb2R1Y3RuYW1lJ10gPSB0cmltKCRwYXJhbXNbJ2lucHV0X3Byb2R1Y3RuYW1lJ10pOwogICAgJGZpbHRlclsnc2t1J10gPSB0cmltKCRwYXJhbXNbJ2lucHV0X3NrdSddKTsKICAgIGlmKCAkZmlsdGVyWydwcm9kdWN0bmFtZSddICkgJGZpbHRlclsnc2t1J10gPSAnJzsgLy8gb25lLCBvciB0aGUgb3RoZXIuLiBidXQgbm90IGJvdGguCiAgICAkZmlsdGVyWydoaWVyYXJjaHknXSA9IChpbnQpKCRwYXJhbXNbJ2lucHV0X2hpZXJhcmNoeSddKTsKICAgICRmaWx0ZXJbJ2NoaWxkcmVuJ10gPSAoaW50KSRwYXJhbXNbJ2lucHV0X2NoaWxkcmVuJ107CiAgICAkZmlsdGVyWydwYWdlbGltaXQnXSA9IChpbnQpJHBhcmFtc1snaW5wdXRfcGFnZWxpbWl0J107CiAgICAkZmlsdGVyWydwYWdlbGltaXQnXSA9IG1heCgxLG1pbig1MDAsJGZpbHRlclsncGFnZWxpbWl0J10pKTsKICAgICRmaWx0ZXJbJ3NvcnRieSddID0gdHJpbSgkcGFyYW1zWydpbnB1dF9zb3J0YnknXSk7CiAgICAkZmlsdGVyWydzb3J0b3JkZXInXSA9IHRyaW0oJHBhcmFtc1snaW5wdXRfc29ydG9yZGVyJ10pOwogICAgJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddID0gYXJyYXkoKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjdXN0b21fZmllbGRzJ10pICkgJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddID0gJHBhcmFtc1snY3VzdG9tX2ZpZWxkcyddOwogICAgJGZpbHRlclsnY2F0ZWdvcmllcyddID0gYXJyYXkoKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yaWVzJ10pICkgJGZpbHRlclsnY2F0ZWdvcmllcyddID0gJHBhcmFtc1snY2F0ZWdvcmllcyddOwogICAgJGZpbHRlclsnZXhjbHVkZWNhdHMnXSA9IChpbnQpY2dlX3V0aWxzOjpnZXRfcGFyYW0oJHBhcmFtcywnaW5wdXRfZXhjbHVkZWNhdHMnKTsKCiAgICBjbXNfdXNlcnByZWZzOjpzZXQoJ3Byb2R1Y3RzX2ZpbHRlcicsc2VyaWFsaXplKCRmaWx0ZXIpKTsKICAgIHVuc2V0KCRfU0VTU0lPTlsncHJvZHVjdHNfc2VsX3BhZ2VudW0nXSk7CiAgICAkcGFnZW51bWJlciA9IDE7Cn0KCi8vCi8vIEJlZ2luIHRoZSBmb3JtCi8vCiR0cGwgPSAkdGhpcy0+Q3JlYXRlU21hcnR5VGVtcGxhdGUoJ3Byb2R1Y3RsaXN0LnRwbCcpOwokdG1wID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoKTsKaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICAgJGNhdGVnb3J5X2xpc3QgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICRjYXRlZ29yeV9saXN0WyRvbmUtPmlkXSA9ICRvbmUtPm5hbWU7CiAgICB9CiAgICAkdHBsLT5hc3NpZ24oJ2NhdGVnb3J5X2xpc3QnLCRjYXRlZ29yeV9saXN0KTsKfQoKJGZpZWxkZGVmcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoKTsKZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkb25lZGVmICkgewogICAgc3dpdGNoKCAkb25lZGVmLT50eXBlICkgewogICAgY2FzZSAndGV4dGJveCc6CiAgICAgICAgJHNvcnRpdGVtc1skb25lZGVmLT5wcm9tcHRdID0gJ0Y6OicuJG9uZWRlZi0+aWQ7CiAgICAgICAgJHNvcnRpdGVtc1skb25lZGVmLT5wcm9tcHQuJyAoJy4kdGhpcy0+TGFuZygnbnVtZXJpYycpLicpJ10gPSAnRjo6Jy4kb25lZGVmLT5pZC4nOjpOJzsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ2Ryb3Bkb3duJzoKICAgICAgICAkc29ydGl0ZW1zWyRvbmVkZWYtPnByb21wdF0gPSAnRjo6Jy4kb25lZGVmLT5pZDsKICAgICAgICBicmVhazsKICAgIH0KfQoKJGZpZWxkc192aWV3YWJsZVsnUDpza3UnXSA9ICR0aGlzLT5MYW5nKCdza3UnKTsKJGZpZWxkc192aWV3YWJsZVsnUDp1cmwnXSA9ICR0aGlzLT5MYW5nKCd1cmxfc2x1ZycpOwokZmllbGRzX3ZpZXdhYmxlWydQOmFsaWFzJ10gPSAkdGhpcy0+TGFuZygndXJsX2FsaWFzJyk7CiRmaWVsZHNfdmlld2FibGVbJ1A6d2VpZ2h0J10gPSAkdGhpcy0+TGFuZygnd2VpZ2h0Jyk7CiRmaWVsZHNfdmlld2FibGVbJ1A6b3duZXInXSA9ICR0aGlzLT5MYW5nKCdvd25lcicpOwokZmllbGRzX3ZpZXdhYmxlWydQOm1vZGlmaWVkX2RhdGUnXSA9ICR0aGlzLT5MYW5nKCdsYXN0X21vZGlmaWVkJyk7CiRhbGxfZmllbGRzID0gcHJvZHVjdF9vcHM6OmdldF9maWVsZHMoKTsKaWYoIGlzX2FycmF5KCRhbGxfZmllbGRzKSApIHsKICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRhbGxfZmllbGRzKTsgJGkrKyApIHsKICAgICAgICBzd2l0Y2goICRhbGxfZmllbGRzWyRpXVsndHlwZSddICkgewogICAgICAgIGNhc2UgJ2ltYWdlJzoKICAgICAgICBjYXNlICd0ZXh0YXJlYSc6CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICRmaWVsZHNfdmlld2FibGVbJ0M6Jy4kYWxsX2ZpZWxkc1skaV1bJ2lkJ11dID0gJGFsbF9maWVsZHNbJGldWydwcm9tcHQnXTsKICAgICAgICAgICAgJGZpZWxkX25hbWVzWyRhbGxfZmllbGRzWyRpXVsnaWQnXV0gPSAkYWxsX2ZpZWxkc1skaV1bJ25hbWUnXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQogICAgaWYoIGNvdW50KCRmaWVsZHNfdmlld2FibGUpICkgewogICAgICAgIC8vIG5vdyB0cmltIGRvd24gdGhlIGN1c3RvbSBmaWVsZHMKICAgICAgICAvLyB0byBtYWtlIHN1cmUgdGhhdCBzb21ldGhpbmcgaGFzbid0IGJlZW4gZGVsZXRlZC4KICAgICAgICAkdG1wID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoKCAkZmlsdGVyWydjdXN0b21fZmllbGRzJ10gYXMgJGZpZCApIHsKICAgICAgICAgICAgaWYoIGluX2FycmF5KCRmaWQsYXJyYXlfa2V5cygkZmllbGRzX3ZpZXdhYmxlKSkgKSAkdG1wW10gPSAkZmlkOwogICAgICAgIH0KICAgICAgICAkZmlsdGVyWydjdXN0b21fZmllbGRzJ10gPSAkdG1wOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddID0gYXJyYXkoKTsKICAgIH0KfQokYWxsX2ZpZWxkcyA9IGNnZV9hcnJheTo6dG9faGFzaCgkYWxsX2ZpZWxkcywnbmFtZScpOwoKJGZpbHRlcmludXNlID0gKCRmaWx0ZXIgPT0gJGJhcmVfZmlsdGVyKT9GQUxTRTpUUlVFOwokdHBsLT5hc3NpZ24oJ2Zvcm1zdGFydCcsJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnZGVmYXVsdGFkbWluJykpOwokdHBsLT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdHBsLT5hc3NpZ24oJ2ZpZWxkc192aWV3YWJsZScsJGZpZWxkc192aWV3YWJsZSk7CiR0cGwtPmFzc2lnbignZmllbGRfbmFtZXMnLCRmaWVsZF9uYW1lcyk7CiR0cGwtPmFzc2lnbignZmlsdGVyJywkZmlsdGVyKTsKJHRwbC0+YXNzaWduKCdmaWx0ZXJpbnVzZScsJGZpbHRlcmludXNlKTsKJHRwbC0+YXNzaWduKCdpbnB1dF9oaWVyYXJjaHknLCR0aGlzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bigkaWQsJ2lucHV0X2hpZXJhcmNoeScsJGZpbHRlclsnaGllcmFyY2h5J10pKTsKJHRwbC0+YXNzaWduKCdpbnB1dF9jaGlsZHJlbicsJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2lucHV0X2NoaWxkcmVuJywkZmlsdGVyWydjaGlsZHJlbiddKSk7CiR0cGwtPmFzc2lnbignaW5wdXRfc29ydGJ5JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X3NvcnRieScsJHNvcnRpdGVtcywtMSwkZmlsdGVyWydzb3J0YnknXSkpOwokdHBsLT5hc3NpZ24oJ2lucHV0X3NvcnRvcmRlcicsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdpbnB1dF9zb3J0b3JkZXInLCRzb3J0b3JkZXJzLC0xLCRmaWx0ZXJbJ3NvcnRvcmRlciddKSk7CiR0cGwtPmFzc2lnbignaW5wdXRfcGFnZWxpbWl0JywkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsJ2lucHV0X3BhZ2VsaW1pdCcsJHBhZ2VsaW1pdHMsLTEsJGZpbHRlclsncGFnZWxpbWl0J10pKTsKJHRwbC0+YXNzaWduKCdpbnB1dF9leGNsdWRlY2F0cycsJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2lucHV0X2V4Y2x1ZGVjYXRzJywkZmlsdGVyWydleGNsdWRlY2F0cyddKSk7CgovLwovLyBCdWlsZCB0aGUgcXVlcnkKLy8KJGZpZWxkcyA9IGFycmF5KCk7CiRmaWVsZHNbXSA9ICdESVNUSU5DVCBwLionOwokcHJlZml4MSA9ICJTRUxFQ1QgPEZJRUxEUz4gRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIHAgIjsKJHByZWZpeDIgPSAiU0VMRUNUIGNvdW50KHAuaWQpIEFTIGNvdW50IEZST00gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBwICc7CiR3aGVyZSA9IGFycmF5KCk7CiRqb2lucyA9IGFycmF5KCk7CiRxcGFybXMgPSBhcnJheSgpOwoKaWYoICRmaWx0ZXJbJ3Byb2R1Y3RuYW1lJ10gKSB7CiAgICAkdG1wID0gJGZpbHRlclsncHJvZHVjdG5hbWUnXTsKICAgICR0bXAgPSBzdHJfcmVwbGFjZSgnKicsJyUnLCR0bXApOwogICAgaWYoIHN0cnBvcygnJScsJHRtcCkgPT09IEZBTFNFICkgJHRtcCA9ICR0bXAgLiAnJSc7CiAgICAkdG1wID0gc3RyX3JlcGxhY2UoJyUlJywnJScsJHRtcCk7CiAgICAkd2hlcmVbXSA9ICdwLnByb2R1Y3RfbmFtZSBMSUtFID8nOwogICAgJHFwYXJtc1tdID0gJHRtcDsKfQplbHNlIGlmKCAkZmlsdGVyWydza3UnXSApIHsKICAgICR0bXAgPSAkZmlsdGVyWydza3UnXTsKICAgICR0bXAgPSBzdHJfcmVwbGFjZSgnKicsJyUnLCR0bXApOwogICAgaWYoIHN0cnBvcygnJScsJHRtcCkgPT09IEZBTFNFICkgJHRtcCA9ICR0bXAgLiAnJSc7CiAgICAkdG1wID0gc3RyX3JlcGxhY2UoJyUlJywnJScsJHRtcCk7CiAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzIFBBIE9OIHAuaWQgPSBQQS5wcm9kdWN0X2lkJzsKICAgICR3aGVyZVtdID0gJyhwLnNrdSBMSUtFID8gT1IgUEEuc2t1IExJS0UgPyknOwogICAgJHFwYXJtc1tdID0gJHRtcDsKICAgICRxcGFybXNbXSA9ICR0bXA7Cn0KCmlmKCBjb3VudCgkZmlsdGVyWydjdXN0b21fZmllbGRzJ10pICYmIGNvdW50KCRmaWVsZHNfdmlld2FibGUpICkgewogICAgZm9yKCAkaiA9IDA7ICRqIDwgY291bnQoJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddKTsgJGorKyApIHsKICAgICAgICAkZmlkID0gJGZpbHRlclsnY3VzdG9tX2ZpZWxkcyddWyRqXTsKICAgICAgICBpZiggIXN0YXJ0c3dpdGgoICRmaWQsICdDOicpICkgY29udGludWU7CiAgICAgICAgJGZpZCA9IChpbnQpIHN1YnN0cigkZmlkLDIpOwogICAgICAgICRmaWVsZHNbXSA9ICJGdnskan0udmFsdWUgQVMgJ0ZsZF9feyRmaWVsZF9uYW1lc1skZmlkXX0nIjsKICAgICAgICAkam9pbnNbXSA9ICdMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRnZ7JGp9IE9OIEZ2eyRqfS5wcm9kdWN0X2lkID0gcC5pZCBBTkQgRnZ7JGp9LmZpZWxkZGVmX2lkID0gIi4kZmlkOwogICAgfQp9CgppZiggIWVtcHR5KCRmaWx0ZXJbJ2hpZXJhcmNoeSddKSApIHsKICAgICR0cXVlcnkgPSAnU0VMRUNUIGxvbmdfbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIGlkID0gPyc7CiAgICAkbG9uZ19uYW1lID0gJGRiLT5HZXRPbmUoJHRxdWVyeSxbIChpbnQpICRmaWx0ZXJbJ2hpZXJhcmNoeSddIF0pOwoKICAgICRqb2luc1tdID0gJ0xFRlQgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgcGggT04gcGgucHJvZHVjdF9pZCA9IHAuaWQnOwogICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IGggT04gaC5pZCA9IHBoLmhpZXJhcmNoeV9pZCc7CiAgICAkd2hlcmVbXSA9ICdoLmxvbmdfbmFtZSBMSUtFID8nOwogICAgaWYoICRmaWx0ZXJbJ2NoaWxkcmVuJ10gKSB7CiAgICAgICAgJHFwYXJtc1tdID0gJGxvbmdfbmFtZS4nJSc7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkcXBhcm1zW10gPSAkbG9uZ19uYW1lOwogICAgfQp9CgppZiggY291bnQoJGZpbHRlclsnY2F0ZWdvcmllcyddKSA+IDAgKSB7CiAgICAkam9pbnNbXSA9ICdMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgcGMgT04gcC5pZCA9IHBjLnByb2R1Y3RfaWQnOwogICAgaWYoICRmaWx0ZXJbJ2V4Y2x1ZGVjYXRzJ10gKSB7CiAgICAgICAgJHdoZXJlW10gPSAnQ09BTEVTQ0UocGMuY2F0ZWdvcnlfaWQsLTEpIE5PVCBJTiAoJy5pbXBsb2RlKCcsJywkZmlsdGVyWydjYXRlZ29yaWVzJ10pLicpJzsKICAgIH0KICAgIGVsc2UgewogICAgICAgICR3aGVyZVtdID0gJ3BjLmNhdGVnb3J5X2lkIElOICgnLmltcGxvZGUoJywnLCRmaWx0ZXJbJ2NhdGVnb3JpZXMnXSkuJyknOwogICAgfQp9CgovLyBoYW5kbGUgZnVua3kgY3VzdG9tIGZpZWxkIHNvcnQgb3JkZXJzCmlmKCBzdGFydHN3aXRoKCRmaWx0ZXJbJ3NvcnRieSddLCdGOjonKSApIHsKICAgIGxpc3QoJGp1bmssJGZpZCwkbnVtZXJpYykgPSBleHBsb2RlKCc6OicsJGZpbHRlclsnc29ydGJ5J10sMyk7CiAgICAkam9pbnNbXSA9ICdMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgZnYgT04gZnYucHJvZHVjdF9pZCA9IHAuaWQnOwogICAgJHdoZXJlW10gPSAnZnYuZmllbGRkZWZfaWQgPSA/JzsKICAgICRxcGFybXNbXSA9ICRmaWQ7CiAgICBpZiggJG51bWVyaWMgKSB7CiAgICAgICAgJG9yZGVyID0gIiBPUkRFUiBCWSBDQVNUKGZ2LnZhbHVlIEFTIERFQ0lNQUwoMTIsMykpIHskZmlsdGVyWydzb3J0b3JkZXInXX0iOwogICAgfSBlbHNlIHsKICAgICAgICAkb3JkZXIgPSAiIE9SREVSIEJZIGZ2LnZhbHVlIHskZmlsdGVyWydzb3J0b3JkZXInXX0iOwogICAgfQp9CmVsc2UgewogICAgJG9yZGVyID0gIiBPUkRFUiBCWSB7JGZpbHRlclsnc29ydGJ5J119IHskZmlsdGVyWydzb3J0b3JkZXInXX0iOwp9Cgokc3RyID0gaW1wbG9kZSgnICcsJGpvaW5zKTsKaWYoIGNvdW50KCR3aGVyZSkgKSB7CiAgICAkc3RyIC49ICcgV0hFUkUgJyAuIGltcGxvZGUoJyBBTkQgJywkd2hlcmUpIC4gJG9yZGVyOwp9CmVsc2UgewogICAgJHN0ciAuPSAkb3JkZXI7Cn0KJHF1ZXJ5MSA9IHN0cl9yZXBsYWNlKCc8RklFTERTPicsaW1wbG9kZSgnLCcsJGZpZWxkcyksJHByZWZpeDEpIC4gJHN0cjsKJHF1ZXJ5MiA9ICRwcmVmaXgyIC4gJHN0cjsKCi8vCi8vIFNldHVwIHN0YXJ0IGVsZW1lbnQsIGFuZCBjb3VudCBwYWdlcwovLwokdG90YWxjb3VudCA9ICRkYi0+R2V0T25lKCRxdWVyeTIsJHFwYXJtcyk7CiRwYWdlY291bnQgPSAoaW50KSgkdG90YWxjb3VudC8kZmlsdGVyWydwYWdlbGltaXQnXSk7CmlmKCAoJHRvdGFsY291bnQgJSAkZmlsdGVyWydwYWdlbGltaXQnXSkgIT0gMCApICRwYWdlY291bnQrKzsKJHN0YXJ0ZWxlbWVudCA9ICgkcGFnZW51bWJlci0xKSAqICRmaWx0ZXJbJ3BhZ2VsaW1pdCddOwoKLy8KLy8gQmVnaW4gdGhlIG91dHB1dAovLwokdHBsLT5hc3NpZ24oJ3RvdGFscHJvZHVjdHMnLCRkYi0+R2V0T25lKCdTRUxFQ1QgQ09VTlQoaWQpIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycpKTsKJHRwbC0+YXNzaWduKCdwYWdlbnVtYmVyJywkcGFnZW51bWJlcik7CiR0cGwtPmFzc2lnbigncGFnZWNvdW50JywkcGFnZWNvdW50KTsKJHRwbC0+YXNzaWduKCd0b3RhbHJvd3MnLCR0b3RhbGNvdW50KTsKaWYoICRwYWdlbnVtYmVyID4gMSApIHsKICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJz0+MSk7CiAgICAkdHBsLT5hc3NpZ24oJ2ZpcnN0cGFnZV91cmwnLCAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFybXMpKTsKICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJz0+JHBhZ2VudW1iZXIgLTEpOwogICAgJHRwbC0+YXNzaWduKCdwcmV2cGFnZV91cmwnLCAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFybXMpKTsKfQppZiggJHBhZ2VudW1iZXIgPCAkcGFnZWNvdW50ICkgewogICAgJHBhcm1zID0gYXJyYXkoJ3BhZ2VudW1iZXInPT4kcGFnZW51bWJlciArIDEpOwogICAgJHRwbC0+YXNzaWduKCduZXh0cGFnZV91cmwnLCAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnZGVmYXVsdGFkbWluJywnJywkcGFybXMpKTsKICAgICRwYXJtcyA9IGFycmF5KCdwYWdlbnVtYmVyJz0+JHBhZ2Vjb3VudCk7CiAgICAkdHBsLT5hc3NpZ24oJ2xhc3RwYWdlX3VybCcsICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdkZWZhdWx0YWRtaW4nLCcnLCRwYXJtcykpOwp9CiRlbnRyeWFycmF5ID0gYXJyYXkoKTsKJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnkxLCRmaWx0ZXJbJ3BhZ2VsaW1pdCddLCRzdGFydGVsZW1lbnQsJHFwYXJtcyk7CiR0aGVtZSA9IGNtc191dGlsczo6Z2V0X3RoZW1lX29iamVjdCgpOwp3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpIHsKICAgIGZvcmVhY2goICRyb3cgYXMgJGtleSA9PiAkdmFsdWUgKSB7CiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJGtleSwnRmxkX18nKSApIHsKICAgICAgICAgICAgdW5zZXQoJHJvd1ska2V5XSk7CiAgICAgICAgICAgICRrZXkgPSBzdWJzdHIoJGtleSxzdHJsZW4oJ0ZsZF9fJykpOwogICAgICAgICAgICAkcm93WyRrZXldID0gJHZhbHVlOwoKICAgICAgICAgICAgJHRtcCA9IEB1bnNlcmlhbGl6ZSgkdmFsdWUpOwogICAgICAgICAgICBpZiggJHRtcCAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAkcm93WyRrZXldID0gcHJvZHVjdF91dGlsczo6Z2V0X2Rpc3BsYXlhYmxlX2ZpZWxkdmFsKCRrZXksJHRtcCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkcm93WyRrZXldID0gcHJvZHVjdF91dGlsczo6Z2V0X2Rpc3BsYXlhYmxlX2ZpZWxkdmFsKCRrZXksJHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAkcm93WydlZGl0X3VybCddID0gJHRoaXMtPkNyZWF0ZVVSTCgkaWQsJ2VkaXRwcm9kdWN0JywkcmV0dXJuaWQsIGFycmF5KCdjb21waWQnPT4kcm93WydpZCddKSk7CiAgICAkcm93WydlZGl0bGluayddID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCAnZWRpdHByb2R1Y3QnLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsICR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnY29tcGlkJz0+JHJvd1snaWQnXSkpOwogICAgJHJvd1snY29weWxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2NvcHlwcm9kdWN0JywgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGVtZS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vY29weS5naWYnLCAkdGhpcy0+TGFuZygnY29weV9wcm9kdWN0JyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NvbXBpZCc9PiRyb3dbJ2lkJ10pKTsKICAgICRyb3dbJ2RlbGV0ZWxpbmsnXSA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwgJ2RlbGV0ZXByb2R1Y3QnLCAkcmV0dXJuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhlbWUtPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCAkdGhpcy0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2NvbXBpZCc9PiRyb3dbJ2lkJ10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxhbmcoJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCcpKTsKICAgICRlbnRyeWFycmF5W10gPSAkcm93Owp9CgokdHBsLT5hc3NpZ24oJ2l0ZW1zJywgJGVudHJ5YXJyYXkpOwokdHBsLT5hc3NpZ24oJ2l0ZW1jb3VudCcsIGNvdW50KCRlbnRyeWFycmF5KSk7CgokdHBsLT5hc3NpZ24oJ2ltcG9ydGxpbmsnLAogICAgICAgICAgICAgJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2ltcG9ydHByb2R1Y3RzJywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2ltcG9ydF9mcm9tX2NzdicpLCAnaWNvbnMvc3lzdGVtL2ltcG9ydC5naWYnLGFycmF5KCksJycsJycsZmFsc2UpKTsKCiR0cGwtPmFzc2lnbignZXhwb3J0bGluaycsCiAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnZXhwb3J0Y3N2JywkcmV0dXJuaWQsJHRoaXMtPkxhbmcoJ2V4cG9ydF90b19jc3YnKSwgJ2ljb25zL3N5c3RlbS9leHBvcnQuZ2lmJyxhcnJheSgpLCcnLCcnLGZhbHNlKSk7CiR0cGwtPmFzc2lnbignYWRkbGluaycsCiAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRwcm9kdWN0JywgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoZW1lLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJywgJHRoaXMtPkxhbmcoJ2FkZHByb2R1Y3QnKSwnJywnJywnc3lzdGVtaWNvbicpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2hpZXJhcmNoeSc9PiRmaWx0ZXJbJ2hpZXJhcmNoeSddKSwgJycsIGZhbHNlLCBmYWxzZSwgJycpIC4nICcuCiAgICAgICAgICAgICAkdGhpcy0+Q3JlYXRlTGluaygkaWQsICdhZGRwcm9kdWN0JywgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnYWRkcHJvZHVjdCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2hpZXJhcmNoeSc9PiRmaWx0ZXJbJ2hpZXJhcmNoeSddKSwgJycsIGZhbHNlLCBmYWxzZSwgJ2NsYXNzPSJwYWdlb3B0aW9ucyInKSk7CgokdHBsLT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokdHBsLT5hc3NpZ24oJ3Byb2R1Y3R0ZXh0JywgJHRoaXMtPkxhbmcoJ3Byb2R1Y3QnKSk7CiR0cGwtPmFzc2lnbigncHJpY2V0ZXh0JywgJHRoaXMtPkxhbmcoJ3ByaWNlJykpOwokdHBsLT5hc3NpZ24oJ3dlaWdodF91bml0cycscHJvZHVjdF9vcHM6OmdldF93ZWlnaHRfdW5pdHMoKSk7CiR0cGwtPmFzc2lnbignd2VpZ2h0dGV4dCcsJHRoaXMtPkxhbmcoJ3dlaWdodCcpKTsKJHRwbC0+YXNzaWduKCdmb3Jtc3RhcnQyJywkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fYnVsa2FjdGlvbicsJHJldHVybmlkKSk7CiR0cGwtPmFzc2lnbignZm9ybWVuZDInLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdHBsLT5hc3NpZ24oJ2ZpbHRlcmludXNlJywkZmlsdGVyaW51c2UpOwokYnVsa2FjdGlvbnMgPSBhcnJheSgpOwokYnVsa2FjdGlvbnNbJ2RlbGV0ZSddID0gJHRoaXMtPkxhbmcoJ2RlbGV0ZScpOwokYnVsa2FjdGlvbnNbJ3NldGRyYWZ0J10gPSAkdGhpcy0+TGFuZygnc2V0ZHJhZnQnKTsKJGJ1bGthY3Rpb25zWydzZXRkaXNhYmxlZCddID0gJHRoaXMtPkxhbmcoJ3NldGRpc2FibGVkJyk7CiRidWxrYWN0aW9uc1snc2V0cHVibGlzaGVkJ10gPSAkdGhpcy0+TGFuZygnc2V0cHVibGlzaGVkJyk7CmlmKCBwcm9kdWN0X3V0aWxzOjpoYXZlX3F1YW50aXR5X2ZpZWxkKCkgKSB7CiAgICAkYnVsa2FjdGlvbnNbJ2VkaXRxdWFudGl0eSddID0gJHRoaXMtPkxhbmcoJ2VkaXRxdWFudGl0eScpOwp9CiR0cGwtPmFzc2lnbignYnVsa2FjdGlvbnMnLCRidWxrYWN0aW9ucyk7CgovLyBEaXNwbGF5IHRlbXBsYXRlCiR0cGwtPmRpc3BsYXkoKTsKCi8vIEVPRgo=]]></data>
	</file>
	<file>
	  <filename>/functions.admin_tools.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZ1bmN0aW9uIHByb2R1Y3RzX1NlYXJjaFJlaW5kZXgoJiRtb2QsJG1vZHVsZSkKewogICAgJHBhZ2UgPSAxOwogICAgJGRvbmUgPSBGQUxTRTsKICAgIHdoaWxlKCAhJGRvbmUgKSB7CiAgICAgICAgJHBhcm1zID0gYXJyYXkoJ3N0YXR1cyc9PidwdWJsaXNoZWQnLCdsaW1pdCc9PjI1MCwncGFnZSc9PiRwYWdlKTsKICAgICAgICAkcXVlcnkgPSBuZXcgcHJvZHVjdHNfcXVlcnkoJHBhcm1zKTsKICAgICAgICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICAgICB3aGlsZSggISRycy0+RU9GKCkgKSB7CiAgICAgICAgICAgICR0bXAgPSAkcnMtPmdldF9wcm9kdWN0KFRSVUUpOwogICAgICAgICAgICBpZiggJHRtcC0+Z2V0X2V4dHJhKCdzZWFyY2hhYmxlJywxKSApIHsKICAgICAgICAgICAgICAgICR3b3JkcyA9ICRtb2QtPkdldFNlYXJjaGFibGVUZXh0KCR0bXApOwogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR3b3JkcykgJiYgY291bnQoJHdvcmRzKSApICRtb2R1bGUtPkFkZFdvcmRzKCRtb2QtPkdldE5hbWUoKSwkdG1wWydpZCddLCdwcm9kdWN0JyxpbXBsb2RlKCcgJywkd29yZHMpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgfQogICAgICAgIGlmKCAkcGFnZSA9PSAkcnMtPm51bXBhZ2VzICkgewogICAgICAgICAgICAkZG9uZSA9IFRSVUU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAkcGFnZSsrOwogICAgfQp9CgpmdW5jdGlvbiBwcm9kdWN0c19CdWlsZEhpZXJhcmNoeUxpc3QoJiRtb2QpCnsKICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgJGhpZXJhcmNoeV9pdGVtcyA9IGFycmF5KCk7CiAgICAkaGllcmFyY2h5X2l0ZW1zWyRtb2QtPkxhbmcoJ25vbmUnKV0gPSAtMTsKICAgICRxdWVyeSA9ICdTRUxFQ1QgaGllcmFyY2h5LCBsb25nX25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBpZCA9IC0xJzsKICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSApOwogICAgJGxvbmduYW1lID0gJyc7CiAgICB3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICkgewogICAgICAgICRsb25nbmFtZSA9ICRyb3dbJ2hpZXJhcmNoeSddIC4gJyUnOwogICAgfQogICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCwgbG9uZ19uYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkKICAgICAgICAgICBXSEVSRSBoaWVyYXJjaHkgTk9UIExJS0UgPwogICAgICAgICAgIE9SREVSIEJZIGhpZXJhcmNoeSc7CiAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkbG9uZ25hbWUpKTsKICAgIHdoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKSAgewogICAgICAgICRoaWVyYXJjaHlfaXRlbXNbJHJvd1snbG9uZ19uYW1lJ11dID0gJHJvd1snaWQnXTsKICAgIH0KCiAgICByZXR1cm4gJGhpZXJhcmNoeV9pdGVtczsKfQoKCmZ1bmN0aW9uIHByb2R1Y3RzX0dldFR5cGVzRHJvcGRvd24oICYkbW9kLCAkaWQsICRuYW1lLCAkc2VsZWN0ZWQgPSAnJywgJGFkZHRleHQgPSAnJywgJHNlbGVjdG9uZSA9IGZhbHNlICkKewogICAgJGl0ZW1zID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkX3R5cGVzKCRzZWxlY3RvbmUpOwoKICAgIC8vIENyZWF0ZUlucHV0RHJvcGRvd24gd2FudHMgdGhlIGxhYmVscyBmaXJzdCBmb3Igc29tZSByZWFzb24uCiAgICAkaXRlbXMgPSBhcnJheV9mbGlwKCRpdGVtcyk7CgogICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAkbmFtZSwgJGl0ZW1zLCAtMSwgJHNlbGVjdGVkLCRhZGR0ZXh0KTsKfQoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/database_edit.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKRSURBVDjLhVNLTBNRFD3TTju1FCcBaxuaQEr94ydiZIHGpcFISBOi0YREZWHCVoyRxKUxxq0LXcACQyLsjO6KjSEiDfHDz0S0CLSxlFKd2g7MTDudGd+bMAQCxJucuXfuu+fcO/PeYwzDALVoNMqRuI3guq7rR4g/SEBC/Svxc8T3EUTD4bCGTcZQAUI+RvxLr9d70u/3o6KiAm63G3Qtn89DFEUkk0lks9lRkrvW3t6e2lCgRZFI5F0ikaDtjN1MVVVjYmLCGBoa6qccC7Z1kQafz4f/WSAQAGlyaXOOpQ+SNNUymQxcLhc4joPD4TBzkiRBEASkUimEQiGzdlcBlmWRy+WgKIr5Xi6XUSgUUCwWzTVN+IAzeOOde71orP0eAaOkbrDWf6Cw2+3mBLSYgny3KULXPOUY2BUB/hMd4IOn8XfhMGYjvU+2TECLLRLDMNA0zYw5JYa6Ghke/hyEn9/gZEqo3OuHp7qW3yJgESjoNPSdlb8gWCOCr29BMT0Ip5tBYnIWqlL6o8irzVsEaHcKSqQCen4cweok+FAblNRz2JxlODx1cEkzGWmVbTl7Z/jHhgCF1Z3GYjIKf+U8+ANhQn4Gm6OMUiGI9MhHg5Gl1sbu8UnKNc8B7Ui3ipxEcwvlpVFw6hz2N1xGabkXdqeBYqEOmfefEZWac4e6xz9Z22hbn+BmLBZbi8fjEBdG4NF/QdUDSM88hQ4FawKJR6cxLDZl86qzZdtdoDYwMBAkQg/2LL/ovNLVh++Dd7G0OAau9hTkrKgnnE39GW3f/Z6enpUdBSx7ePu4eq+zi4VNw+TbV0gsxFd5b9X5i4+mpnY63tsErl6okhvrfWzT0SAMR3FMXsnean08Pb/b/fgHqpjCspi90kkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/table_relationship.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIpSURBVDjLpZP7T1JhGMfPn9RaznVZa7Zhl1WoOI1ZtNlmq5Wrma1jMTSG5li1ahWSFJKmjuhEYzVJCDGQUNJI7WYX7ALnhFwiKFvn2zkHKw6d33y27y/v830+++5535cAQCxHhN7+AR23I9Ba30EzMIeTva9BWl4+ljJbRhLqHk9i/trDOLpdDLoeMCAyuZ8oVtP1WVYKYPYsfCv2Eqd9bdB61dB4SJxwNQuHjcZnkAKY3F+Efu/0VZjDV9A9eVFoiIo37L88JQkwDjNCv7CIPm8MheINey+ERIC6/kpFtXkbdhjKUdtVIfITVn9URGRSOajOBv8ClH1yRZVpK9s63IL2kVbIz20RBvkaGI3mAVQgBmosCsd4FG8+p7Gzc0wA1Fi2KyqMm1nyfhNqjHKsP1WKct1GDPpisPLy0/8nePUxhWqdD1xkJReZbXY0oqxjLbtOU7JJf2ceqewibAFa8FKBJYCQgktg49Rg3QMuMupv1uGw/QA26Faza9SrZHyidtt7JDOLsAdp3B3Pixh6QiOd/bdZVY8SGjeJg1QDH5ktbVkp+7OPtsG3SHz9gXuhfALnJPeQHBM0ClVrqOIjg4uMkuMrZIW3oe6fEwBD3KBzScQtPy3awfNIEiq9T/IdkDdeYIEDuJ4ygtcd5gD8QLF2dT76JQU4ap5FPP0ddDKHT/EsInQGRKXWi2KVHXNSUoAjppnRQ4ZwZt+lKdSfD2H3meDyvjKv3+cfGcwF4FggAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMjIEEKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAiSCI7CiRsYW5nWydhYmJyX2xlbmd0aCddID0gIkwiOwokbGFuZ1snYWJicl93aWR0aCddID0gIlciOwokbGFuZ1snYWRkJ10gPSAiQWRkIjsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAiQWRkIEEgQ2F0ZWdvcnkiOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICJBZGQgQSBGaWVsZCI7CiRsYW5nWydhZGRvcHRpb24nXSA9ICdBZGQgYW4gT3B0aW9uJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICJBZGQgYW4gSXRlbSI7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gIkFkZCBBdHRyaWJ1dGUiOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAiQXNzb2NpYXRlIEZpZWxkIHdpdGggQ2F0ZWdvcnk6ICZxdW90OyVzJnF1b3Q7IjsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZDInXSA9ICJBc3NvY2lhdGUgRmllbGQgd2l0aCB0aHMgQ2F0ZWdvcnkiOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAiQWRkIEhpZXJhcmNoeSBJdGVtIjsKJGxhbmdbJ2FkZF9pbWFnZSddID0gJ0FkZCBhbiBJbWFnZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAiQWRkIEF0dHJpYnV0ZSBPcHRpb24iOwokbGFuZ1snYWRqdXN0YWJsZSddID0gIkFkanVzdGFibGUiOwokbGFuZ1snYWRtaW5zZWFyY2hfbGJsJ10gPSAnU2VhcmNoIFByb2R1Y3RzJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICJDYW4gb25seSBhZG1pbnMgc2VlIHRoaXMgYXR0cmlidXRlPyI7CiRsYW5nWydhZHZhbmNlZCddID0gIkFkdmFuY2VkIjsKJGxhbmdbJ2FsYnVtJ10gPSAnSW1hZ2VzJzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAiQm90dG9tIENlbnRlciI7CiRsYW5nWydhbGlnbl9sbCddID0gIkJvdHRvbSBMZWZ0IjsKJGxhbmdbJ2FsaWduX2xyJ10gPSAiQm90dG9tIFJpZ2h0IjsKJGxhbmdbJ2FsaWduX21jJ10gPSAiQ2VudGVyIjsKJGxhbmdbJ2FsaWduX21sJ10gPSAiTWlkZGxlIExlZnQiOwokbGFuZ1snYWxpZ25fbXInXSA9ICJNaWRkbGUgUmlnaHQiOwokbGFuZ1snYWxpZ25fdWMnXSA9ICJUb3AgQ2VudGVyIjsKJGxhbmdbJ2FsaWduX3VsJ10gPSAiVG9wIExlZnQiOwokbGFuZ1snYWxpZ25fdXInXSA9ICJUb3AgUmlnaHQiOwokbGFuZ1snYWxsJ10gPSAiQWxsIjsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICJBbGwgQ2F0ZWdvcmllcyI7CiRsYW5nWydhbnknXSA9ICJBbnkiOwokbGFuZ1snYXJleW91c3VyZSddID0gIkFyZSBZb3UgU3VyZT8iOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAiQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBpdGVtLCBhbmQgYWxsIG9mIHRoZSBhY2NvbXBhbnlpbmcgaW5mb3JtYXRpb24gZm9yIGl0PyI7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICJBc2NlbmRpbmciOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICJBdHRyaWJ1dGUgTmFtZSI7CiRsYW5nWydhdHRyaWJfdGV4dCddID0gIlRleHQiOwokbGFuZ1snYXV0b21hdGljJ10gPSAiQXV0b21hdGljIjsKCiMjIEIKJGxhbmdbJ2J0bl9zZXRlY29taGFuZGxlcnMnXSA9ICJTZXQgRWNvbW1lcmNlIEV2ZW50IEhhbmRsZXJzIjsKJGxhbmdbJ2J1bGtfZWRpdF9xdWFudGl0eSddID0gJ0VkaXQgUXVhbnRpdHkgZm9yIE11bHRpcGxlIFByb2R1Y3RzJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAiSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZXMiOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAiQWRkL0VkaXQgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSI7CgojIyBDCiRsYW5nWydjYW5jZWwnXSA9ICJDYW5jZWwiOwokbGFuZ1snY2F0ZWdvcmllcyddID0gIkNhdGVnb3JpZXMiOwokbGFuZ1snY2F0ZWdvcnknXSA9ICJDYXRlZ29yeSI7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gIkEgY2F0ZWdvcnkgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzIjsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gIkNhdGVnb3J5TGlzdCBUZW1wbGF0ZXMiOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gIkFkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlIjsKJGxhbmdbJ2NkX2F1dG9jb21wbGV0ZSddID0gIlR5cGUgdGhlIHN0YXJ0IG9mIGEgY29tcGFueSBuYW1lIjsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAiQ2VudGltZXRlcnMiOwokbGFuZ1snY2hlY2tib3gnXSA9ICJDaGVja2JveCI7CiRsYW5nWydjb21wYW55ZGlyX3JlZmVyZW5jZSddID0gIkNvbXBhbnlEaXJlY3RvcnkgQ29tcGFueSBJZCI7CiRsYW5nWydjb25maXJtX2NvcHlvcHRpb25zJ10gPSAiQW55IGV4aXN0aW5nIG9wdGlvbnMgZm9yIHRoaXMgaXRlbSB3aWxsIGJlIHJlcGxhY2VkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/IjsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlYWxsb3B0aW9ucyddID0gIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYWxsIG9wdGlvbnMgZm9yIHRoaXMgcHJvZHVjdD8iOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm9kZT8gIEFueSBpdGVtcyB0aGF0IGFyZSB1c2luZyB0aGlzIG5vZGUgd2lsbCBiZSBzZXQgdG8gbm8gaGllcmFyY2h5IjsKJGxhbmdbJ2NvbmZpcm1fZWRpdG9wdGlvbnMnXSA9ICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gYWJhbmRvbiB0aGlzIGZvcm0gYW5kIGVkaXQgdGhlIG9wdGlvbnMgZm9yIHRoaXMgcHJvZHVjdD8iOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICJBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIGRvIHRoaXM/XG5cbkltcHJvcGVyIHNldHRpbmdzLCBvciBhbiBpbnZhbGlkIGNvbmZpZyBmaWxlIGNvdWxkIGNvbXBsZXRlbHkgY29ycnVwdCBhIGN1cnJlbnRseSB2YWxpZCBhbmQgd29ya2luZyBzeXN0ZW0uIjsKJGxhbmdbJ2NvcHknXSA9ICJDb3B5IjsKJGxhbmdbJ2NvcHlfYXR0cmlidXRlJ10gPSAiQ29weSBQcm9kdWN0IE9wdGlvbiI7CiRsYW5nWydjb3B5X2F0dHJpYl9zZXRzJ10gPSAiQ29weSBBdHRyaWJ1dGUgU2V0cyI7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAiQ29weSBDYXRlZ29yeSI7CiRsYW5nWydjb3B5X29wdGlvbnNfZnJvbSddID0gIkNvcHkgYWxsIG9wdGlvbnMgZnJvbSI7CiRsYW5nWydjb3B5X3Byb2R1Y3QnXSA9ICJDb3B5IHRoaXMgaXRlbSI7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gIkNyZWF0ZWQgRGF0ZSI7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAiQ3VycmVudCBWYWx1ZSI7CiRsYW5nWydjcmVhdGVzbHVnX2UnXSA9ICdDcmVhdGUgc2x1ZyBVUkwgKGlmIGVtcHR5KSc7CgojIyBECiRsYW5nWydkYXRhJ10gPSAiRGF0YSI7CiRsYW5nWydkZWZhdWx0J10gPSAiRGVmYXVsdCI7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAiUHJvdG90eXBlIFRlbXBsYXRlcyI7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gIjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gcHJvdG90eXBlIHRlbXBsYXRlcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgY29udGVudCBvZiB0ZW1wbGF0ZXMgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSB0YWIuICBFZGl0aW5nIG9uZSBvZiB0aGVzZSB0ZXh0IGFyZWFzIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4iOwokbGFuZ1snZGVsZXRlJ10gPSAiRGVsZXRlIjsKJGxhbmdbJ2RlbGV0ZV9hbGwnXSA9ICJEZWxldGUgQWxsIjsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJ1dGUnXSA9ICJEZWxldGUgQXR0cmlidXRlIjsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gIkRlbGV0ZSBIaWVyYXJjaHkgSXRlbSI7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAiRGVzY2VuZGluZyI7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gIkRlc2NyaXB0aW9uIjsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAiRGVzdGluYXRpb24iOwokbGFuZ1snZGVwcmVjYXRlZCddID0gJ0RlcHJlY2F0ZWQnOwokbGFuZ1snZGV0YWlscyddID0gIkRldGFpbHMiOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAiRGV0YWlsIFRlbXBsYXRlcyI7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAiQWRkL0VkaXQgQSBEZXRhaWwgVGVtcGxhdGUiOwokbGFuZ1snZGlnaXRhbCddID0gJ0RpZ2l0YWwnOwokbGFuZ1snZGltZW5zaW9ucyddID0gIkRpbWVuc2lvbnMiOwokbGFuZ1snZGlzYWJsZWQnXSA9ICJEaXNhYmxlZCI7CiRsYW5nWydkb3duJ10gPSAiTW92ZSBEb3duIjsKJGxhbmdbJ2RyYWZ0J10gPSAiRHJhZnQiOwokbGFuZ1snZHJvcGRvd24nXSA9ICJEcm9wZG93biI7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnRHJvcGRvd24gT3B0aW9ucyc7CgojIyBFCiRsYW5nWydlZGl0J10gPSAiRWRpdCI7CiRsYW5nWydlZGl0cXVhbnRpdHknXSA9ICdBZGp1c3QgU3RvY2sgTGV2ZWxzJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0J10gPSAiRWRpdCBBdHRyaWJ1dGUiOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAiRWRpdCBBdHRyaWJ1dGUgU2V0cyI7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAiRWRpdCBBdHRyaWJ1dGUgU2V0cyBGb3IiOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAiRWRpdCBBdHRyaWJ1dGVzIjsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICJFZGl0IENhdGVnb3J5IjsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAiRWRpdCBDYXRlZ29yeSBGaWVsZHMgZm9yICZxdW90OyVzJnF1b3Q7IjsKJGxhbmdbJ2VkaXRfZmllbGRzJ10gPSAnRWRpdCBmaWVsZHMgZm9yIHRoaXMgQ2F0ZWdvcnknOwokbGFuZ1snZWRpdGZpZWxkZGVmJ10gPSAnRWRpdCBhIGZpZWxkIGRlZmluaXRpb24nOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gIkVkaXQgSGllcmFyY2h5IEl0ZW0iOwokbGFuZ1snZWRpdF9ub3RlcyddID0gIkVkaXQgTm90ZXMiOwokbGFuZ1snZWRpdF9vcHRpb25zJ10gPSAiRWRpdCBQcm9kdWN0IE9wdGlvbnMiOwokbGFuZ1snZWRpdF9vcHRpb25fbm90ZXMnXSA9ICJFZGl0IE9wdGlvbiBOb3RlcyI7CiRsYW5nWydlZGl0X3Byb2R1Y3QnXSA9ICJFZGl0IEl0ZW0gIjsKJGxhbmdbJ2Vyb3JyX3FvaF9uZWdhdGl2ZV9hdHJvdyddID0gIlF1YW50aXR5IG9uIGhhbmQgY2Fubm90IGJlIG5lZ2F0aXZlIGF0IHJvdyAlZCI7CiRsYW5nWydlcnJvcnMnXSA9ICJFcnJvcnMiOwokbGFuZ1snZXJyX2ZpZWxkZGVmX2V4aXN0cyddID0gJ0EgZmllbGQgZGVmaW5pdGlvbiB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9kZWxldGV1c2VyJ10gPSAnVGhlIHVzZXIgc3BlY2lmaWVkIGlzIG93bmVyIG9mIG9uZSBvciBtb3JlIHByb2R1Y3RzLCBhbmQgY2Fubm90IGJlIGRlbGV0ZWQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF91cmxzbHVndXNlZCddID0gJ1RoZSBVUkwgc2x1ZyBlbnRlcmVkIGFscmVhZHkgbWF0Y2hlcyBhbiBleGlzdGluZyBVUkwgc2x1Zyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2ludmFsaWR1cmxzbHVnJ10gPSAnVGhlIFVSTCBzbHVnIGVudGVyZWQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZCddID0gJ1RoZSBTS1UgZW50ZXJlZCBmb3IgdGhpcyBwcm9kdWN0IGlzIGFscmVhZHkgaW4gdXNlIGZvciBhIGRpZmZlcmVudCBwcm9kdWN0IG9yIHByb2R1Y3QgYXR0cmlidXRlL29wdGlvbic7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXJlcXVpcmVkJ10gPSAnRWFjaCBwcm9kdWN0IHJlcXVpcmVzIGEgdW5pcXVlIFNLVSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0VhY2ggcHJvZHVjdCBhbGlhcyBtdXN0IGJlIHVuaXF1ZS4gIFRoZSBhbGlhcyBwcm92aWRlZCBpcyBhbHJlYWR5IHVzZWQgYnkgYW5vdGhlciBwcm9kdWN0JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXJlcXVpcmVkJ10gPSAnRWFjaCBwcm9kdWN0IG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lLiAgUGxlYXNlIGVudGVyIGEgcHJvZHVjdCBuYW1lJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdFYWNoIHByb2R1Y3QgbXVzdCBoYXZlIGEgdW5pcXVlIG5hbWUuICBUaGUgbmFtZSBzdXBwbGllZCBpcyBhbHJlZHkgdXNlZCBieSBhbm90aGVyIHByb2R1Y3QnOwokbGFuZ1snZXJyb3JfYXR0cmliX2NvdW50J10gPSAnSWYgYSBwcm9kdWN0IGhhcyBhdHRyaWJ1dGVzLCB0aGVuIGF0IGxlYXN0IHR3byBhdHRyaWJ1dGVzIG11c3QgYmUgcHJvdmlkZWQnOwokbGFuZ1snZXJyb3JfYXR0cmliX3NrdXVzZWQnXSA9ICdPbmUgb3IgbW9yZSBvZiB0aGUgU0tVcyBlbnRlcmVkIGZvciB5b3VyIHByb2R1Y3Qgb3B0aW9ucy9hdHRyaWJ1dGVzIGlzIGFscmVhZHkgaW4gdXNlJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYl9za3VyZXF1aXJlZCddID0gJ01pc3NpbmcgYXR0cmlidXRlIFNLVS4gIEVhY2ggcHJvZHVjdCBhdHRyaWJ1dGUvb3B0aW9uIG11c3QgaGF2ZSBhIFNLVSB0aGF0IGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIGFsbCBwcm9kdWN0cyc7CiRsYW5nWydlcnJvcl9hdHRyaWJfdGV4dCddID0gJ0VhY2ggcHJvZHVjdCBhdHRyaWJ1dGUvb3B0aW9uIG11c3QgaGF2ZSBhIGRlc2NyaXB0aXZlIHRleHQgd2hpY2ggbXVzdCBiZSB1bmlxdWUgZm9yIGVhY2ggcHJvZHVjdCc7CiRsYW5nWydlcnJvcl9hdHRyaWJfZHVwbGljYXRlc2t1J10gPSAnVGhlIHNhbWUgU0tVIHdhcyBkZXRlY3RlZCBmb3IgZGlmZmVyZW50IG9wdGlvbnMgaW4gdGhpcyBwcm9kdWN0LiAgVGhlIFNLVSBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHByb2R1Y3RzLic7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAiQW4gYXR0cmlidXRlIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzIjsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICJEYXRhYmFzZSBlcnJvciI7CiRsYW5nWydlcnJvcl9kZWxldGVfbGFzdHJvdyddID0gIlRoZSBsYXN0IHJvdyBjYW5ub3QgYmUgZGVsZXRlZCB0aGlzIHdheSI7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAiRHVwbGljYXRlIFNLVSB2YWx1ZSBmb3VuZCI7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAiVGhlIGZpZWxkIHZhbHVlIGNhbm5vdCBiZSBlbXB0eSI7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAiRmlsZSBGb3JtYXQgUHJvYmxlbSI7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICJGaWxlIE5vdCBGb3VuZCI7CiRsYW5nWydlcnJvcl9maWxlb3BlbiddID0gIlByb2JsZW0gb3BlbmluZyBmaWxlICVzIjsKJGxhbmdbJ2Vycm9yX2ludmFsaWRjZHZhbHVlJ10gPSAiSW52YWxpZCBDb21wYW55RGlyZWN0b3J5IGNvbXBhbnkgaWQgc3BlY2lmaWVkIjsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJhbWNvdW50J10gPSAiSW52YWxpZCAob3Igbm90IG1hdGNoaW5nKSBwYXJhbWV0ZXIgY291bnQiOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gIkludmFsaWQgUGFyZW50IChhIGhpZXJhcmNoeSBub2RlIGNhbm5vdCBiZSBpdCdzIG93biBwYXJlbnQpIjsKJGxhbmdbJ2Vycm9yX2ludmFsaWR1cmwnXSA9ICdUaGUgVVJMIHNsdWcgZW50ZXJlZCBpcyBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gIlRoZSBjdXN0b20gZmllbGQgdmFsdWUgZW50ZXJlZCBpcyBpbnZhbGlkIChjb250YWlucyBub24gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMpIjsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICJJbnZhbGlkIHZhbHVlIHNwZWNpZmllZCI7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICJBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQiOwokbGFuZ1snZXJyb3JfbWtkaXInXSA9ICdDb3VsZCBub3QgY3JlYXRlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSAlcyc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gIkFuIGl0ZW0gYnkgdGhhdCBuYW1lIGlzIGFscmVhZHkgaW4gdXNlIjsKJGxhbmdbJ2Vycm9yX25lZWR0d29yb3dzJ10gPSAiQSBtaW5pbXVtIG9mIHR3byByb3dzIGlzIHJlcXVyaWVkIjsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAiUGxlYXNlIHNlbGVjdCBhIGZpZWxkIHR5cGUiOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAiWW91IG11c3Qgc3VwcGx5IGEgbmFtZSI7CiRsYW5nWydlcnJvcl9vbmVxdWFudGl0eWZpZWxkJ10gPSAiT25seSBvbmUgcXVhbnRpdHkgZmllbGQgaXMgYWxsb3dlZCI7CiRsYW5nWydlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCddID0gIk9ubHkgb25lIHN1YnNjcmlwdGlvbiBmaWVsZCBpcyBhbGxvd2VkIjsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICJQZXJtaXNzaW9uIERlbmllZCI7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAiSW52YWxpZCBwcmljZSBhZGp1c3RtZW50IHZhbHVlIGZvciBpdGVtICVzIjsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAiVGhlIGFsaWFzIHNwZWNpZmllZCBpcyBhbHJlYWR5IGluIHVzZSI7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAiQW4gaXRlbSBieSB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMiOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gIlRoZSByZXF1ZXN0ZWQgaXRlbSBjb3VsZCBub3QgYmUgZm91bmQiOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAiVGhhdCBTS1UgdmFsdWUgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciBpdGVtIjsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZF9hdHJvdyddID0gIlRoYXQgU0tVIHZhbHVlIGF0IHJvdyAlZCBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGl0ZW0iOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkJ10gPSAiUGxlYXNlIGVudGVyIGEgdW5pcXVlIFNLVSI7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWRfYXRyb3cnXSA9ICJQbGVhc2UgZW50ZXIgYSB1bmlxdWUgU0tVIG9uIHJvdyAlZCI7CiRsYW5nWydlcnJvcl90ZXh0X2VtcHR5X2F0cm93J10gPSAiVGhlIHRleHQgZmllbGQgYXQgcm93ICVkIGNhbm5vdCBiZSBlbXB0eSI7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAiVXBsb2FkIGZhaWxlZDogJXMiOwokbGFuZ1snZXhjbHVkZV9jYXRlZ29yaWVzJ10gPSAiRXhjbHVkZSBpdGVtcyBpbiB0aGUgc2VsZWN0ZWQgY2F0ZWdvcmllcyBmcm9tIHRoZSByZXN1bHRzIjsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gIkFmdGVyIE9uZSBZZWFyIjsKJGxhbmdbJ2V4cGlyZV9zaXhfbW9udGhzJ10gPSAiQWZ0ZXIgU2l4IE1vbnRocyI7CiRsYW5nWydleHBpcmVfdHdvX3llYXInXSA9ICJBZnRlciBUd28gWWVhcnMiOwokbGFuZ1snZXhwb3J0Y2F0cyddID0gIkV4cG9ydCBjYXRlZ29yaWVzIjsKJGxhbmdbJ2V4cG9ydGRlbGltJ10gPSAiRXhwb3J0IGZpZWxkIERlbGltaXRlciI7CiRsYW5nWydleHBvcnRkcmFmdCddID0gIkV4cG9ydCBEcmFmdCBJdGVtcyI7CiRsYW5nWydleHBvcnRmaWVsZHMnXSA9ICJFeHBvcnQgQ3VzdG9tIEZpZWxkcyI7CiRsYW5nWydleHBvcnRvcHRpb25zJ10gPSAiRXhwb3J0IFByb2R1Y3QgT3B0aW9ucyI7CiRsYW5nWydleHBvcnRfdG9fY3N2J10gPSAiRXhwb3J0IHRvIENTViI7CiRsYW5nWydleHRyYV9pbmZvJ10gPSAnRXh0cmEgSW5mbyc7CiRsYW5nWydleHRyYTEnXSA9ICJFeHRyYSBGaWVsZCAxIjsKJGxhbmdbJ2V4dHJhMiddID0gIkV4dHJhIEZpZWxkIDIiOwoKIyMgRgokbGFuZ1snZmV1X293bmVyX2dyb3VwJ10gPSAnRkVVIE93bmVyIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkJ10gPSAiRmllbGQiOwokbGFuZ1snZmllbGRkZWYnXSA9ICJGaWVsZCBEZWZpbml0aW9uIjsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gIkZpZWxkIERlZmluaXRpb25zIjsKJGxhbmdbJ2ZpZWxkcyddID0gIkZpZWxkcyI7CiRsYW5nWydmaWxlJ10gPSAiRmlsZSI7CiRsYW5nWydmaWxlX3VwbG9hZCddID0gJ0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpbGVfbGluayddID0gJ0ZpbGUgTGluayc7CiRsYW5nWydmaWx0ZXInXSA9ICJGaWx0ZXIiOwokbGFuZ1snZmlsdGVyaW51c2UnXSA9ICJhcHBsaWVkIjsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICJGaWx0ZXJzIjsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gIiZsdDsmbHQ7IjsKCiMjIEcKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICJHZW5lcmFsIFNldHRpbmdzIjsKJGxhbmdbJ2dvJ10gPSAiR28iOwoKIyMgSAokbGFuZ1snaGllcmFyY2h5J10gPSAiSGllcmFyY2h5IjsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gIkhpZXJhcmNoeSBQb3NpdGlvbiI7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICJIaWVyYXJjaHkgU2V0dGluZ3MiOwoKIyMgSQokbGFuZ1snaWQnXSA9ICJJZCI7CiRsYW5nWydpbWFnZV91cGxvYWQnXSA9ICdJbWFnZSB1cGxvYWQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAiSW1hZ2UiOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAiSW1wb3J0IGl0ZW1zIGZyb20gQ1NWIGZpbGUiOwokbGFuZ1snaW5jaGVzJ10gPSAiSW5jaGVzIjsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICJJbmNsdWRlIENoaWxkcmVuPyI7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gIk9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zIjsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdQb3NzaWJsZSB2YXJpYWJsZXMgYXJlOiB7JGF0dHJpYl90ZXh0fSx7JGF0dHJpYl9hZGp1c3R9LHskY3VycmVuY3lfc3ltYm9sfSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAiQXR0cmlidXRlcyBDb3BpZWQiOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICJTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyIjsKJGxhbmdbJ2luZm9fYnVsa19lZGl0cXVhbnRpdHknXSA9ICdUaGlzIGZvcm0gYWxsb3dzIGVkaXRpbmcgdGhlIHF1YW50aXR5IG9uIGhhbmQgZm9yIG51bWVyb3VzIHByb2R1Y3RzIChieSBTS1UpIHNpbXVsdGFuZW91c2x5LiAgIFBsZWFzZSBleGVyY2lzZSBjYXV0aW9uIGFzIHRoaXMgaXMgYSBkYXRhYmFzZSBpbnRlbnNpdmUgb3BlcmF0aW9uLCBhbmQgc2hvdWxkIG9ubHkgYmUgZXhlY3V0ZWQgb24gYSBzbWFsbCBncm91cCBvZiBwcm9kdWN0cyBhdCBvbmUgdGltZS4nOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICJUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgaXRlbSBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMiOwokbGFuZ1snaW5mb19jbGVhcmF0dHJpYnMnXSA9ICJPbmx5IGFwcGxpY2FibGUgd2hlbiB1cGRhdGluZyBleGlzdGluZyBpdGVtcywgdGhpcyB3aWxsIGNsZWFyIGFsbCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0YWJhc2UgZm9yIGl0ZW1zIGJlZm9yZSBjcmVhdGluZyBuZXcgb25lcyI7CiRsYW5nWydpbmZvX2NsZWFyY2F0ZWdvcmllcyddID0gIk9ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGNhdGVnb3J5IG1lbWJlcnNoaXBzIGJlZm9lIGNyZWF0aW5nIG5ldyBvbmVzIjsKJGxhbmdbJ2luZm9fY2xlYXJmaWVsZHMnXSA9ICJPbmx5IGFwcGxpY2FibGUgd2hlbiB1cGRhdGluZyBleGlzdGluZyBpdGVtcywgdGhpcyB3aWxsIGNsZWFyIGFsbCBmaWVsZHMgYmVmb2UgY3JlYXRpbmcgZmllbGQgdmFsdWVzIjsKJGxhbmdbJ2luZm9fY29weV9hdHRyaWJzZXRzJ10gPSAiVGhpcyBhY3Rpb24gd2lsbCBjb3B5IEF0dHJpYnV0ZSBTZXRzIChleGNsdWRpbmcgc2t1IHZhbHVlcykgZnJvbSBhbm90aGVyIGl0ZW0uIjsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gIkF1dG9tYXRpY2FsbHkgY3JlYXRlIGl0ZW0gY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QiOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICJDcmVhdGUgdW5rbm93biBpdGVtIGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+IjsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAiQXV0b21hdGljYWxseSBjcmVhdGUgaXRlbSBoaWVyYXJjaGllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCI7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICJUaGlzIHN5c3RlbSB1bmRlcnN0YW5kcyAoLikgYXMgdGhlIGRlY2ltYWwgcG9pbnQgc2VwYXJhdG9yLiBpLmUuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4iOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICJTcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgKG9yIGNoYXJhY3RlcnMpIHRoYXQgc2VwZXJhdGUgZWFjaCBmaWVsZCI7CiRsYW5nWydpbmZvX2RpZ2l0YWwnXSA9ICdJZiB0aGlzIGlzIGEgZGlnaXRhbCBwcm9kdWN0LCBpbmRpY2F0ZSBzbyBoZXJlLiAgIE5vdGUsIHlvdSBtdXN0IGFsc28gc29tZWhvdyBhdHRhY2ggdGhlIGRpZ2l0YWwgZmlsZS4gKHNvbWUgZGlnaXRhbCBoYW5kbGluZyBtb2R1bGVzIG1heSB2YXJ5KS4nOwokbGFuZ1snaW5mb19kcm9wZG93bl9vcHRpb25zJ10gPSAiU2VwYXJhdGUgdmFsdWVzIGZyb20gbGFiZWxzIGZvciBvcHRpb25zIGJ5IHNlcGFyYXRpbmcgdGhlbSB3aXRoIGEgcGlwZSB8IGNoYXJhY3Rlci4gIGkuZTogZnxGZW1hbGUuICBPbmUgb3B0aW9uIHBlciBsaW5lLiI7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAiU3BlY2lmeSBob3cgdGhlIHN5c3RlbSBzaG91bGQgaGFuZGxlIGFuIGl0ZW0gd2hvcyBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBDU1YgZmlsZSI7CiRsYW5nWydpbmZvX2VkaXRfcHJvZHVjdF9vcHRpb25zJ10gPSAnU3BlY2lmeSBvcHRpb24gdGV4dCBmb3IgZWFjaCBvcHRpb24gKHRleHQgbXVzdCBiZSBkaWZmZXJlbnQgaW4gZWFjaCBvcHRpb24pLiAgSWYgYSBTS1UgaXMgZW50ZXJlZCwgaXQgbXVzdCBiZSB1bmlxdWUgdGhyb3Vnb3V0IHRoZSBwcm9kdWN0cyBtb2R1bGUuICBSb3dzIGNhbiBiZSByZS1vcmRlcmVkIHRvIHNwZWNpZnkgdGhlaXIgYXBwZWFyYW5jZSBpbiB0aGUgY2FydCBkcm9wZG93bi4nOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAiPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gQWxsIEZpZWxkcyBkZWZpbmVkIGhlcmUgYXJlIGF2YWlsYWJsZSB0byBhbGwgaXRlbXMuIjsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gIlByb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQgd2hlbiBkZWFsaW5nIHdpdGggb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcy4gIFRoZSBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhvd2V2ZXIgeW91IHNob3VsZCBpbnZlc3RpZ2F0ZSBhbmQgY29ycmVjdCB0aGVzZSBwcm9ibGVtcyI7CiRsYW5nWydpbmZvX2ZpbHRlcl9wcm9kdWN0bmFtZSddID0gIkVudGVyIGEgcHJvZHVjdCBuYW1lIHN1YnN0cmluZy4gIFdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlICUgYW5kICoiOwokbGFuZ1snaW5mb19maWx0ZXJfc2t1J10gPSAiRW50ZXIgYSBza3Ugc3Vic3RyaW5nLiAgV2lsZGNhcmQgY2hhcmFjdGVycyBhcmUgJSBhbmQgKi4gIElmIHRoZSBwcm9kdWN0IG5hbWUgZmllbGQgaXMgbm90IGVtcHR5LCB0aGlzIGZpZWxkIHdpbGwgYmUgaWdub3JlZC4iOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICJVcG9uIGltcG9ydCwgaWYgYW4gaW1hZ2UgZmlsZW5hbWUgaXMgZm91bmQgaW4gYSBmaWVsZCBjb2x1bW4sIHNob3VsZCBpdCBiZSBtb3ZlZCBmcm9tIHRoZSBzb3VyY2UgbG9jYXRpb24sIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7IjsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICJVc2UgdGhpcyBwYWdlIGZvciBoaWVyYXJjaHkgdmlld3MuICBUaGUgcGFnZWlkIHdpbGwgbm90IGJlIHNwZWZpcmllZCBvbiB0aGUgVVJMLiI7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gIlRoZSBwYXRoIChyZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXJlY3RvcnkpIHdoZXJlIGltYWdlcyByZWZlcnJlZCB0byBpbiB0aGUgaW1wb3J0IGZpbGUsIGNhbiBiZSBmb3VuZCI7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gIkltYWdlIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gIFVzZSBDR1NtYXJ0SW1hZ2UgZm9yIGlubGluZSBpbWFnZSBwcm9jZXNzaW5nLiI7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gIkEgYnJpZWYgdGVzdCBhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgZmlsZSBzcGVjaWZpZWQsIGFuZCBldmVyeXRoaW5nIGFwcGVhcnMgdG8gYmUgY29ycmVjdC48YnIvPlRoaXMgaXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgaW4gdGhlIGZpbGUuIjsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICJJbmNsdWRlIHRoZSBoaWVyYXJjaHkgaXRlbSBuYW1lIG9uIHRoZSBVUkwiOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICJUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHdlYnNpdGUgaWYgYW4gaXRlbSBkZXRhaWwgdmlldyBpcyBhY2Nlc3NlZCBkaXJlY3RseSBieSBVUkwsIGFuZCB0aGF0IGl0ZW0gZm9yIHdoYXRldmVyIHJlYXNvbiAoZGlzYWJsZWQsIGRlbGV0ZWQsIGV0YykgY2Fubm90IGJlIGFjY2Vzc2VkLiI7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAiUHVibGljIGZpZWxkcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHVibGljIHRvIHNlZSI7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY29udGVudCddID0gIlRoaXMgb3BlcmF0aW9uIGFsbG93cyBkcmFnZ2luZyB0aGUgaW5kaXZpZHVhbCBub2RlcyBpbiB0aGUgdHJlZSB0byBhZGp1c3QgdGhlIG9yZGVyIHRoYXQgdGhleSB3aWxsIGJlIGRpc3BsYXllZCBpbiBpbiB0aGUgaGllcmFyY2h5IHZpZXciOwokbGFuZ1snaW5mb19zZWFyY2hhYmxlJ10gPSAnSWYgZW5hYmxlZCwgdGhpcyBwcm9kdWN0IHdpbGwgYmUgaW5kZXhlZCBieSB0aGUgc2VhcmNoIG1vZHVsZSc7CiRsYW5nWydpbmZvX3NldGVjb21oYW5kbGVycyddID0gIlRoaXMgYnV0dG9uIHdpbGwgZW5zdXJlIHRoYXQgZXZlbnQgaGFuZGxlcnMgZm9yIGVjb21tZXJjZSBldmVudHMgYXJlIGluIHBsYWNlLiAgVGhpcyBpcyB1c2VmdWwgaWYgYXNraW5nIHRoZSBpdGVtcyBtb2R1bGUgdG8ga2VlcCB0cmFjayBvZiBhIHF1YW50aXR5IG9uIGhhbmQsIGJ1dCB0aGUgZXZlbnQgaGFuZGxlcnMgZGlkIG5vdCBnZXQgY3JlYXRlZCBkdXJpbmcgaW5zdGFsbCBvciB1cGdyYWRlIjsKJGxhbmdbJ2luZm9fc2x1Z3RlbXBsYXRlJ10gPSA8PDxFT1QKPGRpdj5UaGlzIHRlbXBsYXRlIGNvbnRyb2xzIGhvdyBVUkwgc2x1Z3Mgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGdlbmVyYXRlZCB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgcHJvZHVjdC4gIFRoZSBvdXRwdXQgbXVzdCBiZSBhIHBhcnRpYWwgVVJMIChub3QgYSBjb21wbGV0ZSBzaXRlIFVSTCksIGFuZCBtdXN0IG5vdCBjb250YWluIEhUTUwuICBUaGUgYXZhaWxhYmxlIHZhcmlhYmxlcyBpbmNsdWRlOjxici8+Cjx1bD4KICA8bGk+PGNvZGU+XCRuYW1lPC9jb2RlPiAtIHN0cmluZyAtIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3QgbmFtZSBpbiBhIFVSTCBzYWZlIG1hbm5lci48L2xpPgogIDxsaT48Y29kZT5cJGhpZXJfcGFydHM8L2NvZGU+IC0gc3RyaW5nW10gLSBBbiBhcnJheSBvZiBhbGwgb2YgdGhlIHBhcnRzIG9mIHRoZSBoaWVyYXJjaHkgKG5vIG1hdHRlciBob3cgZGVlcCkgb2YgdGhlIHByb2R1Y3QuPC9saT4KICA8bGk+PGNvZGU+XCRoaWVyYXJjaHk8L2NvZGU+IC0gc3RyaW5nIC0gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgaGllcmFyY2h5IG9mIHRoZSBwcm9kdWN0IHJlcHJlc2VudGVkIGFzIGEgcGFydGlhbCBVUkwgc2x1Zy4gaS5lOiAgL0Nsb3RoZXMvV29tZW4vV2ludGVyL0phY2tldHMvRnVsbC1sZW5ndGg8L2xpPgogIDxsaT48Y29kZT5cJGhpZXJhcmNoeTM8L2NvZGU+IC0gc3RyaW5nIC0gQSBzdHJpbmcgY29udGFpbmluZyBhdCBtb3N0IHRoZSBmaXJzdCAzIGxldmVscyBvZiB0aGUgaGllcmFyY2h5IG9mIHRoZSBwcm9kdWN0IHJlcHJlc2VudGVkIGFzIGEgcGFydGlhbCBVUkwgc2x1Zy4gaS5lOiAgL0Nsb3RoZXMvV29tZW4vV2ludGVyPC9saT4KICA8bGk+PGNvZGU+XCRjYXRlZ29yeV9wYXJ0czwvY29kZT4gLSBzdHJpbmdbXSAtIEFuIGFycmF5IG9mIGFsbCBvZiB0aGUgY3VycmVudCBjYXRlZ29yaWVzIG9mIHRoZSBwcm9kdWN0LjwvbGk+CiAgPGxpPjxjb2RlPlwkZmlyc3RfY2F0ZWdvcnk8L2NvZGU+IC0gc3RyaW5nIC0gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiB0aGUgZmlyc3QgY2F0ZWdvcnkgdGhhdCB0aGlzIHByb2R1Y3QgY3VycmVudGx5IGJlbG9uZ3MgdG8uPC9saT4KPC91bD4KQSBzYW1wbGUgVVJMIHNsdWcgdGVtcGxhdGUgaXM6IDxjb2RlPntpZiBcJGhpZXJhcmNoeTMgPT0gJyd9e1wkbmFtZX17ZWxzZX17XCRoaWVyYXJjaHkzfS97XCRuYW1lfXsvaWZ9PC9jb2RlPgo8L2Rpdj4KRU9UOwokbGFuZ1snaW5mb19za3UnXSA9ICdUaGUgU0tVIDxlbT4oU3RvY2sgS2VlcGluZyBVbml0KTwvZW0+IGlmIGVudGVyZWQsIG11c3QgYmUgdW5pcXVlIGFjcm9zcyBhbGwgcHJvZHVjdHMgYW5kIHByb2R1Y3Qgb3B0aW9ucy4nOwokbGFuZ1snaW5mb191cmxfYWxpYXMnXSA9ICdBIGZpZWxkIHRvIHByb3ZpZGUgYSB1bmlxdWUgYWxpYXMgZm9yIHRoaXMgcHJvZHVjdCBmb3IgU0VPIHB1cnBvc2VzLiAgPGVtPihkZXByZWNhdGVkKTwvZW0+JzsKJGxhbmdbJ2luZm9fdXJsX3NsdWcnXSA9ICdUaGlzIGZpZWxkIGNvbnRhaW5zIGFuIG9wdGlvbmFsIFVSTCBzbHVnIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoaXMgcHJvZHVjdC4gIFRvIGhhdmUgdGhpcyBmaWVsZCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIGZyb20gdGhlIHVzZXIgZW50ZXJlZCBwcm9kdWN0IGluZm9ybWF0aW9uIGl0IG11c3Qgbm90IGhhdmUgYmVlbiBtYW51YWxseSBlZGl0ZWQnOwoKIyMgTAokbGFuZ1snbGFiZWwnXSA9ICJMYWJlbCI7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICJPdmVyd3JpdGUiOwokbGFuZ1snbGFiZWxfc2tpcCddID0gIlNraXAiOwokbGFuZ1snbGFiZWxfdXBkYXRlJ10gPSAiVXBkYXRlIjsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAiJmd0OyZndDsiOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gIkxhc3QgTW9kaWZpZWQiOwokbGFuZ1snbG9nb3RleHQnXSA9ICJTZWNvbmQgSW1hZ2UiOwoKIyMgTQokbGFuZ1snbWFpbiddID0gJ01haW4nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAiTWF4aW11bSBsZW5ndGggPGVtPihhcHBsaWNhYmxlIG9ubHkgb24gdGV4dGJveCBmaWVsZHMpPC9lbT4iOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAiTW9kaWZpZWQgRGF0ZSI7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICJBIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBjYXRhbG9nIG9mIGl0ZW1zLCB0aGVpciBwcmljZSwgaW1hZ2VzLCBldGMsIGFuZCBmb3IgYWxsb3dpbmcgdXNlcnMgdG8gYnVpbGQgYSBjYXJ0IjsKJGxhbmdbJ21vdmVfZG93biddID0gIk1vdmUgRG93biI7CiRsYW5nWydtb3ZlX3VwJ10gPSAiTW92ZSBVcCI7CiRsYW5nWydtc2dfY2F0ZWdvcnlfZGVsZXRlZCddID0gIkNhdGVnb3J5IERlbGV0ZWQiOwokbGFuZ1snbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCddID0gIkV2ZW50IGhhbmRsZXJzIGNyZWF0ZWQiOwokbGFuZ1snbXNnX29wdGlvbnNjb3BpZWQnXSA9ICJQcm9kdWN0IG9wdGlvbnMgY29waWVkIChidXQgbm90IHNhdmVkIHlldCkiOwokbGFuZ1snbXNnX29wdGlvbnNfZGVsZXRlZCddID0gIlByb2R1Y3Qgb3B0aW9ucyBkZWxldGVkIGZvciBwcm9kdWN0ICVkIjsKJGxhbmdbJ21zZ19vcHRpb25zX3NhdmVkJ10gPSAiUHJvZHVjdCBvcHRpb25zIHNhdmVkIjsKJGxhbmdbJ21zZ19wcm9kdWN0Y29waWVkJ10gPSAiSXRlbSBzdWNjZXNzZnVsbHkgY29waWVkLiAgWW91IGFyZSBub3cgZWRpdGluZyB0aGUgY29weS4gIEFueSBza3UgaW5mb3JtYXRpb24gaW4gdGhlIGl0ZW0sIGFuZC9vciBhdHRyaWJ1dGVzIGhhcyBiZWVuIGNsZWFyZWQiOwoKIyMgTgokbGFuZ1snbmFtZSddID0gIk5hbWUiOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICJZb3UgZG8gbm90IGhhdmUgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb246ICVzIjsKJGxhbmdbJ25ld19jYXRlZ29yeV9uYW1lJ10gPSAiTmV3IENhdGVnb3J5IE5hbWUiOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICImZ3Q7IjsKJGxhbmdbJ25vJ10gPSAiTm8iOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICJObyBuYW1lIHdhcyBzdXBwbGllZCI7CiRsYW5nWydub25lJ10gPSAiTm9uZSI7CiRsYW5nWydub3RlcyddID0gIk5vdGVzIjsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZWQnXSA9ICJOb3RoaW5nIHNlbGVjdGVkIjsKJGxhbmdbJ251bWVyaWMnXSA9ICJOdW1lcmljIjsKCiMjIE8KJGxhbmdbJ29mJ10gPSAiT2YiOwokbGFuZ1snb2snXSA9ICJPayI7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAiT3BlcmF0aW9uIENhbmNlbGxlZCI7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGUnXSA9ICJPcGVyYXRpb24gQ29tcGxldGUiOwokbGFuZ1snb3B0aW9uJ10gPSAnT3B0aW9uJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICdPcHRpb25zJzsKJGxhbmdbJ290aGVyJ10gPSAnT3RoZXInOwokbGFuZ1snb3duZXInXSA9ICdPd25lcic7CgojIyBQCiRsYW5nWydwYWdlJ10gPSAiUGFnZSI7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAiUGFnZSBMaW1pdCI7CiRsYW5nWydwYWdlX29mJ10gPSAiUGFnZSAlcyBvZiAlcyI7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICJTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYW4gaXRlbSBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+CiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIGl0ZW0gY2F0ZWdvcmllczwvbGk+CiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBpdGVtczwvbGk+CiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgaXRlbTwvbGk+CiAgPGxpPmZpZWxkbGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHZhbHVlcyBmcm9tIGEgc3BlY2lmaWVkIGZpZWxkLgogICAgIDxwPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDstIFRoaXMgYWN0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5hdmlnYXRpb24gZnJvbSB0aGUgdmFsdWVzIG9mIGEgc3BlY2lmaWMgZmllbGQuICBpLmU6ICB5b3UgY291bGQgY3JlYXRlIGEgY3VzdG9tIGRyb3Bkb3duIGZpZWxkIGNhbGxlZCAmcXVvdDtjb2xvciZxdW90OyBhbmQgdGhlbiBjcmVhdGUgYSBuYXZpZ2F0aW9uIGJhc2VkIG9uIHRoZSBkaWZmZXJlbnQgY29sb3JzLgogICAgIDwvcD4KICA8L2xpPgogIDxsaT5zZWFyY2ggLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgaXRlbXMgb24gdmFyaW91cyBjcml0ZXJpdW08L2xpPgo8bGk+YWpheF9wcm9wdmFsIC0gUmV0dXJuIGEganNvbiBlbmNvZGVkIGxpc3Qgb2YgcHJvcGVydHkgdmFsdWVzIG1hdGNoaW5nIHRoZSBjcml0ZXJpYSBzcGVjaWZpZWQuICBUaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHZpYSBhamF4LCBhbmQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHRoZSBzaG93dGVtcGxhdGU9ZmFsc2UgcGFyYW1ldGVyIG9uIHRoZSBVUkwuPC9saT4KPC91bD4iOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICJXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgaXRlbXMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCkuICBUaGlzIHBhcmFtZXRlciBjYW4gYWxzbyBiZSB1c2VkIHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24gdG8gbGltaXQgdGhlIG91dHB1dCB0byB0aGUgc3BlY2lmaWVkIGl0ZW0gY2F0ZWdvcmllcy4iOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlmaWVsZCddID0gIkFwcGxpY2FibGUgb25seSB0byB0aGUgJnF1b3Q7Y2F0ZWdvcnlsaXN0JnF1b3Q7IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGNhdGVnb3JpZXMgYmFzZWQgb24gdGhlIHZhbHVlIG9mIGEgY2F0ZWdvcnkgZmllbGQuICBJdCB3aWxsIG5vdCB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlICZxdW90O2NhdGVnb3J5JnF1b3Q7IG9yICZxdW90O2NhdGVnb3J5X2lkJnF1b3Q7IHBhcmFtZXRlcnMuICAgVGhlIHN5bnRheCBvZiB0aGlzIHBhcmFtZXRlciBpcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzLCBhbmQgZmllbGQgdmFsdWVzLiAgaS5lOiAgY2F0ZWdvcnlsaXN0PSZxdW90O2ZpZWxkIG5hbWU6dmFsdWUsZmllbGQgbmFtZSAyOnZhbHVlIDImcXVvdDsiOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnXSA9ICJVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheSBvZiB0aGUgY2F0ZWdvcnkgZGV0YWlscy4gIFRoaXMgdXNlcyBhIGNhdGVnb3J5IGxpc3QgdGVtcGxhdGUuLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4iOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICJVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYW5kIGZpZWxkbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4iOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gIlRoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0LiAgSXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBvciBzZWFyY2ggYWN0aW9ucy4gIFRoaXMgb3B0aW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggcHJldHR5IHVybHMgb2YgYW55IHNvcnQuIjsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAiVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLiAgVGhpcyBwYXJhbWV0ZXIgaGFzIG5vIGVmZmVjdCB3aGVuIHByZXR0eSB1cmxzIGFyZSBlbmFibGVkLiI7CiRsYW5nWydwYXJhbV9leGNsdWRlY2F0J10gPSAiQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciB3aWxsIGFsbG93IGV4Y2x1ZGluZyBpdGVtcyB0aGF0IGFyZSBpbiBhIHNwZWNpZmljIGNhdGVnb3J5IGZyb20gdGhlIHJlc3VsdC4gQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yeSBuYW1lcyBpcyBhbGxvd2VkLiBUaGlzIHBhcmFtZXRlciBjYW4gd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBjYXRlZ29yeSBwYXJhbWV0ZXIgdG8gcHJvdmlkZSBhIGxpc3Qgb2YgdGhlIGl0ZW1zIHRoYXQgYXJlIGluIHRoaXMgY2F0ZWdvcnksIGJ1dCBub3QgaW4gdGhhdCBjYXRlZ29yeSI7CiRsYW5nWydwYXJhbV9maWVsZCddID0gIlVzZWQgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhbmQgdGhlIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLiBJbiB0aGUgZmllbGRsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uICBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggZmllbGQgdG8gdXNlIHRvIGV4dHJhY3QgYSBsaXN0IG9mIHZhbHVlcy4gIEFueSB2YWxpZCBmaWVsZCBuYW1lcyBhcmUgYWNjZXB0ZWQgKHRob3VnaCBvbmx5IHRleHQgZmllbGQgYW5kIGRyb3Bkb3duIGZpZWxkIG5hbWVzIHdpbGwgd29yayBwcm9wZXJseS4gIEFkZGl0aW9uYWxseSB0aGUgc3BlY2lhbCB2YWx1ZXMgOjpuYW1lOjosIDo6c2t1OjosIGFuZCA6OmFsaWFzOjogY2FuIGJlIHNwZWNpZmllZCB0byByZXR1cm4gdmFsdWVzIGZyb20gdGhlIGl0ZW0gbmFtZSwgc2t1IGFuZCBhbGlhcyByZXNwZWN0aXZlbHkuIjsKJGxhbmdbJ3BhcmFtX2ZpZWxkaWQnXSA9ICdVc2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbi4gIFRoaXMgcGFyYW1ldGVyIHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGZpZWxkdmFsIHBhcmFtZXRlciB0byBhbGxvdyBmaWx0ZXJpbmcgcHJvZHVjdHMgYmFzZWQgb24gdGhlIHZhbHVlIG9mIGEgY3VzdG9tIGZpZWxkLiAgTm90ZTogIE9ubHkgY3VzdG9tIGZpZWxkcyB0aGF0IHN1cHBvcnQgYSBzaW5nbGUgdmFsdWUgd2lsbCB3b3JrLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gIlVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBJbiB0aGUgZGVmYXVsdCBhY3Rpb24gdGhlc2Ugc3BlY2lhbCB2YWx1ZXMgYXJlIGFjY2VwdGVkOiAmcXVvdDs6Om51bGw6OiZxdW90OyAmcXVvdDs6Om5vdG51bGw6OiZxdW90OyBhbmQgd2lsZGNhcmQgY2hhcnMgKCogb3IgJSkuIEluIHRoZSBhamF4X3Byb3B2YWwgYWN0aW9uIHRoaXMgZmllbGQgaXMgZXhwZWN0ZWQgdG8gY29udGFpbiBvbmx5IGEgZmV3IGxldHRlcnMsIHRvIGluZGljYXRlIGEgc21hbGwgZmlsdGVyLiAgaS5lOiBmaWVsZHZhbD1iIHRvIHJldHVybiBhbGwgZmllbGQgdmFsdWVzIHRoYXQgYmVnaW4gd2l0aCB0aGUgbGV0dGVyIGIuIjsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gIlVzZWVkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFuZCBoaWVyYWNoeSBhY3Rpb25zIHRoaXMgcGFyYW1ldGVyIGhhcyB0d28gdXNlcy4gIFdoZW4gdXNlZCBpbiB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0ndHJ1Y2tzKid9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PScqdHJ1Y2tzJ30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBpdGVtcyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGV4cHJlc3Npb25zIGNhbiBiZSBzdXBwbGllZC4gIGkuZToge1Byb2R1Y3RzIGFjdGlvbj1oaWVyYXJjaHkgaGllcmFyY2h5PSd0cnVja3MsY2Fycyd9IjsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGhpZXJhcmNoeSBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIChieSBwYWdlIGlkIG9yIGFsaWFzKSBhIHBhZ2UgdG8gdXNlIGZvciBjaGlsZCBoaWVyYXJjaHkgbGlua3MnOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICJUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuIjsKJGxhbmdbJ3BhcmFtX2lubGluZSddID0gIlVzZWZ1bCBvbmx5IHdpdGggdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IHRoZSBvdXRwdXQgb2YgdGhlIHN1bW1hcnkgdmlldyBzaG91bGQgYmUgZGlzcGxheWVkIGlubGluZSI7CiRsYW5nWydwYXJhbV9ub2NoaWxkcmVuJ10gPSAnQXBwbGljYWJsZSB0byB0aGUgaGllcmFyY2h5IHZpZXcsIGFuZCB0aGUgc3VtbWFyeSB2aWV3IHdoZW4gZGlzcGxheWluZyBpdGVtcyBvZiBhIHNwZWNpZmljIGhpZXJhcmNoeSwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoYXQgY2hpbGQgaGllcmFyY2hpZXMgc2hvdWxkIGJlIGV4Y2x1ZGVkJzsKJGxhbmdbJ3BhcmFtX25vdHByZXR0eSddID0gIlRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFjdGlvbnMgdG8gd2hpY2ggcHJldHR5IHVybHMgc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuICBpLmU6IG5vdHByZXR0eT1oaWVyYXJjaHksZGVmYXVsdCB3aWxsIG5vdCBnZW5lcmF0ZSBwcmV0dHkgdXJscyB0byBoaWVyYXJjaHksIG9yIHN1bW1hcnkgKGRlZmF1bHQpIGFjdGlvbnMsIGJ1dCB3aWxsIGFsbG93IGdlbmVyYXRpb24gb2YgcHJldHR5IHVybHMgdG8gZGV0YWlsIHZpZXdzLiAgQXMgYSBzcGVjaWFsIHZhbHVlICZxdW90O2FsbCZxdW90OyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoYXQgbm8gcHJldHR5IHVybHMgc2hvdWxkIGJlIGdlbmVyYXRlZCI7CiRsYW5nWydwYXJhbV9vd25lciddID0gJ0FwcGxpY2FibGUgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGRpc3BsYXlzIHJlc3VsdHMgb3duZWQgYnkgdGhlIHNwZWNpZmllZCBGRVUgdXNlciBpZC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAiVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLiI7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaW50ZWdlciBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlICRhY3RpdmVfaGllcmFyY2h5IHNtYXJ0eSB2YXJpYWJsZSB3aWxsIGJlIGlnbm9yZWQuICBJZiBuZWl0aGVyIGlzIHNldCwgdGhlbiB0aGUgaGllcmFyY2h5IHZpZXcgd2lsbCBzdGFydCBmcm9tIHRoZSByb290Lic7CiRsYW5nWydwYXJhbV9wYXJlbnRzJ10gPSAiVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy4iOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAiVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgaXRlbSB0byB1c2UgZm9yIHRoZSBkaXNwbGF5LiI7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gIkFwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4iOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gIkFwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMuICBJZiBzcGVjaWZpZWQsIHRoaXMgd2lsbCBvdmVycmlkZSB0aGUgaW5saW5lIHBhcmFtZXRlci4iOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICI8ZW0+KGRlcHJlY2F0ZWQpPC9lbT4gQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtYXkgY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHNlYXJjaCI7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSI7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAiQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYW5kIGZpZWxkbGlzdCBhY3Rpb25zLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBub24gMCBpbnRlZ2VyIHZhbHVlIGFsbCBjYXRlZ29yaWVzIChldmVuIHRob3NlIHdpdGhvdXQgaXRlbXMpIHdpbGwgYmUgZGlzcGxheWVkLiI7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICJBcHBsaWNhYmxlIGluIHRoZSBzdW1tYXJ5LCBjYXRlZ29yeWxpc3Qgb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPgogIDxsaT5pZCAtLSBUaGUgaXRlbSBpZDwvbGk+CiAgPGxpPndlaWdodCAtLSBUaGUgaXRlbSB3ZWlnaHQ8L2xpPgogIDxsaT5wcmljZSAtLSBUaGUgaXRlbSBiYXNlIHByaWNlPC9saT4KICA8bGk+c2t1IC0tIFRoZSBpdGVtIHNrdS48L2xpPgogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+CiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPgogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+CiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+CjwvdWw+CjxwPkEgcHJlZmVyZW5jZSBleGlzdHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc29ydGJ5IHZhbHVlLjwvcD4KPHA+VGhlIGNhdGVnb3J5IGxpc3QgdmlldyBzdXBwb3J0cyBvbmx5IGEgZmV3IHNwZWNpZmljIHNvcnRpbmcgb3B0aW9uczo8L3A+Cjx1bD4KICA8bGk+aWQgLS0gVGhlIGNhdGVnb3J5IGlkLjwvbGk+CiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBUaGUgY2F0ZWdvcnkgbmFtZS48L2xpPgo8L3VsPiI7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICJTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgKGluY2x1ZGluZyBhZnRlciBhIHNlYXJjaCkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6Cjx1bD4KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4KPC91bD4KPHA+QSBwcmVmZXJlbmNlIGV4aXN0cyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzb3J0b3JkZXIgdmFsdWUuPC9wPiI7CgokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICJBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuIjsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAiQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXciOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAiVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJdCBpcyBhbHNvIGFjY2VwdGVkIGluIHRoZSBzZWFyY2ggYWN0aW9uLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuIjsKJGxhbmdbJ3BhcmVudCddID0gIlBhcmVudCI7CiRsYW5nWydwaF9vcHRpb250ZXh0J10gPSAnRW50ZXIgdW5pcXVlIG9wdGlvbiB0ZXh0JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAiVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkIjsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICJUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhIjsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAiUHJlZmVyZW5jZXMiOwokbGFuZ1sncHJlZml4X2NvcHlvZiddID0gIkNvcHkgT2YiOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAiUmVtb3ZpbmcgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBkYXRhLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8iOwokbGFuZ1sncHJldnBhZ2UnXSA9ICImbHQ7IjsKJGxhbmdbJ3ByaWNlJ10gPSAiUHJpY2UiOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gIlByaWNlIEFkanVzdG1lbnQiOwokbGFuZ1sncHJvZHVjdCddID0gIkl0ZW0iOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICJJdGVtIE5hbWUiOwokbGFuZ1sncHJvZHVjdHMnXSA9ICJJdGVtcyI7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gIkl0ZW0gRGV0YWlsIFNldHRpbmdzIjsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gIkl0ZW0gRWRpdGluZyBTZXR0aW5ncyI7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gIkl0ZW0gSGllcmFyY2h5IjsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gIkl0ZW0gSW5mb3JtYXRpb24iOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAiUHJvZHVjdCBNYW5hZ2VyIjsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gIkl0ZW0gU3VtbWFyeSBTZXR0aW5ncyI7CiRsYW5nWydwcm9ncmVzcyddID0gIlByb2dyZXNzIjsKJGxhbmdbJ3Byb21wdCddID0gIlByb21wdCI7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gIkFkZC9FZGl0IEF0dHJpYnV0ZSBTZXQiOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAiQWxsb3cgdXBsb2FkIG9mIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGFsbCB1cGxvYWQgZmllbGRzKSI7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAiQWxsb3cgcHJvY2Vzc2luZyBvZiBpbWFnZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgaW1hZ2UgdHlwZSBmaWVsZHMpIjsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAiRW5hYmxlIGJ5IGRlZmF1bHQgZm9yIGFsbCBuZXcgaXRlbXMiOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAiVGVtcGxhdGUgZm9yIGRpc3BsYXkgb2YgaXRlbSBhdHRyaWJ1dGUgdmFsdWVzIGluIGRyb3Bkb3duIjsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICJCYXRjaCBTaXplIjsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gIkNhcnQgTW9kdWxlIjsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICJDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzIjsKJGxhbmdbJ3Byb21wdF9jbGVhcmF0dHJpYnMnXSA9ICJDbGVhciBPcHRpb25zIG9uIHVwZGF0ZSI7CiRsYW5nWydwcm9tcHRfY2xlYXJjYXRlZ29yaWVzJ10gPSAiQ2xlYXIgY2F0ZWdvcmllcyBvbiB1cGRhdGUiOwokbGFuZ1sncHJvbXB0X2NsZWFyZmllbGRzJ10gPSAiQ2xlYXIgZmllbGRzIG9uIHVwZGF0ZSI7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gIkNyZWF0ZSBDYXRlZ29yaWVzIjsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICJDcmVhdGUgSXRlbSBGaWVsZHM/IjsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICJDcmVhdGUgSXRlbSBIaWVyYXJjaHkiOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICJVcGxvYWQgQ1NWIEZpbGUiOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gIkN1cnJlbmN5IENvZGUiOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAiQ3VycmVuY3kgU3ltYm9sIjsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gIkJ5IGRlZmF1bHQgYWxsIG5ldyBpdGVtcyBoYXZlIHRoaXMgc3RhdHVzIjsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICJCeSBkZWZhdWx0IGFsbCBuZXcgaXRlbXMgYXJlIHRheGFibGUiOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gIkRlbGV0ZSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGVtIHdoZW4gdGhlIGl0ZW0gaXMgZGVsZXRlZD8iOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gIkZpZWxkIERlbGltaXRlciI7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gIkRlZmF1bHQgRGV0YWlsIFBhZ2UiOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICJEZXRhaWxzIGZvciAlcyI7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICJIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSBpdGVtcz8iOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAiRmFsc2UiOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gIkhhbmRsZSBpbWFnZXM/IjsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gIkRlZmF1bHQgUGFnZSBmb3IgSGllcmFyY2h5IFZpZXciOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gIkltYWdlIFBhdGgiOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAiTGVuZ3RoIFVuaXRzIjsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICJHZW5lcmF0ZSBhIDMwMSByZWRpcmVjdCI7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfNDA0J10gPSAiR2VuZXJhdGUgYSA0MDQgZXJyb3IiOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAiV2hhdCBhY3Rpb24gc2hvdWxkIGJlIHRha2VuIHdoZW4gYW4gaXRlbSBjYW5ub3QgYmUgZGlzcGxheWVkPyI7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICJEaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UiOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gIkVycm9yIG1lc3NhZ2UgZm9yIHdoZW4gYW4gaXRlbSBjYW5ub3QgYmUgZm91bmQiOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICJQYWdlIHRvIGRvIHBlcm1hbmVudCByZWRpcmVjdCB0bz8iOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAiVXNlIFByZXR0eSBVUkxTIHRvIEhpZXJhcmNoeSBWaWV3cyI7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICJJdGVtcyBtYXRjaGluZyAlcyI7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAiRGVmYXVsdCBQYWdlIGZvciBJdGVtIERldGFpbCBWaWV3cyI7CiRsYW5nWydwcm9tcHRfc2t1X3JlcXVpcmVkJ10gPSAiU0tVIGlzIHJlcXVpcmVkIGZvciBhbGwgaXRlbXMgYW5kIGF0dHJpYnV0ZXMiOwokbGFuZ1sncHJvbXB0X3NsdWd0ZW1wbGF0ZSddID0gJ1VSTCBTbHVnIFRlbXBsYXRlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5cGFnZWxpbWl0J10gPSAiRGVmYXVsdCBwYWdlIGxpbWl0IGluIHN1bW1hcnkgbW9kZSI7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICJEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlIjsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAiRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSI7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9uZXdkZWZhdWx0J10gPSAiVXNlIG5ldyBzdW1tYXJ5IHZpZXciOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAiVGVtcGxhdGUgU291cmNlIjsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAiVHJ1ZSI7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAiUHJlZml4IHRvIHVzZSBvbiBhbGwgVVJMUyB0YXJnZXRlZCB0byB0aGlzIHRoaXMgbW9kdWxlIjsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICJVc2UgSGllcmFyY2h5IFBhdGggaW4gSXRlbSBEZXRhaWwgVVJMUyI7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gIlVzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPiI7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICJXZWlnaHQgVW5pdHMiOwokbGFuZ1sncHVibGljJ10gPSAiSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8iOwokbGFuZ1sncHVibGlzaGVkJ10gPSAiUHVibGlzaGVkIjsKCiMjIFEKJGxhbmdbJ3F1YW50aXR5X29uX2hhbmQnXSA9ICJRdWFudGl0eSBvbiBIYW5kIjsKCiMjIFIKJGxhbmdbJ3JhbmRvbSddID0gIlJhbmRvbSI7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlcic7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gIlJlb3JkZXIgSGllcmFyY2h5IjsKJGxhbmdbJ3Jlc2V0J10gPSAiUmVzZXQiOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICJSZXNldCB0byBGYWN0b3J5IFZhbHVlcyI7CiRsYW5nWydyZXR1cm4nXSA9ICJSZXR1cm4iOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gIlJldHVybiB0byB0aGUgdG9wIG9mIHRoZSB2aWV3IjsKJGxhbmdbJ3JldmVydCddID0gJ1JldmVydCc7CiRsYW5nWydyb290J10gPSAiUm9vdCI7CgojIyBTCiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydzZWFyY2hhYmxlJ10gPSAnU2VhcmNoYWJsZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICJTZWFyY2ggVGVtcGxhdGVzIjsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICJBZGQvRWRpdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSI7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICJTZWFyY2ggUHJvcGVydHkgRGVzY3JpcHRpb24iOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICJTaG91bGQgdGhlIHF1ZXJ5IG1hdGNoIGFsbCwgb3IgYW55IG9mIHRoZSB0ZXN0cyBiZWxvdz8iOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICJTZWFyY2ggUHJvcGVydHkgTmFtZSI7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICJQcmljZSBSYW5nZSI7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAiU2VsZWN0IEFsbCI7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAiU2VsZWN0IE9uZSI7CiRsYW5nWydzZXRkaXNhYmxlZCddID0gIlNldCBhcyBEaXNhYmxlZCI7CiRsYW5nWydzZXRkcmFmdCddID0gIlNldCBhcyBEcmFmdCI7CiRsYW5nWydzZXRwdWJsaXNoZWQnXSA9ICJTZXQgYXMgUHVibGlzaGVkIjsKJGxhbmdbJ3NrdSddID0gIlNLVSI7CiRsYW5nWydzb3J0X2J5J10gPSAiU29ydCBCeSI7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAiU29ydCBPcmRlciI7CiRsYW5nWydzb3VyY2UnXSA9ICJTb3VyY2UiOwokbGFuZ1snc3RhdHVzJ10gPSAiU3RhdHVzIjsKJGxhbmdbJ3N1Ym1pdCddID0gIlN1Ym1pdCI7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICJTdWJzY3JpcHRpb24iOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gIkRlbGl2ZXJ5IEZyZXF1ZW5jeSI7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gIkRlbGlldmVyZWQiOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gIkV4cGlyeSI7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gIkV4cGlyZXMiOwokbGFuZ1snc3Vic2NyX21vbnRobHknXSA9ICJNb250aGx5IjsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICJQYXltZW50IEZyZXF1ZW5jeSI7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gIlBhaWQiOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gIlF1YXJ0ZXJseSI7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICJTZW1pIEFudWFsbHkiOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gIlllYXJseSI7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAiU3VtbWFyeSBUZW1wbGF0ZXMiOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICJBZGQvRWRpdCBBIFN1bW1hcnkgVGVtcGxhdGUiOwoKIyMgVAokbGFuZ1sndGF4YWJsZSddID0gIlRheGFibGUiOwokbGFuZ1sndGVzdCddID0gIlRlc3QiOwokbGFuZ1sndGV4dGFyZWEnXSA9ICJUZXh0IEFyZWEiOwokbGFuZ1sndGV4dGJveCddID0gIlRleHQgSW5wdXQiOwokbGFuZ1sndGl0bGVfYWRqdXN0bWVudCddID0gIlZhbGlkIHZhbHVlcyBhcmUgW29wZXJhdG9yXVt2YWx1ZV0uIFZhbGlkIG9wZXJhdG9ycyBhcmUgKy0qPSBJZiBubyBvcGVyYXRvciBpcyBzcGVjaWZpZWQsICsgaXMgYXNzdW1lZC4gIFZhbHVlcyBtdXN0IGJlIGluIHRoZSBmb3JtYXQgIy4jIyAoZG90IGlzIHRoZSBkZWNpbWFsIHNlcGFyYXRvcikiOwokbGFuZ1sndGl0bGVfYXR0cmlidXRlX3RleHQnXSA9ICJFbnRlciBhIGJyaWVmIGRlc2NyaXB0aW9uIGZvciB0aGlzIHByb2R1Y3Qgb3B0aW9uLiAgVGhlIHRleHQgbXVzdCBiZSB1bmlxdWUgYW1vbmdzdCBhbGwgb2YgdGhlIG9wdGlvbnMgZm9yIHRoaXMgcHJvZHVjdC4iOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAiUHJvdG90eXBlIEhpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGUiOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gIlByb3RvdHlwZSBDYXRlZ29yeUxpc3QgVGVtcGxhdGUiOwokbGFuZ1sndGl0bGVfY2RhdXRvY29tcGxldGUnXSA9ICJUaGlzIGZpZWxkIGV4cGVjdHMgYW4gaW50ZWdlciBjb21wYW55IElELiAgSXQgaXMgYW4gYXV0b2NvbXBsZXRlIGZpZWxkLiBFbnRlciB0aGUgZmlyc3QgZmV3IGNoYXJhY3RlcnMgb2YgYSBjb21wYW55IG5hbWUgYW5kIHNlbGVjdCB0aGUgZGVzaXJlZCBlbnRyeSBmcm9tIHRoZSBtYXRjaGluZyBpdGVtcy4gIFRoZSBtb3JlIGNoYXJhY3RlcnMgZW50ZXJlZCB0aGUgZmV3ZXIgcmVzdWx0cyByZXR1cm5lZC4iOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gIlByb3RvdHlwZSBEZXRhaWwgVGVtcGxhdGUiOwokbGFuZ1sndGl0bGVfcW9oJ10gPSAiT3B0aW9uYWxseSBzcGVjaWZ5IGEgcXVhbnRpdHkgb24gaGFuZCBmb3IgdGhpcyBwcm9kdWN0IG9wdGlvbi4gIE5vdGUgZm9yIHF1YW50aXR5IGFkanVzdG1lbnRzIHRvIGJlIGF1dG9tYXRpYyB0aGUgU0tVIGZpZWxkIG11c3QgYWxzbyBiZSBwb3B1bGF0ZWQiOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gIlByb3RvdHlwZSBTZWFyY2ggVGVtcGxhdGUiOwokbGFuZ1sndGl0bGVfc2t1J10gPSAiVGhlIFNLVSBpcyB1c2VkIGZvciBtYW5hZ2luZyBxdWFudGl0eSBvbiBoYW5kLCBhbmQgcHJvbW90aW9ucyBmb3IgcHJvZHVjdCBvcHRpb25zLiAgVGhlIFNLVSBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MgYWxsIHByb2R1Y3RzIGFuZCBvcHRpb25zIGluIHRoZSBzeXN0ZW0uIjsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAiUHJvdG90eXBlIFN1bW1hcnkgVGVtcGxhdGUiOwokbGFuZ1sndHBsdHlwZV9Qcm9kdWN0cyddID0gJ1Byb2R1Y3RzJzsKJGxhbmdbJ3RwbHR5cGVfTGlzdF9WaWV3J10gPSAnTGlzdCBWaWV3JzsKJGxhbmdbJ3RwbHR5cGVfRGV0YWlsX1ZpZXcnXSA9ICdEZXRhaWwgVmlldyc7CiRsYW5nWyd0cGx0eXBlX0NhdGVnb3J5X1ZpZXcnXSA9ICdDYXRlZ29yeSBMaXN0IFZpZXcnOwokbGFuZ1sndHBsdHlwZV9IaWVyYXJjaHlfVmlldyddID0gJ0hpZXJhcmNoeSBWaWV3JzsKJGxhbmdbJ3RwbHR5cGVfU2VhcmNoJ10gPSAnU2VhcmNoJzsKJGxhbmdbJ3R5cGUnXSA9ICJUeXBlIjsKCiMjIFUKJGxhbmdbJ3VwJ10gPSAiTW92ZSBVcCI7CiRsYW5nWyd1cGRhdGUnXSA9ICJVcGRhdGUiOwokbGFuZ1sndXBsb2FkJ10gPSAiU2VsZWN0IGEgZmlsZSB0byB1cGxvYWQiOwokbGFuZ1sndXBsb2FkX3NldHRpbmdzJ10gPSAnRmlsZSBhbmQgSW1hZ2UgVXBsb2Fkcyc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICJVUkwgQWxpYXMiOwokbGFuZ1sndXJsX3NsdWcnXSA9ICdVUkwgU2x1Zyc7CgojIyBWCiRsYW5nWyd2YWxpZCddID0gIlZhbGlkIjsKJGxhbmdbJ3ZhbHVlJ10gPSAiVmFsdWUiOwokbGFuZ1sndmFsdWVzJ10gPSAiVmFsdWVzIjsKJGxhbmdbJ3ZpZXcnXSA9ICJWaWV3IjsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gIlNlbGVjdCBjdXN0b20gZmllbGRzIHRvIHZpZXcgaW4gdGhlIHRhYmxlIjsKCiMjIFcKJGxhbmdbJ3dhcm5fY2hhbmdlX2ZpZWxkdHlwZSddID0gJ1lvdSBjYW5ub3QgY2hhbmdlIGEgZmllbGQgdHlwZSBmcm9tIGZpbGUgb3IgaW1hZ2UuICBQbGVhc2UganVzdCBkZWxldGUgaXQgYW5kIGNyZWF0ZSBpdCBhZ2Fpbic7CiRsYW5nWyd3YXJuX2VkaXRfcHJvZHVjdF9vcHRpb25zJ10gPSAiRWFjaCBwcm9kdWN0IG9wdGlvbiBtdXN0IGhhdmUgYSB1bmlxdWUgc3RyaW5nLiAgSWYgU0tVIGlzIHJlcXVpcmVkIHRoZW4gaXQgbXVzdCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBlbnRpcmUgc3lzdGVtLiI7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICJXYXRlcm1hcmsgTG9jYXRpb24iOwokbGFuZ1snd2VpZ2h0J10gPSAiV2VpZ2h0IjsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICJXaXRoIFNlbGVjdGVkIjsKCiMjIFkKJGxhbmdbJ3llcyddID0gIlllcyI7Cj8+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[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQxZlpZGF0IGthdGVnb3JpaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1DFmWlkYXQgcG9sZSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnUMWZaWRhdCBwcm9kdWt0JzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnUMWZaWRhdCB2bGFzdG5vc3QnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWRkIEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdQxZlpZGF0IGhvZG5vdHUgdmxhc3Rub3N0aSc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnTSZhYWN1dGU7IHR1dG8gdmxhc3Rub3N0IHZpZMSbdCBwb3V6ZSBzcHImYWFjdXRlO3ZjZT8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1Ymc2Nhcm9uO2VjaG55IGthdGVnb3JpZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnSnN0ZSBzaSBqaXN0aT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkZWxldGUgdGhpcyBwcm9kdWN0LCBhbmQgYWxsIG9mIHRoZSBhY2NvbXBhbnlpbmcgaW5mb3JtYXRpb24gZm9yIGl0Pyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdWemVzdHVwbmUnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdOJmFhY3V0ZTt6ZXYgdmxhc3Rub3N0aSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGVzJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEhpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGUnOwokbGFuZ1snY2FuY2VsJ10gPSAnWnJ1JnNjYXJvbjtpdCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnS2F0ZWdvcmllIHMgdCZpYWN1dGU7bXRvIG4mYWFjdXRlO3p2ZW0gdcW+IGV4aXN0dWplJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm9kZT8gIEFueSBwcm9kdWN0cyB0aGF0IGFyZSB1c2luZyB0aGlzIG5vZGUgd2lsbCBiZSBzZXQgdG8gbm8gaGllcmFyY2h5JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdnl0dm/FmWVuJmlhY3V0ZTsnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0FrdHUmYWFjdXRlO2xuJmlhY3V0ZTsgZGF0dW0nOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1YmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIGNvbnRlbnRzIG9mIHRoZXNlIHRleHQgYXJlYXMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGNvbnRlbnQgb2YgdGVtcGxhdGVzIHdoZW4geW91IGNsaWNrICZxdW90O0FkZCBUZW1wbGF0ZSZxdW90OyBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1Z5bWF6YXQnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1pydSZzY2Fyb247aXQgdmxhc3Rub3N0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ0RlbGV0ZSBIaWVyYXJjaHkgSXRlbSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnU2VzdHVwbsSbJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnUG9waXMnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHknOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUMWZaWRhdC9VcHJhdml0ICZzY2Fyb247YWJsb251IGRldGFpbHUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdOZWFrdGl2biZpYWN1dGU7JzsKJGxhbmdbJ2RyYWZ0J10gPSAnTiZhYWN1dGU7dnJoJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0IEF0dHJpYnV0ZXMnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0VkaXQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0FuIGF0dHJpYnV0ZSB3aXRoIHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1Byb2R1a3QgcyB0JmlhY3V0ZTttdG8gbiZhYWN1dGU7enZlbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwokbGFuZ1snZmllbGQnXSA9ICdQb2xlJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pY2UgcG9sZSc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEZWZpbmljZSBwb2wmaWFjdXRlOyc7CiRsYW5nWydmaWxlJ10gPSAnU291Ym9yJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cnknOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2h5JzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoeSBQb3NpdGlvbic7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ09iciZhYWN1dGU7emVrJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQgd2hlbiBkZWFsaW5nIHdpdGggb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcy4gIFRoZSBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhvd2V2ZXIgeW91IHNob3VsZCBpbnZlc3RpZ2F0ZSBhbmQgY29ycmVjdCB0aGVzZSBwcm9ibGVtcyc7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxpZCB2YWx1ZXMgYXJlICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUnOwokbGFuZ1snbGFiZWwnXSA9ICdQb3Bpcyc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdQb3NsZWRuJmlhY3V0ZTsgem3Em25hJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnRHJ1aCZ5YWN1dGU7IG9iciZhYWN1dGU7emVrJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ1ptxJtuxJtubyBkbmUnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBwcm9kdWN0cywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWyduYW1lJ10gPSAnTiZhYWN1dGU7emV2JzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTmVtJmFhY3V0ZTt0ZSBwb8W+YWRvdmFuJmVhY3V0ZTsgb3ByJmFhY3V0ZTt2bsSbbiZpYWN1dGU7OiAlcyc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdObyBuYW1lIHdhcyBzdXBwbGllZCc7CiRsYW5nWydub25lJ10gPSAnTm9uZSc7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1sncGFnZSddID0gJ1N0ciZhYWN1dGU7bmthJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHImYWFjdXRlO25rYSAlcyB6ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdQYWdlIExpbWl0JzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbCAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGNvbXBhbmllcyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBkZXRhaWwgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hhdCBwcm9kdWN0IHRvIHVzZSBmb3IgdGhlIGRpc3BsYXkuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IGNvbXBhbmllcy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkIGFsb25nIHdpdGggYWxsIGFzc29jaWF0ZWQgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnQ2VuYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnTmFzdGF2ZW4maWFjdXRlOyBjZW55JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ04mYWFjdXRlO3pldiBwcm9kdWt0dSc7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3R5JzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVjdCBIaWVyYXJjaHknOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVjdCBNYW5hZ2VyJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgZmlsZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0FsbG93IHVwbG9hZCBvZiBpbWFnZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgaW1hZ2UgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBwcm9kdWN0cyc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdTeW1ib2wgbcSbbnknOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0RlbGV0ZSBhbnkgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWN0IHdoZW4gdGhlIHByb2R1Y3QgaXMgZGVsZXRlZD8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF90YXhyYXRlJ10gPSAnViZ5YWN1dGU7JnNjYXJvbjtlIGRhbsSbJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF90YXgxJ10gPSAnUHJ2biZpYWN1dGU7IGRhxYgnOwokbGFuZ1sncHJvbXB0X3RheDInXSA9ICdEcnVoJmFhY3V0ZTsgZGHFiCc7CiRsYW5nWydwcm9tcHRfdGF4bmFtZSddID0gJ04mYWFjdXRlO3pldiBkYW7Emyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBTb3VyY2UnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnSmVkbm90a2EgdiZhYWN1dGU7aHknOwokbGFuZ1sncHVibGljJ10gPSAnSXMgdGhpcyBhIHB1YmxpYyBmaWVsZD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnWnZlxZllam7Em25vJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IHRvIEZhY3RvcnkgVmFsdWVzJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICfFmGF6ZW5vIHBvZGxlJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJyZTY2Fyb247YWJsb25hIHDFmWVobGVkdSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnWmRhbml0ZWxuJmVhY3V0ZTsnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1RheCBNb2R1bGUnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdOb3YmYWFjdXRlOyB2JnlhY3V0ZTtjaG96JmlhY3V0ZTsgJnNjYXJvbjthYmxvbmEgZGV0YWlsdSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ05vdiZhYWN1dGU7IHYmeWFjdXRlO2Nob3omaWFjdXRlOyAmc2Nhcm9uO2FibG9uYSBwxZllaGxlZHUnOwokbGFuZ1sndHlwZSddID0gJ1R5cCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBa3R1YWxpem92YXQnOwokbGFuZ1sndXBsb2FkJ10gPSAnVnliZXJ0ZSBzb3Vib3IgayBuYWhyJmFhY3V0ZTtuJmlhY3V0ZTsnOwokbGFuZ1sndmFsdWUnXSA9ICdIb2Rub3RhJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ0hvZG5vdHknOwokbGFuZ1snd2VpZ2h0J10gPSAnViZhYWN1dGU7aGEnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODEyNDQ2OTI3LjEyMDEyNTAyMzAuMTIxMDkzMDYwOC4xMjEwOTM2NzE0LjI5JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxMDUzOTQwNS4yNS4xOC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZWxla3Ryb2tvbXBsZXguY29tfHV0bWNjdD0vY21zL2FkbWluL2FkZGNvbnRlbnQucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdUaWxmJm9zbGFzaDtqIGVuIGthdGVnb3JpJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnVGlsZiZvc2xhc2g7aiBldCBmZWx0JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdUaWxmJm9zbGFzaDtqIGV0IHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdUaWxmJm9zbGFzaDtqIGVuIGVnZW5za2FiJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0Ymb3NsYXNoO2ogZXQgZWxlbWVudCB0aWwgaGllcmFya2lldCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnRiZvc2xhc2g7aiBlbiB2YWxnbXVsaWdoZWQgdGlsIGVuIGVnZW5za2FiJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdFciBkZXQga3VuIGFkbWluaXN0cmF0b3Jlciwgc29tIG0mYXJpbmc7IHNlIGRlbm5lIGVnZW5za2FiPyc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsZSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdFciBkdSBzaWtrZXI/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0VyIGR1IGhlbHQgc2lra2VyIHAmYXJpbmc7LCBhdCBkdSB2aWwgc2xldHRlIGRldHRlIHByb2R1a3Qgc2FtdCBhbGxlIGRlIGluZm9ybWF0aW9uZXIsIHNvbSBlciBrbnl0dGV0IHRpbCBkZXQ/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1N0aWdlbmRlIG9yZGVuJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnRWdlbnNrYWJlbnMgbmF2bic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ1NrYWJlbG9uIHRpbCBoaWVyYXJraS1yYXBwb3J0JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RpbGYmb3NsYXNoO2ovcmV0IHNrYWJlbG9uIHRpbCBoaWVyYXJraS1yYXBwb3J0JzsKJGxhbmdbJ2NhbmNlbCddID0gJ0ZvcnRyeWQnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0RlciBmaW5kZXMgYWxsZXJlZGUgZW4ga2F0ZWdvcmkgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpbGlzdGUtc2thYmVsb25lcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVGlsZiZvc2xhc2g7ai9yZXQga2F0ZWdvcmlsaXN0ZS1za2FiZWxvbic7CiRsYW5nWydjaGVja2JveCddID0gJ1RqZWtib2tzJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7LCBhdCBkdSB2aWwgc2xldHRlIGRldHRlIHB1bmt0PyBQcm9kdWt0ZXIgc29tIGgmb3NsYXNoO3JlciBpbmQgdW5kZXIgZGV0dGUgcHVua3QgdmlsIGhlbHQgbWlzdGUgZGVyZXMgcGxhZHMgaSBoaWVyYXJraWV0JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnT3ByZXR0ZWxzZXNkYXRvJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdOdXYmYWVsaWc7cmVuZGUgdiZhZWxpZztyZGknOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkc2thYmVsb25lcic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+QmVtJmFlbGlnO3JrOjwvc3Ryb25nPiBJbmRob2xkZXQgYWYgZGlzc2UgdGVrc3Rib2tzZSBicnVnZXMgdGlsIGF0IGJlc3RlbW1lIGRldCBpbmRob2xkIHNvbSB2aXNlcyBpIHNrYWJlbG9uZW4sIG4mYXJpbmc7ciBkdSBrbGlra2VyIHAmYXJpbmc7ICZxdW90O1RpbGYmb3NsYXNoO2ogc2thYmVsb24mcXVvdDsgaSBkZW4gZ2l2bmUgc2thYmVsb25mYW5lLiAgUmV0dGVsc2VyIGkgZW4gYWYgZGlzc2UgdGVrc3Rib2tzZSB2aWwgaWtrZSBoYXZlIG5vZ2VuIHVtaWRkZWxiYXIgYmV0eWRuaW5nIGZvciBkaW4gaGplbW1lc2lkZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldCc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnU2xldCBlZ2Vuc2thYic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdGamVybiBlbGVtZW50IGZyYSBoaWVyYXJraWV0JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdGYWxkZW5kZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Jlc2tyaXZlbHNlJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGplcic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdEZXRhbGplLXNrYWJlbG9uJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUaWxmJm9zbGFzaDtqL3JldCBlbiBkZXRhbGplLXNrYWJlbG9uJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnU2wmYXJpbmc7ZXQgZnJhJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGRlJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnVmFsZ2Jva3MnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ1ZhbGdtdWxpZ2hlZGVyIDxlbT4oYW52ZW5kZXMga3VuIGkgdmFsZ2Jva3NlKTwvZW0+PGJyLz48YnIvPjxlbT4oZW4gdmFsZ211bGlnaGVkIHBlciBsaW5qZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnUmV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1JldCBlZ2Vuc2thYnNzJmFlbGlnO3QnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ1JldCBlZ2Vuc2thYnNzJmFlbGlnO3QgZm9yJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ1JldCBlZ2Vuc2thYmVyJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdSZXQgZWxlbWVudCBpIGhpZXJhcmtpZXQnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0RlciBmaW5kZXMgYWxsZXJlZGUgZW4gZWdlbnNrYWIgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ0RlbiBpbmR0YXN0ZWRlIHYmYWVsaWc7cmRpIGkgZGV0IGJydWdlcmRlZmluZXJlZGUgZmVsdCBlciB1Z3lsZGlnIChhbGxlIHRlZ24gc2thbCB2JmFlbGlnO3JlIGFsZmFudW1lcmlza2UpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VuIHAmYXJpbmc7a3ImYWVsaWc7dmV0IHBhcmFtZXRlciBtYW5nbGVyIGVsbGVyIGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdWJmFlbGlnO2xnIHZlbmxpZ3N0IGVuIGZlbHR0eXBlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdEZXIgZmluZGVzIGFsbGVyZWRlIGV0IHByb2R1a3QgbWVkIGRldCBuYXZuJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWJmFlbGlnO3JkaWVuIHRpbCBqdXN0ZXJpbmcgYWYgcHJpc2VuIGZvciBlbGVtZW50ZXQgJXMgZXIgdWd5bGRpZyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIG1pc2x5a2tlZGVzOiAlcyc7CiRsYW5nWydmaWVsZCddID0gJ0ZlbHQnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGZWx0ZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGZWx0ZGVmaW5pdGlvbmVyJzsKJGxhbmdbJ2ZpbGUnXSA9ICdGaWwnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyZSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmYW1wO2x0OyZhbXA7bHQ7JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmtpLXBsYWNlcmluZyc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0JpbGxlZGUnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ1NrYWwgdW5kZXJwdW5rdGVyIGlua2x1ZGVyZXM/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnS3VuIGFscGhhbnVtbWVyaXNrZSB0ZWduLiBJbmdlbiBtZWxsZW1ydW0sIGcmYXJpbmc7c2Umb3NsYXNoO2puZSwgZWxsZXIga29tYmluYXRpb25lciBhZiBpa2tlLWJvZ3N0YXZlci90YWwnOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnRGVyIG9wc3RvZCBwcm9ibGVtZXIgdmVkciZvc2xhc2g7cmVuZGUgZXQgZWxsZXIgZmxlcmUgYnJ1Z2VyZGVmaW5lcmVkZSBmZWx0ZXIuIFNlbHZvbSBoYW5kbGluZ2VuIGVyIGJsZXZldCB1ZGYmb3NsYXNoO3J0LCBiJm9zbGFzaDtyIGR1IHVuZGVycyZvc2xhc2g7Z2Ugb2cgcmV0dGUgZGlzc2UgcHJvYmxlbWVyJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ0d5bGRpZ2UgdiZhZWxpZztyZGllciBvbWZhdHRlciArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdPZmZlbnRsaWdlIGZlbHRlciBrYW4gc2VzIGFmIG9mZmVudGxpZ2hlZGVuJzsKJGxhbmdbJ2xhYmVsJ10gPSAnRXRpa2V0JzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnJmFtcDtndDsmYW1wO2d0Oyc7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnU2VuZXN0ICZhZWxpZztuZHJldCc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0JpbGxlZCBuci4gdG8nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSB0ZWduIDxlbT4oZyZhZWxpZztsZGVyIGt1biBmb3IgdGVrc3Rib2tzZSk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICcmQUVsaWc7bmRyaW5nc2RhdG8nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnRXQgbW9kdWwgdGlsIGgmYXJpbmc7bmR0ZXJpbmcgYWYgcHJvZHVrdGVyIGkgZXQga2F0YWxvZyAtIHByaXNlciwgYmlsbGVkZXIsIGV0Yy4gLSBvZyB0aWwgYXQgZ2l2ZSBicnVnZXJlIG11bGlnaGVkIGZvciBhdCBrJm9zbGFzaDtiZSBpbmQnOwokbGFuZ1snbmFtZSddID0gJ05hdm4nOwokbGFuZ1snbmVlZHBlcm1pc3Npb24nXSA9ICdEdSBoYXIgaWtrZSBkZW4gcCZhcmluZztrciZhZWxpZzt2ZWRlIHRpbGxhZGVsc2U6ICVzJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnJmFtcDtndDsnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdEZXIgYmxldiBpa2tlIGFuZ2l2ZXQgbm9nZXQgbmF2bic7CiRsYW5nWydub25lJ10gPSAnSW5nZW4nOwokbGFuZ1snb2YnXSA9ICdBZic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkZSAlcyBhZiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTWF4LiBwZXIgc2lkZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZpY2VyIGh2b3JkYW4gbW9kdWxldCBza2FsIHZpc2UgcHJvZHVrdGVybmUuIE11bGlnZSB2JmFlbGlnO3JkaWVyIGVyOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIFZpcyBlbiBoaWVyYXJraXNrIHByb2R1a3RsaXN0ZTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBWaXMgZW4gbGlzdGUgb3ZlciBwcm9kdWt0a2F0ZWdvcmllcjwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gVmlzIHByb2R1a3RyZXN1bWVlciAoc3RhbmRhcmQpPC9saT4NCiAgPGxpPmRldGFpbCAtIFZpcyBkZW4gZnVsZGUgYmVza3JpdmVsc2UgYWYgZXQgcHJvZHVrdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1ZlZCBhbnZlbmRlbHNlIHNhbW1lbiBtZWQgcHJvZHVrdHJlc3VtZWVyIChodmlsa2V0IGVyIHN0YW5kYXJkdmlzbmluZ3N0eXBlbiksIHZpbCBkZXR0ZSBwYXJhbWV0ZXIsIHNvbSBiJm9zbGFzaDtyIHN0ZW1tZSBvdmVyZW5zIG1lZCBlbiBla3Npc3RlcmVuZGUga2F0ZWdvcmksIGJsaXZlIGJydWd0IHRpbCBrdW4gYXQgdmlzZSBkZSBwcm9kdWt0ZXIsIHNvbSBiZWZpbmRlciBzaWcgaSBkZW4gYW5naXZuZSBrYXRlZ29yaS4gKEthdGVnb3JpZXIga2FuIGFuZ2l2ZXMgcCZhcmluZzsgZW4gbGlzdGUgYWRza2lsdCBhZiBrb21tYWVyKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ0RldHRlIHBhcmFtZXRlciwgc29tIGt1biBrYW4gYnJ1Z2VzIHNhbW1lbiBtZWQgdmlzbmluZyBhZiBrYXRlZ29yaWxpc3RlLCBhbmdpdmVyIGh2aWxrZW4gc2thYmVsb24gZGVyIHNrYWwgYnJ1Z2VzIGkgZm9yYmluZGVsc2UgbWVkIHZpc25pbmdlbi4gQW5naXZlcyBkZXIgaW5nZW4gdiZhZWxpZztyZGkgYnJ1Z2VzIGRlbiBzdGFuZGFyZHNrYWJlbG9uLCBzb20gcC50LiBlciB2YWxndCBmb3IgdmlzbmluZ3N0eXBlbi4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ0RldHRlIGFuZ2l2ZXIgaWQgZWxsZXIgYWxpYXMgcCZhcmluZzsgZGVuIHNpZGUsIHNvbSBza2FsIGJydWdlcyB0aWwgdmlzbmluZyBhZiBkZW4gZnVsZGUgYmVza3JpdmVsc2UgYWYgZXQgcHJvZHVrdC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdEZXR0ZSBwYXJhbWV0ZXIgYW5naXZlciwgaHZpbGtlbiBza2FiZWxvbiBkZXIgc2thbCBicnVnZXMgdGlsIHZpc25pbmcgYWYgZGVuIGZ1bGRlIHByb2R1a3RiZXNrcml2ZWxzZS4gIEFuZ2l2ZXMgZGVyIGluZ2VuIHYmYWVsaWc7cmRpIGJydWdlcyBkZW4gc3RhbmRhcmRza2FiZWxvbiwgc29tIHAudC4gZXIgdmFsZ3QgZm9yIHZpc25pbmdzdHlwZW4uJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ0RldHRlIHBhcmFtZXRlciwgc29tIGt1biBrYW4gYnJ1Z2VzIHNhbW1lbiBtZWQgcHJvZHVrdHJlc3VtZWVyIChzdGFuZGFyZHZpc25pbmcpLCBzcGVjaWZpY2VyZXIgYXQga3VuIGRlIGVsZW1lbnRlciwgc29tIGJlZmluZGVyIHNpZyBwJmFyaW5nOyBkZXR0ZSBiZXN0ZW10ZSBzdGVkIGkgaGllcmFya2lldCwgc2thbCB2aXNlcy4gRGVyIGthbiBhbnZlbmRlcyBqb2tlcnRlZ24sIHMmYXJpbmc7bGVkZXMgYXQgZHUgb2dzJmFyaW5nOyBrYW4gc3BlY2lmaWNlcmUgYmVzdGVtdGUgcmVsYXRpb25lciBtZWxsZW0gaG92ZWQgLW9nIHVuZGVycHVua3Rlci4gRi5la3MuIHZpbCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O2xhc3RiaWxlciomIzAzOTt9IHJlc3VsdGVyZSBpIGVuIG9wc3VtbWVyaW5nc3JhcHBvcnQsIGRlciB2aXNlciBhbGxlIGxhc3RiaWxlci4gUmFwcG9ydGVuIGlua2x1ZGVyZXIgdW5kZXJwdW5rdGVyIGkgaGllcmFya2lldC4gTGlnZXMmYXJpbmc7IHZpbCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5OypsYXN0YmlsZXImIzAzOTt9IHJlc3VsdGVyZSBpIGVuIHJhcHBvcnQgb3ZlciBhbGxlIGxhc3RiaWxlciBvZyBwcm9kdWt0ZXIsIHNvbSB0aWxoJm9zbGFzaDtyZXIgZXQgaHZpbGtldCBzb20gaGVsc3QgaG92ZWRwdW5rdCBpIGhpZXJhcmtpZXQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnRGV0dGUgcGFyYW1ldGVyIGFuZ2l2ZXIgZGVuIHNrYWJlbG9uLCBzb20gc2thbCBicnVnZXMgdGlsIGhpZXJhcmtpdmlzbmluZy4gQW5naXZlcyBkZXIgaW5nZW4gdiZhZWxpZztyZGkgYnJ1Z2VzIGRlbiBzdGFuZGFyZHNrYWJlbG9uLCBzb20gcC50LiBlciB2YWxndCBmb3IgdmlzbmluZ3N0eXBlbi4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnS2FuIGt1biBicnVnZXMgc2FtbWVuIG1lZCBwcm9kdWt0cmVzdW0mZWFjdXRlO3Zpc25pbmcgKHN0YW5kYXJkKSBvZyBhbmdpdmVyLCBodm9yIG1hbmdlIGVsZW1lbnRlciBkZXIgc2thbCB2aXNlcyBwZXIgc2lkZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnS3VuIGJydWdiYXIgdmVkIDxlbT5oaWVyYXJraXZpc25pbmc8L2VtPi4gUGFyYW1ldHJldCBhbmdpdmVyIGlkJiMwMzk7ZXQgZm9yIGRldCBoaWVyYXJraSBzb20gc2thbCB1ZGcmb3NsYXNoO3JlIGJlZ3luZGVsc2VzcHVua3RldCBmb3Igb3ZlcnNpZ3Rlbi4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnS3VuIGJydWdiYXIgdmVkIHZpc25pbmcgYWYgZnVsZCBwcm9kdWt0YmVza3JpdmVsc2UuIERldHRlIHBhcmFtZXRlciBmb3J0JmFlbGlnO2xsZXIsIGh2aWxrZXQgcHJvZHVrdCBkZXIgc2thbCBicnVnZXMgdmVkIHZpc25pbmdlbi4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnQW5naXYgZGVuIG9yZGVuIGkgaHZpbGtlbiBzb3J0ZXJlZGUgZmVsdGVyIHNrYWwgb3B0ciZhZWxpZztkZSBpIHJlc3VtJmVhY3V0ZTt2aXNuaW5nLiAgTXVsaWdoZWRlcm5lIGVyOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gU3RpZ2VuZGUgb3JkZW48L2xpPg0KICA8bGk+ZGVzYyAtLSBGYWxkZW5kZSBvcmRlbjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdEZXR0ZSBwYXJhbWV0ZXIsIHNvbSBrdW4ga2FuIGJydWdlcyBpIGZvcmJpbmRlbHNlIG1lZCByZXN1bSZlYWN1dGU7dmlzbmluZywgYmVzdGVtbWVyIGh2b3JkYW4gcHJvZHVrdGVybmUgc2thbCBzb3J0ZXJlcy4gTXVsaWdlIHYmYWVsaWc7cmRpZXIgZXI6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPiBQcm9kdWt0bmF2bjwvbGk+DQogIDxsaT5wcmljZSAtLSBCYXNpc3ByaXM8L2xpPg0KICA8bGk+c3RhdHVzIC0tIEtsYWRkZSBlbGxlciBvZmZlbnRsaWc8L2xpPg0KICA8bGk+cmFuZG9tIC0tIFZpcyBpIHRpbGYmYWVsaWc7bGRpZyBvcmRlbiB2ZWQgaHZlciBmb3Jlc3Amb3NsYXNoO3Jnc2VsPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gRGVuIGRhdG8gaHZvciBkZXR0ZSBmaXJtYSBibGV2IG9wcmV0dGV0IHNvbSBlbiBwb3N0IGkgZGF0YWJhc2VuPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIERhdG9lbiBmb3Igc2VuZXN0ZSBvcGRhdGVyaW5nIGFmIGZpcm1hZXQgaSBkYXRhYmFzZW48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGV0dGUgcGFyYW1ldGVyIGFuZ2l2ZXIgaHZpbGtlbiBza2FiZWxvbiwgZGVyIHNrYWwgYnJ1Z2VzIHRpbCByZXN1bSZlYWN1dGU7dmlzbmluZy4gQW5naXZlcyBkZXIgaW5nZW4gdiZhZWxpZztyZGkgYnJ1Z2VzIGRlbiBzdGFuZGFyZHNrYWJlbG9uLCBzb20gcC50LiBlciB2YWxndCBmb3IgdmlzbmluZ3N0eXBlbi4nOwokbGFuZ1sncGFyZW50J10gPSAnT3Zlcm9yZG5ldCBwdW5rdCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHVsZXQgUHJvZHVjdHMgYmxldiBpbnN0YWxsZXJldCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnTW9kdWxldCBQcm9kdWN0cyBlciBibGV2ZXQgZmplcm5ldCBzYW1tZW4gbWVkIGFsbGUgdGlsaCZvc2xhc2g7cmVuZGUgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ0luZHN0aWxsaW5nZXInOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnVmVkIGZqZXJuZWxzZSBhZiBkZXR0ZSBtb2R1bCBmamVybmVzIG9ncyZhcmluZzsgYWxsZSBkZSB0aWxoJm9zbGFzaDtyZW5kZSBkYXRhLiBFciBkdSBzaWtrZXIgcCZhcmluZzssIGF0IGR1IHZpbCBmb3J0cyZhZWxpZzt0dGU/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpcyc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpc3JlZ3VsZXJpbmcnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICcmYW1wO2x0Oyc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Byb2R1a3RuYXZuJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVrdGVyJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVrdC1oaWVyYXJraSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWt0aCZhcmluZztuZHRlcmluZyc7CiRsYW5nWydwcm9tcHQnXSA9ICdGb3Jlc3Amb3NsYXNoO3Jnc2VsJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1RpbGxhZCB1cGxvYWQgYWYgZGlzc2UgZmlsdHlwZXIgKHRpbCBmaWx0eXBlLWZlbHRlciknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1RpbGxhZCB1cGxvYWQgYWYgZiZvc2xhc2g7bGdlbmRlIGJpbGxlZGZpbHR5cGVyICh0aWwgYmlsbGVkdHlwZS1mZWx0ZXIpJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnRGFuIGF1dG9tYXRpc2sgc20mYXJpbmc7IHVkZ2F2ZXIgYWYgYmlsbGVkZXIgKHRodW1ibmFpbHMpJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnU2wmYXJpbmc7ZXQgdGlsIHNvbSBzdGFuZGFyZCBmb3IgYWxsZSBueWUgcHJvZHVrdGVyJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWx1dGFrb2RlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1ZhbHV0YXN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnU2xldCBhbGxlIGZpbGVyLCBzb20gZXIgZm9yYnVuZGV0IG1lZCBwcm9kdWt0ZXQsIG4mYXJpbmc7ciBwcm9kdWt0ZXQgc2xldHRlcz8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZHNpZGUgdGlsIGZ1bGRlIHByb2R1a3RiZXNrcml2ZWxzZXInOwokbGFuZ1sncHJvbXB0X3RheHJhdGUnXSA9ICdNb21zJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nc29yZGVuIGkgcmVzdW0mZWFjdXRlO3Zpc25pbmcnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRmVsdCBkZXIgc29tIHN0YW5kYXJkIHNrYWwgc29ydGVyZXMgcCZhcmluZzsgaSByZXN1bSZlYWN1dGU7dmlzbmluZyc7CiRsYW5nWydwcm9tcHRfdGF4MSddID0gJ1NrYXQsIGFmZ2lmdCwgbW9tcyc7CiRsYW5nWydwcm9tcHRfdGF4MiddID0gJ0ZsZXJlIHNrYXR0ZXIsIGFmZ2lmdGVyLCBtb21zJzsKJGxhbmdbJ3Byb21wdF90YXhuYW1lJ10gPSAnQWZnaWZ0c25hdm4nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnU2thYmVsb25raWxkZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdWJmFlbGlnO2d0ZW5oZWQnOwokbGFuZ1sncHVibGljJ10gPSAnU2thbCBkZXR0ZSBmZWx0IHYmYWVsaWc7cmUgdGlsZyZhZWxpZztuZ2VsaWd0IGZvciBvZmZlbnRsaWdoZWRlbj8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT2ZmZW50bGlnZ2pvcnQnOwokbGFuZ1sncmFuZG9tJ10gPSAnVGlsZiZhZWxpZztsZGlnJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnR2VuZGFuIHN0YW5kYXJkdiZhZWxpZztyZGllcic7CiRsYW5nWydyb290J10gPSAnUm9kJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWJmFlbGlnO2xnIGVuJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZXIgZWZ0ZXInOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRlcmluZ3NyJmFlbGlnO2trZWYmb3NsYXNoO2xnZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snc3VibWl0J10gPSAnSW5kc2VuZCc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnUmVzdW0mZWFjdXRlO3NrYWJlbG9uZXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUaWxmJm9zbGFzaDtqL3JldCBlbiByZXN1bSZlYWN1dGU7c2thYmVsb24nOwokbGFuZ1sndGF4YWJsZSddID0gJ1NrYXR0ZXBsaWd0aWcnOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ1NrYXR0ZW1vZHVsJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3Rib2tzJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZWtzdGZlbHQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRza2FiZWxvbiBmb3IgbnllIGhpZXJhcmtpcmFwcG9ydGVyJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZHNrYWJlbG9uIGZvciBueWUga2F0ZWdvcmlsaXN0ZXInOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkc2thYmVsb24gZm9yIG55ZSBmdWxkZSBwcm9kdWt0YmVza3JpdmVsc2VyJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRza2FiZWxvbiBmb3IgbnllIHByb2R1a3RyZXN1bWVlcic7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcGRhdGVyJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1YmYWVsaWc7bGcgZW4gZmlsIGF0IHVwbG9hZGUnOwokbGFuZ1sndmFsdWUnXSA9ICdWJmFlbGlnO3JkaSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWJmFlbGlnO3JkaWVyJzsKJGxhbmdbJ3dlaWdodCddID0gJ1YmYWVsaWc7Z3QnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMDk0MTE0NDA0LjEyMDY2MzU2MDMuMTIxNjkwNjg1NC4xMjE2OTA5ODgyLjQ4JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIxNjgzMDc1NC40MC4zMS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtcyBtYWRlIHNpbXBsZSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCc7CiRsYW5nWydhYmJyX2xlbmd0aCddID0gJ0wnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0InOwokbGFuZ1snYWRkJ10gPSAnSGluenVmw7xnZW4nOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdFaW5lIEthdGVnb3JpZSBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0VpbiBGZWxkIGhpbnp1ZsO8Z2VuJzsKJGxhbmdbJ2FkZG9wdGlvbiddID0gJ09wdGlvbiBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRWluZW4gQXJ0aWtlbCBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0VpbiBBdHRyaWJ1dCBoaW56dWbDvGdlbic7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdEYXMgRmVsZCBtaXQgZGVyIEthdGVnb3JpZSAiJXMiIHZlcmtuw7xwZmVuJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0VpbiBIaWVyYXJjaGllLUVsZW1lbnQgaGluenVmw7xnZW4nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0F0dHJpYnV0LU9wdGlvbiBoaW56dWbDvGdlbic7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnQW5wYXNzYmFyJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdTb2xsZW4gbnVyIEFkbWluaXN0cmF0b3JlbiBkaWVzZXMgQXR0cmlidXQgc2VoZW4ga8O2bm5lbj8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdFcndlaXRlcnQnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdVbnRlbiBNaXR0ZSc7CiRsYW5nWydhbGlnbl9sbCddID0gJ1VudGVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnVW50ZW4gUmVjaHRzJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnTWl0dGUgTWl0dGUnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaXR0ZSBMaW5rcyc7CiRsYW5nWydhbGlnbl9tciddID0gJ01pdHRlIFJlY2h0cyc7CiRsYW5nWydhbGlnbl91YyddID0gJ09iZW4gTWl0dGUnOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdPYmVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnT3BlbiBSZWNodHMnOwokbGFuZ1snYWxsJ10gPSAnQWxsZSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsZSBLYXRlZ29yaWVuJzsKJGxhbmdbJ2FueSddID0gJ0lyZ2VuZCBlaW5lcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU2luZCBTaWUgc2ljaGVyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIGRpZXNlbiBBcnRpa2VsIHVuZCBhbGxlIGRhbWl0IHZlcmtuw7xwZnRlbiBJbmZvcm1hdGlvbmVuIGzDtnNjaGVuPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBdWZzdGVpZ2VuZCc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV0bmFtZSc7CiRsYW5nWydhdHRyaWJfdGV4dCddID0gJ1RleHQnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ0UtQ29tbWVyY2UtRXJlaWduaXNzdGV1ZXJ1bmcgc2V0emVuJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZS1CZXJpY2h0c3ZvcmxhZ2VuJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgSGllcmFyY2hpZS1CZXJpY2h0c3ZvcmxhZ2UgaGluenVmw7xnZW4vw6RuZGVybic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4nOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdFaW5lIEthdGVnb3JpZSBtaXQgZGllc2VtIE5hbWVuIGV4aXN0aWVydCBiZXJlaXRzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpZWxpc3RlbnZvcmxhZ2UnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgS2F0ZWdvcmllbGlzdGVudm9ybGFnZSBoaW56dWbDvGdlbi/DpG5kZXJuJzsKJGxhbmdbJ2NkX2F1dG9jb21wbGV0ZSddID0gJ0JlZ2lubiBlaW5lcyBGaXJtZW5uYW1lbiBlaW5nZWJlbic7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ1plbnRpbWV0ZXInOwokbGFuZ1snY2hlY2tib3gnXSA9ICdLb250cm9sbGvDpHN0Y2hlbic7CiRsYW5nWydjb21wYW55ZGlyX3JlZmVyZW5jZSddID0gJ0Zpcm1lbi1JRCBhdXMgQ29tcGFueURpcmVjdG9yeS1Nb2R1bCc7CiRsYW5nWydjb25maXJtX2NvcHlvcHRpb25zJ10gPSAnQW55IGV4aXN0aW5nIG9wdGlvbnMgZm9yIHRoaXMgaXRlbSB3aWxsIGJlIHJlcGxhY2VkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlYWxsb3B0aW9ucyddID0gJ1NpbmQgU2llIHNpY2hlciwgZGFzcyBTaWUgYWxsZSBPcHRpb25lbiBmw7xyIGRpZXNlcyBQcm9kdWt0cyBsw7ZzY2hlbiBtw7ZjaHRlbj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdNw7ZjaHRlbiBTaWUgZGllc2VuIEtub3RlbiB3aXJrbGljaCBsw7ZzY2hlbj8gQWxsZSBBcnRpa2VsLCBkaWUgZGllc2VuIEtub3RlbiBudXR6ZW4sIHdlcmRlbiBhdWYgIm5vIGhpZXJhcmNoeSIgZ2VzZXR6dCc7CiRsYW5nWydjb25maXJtX2VkaXRvcHRpb25zJ10gPSAnV29sbGVuIHNpZSB3aXJrbGljaCBkaWVzZXMgRm9ybXVsYXIgdmVybGFzc2VuIHVuZCBkaWUgUHJvZHVrdG9wdGlvbmVuIGJlYXJiZWl0ZW4/JzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnV29sbGVuIFNpZSBkaWVzIFdJUktMSUNIP1xuXG5GYWxzY2hlIEVpbnN0ZWxsdW5nZW4gb2RlciBlaW5lIHVuZ8O8bHRpZ2UgS29uZmlndXJhdGlvbnNkYXRlaSBrw7ZubmVuIGVpbiBiaXNsYW5nIGZ1bmt0aW9uaWVyZW5kZXMgU3lzdGVtIGtvbXBsZXR0IHplcnN0w7ZyZW4uJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BpZXJlbic7CiRsYW5nWydjb3B5X2F0dHJpYnV0ZSddID0gJ1Byb2R1a3RvcHRpb24ga29waWVyZW4nOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ0F0dHJpYnV0Z3J1cHBlbiBrb3BpZXJlbic7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGtvcGllcmVuJzsKJGxhbmdbJ2NvcHlfb3B0aW9uc19mcm9tJ10gPSAnQWxsZSBPcHRpb25lbiBrb3BpZXJlbiB2b24nOwokbGFuZ1snY29weV9wcm9kdWN0J10gPSAnRGllc2VuIEFydGlrZWwga29waWVyZW4nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdFcnN0ZWxsdW5nc2RhdHVtJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdBa3R1ZWxsZXIgV2VydCc7CiRsYW5nWydjcmVhdGVzbHVnX2UnXSA9ICdVUkwtQWxpYXMgZXJzdGVsbGVuIChmYWxscyBsZWVyKSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0ZW4nOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYXJkZWluc3RlbGx1bmcnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkdm9ybGFnZW4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPkFjaHR1bmc6PC9zdHJvbmc+IERpZSBJbmhhbHRlIGRpZXNlciBUZXh0ZmVsZGVyIHdlcmRlbiBnZW51dHp0LCB1bSBkaWUgdm9yZWluZ2VzdGVsbHRlbiBJbmhhbHRlIGRlciBUZW1wbGF0ZXMgZmVzdHp1bGVnZW4sIHdlbm4gIlRlbXBsYXRlIGhpbnp1ZsO8Z2VuIiBpbiBkZXIgamV3ZWlsaWdlbiBUZW1wbGF0ZS1SZWdpc3RlcmthcnRlIGdla2xpY2t0IHdpcmQuIERpZSBWZXLDpG5kZXJ1bmcgZWluZXMgRmVsZGVzIGhhdCBrZWluZW4gZGlyZWt0ZW4gRWZmZWt0IGF1ZiBkaWUgV2Vic2VpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0zDtnNjaGVuJzsKJGxhbmdbJ2RlbGV0ZV9hbGwnXSA9ICdBbGxlIGzDtnNjaGVuJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJ1dGUnXSA9ICdBdHRyaWJ1dCBsw7ZzY2hlbic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdIaWVyYXJjaGllLUVsZW1lbnQgbMO2c2NoZW4nOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Fic3RlaWdlbmQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdCZXNjaHJlaWJ1bmcnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdCZXN0aW1tdW5nc29ydCc7CiRsYW5nWydkZXByZWNhdGVkJ10gPSAnVmVyYWx0ZXQnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsdm9ybGFnZW4nOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbmUgRGV0YWlsLXZvcmxhZ2UgaGluenVmw7xnZW4vw6RuZGVybic7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnQWJtZXNzdW5nZW4nOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEZWFrdGl2aWVydCc7CiRsYW5nWydkb3duJ10gPSAnTmFjaCB1bnRlbic7CiRsYW5nWydkcmFmdCddID0gJ0VudHd1cmYnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdMaXN0ZW5mZWxkJzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdMaXN0ZW5mZWxkLU9wdGlvbmVuIDxlbT4obnVyIGluIExpc3RlbmZlbGQtTWVuw7xzIGVpbnNldHpiYXIpPC9lbT48YnIvPjxici8+PGVtPihlaW4gRWludHJhZyBwcm8gWmVpbGUpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ8OEbmRlcm4nOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdBdHRyaWJ1dGUgYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdBdHRyaWJ1dGVpbnN0ZWxsdW5nZW4gYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnQXR0cmlidXRlaW5zdGVsbHVuZ2VuIGJlYXJiZWl0ZW4gZsO8cic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdBdHRyaWJ1dGUgYmVhcmJlaXRlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnS2F0ZWdvcmllIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdLYXRlZ29yaWVuZmVsZGVyIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0hpZXJhcmNoaWVlaW50cmFnIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9ub3RlcyddID0gJ0JlbWVya3VuZ2VuIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9vcHRpb25zJ10gPSAnUHJvZHVrdG9wdGlvbmVuIGJlYXJiZWl0ZW4nOwokbGFuZ1snZWRpdF9wcm9kdWN0J10gPSAnQXJ0aWtlbCBiZWFyYmVpdGVuJzsKJGxhbmdbJ2Vyb3JyX3FvaF9uZWdhdGl2ZV9hdHJvdyddID0gJ1ZlcmbDvGdiYXJlIE1lbmdlIGthbm4gbmljaHQgbmVnYXRpdiBzZWluIGluIFplaWxlICVEJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZlaGxlcic7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnRWluIEF0dHJpYnV0IG1pdCBkaWVzZW0gTmFtZW4gZXhpc3RpZXJ0IGJlcmVpdHMuJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRlbmJhbmtmZWhsZXInOwokbGFuZ1snZXJyb3JfZGVsZXRlX2xhc3Ryb3cnXSA9ICdEaWUgbGV0enRlIFplaWxlIGthbm4gbmljaHQgYXVmIGRpZXNlIEFydCBnZWzDtnNjaHQgd2VyZGVuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdEb3BwZWx0ZSBBcnRpa2VsbnVtbWVyIGdlZnVuZGVuJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdEZXIgV2VydCBkZXMgRmVsZGVzIGRhcmYgbmljaHQgbGVlciBzZWluJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdQcm9ibGVtIG1pdCBkZW0gRGF0ZWktRm9ybWF0JzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0RpZSBEYXRlaSB3dXJkZSBuaWNodCBnZWZ1bmRlbic7CiRsYW5nWydlcnJvcl9maWxlb3BlbiddID0gJ1Byb2JsZW0gYmVpbSDDlmZmbmVuIGRlciBEYXRlaSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY2R2YWx1ZSddID0gJ1VuZ8O8bHRpZ2UgRmlybWVuLUlEIGF1cyBDb21wYW55RGlyZWN0b3J5LU1vZHVsIGFuZ2VnZWJlbic7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnVW5nw7xsdGlnZXMgw7xiZXJnZW9yZG5ldGVzIEVsZW1lbnQgKGVpbiBIaWVyYXJjaGllZWxlbWVudCBrYW5uIG5pY2h0IHNlaW4gZWlnZW5lcyDDvGJlcmdlb3JkbmV0ZXMgRWxlbWVudCBzZWluKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdEZXIgZWluZ2VnZWJlbmUgV2VydCBpbSBiZW51dHplcmRlZmluaWVydGVuIEZvcm11bGFyLUZlbGQgaXN0IHVuZ8O8bHRpZyAoYmVpbmhhbHRldCBuaWNodC1hbHBoYW51bWVyaXNjaGVuIFplaWNoZW4pJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICdVbmfDvGx0aWdlciBXZXJ0IGFuZ2VnZWJlbic7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdFaW4gYmVuw7Z0aWd0ZXIgUGFyYW1ldGVyIGZlaGx0IG9kZXIgaXN0IHVuZ8O8bHRpZyc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ0FuIEVsZW1lbnQgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cyc7CiRsYW5nWydlcnJvcl9uZWVkdHdvcm93cyddID0gJ01pbmRlc3RlbnMgendlaSBaZWlsZW4gc2luZCBlcmZvcmRlcmxpY2gnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdCaXR0ZSB3w6RobGVuIFNpZSBlaW5lbiBGZWxkdHlwJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1NpZSBtw7xzc2VuIGVpbmVuIE5hbWVuIGFuZ2ViZW4nOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ051ciBlaW4gTWVuZ2VuZmVsZCBpc3QgZXJsYXVidCc7CiRsYW5nWydlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCddID0gJ0VzIGthbm4gbnVyIGVpbiBBYm9ubmVtZW50LUZlbGQgYW5nZWxlZ3Qgd2VyZGVuJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdCZXJlY2h0aWd1bmcgdmVyd2VpZ2VydCc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnVW5nw7xsdGlnZSBQcmVpcy1BbmdhYmVuIGbDvHIgZGFzIEVsZW1lbnQgJXMnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnXSA9ICdEZXIgZWluZ2VnZWJlbmUgQWxpYXMgd2lyZCBiZXJlaXRzIHZlcndlbmRldCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnRWluIEFydGlrZWwgbWl0IGRpZXNlbSBOYW1lbiBleGlzdGllcnQgYmVyZWl0cyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnRGFzIGFuZ2VmcmFndGUgUHJvZHVrdCBrb25udGUgbmljaHQgZ2VmdW5kZW4gd2VyZGVuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZCddID0gJ0RpZXNlIEFydGlrZWxudW1tZXIgd2lyZCBiZXJlaXRzIHZvbiBlaW5lbSBhbmRlcmVuIEFydGlrZWwgdmVyd2VuZGV0JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZF9hdHJvdyddID0gJ1RoYXQgU0tVIHZhbHVlIGF0IHJvdyAlZCBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGl0ZW0nOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkJ10gPSAnQml0dGUgZWluZSBlaW5kZXV0aWdlIEFydGlrZWxudW1tZXIgZWluZ2ViZW4nOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkX2F0cm93J10gPSAnQml0dGUgZ2ViZW4gc2llIGluIFplaWxlICVkIGVpbmUgZWluZGV1dGlnZSBBcnRpa2VsbnVtbWVyIGFuJzsKJGxhbmdbJ2Vycm9yX3RleHRfZW1wdHlfYXRyb3cnXSA9ICdEYXMgVGV4dGZlbGQgaW4gWmVpbGUgJWQgZGFyZiBuaWNodCBsZWVyIHNlaW4nOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ0RhcyBIb2NobGFkZW4gaXN0IGZlaGxnZXNjaGxhZ2VuOiAlcyc7CiRsYW5nWydleGNsdWRlX2NhdGVnb3JpZXMnXSA9ICdQcm9kdWt0ZSBhdXMgZGVuIGdld8OkaGx0ZW4gS2F0ZWdvcmllZW4gbmljaHQgaW0gRXJnZWJuaXMgYW56ZWlnZW4nOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnTmFjaCBlaW5lbSBKYWhyJzsKJGxhbmdbJ2V4cGlyZV9zaXhfbW9udGhzJ10gPSAnTmFjaCBzZWNocyBNb25hdGVuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ05hY2ggendlaSBKYWhyZW4nOwokbGFuZ1snZXhwb3J0Y2F0cyddID0gJ0thdGVnb3JpZW4gZXhwb3J0aWVyZW4nOwokbGFuZ1snZXhwb3J0ZGVsaW0nXSA9ICdFeHBvcnQgZmllbGQgRGVsaW1pdGVyJzsKJGxhbmdbJ2V4cG9ydGRyYWZ0J10gPSAnQXJ0aWtlbCBpbSBFbnR3dXJmIGV4cG9ydGllcmVuJzsKJGxhbmdbJ2V4cG9ydF90b19jc3YnXSA9ICdBbHMgQ1NWIGV4cG9ydGllcmVuJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhZmVsZCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhZmVsZCAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnRmVsZCc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0ZlbGRkZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0ZlbGRkZWZpbml0aW9uZW4nOwokbGFuZ1snZmllbGRzJ10gPSAnRmVsZGVyJzsKJGxhbmdbJ2ZpbGUnXSA9ICdEYXRlaSc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1snZmlsdGVyaW51c2UnXSA9ICdha3Rpdic7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdBbGxnZW1laW5lIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snZ28nXSA9ICdMb3MnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJjaGllcG9zaXRpb24nOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnSGllcmFyY2hpZWVpbnN0ZWxsdW5nZW4nOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnRWluc3RlbGx1bmdlbiBmw7xyIGRpZSBCaWxkZXJ2ZXJ3YWx0dW5nJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ1Byb2R1a3RlIGF1cyBlaW5lciBDU1YtRGF0ZWkgaW1wb3J0aWVyZW4nOwokbGFuZ1snaW5jaGVzJ10gPSAnWm9sbCc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnRWluc2NobGllw59saWNoIFVudGVycHVua3RlPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ051ciBhbHBoYW51bWVyaXNjaGUgWmVpY2hlbi4gS2VpbmUgTGVlcnplaWNoZW4sIFppdGF0ZSBvZGVyIEJ1Y2hzdGFiZW4vTnVtbWVybi1Lb21iaW5hdGlvbmVuJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdNw7ZnbGljaGUgVmFyaWFibGVuIHNpbmQ6IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dGUga29waWVydCc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ0dlYmVuIFNpZSBkaWUgQW56YWhsIGRlciBaZWlsZW4gYW4sIGRpZSBwcm8gIkJsb2NrIiB2ZXJhcmJlaXRldCB3ZXJkZW4gc29sbGVuLiBOYWNoZGVtIGVpbiBCbG9jayBhYmdlYXJiZWl0ZXQgaXN0LCB3aXJkIGRlciBJbXBvcnQgd2VpdGVyZ2VsZWl0ZXQgdW5kIHZlcmFyYmVpdGV0IGRlbiBuw6RjaHN0ZW4gQmxvY2suICBXZW5uIGJlaSBJaG5lbiBTcGVpY2hlcmZlaGxlciBvZGVyIFplaXTDvGJlcnNjaHJlaXR1bmdlbiBhdWZncnVuZCBkZXIgR3LDtsOfZSBkZXIgdmVyYXJiZWl0ZXRlbiBEYXRlbm1lbmdlIGF1ZnRyZXRlbiwgd2VuZGVuIFNpZSBzaWNoIGFuIElocmVuIEhvc3RpbmctUHJvdmlkZXIgb2RlciB2ZXJrbGVpbmVybiBTaWUgZGllIFplaWxlbmFuemFobCc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0RpZXNlIFBhcmFtZXRlciB3ZXJkZW4gdmVyd2VuZGV0LCB1bSBlaW4gV2FyZW5rb3JiLU1vZHVsIGbDvHIgZGllIEFydGlrZWwtRGV0YWlsLSB1bmQgLUxpc3RlbmFuc2ljaHQgYXVzenV3w6RobGVuLic7CiRsYW5nWydpbmZvX2NsZWFyYXR0cmlicyddID0gJ09ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhYmFzZSBmb3IgaXRlbXMgYmVmb3JlIGNyZWF0aW5nIG5ldyBvbmVzJzsKJGxhbmdbJ2luZm9fY2xlYXJjYXRlZ29yaWVzJ10gPSAnT25seSBhcHBsaWNhYmxlIHdoZW4gdXBkYXRpbmcgZXhpc3RpbmcgaXRlbXMsIHRoaXMgd2lsbCBjbGVhciBhbGwgY2F0ZWdvcnkgbWVtYmVyc2hpcHMgYmVmb2UgY3JlYXRpbmcgbmV3IG9uZXMnOwokbGFuZ1snaW5mb19jbGVhcmZpZWxkcyddID0gJ09ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGZpZWxkcyBiZWZvZSBjcmVhdGluZyBmaWVsZCB2YWx1ZXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdIaWVybWl0IGtvcGllcmVuIFNpZSBkZW4gQXR0cmlidXRzYXR6IChvaG5lIEFydGlrZWxudW1tZXIpIGVpbmVzIGFuZGVyZW4gQXJ0aWtlbHMuJzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0luIGRlciBDU1YtRGF0ZWkgYW5nZWdlYmVuZSwgYWJlciBiaXNoZXIgZmVobGVuZGUgQXJ0aWtlbGthdGVnb3JpZW4gYXV0b21hdGlzY2ggZXJ6ZXVnZW4nOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdVbmJla2FubnRlIEFydGlrZWxmZWxkZXIgYXV0b21hdGlzY2ggZXJzdGVsbGVuPyA8ZW0+KHdlcmRlbiBhbHMgVGV4dGZlbGRlciBlcnN0ZWxsdCk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0luIGRlciBDU1YtRGF0ZWkgYW5nZWdlYmVuZSwgYWJlciBiaXNoZXIgZmVobGVuZGUgQXJ0aWtlbGhpZXJhcmNoaWVuIGF1dG9tYXRpc2NoIGVyemV1Z2VuJzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ0RpZXNlcyBTeXN0ZW0gdmVyc3RlaHQgKC4pIGFscyBEZXppbWFsc3RlbGxlbi1UcmVubnplaWNoZW4sIHouQi46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ0xlZ2VuIFNpZSBoaWVyIGRhcyAob2RlciBkaWUpIFplaWNoZW4gZmVzdCwgZGllIGRpZSBGZWxkZXIgdm9uZWluYW5kZXIgdHJlbm5lbic7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnTGVnZW4gU2llIGZlc3Qgd2llIEFydGlrZWwgYmVoYW5kZWx0IHdlcmRlbiwgZGVyZW4gTmFtZSBzY2hvbiBpbiBkZXIgQ1NWIERhdGVpIHZvcmhhbmRlbiBpc3QnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5BY2h0dW5nOiA8L3N0cm9uZz4gQWxsZSBGZWxkZXIsIGRpZSBoaWVyIGRlZmluaWVydCB3ZXJkZW4sIHNpbmQgZsO8ciBhbGxlIEFydGlrZWwgdmVyZsO8Z2Jhci4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnQmVpIGVpbmVtIG9kZXIgbWVocmVyZW4gYmVudXR6ZXJkZWZpbmllcnRlbiBGZWxkZXJuIHd1cmRlbiBQcm9ibGVtZSBmZXN0Z2VzdGVsbHQuIERpZSBBa3Rpb24gd3VyZGUgZXJmb2xncmVpY2ggYWJnZXNjaGxvc3NlbiwgU2llIHNvbGx0ZW4gamVkb2NoIGRpZSBVcnNhY2hlIGRlciBQcm9ibGVtZSBoZXJhdXNmaW5kZW4uJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnU29sbGVuIGJlaW0gSW1wb3J0IGluIGVpbmVyIFNwYWx0ZSBnZWZ1bmRlbmUgQmlsZGRhdGVpZW4gdm9uIGRlciBRdWVsbHBvc2l0aW9uIHZlcnNjaG9iZW4sIG1pdCBXYXNzZXJ6ZWljaGVuIHZlcnNlaGVuIHVuZCBlaW4gVm9yc2NoYXViaWxkIGVyc3RlbGx0IHVuZCBkZXIgRmVsZHR5cCBhdWYgIkJpbGQiIGdlc2V0enQgd2VyZGVuJzsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICdEaWVzZSBTZWl0ZSBmw7xyIEhpZXJhcmNoaWVhbnNpY2h0ZW4gdmVyd2VuZGVuLiAgRGllIFNlaXRlbi1JRCB3aXJkIGluIGRlciBVUkwgbmljaHQgdmVyd2VuZGV0Lic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ0VpbiBQZmFkIChyZWxhdGl2IHp1bSBVcGxvYWRzIFZlcnplaWNobmlzKSBpbiBkZW0gZGllIGluIGRlciBJbXBvcnRkYXRlaSBhbmdlZ2ViZW5lbiBCaWxkZXIgbGllZ2VuJzsKJGxhbmdbJ2luZm9faW1hZ2VzdHVmZl9kZXByZWNhdGVkJ10gPSAnSW1hZ2UgcHJvY2Vzc2luZyBmdW5jdGlvbnMgYXJlIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLiAgVXNlIENHU21hcnRJbWFnZSBmb3IgaW5saW5lIGltYWdlIHByb2Nlc3NpbmcuJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnRGllIGFuZ2VnZWJlbmUgRWluZ2FiZWRhdGVpIHd1cmRlIGVpbmVtIEt1cnp0ZXN0IHVudGVyem9nZW4gdW5kIGFsbGVzIHNjaGVpbnQgaW4gT3JkbnVuZyB6dSBzZWluLjxici8+RGllcyBpc3Qga2VpbiBJbmRpeiBkYWbDvHIsIGRhcyBkaWUgRGF0ZWkgZmVobGVyZnJlaSBpc3QuJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdEZW4gSGllcmFyY2hpZW5hbWVuIGluIGRpZSBVUkwgZWluZsO8Z2VuJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnV2llIHdpcmQgZWluIGRpcmVrdGVyIEF1ZnJ1ZiBlaW5lciBBcnRpa2VsZGV0YWlsc2VpdGUgcGVyIFVSTCBiZWhhbmRlbHQsIHdlbm4gZGVyIEFydGlrZWwgLSBhdXMgd2VsY2hlbiBHcsO8bmRlbiBhdWNoIGltbWVyIChkZWFrdGl2aWVydCwgZ2Vsw7ZzY2h0LCB1c3cpIC0gbmljaHQgdmVyZsO8Z2JhciBpc3QuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICfDlmZmZW50bGljaGUgRmVsZGVyIHNpbmQgYXVmIGRlciBXZWJzZWl0ZSBmw7xyIGplZGVuIHNpY2h0YmFyLic7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY29udGVudCddID0gJ1RoaXMgb3BlcmF0aW9uIGFsbG93cyBkcmFnZ2luZyB0aGUgaW5kaXZpZHVhbCBub2RlcyBpbiB0aGUgdHJlZSB0byBhZGp1c3QgdGhlIG9yZGVyIHRoYXQgdGhleSB3aWxsIGJlIGRpc3BsYXllZCBpbiBpbiB0aGUgaGllcmFyY2h5IHZpZXcnOwokbGFuZ1snaW5mb19zZXRlY29taGFuZGxlcnMnXSA9ICdUaGlzIGJ1dHRvbiB3aWxsIGVuc3VyZSB0aGF0IGV2ZW50IGhhbmRsZXJzIGZvciBlY29tbWVyY2UgZXZlbnRzIGFyZSBpbiBwbGFjZS4gIFRoaXMgaXMgdXNlZnVsIGlmIGFza2luZyB0aGUgaXRlbXMgbW9kdWxlIHRvIGtlZXAgdHJhY2sgb2YgYSBxdWFudGl0eSBvbiBoYW5kLCBidXQgdGhlIGV2ZW50IGhhbmRsZXJzIGRpZCBub3QgZ2V0IGNyZWF0ZWQgZHVyaW5nIGluc3RhbGwgb3IgdXBncmFkZSc7CiRsYW5nWydsYWJlbCddID0gJ0Jlc2NocmlmdHVuZyc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICfDnGJlcnNjaHJlaWJlbic7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnw5xiZXJzcHJpbmdlbic7CiRsYW5nWydsYWJlbF91cGRhdGUnXSA9ICdBa3R1YWxpc2llcmVuJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ0xldHp0ZSDDhG5kZXJ1bmcnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdad2VpdGVzIEJpbGQnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW1hbGUgTMOkbmdlIDxlbT4obnVyIGF1ZiBUZXh0LUZlbGRlciBhbndlbmRiYXIpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnw4RuZGVydW5ncy1EYXR1bSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdFaW4gTW9kdWwsIHVtIGVpbmVuIEthdGFsb2cgdm9uIEFydGlrZWxuLCBkZXJlbiBQcmVpc2UsIEJpbGRlciwgZXRjLiB6dSB2ZXJ3YWx0ZW4gdW5kIEJlbnV0emVybiB6dSBlcmxhdWJlbiwgZGllc2UgYW4gZWluZW4gV2FyZW5rb3JiIHp1IMO8YmVyZ2ViZW4uJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ05hY2ggdW50ZW4nOwokbGFuZ1snbW92ZV91cCddID0gJ05hY2ggb2Jlbic7CiRsYW5nWydtc2dfY2F0ZWdvcnlfZGVsZXRlZCddID0gJ0thdGVnb3JpZSBnZWzDtnNjaHQnOwokbGFuZ1snbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCddID0gJ0VyZWlnbmlzc3RldWVydW5nIGVyc3RlbGx0JzsKJGxhbmdbJ21zZ19vcHRpb25zY29waWVkJ10gPSAnUHJvZHVrdG9wdGlvbmVuIGtvcGllcnQgKGFiZXIgbm9jaCBuaWNodCBnZXNwZWljaGVydCknOwokbGFuZ1snbXNnX29wdGlvbnNfZGVsZXRlZCddID0gJ1Byb2R1a3RvcHRpb25lbiBmw7xyIGRhcyBQcm9kdWt0ICVkIGdlbMO2c2NodCc7CiRsYW5nWydtc2dfb3B0aW9uc19zYXZlZCddID0gJ1Byb2R1a3RvcHRpb25lbiBnZXNwZWljaGVydCc7CiRsYW5nWydtc2dfcHJvZHVjdGNvcGllZCddID0gJ0l0ZW0gc3VjY2Vzc2Z1bGx5IGNvcGllZC4gIFlvdSBhcmUgbm93IGVkaXRpbmcgdGhlIGNvcHkuICBBbnkgc2t1IGluZm9ybWF0aW9uIGluIHRoZSBpdGVtLCBhbmQvb3IgYXR0cmlidXRlcyBoYXMgYmVlbiBjbGVhcmVkJzsKJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnU2llIGhhYmVuIG5pY2h0IGRpZSBlcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZzogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOZXVlciBLYXRlZ29yaWVuLU5hbWUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0VzIHd1cmRlIGtlaW4gTmFtZSBhbmdlZ2ViZW4nOwokbGFuZ1snbm9uZSddID0gJ0tlaW5lcyc7CiRsYW5nWydub3RlcyddID0gJ0JlbWVya3VuZ2VuJzsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZCddID0gJ05pY2h0cyBhdXNnZXfDpGhsdCc7CiRsYW5nWydudW1lcmljJ10gPSAnbnVtbWVyaXNjaCc7CiRsYW5nWydvZiddID0gJ1Zvbic7CiRsYW5nWydvayddID0gJ09LJzsKJGxhbmdbJ29wZXJhdGlvbl9jYW5jZWxsZWQnXSA9ICdWb3JnYW5nIGFiZ2Vicm9jaGVuJzsKJGxhbmdbJ29wZXJhdGlvbl9jb21wbGV0ZSddID0gJ1ZvcmdhbmcgYWJnZXNjaGxvc3Nlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnT3B0aW9uZW4nOwokbGFuZ1sncGFnZSddID0gJ1NlaXRlJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdTZWl0ZW5hbnphaGwnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NlaXRlICVzIHZvbiAlcyc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdMZWdlbiBTaWUgZGFzIFZlcmhhbHRlbiBkZXMgTW9kdWxzIGZlc3QuIE3DtmdsaWNoZSBXZXJ0ZSBzaW5kOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIHplaWd0IGVpbmUgQXJ0aWtlbC1MaXN0ZSBuYWNoIGRlciBIaWVyYXJjaGllIGFuPC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIHplaWd0IGVpbmUgTGlzdGUgZGVyIFByb2R1a3RrYXRlZ29yaWVuIGFuPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSB6ZWlndCBlaW5lIFp1c2FtbWVuZmFzc3VuZyBkZXIgUHJvZHVrdGUgYW48L2xpPg0KICA8bGk+ZGV0YWlscyAtIHplaWd0IGRpZSBEZXRhaWxhbnNpY2h0IGVpbmVzIGVpbnplbG5lbiBBcnRpa2VscyBhbjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1dlbm4gZGllc2VyIFBhcmFtZXRlciBpbiBkZXIgPGVtPmRlZmF1bHQ8L2VtPiBMaXN0ZW5hbnNpY2h0IHZlcndlbmRldCB3aXJkLCB3ZXJkZW4gbnVyIEFydGlrZWwgenVyIGFuZ2VnZWJlbmVuIEthdGVnb3JpZSBhbmdlemVpZ3QuIE1laHJlcmUgS2F0ZWdvcmllbiBrw7ZubmVuIGR1cmNoIEtvbW1hcyBnZXRyZW5udCBhbmdlZ2ViZW4gd2VyZGVuLiBEZXIgUGFyYW1ldGVyLU5hbWUgc29sbHRlIG5pY2h0IMO8YmVyZWluc3RpbW1lbiBtaXQgZGVtIE5hbWVuIGVpbmVyIGV4aXN0aWVyZW5kZW4gS2F0ZWdvcmllLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWZpZWxkJ10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciBLYXRlZ29yaWUtQXVzZ2FiZSBzaW5udm9sbC4gTWl0IGlobSBrw7ZubmVuIEthdGVnb3JpZW4gYW5oYW5kIGVpbmVzIEthdGVnb3JpZWZlbGRlcyBnZWZpbHRlcnQgd2VyZGVuLiAgRGllIEZpbHRlcnVuZyBmdW5rdGlvbmllcnQgbmljaHQgd2VubiBnbGVpY2h6ZWl0aWcgZWluICJjYXRlZ29yeSIgb2RlciAiY2F0ZWdvcnlfaWQiIFBhcmFtZXRlciBhbmdlZ2ViZW4gd2lyZC4gIEdlYmVuIFNpZSBlaW5lIGtvbW1hZ2V0cmVubnRlIExpc3RlIHZvbiBLYXRlZ29yaWVmZWxkbmFtZW4gdW5kIC13ZXJ0ZW4gYW4uICBCc3AuOiAgY2F0ZWdvcnlsaXN0PSJGZWxkbmFtZTpXZXJ0LFdlaXRlcmVyIEZlbGRuYW1lOldlcnQiJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciBLYXRlZ29yaWUtQXVzZ2FiZSBzaW5udm9sbC4gIEVyIGdpYnQgZGFzIEthdGVnb3JpZWxpc3Rlbi1UZW1wbGF0ZSBhbiwgZGFzIGbDvHIgZGllIEFuemVpZ2Ugdm9uIEthdGVnb3JpZWRldGFpbHMgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiAgV2VubiBrZWluIFdlcnQgYW5nZWdlYmVuIGlzdCwgd2lyZCBkYXMgU3RhbmRhcmQtVGVtcGxhdGUgdmVyd2VuZGV0Lic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgS2F0ZWdvcmllLUF1c2dhYmUgc2lubnZvbGwuIEVyIHdpcmQgYmVudXR6dCwgdW0gZGFzIFRlbXBsYXRlIGFuenVnZWJlbiwgd2VsY2hlcyB2ZXJ3ZW5kZXQgd2VyZGVuIHNvbGwuIFdlbm4ga2VpbiBXZXJ0IGFuZ2VnZWJlbiBpc3QsIHdpcmQgZGFzIERlZmF1bHQtVGVtcGxhdGUgdmVyd2VuZGV0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRGllcyBsZWd0IGRpZSBTZWl0ZW4tSUQgKHBhZ2VpZCkgb2RlciBkZW4gQWxpYXMgKGFsaWFzKSBmZXN0LCB3ZWxjaGUocikgYmVudXR6dCB3ZXJkZW4gc29sbCwgdW0gZGllIERldGFpbGFuc2ljaHQgYXVzenVnZWJlbi4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIHdpcmQgdmVyd2VuZGV0LCB1bSBkYXMgVGVtcGxhdGUgZmVzdHp1bGVnZW4sIHdlbGNoZXMgZsO8ciBkaWUgQXJ0aWtlbC1EZXRhaWxhbnNpY2h0IHZlcndlbmRldCB3ZXJkZW4gc29sbC4gT2huZSBWb3JnYWJlIHdpcmQgZGFzIFN0YW5kYXJkLVRlbXBsYXRlIHZlcndlbmRldC4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgd2lsbCBhbGxvdyBleGNsdWRpbmcgcHJvZHVjdHMgdGhhdCBhcmUgaW4gYSBzcGVjaWZpYyBjYXRlZ29yeSBmcm9tIHRoZSByZXN1bHQuIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgaXMgYWxsb3dlZC4gVGhpcyBwYXJhbWV0ZXIgY2FuIHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgY2F0ZWdvcnkgcGFyYW1ldGVyIHRvIHByb3ZpZGUgYSBsaXN0IG9mIHRoZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGlzIGNhdGVnb3J5LCBidXQgbm90IGluIHRoYXQgY2F0ZWdvcnknOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIFNwZWNpYWwgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGFyZSAiOjpudWxsOjoiICI6Om5vdG51bGw6OiInOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciA8ZW0+ZGVmYXVsdDwvZW0+LUFuc2ljaHQgc2lubnZvbGwuIEVyIHdpcmQgdmVyd2VuZGV0LCB1bSBudXIgQXJ0aWtlbCBhbnp1emVpZ2VuLCBkaWUgZWluZXIgYmVzdGltbXRlbiBIaWVyYXJjaGllIGFuZ2Vow7ZyZW4uIERhYmVpIGvDtm5uZW4gV2lsZGNhcmRzIHZlcndlbmRldCB3ZXJkZW4sIHVtIMO8YmVyZ2VvcmRuZXRlL3VudGVyZ2VvcmRuZXRlIEJlemllaHVuZ2VuIGViZW5mYWxscyBhbnp1emVpZ2VuLiBaLkIuIGdpYnQge1Byb2R1Y3RzIGhpZXJhcmNoeT1cJ0xLV3MqXCd9IGVpbmUgWnVzYW1tZW5mYXNzdW5nIGFsbGVyIExLV3MgYXVzLCBlaW5zY2hsaWXDn2xpY2ggYWxsZXIgdW50ZXJnZW9yZG5ldGVuIEVsZW1lbnRlIGRlciBIaWVyYXJjaGllLiBHZW5hdXNvIGdpYnQge1Byb2R1Y3RzIGhpZXJhcmNoeT1cJypMS1dzXCd9IGVpbmUgWnVzYW1tZW5mYXNzdW5nIGFsbGVyIExLV3MgYXVzLCBlaW5zY2hsaWXDn2xpY2ggZGVyIMO8YmVyZ2VvcmRuZXRlbiBFbGVtZW50ZSBpbiBkZXIgSGllcmFyY2hpZS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIHdpcmQgdmVyd2VuZGV0LCB1bSBkYXMgVGVtcGxhdGUgZmVzdHp1bGVnZW4sIHdlbGNoZXMgZsO8ciBkaWUgSGllcmFyY2hpZWFuc2ljaHQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiBPaG5lIFZvcmdhYmUgd2lyZCBkYXMgU3RhbmRhcmQtVGVtcGxhdGUgdmVyd2VuZGV0Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fbm90cHJldHR5J10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgYWN0aW9ucyB0byB3aGljaCBwcmV0dHkgdXJscyBzaG91bGQgbm90IGJlIGdlbmVyYXRlZC4gIGkuZTogbm90cHJldHR5PWhpZXJhcmNoeSxkZWZhdWx0IHdpbGwgbm90IGdlbmVyYXRlIHByZXR0eSB1cmxzIHRvIGhpZXJhcmNoeSwgb3Igc3VtbWFyeSAoZGVmYXVsdCkgYWN0aW9ucywgYnV0IHdpbGwgYWxsb3cgZ2VuZXJhdGlvbiBvZiBwcmV0dHkgdXJscyB0byBkZXRhaWwgdmlld3MuICBBcyBhIHNwZWNpYWwgdmFsdWUgImFsbCIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGF0IG5vIHByZXR0eSB1cmxzIHNob3VsZCBiZSBnZW5lcmF0ZWQnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciA8ZW0+ZGVmYXVsdDwvZW0+LUF1c2dhYmUgc2lubnZvbGwuIEVyIGxlZ3QgZmVzdCwgd2llIHZpZWxlIEVsZW1lbnRlIHBybyBTZWl0ZSBhbmdlemVpZ3Qgd2VyZGVuIHNvbGxlbi4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciA8ZW0+aGllcmFyY2h5PC9lbT4tQXVzZ2FiZSBzaW5udm9sbC4gRXIgbGVndCBkaWUgSGllcmFyY2hpZS1JRCBmZXN0LCBhYiB3ZWxjaGVyIGRpZSBBcnRpa2VsIGF1c2dlZ2ViZW4gd2VyZGVuIHNvbGxlbi4nOwokbGFuZ1sncGFyYW1fcGFyZW50cyddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBoaWVyYXJjaHkgbmFtZXMgdGhhdCBzcGVjaWZ5IHRvIGNyZWF0ZSBudW1lcm91cyBoZWlyYXJjaHkgdHJlZXMgZnJvbSB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uKHMpLiAgSGllcmFyY2h5IG5hbWVzIG11c3QgYmUgdW5pcXVlLCBhbmQgbm90IGNvbnRhaW4gYW55IHNwZWNpYWwgY2hhcnMuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgPGVtPmRldGFpbDwvZW0+IEFydGlrZWxhbnNpY2h0IHNpbm52b2xsLiBFciBsZWd0IGZlc3QsIHdlbGNoZXIgQXJ0aWtlbCBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RsaXN0J10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IChzdW1tYXJ5KSB2aWV3LCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGludGVnZXIgcHJvZHVjdCBpZHMgdG8gZGlzcGxheS4gIE5vIHBhZ2luYXRpb24gb3Igc29ydGluZyBpcyBwZXJmb3JtZWQgb24gdGhlc2UgdmFsdWVzLCBhbmQgaWYgc3BlY2lmaWVkIHRoZSBvdGhlciBmaWx0ZXJpbmcgcGFyYW1ldGVycyB0byB0aGUgc3VtbWFyeSB2aWV3IGFyZSBpZ25vcmVkLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2gsIGFuZCBjYXRlZ29yeSBsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgcmVzdWx0cyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbWF5IGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSBzZWFyY2gnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0RpZXNlciBQYXJhbWV0ZXIgaXN0IG51ciBpbiBkZXIgPGVtPmNhdGVnb3J5bGlzdDwvZW0+IEthdGVnb3JpZWxpc3RlbmFuc2ljaHQgc2lubnZvbGwuIElzdCBkaWVzZXIgV2VydCBncsO2w59lciBhbHMgMCwgd2VyZGVuIGFsbGUgS2F0ZWdpZW4gYW5nZXplaWd0IChhdcOfZXIgZGVuZW4sIGRpZSBub2NoIGtlaW5lIEFydGlrZWwgZW50aGFsdGVuKS4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnRGllc2VyIFBhcmFtZXRlciBpc3QgbnVyIGluIGRlciBMaXN0ZW5hbnNpY2h0IHNpbm52b2xsLiBFciBsZWd0IGRpZSBTb3J0aWVydW5nIGRlciBBcnRpa2VsIGZlc3QuIE3DtmdsaWNoZSBXZXJ0ZSBzaW5kOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz4gLS0gZGVyIEFydGlrZWxuYW1lPC9saT4NCiAgPGxpPmlkIC0tIGRpZSBBcnRpa2VsLUlEPC9saT4NCiAgPGxpPndlaWdodCAtLSBkYXMgR2V3aWNodCBkZXMgQXJ0aWtlbHM8L2xpPg0KICA8bGk+cHJpY2UgLS0gZGVyIFByZWlzIGRlcyBBcnRpa2VsczwvbGk+DQogIDxsaT5zdGF0dXMgLS0gU3RhdHVzIChFbnR3dXJmIG9kZXIgVmVyw7ZmZmVudGxpY2h0KTwvbGk+DQogIDxsaT5yYW5kb20gLS0gdmVyd2VuZGV0IGJlaSBqZWRlciBBbmZyYWdlIGVpbmUgenVmw6RsbGlnZSBSZWloZW5mb2xnZTwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIGRhcyBFcnN0ZWxsdW5nc2RhdHVtIGRlcyBBcnRpa2Vscy9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIGRhcyDDhG5kZXJ1bmdzZGF0dW0gZGVzIEFydGlrZWxzPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ0xlZ3QgZGllIFJlaWhlbmZvbGdlIGRlciBGZWxkLVNvcnRpZXJ1bmcgaW4gZGVyIExpc3RlbmFuc2ljaHQgZmVzdC4gTcO2Z2xpY2hlIFdlcnRlIHNpbmQ6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBdWZzdGVpZ2VuZGUgUmVpaGVuZm9sZ2U8L2xpPg0KICA8bGk+ZGVzYyAtLSBBYnN0ZWlnZW5kZSBSZWloZW5mb2xnZTwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdEaWVzZXIgUGFyYW1ldGVyIHdpcmQgdmVyd2VuZGV0LCB1bSBkYXMgVGVtcGxhdGUgZmVzdHp1bGVnZW4sIHdlbGNoZXMgZsO8ciBkaWUgWnVzYW1tZW5mYXNzdW5nc2Fuc2ljaHQgdmVyd2VuZGV0IHdlcmRlbiBzb2xsLiBPaG5lIFZvcmdhYmUgd2lyZCBkYXMgU3RhbmRhcmQtVGVtcGxhdGUgdmVyd2VuZGV0Lic7CiRsYW5nWydwYXJlbnQnXSA9ICfDnGJlcmdlb3JkbmV0ZXMgRWxlbWVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0RhcyBQcm9kdWN0cy1Nb2R1bCB3dXJkZSAgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdEYXMgUHJvZHVjdHMtTW9kdWwgd3VyZGUgZWluc2NobGllw59saWNoIGFsbGVyIHp1Z2Vow7ZyaWdlbiBEYXRlbiBlbnRmZXJudC4nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3ByZWZpeF9jb3B5b2YnXSA9ICdLb3BpZSB2b24nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnV2VubiBTaWUgZGllc2VzIE1vZHVsIGVudGZlcm5lbiwgd2VyZGVuIGF1Y2ggYWxsZSB6dWdlaMO2cmlnZW4gRGF0ZW4gZ2Vsw7ZzY2h0LiBXb2xsZW4gU2llIGRhcyB3aXJrbGljaD8nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJlaXMnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByZWlzLUVpbnN0ZWxsdW5nJzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdBcnRpa2VsJzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnQXJ0aWtlbC1OYW1lJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnQXJ0aWtlbCc7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ0FydGlrZWxkZXRhaWwtRWluc3RlbGx1bmdlbic7CiRsYW5nWydwcm9kdWN0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdQcm9kdWt0YmVhcmJlaXR1bmdzb3B0aW9uZW4nOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdBcnRpa2VsaGllcmFyY2hpZSc7CiRsYW5nWydwcm9kdWN0X2luZm8nXSA9ICdBcnRpa2VsaW5mb3JtYXRpb24nOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnQXJ0aWtlbHZlcndhbHR1bmcnOwokbGFuZ1sncHJvZHVjdF9zdW1tYXJ5X3NldHRpbmdzJ10gPSAnUHJvZHVrdMO8YmVyc2ljaHQgRWluc3RlbGx1bmdlbic7CiRsYW5nWydwcm9ncmVzcyddID0gJ0ZvcnRzY2hyaXR0JzsKJGxhbmdbJ3Byb21wdCddID0gJ0VpbmdhYmUnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBdHRyaWJ1dGVpbnN0ZWxsdW5nZW4gaGluenVmw7xnZW4vYmVhcmJlaXRlbic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdEYXMgSG9jaGxhZGVuIHZvbiBEYXRlaWVuIG1pdCBkaWVzZW4gRW5kdW5nZW4gKGbDvHIgRmVsZGVyIGRlcyBUeXBzIFwnZmlsZVwnKSBlcmxhdWJlbic7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnRGFzIEhvY2hsYWRlbiB2b24gQmlsZGVybiBtaXQgZGllc2VuIEVuZHVuZ2VuIChmw7xyIEZlbGRlciBkZXMgVHlwcyBcJ2ltYWdlXCcpIGVybGF1YmVuJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnQWt0aXZpZXJ1bmcgcGVyIFZvcmVpbnN0ZWxsdW5nIGbDvHIgYWxsZSBuZXVlbiBBcnRpa2VsJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ1ZvcmxhZ2UgZsO8ciBkaWUgQW56ZWlnZSB2b24gUHJvZHVrdCBBdHRyaWJ1dHdlcnRlIGluIERyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdCbG9ja2dyw7bDn2UnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydC1Nb2R1bCc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnQ2FydC1Nb2R1bC1QYXJhbWV0ZXInOwokbGFuZ1sncHJvbXB0X2NsZWFyYXR0cmlicyddID0gJ09wdGlvbmVuIGJlaW0gQWt0dWFsaXNpZXJlbiBsZWVyZW4nOwokbGFuZ1sncHJvbXB0X2NsZWFyY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4gYmVpbSBBa3R1YWxpc2llcmVuIGxlZXJlbic7CiRsYW5nWydwcm9tcHRfY2xlYXJmaWVsZHMnXSA9ICdGZWxkZXIgYmVpbSBBa3R1YWxpc2llcmVuIGxlZXJlbic7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZW4gZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdBcnRpa2VsZmVsZGVyIGVyc3RlbGxlbj8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0VpbmUgQXJ0aWtlbGhpZXJhcmNoaWUgZXJzdGVsbGVuJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnRWluZSBDU1YtRGF0ZWkgaG9jaGxhZGVuJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdXw6RocnVuZ3NzY2hsw7xzc2VsJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1fDpGhydW5nc3N5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdWb3JlaW5nZXN0ZWxsdCBoYWJlbiBhbGxlIG5ldWVuIEFydGlrZWwgZGllc2VuIFN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnVm9yZWluZ2VzdGVsbHQgZW50aGFsdGVuIGFsbGUgbmV1ZW4gQXJ0aWtlbCBlaW5lbiBTdGV1ZXJhbnRlaWwnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0FsbGUgenVtIEFydGlrZWwgZ2Vow7ZyZW5kZW4gRGF0ZWllbiBsw7ZzY2hlbiwgd2VubiBkZXIgQXJ0aWtlbCBnZWzDtnNjaHQgd2lyZD8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0ZlbGR0cmVubmVyJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnVm9yZWluZ2VzdGVsbHRlIERldGFpbC1TZWl0ZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlsc2ZvciddID0gJ0RldGFpbHMgZsO8ciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdXaWUgc29sbGVuIGRvcHBlbHRlIFByb2R1a3RlIGdlaGFuZGhhYnQgd2VyZGVuPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdOZWluJzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdCaWxkZXIgdmVyYXJiZWl0ZW4/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ1ZvcmVpbmdlc3RlbGx0ZSBTZWl0ZSBmw7xyIEhpZXJhcmNoaWUtTGlzdGVuYW5zaWNodCc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnQmlsZGVycGZhZCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMw6RuZ2VuZWluaGVpdGVuJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdFaW5lIDMwMWVyIFdlaXRlcmxlaXR1bmcgZXJ6ZXVnZW4nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0VpbmVuIDQwNGVyIEZlaGxlciBlcnpldWdlbic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdXZWxjaGUgQWt0aW9uIHNvbGwgYXVzZ2Vmw7xocnQgd2VyZGVuLCB3ZW5uIGVpbiBBcnRpa2VsIG5pY2h0IGFuZ2V6ZWlndCB3ZXJkZW4ga29ubnRlPyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdFaW5lIEZlaGxlcm1lbGR1bmcgYW56ZWlnZW4nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ0ZlaGxlcm1lbGR1bmcsIHdlbm4gZWluIEFydGlrZWwgbmljaHQgZ2VmdW5kZW4gd2VyZGVuIGtvbm50ZSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1NlaXRlIGbDvHIgZGF1ZXJoYWZ0ZSBVbWxlaXR1bmc/JzsKJGxhbmdbJ3Byb21wdF9wcmV0dHloaWVydXJscyddID0gJ1N1Y2htYXNjaGluZW5mcmV1bmRsaWNoZSBVUkxzIChQcmV0dHkgVVJMUykgZsO8ciBIaWVyYXJjaGllYW5zaWNodGVuIHZlcndlbmRlbic7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdWt0ZSBwYXNzZW5kICVzJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZHNlaXRlIGbDvHIgUHJvZHVrdCBEZXRhaWxhbnNpY2h0JzsKJGxhbmdbJ3Byb21wdF9za3VfcmVxdWlyZWQnXSA9ICdBcnQuLU5yIGlzdCBlaW4gUGZsaWNodGZlbGQgKG11c3MgYmVpIGFsbGVuIEFydGlrZWxuIGFuZ2VnZWJlbiB3ZXJkZW4pJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5cGFnZWxpbWl0J10gPSAnVm9yZWluZ2VzdGVsbHRlcyBQcm9kdWt0bGltaXQgaW4gZGVyIExpc3RlbmFuc2ljaHQnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnVm9yZWluZ2VzdGVsbHRlcyBTb3J0aWVyLUZlbGQgaW4gZGVyIExpc3RlbmFuc2ljaHQnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdWb3JlaW5nZXN0ZWxsdGUgU29ydGllci1SZWloZW5mb2xnZSBpbiBkZXIgTGlzdGVuYW5zaWNodCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9uZXdkZWZhdWx0J10gPSAnTmV1ZSBMaXN0ZW5hbnNpY2h0IHZlcndlbmRlbic7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdWb3JsYWdlbnF1ZWxsZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ0phJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdEaWVzZSBaZWljaGVua2V0dGUgaW4gYWxsZSBVUkxzIGVpbmbDvGdlbiwgZGllIHNpY2ggYXVmIGRpZXNlcyBNb2R1bCBiZXppZWhlbic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnRGllIEhpZXJhcmNoaWVuYW1lbiBpbiBkaWUgVVJMIHZvbiBBcnRpa2VsZGV0YWlscyBlaW5mw7xnZW4nOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdEaWVzZSBTZWl0ZSBhdWNoIGbDvHIgU3VjaGVyZ2Vibmlzc2UgdmVyd2VuZGVuIDxlbT4oRXJzZXR6dCBkZW4gPGNvZGU+cmVzdWx0cGFnZTwvY29kZT4gUGFyYW1ldGVyIGRlcyBTdWNoZSBNb2R1bHMpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnR2V3aWNodHMtRWluaGVpdCc7CiRsYW5nWydwdWJsaWMnXSA9ICdJc3QgZGllcyBlaW4gw7ZmZmVudGxpY2hlcyBGZWxkPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdWZXLDtmZmZW50bGljaHQnOwokbGFuZ1sncXVhbnRpdHlfb25faGFuZCddID0gJ1ZlcmbDvGdiYXJlIE1lbmdlJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1p1ZsOkbGxpZyc7CiRsYW5nWydyZW9yZGVyJ10gPSAnTmV1IG9yZG5lbic7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWUgbmV1IG9yZG5lbic7CiRsYW5nWydyZXNldCddID0gJ1p1csO8Y2tzZXR6ZW4nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBdWYgZGllIHByb2dyYW1tc2VpdGlnZW4gVm9yZWluc3RlbGx1bmdlbiB6dXLDvGNrc2V0emVuJzsKJGxhbmdbJ3JldHVybiddID0gJ1p1csO8Y2snOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1p1csO8Y2sgbmFjaCBvYmVuJzsKJGxhbmdbJ3Jvb3QnXSA9ICdXdXJ6ZWx2ZXJ6ZWljaG5pcyc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTdWNoZm9ybXVsYXIgVGVtcGxhdGVzJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdIaW56dWbDvGdlbi9CZWFyYmVpdGVuIFN1Y2hmb3JtdWxhciBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTdWNoZSBuYWNoIEVpZ2Vuc2NoYWZ0IEJlc2NocmVpYnVuZyc7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1NvbGx0ZSBkaWUgQWJmcmFnZSBmw7xyIGFsbGUgb2RlciBlaW5lbiBkZXIgVGVzdHMgdW50ZW4gZW50c3ByZWNoZW4/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnU3VjaGUgbmFjaCBFaWdlbnNjaGFmdCBOYW1lJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByZWlzc3Bhbm5lJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdBbGxlIGF1c3fDpGhsZW4nOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0JpdHRlIGF1c3fDpGhsZW4nOwokbGFuZ1snc2V0ZGlzYWJsZWQnXSA9ICdTdGF0dXMgYXVmIOKAnkRlYWt0aXZpZXJ04oCcIHNldHplbic7CiRsYW5nWydzZXRkcmFmdCddID0gJ1N0YXR1cyBhdWYg4oCeRW50dXJm4oCcIHNldHplbic7CiRsYW5nWydzZXRwdWJsaXNoZWQnXSA9ICdTdGF0dXMgYXVmIOKAnlZlcsO2ZmZlbnRsaWNodOKAnCBzZXR6ZW4nOwokbGFuZ1snc2t1J10gPSAnQXJ0Li1Oci4nOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRpZXJ0IG5hY2gnOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRpZXItUmVpaGVuZm9sZ2UnOwokbGFuZ1snc291cmNlJ10gPSAnUXVlbGxlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdBYnNlbmRlbic7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdBYm9ubmVtZW50JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdMaWVmZXJow6R1Zmlna2VpdCc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0dlbGllZmVydCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnVmVyZmFsbCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ1ZlcmbDpGxsdCc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01vbmF0bGljaCc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kJ10gPSAnWmFobHVuZ3Now6R1Zmlna2VpdCc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JlemFobHQnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1ZpZXJ0ZWxqw6RocmxpY2gnOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnSGFsYmrDpGhybGljaCc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnSsOkaHJsaWNoJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlcyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0VpbiBadXNhbW1lbmZhc3N1bmdzLVRlbXBsYXRlIGhpbnp1ZsO8Z2VuL8OkbmRlcm4nOwokbGFuZ1sndGF4YWJsZSddID0gJ013U3QuJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0JzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnTWVocnplaWxpZ2VzIFRleHRmZWxkJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdFaW56ZWlsaWdlcyBUZXh0ZmVsZCc7CiRsYW5nWyd0aXRsZV9hZGp1c3RtZW50J10gPSAnRW50ZXIgYW4gYWRqdXN0bWVudCBmcm9tIHRoZSBiYXNlIHByaWNlIGZvciB0aGUgcHJvZHVjdCBvcHRpb25zLiAgU3ludGF4IGlzIFsrLV0jLiMjJzsKJGxhbmdbJ3RpdGxlX2F0dHJpYnV0ZV90ZXh0J10gPSAnRW50ZXIgYSBicmllZiBkZXNjcmlwdGlvbiBmb3IgdGhpcyBwcm9kdWN0IG9wdGlvbic7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5zdGVsbHVuZyBOZXVlIEhpZXJhcmNoaWVhdXNnYWJldm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluc3RlbGx1bmcgTmV1ZSBLYXRlZ29yaWVhdXNnYWJldm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluc3RlbGx1bmcgTmV1ZSBEZXRhaWxhbnNpY2h0dm9ybGFnZSc7CiRsYW5nWyd0aXRsZV9xb2gnXSA9ICdPcHRpb25hbGx5IHNwZWNpZnkgYSBxdWFudGl0eSBvbiBoYW5kIGZvciB0aGlzIHByb2R1Y3Qgb3B0aW9uLiAgTm90ZSBmb3IgcXVhbnRpdHkgYWRqdXN0bWVudHMgdG8gYmUgYXV0b21hdGljIHRoZSBTS1UgZmllbGQgbXVzdCBhbHNvIGJlIHBvcHVsYXRlZCc7CiRsYW5nWyd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnVm9yZWluc3RlbGx1bmcgTmV1ZSBTdWNoZm9ybXVsYXJ2b3JsYWdlJzsKJGxhbmdbJ3RpdGxlX3NrdSddID0gJ1RoZSBTS1UgaXMgdXNlZCBmb3IgbWFuYWdpbmcgcXVhbnRpdHkgb24gaGFuZCwgYW5kIHByb21vdGlvbnMgZm9yIHByb2R1Y3Qgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdWb3JlaW5zdGVsbHVuZyBOZXVlIExpc3RlbmFuc2ljaHRzdm9ybGFnZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwJ10gPSAnTmFjaCBvYmVuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1sndXBsb2FkJ10gPSAnSG9jaHp1bGFkZW5kZSBEYXRlaSBhdXN3w6RobGVuJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ1VSTC1BbGlhcyc7CiRsYW5nWyd2YWxpZCddID0gJ0fDvGx0aWcnOwokbGFuZ1sndmFsdWUnXSA9ICdXZXJ0JzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1dlcnRlJzsKJGxhbmdbJ3ZpZXcnXSA9ICdBbnplaWdlbic7CiRsYW5nWyd2aWV3YWJsZV9maWVsZHMnXSA9ICdXw6RobGVuIFNpZSBiZW51dHplcmRlZmluaWVydGUgRmVsZGVyIGluIGRlciBUYWJlbGxlbmFuc2ljaHQnOwokbGFuZ1snd2Fybl9lZGl0X3Byb2R1Y3Rfb3B0aW9ucyddID0gJ0VhY2ggcHJvZHVjdCBvcHRpb24gbXVzdCBoYXZlIGEgdW5pcXVlIHN0cmluZy4gIElmIFNLVSBpcyByZXF1aXJlZCB0aGVuIGl0IG11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW50aXJlIHN5c3RlbS4nOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnUGxhdHppZXJ1bmcgZGVzIFdhc3NlcnplaWNoZW5zJzsKJGxhbmdbJ3dlaWdodCddID0gJ0dld2ljaHQnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ0F1c2dld8OkaGx0ZSBFaW50csOkZ2UnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0xpc2EnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMaXNhIGthdGVnb29yaWEnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdMaXNhIHYmYXVtbDtsaSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnTXV1ZGV0YXYnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0xpc2EgdG9vZGUnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdMaXNhIGF0dHJpYnV1dCc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdTZW8gdiZhdW1sO2xpIGthdGVnb29yaWFnYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnTGlzYSBoaWVyYXJoaWEgZWxlbWVudCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnTGlzYSBhdHRyaWJ1dWRpIHZhbGlrJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdLYXMgYWludWx0IGFkbWlubmlkIHNhYXZhZCBuJmF1bWw7aGEgc2VkYSBhdHRyaWJ1dXRpPyc7CiRsYW5nWydhbGlnbl91bCddID0gJyZVdW1sO2xlcyB2YXNha3VsZSc7CiRsYW5nWydhbGlnbl91YyddID0gJyZVdW1sO2xlcyBrZXNrZWxlJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnJlV1bWw7bGVzIHBhcmVtYWxlJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnVmFzYWt1bGUga2Vza2VsZSc7CiRsYW5nWydhbGlnbl9tYyddID0gJ0tlc2tlbGUnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdQYXJlbWFsZSBrZXNrZWxlJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQWxsYSB2YXNha3VsZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsbGEga2Vza2VsZSc7CiRsYW5nWydhbGlnbl9sciddID0gJ0FsbGEgcGFyZW1hbGUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ0smb3RpbGRlO2lrIGthdGVnb29yaWFkJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdPbGVkIHNhIGtpbmRlbD8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnT2xlZCBzYSBraW5kZWwsIGV0IHNvb3ZpZCBrdXN0dXRhZGEgc2VsbGUgdG9vdGUgamEgayZvdGlsZGU7aWsgc2VsbGVnYSBzZW9zdHV2YSBpbmZvcm1hdHNpb29uaT8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnS2FzdmF2YWx0JzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXVkaSBuaW1pJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYWF0bmUnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlcyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1QmdXVtbDtoaXN0YSc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvb3JpYWQnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29vcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnU2VsbGlzZSBuaW1lZ2Ega2F0ZWdvb3JpYSBla3Npc3RlZXJpYiBqdWJhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdPbGVkIHNhIGtpbmRlbCwgZXQgc29vdmlkIGt1c3R1dGFkYSBzZWxsZSBlbGVtZW5kaT8gSyZvdGlsZGU7aWsgdG9vdGVkLCBtaXMga2FzdXRhdmFkIHNlZGEgZWxlbWVudGksIHNlYXRha3NlIHB1dWR1dmFrcyBoaWVyYXJoaWFrcyc7CiRsYW5nWydjb25maXJtX2ltcG9ydCddID0gJ09sZWQgc2Ega2luZGVsLCBldCBzYSB0Jm90aWxkZTtlc3RpIHNvb3ZpZCBzZWRhIHRlaGE/XG5cbkViYWtvcnJla3RzZWQgc2VhZGVkIHYmb3RpbGRlO2kgdmFsZSBrb25maWd1cmF0c2lvb25pIGZhaWwgdiZvdGlsZGU7aXZhZCB0JmF1bWw7aWVzdGkgcmlra3VkYSBwcmFlZ3VzZSB0b2ltaXZhIHMmdXVtbDtzdGVlbWkuJzsKJGxhbmdbJ2NvcHknXSA9ICdLb3BlZXJpJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdLb3BlZXJpIGthdGVnb29yaWEnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdMb29kdWQnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0hldGtldiZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1snZGF0YSddID0gJ0FuZG1lZCc7CiRsYW5nWydkZWZhdWx0J10gPSAnVmFpa2ltaXNpJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdWYWlraW1pc2kgbWFsbGlkJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgY29udGVudHMgb2YgdGhlc2UgdGV4dCBhcmVhcyBhcmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgY29udGVudCBvZiB0ZW1wbGF0ZXMgd2hlbiB5b3UgY2xpY2sgJnF1b3Q7QWRkIFRlbXBsYXRlJnF1b3Q7IGluIHRoZSBhcHByb3ByaWF0ZSB0ZW1wbGF0ZSB0YWIuICBFZGl0aW5nIG9uZSBvZiB0aGVzZSB0ZXh0IGFyZWFzIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnS3VzdHV0YSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnS3VzdHV0YSBhdHRyaWJ1dXQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnS3VzdHV0YSBoaWVyYXJoaWEgZWxlbWVudCc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnS2FoYW5ldmFsdCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0tpcmplbGR1cyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlsaWQnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsaWRlIG1hbGwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpc2EvTXV1ZGEgZGV0YWlsaWRlIG1hbGwnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEaXNhYmxlZCc7CiRsYW5nWydkcmFmdCddID0gJ011c3RhbmQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdEcm9wZG93bic7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnRHJvcGRvd24gT3B0aW9ucyA8ZW0+KGFwcGxpY2FibGUgb25seSBmb3IgZHJvcGRvd24gZmllbGRzKTwvZW0+PGJyLz48YnIvPjxlbT4ob25lIGVudHJ5IHBlciBsaW5lKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdNdXVkYSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ011dWRhIGF0dHJpYnV1dGknOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnTXV1ZGEgYXR0cmlidXVkaSBzZWFkZWlkJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdFZGl0IEF0dHJpYnV0ZSBTZXRzIEZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdNdXVkYSBhdHRyaWJ1dXRlJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdNdXVkYSBrYXRlZ29vcmlhdCc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ011dWRhIGthdGVnb29yaWEgdiZhdW1sO2xqdSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnTXV1ZGEgaGllcmFyaGlhIGVsZW1lbnRpJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdTZWxsaXNlIG5pbWVnYSBhdHRyaWJ1dXQgb24ganViYSBvbGVtYXMnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ1YmYXVtbDtsamEgdiZhdW1sOyZhdW1sO3J0dXMgZWkgc2FhIG9sbGEgdCZ1dW1sO2hpJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdGYWlsaSBmb3JtYWFkaSBwcm9ibGVlbSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGYWlsaSBlaSBsZWl0dWQnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVlbSBmYWlsaSAlcyBhdmFtaXNlbCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnVmFsZSB2YW5lbSAoaGllcmFyaGlhIGVsZW1lbnQgZWkgc2FhIG9sbGEgaXNlZW5kYSB2YW5lbSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnVGhlIGN1c3RvbSBmaWVsZCB2YWx1ZSBlbnRlcmVkIGlzIGludmFsaWQgKGNvbnRhaW5zIG5vbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnQSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBpbnZhbGlkJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQbGVhc2Ugc2VsZWN0IGEgZmllbGQgdHlwZSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgbXVzdCBzdXBwbHkgYSBuYW1lJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdQZXJtaXNzaW9uIERlbmllZCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25hbWV1c2VkJ10gPSAnU2VsbGlzZSBuaW1lIHRvb2RlIG9uIGp1YmEgb2xlbWFzJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxlIGhpbm5hIG11dWRhdHVzZSB2JmF1bWw7JmF1bWw7cnR1cyBlbGVtZW5kaWxlICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICcmVXVtbDtsZXNsYWFkaW1pbmUgZWJhJm90aWxkZTtubmVzdHVzOiAlcyc7CiRsYW5nWydleHRyYTEnXSA9ICdFa3N0cmEgdiZhdW1sO2xpIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRWtzdHJhIHYmYXVtbDtsaSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnViZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnViZhdW1sO2xqYSBkZWZpbml0c2lvb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnViZhdW1sO2xqYSBkZWZpbml0c2lvb25pZCc7CiRsYW5nWydmaWxlJ10gPSAnRmFpbCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJpZCc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnUGVhbWlzZWQgc2VhZGVkJzsKJGxhbmdbJ2dvJ10gPSAnTWluZSc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJoaWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFyaGlhIHBvc2l0c2lvb24nOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdQaWx0JzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnUGlsZGkgayZhdW1sO2l0bGVtaXNlIHNlYWRlZCc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdJbXBvcnQgUHJvZHVjdHMgZnJvbSBDU1YgZmlsZSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVkZSBDaGlsZHJlbj8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdPbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiBObyB3aGl0ZXNwYWNlLCBxdW90ZXMsIG9yIG5vbiBsZXR0ZXIvbnVtYmVyIGNvbWJpbmF0aW9ucyc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdXYXRlcm1hcmsgc2V0dGluZ3MgYXJlIHRha2VuIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBNb2R1bGUnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnVGhlc2UgcGFyYW1ldGVycyBhcmUgZ2l2ZW4gdG8gdGhlIHNlbGVjdGVkIGNhcnQgbW9kdWxlIGZyb20gdGhlIHByb2R1Y3QgZGV0YWlsIGFuZCBzdW1tYXJ5IGRpc3BsYXlzJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIHVua25vd24gcHJvZHVjdCBmaWVsZHMgYXV0b21hdGljYWxseT8gPGVtPihUaGV5IHdpbGwgYmUgY3JlYXRlZCBhcyB0ZXh0IGZpZWxkcyk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGNhdGVnb3JpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlLCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJvZHVjdCBoaWVyYXJjaGllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdUaGlzIHN5c3RlbSB1bmRlcnN0YW5kcyAoLikgYXMgdGhlIGRlY2ltYWwgcG9pbnQgc2VwYXJhdG9yLiBpLmUuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgKG9yIGNoYXJhY3RlcnMpIHRoYXQgc2VwZXJhdGUgZWFjaCBmaWVsZCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmeSBob3cgdGhlIHN5c3RlbSBzaG91bGQgaGFuZGxlIGEgcHJvZHVjdCB3aG9zIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhlIENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IEFsbCBGaWVsZHMgZGVmaW5lZCBoZXJlIGFyZSBhdmFpbGFibGUgdG8gYWxsIHByb2R1Y3RzLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHdoZW4gZGVhbGluZyB3aXRoIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMuICBUaGUgYWN0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBob3dldmVyIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIGNvcnJlY3QgdGhlc2UgcHJvYmxlbXMnOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdVcG9uIGltcG9ydCwgaWYgYW4gaW1hZ2UgZmlsZW5hbWUgaXMgZm91bmQgaW4gYSBmaWVsZCBjb2x1bW4sIHNob3VsZCBpdCBiZSBtb3ZlZCBmcm9tIHRoZSBzb3VyY2UgbG9jYXRpb24sIHdhdGVybWFya2VkLCB0aHVtYm5haWxlZCwgYW5kIHRoZSBmaWVsZCB0eXBlIGNoYW5nZWQgdG8gJnF1b3Q7aW1hZ2UmcXVvdDsnOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB3aGVyZSBpbWFnZXMgcmVmZXJyZWQgdG8gaW4gdGhlIGltcG9ydCBmaWxlLCBjYW4gYmUgZm91bmQnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdWYWxpZCB2YWx1ZXMgYXJlICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUnOwokbGFuZ1snbGFiZWwnXSA9ICdMYWJlbCc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnU2tpcCc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdPdmVyd3JpdGUnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnVmlpbWF0aSBtdXVkZXR1ZCc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1RlaW5lIHBpbHQnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGggPGVtPihhcHBsaWNhYmxlIG9ubHkgb24gdGV4dGJveCBmaWVsZHMpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnbXV1ZGV0dWQnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBwcm9kdWN0cywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWyduYW1lJ10gPSAnTmltaSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBkbyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdVdXMga2F0ZWdvb3JpYSBuaW1pJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ0VpJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTmltZSBlaSBlc2l0YXR1ZCc7CiRsYW5nWydub25lJ10gPSAnUG9sZSc7CiRsYW5nWydvZiddID0gJ2tva2t1JzsKJGxhbmdbJ3BhZ2UnXSA9ICdMZWhlayZ1dW1sO2xnJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdMZWhlayZ1dW1sO2xnICVzICVzJiMwMzk7c3QnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ0xlaGVrJnV1bWw7bGplIGxpbWlpdCc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1RoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyZW50J10gPSAnRWVsbWluZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Rvb2RldGUgbW9vZHVsIG9uIGVkdWthbHQgcGFpZ2FsZGF0dWQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1Rvb2RldGUgbW9vZHVsIG9uIGVlbWxkYXR1ZCBrb29zIGsmb3RpbGRlO2lraWRlIHNlb3R1ZCBhbmRtZXRlZ2EnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdFZWxpc3R1c2VkJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1NlbGxlIG1vb2R1bGkgZWVtYWxkYW1pbmUgZWVtYWxkYWIga2EgayZvdGlsZGU7aWsgc2VvdHVkIGFuZG1lZCwgb2xlZCBzYSBraW5kZWwsIGV0IHNvb3ZpZCBqJmF1bWw7dGthdGE/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnSGluZCc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnSGlubmEgbXV1ZGF0dXMnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdUb29kZSc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Rvb3RlIG5pbWknOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdUb290ZWQnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdUb290ZSBoaWVyYXJoaWEnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnVG9vdGUgaGFsZHVyJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3MnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ0FsbG93IHVwbG9hZCBvZiBmaWxlcyB3aXRoIHRoZXNlIGV4dGVuc2lvbnMgKGZvciBmaWxlIHR5cGUgZmllbGRzKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnQWxsb3cgdXBsb2FkIG9mIGltYWdlcyB3aXRoIHRoZXNlIGV4dGVuc2lvbnMgKGZvciBpbWFnZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSB0aHVtYm5haWxzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnTWF4aW11bSBzaXplIChsYXJnZXN0IGRpbWVuc2lvbikgb2YgdGhlIHRodW1ibmFpbC4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgcHJldmlldyBpbWFnZXMgb2YgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWF4aW11bSBzaXplIChsYXJnZXN0IGRpbWVuc2lvbikgb2YgdGhlIHByZXZpZXcgaW1hZ2UuJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdGljYWxseSBwbGFjZSB3YXRlcm1hcmtzIG9uIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0VuYWJsZSBieSBkZWZhdWx0IGZvciBhbGwgbmV3IHByb2R1Y3RzJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdCYXRjaCBTaXplJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnTG9vIGthdGVnb29yaWFpZCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnTG9vIHRvb3RlIHYmYXVtbDtsamFzaWQ/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdMb28gdG9vdGUgaGllcmFyaGlhJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnVXBsb2FkIENTViBGaWxlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWx1dXRhIGtvb2QnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXV0YSBzJnV1bWw7bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdWYWlraW1pc2kgayZvdGlsZGU7aWtpZGVsIHV1dGVsIHRvb2RldGVsIG9uIHNlZSBvbGVrJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICdWYWlraW1pc2kgayZvdGlsZGU7aWsgdXVlZCB0b290ZWQgb24gbWFrc3VzdGF2YWQnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0t1c3R1dGEgayZvdGlsZGU7aWsgdG9vdGVnYSBzZW90dWQgZmFpbGlkLCBrdWkgdG9vZGUga3VzdHV0YXRha3NlPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnViZhdW1sO2xqYSBlcmFsZGFqYSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1ZhaWtpbWlzaSBkZXRhaWxpIGxlaHQnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgcHJvZHVjdHM/JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdIYW5kbGUgaW1hZ2VzPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnSW1hZ2UgUGF0aCc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ0RlZmF1bHQgU29ydCBPcmRlciBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRGVmYXVsdCBTb3J0IEZpZWxkIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBTb3VyY2UnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdLYWFsdSAmdXVtbDtoaWt1ZCc7CiRsYW5nWydwdWJsaWMnXSA9ICdLYXMgc2VlIG9uIGF2YWxpayB2JmF1bWw7bGk/Pyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdBdmFsZGF0dWQnOwokbGFuZ1sncmFuZG9tJ10gPSAnU3V2YWxpbmUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdUYWFzdGEgdGVoYXNlIHYmYXVtbDsmYXVtbDtydHVzZWQnOwokbGFuZ1sncmV0dXJuJ10gPSAnVGFnYXNpJzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdUYWdhc2kgdmFhdGUgdGlwcHUnOwokbGFuZ1sncm9vdCddID0gJ0p1dXInOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZhbGkgJnV1bWw7a3MnOwokbGFuZ1snc29ydF9ieSddID0gJ1NvcnRlZXJpJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0ZWVyaSBqJmF1bWw7cmpla29yZCc7CiRsYW5nWydzdGF0dXMnXSA9ICdPbGVrJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1NhYWRhJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdLb2trdXYmb3RpbGRlO3R0ZSBtYWxsJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzYS9NdXVkYSBrb2trdXYmb3RpbGRlO3R0ZSBtYWxsJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdNYWtzdXN0YXRhdic7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQgQXJlYSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBIaWVyYXJjaHkgUmVwb3J0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBDYXRlZ29yeUxpc3QgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IERldGFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndHlwZSddID0gJ1QmdXVtbDsmdXVtbDtwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1V1ZW5kYSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdWYWxpIGZhaWwgJnV1bWw7bGVzbGFhZGltaXNla3MnOwokbGFuZ1sndmFsaWQnXSA9ICdLZWh0aXYnOwokbGFuZ1sndmFsdWUnXSA9ICdWJmF1bWw7JmF1bWw7cnR1cyc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWJmF1bWw7JmF1bWw7cnR1c2VkJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ1Zlc2lwaWxkaSBhc3Vrb2h0JzsKJGxhbmdbJ3dlaWdodCddID0gJ0thYWwnOwokbGFuZ1sneWVzJ10gPSAnSmFoJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzIxNTU0NTI2NjczMjAxOTAwMC4xMjQxMDkxNzg3LjEyNTU1MjgzMzAuMTI1NTYwMjI5MC4xNjUnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjU0NDY5MDgzLjE0NS4yOC51dG1jY249KG9yZ2FuaWMpfHV0bWNzcj1nb29nbGV8dXRtY3RyPWNtc21zIHJlcXVpcmVtZW50c3x1dG1jbWQ9b3JnYW5pYyc7CiRsYW5nWydxY2EnXSA9ICcxMjQwNjgzNjE1LTU4NDA5OTczLTc5OTE1MzAzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMS4xMC4xMjU1NjAyMjkwJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnTGlzJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnTGlzJmF1bWw7JmF1bWw7IGthdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0xpcyZhdW1sOyZhdW1sOyBrZW50dCZhdW1sOyc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnUyZhdW1sOyZhdW1sO2RldHQmYXVtbDt2JmF1bWw7JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdHVvdGUnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgYXR0cmlidXV0dGknOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnTGlpdCZhdW1sOyBrZW50dCZhdW1sOyBrYXRlZ29yaWFhbjogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnTGlzJmF1bWw7JmF1bWw7IGhpZXJhcmtpYSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnTGlzJmF1bWw7JmF1bWw7IGF0dHJpYnV1dHRpIG9wdGlvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdOJmF1bWw7a3l2eXlzIHBlbGsmYXVtbDtzdCZhdW1sOyZhdW1sO24gYWRtaW5laWxsZSB0JmF1bWw7aCZhdW1sO24gYXR0cmlidXV0dGlpbj8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdLZWhpdHR5bnl0JzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnWWwmb3VtbDtzIHZhc2VtbWFsbGUnOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdZbCZvdW1sO3Mga2Vza2VsbGUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICdZbCZvdW1sO3Mgb2lrZWFsbGUnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdLZXNrZWxsZSB2YXNlbW1hbGxlJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnS2Vza2VsbGUnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdLZXNrZWxsZSBvaWtlYWxsZSc7CiRsYW5nWydhbGlnbl9sbCddID0gJ0FsYXMgdmFzZW1tYWxsZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsYXMga2Vza2VsbGUnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdBbGFzIG9pa2VhbGxlJzsKJGxhbmdbJ2FsbCddID0gJ0thaWtraSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnS2Fpa2tpIGthdGVnb3JpYXQnOwokbGFuZ1snYW55J10gPSAnTWlrJmF1bWw7IHRhaGFuc2EnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ09sZXRrbyB2YXJtYT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnT2xldGtvIHZhcm1hLCBldHQmYXVtbDsgaGFsdWF0IHBvaXN0YWEgdCZhdW1sO20mYXVtbDtuIHR1b3R0ZWVuIGphIHNlbiB0aWVkb3Q/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ05vdXNldmEnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdBdHRyaWJ1dXRpbiBuaW1pJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYWF0dGluZW4nOwokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ0FzZXRhIHZlcmtrb2thdXBhbiB0YXBhaHR1bWFrJmF1bWw7c2l0dGVsaWomYXVtbDt0JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFya2lhIHJhcG9ydHRpcG9oamF0JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0xpcyZhdW1sOyZhdW1sOy9tdW9ra2FhIEhpZXJhcmtpYSByYXBvcnR0aXBvaGphYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdQZXJ1dXRhJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWF0JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnVCZhdW1sO20mYXVtbDtuIG5pbWluZW4ga2F0ZWdvcmlhIG9uIGpvIGx1b3R1JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpYWxpc3RhIHBvaGphdCc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzJmF1bWw7JmF1bWw7L211b2trYWEga2F0ZWdvcmlhbGlzdGEgcG9oamFhJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnU2VudHRpbWV0cml0JzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnVmFsaW50YWxhYXRpa2tvJzsKJGxhbmdbJ2NvbmZpcm1fY29weWF0dHJpYnV0ZXMnXSA9ICdLYWlra2kgYXNldGV0dXQgYXR0cmlidXV0aXQgdCZhdW1sO2xsZSB0dW90dGVlbGxlIHBvaXN0ZXRhYW4uIE9sZXRrbyB2YXJtYSBldHQmYXVtbDsgaGFsdWF0IGphdGthYT8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdPbGV0a28gdmFybWEsIGV0dCZhdW1sOyBoYWx1YXQgcG9pc3RhYSB0JmF1bWw7bSZhdW1sO24gbm9kZW4/IEthaWtraSB0dW90dGVldCwgam90a2EgayZhdW1sO3l0dCZhdW1sO3YmYXVtbDt0IHQmYXVtbDt0JmF1bWw7IG5vZGVhIGFzZXRldGFhbiB0aWxhYW4gJnF1b3Q7ZWkgaGllcmFya2lhYSZxdW90Oy4nOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdPbGV0a28gdmFybWEsIGV0dCZhdW1sOyBoYWx1YXQgdGVoZCZhdW1sOyB0JmF1bWw7bSZhdW1sO24/XG5cblYmYXVtbDsmYXVtbDtyJmF1bWw7dCBhc2V0dWtzZXQgdGFpIHZpcmhlZWxsaW5lbiBjb25maWctdGllZG9zdG8gdm9pIHB5c3l2JmF1bWw7c3RpIGtvcnJ1cHRvaWRhIHRvaW1pdmFuIHN5c3RlZW1pbic7CiRsYW5nWydjb3B5J10gPSAnS29waW9pJzsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gJ0tvcGlvaSB0JmF1bWw7bSZhdW1sOyB0dW90ZSc7CiRsYW5nWydjb3B5X2F0dHJpYl9zZXRzJ10gPSAnS29waW9pIGF0dHJpYnV1dGluIGFzZXR1a3NldCc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS29waW9pJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnTHVvbnRpcCZhdW1sO2l2JmF1bWw7JzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdOeWt5aW5lbiBhcnZvJzsKJGxhbmdbJ2RhdGEnXSA9ICdUaWV0byc7CiRsYW5nWydkZWZhdWx0J10gPSAnT2xldHVzJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdPbGV0dXNwb2hqYXQnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPkh1b206PC9zdHJvbmc+IE4mYXVtbDtpZGVuIHRla3N0aWtlbnR0aWVuIHNpcyZhdW1sO2xsJm91bWw7aWxsJmF1bWw7IG0mYXVtbDsmYXVtbDtyaXRldCZhdW1sOyZhdW1sO24gb2xldHVzc2lzJmF1bWw7bHQmb3VtbDsgcG9oamlsbGUsIGpvc3NhIGx1b3QgdXVkZW4gcG9oamFuIGtsaWtrYWFtYWxsYSAmYW1wO3F1b3Q7TGlzJmF1bWw7JmF1bWw7IHBvaGphJmFtcDtxdW90Oy4gVCZhdW1sO25uZSB0ZWhkeXQgbXV1dG9rc2V0IGVpdiZhdW1sO3QgdmFpa3V0YSBzdW9yYWFuIHNpdnVpbGxhIG4mYXVtbDtreXYmYXVtbDsmYXVtbDtuIHNpcyZhdW1sO2x0Jm91bWw7Jm91bWw7biAodmFpbiBvbGV0dXNwb2hqaWluKS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnUG9pc3RhJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdQb2lzdGEgYXR0cmlidXV0dGknOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnUG9pc3RhIGhpZXJhcmtpYSBuaW1pa2UnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0xhc2tldmEnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdLdXZhdXMnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdLb2hkZSc7CiRsYW5nWydkZXRhaWxzJ10gPSAnVGllZG90JzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1lrc2l0eWlza29odGFpbmVuIHBvaGphdCc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGlzJmF1bWw7JmF1bWw7L211b2trYWEgeWtzaXR5aXNrb2h0YWlzdGEgcG9oamFhJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdNaXRhdCc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0FrdGl2b2l0dSc7CiRsYW5nWydkb3duJ10gPSAnU2lpcnImYXVtbDsgYWxhcyc7CiRsYW5nWydkcmFmdCddID0gJ0x1b25ub3MnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdQdWRvdHVzdmFsaWtrbyc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnUHVkb3R1c3ZhbGlrb24gYXNldHVrc2V0IDxlbT4oc292ZWxsZXRhYW4gdmFpbiBwdWRvdHVzdmFsaWtvbiBrZW50dGlpbik8L2VtPjxici8+PGJyLz48ZW0+KHlrc2kga2VudHQmYXVtbDsgLyByaXZpKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdNdW9ra2FhJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0J10gPSAnTXVva2thYSBhdHRyaWJ1dXR0aWEnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzJ10gPSAnTXVva2thYSBhdHRyaWJ1dXRpbiBhc2V0dWtzaWEnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ011b2trYWEgYXR0cmlidXV0aW4gYXNldHVrc2lhJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ011b2trYWEgYXR0cmlidXV0dGVqYSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnTGlzJmF1bWw7JmF1bWw7IGthdGVnb3JpYSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ011b2trYWEga2F0ZWdvcmlhIGtlbnR0aSZhdW1sOyAmcXVvdDslcyZxdW90OzpsbGUnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ011b2trYWEgaGllcmFya2lhIGl0ZW1pJmF1bWw7JzsKJGxhbmdbJ2Vycm9ycyddID0gJ1ZpcmhlZXQnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ1NhbWFubmltaW5lbiBhdHRyaWJ1dXR0aSBvbiBqbyBsdW90dSc7CiRsYW5nWydlcnJvcl9kYmVycm9yJ10gPSAnVGlldG9rYW50YSB2aXJoZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRHVibGlrYWF0dGkgU0tVIGFydm8gbCZvdW1sO3lkZXR0eSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnS2VudHQmYXVtbDsgZWkgdm9pIG9sbGEgdHloaiZhdW1sOyc7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAnVGllZG9zdG9mb3JtYWF0dGktb25nZWxtYSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdUaWVkb3N0b2EgZWkgbCZvdW1sO3lkeSc7CiRsYW5nWydlcnJvcl9maWxlb3BlbiddID0gJ1ZpcmhlIGF2YXR0YWVzc2EgdGllZG9zdG9hICVzJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ1RoZSBjdXN0b20gZmllbGQgdmFsdWUgZW50ZXJlZCBpcyBpbnZhbGlkIChjb250YWlucyBub24gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICdJbnZhbGlkIHZhbHVlIHNwZWNpZmllZCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdBbiBpdGVtIGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BsZWFzZSBzZWxlY3QgYSBmaWVsZCB0eXBlJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1lvdSBtdXN0IHN1cHBseSBhIG5hbWUnOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ09ubHkgb25lIHF1YW50aXR5IGZpZWxkIGlzIGFsbG93ZWQnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWlzc2lvbiBEZW5pZWQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnXSA9ICdUaGUgYWxpYXMgc3BlY2lmaWVkIGlzIGFscmVhZHkgaW4gdXNlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBbiBpdGVtIGJ5IHRoYXQgbmFtZSBhbHJlYWR5IGV4aXN0cyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnVGhlIHJlcXVlc3RlZCBpdGVtIGNvdWxkIG5vdCBiZSBmb3VuZCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdUaGF0IFNLVSB2YWx1ZSBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIGl0ZW0nOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB1bmlxdWUgU0tVJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdVcGxvYWQgZmFpbGVkOiAlcyc7CiRsYW5nWydleGNsdWRlX2NhdGVnb3JpZXMnXSA9ICdFeGNsdWRlIGl0ZW1zIGluIHRoZSBzZWxlY3RlZCBjYXRlZ29yaWVzIGZyb20gdGhlIHJlc3VsdHMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdLdXVkZW4ga3V1a2F1ZGVuIGomYXVtbDtsa2Vlbic7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdZaGRlbiB2dW9kZW4gaiZhdW1sO2xrZWVuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0thaGRlbiB2dW9kZW4gaiZhdW1sO2xrZWVuJzsKJGxhbmdbJ2V4cG9ydF90b19jc3YnXSA9ICdMdW8gQ1NWJzsKJGxhbmdbJ2V4cG9ydGF0dHJpYnMnXSA9ICdWaWUgYXR0cmlidXV0aXQnOwokbGFuZ1snZXhwb3J0Y2F0cyddID0gJ1ZpZSBrYWVvcmlhdCc7CiRsYW5nWydleHBvcnRkZWxpbSddID0gJ1ZpZSBrZW50JmF1bWw7biBlcm90dGltZXQnOwokbGFuZ1snZXhwb3J0ZHJhZnQnXSA9ICdWaWUgbHVvbm5va3NldCc7CiRsYW5nWydleHBvcnRmaWVsZHMnXSA9ICdWaWUga2VudCZhdW1sO3QnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEta2VudHQmYXVtbDsgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFeHRyYS1rZW50dCZhdW1sOyAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnS2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRzJ10gPSAnS2VudCZhdW1sO3QnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdLZW50JmF1bWw7biBtJmF1bWw7JmF1bWw7cml0eWtzZXQnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnS2VudHRpZW4gbSZhdW1sOyZhdW1sO3JpdHlrc2V0JzsKJGxhbmdbJ2ZpbGUnXSA9ICdUaWVkb3N0byc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0dGVyaSc7CiRsYW5nWydmaWx0ZXJpbnVzZSddID0gJ1ZvaW1hc3NhJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0dGVyaXQnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ1lsZWlzZXQgYXNldHVrc2V0JzsKJGxhbmdbJ2dvJ10gPSAnTWVuZSc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJraWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFya2lhbiBzaWphaW50aSc7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJraWFuIGFzZXR1a3NldCc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0t1dmEnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdLdXZhbiBrJmF1bWw7c2l0dGVseWFzZXR1a3NldCc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdUdW8gdHVvdHRlZXQgQ1NWLXRpZWRvc3Rvc3RhJzsKJGxhbmdbJ2luY2hlcyddID0gJ1R1dW1hdCc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVkZSBDaGlsZHJlbj8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdPbmx5IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzLiBObyB3aGl0ZXNwYWNlLCBxdW90ZXMsIG9yIG5vbiBsZXR0ZXIvbnVtYmVyIGNvbWJpbmF0aW9ucyc7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnUG9zc2libGUgdmFyaWFibGVzIGFyZTogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdHRyaWJ1dGVzX2NvcGllZCddID0gJ0F0dHJpYnV1dHRpIGtvcGlvaXR1JzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1dhdGVybWFyayBzZXR0aW5ncyBhcmUgdGFrZW4gZnJvbSB0aGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgaXRlbSBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIGNvcHkgQXR0cmlidXRlIFNldHMgKGV4Y2x1ZGluZyBza3UgdmFsdWVzKSBmcm9tIGFub3RoZXIgaXRlbS4nOwokbGFuZ1snaW5mb19jbGVhcmF0dHJpYnMnXSA9ICdPbmx5IGFwcGxpY2FibGUgd2hlbiB1cGRhdGluZyBleGlzdGluZyBpdGVtcywgdGhpcyB3aWxsIGNsZWFyIGFsbCBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0YWJhc2UgZm9yIGl0ZW1zIGJlZm9yZSBjcmVhdGluZyBuZXcgb25lcyc7CiRsYW5nWydpbmZvX2NsZWFyY2F0ZWdvcmllcyddID0gJ09ubHkgYXBwbGljYWJsZSB3aGVuIHVwZGF0aW5nIGV4aXN0aW5nIGl0ZW1zLCB0aGlzIHdpbGwgY2xlYXIgYWxsIGNhdGVnb3J5IG1lbWJlcnNoaXBzIGJlZm9lIGNyZWF0aW5nIG5ldyBvbmVzJzsKJGxhbmdbJ2luZm9fY2xlYXJmaWVsZHMnXSA9ICdPbmx5IGFwcGxpY2FibGUgd2hlbiB1cGRhdGluZyBleGlzdGluZyBpdGVtcywgdGhpcyB3aWxsIGNsZWFyIGFsbCBmaWVsZHMgYmVmb2UgY3JlYXRpbmcgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIHVua25vd24gaXRlbSBmaWVsZHMgYXV0b21hdGljYWxseT8gPGVtPihUaGV5IHdpbGwgYmUgY3JlYXRlZCBhcyB0ZXh0IGZpZWxkcyk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBpdGVtIGNhdGVnb3JpZXMgdG8gbWF0Y2ggdGhvc2Ugb2YgdGhlIENTViBmaWxlLCBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgaXRlbSBoaWVyYXJjaGllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUgaWYgaXQgZG9lcyBub3QgYWxyZWFkeSBleGlzdCc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdUaGlzIHN5c3RlbSB1bmRlcnN0YW5kcyAoLikgYXMgdGhlIGRlY2ltYWwgcG9pbnQgc2VwYXJhdG9yLiBpLmUuOiA8c3Ryb25nPjUuMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdTcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgKG9yIGNoYXJhY3RlcnMpIHRoYXQgc2VwZXJhdGUgZWFjaCBmaWVsZCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmeSBob3cgdGhlIHN5c3RlbSBzaG91bGQgaGFuZGxlIGFuIGl0ZW0gd2hvcyBuYW1lIGFscmVhZHkgZXhpc3RzIGluIHRoZSBDU1YgZmlsZSc7CiRsYW5nWydpbmZvX2ZpZWxkZGVmc190YWInXSA9ICc8c3Ryb25nPk5vdGU6IDwvc3Ryb25nPiBBbGwgRmllbGRzIGRlZmluZWQgaGVyZSBhcmUgYXZhaWxhYmxlIHRvIGFsbCBpdGVtcy4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbXMgd2VyZSBlbmNvdW50ZXJlZCB3aGVuIGRlYWxpbmcgd2l0aCBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzLiAgVGhlIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgaG93ZXZlciB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCBjb3JyZWN0IHRoZXNlIHByb2JsZW1zJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7JzsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICdVc2UgdGhpcyBwYWdlIGZvciBoaWVyYXJjaHkgdmlld3MuICBUaGUgcGFnZWlkIHdpbGwgbm90IGJlIHNwZWZpcmllZCBvbiB0aGUgVVJMLic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ1RoZSBwYXRoIChyZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXJlY3RvcnkpIHdoZXJlIGltYWdlcyByZWZlcnJlZCB0byBpbiB0aGUgaW1wb3J0IGZpbGUsIGNhbiBiZSBmb3VuZCc7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gJ0ltYWdlIHByb2Nlc3NpbmcgZnVuY3Rpb25zIGFyZSBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gIFVzZSBDR1NtYXJ0SW1hZ2UgZm9yIGlubGluZSBpbWFnZSBwcm9jZXNzaW5nLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0EgYnJpZWYgdGVzdCBhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgZmlsZSBzcGVjaWZpZWQsIGFuZCBldmVyeXRoaW5nIGFwcGVhcnMgdG8gYmUgY29ycmVjdC48YnIvPlRoaXMgaXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgaW4gdGhlIGZpbGUuJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdJbmNsdWRlIHRoZSBoaWVyYXJjaHkgaXRlbSBuYW1lIG9uIHRoZSBVUkwnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnVmFsaWQgdmFsdWVzIGFyZSArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSB3ZWJzaXRlIGlmIGFuIGl0ZW0gZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBpdGVtIGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpYyBmaWVsZHMgYXJlIGF2YWlsYWJsZSBmb3IgdGhlIHB1YmxpYyB0byBzZWUnOwokbGFuZ1snaW5mb19yZW9yZGVyX2NvbnRlbnQnXSA9ICdUaGlzIG9wZXJhdGlvbiBhbGxvd3MgZHJhZ2dpbmcgdGhlIGluZGl2aWR1YWwgbm9kZXMgaW4gdGhlIHRyZWUgdG8gYWRqdXN0IHRoZSBvcmRlciB0aGF0IHRoZXkgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gaW4gdGhlIGhpZXJhcmNoeSB2aWV3JzsKJGxhbmdbJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnVGhpcyBidXR0b24gd2lsbCBlbnN1cmUgdGhhdCBldmVudCBoYW5kbGVycyBmb3IgZWNvbW1lcmNlIGV2ZW50cyBhcmUgaW4gcGxhY2UuICBUaGlzIGlzIHVzZWZ1bCBpZiBhc2tpbmcgdGhlIGl0ZW1zIG1vZHVsZSB0byBrZWVwIHRyYWNrIG9mIGEgcXVhbnRpdHkgb24gaGFuZCwgYnV0IHRoZSBldmVudCBoYW5kbGVycyBkaWQgbm90IGdldCBjcmVhdGVkIGR1cmluZyBpbnN0YWxsIG9yIHVwZ3JhZGUnOwokbGFuZ1snbGFiZWwnXSA9ICdPdHNpa2tvJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICdPaGl0YSc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdZbGlraXJqb2l0YSc7CiRsYW5nWydsYWJlbF91cGRhdGUnXSA9ICdQJmF1bWw7aXYmYXVtbDt0JmF1bWw7JzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnPj4nOwokbGFuZ1snbGFzdF9tb2RpZmllZCddID0gJ1ZpaW1lZWtzaSBtdW9rYXR0dSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ1RvaW5lbiBrdXZhJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ011b2trYXVzcCZhdW1sO2l2JmF1bWw7bSZhdW1sOyZhdW1sO3ImYXVtbDsnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBpdGVtcywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdTaWlyciZhdW1sOyBhbGFzJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdTaWlyciZhdW1sOyB5bCZvdW1sO3MnOwokbGFuZ1snbXNnX2V2ZW50aGFuZGxlcnNfY3JlYXRlZCddID0gJ0V2ZW50IEhhbmRsZXJzIENyZWF0ZWQnOwokbGFuZ1snbXNnX3Byb2R1Y3Rjb3BpZWQnXSA9ICdJdGVtIHN1Y2Nlc3NmdWxseSBjb3BpZWQuICBZb3UgYXJlIG5vdyBlZGl0aW5nIHRoZSBjb3B5LiAgQW55IHNrdSBpbmZvcm1hdGlvbiBpbiB0aGUgaXRlbSwgYW5kL29yIGF0dHJpYnV0ZXMgaGFzIGJlZW4gY2xlYXJlZCc7CiRsYW5nWyduYW1lJ10gPSAnTmltaSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1NpbnVsbGEgZWkgb2xlIHRhcnZpdHRhdmlhIG9pa2V1a3NpYTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdVdXNpIGthdGVnb3JpYW4gbmltaSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdFaSc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05pbWUmYXVtbDsgZWkgYW5uZXR0dSc7CiRsYW5nWydub25lJ10gPSAnRWkgeWh0JmF1bWw7JmF1bWw7bic7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdNaXQmYXVtbDsmYXVtbDtuIGVpIHZhbGl0dHUnOwokbGFuZ1snb2YnXSA9ICdPZic7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnT3BlcmFhdGlvIHBlcnV1dGV0dHUnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmFhdGlvIHN1b3JpdGV0dHUnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NpdnUgJXMgb2YgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ1NpdnVyYWpvaXR1cyc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhbiBpdGVtIGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIGl0ZW0gY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgaXRlbXM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBpdGVtPC9saT4NCiAgPGxpPmZpZWxkbGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHZhbHVlcyBmcm9tIGEgc3BlY2lmaWVkIGZpZWxkLg0KICAgICA8cD4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gVGhpcyBhY3Rpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmF2aWdhdGlvbiBmcm9tIHRoZSB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBmaWVsZC4gIGkuZTogIHlvdSBjb3VsZCBjcmVhdGUgYSBjdXN0b20gZHJvcGRvd24gZmllbGQgY2FsbGVkICZxdW90O2NvbG9yJnF1b3Q7IGFuZCB0aGVuIGNyZWF0ZSBhIG5hdmlnYXRpb24gYmFzZWQgb24gdGhlIGRpZmZlcmVudCBjb2xvcnMuDQogICAgIDwvcD4NCiAgPC9saT4NCiAgPGxpPnNlYXJjaCAtIERpc3BsYXkgYSBmb3JtIHRvIGFsbG93IHNlYXJjaGluZyBpdGVtcyBvbiB2YXJpb3VzIGNyaXRlcml1bTwvbGk+DQo8bGk+YWpheF9wcm9wdmFsIC0gUmV0dXJuIGEganNvbiBlbmNvZGVkIGxpc3Qgb2YgcHJvcGVydHkgdmFsdWVzIG1hdGNoaW5nIHRoZSBjcml0ZXJpYSBzcGVjaWZpZWQuICBUaGlzIGFjdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIHZpYSBhamF4LCBhbmQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHRoZSBzaG93dGVtcGxhdGU9ZmFsc2UgcGFyYW1ldGVyIG9uIHRoZSBVUkwuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIGl0ZW1zIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpLiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGFsc28gYmUgdXNlZCB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uIHRvIGxpbWl0IHRoZSBvdXRwdXQgdG8gdGhlIHNwZWNpZmllZCBpdGVtIGNhdGVnb3JpZXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBjYXRlZ29yaWVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGNhdGVnb3J5IGZpZWxkLiAgSXQgd2lsbCBub3Qgd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBvciAmcXVvdDtjYXRlZ29yeV9pZCZxdW90OyBwYXJhbWV0ZXJzLiAgIFRoZSBzeW50YXggb2YgdGhpcyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcywgYW5kIGZpZWxkIHZhbHVlcy4gIGkuZTogIGNhdGVnb3J5bGlzdD0mcXVvdDtmaWVsZCBuYW1lOnZhbHVlLGZpZWxkIG5hbWUgMjp2YWx1ZSAyJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFuZCBmaWVsZGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4gIEl0IGNhbiBiZSB1c2VkIHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMuICBUaGlzIG9wdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHByZXR0eSB1cmxzIG9mIGFueSBzb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4gIFRoaXMgcGFyYW1ldGVyIGhhcyBubyB1c2Ugd2hlbiBwcmV0dHkgdXJscyBhcmUgZW5hYmxlZC4nOwokbGFuZ1sncGFyYW1fZXhjbHVkZWNhdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgd2lsbCBhbGxvdyBleGNsdWRpbmcgaXRlbXMgdGhhdCBhcmUgaW4gYSBzcGVjaWZpYyBjYXRlZ29yeSBmcm9tIHRoZSByZXN1bHQuIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbmFtZXMgaXMgYWxsb3dlZC4gVGhpcyBwYXJhbWV0ZXIgY2FuIHdvcmsgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgY2F0ZWdvcnkgcGFyYW1ldGVyIHRvIHByb3ZpZGUgYSBsaXN0IG9mIHRoZSBpdGVtcyB0aGF0IGFyZSBpbiB0aGlzIGNhdGVnb3J5LCBidXQgbm90IGluIHRoYXQgY2F0ZWdvcnknOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gYW5kIHRoZSA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gYWN0aW9ucy4gSW4gdGhlIGZpZWxkbGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLiAgSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGZpZWxkIHRvIHVzZSB0byBleHRyYWN0IGEgbGlzdCBvZiB2YWx1ZXMuICBBbnkgdmFsaWQgZmllbGQgbmFtZXMgYXJlIGFjY2VwdGVkICh0aG91Z2ggb25seSB0ZXh0IGZpZWxkIGFuZCBkcm9wZG93biBmaWVsZCBuYW1lcyB3aWxsIHdvcmsgcHJvcGVybHkuICBBZGRpdGlvbmFsbHkgdGhlIHNwZWNpYWwgdmFsdWVzIDo6bmFtZTo6LCA6OnNrdTo6LCBhbmQgOjphbGlhczo6IGNhbiBiZSBzcGVjaWZpZWQgdG8gcmV0dXJuIHZhbHVlcyBmcm9tIHRoZSBpdGVtIG5hbWUsIHNrdSBhbmQgYWxpYXMgcmVzcGVjdGl2ZWx5Lic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBJbiB0aGUgZGVmYXVsdCB2YWx1ZSB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7LiBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gb25seSBhIGZldyBsZXR0ZXJzLCB0byBpbmRpY2F0ZSBhIHNtYWxsIGZpbHRlci4gIGkuZTogZmllbGR2YWw9YiB0byByZXR1cm4gYWxsIGZpZWxkIHZhbHVlcyB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciBiLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhbmQgaGllcmFjaHkgYWN0aW9ucyB0aGlzIHBhcmFtZXRlciBoYXMgdHdvIHVzZXMuICBXaGVuIHVzZWQgaW4gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBpdGVtcyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGV4cHJlc3Npb25zIGNhbiBiZSBzdXBwbGllZC4gIGkuZToge1Byb2R1Y3RzIGFjdGlvbj1oaWVyYXJjaHkgaGllcmFyY2h5PSYjMDM5O3RydWNrcyxjYXJzJiMwMzk7fSc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX25vdHByZXR0eSddID0gJ1RoaWUgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGFjdGlvbnMgdG8gd2hpY2ggcHJldHR5IHVybHMgc2hvdWxkIG5vdCBiZSBnZW5lcmF0ZWQuICBpLmU6IG5vdHByZXR0eT1oaWVyYXJjaHksZGVmYXVsdCB3aWxsIG5vdCBnZW5lcmF0ZSBwcmV0dHkgdXJscyB0byBoaWVyYXJjaHksIG9yIHN1bW1hcnkgKGRlZmF1bHQpIGFjdGlvbnMsIGJ1dCB3aWxsIGFsbG93IGdlbmVyYXRpb24gb2YgcHJldHR5IHVybHMgdG8gZGV0YWlsIHZpZXdzLiAgQXMgYSBzcGVjaWFsIHZhdWUgJnF1b3Q7YWxsJnF1b3Q7IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhhdCBubyBwcmV0dHkgdXJscyBzaG91bGQgYmUgZ2VuZXJhdGVkJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wYXJlbnRzJ10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGhpZXJhcmNoeSBuYW1lcyB0aGF0IHNwZWNpZnkgdG8gY3JlYXRlIG51bWVyb3VzIGhlaXJhcmNoeSB0cmVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgbG9jYXRpb24ocykuICBIaWVyYXJjaHkgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGFuZCBub3QgY29udGFpbiBhbnkgc3BlY2lhbCBjaGFycy4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgaXRlbSB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBpdGVtcykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSAoaW5jbHVkaW5nIGFmdGVyIGEgc2VhcmNoKSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBpbiB0aGUgc3VtbWFyeSwgY2F0ZWdvcnlsaXN0IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5pdGVtX25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIGl0ZW0gaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBpdGVtIHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgaXRlbSBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+DQo8L3VsPg0KPHA+VGhlIGNhdGVnb3J5IGxpc3QgdmlldyBzdXBwb3J0cyBvbmx5IGEgZmV3IHNwZWNpZmljIHNvcnRpbmcgb3B0aW9uczo8L3A+DQo8dWw+DQogIDxsaT5pZCAtLSBUaGUgY2F0ZWdvcnkgaWQuPC9saT4NCiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBUaGUgY2F0ZWdvcnkgbmFtZS48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgc3VtbWFyeSB2aWV3LCB0aGlzIHBhcmFtZXRlciBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlIHZhbHVlcyB0byBhbm90aGVyIHR5cGUgZm9yIHNvcnRpbmcuICB2YWxpZCB2YWx1ZXMgYXJlIFNUUklORyxTSUdORUQgYW5kIFVOU0lHTkVELiAgSWYgbm90IHN1cHBsaWVkIHRoZSBkZWZhdWx0IFNUUklORyB0eXBlIGlzIGFzc3VtZWQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBhY3Rpb249aGllcmFyY2h5LCBhbGxvd3Mgc3BlY2lmeWluZyBhIHBhZ2UgaWQgb3IgYWxpYXMgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFueSBsaW5rcyB0byBzdW1tYXJ5IHZpZXcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3VtbWFyeSBtb2RlIGRpc3BsYXkuICBJdCBpcyBhbHNvIGFjY2VwdGVkIGluIHRoZSBzZWFyY2ggYWN0aW9uLiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Byb2R1Y3RzIG1vZHV1bGkgb24gb25uaXN0dW5lZXN0aSBhc2VubmV0dHUnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gcmVtb3ZlZCBhbG9uZyB3aXRoIGFsbCBhc3NvY2lhdGVkIGRhdGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdBc2V0dWtzZXQnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZpbmcgdGhpcyBtb2R1bGUgd2lsbCBhbHNvIHJlbW92ZSBhbGwgYXNzb2NpYXRlZCBkYXRhLCBhcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD8nOwokbGFuZ1sncHJpY2UnXSA9ICdIaW50YSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpY2UgQWRqdXN0bWVudCc7CiRsYW5nWydwcmVmaXhfY29weW9mJ10gPSAnS29waW8nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdUdW90ZSc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1R1b3R0ZWVuIG5pbWknOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdUdW90ZWV0JzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnVHVvdGVlbiBhc2V0dWtzZXQnOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnVHVvdGVlbiBtdW9ra2F1c2FzZXR1a3NldCc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdUdW90dGVlbiBrb29vc3RlYXNldHVrc2V0JzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnVHVvdGVoaWVyYXJraWEnOwokbGFuZ1sncHJvZHVjdF9pbmZvJ10gPSAnVHVvdGV0aWVkb3QnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVjdCBNYW5hZ2VyJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3MnOwokbGFuZ1sncHJvbXB0J10gPSAnUHJvbXB0JzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWRkL0VkaXQgQXR0cmlidXRlIFNldCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zIChmb3IgYWxsIHVwbG9hZCBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdBbGxvdyBwcm9jZXNzaW5nIG9mIGltYWdlcyB3aXRoIHRoZXNlIGV4dGVuc2lvbnMgKGZvciBpbWFnZSB0eXBlIGZpZWxkcyknOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIGRpc3BsYXkgb2YgaXRlbSBhdHRyaWJ1dGUgdmFsdWVzIGluIGRyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGljYWxseSBjcmVhdGUgdGh1bWJuYWlscyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSB0aHVtYm5haWwuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByZXZpZXcgaW1hZ2VzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSBwcmV2aWV3IGltYWdlLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpY2FsbHkgcGxhY2Ugd2F0ZXJtYXJrcyBvbiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBpdGVtcyc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnRXImYXVtbDtuIGtva28nOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQgTW9kdWxlIFBhcmFtZXRlcnMnOwokbGFuZ1sncHJvbXB0X2NsZWFyYXR0cmlicyddID0gJ0NsZWFyIGF0dHJpYnV0ZXMgb24gdXBkYXRlJzsKJGxhbmdbJ3Byb21wdF9jbGVhcmNhdGVnb3JpZXMnXSA9ICdDbGVhciBjYXRlZ29yaWVzIG9uIHVwZGF0ZSc7CiRsYW5nWydwcm9tcHRfY2xlYXJmaWVsZHMnXSA9ICdDbGVhciBmaWVsZHMgb24gdXBkYXRlJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JlYXRlIENhdGVnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0NyZWF0ZSBJdGVtIEZpZWxkcz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyZWF0ZSBJdGVtIEhpZXJhcmNoeSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ1R1byBDU1YgdGllZG9zdG8nOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1ZhbHV1dHRha29vZGknOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXV0YW4gc3ltYm9saSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgaXRlbXMgaGF2ZSB0aGlzIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnQnkgZGVmYXVsdCBhbGwgbmV3IGl0ZW1zIGFyZSB0YXhhYmxlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdEZWxldGUgYW55IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRlbSB3aGVuIHRoZSBpdGVtIGlzIGRlbGV0ZWQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWlscyBmb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG93IHRvIGhhbmRsZSBkdXBsaWNhdGUgaXRlbXM/JzsKJGxhbmdbJ3Byb21wdF9mYWxzZSddID0gJ0VwJmF1bWw7dG9zaSc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnSGFuZGxlIGltYWdlcz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0t1dmFuIHRpZWRvc3RvcG9sa3UnOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnTGVuZ3RoIFVuaXRzJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ1doYXQgYWN0aW9uIHNob3VsZCBiZSB0YWtlbiB3aGVuIGFuIGl0ZW0gY2Fubm90IGJlIGRpc3BsYXllZD8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyYXRlIGEgNDA0IGVycm9yJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdHZW5lcmF0ZSBhIDMwMSByZWRpcmVjdCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdEaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ0Vycm9yIG1lc3NhZ2UgZm9yIHdoZW4gYW4gaXRlbSBjYW5ub3QgYmUgZm91bmQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdlIHRvIGRvIHBlcm1hbmVudCByZWRpcmVjdCB0bz8nOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnRGVmYXVsdCBQYWdlIGZvciBIaWVyYXJjaHkgVmlldyc7CiRsYW5nWydwcm9tcHRfcHJldHR5aGllcnVybHMnXSA9ICdVc2UgUHJldHR5IFVSTFMgdG8gSGllcmFyY2h5IFZpZXdzJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIEl0ZW0gRGV0YWlsIFZpZXdzJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ0l0ZW1zIG1hdGNoaW5nICVzJzsKJGxhbmdbJ3Byb21wdF9za3VfcmVxdWlyZWQnXSA9ICdTS1UgaXMgcmVxdWlyZWQgZm9yIGFsbCBpdGVtcyBhbmQgYXR0cmlidXRlcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeV9uZXdkZWZhdWx0J10gPSAnVXNlIG5ldyBzdW1tYXJ5IHZpZXcnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdEZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRGVmYXVsdCBTb3J0IE9yZGVyIGluIHN1bW1hcnkgbW9kZSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdEZWZhdWx0IFNvcnQgRmllbGQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFNvdXJjZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1Rvc2knOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIEl0ZW0gRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnUGFpbm9uIG1pdHRheWtzaWtrJm91bWw7JzsKJGxhbmdbJ3B1YmxpYyddID0gJ0lzIHRoaXMgYSBwdWJsaWMgZmllbGQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ0p1bGthaXN0dSc7CiRsYW5nWydxdWFudGl0eV9vbl9oYW5kJ10gPSAnUXVhbnRpdHkgb24gSGFuZCc7CiRsYW5nWydyYW5kb20nXSA9ICdTYXR1bm5haW5lbic7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gJ0omYXVtbDtyamVzdCZhdW1sOyBoaWVyYXJraWEnOwokbGFuZ1sncmVzZXQnXSA9ICdOb2xsYXRhJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUGFsYXV0YSB0ZWhkYXNhc2V0dWtzZXQnOwokbGFuZ1sncmV0dXJuJ10gPSAnUGFsYWEnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1BhbGFhIHAmYXVtbDsmYXVtbDtuJmF1bWw7a3ltJmF1bWw7JmF1bWw7bic7CiRsYW5nWydyb290J10gPSAnUm9vdCc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTZWFyY2ggUHJvcGVydHkgRGVzY3JpcHRpb24nOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICdTaG91bGQgdGhlIHF1ZXJ5IG1hdGNoIGFsbCwgb3IgYW55IG9mIHRoZSB0ZXN0cyBiZWxvdz8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdTZWFyY2ggUHJvcGVydHkgTmFtZSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdIaW50YXJhamEnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1NlYXJjaCBUZW1wbGF0ZXMnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1ZhbGl0c2Uga2Fpa2tpJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWYWxpdHNlIHlrc2knOwokbGFuZ1snc2V0ZHJhZnQnXSA9ICdBc2V0YSBsdW9ubm9rc2Vrc2knOwokbGFuZ1snc2V0cHVibGlzaGVkJ10gPSAnQXNldGEganVsa2lzZWtzaSc7CiRsYW5nWydza3UnXSA9ICdTS1UnOwokbGFuZ1snc29ydF9ieSddID0gJ0omYXVtbDtyamVzdCZhdW1sOyc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnU29ydCBPcmRlcic7CiRsYW5nWydzb3VyY2UnXSA9ICdMJmF1bWw7aGRlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1RpbGEnOwokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ1N1YnNjcmlwdGlvbic7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnRXhwaXJ5JzsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01vbnRobHknOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0RlbGl2ZXJ5IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0RlbGlldmVyZWQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ1BheW1lbnQgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnTWFrc2V0dHUnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1F1YXJ0ZXJseSc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdTZW1pIEFudWFsbHknOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJ1llYXJseSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU3VtbWFyeSBUZW1wbGF0ZXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBBIFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RheGFibGUnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdEZWZhdWx0IE5ldyBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFNlYXJjaCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFN1bW1hcnkgVGVtcGxhdGUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUnOwokbGFuZ1sndXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwZGF0ZSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY3QgYSBmaWxlIHRvIHVwbG9hZCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgQWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbHVlJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbHVlcyc7CiRsYW5nWyd2aWV3J10gPSAnVmlldyc7CiRsYW5nWyd2aWV3YWJsZV9maWVsZHMnXSA9ICdTZWxlY3QgY3VzdG9tIGZpZWxkcyB0byB2aWV3IGluIHRoZSB0YWJsZSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYXRpb24nOwokbGFuZ1snd2VpZ2h0J10gPSAnV2VpZ2h0JzsKJGxhbmdbJ3dpdGhfc2VsZWN0ZWQnXSA9ICdXaXRoIFNlbGVjdGVkJzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEwNjYwOTE4MzguMTM0OTI4NTQxNC4xMzQ5Mjg1NDE0LjEzNDkyODU0MTQuMSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTM0OTI4NTQxNC4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTGFyZy4nOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0xvbmcuJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSGF1dC4nOwokbGFuZ1snYWRkJ10gPSAnQWpvdXRlcic7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0Fqb3V0ZXIgdW5lIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdBam91dGVyIHVuIGNoYW1wJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdBanVzdGFibGUnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0Fqb3V0ZXIgdW4gcHJvZHVpdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0Fqb3V0ZXIgdW4gYXR0cmlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnQXNzb2NpZSB1biBjaGFtcCAmYWdyYXZlOyBsYSBjYXQmZWFjdXRlO2dvcmllIDogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWpvdXRlIHVuZSBoaSZlYWN1dGU7cmFyY2hpZSBkJiMwMzk7YXJ0aWNsZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnQWpvdXRlciB1bmUgb3B0aW9uIGQmIzAzOTthdHRyaWJ1dCc7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnU2V1bHMgbGVzIGFkbWluaXN0cmF0ZXVycyBwZXV2ZW50IHZvaXIgY2V0IGF0dHJpYnV0ID8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdBdmFuYyZlYWN1dGU7JzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnSGF1dCBnYXVjaGUnOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdIYXV0IGNlbnRyZSc7CiRsYW5nWydhbGlnbl91ciddID0gJ0hhdXQgZHJvaXQnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaWxpZXUgZ2F1Y2hlJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudHJlJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlsaWV1IGRyb2l0JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQmFzIGdhdWNoZSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0JhcyBjZW50cmUnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYXMgZHJvaXQnOwokbGFuZ1snYWxsJ10gPSAnVG91cyc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnVG91dGVzIGxlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydhbnknXSA9ICdBdWN1bic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciA/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJyZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgZGUgdm91bG9pciBzdXBwcmltZXIgY2UgcHJvZHVpdCwgZXQgdG91dGUgbCYjMDM5O2luZm9ybWF0aW9uIGwmIzAzOTthY2NvbXBhZ25hbnQgPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRhbnQnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdOb20gZGUgbCYjMDM5O2F0dHJpYnV0JzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpcXVlJzsKJGxhbmdbJ2J0bl9zZXRlY29taGFuZGxlcnMnXSA9ICdJbnN0YWxsZXIgbGVzIGdlc3Rpb25uYWlyZXMgZCYjMDM5OyZlYWN1dGU7diZlZ3JhdmU7bmVtZW50cyBFLWNvbW1lcmNlJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXRlci9FZGl0ZXIgdW4gZ2FiYXJpdCBkZSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbm51bGVyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0NhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmUgY2F0JmVhY3V0ZTtnb3JpZSBkdSBtJmVjaXJjO21lIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIGxhIGxpc3RlIGRlcyBjYXQmZWFjdXRlO2dvcmllcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZGUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1snY2VudGltZXRlcnMnXSA9ICdDZW50aW0mZWdyYXZlO3RyZXMnOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDYXNlICZhZ3JhdmU7IGNvY2hlcic7CiRsYW5nWydjb25maXJtX2NvcHlhdHRyaWJ1dGVzJ10gPSAnVG91cyBsZXMgamV1eCBkJiMwMzk7YXR0cmlidXRzIGRlIGNlIHByb2R1aXQgdm9udCAmZWNpcmM7dHJlIHN1cHByaW0mZWFjdXRlO3MuICZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ0NvbmZpcm1lei12b3VzIGxhIHN1cHByZXNzaW9uIGRlIGNldCAmZWFjdXRlO2wmZWFjdXRlO21lbnQgPyBUb3VzIGxlcyBwcm9kdWl0cyBxdWkgbCYjMDM5O3V0aWxpc2VudCBuZSBmaWd1cmVyb250IHBsdXMgZGFucyBsYSBoaSZlYWN1dGU7cmFyY2hpZS4nOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdWb3VsZXotdm91cyByJmVhY3V0ZTtlbGxlbWVudCBlZmZlY3R1ZXIgY2V0dGUgYWN0aW9uID9cblxuRGVzIHBhcmFtJmVncmF2ZTt0cmVzIGluY29ycmVjdHMgb3UgdW4gZmljaGllciBkZSBjb25maWd1cmF0aW9uIGludmFsaWRlIHBldXZlbnQgY29ycm9tcHJlIGxlIGNhdGFsb2d1ZSBkZSBwcm9kdWl0cyBldCBsZSByZW5kcmUgaW51dGlsaXNhYmxlLic7CiRsYW5nWydjb3B5J10gPSAnQ29waWVyJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdDb3BpZXIgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29waWVyIGxhIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRlIGRlIGNyJmVhY3V0ZTthdGlvbic7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnVmFsZXVyIGFjdHVlbGxlJzsKJGxhbmdbJ2RhdGEnXSA9ICdEb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydkZWZhdWx0J10gPSAnRCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnR2FiYXJpdHMgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+TGUgY29udGVudSBkZSBjZXMgem9uZXMgZCYjMDM5OyZlYWN1dGU7ZGl0aW9uIHNvbnQgdXRpbGlzJmVhY3V0ZTtzIHBvdXIgZCZlYWN1dGU7dGVybWluZXIgbGUgY29udGVudSBwYXIgZCZlYWN1dGU7ZmF1dCBkZXMgZ2FiYXJpdHMgcXVhbmQgdm91cyBjbGlxdWV6IHN1ciAmcXVvdDtBam91dCBkJiMwMzk7dW4gbm91dmVhdSBnYWJhcml0JnF1b3Q7IGRhbnMgbCYjMDM5O29uZ2xldCBjb3JyZXNwb25kYW50LiBMYSBtb2RpZmljYXRpb24gZHUgY29udGVudSBkYW5zIGNlcyB6b25lcyBkJiMwMzk7JmVhY3V0ZTtkaXRpb24gbiYjMDM5O2F1cmEgcGFzIGQmIzAzOTtlZmZldCBpbW0mZWFjdXRlO2RpYXQgc3VyIHZvdHJlIHNpdGUnOwokbGFuZ1snZGVsZXRlJ10gPSAnU3VwcHJpbWVyJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdTdXBwcmltZXIgbCYjMDM5O2F0dHJpYnV0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ1N1cHByaW1lciB1biAmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0Rlc2NlbmRhbnQnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbiAnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdEZXN0aW5hdGlvbiAnOwokbGFuZ1snZGV0YWlscyddID0gJ0QmZWFjdXRlO3RhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGQmZWFjdXRlO3RhaWxzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBam91dCBvdSAmZWFjdXRlO2RpdGlvbiBkJiMwMzk7dW4gZ2FiYXJpdCBkJmVhY3V0ZTt0YWlscyc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaW9ucyAnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEJmVhY3V0ZTtzYWN0aXYmZWFjdXRlOyc7CiRsYW5nWydkb3duJ10gPSAnRGVzY2VuZHJlJzsKJGxhbmdbJ2RyYWZ0J10gPSAnJkVhY3V0ZTtiYXVjaGUnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdNZW51IGQmZWFjdXRlO3JvdWxhbnQnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ09wdGlvbnMgZHUgbWVudSBkJmVhY3V0ZTtyb3VsYW50IDxlbT4odW5pcXVlbWVudCBwb3VyIGxlcyBjaGFtcHMgZGUgdHlwZSBNZW51IGQmZWFjdXRlO3JvdWxhbnQpPC9lbT48YnIvPjxici8+PGVtPih1bmUgb3B0aW9uIGRlIG1lbnUgcGFyIGxpZ25lKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0ZXInOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdFZGl0ZXIgbGVzIEF0dHJpYnV0cyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICcmRWFjdXRlO2RpdGVyIGxlcyBqZXV4IGQmIzAzOTthdHRyaWJ1dHMnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJyZFYWN1dGU7ZGl0ZXIgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyBwb3VyJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJyZFYWN1dGU7ZGl0ZXIgbGVzIGF0dHJpYnV0cyc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdGVyIGxhIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdFZGl0ZXIgbGVzIGNoYW1wcyBkZSBsYSBjYXQmZWFjdXRlO2dvcmllJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0ZXIgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnSWwgeSBhIGQmZWFjdXRlO2omYWdyYXZlOyB1biBhdHRyaWJ1dCBkdSBtJmVjaXJjO21lIG5vbSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnUGx1c2lldXJzIHZhbGV1cnMgU0tVIGlkZW50aXF1ZXMgdHJvdXYmZWFjdXRlO2VzJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdVbmUgdmFsZXVyIGRvaXQgJmVjaXJjO3RyZSBpbmRpcXUmZWFjdXRlO2UnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsJmVncmF2ZTttZSBkZSBmb3JtYXQgZGUgZmljaGllcic7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGaWNoaWVyIGludHJvdXZhYmxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnRXJyZXVyICZhZ3JhdmU7IGwmIzAzOTtvdXZlcnR1cmUgZHUgZmljaGllciAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnUGFyZW50IGludmFsaWRlICh1biBlbGVtZW50IGRlIGhpJmVhY3V0ZTtyYXJjaGllIG5lIHBldXQgJmVjaXJjO3RyZSBzb24gcHJvcHJlIHBhcmVudCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnTGEgdmFsZXVyIGR1IGNoYW1wIHBlcnNvbm5hbGlzJmVhY3V0ZTsgZXN0IGludmFsaWRlIChzZXVscyBsZXMgY2FyYWN0JmVncmF2ZTtyZXMgYWxwaGFudW0mZWFjdXRlO3JpcXVlcyBzb250IGF1dG9yaXMmZWFjdXRlO3MpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfdmFsdWUnXSA9ICdWYWxldXIgaW5jb3JyZWN0ZSBlbnRyJmVhY3V0ZTtlJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VuIHBhcmFtJmVncmF2ZTt0cmUgcmVxdWlzIGVzdCBtYW5xdWFudCBvdSBpbnZhbGlkZSc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ1VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCBwb3J0YW50IGNlIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7JzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnQ2hvaXNpc3NlciBsZSB0eXBlIGR1IGNoYW1wJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1VuIG5vbSBkb2l0ICZlY2lyYzt0cmUgaW5kaXF1JmVhY3V0ZTsnOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ1NldWwgdW4gY2hhbXAgZGUgcXVhbnRpdCZlYWN1dGU7IGVzdCBhdXRvcmlzJmVhY3V0ZTsnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdVbiBzZXVsIGNoYW1wcyBkZSBzb3VzY3JpcHRpb24gZXN0IGF1dG9yaXMmZWFjdXRlOyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWlzc2lvbiByZWZ1cyZlYWN1dGU7ZSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0wmIzAzOTthbGlhcyBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7IGVzdCBkJmVhY3V0ZTtqJmFncmF2ZTsgdXRpbGlzJmVhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VuIHByb2R1aXQgcG9ydGFudCBjZSBub20gZXhpc3RlIGQmZWFjdXRlO2omYWdyYXZlOyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnTGUgcHJvZHVpdCBkJmVhY3V0ZTtzaXImZWFjdXRlOyBuJiMwMzk7YSBwYXMgcHUgJmVjaXJjO3RyZSByZXRyb3V2JmVhY3V0ZTsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnQ2V0dGUgdmFsZXVyIFNLVSBlc3QgZCZlYWN1dGU7aiZhZ3JhdmU7IHV0aWxpcyZlYWN1dGU7ZSBwYXIgdW4gYXV0cmUgcHJvZHVpdCc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTGEgdmFsZXVyIGQmIzAzOTthanVzdGVtZW50IGR1IHByaXggZXN0IGludmFsaWRlIHBvdXIgbCYjMDM5O29iamV0ICVzJzsKJGxhbmdbJ2Vycm9yX3NrdV9yZXF1aXJlZCddID0gJ01lcmNpIGQmIzAzOTtlbnRyZXIgdW4gU0tVIHVuaXF1ZSc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnTCYjMDM5O2Vudm9pIGR1IGZpY2hpZXIgYSAmZWFjdXRlO2Nob3UmZWFjdXRlOyA6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0V4Y2x1cmUgbGVzIHByb2R1aXRzIGRlcyBjYXQmZWFjdXRlO2dvcmllcyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMgZGVzIHImZWFjdXRlO3N1bHRhdHMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdBcHImZWdyYXZlO3Mgc2l4IG1vaXMnOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnQXByJmVncmF2ZTtzIHVuIGFuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0FwciZlZ3JhdmU7cyBkZXV4IGFucyc7CiRsYW5nWydleHRyYTEnXSA9ICdDaGFtcCBzdXBwbCZlYWN1dGU7bWVudGFpcmUgMSc7CiRsYW5nWydleHRyYTInXSA9ICdDaGFtcCBzdXBwbCZlYWN1dGU7bWVudGFpcmUgMic7CiRsYW5nWydmaWVsZCddID0gJ0NoYW1wJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ0NoYW1wcyc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0QmZWFjdXRlO2Zpbml0aW9uIGQmIzAzOTt1biBjaGFtcCc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdEJmVhY3V0ZTtmaW5pdGlvbnMgZGVzIGNoYW1wcyc7CiRsYW5nWydmaWxlJ10gPSAnRmljaGllcic7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJlcyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICcmYW1wO2x0OyZhbXA7bHQ7JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBnJmVhY3V0ZTtuJmVhY3V0ZTtyYXV4JzsKJGxhbmdbJ2dvJ10gPSAnRW52b3llcic7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJjaGllJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ1Bvc2l0aW9uIGRhbnMgbGEgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZGUgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1snaWQnXSA9ICdJZCAnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2UgJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZGUgbWFuaXB1bGF0aW9uIGRlcyBpbWFnZXMnOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnSW1wb3J0ZXIgbGVzIHByb2R1aXRzIGRlcHVpcyB1biBmaWNoaWVyIENTVic7CiRsYW5nWydpbmNoZXMnXSA9ICdQb3VjZXMnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0F2ZWMgbGVzIGRlc2NlbmRhbnRzID8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdDYXJhY3QmZWdyYXZlO3JlcyBhbHBoYW51bSZlYWN1dGU7cmlxdWVzIHVuaXF1ZW1lbnQuIFBhcyBkJiMwMzk7ZXNwYWNlcywgZGUgZ3VpbGxlbWV0cyBvdSBkZSBjb21iaW5haXNvbnMgYXV0cmVzIHF1ZSBsZXR0cmVzIGV0IGNoaWZmcmVzLic7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnTGVzIHZhcmlhYmxlcyBwb3NzaWJsZXMgc29udCA6IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dHMgY29waSZlYWN1dGU7cyc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdMYSBjb25maWd1cmF0aW9uIGRlcyBmaWxpZ3JhbmVzIGVzdCBjZWxsZSBkdSBtb2R1bGUgQ0dFeHRlbnNpb25zJzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnSW5kaXF1ZXogbGUgbm9tYnJlIGRlIGxpZ25lcyAmYWdyYXZlOyB0cmFpdGVyICZhZ3JhdmU7IGNoYXF1ZSBpdCZlYWN1dGU7cmF0aW9uLiBEJmVncmF2ZTtzIHF1JiMwMzk7dW5lIGl0JmVhY3V0ZTtyYXRpb24gZXN0IHRlcm1pbiZlYWN1dGU7ZSwgbGUgc3lzdCZlZ3JhdmU7bWUgZCYjMDM5O2ltcG9ydGF0aW9uIGQmZWFjdXRlO21hcnJlIGxhIHN1aXZhbnRlLiBTaSBkZXMgcHJvYmwmZWdyYXZlO21lcyBkZSBtJmVhY3V0ZTttb2lyZSBvdSBkZSB0ZW1wcyBkJiMwMzk7ZXgmZWFjdXRlO2N1dGlvbiBzZSBwcm9kdWlzZW50LCByJmVhY3V0ZTtkdWlzZXogY2V0dGUgdmFsZXVyLCBvdSBjb25zdWx0ZXogbGUgZm91cm5pc3NldXIgZGUgdm90cmUgaCZlYWN1dGU7YmVyZ2VtZW50Lic7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NlcyBwYXJhbSZlZ3JhdmU7dHJlcyBzb250IHBhc3MmZWFjdXRlO3MgYXUgbW9kdWxlIHBhbmllciBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7LCAmYWdyYXZlOyBwYXJ0aXIgZGUgbGEgZGVzY3JpcHRpb24gZXQgZHUgciZlYWN1dGU7c3VtJmVhY3V0ZTsgZHUgcHJvZHVpdC4nOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdDZXR0ZSBhY3Rpb24gY29waWUgbGVzIGpldXggZCYjMDM5O2F0dHJpYnV0cyAoaG9ycyB2YWxldXJzIFNLVSkgZGVwdWlzIHVuIGF1dHJlIHByb2R1aXQuJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3ImZWFjdXRlO2VyIGF1dG9tYXRpcXVlbWVudCBsZXMgY2hhbXBzIGluY29ubnVzID8gPGVtPihjciZlYWN1dGU7YXRpb24gZGUgY2hhbXBzIGRlIHR5cGUgdGV4dGUpPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3ImZWFjdXRlO2VyIGF1dG9tYXRpcXVlbWVudCBsZXMgY2F0JmVhY3V0ZTtnb3JpZXMgZGUgcHJvZHVpdHMgcHImZWFjdXRlO3NlbnRlcyBkYW5zIGxlIGZpY2hpZXIgQ1NWLCBzaSBlbGxlcyBuJiMwMzk7ZXhpc3RlbnQgcGFzIGQmZWFjdXRlO2omYWdyYXZlOyc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyJmVhY3V0ZTtlciBhdXRvbWF0aXF1ZW1lbnQgbGVzICZlYWN1dGU7bCZlYWN1dGU7bWVudHMgZGUgaGkmZWFjdXRlO3JhcmNoaWUgZGUgcHJvZHVpdHMgcHImZWFjdXRlO3NlbnRlcyBkYW5zIGxlIGZpY2hpZXIgQ1NWLCBzaSBpbHMgbiYjMDM5O2V4aXN0ZW50IHBhcyBkJmVhY3V0ZTtqJmFncmF2ZTsnOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnVXRpbGlzZXIgbGUgcG9pbnQgKC4pIGNvbW1lIHMmZWFjdXRlO3BhcmF0ZXVyIGQmZWFjdXRlO2NpbWFsLiBFeGVtcGxlOiAgPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnSW5kaXF1ZXIgbGUgY2F0YWN0JmVncmF2ZTtyZSAob3UgbGVzIGNhcmFjdCZlZ3JhdmU7cmVzKSBzJmVhY3V0ZTtwYXJhdGV1cnMgZGUgY2hhbXBzJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdUcmFpdGVtZW50IGEgYXBwbGlxdWVyIGF1eCBwcm9kdWl0cyBkb250IGxlIG5vbSBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7IGRhbnMgbGUgZmljaGllciBDU1YnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gTGVzIGNoYW1wcyBkJmVhY3V0ZTtmaW5pcyBpY2kgc29udCBjb21tdW5zICZhZ3JhdmU7IHRvdXMgbGVzIHByb2R1aXRzJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlIGxvcnMgZHUgdHJhaXRlbWVudCBkJiMwMzk7dW4gb3UgcGx1c2lldXJzIGNoYW1wcyBwZXJzb25uYWxpcyZlYWN1dGU7cy4gTCYjMDM5O2FjdGlvbiBzJiMwMzk7ZXN0IHRlcm1pbiZlYWN1dGU7ZSBjb3JyZWN0ZW1lbnQsIG1haXMgdm91cyBkZXZyaWV6IGNoZXJjaGVyIGxhIGNhdXNlIGRlIGwmIzAzOTtlcnJldXIuJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnTG9ycyBkZSBsJiMwMzk7aW1wb3J0YXRpb24sIHNpIHVuIG5vbSBkZSBmaWNoaWVyIGltYWdlIGVzdCB0cm91diZlYWN1dGU7IGRhbnMgdW5lIGNvbG9ubmUsIGZhdXQtaWwgbGUgZCZlYWN1dGU7cGxhY2VyIGRlIHNvbiByJmVhY3V0ZTtwZXJ0b2lyZSBkJiMwMzk7b3JpZ2luZSwgbHVpIGFqb3V0ZXIgdW4gZmlsaWdyYW5lLCBjciZlYWN1dGU7ZXIgdW5lIG1pbmlhdHVyZSwgZXQgY2hhbmdlciBsZSB0eXBlIGR1IGNoYW1wIGFzc29jaSZlYWN1dGU7IGVuIGNoYW1wICZxdW90O2ltYWdlJnF1b3Q7ID8nOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ1BhciBkJmVhY3V0ZTtmYXV0LCB1dGlsaXNlciBjZXR0ZSBwYWdlIHBvdXIgbGEgdnVlIGRlIGhpZXJhcmNoaWUuIEwmIzAzOTtJRCBkZSBsYSBwYWdlIG5lIHNlcmEgcGFzIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTsgZGFucyBsJiMwMzk7VVJMLic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ0NoZW1pbiAocmVsYXRpZiBhdSByJmVhY3V0ZTtwZXJ0b2lyZSB1cGxvYWRzKSBkZXMgaW1hZ2VzIHImZWFjdXRlO2YmZWFjdXRlO3JlbmMmZWFjdXRlO2VzIHBhciBsZSBmaWNoaWVyIGltcG9ydCZlYWN1dGU7ICc7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gJ0xlcyBmb25jdGlvbnMgZGUgdHJhaXRlbWVudCBkJiMwMzk7aW1hZ2VzIHNvbnQgZCZlYWN1dGU7cHImZWFjdXRlO2NpJmVhY3V0ZTtlcyBldCB2b250ICZlY2lyYzt0cmUgc3VwcHJpbSZlYWN1dGU7ZXMgZGFucyB1bmUgZnV0dXJlIHZlcnNpb24uIFV0aWxpc2V6IGxlIG1vZHVsZSBDR1NtYXJ0SW1hZ2UgcG91ciBsZSB0cmFpdGVtZW50IGQmIzAzOTtpbWFnZXMuJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQXByJmVncmF2ZTtzIHVuIGV4YW1lbiBwciZlYWN1dGU7bGltaW5haXJlLCBsZSBmaWNoaWVyIHNlbWJsZSBjb3JyZWN0Ljxici8+Q2VwZW5kYW50LCBpbCBzZSBwZXV0IHF1JiMwMzk7aWwgY29udGllbm5lIHRvdXQgZGUgbSZlY2lyYzttZSBkZXMgZXJyZXVycyBxdWkgbmUgcG91cnJvbnQgJmVjaXJjO3RyZSBkJmVhY3V0ZTt0ZWN0JmVhY3V0ZTtlcyBxdWUgbG9ycyBkZSBsJiMwMzk7aW1wb3J0YXRpb24uJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdJbmNsdXJlIGxlIG5vbSBkZSBsYSBoaSZlYWN1dGU7cmFyY2hpZSBkYW5zIGwmIzAzOTtVUkwnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnTGVzIHZhbGV1cnMgdmFsaWRlcyBzb250ICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdDZXR0ZSBvcHRpb24gcGFyYW0mZWdyYXZlO3RyZSBsZSBjb21wb3J0ZW1lbnQgZHUgc2l0ZSBsb3JzcXUmIzAzOTt1bmUgZmljaGUgcHJvZHVpdCBlc3QgYWZmaWNoJmVhY3V0ZTtlIGRpcmVjdGVtZW50ICZhZ3JhdmU7IGxhIHNhaXNpZSBkJiMwMzk7dW5lIFVSTCwgZXQgcXVlIGNlIHByb2R1aXQgbmUgcGV1dCAmZWNpcmM7dHJlIGFmZmljaCZlYWN1dGU7IChwb3VyIHRvdXRlcyByYWlzb25zIDogZCZlYWN1dGU7c2FjdGl2JmVhY3V0ZTssIHN1cHByaW0mZWFjdXRlOywgZXRjLikuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdMZXMgY2hhbXBzIHB1YmxpY3Mgc29udCB2aXNpYmxlcyBwYXIgbGVzIHV0aWxpc2F0ZXVycy4nOwokbGFuZ1snaW5mb19yZW9yZGVyX2NvbnRlbnQnXSA9ICdUaGlzIG9wZXJhdGlvbiBhbGxvd3MgZHJhZ2dpbmcgdGhlIGluZGl2aWR1YWwgbm9kZXMgaW4gdGhlIHRyZWUgdG8gYWRqdXN0dGggb3JkZXIgdGhhdCB0aGV5IHdpbGwgYmUgZGlzcGxheWVkIGluIGluIHRoZSBoaWVyYXJjaHkgdmlldyc7CiRsYW5nWydpbmZvX3NldGVjb21oYW5kbGVycyddID0gJ0NldHRlIGZvbmN0aW9uIHZhIHMmIzAzOTthc3N1cmVyIHF1ZSB0b3VzIGxlcyBnZXN0aW9ubmFpcmVzIGQmIzAzOTsmZWFjdXRlO3YmZWdyYXZlO25lbWVudHMgRS1jb21tZXJjZSBzb250IGluc3RhbGwmZWFjdXRlO3MuIENlY2kgZXN0IHV0aWxlIGxvcnNxdWUgdm91cyBzb3VoYWl0ZXogZyZlYWN1dGU7cmVyIGxlcyBzdG9ja3MgLyBxdWFudGl0JmVhY3V0ZTtzIGV0IHF1ZSBsZXMgZ2VzdGlvbm5haXJlcyBuJiMwMzk7b250IHBhcyAmZWFjdXRlO3QmZWFjdXRlO3MgbWlzIGVuIHBsYWNlIGxvcnMgZGUgbCYjMDM5O2luc3RhbGxhdGlvbiBvdSBsYSBtaXNlICZhZ3JhdmU7IGpvdXIuJzsKJGxhbmdbJ2xhYmVsJ10gPSAnJkVhY3V0ZTt0aXF1ZXR0ZSc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnSWdub3Jlcic7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdFY3Jhc2VyJzsKJGxhbmdbJ2xhc3RwYWdlJ10gPSAnJmFtcDtndDsmYW1wO2d0Oyc7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnRGVybmkmZWdyYXZlO3JlIG1vZGlmaWNhdGlvbic7CiRsYW5nWydsb2dvdGV4dCddID0gJ0xvZ28gJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ0xvbmdldXIgTWF4aW1hbGUgPGVtPihhcHBsaWNhYmxlIHNldWxlbWVudCBhdXggY2hhbXBzIHRleHRib3gpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0ZSBkZSBtb2RpZmljYXRpb24nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnVW4gbW9kdWxlIGRlIGdlc3Rpb24gZCYjMDM5O3VuIGNhdGFsb2d1ZSBkZSBwcm9kdWl0cywgZGUgbGV1cnMgcHJpeCwgaW1hZ2VzLCBldGMuIFBlcm1ldCBhdXNzaSBhdXggdXRpbGlzYXRldXJzIGRlIHJlbXBsaXIgdW4gcGFuaWVyIGQmIzAzOTthY2hhdC4nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnRGVzY2VuZHJlJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdSZW1vbnRlcic7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAnR2VzdGlvbm5haXJlcyBkJiMwMzk7JmVhY3V0ZTt2JmVncmF2ZTtuZW1lbnRzIGNyJmVhY3V0ZTtlcyc7CiRsYW5nWyduYW1lJ10gPSAnTm9tJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnVm91cyBuJiMwMzk7YXZleiBwYXMgbGEgcGVybWlzc2lvbiByZXF1aXNlJm5ic3A7OiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05vdXZlYXUgbm9tIGRlIGNhdCZlYWN1dGU7Z29yaWUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICcmYW1wO2d0Oyc7CiRsYW5nWydubyddID0gJ05vbic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ1ZvdXMgbiYjMDM5O2F2ZXogcGFzIGRvbm4mZWFjdXRlOyBkZSBub20nOwokbGFuZ1snbm9uZSddID0gJ0F1Y3VuJzsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZCddID0gJ1ZvdXMgbiYjMDM5O2F2ZXogcmllbiBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7JzsKJGxhbmdbJ29mJ10gPSAnZGUnOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ09wJmVhY3V0ZTtyYXRpb24gYW5udWwmZWFjdXRlO2UnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3AmZWFjdXRlO3JhdGlvbiByJmVhY3V0ZTthbGlzJmVhY3V0ZTtlJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQYWdlICc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnZSAlcyBzdXIgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ0VsJmVhY3V0ZTttZW50cyBwYXIgcGFnZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbGUgY29tcG9ydGVtZW50IGR1IG1vZHVsZS4gTGVzIHZhbGV1cnMgcG9zc2libGVzIHNvbnQmbmJzcDs6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLSBBZmZpY2hlciBsYSBoaSZlYWN1dGU7cmFyY2hpZSBkZSBwcm9kdWl0czwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBBZmZpY2hlciB1bmUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMgZGUgcHJvZHVpdHM8L2xJDQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gQWZmaWNoZSBsZSBzb21tYWlyZSBkZXMgcHJvZHVpdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIEFmZmljaGUgbGUgZCZlYWN1dGU7dGFpbCBkJiMwMzk7dW4gcHJvZHVpdCBkb25uJmVhY3V0ZTs8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gQWZmaWNoZSBsYSBsaXN0ZSBkZXMgdmFsZXVycyBkdSBjaGFtcCBzcCZlYWN1dGU7Y2lmaSZlYWN1dGU7Lg0KICAgICA8cD4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gQ2V0dGUgYWN0aW9uIHBldXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlO2UgcG91ciBjciZlYWN1dGU7ZXIgdW5lIG5hdmlnYXRpb24gJmFncmF2ZTsgcGFydGlyIGRlcyB2YWxldXJzIGQmIzAzOTt1biBjaGFtcCBzcCZlYWN1dGU7Y2lmaXF1ZS4gUGFyIGV4ZW1wbGUsIHZvdXMgcG91dmV6IGNyJmVhY3V0ZTtlciB1bmUgbGlzdGUgZCZlYWN1dGU7cm91bGFudGUgcGVyc29ubmFsaXMmZWFjdXRlO2UgYXBwZWwmZWFjdXRlO2UgJnF1b3Q7Q291bGV1ciZxdW90OyBldCBhbG9ycyBjciZlYWN1dGU7ZXIgdW5lIG5hdmlnYXRpb24gYmFzJmVhY3V0ZTtlIHN1ciBsZXMgZGlmZiZlYWN1dGU7cmVudGVzIGNvdWxldXJzLg0KICAgICA8L3A+DQogIDwvbGk+DQogIDxsaT5zZWFyY2ggLSBBZmZpY2hlciB1biBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZSBkZSBwcm9kdWl0cyBtdWx0aS1jcml0JmVncmF2ZTtyZXM8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdMb3JzIGRlIGwmIzAzOTt1dGlsaXNhdGlvbiBlbiBtb2RlIHNvbW1haXJlICg8ZW0+ZGVmYXVsdDwvZW0+KSwgY2UgcGFyYW0mZWdyYXZlO3RyZSwgcXVpIGRldnJhaXQgY29ycmVzcG9uZHJlIGF1IG5vbSBkJiMwMzk7dW5lIGNhdCZlYWN1dGU7Z29yaWUgZXhpc3RhbnRlLCBzZXJhIHV0aWxpcyZlYWN1dGU7IHBvdXIgYWZmaWNoZXIgc2V1bGVtZW50IGxlcyBlbnRyJmVhY3V0ZTtlcyBxdWkgc29udCBkYW5zIGNldHRlIGNhdCZlYWN1dGU7Z29yaWUgKHVuZSBsaXN0ZSBzJmVhY3V0ZTtwYXImZWFjdXRlO2UgcGFyIGRlcyB2aXJndWxlcyBwZXV0ICZlY2lyYzt0cmUgZm91cm5pZSknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlmaWVsZCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhY3Rpb24gbCYjMDM5O2FjdGlvbiA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgcGV1dCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgZmlsdHJlciBsZXMgY2F0JmVhY3V0ZTtnb3JpZXMgZW4gc2UgYmFzYW50IHN1ciB1bmUgdmFsZXVyIGQmIzAzOTt1biBjaGFtcCBkZSBjYXQmZWFjdXRlO2dvcmllLiBJbCBuZSBmb25jdGlvbm5lcmEgcGFzIGF2ZWMgbGVzIHBhcmFtJmVncmF2ZTt0cmVzIDxlbT5jYXRlZ29yeTwvZW0+IG91IDxlbT5jYXRlZ29yeV9pZDwvZW0+LiBMYSBzeW50YXhlIGRlIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IHVuZSBsaXN0ZSBkZSBub21zIGRlIGNoYW1wcyBldCBkZSB2YWxldXJzIHMmZWFjdXRlO3BhciZlYWN1dGU7ZXMgcGFyIGRlcyB2aXJndWxlcy4gIFBhciBleGVtcGxlIDogY2F0ZWdvcnlsaXN0PSZxdW90O25vbV9jaGFtcDp2YWxldXIsbm9tX2NoYW1wMjp2YWxldXJfMiZxdW90Oyc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmNhdGVnb3J5bGlzdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgcXVlbCBnYWJhcml0IGRvaXQgJmVjaXJjO3RyZSB1dGlsaXMmZWFjdXRlOyBwb3VyIGwmIzAzOTthZmZpY2hhZ2UuIFNpIGF1Y3VuZSB2YWxldXIgbiYjMDM5O2VzdCBmb3VybmllLCBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGFjdHVlbCBkZSBjZSB0eXBlIGVzdCB1dGlsaXMmZWFjdXRlOy4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5jYXRlZ29yeWxpc3Q8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBpbmRpcXVlIHF1ZWwgZ2FiYXJpdCBkb2l0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgcG91ciBsJiMwMzk7YWZmaWNoYWdlIGR1IGQmZWFjdXRlO3RhaWwgZCYjMDM5O3VuZSBjYXQmZWFjdXRlO2dvcmllLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIHV0aWxpc2UgdW4gZ2FiYXJpdCBkZSBsaXN0ZSBkZSBjYXQmZWFjdXRlO2dvcmllcy4uLiBTaSBhdWN1bmUgdmFsZXVyIG4mIzAzOTtlc3Qgc3AmZWFjdXRlO2NpZmkmZWFjdXRlO2UsIGMmIzAzOTtlc3QgbGUgZ2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBkZSBjZSB0eXBlIHF1aSBlc3QgdXRpbGlzJmVhY3V0ZTsuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbCYjMDM5O2lkIG91IGwmIzAzOTthbGlhcyBkZSBsYSBwYWdlIHF1aSBkb2l0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTtlIHBvdXIgYWZmaWNoZXIgbGUgZCZlYWN1dGU7dGFpbC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdDZSBwYXJhbSZlZ3JhdmU7dHJlIHNwJmVhY3V0ZTtjaWZpZSBxdWVsIGdhYmFyaXQgZGV2cmFpdCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgbCYjMDM5O2FmZmljaGFnZSBlbiBtb2RlIGQmZWFjdXRlO3RhaWxzLiBTaSBhdWN1bmUgdmFsZXVyIG4mIzAzOTtlc3QgZm91cm5pZSwgbGUgZ2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBhY3R1ZWwgZGUgY2UgdHlwZSBlc3QgdXRpbGlzJmVhY3V0ZTsuJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIHBhciBkJmVhY3V0ZTtmYXV0IChzdW1tYXJ5KSwgY2UgcGFyYW0mZWdyYXZlO3RyZSB2b3VzIHBlcm1ldCBkJiMwMzk7ZXhjbHVyZSBsZXMgcHJvZHVpdHMgZGUgY2VydGFpbmVzIGNhdCZlYWN1dGU7Z29yaWVzIGR1IHImZWFjdXRlO3N1bHRhdC4gVm91cyBwb3V2ZXogdXRpbGlzZXIgdW5lIGxpc3RlIGRlIG5vbXMgZGUgY2F0JmVhY3V0ZTtnb3JpZXMgcyZlYWN1dGU7cGFyJmVhY3V0ZTtzIHBhciBkZXMgdmlyZ3VsZXMuIENlIHBhcmFtJmVncmF2ZTt0cmUgcGV1dCBmb25jdGlvbm5lciBlbiBjb25qb25jdGlvbiBhdmVjIGxlIHBhcmFtJmVncmF2ZTt0cmUgPGVtPmNhdGVnb3J5PC9lbT4gcG91ciBhZmZpY2hlciB1bmUgbGlzdGUgZGUgcHJvZHVpdHMgcXVpIHNvbnQgZGFucyB1bmUgY2F0JmVhY3V0ZTtnb3JpZSBtYWlzIHBhcyBkYW5zIGQmIzAzOTthdXRyZXMuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiA8ZW0+ZmllbGRsaXN0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IG9ibGlnYXRvaXJlIHBvdXIgcHImZWFjdXRlO2Npc2VyIGxlIG5vbSBkdSBjaGFtcCBwcm9kdWl0ICZhZ3JhdmU7IHV0aWxpc2VyIHBvdXIgY3ImZWFjdXRlO2VyIGxhIGxpc3RlIGQmZWFjdXRlO3JvdWxhbnRlLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciBsYSB2YWxldXIgZCYjMDM5O3VuIGNoYW1wIHBvdXIgbGltaXRlciBsZXMgciZlYWN1dGU7c3VsdGF0cyBhZmZpY2gmZWFjdXRlO3MuIFZhbGV1cnMgc3AmZWFjdXRlO2NpYWxlcyBwb3NzaWJsZXMgOiAmcXVvdDs6Om51bGw6OiZxdW90OyAtICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBpbmRpcXVlIHF1ZSBzZXVscyBsZXMgcHJvZHVpdHMgYXBwYXJ0ZW5hbnQgJmFncmF2ZTsgY2V0ICZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSBkb2l2ZW50ICZlY2lyYzt0cmUgYWZmaWNoJmVhY3V0ZTtzLiAgRGVzIGpva2VycyBwZXV2ZW50ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTtzIHBvdXIgJmVhY3V0ZTt0ZW5kcmUgbCYjMDM5O2FmZmljaGFnZSBhdXggcGFyZW50IG91IGVuZmFudHMgZGUgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudCBkZSBoaSZlYWN1dGU7cmFyY2hpZSBpbmRpcXUmZWFjdXRlOy4gIFBhciBleGVtcGxlIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7cG90aXJvbnMqJiMwMzk7fSBhZmZpY2hlIHVuIHNvbW1haXJlIGRlIHRvdXMgbGVzIHBvdGlyb25zLCBldCBkZXMgcHJvZHVpdHMgYXBwYXJ0ZW5hbnQgYXV4IGRlc2NlbmRhbnRzIGRlIGwmIzAzOTsmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgJiMwMzk7cG90aXJvbnMmIzAzOTsuICBEZSBtJmVjaXJjO21lLCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oypwb3Rpcm9ucyYjMDM5O30gYWZmaWNoZSB1biBzb21tYWlyZSBkZSB0b3VzIGxlcyBwb3Rpcm9ucywgZXQgZGVzIHByb2R1aXRzIGFwcGFydGVuYW50IGF1eCBwYXJlbnRzIGRlIGwmIzAzOTsmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgJiMwMzk7cG90aXJvbnMmIzAzOTsnOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdDZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgbGUgZ2FiYXJpdCAmYWdyYXZlOyB1dGlsaXNlciBsb3JzIGRlIGwmIzAzOTthZmZpY2hhZ2UgZGUgbGEgaGkmZWFjdXRlO3JhcmNoaWUuIExlIGdhYmFyaXQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgcGFyIGQmZWFjdXRlO2ZhdXQgZXN0IHV0aWxpcyZlYWN1dGU7IHNpIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IGFic2VudCBvdSB2aWRlLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5zZWFyY2g8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBzcCZlYWN1dGU7Y2lmaWUgcXVlIGxhIHBhZ2UgZGUgciZlYWN1dGU7c3VsdGF0cyBhZmZpY2gmZWFjdXRlO2UgZG9pdCAmZWNpcmM7dHJlIGFmZmljaCZlYWN1dGU7ZSAmcXVvdDtlbiBsaWduZSZxdW90OyBvdSBub24uJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBzcCZlYWN1dGU7Y2lmaWUgY29tYmllbiBkJiMwMzk7YXJ0aWNsZXMgZG9pdmVudCAmZWNpcmM7dHJlIGxpc3QmZWFjdXRlO3Mgc3VyIGNoYXF1ZSBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5oaWVyYXJjaHk8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBpbmRpcXVlIHF1ZWwgZXN0ICBsJiMwMzk7SUQgZHUgcHJlbWllciAmZWFjdXRlO2wmZWFjdXRlO21lbnQgZGUgbGEgaGkmZWFjdXRlO3JhcmNoaWUgJmFncmF2ZTsgYWZmaWNoZXInOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXRpbGlzJmVhY3V0ZTsgc2V1bGVtZW50IGF2ZWMgbCYjMDM5O2FjdGlvbiBkJmVhY3V0ZTt0YWlsLCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGluZGlxdWUgcXVlbHMgcHJvZHVpdHMgdXRpbGlzZXIgcG91ciBsJiMwMzk7YWZmaWNoYWdlLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmRlZmF1bHQ8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgc3AmZWFjdXRlO2NpZmllciB1bmUgbGlzdGUgZGVzIHByb2R1aXRzICZhZ3JhdmU7IGFmZmljaGVyIHZpYSBsZXVycyBJRHMgKCZlYWN1dGU7bCZlYWN1dGU7bWVudHMgcyZlYWN1dGU7cGFyJmVhY3V0ZTtzIHBhciBkZXMgdmlyZ3VsZXMpLg0KQXVjdW5lIHBhZ2luYXRpb24gb3UgdHJpIG4mIzAzOTtlc3QgciZlYWN1dGU7YWxpcyZlYWN1dGU7IGVuIHNlIGJhc2FudCBzdXIgY2VzIHZhbGV1cnMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsZXMgYWN0aW9ucyA8ZW0+c2VhcmNoPC9lbT4gZXQgPGVtPmNhdGVnb3J5bGlzdDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHNwJmVhY3V0ZTtjaWZpZSBsJiMwMzk7SUQgb3UgbCYjMDM5O2FsaWFzIGRlIHBhZ2UgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBhZmZpY2hlciBsYSBsaXN0ZSBkZXMgciZlYWN1dGU7c3VsdGF0cy4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5zZWFyY2g8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXV0IGNvbnRlbmlyIHVuZSBsaXN0ZSBzJmVhY3V0ZTtwYXImZWFjdXRlO2UgcGFyIGRlcyB2aXJndWxlcyBkZSBub21zIGRlIGNoYW1wcyAmYWdyYXZlOyBpbmNsdXJlIGRhbnMgbGEgcmVjaGVyY2hlLic7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5zZWFyY2g8L2VtPiwgY2UgcGFyYW0mZWdyYXZlO3RyZSBwZXJtZXQgZGUgZCZlYWN1dGU7ZmluaXIgbGUgZ2FiYXJpdCBkdSBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZS4nOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ1V0aWxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGxlcyBhY3Rpb25zIDxlbT5maWVsZGxpc3Q8L2VtPiBldCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4sIHNpIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IHVuIGVudGllciBkaWZmJmVhY3V0ZTtyZW50IGRlIDAsIHRvdXRlcyBsZXMgY2F0JmVhY3V0ZTtnb3JpZXMgKG0mZWNpcmM7bWUgY2VsbGVzIHNhbnMgcHJvZHVpdHMpIHNlcm9udCBhZmZpY2gmZWFjdXRlO2VzLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcCZlYWN1dGU7Y2lmaWUgbCYjMDM5O29yZHJlIGRlcyBjaGFtcHMgdHJpJmVhY3V0ZTtzIGVuIG1vZGUgc29tbWFpcmUuIExlcyB2YWxldXJzIHBvc3NpYmxlcyBzb250Og0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gT3JkcmUgYXNjZW5kYW50PC9saT4NCiAgPGxpPmRlc2MgLS0gT3JkZXIgZGVzY2VuZGFudDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsZXMgYWN0aW9ucyA8ZW0+c3VtbWFyeTwvZW0+LCA8ZW0+Y2F0ZWdvcnlsaXN0PC9lbT4gZXQgPGVtPnNlYXJjaDwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIGQmZWFjdXRlO3Rlcm1pbmUgbGUgdHJpIGRlcyBlbnRyJmVhY3V0ZTtlcy4gTGVzIHZhbGV1cnMgcG9zc2libGVzIGRlIHRyaSBzb250IDoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+IC0tIG5vbSBkZSBwcm9kdWl0PC9saT4NCiAgPGxpPmlkIC0tIElEPC9saT4NCiAgPGxpPndlaWdodCAtLSBQb2lkcyBkdSBwcm9kdWl0PC9saT4NCiAgPGxpPnByaWNlIC0tIFByaXggZGUgYmFzZSBkdSBwcm9kdWl0PC9saT4NCiAgPGxpPnN0YXR1cyAtLSBTdGF0dXQgOiA8ZW0+ZHJhZnQ8L2VtPiAoJmVhY3V0ZTtiYXVjaGUpIG91IDxlbT5wdWJsaXNoZWQ8L2VtPiAocHVibGkmZWFjdXRlOyk8L2xpPg0KICA8bGk+cmFuZG9tIC0tIEFmZmljaGUgdW5lIGxpc3RlIGFsJmVhY3V0ZTthdG9pcmUgJmFncmF2ZTsgY2hhcXVlIGFmZmljaGFnZTwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIERhdGUgZGUgY3ImZWFjdXRlO2F0aW9uIGRlIGwmIzAzOTsmZWFjdXRlO2wmZWFjdXRlO21lbnQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gRGF0ZSBkZSBtb2RpZmljYXRpb24gZGUgbCYjMDM5OyZlYWN1dGU7bCZlYWN1dGU7bWVudDwvbGk+DQogIDxsaT5mOmZpZWxkbmFtZSAtLSBUcmkgc2Vsb24gbGVzIHZhbGV1cnMgZGVzIGNoYW1wcyBwZXJzb25uYWxpcyZlYWN1dGU7cy4gRXhlbXBsZSA6IDxlbT5mOmNvdWxldXI8L2VtPiBvJnVncmF2ZTsgJnF1b3Q7Y291bGV1ciZxdW90OyBlc3QgdW4gY2hhbXAgcGVyc29ubmFsaXMmZWFjdXRlOzwvbGk+DQo8L3VsPg0KPHA+TGEgdnVlIGRlIGxpc3RlIGRlIGNhdCZlYWN1dGU7Z29yaWVzIHBldXQgcHJlbmRyZSBlbiBjb21wdGUgZCYjMDM5O2F1dHJlcyBvcHRpb25zIGRlIHRyaSA6DQo8dWw+DQogIDxsaT5pZCAtLSBJRCBkZSBjYXQmZWFjdXRlO2dvcmllPC9saT4NCiAgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtLSBOb20gZGUgY2F0JmVhY3V0ZTtnb3JpZTwvbGk+DQo8L3VsPjwvcD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdVdGlsaXMmZWFjdXRlOyBzZXVsZW1lbnQgYXZlYyBsJiMwMzk7YWN0aW9uIDxlbT5kZWZhdWx0PC9lbT4sIGNlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IHV0aWxpcyZlYWN1dGU7IHBvdXIgY29udmVydGlyIGRlcyB2YWxldXJzIGQmIzAzOTthdXRyZXMgdHlwZXMgcG91ciBsZSB0cmkuIExlcyB2YWxldXJzIHZhbGlkZXMgc29udCA6IFNUUklORywgU0lHTkVEIGV0IFVOU0lHTkVELiBTaSBub24gcHImZWFjdXRlO2NpcyZlYWN1dGU7LCBsZSB0eXBlIFNUUklORyBlc3QgdXRpbGlzJmVhY3V0ZTsgcGFyIGQmZWFjdXRlO2ZhdXQuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnlwYWdlJ10gPSAnVXRpbGxpcyZlYWN1dGU7IHNldWxlbWVudCBhdmVjIGwmIzAzOTthY3Rpb24gPGVtPmhpZXJhcmNoeTwvZW0+LCBjZSBwYXJhbSZlZ3JhdmU7dHJlIHBlcm1ldCBkZSBwciZlYWN1dGU7Y2lzZXIgbCYjMDM5O0lEIG91IEFsaWFzIGRlIHBhZ2UgJmFncmF2ZTsgdXRpbGlzZXIgcG91ciBsZXMgbGllbnMgdmVycyBsYSBsaXN0ZSBkZXMgcHJvZHVpdHMgZCYjMDM5O3VuICZlYWN1dGU7bCZlYWN1dGU7bWVudCAgZGUgaGkmZWFjdXRlO3JhcmNoaWUuJzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ0NlIHBhcmFtJmVncmF2ZTt0cmUgc3AmZWFjdXRlO2NpZmllIHF1ZWwgZ2FiYXJpdCBkb2l0ICZlY2lyYzt0cmUgdXRpbGlzJmVhY3V0ZTsgZW4gYWZmaWNoYWdlIG1vZGUgc29tbWFpcmUuIFNpIGF1Y3VuZSB2YWxldXIgbiYjMDM5O2VzdCBmb3VybmllLCBsZSBnYWJhcml0IHBhciBkJmVhY3V0ZTtmYXV0IGFjdHVlbCBkZSBjZSB0eXBlIGVzdCB1dGlsaXMmZWFjdXRlOy4nOwokbGFuZ1sncGFyZW50J10gPSAnUGFyZW50ICc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0xlIG1vZHVsZSBQcm9kdWl0cyBhICZlYWN1dGU7dCZlYWN1dGU7IGluc3RhbGwmZWFjdXRlOyBhdmVjIHN1Y2MmZWdyYXZlO3MnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0xlIG1vZHVsZSBQcm9kdWl0cyBhICZlYWN1dGU7dCZlYWN1dGU7IHN1cHByaW0mZWFjdXRlOywgYWluc2kgcXVlIHRvdXRlcyBsZXMgZG9ubiZlYWN1dGU7ZXMgYXNzb2NpJmVhY3V0ZTtlcy4nOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQciZlYWN1dGU7ZiZlYWN1dGU7cmVuY2VzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1N1cHByaW1lciBjZSBtb2R1bGUgdmEgYXVzc2kgc3VwcHJpbWVyIHRvdXRlcyBsZXMgZG9ubiZlYWN1dGU7ZXMgYXNzb2NpJmVhY3V0ZTtlcywgJmVjaXJjO3Rlcy12b3VzIHMmdWNpcmM7ciBkZSB2b3Vsb2lyIGNvbnRpbnVlcj8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcml4JzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdBanVzdGVtZW50IGRlIHByaXgnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICcmYW1wO2x0Oyc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVpdCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ05vbSBkdSBwcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnR2VzdGlvbm5haXJlIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgRCZlYWN1dGU7dGFpbHMgZHUgcHJvZHVpdCc7CiRsYW5nWydwcm9kdWN0X2VkaXRpbmdfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkJiMwMzk7JmVhY3V0ZTtkaXRpb24gZGUgcHJvZHVpdCc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkZXMgbGlzdGVzIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSBkZSBwcm9kdWl0cyc7CiRsYW5nWydwcm9kdWN0X2luZm8nXSA9ICdJbmZvcm1hdGlvbiBwcm9kdWl0JzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ0dlc3Rpb25uYWlyZSBkZSBwcm9kdWl0cyc7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzaW9uJzsKJGxhbmdbJ3Byb21wdCddID0gJ0xpYmVsbCZlYWN1dGU7JzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnQWpvdXRlci9Nb2RpZmllciBsZXMgcGFyYW0mZWdyYXZlO3RyZXMgZGVzIGF0dHJpYnV0cyc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdFeHRlbnNpb25zIGRlIGZpY2hpZXJzIGF1dG9yaXMmZWFjdXRlO2VzIChwb3VyIGxlcyBjaGFtcHMgZGUgdHlwZSBmaWNoaWVyKSAnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ0V4dGVuc2lvbnMgZGUgZmljaGllcnMgaW1hZ2UgYXV0b3JpcyZlYWN1dGU7ZXMgKHBvdXIgbGVzIGNoYW1wcyBkZSB0eXBlIGltYWdlKSAnOwokbGFuZ1sncHJvbXB0X2F0dHJpYnRlbXBsYXRlJ10gPSAnR2FiYXJpdCBkJiMwMzk7YWZmaWNoYWdlIGRlcyB2YWxldXJzIGQmIzAzOTthdHRyaWJ1dHMgZGUgcHJvZHVpdHMgZGFucyBsYSBsaXN0ZSBkJmVhY3V0ZTtyb3VsYW50ZSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0NyJmVhY3V0ZTtlciBhdXRvbWF0aXF1ZW1lbnQgbGVzIG1pbmlhdHVyZXMgZGVzIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnVGFpbGxlIG1heGltdW0gKGMmb2NpcmM7dCZlYWN1dGU7IGxlIHBsdXMgbG9uZykgZGUgbGEgbWluaWF0dXJlLic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdDciZlYWN1dGU7ZXIgYXV0b21hdGlxdWVtZW50IHVuZSBwciZlYWN1dGU7dmlzdWFsaXNhdGlvbiBkZSBsJiMwMzk7aW1hZ2UnOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdUYWlsbGUgbWF4aW11bSAoYyZvY2lyYzt0JmVhY3V0ZTsgbGUgcGx1cyBsb25nKSBkZSBsYSBwciZlYWN1dGU7dmlzdWFsaXNhdGlvbiBkZSBsJiMwMzk7aW1hZ2UuJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnUGxhY2VyIGF1dG9tYXRpcXVlbWVudCB1biBmaWxpZ3JhbmUgZGFucyBsZXMgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnQWN0aXZlciBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIHRvdXMgbGVzIG5vdXZlYXV4IHByb2R1aXRzJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdOb21icmUgZGUgbGlnbmVzIGltcG9ydCZlYWN1dGU7ZXMgJmFncmF2ZTsgY2hhcXVlIGl0JmVhY3V0ZTtyYXRpb24nOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnTW9kdWxlIFBhbmllciAoQ2FydCknOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1BhcmFtJmVncmF2ZTt0cmUgZHUgbW9kdWxlIHBhbmllcic7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0NyJmVhY3V0ZTtlciBkZXMgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0NyJmVhY3V0ZTtlciBsZXMgY2hhbXBzIGRlcyBwcm9kdWl0cyA/JzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVoaWVyYXJjaHknXSA9ICdDciZlYWN1dGU7ZXIgdW5lIGhpJmVhY3V0ZTtyYXJjaGllIGRlIHByb2R1aXRzJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnRW52b3llciB1biBmaWNoaWVyIENTVic7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnQ29kZSBtb24mZWFjdXRlO3RhaXJlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ01vbm5haWUnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnU3RhdHV0IHBhciBkJmVhY3V0ZTtmYXV0IGRlcyBub3V2ZWF1eCBwcm9kdWl0cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnVG91cyBsZXMgcHJvZHVpdHMgc29udCB0YXgmZWFjdXRlO3MgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0VmZmFjZXIgbGVzIGZpY2hpZXJzIGF0dGFjaCZlYWN1dGU7cyBhdSBwcm9kdWl0IGxvcnMgZGUgc2Egc3VwcHJlc3Npb24gPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnUyZlYWN1dGU7cGFyYXRldXIgZGUgY2hhbXBzJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnUGFnZSBkJmVhY3V0ZTt0YWlsIHBhciBkJmVhY3V0ZTtmYXV0JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRCZlYWN1dGU7dGFpbHMgcG91ciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdNb2RlIGRlIGdlc3Rpb24gZGVzIHByb2R1aXRzIGVuIGRvdWJsb24gPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdGYXV4JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdHJmVhY3V0ZTtyZXIgbGVzIGltYWdlcyA/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdDaGVtaW4gZGVzIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdVbml0JmVhY3V0ZTtzIGRlIGxvbmd1ZXVyJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ1F1ZWxsZSBhY3Rpb24gZG9pdCAmZWNpcmM7dHJlIHImZWFjdXRlO2FsaXMmZWFjdXRlO2UgbG9yc3F1JiMwMzk7dW4gcHJvZHVpdCBuZSBwZXV0ICZlY2lyYzt0cmUgYWZmaWNoJmVhY3V0ZTsgJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHJmVhY3V0ZTtuJmVhY3V0ZTtyZXIgdW5lIGVycmV1ciA0MDQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0cmZWFjdXRlO24mZWFjdXRlO3JlciB1bmUgcmVkaXJlY3Rpb24gMzAxJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ0FmZmljaGVyIHVuIG1lc3NhZ2UgZCYjMDM5O2VycmV1cic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnTWVzc2FnZSBkJiMwMzk7ZXJyZXVyIGxvcnNxdSYjMDM5O3VuIHByb2R1aXQgbiYjMDM5O2VzdCBwYXMgdHJvdXYmZWFjdXRlOyAnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdlIHBvdXIgZmFpcmUgbGVzIHJlZGlyZWN0aW9ucyBwZXJtYW5lbnRlcyAnOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnUGFnZSBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGxhIHZ1ZSBkZSBoaSZlYWN1dGU7cmFyY2hpZSAnOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnVXRpbGlzZXIgbGVzIFVybHMgciZlYWN1dGU7JmVhY3V0ZTtjcml0ZXMgcG91ciBsZXMgdnVlcyBkZSBoaSZlYWN1dGU7cmFyY2hpZSAnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1BhZ2UgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciB2b2lyIGxlIGQmZWFjdXRlO3RhaWwgZGVzIHByb2R1aXRzICc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdWl0cyBjb3JyZXNwb25kYW50ICZhZ3JhdmU7ICVzJzsKJGxhbmdbJ3Byb21wdF9za3VfcmVxdWlyZWQnXSA9ICdMZSBTS1UgKFVHUyAtIFVuaXQmZWFjdXRlOyBkZSBnZXN0aW9uIGRlcyBzdG9ja3MpIGVzdCByZXF1aXMgcG91ciB0b3VzIGxlcyBwcm9kdWl0cyBldCBhdHRyaWJ1dHMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdOb21icmUgZGUgcHJvZHVpdHMgcGFyIGQmZWFjdXRlO2ZhdXQgZXQgcGFyIHBhZ2UgZW4gbW9kZSBTb21tYWlyZSAnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdPcmRyZSBkZSB0cmkgcGFyIGQmZWFjdXRlO2ZhdXQgZW4gbW9kZSBzb21tYWlyZSAnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnQ2hhbXAgZGUgdHJpIHBhciBkJmVhY3V0ZTtmYXV0IGVuIG1vZGUgc29tbWFpcmUgJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1NvdXJjZSBkdSBnYWJhcml0JzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnVnJhaSc7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAnUHImZWFjdXRlO2ZpeGUgJmFncmF2ZTsgdXRpbGlzZXIgc3VyIHRvdXRlcyBsZXMgVVJMIGNpYmwmZWFjdXRlO2VzIGRlIGNlIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1V0aWxpc2VyIGNldHRlIHBhZ2UgcG91ciBsZXMgciZlYWN1dGU7c3VsdGF0cyBkZSByZWNoZXJjaGU8ZW0+KHJlbXBsYWNlIGxlIHBhcmFtJmVncmF2ZTt0cmUgJiMwMzk7cGFnZSBkZXMgciZlYWN1dGU7c3VsdGF0cyBkZSBsYSByZWNoZXJjaGUmIzAzOTsgZGFucyBsZSBtb2R1bGUgc2VhcmNoKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVdGlsaXNlciBsZSBjaGVtaW4gZGUgaGkmZWFjdXRlO3JhcmNoaWUgZGFucyBsZXMgdXJscyBkZXMgZCZlYWN1dGU7dGFpbHMgZGUgcHJvZHVpdCc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdVbml0JmVhY3V0ZTtzIGRlIHBvaWRzJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0VzdC1jZSB1biBjaGFtcCBwdWJsaWMgPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaSZlYWN1dGU7JzsKJGxhbmdbJ3F1YW50aXR5X29uX2hhbmQnXSA9ICdRdWFudGl0JmVhY3V0ZTsgZW4gc3RvY2snOwokbGFuZ1sncmFuZG9tJ10gPSAnQXUgaGFzYXJkJzsKJGxhbmdbJ3Jlb3JkZXJfaGllcmFyY2h5J10gPSAnUiZlYWN1dGU7b3Jkb25uZXIgbGEgaGkmZWFjdXRlO3JhcmNoaWUnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSJmVhY3V0ZTtpbml0aWFsaXNlciBhdXggdmFsZXVycyBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXRvdXInOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JldG91ciBlbiBoYXV0IGRlIHBhZ2UnOwokbGFuZ1sncm9vdCddID0gJ1JhY2luZSc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdEZXNjcmlwdGlvbic7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ0xhIHJlcXUmZWNpcmM7dGUgZGV2cmEgZWxsZSBjb3JyZXNwb25kZW50ICZhZ3JhdmU7IGxhIHRvdGFsaXQmZWFjdXRlOywgb3UgYXUgbW9pbnMgJmFncmF2ZTsgbCYjMDM5O3VuIGRlcyB0ZXN0cyBjaS1kZXNzb3VzPyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ05vbSBkZSBwcm9kdWl0JzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ0dhbW1lIGRlIHByaXgnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0Fqb3V0ZXIvTW9kaWZpZXIgbGUgZ2FiYXJpdCBkZSBmb3JtdWxhaXJlIGRlIHJlY2hlcmNoZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdHYWJhcml0IGRlIHJlY2hlcmNoZSc7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVG91dCBzJmVhY3V0ZTtsZWN0aW9ubmVyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdDaG9pc2lyLi4uJzsKJGxhbmdbJ3NldGRyYWZ0J10gPSAnRCZlYWN1dGU7ZmluaXIgJmFncmF2ZTsgQnJvdWlsbG9uJzsKJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gJ0QmZWFjdXRlO2ZpbmlyICZhZ3JhdmU7IFB1YmxpJmVhY3V0ZTsnOwokbGFuZ1snc2t1J10gPSAnU0tVIChpZGVudGlmaWFudCBkZSBxdWFudGl0JmVhY3V0ZTsgZW4gc3RvY2spJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdUcmkgcGFyJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdPcmRyZSBkZSB0cmknOwokbGFuZ1snc291cmNlJ10gPSAnU291cmNlICc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXQnOwokbGFuZ1snc3VibWl0J10gPSAnU291bWV0dHJlJzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ0Fib25uZW1lbnQnOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ0V4cGlyJmVhY3V0ZTsnOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdFeHBpciZlYWN1dGU7cyc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01lbnN1ZWwnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0ZyJmVhY3V0ZTtxdWVuY2UgZGUgbGl2cmFpc29uJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnTGl2ciZlYWN1dGU7JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdGciZlYWN1dGU7cXVlbmNlIGRlIHBhaWVtZW50JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnUGF5JmVhY3V0ZTsnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1RyaW1lc3RyaWVsJzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ1NlbWktQW5udWVsJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdBbm51ZWwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ0dhYmFyaXRzIGRlIHNvbW1haXJlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWpvdXQgb3UgJmVhY3V0ZTtkaXRpb24gZCYjMDM5O3VuIGdhYmFyaXQgZGUgc29tbWFpcmUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RheGFibGUgJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0ICc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1pvbmUgZGUgdGV4dGUnOwokbGFuZ1sndGV4dGJveCddID0gJ0NoYW1wIHRleHRlJzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZGUgaGkmZWFjdXRlO3JhcmNoaWUgcGFyIGQmZWFjdXRlO2ZhdXQnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciB1bmUgbm91dmVsbGUgbGlzdGUgZGUgY2F0JmVhY3V0ZTtnb3JpZXMnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciBsJiMwMzk7YWZmaWNoYWdlIGR1IGQmZWFjdXRlO3RhaWwnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0dhYmFyaXQgcGFyIGQmZWFjdXRlO2ZhdXQgZGVzIE5vdXZlbGxlcyByZWNoZXJjaGVzJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCBwb3VyIGwmIzAzOTthZmZpY2hhZ2UgZHUgc29tbWFpcmUnOwokbGFuZ1sndHlwZSddID0gJ1R5cGUgJzsKJGxhbmdbJ3VwJ10gPSAnUmVtb250ZXInOwokbGFuZ1sndXBkYXRlJ10gPSAnTWlzZSAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0Nob2lzaXNzZXogbGUgZmljaGllciAmYWdyYXZlOyBlbnZveWVyJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ0FsaWFzIFVSTCAnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZGUnOwokbGFuZ1sndmFsdWUnXSA9ICdWYWxldXInOwokbGFuZ1sndmFsdWVzJ10gPSAnVmFsZXVycyc7CiRsYW5nWyd2aWV3J10gPSAnVnVlJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgbGVzIGNoYW1wcyBwZXJzb25uYWxpcyZlYWN1dGU7cyAmYWdyYXZlOyBhZmZpY2hlciBkYW5zIGxhIGxpc3RlJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ0VtcGxhY2VtZW50IGR1IGZpbGlncmFuZSc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdQb2lkcyc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnUHJvZHVpdHMgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO3MnOwokbGFuZ1sneWVzJ10gPSAnT3VpJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjA2NTY4MDU3LjEzMTc2MjgwNTMuMTMxNzYyODA1My4xMzE3NjI4MDUzLjEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEzMTc2MjgwNTMuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnUCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnTCc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0EnOwokbGFuZ1snYWRkJ10gPSAnQWdnaXVuZ2VyZSc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ0FnZ2l1bmdlcmUgdW5hIGNhdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FnZ2l1bmdlcmUgdW4gY2FtcG8nOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ01vZGlmaWNhYmlsZSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnQWdnaXVuZ2VyZSB1biBQcm9kb3R0byc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0FnZ2l1bmdlcmUgdW4gYXR0cmlidXRvJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWEgY2FtcG8gY29uIGNhdGVnb3JpYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWdnaXVuZ2VyZSB1biBJdGVtIGdlcmFyY2hpY28nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FnZ2l1bmdlcmUgdW5hIG9wemlvbmUgYXR0cmlidXRvJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdTb2xvIGwmIzAzOTthZG1pbiBwdSZvZ3JhdmU7IHZlcmUgcXVlc3RvIGF0dHJpYnV0bz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdBbHRvIFNpbmlzdHJvJzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnQWx0byBDZW50cmF0byc7CiRsYW5nWydhbGlnbl91ciddID0gJ0FsdG8gRGVzdHJvJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWVkaW8gU2luaXN0cm8nOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdDZW50cmF0byc7CiRsYW5nWydhbGlnbl9tciddID0gJ01lZGlvIERlc3Rybyc7CiRsYW5nWydhbGlnbl9sbCddID0gJ0Jhc3NvIFNpbmlzdHJvJzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAnQmFzc28gQ2VudHJhdG8nOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYXNzbyBEZXN0cm8nOwokbGFuZ1snYWxsJ10gPSAnVHV0dGknOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1R1dHRlIGxlIGNhdGVnb3JpZSc7CiRsYW5nWydhbnknXSA9ICdRdWFsc2lhc2knOwokbGFuZ1snYXJleW91c3VyZSddID0gJ1NpZXRlIHNpY3VyaT8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnU2lldGUgc2ljdXJvIGRpIHZvbGVyIHByb3ByaW8gY2FuY2VsbGFyZSBxdWVzdG8gcHJvZG90dG8gZSB0dXR0ZSBsZSBpbmZvcm1hemlvbmkgY29ycmVsYXRlPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnTm9tZSBhdHRyaWJ1dG8nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ01vZGVsbGkgUmVwb3J0IGdlcmFyY2hpY2knOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIFJlcG9ydCBnZXJhcmNoaWNvJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdVbmEgY2F0ZWdvcmlhIGNvbiBxdWVsIG5vbWUgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnTW9kZWxsaSBMaXN0YSBjYXRlZ29yaWUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FnZ2l1bmdlcmUvTW9kaWZpY2EgdW4gTW9kZWxsbyBMaXN0YUNhdGVnb3JpZSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnRpbWV0cmknOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCAnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ1R1dHRpIGwmIzAzOTtpbnNpZW1lIGRpIGF0dHJpYnV0aSBwZXIgcXVlc3RvIHByb2RvdHRvIHNhciZhZ3JhdmU7IHJpbW9zc28uIFNpZXRlIHNpY3VybyBkaSB2b2xlciBjb250aW51YXJlPyc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1NpZXRlIHNpY3VybyBkaSB2b2xlciBwcm9wcmlvIGNhbmNlbGxhcmUgcXVlc3RvIG5vZG8/IFR1dHRpIGkgcHJvZG90dGkgY2hlIHN0YW5ubyB1c2FuZG8gcXVlc3RvIG5vZG8gbm9uIHNhcmFubm8gcGkmdWdyYXZlOyBnZXJhcmNoaWNpJzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnU2lldGUgdmVyYW1lbnRlIHNpY3VyaSBkaSB2b2xlciBmYXJlIHF1ZXN0bz9cblxuQ29uZmlndXJhemlvbmkgbm9uIGNvcnJldHRlIG8gdW4gZmlsZSBkaSBjb25maWd1cmF6aW9uZSBub24gdmFsaWRvIHBvdHJlYmJlcm8gY29ycm9tcGVyZSBpbCBzaXN0ZW1hLic7CiRsYW5nWydjb3B5J10gPSAnQ29waWEnOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ0NvcGlhIGwmIzAzOTtpbnNpZW1lIGRlZ2xpIEF0dHJpYnV0aSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29waWEgQ2F0ZWdvcmlhJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0YSBkaSBjcmVhemlvbmUnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1ZhbG9yZSBjb3JyZW50ZSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSAnOwokbGFuZ1snZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIHByZWRlZmluaXRpJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBJbCBjb250ZW51dG8gZGkgcXVlc3RlIGFyZWUgdGVzdG8gc29ubyB1c2F0ZSBwZXIgZGV0ZXJtaW5hcmUgaWwgY29udGVudXRvIHByZWRlZmluaXRvIGRlaSBNb2RlbGxpIHF1YW5kbyBzY2VnbGlldGUgJnF1b3Q7QWdnaXVuZ2VyZSBNb2RlbGxvJnF1b3Q7IG5lbGwmIzAzOTthcHByb3ByaWF0byB0YWIuIE1vZGlmaWNhbmRvIHVuYSBkaSBxdWVzdGUgYXJlZSB0ZXN0byBub24gYXZyYW5ubyBuZXNzdW4gZWZmZXR0byBzdWwgdm9zdHJvIHNpdG8uJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICdDYW5jZWxsYSBhdHRyaWJ1dG8nOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnQ2FuY2VsbGEgdW4gSXRlbSBnZXJhcmNoaWNvJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEaXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXppb25lJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAnRGVzdGluYXppb25lJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXR0YWdsaSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIERldHRhZ2xpbyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIERldHRhZ2xpbyc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaW9uaSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0Rpc2FiaWxpdGF0byc7CiRsYW5nWydkb3duJ10gPSAnTXVvdmkgZ2kmdWdyYXZlOyc7CiRsYW5nWydkcmFmdCddID0gJ0JvenphJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnVGVuZGluYSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnT3B6aW9uaSBUZW5kaW5hIDxlbT4oYXBwbGljYWJpbGUgc29sbyBwZXIgY2FtcGkgZHJvcGRvd24pPC9lbT48YnIvPjxici8+PGVtPih1biB0ZXJtaW5lIHBlciBvZ25pIHJpZ2EpPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0J10gPSAnTW9kaWZpY2EgQXR0cmlidXRvJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ01vZGlmaWNhIHNldHRhZ2dpIEF0dHJpYnV0byc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnTW9kaWZpY2Egc2V0dGFnZ2kgQXR0cmlidXRvIHBlcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdNb2RpZmljYSBBdHRyaWJ1dGknOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ01vZGlmaWNhIENhdGVnb3JpYSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ01vZGlmaWNhIGNhbXBpIGRlbGxhIENhdGVnb3JpYSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnTW9kaWZpY2EgdW4gSXRlbSBnZXJhcmNoaWNvJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdVbiBhdHRyaWJ1dG8gY29uIHF1ZWwgbm9tZSBnaSZhZ3JhdmU7IGVzaXN0ZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRHVwbGljYSBpbCB2YWxvcmUgU0tVIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0lsIHZhbG9yZSBkZWwgY2FtcG8gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIHZ1b3RvJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdQcm9ibGVtYSBuZWwgZm9ybWF0byBGaWxlJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgbm9uIHRyb3ZhdG8nOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtYSBuZWxsJiMwMzk7YXBlcnR1cmEgZGVsIEZpbGUgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1BhcmVudCBpbnZhbGlkbyAodW4gbm9kbyBnZXJhcmNoaWNvIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBpbCBwcm9wcmlvIHBhcmVudCknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnSWwgdmFsb3JlIGRlbCBjYW1wbyBwZXJzb25hbGl6emF0byBub24gJmVncmF2ZTsgdmFsaWRvIChjb250aWVuZSBjYXJhdHRlcmkgbm9uIGFsZmFudW1lcmljaSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ1ZhbHVlIHNwZWNpZmljYXRvIG5vbiB2YWxpZG8nOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnVW4gcGFyYW1ldHJvIHJpY2hpZXN0byAmZWdyYXZlOyBtYW5jYW50ZSBvIG5vbiB2YWxpZG8nOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdVbiBpdGVtIGNvbiBxdWVsIG5vbWUgJmVncmF2ZTsgZ2kmYWdyYXZlOyBpbiB1c28nOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdTaSBwcmVnYSBzaSBzZWxlemlvbmFyZSBpbCB0aXBvIGRpIGNhbXBvJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1R1IGRldmkgYWdnaXVuZ2VyZSB1biBub21lJzsKJGxhbmdbJ2Vycm9yX29uZXN1YnNjcmlwdGlvbmZpZWxkJ10gPSAnU29sbyB1biBjYW1wbyBkaSBzb3R0b3Njcml6aW9uZSAmZWdyYXZlOyBwZXJtZXNzbyc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnUGVybWVzc28gbmVnYXRvJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnTG8gc3BlY2lmaWNhdG8gYWxpYXMgJmVncmF2ZTsgZ2kmYWdyYXZlOyBpbiB1c28nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VuIFByb2RvdHRvIGNvbiBxdWVsIG5vbWUgZ2kmYWdyYXZlOyBlc2lzdGUnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ2lsIHByb2RvdHRvIHJpY2hpZXN0byBub24gcHUmb2dyYXZlOyBlc3NlcmUgdHJvdmF0byc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdJbCB2YWxvcmUgZGkgU0tVICZlZ3JhdmU7IGdpJmFncmF2ZTsgaW4gdXNvIGRhIHVuJiMwMzk7YWx0cm8gcHJvZG90dG8nOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbG9yZSBkZWwgcHJlenpvIGRpIGFkZWd1YW1lbnRvIG5vbiB2YWxpZG8gcGVyIGlsIHRlcm1pbmUgJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1VwbG9hZCBmYWxsaXRvOiAlcyc7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ0RvcG8gNiBNZXNpJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0RvcG8gMSBhbm5vJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0RvcG8gMiBhbm5pJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0NhbXBvIEV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnQ2FtcG8gRXh0cmEgMic7CiRsYW5nWydmaWVsZCddID0gJ0NhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pemlvbmUgQ2FtcG8nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pemlvbmkgQ2FtcG8nOwokbGFuZ1snZmlsZSddID0gJ0ZpbGUgJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmknOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25pIGdlbmVyYWxpJzsKJGxhbmdbJ2dvJ10gPSAnVmFpJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0dlcmFyY2hpYSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdQb3NpemlvbmUgZ2VyYXJjaGlhJzsKJGxhbmdbJ2hpZXJhcmNoeV9zZXR0aW5ncyddID0gJ0NvbmZpZ3VyYXppb25pIGRlbGxhIEdlcmFyY2hpYSc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0ltbWFnaW5lJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhemlvbmUgSW1tYWdpbmknOwokbGFuZ1snaW1wb3J0X2Zyb21fY3N2J10gPSAnUHJvZG90dGkgaW1wb3J0YXRpIGRhIGZpbGUgQ1NWJzsKJGxhbmdbJ2luY2hlcyddID0gJ1BvbGxpY2knOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0luY2x1ZG8gRmlnbGk/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnU29sbyBjYXJhdHRlcmkgYWxmYW51bWVyaWNpLiBObyBzcGF6aSwgdmlyZ29sZXR0ZSwgYXBpY2kgbyBjb21iaW5hemlvbmkgbGV0dGVyZS9udW1lcmknOwokbGFuZ1snaW5mb19hdHRyaWJ0ZW1wbGF0ZSddID0gJ1ZhbG9yaSBwb3NzaWJpbGkgc29ubzogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdHRyaWJ1dGVzX2NvcGllZCddID0gJ0F0dHJpYnV0aSBDb3BpYXRpJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ0NvbmZpZ3VyYXppb25lIGRlaSBXYXRlcm1hcmsgc29ubyBwcmVzZSBkYWwgbW9kdWxvIENHRXh0ZW5zaW9ucyc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdRdWVzdGkgcGFyYW1ldHJpIHNvbm8gZGF0aSBhbCBtb2R1bG8gQ2FycmVsbG8gc2VsZXppb25hdG8gZGFsIGRldHRhZ2xpbyBwcm9kb3R0aSBlIHZpc3VhbGl6emF6aW9uZSBzb21tYXJpbyc7CiRsYW5nWydpbmZvX2NvcHlfYXR0cmlic2V0cyddID0gJ1F1ZXN0YSBhemlvbmUgY29waWVyJmFncmF2ZTsgbCYjMDM5O2luc2llbWUgZGVnbGkgQXR0cmlidXRpIChlc2NsdWRlbmRvIGkgdmFsb3JpIHNrdSkgZGEgdW4gYWx0cm8gcHJvZG90dG8uJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JlbyBhdXRvbWF0aWNhbWVudGUgY2FtcGkgcHJvZG90dGkgc2VuemEgbm9tZT8gPGVtPihTYXJhbm5vIGNyZWF0aSBjb21lIGNhbXBpIHRlc3RvKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FtZW50ZSBjcmVvIGNhdGVnb3JpZSBwcm9kdXR0byBjaGUgY29pbmNpZG9ubyBjb24gcXVlbGxlIGRlbCBmaWxlIENTViwgc2Ugbm9uIGVzaXN0b25vIGFuY29yYSc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0F1dG9tYXRpY2FtZW50ZSBjcmVvIGdlcmFyY2hpZSBwcm9kdXR0byBjaGUgY29pbmNpZG9ubyBjb24gcXVlbGxlIGRlbCBmaWxlIENTViwgc2Ugbm9uIGVzaXN0b25vIGFuY29yYSc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdRdWVzdG8gc2lzdGVtYSBjYXBpc2NlIGlsIHB1bnRvICguKSBjb21lIHNlcGFyYXRvcmUgZGVjaW1hbGUuIGFkIGVzZW1waW86IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZmljYSBpbCBjYXJhdHRlcmUgKG8gY2FyYXR0ZXJpKSBjaGUgc2VwYXJhbm8gY2lhc2N1biBjYW1wbyc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3BlY2lmaWNhIGNvbWUgaWwgc2lzdGVtYSBkb3ZyZWJiZSB0ZW5lcmUgdW4gcHJvZG90dG8gcXVhbmRvIGlsIG5vbWUgc2VtcHJlIGVzaXN0ZSBuZWwgZmlsZSBDU1YnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RhOjwvc3Ryb25nPiBUdXR0aSBpIENhbXBpIHF1YSBkZWZpbml0aSBzb25vIHV0aWxpenphYmlsaSBwZXIgdHV0dGkgaSBwcm9kb3R0aS4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbWEgY29uIHVubyBvIHBpJnVncmF2ZTsgZGVpIGNhbXBpIHBlcnNvbmFsaXp6YXRpLiBMJiMwMzk7YXppb25lIGhhIHRlcm1pbmF0byBjb24gc3VjY2Vzc28sIHR1dHRhdmlhIHZvaSBkb3ZyZXN0ZSBpbnZlc3RpZ2FyZSBlIGNvcnJlZ2dlcmUgcXVlc3RpIHByb2JsZW1pJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnVXBvbiBpbXBvcnQsIGlmIGFuIGltYWdlIGZpbGVuYW1lIGlzIGZvdW5kIGluIGEgZmllbGQgY29sdW1uLCBzaG91bGQgaXQgYmUgbW92ZWQgZnJvbSB0aGUgc291cmNlIGxvY2F0aW9uLCB3YXRlcm1hcmtlZCwgdGh1bWJuYWlsZWQsIGFuZCB0aGUgZmllbGQgdHlwZSBjaGFuZ2VkIHRvICZxdW90O2ltYWdlJnF1b3Q7JzsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICdVc2EgcXVlc3RhIHBhZ2luYSBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGdlcmFyY2hpY2EuICBJbCBwYWdlaWQgbm9uIHNhciZhZ3JhdmU7IHNwZWNpZmljYXRvIG5lbGwmIzAzOTtVUkwuJzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnSWwgcGF0aCAocmVsYXRpdm8gYWxsYSBkaXJlY3RvcnkgZGkgdXBsb2FkcykgZG92ZSBsZSBpbW1hZ2luaSwgcmlmZXJpdGUgYWwgZmlsZSBkaSBpbXBvcnRhemlvbmUsIHBvc3Nvbm8gZXNzZXJlIHRyb3ZhdGUnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnSW5jbHVkZSB0aGUgaGllcmFyY2h5IGl0ZW0gbmFtZSBvbiB0aGUgVVJMJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbG9yaSB2YWxpZGkgc29ubyArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnVGhpcyBvcHRpb24gZGV0ZXJtaW5lcyB0aGUgYmVoYXZpb3VyIG9mIHRoZSB3ZWJzaXRlIGlmIGEgcHJvZHVjdCBkZXRhaWwgdmlldyBpcyBhY2Nlc3NlZCBkaXJlY3RseSBieSBVUkwsIGFuZCB0aGF0IHByb2R1Y3QgZm9yIHdoYXRldmVyIHJlYXNvbiAoZGlzYWJsZWQsIGRlbGV0ZWQsIGV0YykgY2Fubm90IGJlIGFjY2Vzc2VkLic7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnQ2FtcGkgcHViYmxpY2kgc29ubyB1dGlsaXp6YWJpbGkgcGVyIGlsIHB1YmJsaWNvIGRhIHZlZGVyZSc7CiRsYW5nWydsYWJlbCddID0gJ0V0aWNoZXR0YSc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnU2FsdGEnOwokbGFuZ1snbGFiZWxfb3ZlcndyaXRlJ10gPSAnU292cmFzY3Jpdm8nOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnVWx0aW1hIG1vZGlmaWNhJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2Vjb25kYSBpbW1hZ2luZSc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYXNzaW1hIGx1bmdoZXp6YSA8ZW0+KGFwcGxpY2FiaWxlIHNvbG8gc3UgY2FtcGkgdGV4dGJveCk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdEYXRhIGRpIG1vZGlmaWNhJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ1VuIG1vZHVsbyBwZXIgZ2VzdGlyZSB1biBjYXRhbG9nbyBkaSBwcm9kb3R0aSwgbG9ybyBwcmV6emksIGltbWFnaW5pLCBldGMsIGUgcGVybWV0dGUgYWdsaSB1dGVudGkgZGkgY29zdHJ1aXJlIHVuIGNhcnJlbGxvJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ011b3ZpIGdpJnVncmF2ZTsnOwokbGFuZ1snbW92ZV91cCddID0gJ011b3ZpIHN1JzsKJGxhbmdbJ25hbWUnXSA9ICdOb21lJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnTm9uIGF2ZXRlIGkgcGVybWVzc2kgcmljaGllc3RpOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ051b3ZvIG5vbWUgQ2F0ZWdvcmlhJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ05vICc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05lc3N1biBub21lIGluc2VyaXRvJzsKJGxhbmdbJ25vbmUnXSA9ICdOZXNzdW5vJzsKJGxhbmdbJ29mJ10gPSAnZGknOwokbGFuZ1sncGFnZSddID0gJ1BhZ2luYSc7CiRsYW5nWydwYWdlX29mJ10gPSAnUGFnaW5hICVzIGRpICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdMaW1pdGUgcGFnaW5hJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQogIDxsaT5maWVsZGxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBhIHNwZWNpZmllZCBmaWVsZC4NCiAgICAgPHA+DQogLSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJnF1b3Q7Y29sb3ImcXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4NCiAgICAgPC9wPg0KICA8L2xpPg0KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnUXVhbmRvIHVzYXRvIG5lbCBtb2RvIDxlbT5kZWZhdWx0PC9lbT4gc29tbWFyaW8sIHF1ZXN0byBwYXJhbWV0cm8sIGRvdnJlYmJlIGNvcnJpc3BvbmRlcmUgY29sIG5vbWUgZGkgdW5hIGNhdGVnb3JpYSBlc2lzdGVudGUgdXNhdGEgcGVyIHZpc3VhbGl6emFyZSBzb2xvIHF1ZWkgdGVybWluaSBjaGUgc29ubyBpbiBxdWVsbGEgY2F0ZWdvcmlhLiAocHUmb2dyYXZlOyBlc3NlcmUgZm9ybml0YSB1bmEgbGlzdGEgc2VwYXJhdGEgZGEgdmlyZ29sYSknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVdGlsZSBzb2xvIGNvbiBsJiMwMzk7YXppb25lIGNhdGVnb3J5bGlzdCwgcXVlc3RvIHBhcmFtZXRybyBpbmRpY2EgaWwgTW9kZWxsbyBjaGUgZG92cmViYmUgZXNzZXJlIHV0aWxpenphdG8gcGVyIGxhIHZpc3VhbGl6emF6aW9uZS4gU2UgbmVzc3VuIHZhbG9yZSAmZWdyYXZlOyBzcGVjaWZpY2F0byBhbGxvcmEgJmVncmF2ZTsgdXNhdG8gaWwgTW9kZWxsbyBwcmVkZWZpbml0byBjb3JyZW50ZSBkaSBxdWVsIHRpcG8uJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdRdWVzdG8gc3BlY2lmaWNhIGlsIElEIGRpIHBhZ2luYSBvIGFsaWFzIGNoZSBkb3ZyZWJiZSBlc3NlcmUgdXNhdG8gcGVyIHZpc3VhbGl6emFyZSBpbCByZXBvcnQgZGV0dGFnbGlvLic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1F1ZXN0byBwYXJhbWV0cm8gc3BlY2lmaWNhIGlsIE1vZGVsbG8gY2hlIGRvdnJlYmJlIGVzc2VyZSB1c2F0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGRldHRhZ2xpby4gU2UgbmVzc3VuIHZhbG9yZSAmZWdyYXZlOyBzcGVjaWZpY2F0bywgYWxsb3JhIHNhciZhZ3JhdmU7IHVzYXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gZGVsIHRpcG8gY29ycmVudGUuJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXNhdG8gc29sbyBuZWwgPGVtPmZpZWxkbGlzdDwvZW0+IHF1ZXN0byBwYXJhbWV0cm8gJmVncmF2ZTsgcmljaGllc3RvIHBlciBzcGVjaWZpY2FyZSBpbCBub21lIGRpIHVuIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSBwZXIgY3JlYXJlIHVuYSBsaXN0YS4nOwokbGFuZ1sncGFyYW1fZmllbGR2YWwnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBTcGVjaWFsIHZhbHVlcyBmb3IgdGhpcyBmaWVsZCBhcmUgJnF1b3Q7OjpudWxsOjomcXVvdDsgJnF1b3Q7Ojpub3RudWxsOjomcXVvdDsnOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSA8ZW0+ZGVmYXVsdDwvZW0+LCBxdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBjaGUgc29sb2kgdGVybWluaSBuZWxsYSBsb2NhemlvbmUgZ2VyYXJjaGljYSBkb3ZyZWJiZXJvIGVzc2VyZSB2aXN1YWxpenphdGkuIENhcmF0dGVyaSB3aWxkY2FyZCBwb3Nzb25vIGVzc2VyZSB1c2F0aSBjb3MmaWdyYXZlOyBjaGUgdm9pIHBvdGV0ZSBzcGVjaWZpY2FyZSByZWxhemlvbmkgcGFyZW50L2ZpZ2xpLiBQZXIgZXNlbXBpbyB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IGNyZWEgdW4gcmVwb3J0IHNvbW1hcmlvIGRpIHR1dHRpIGkgdHJ1Y2tzLCBpbmNsdXNvIGkgZmlnbGkgbmVsbGEgZ2VyYXJjaGlhLiBTaW1pbG1lbnRlLCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHZpc3VhbGl6emEgdW4gcmVwb3J0IHNvbW1hcmlvIGRpIHR1dHRpIGkgdHJ1Y2tzIGUgdHV0dGkgaSBwcm9kb3R0aSB0ZW51dGkgZGEgb2duaSBwYXJlbnQgbmVsbGEgZ2VyYXJjaGlhLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1F1ZXN0byBwYXJhbWV0cm8gc3BlY2lmaWNhIGlsIE1vZGVsbG8gY2hlIGRvdnJlYmJlIGVzc2VyZSB1c2F0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lIGdlcmFyY2hpYS4gU2UgbmVzc3VuIHZhbG9yZSAmZWdyYXZlOyBzcGVjaWZpY2F0bywgYWxsb3JhIHNhciZhZ3JhdmU7IHVzYXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gZGkgcXVlbCB0aXBvLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSA8ZW0+ZGVmYXVsdDwvZW0+LCBxdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBxdWFudGkgdGVybWluaSBkb3ZyZWJiZXJvIGVzc2VyZSB2aXN1YWxpenphdGkgc3UgY2lhc2N1bmEgcGFnaW5hLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVdGlsZSBzb2xvIGNvbiBsJiMwMzk7YXppb25lIDxlbT5nZXJhcmNoaWE8L2VtPiwgcXVlc3RvIHBhcmFtZXRybyBzcGVjaWZpY2EgbCYjMDM5O2lkIGRlbGxhIGdlcmFyY2hpYSBkZWxsYSBsb2NhemlvbmUgZGkgcGFydGVuemEgZGVsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXRpbGUgc29sbyBjb24gbCYjMDM5O2F6aW9uZSBkZXR0YWdsaW8sIHF1ZXN0byBwYXJhbWV0cm8gaW5kaWNhIGlsIHByb2RvdHRvIGNoZSBkb3ZyZWJiZSBlc3NlcmUgdXRpbGl6emF0byBwZXIgbGEgdmlzdWFsaXp6YXppb25lLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBwcm9kdWN0cykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHRoZSBzdW1tYXJ5IG9yIHNlYXJjaCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIHByb2R1Y3QgaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBwcm9kdWN0IHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPmY6ZmllbGRuYW1lIC0tIEFsbG93cyBzb3J0aW5nIGJ5IHZhbHVlcyBvZiBjdXN0b20gZmllbGRzLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdRdWVzdG8gcGFyYW1ldHJvIHNwZWNpZmljYSBpbCBNb2RlbGxvIGNoZSBzYXImYWdyYXZlOyB1dGlsaXp6YXRvIHBlciBsYSB2aXN1YWxpenphemlvbmUgZGVsIG1vZG8gc29tbWFyaW8uIFNlIG5lc3N1biB2YWxvcmUgJmVncmF2ZTsgc3BlY2lmaWNhdG8sIGFsbG9yYSBpbCBzYXImYWdyYXZlOyB1dGlsaXp6YXRvIGlsIE1vZGVsbG8gcHJlZGVmaW5pdG8gZGkgcXVlbCB0aXBvLic7CiRsYW5nWydwYXJlbnQnXSA9ICdQYWRyZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ0lsIG1vZHVsbyBQcm9kdWN0cyAmZWdyYXZlOyBzdGF0byBpbnN0YWxsYXRvIGNvbiBzdWNjZXNzbyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnSWwgbW9kdWxvIFByb2R1Y3RzICZlZ3JhdmU7IHN0YXRvIHJpbW9zc28gY29uIHR1dHRpIGkgZGF0aSBhc3NvY2lhdGknOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbnplJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JpbXVvdmVyZSBxdWVzdG8gbW9kdWxvIHJpbXVvdmVyJmFncmF2ZTsgYW5jaGUgdHV0dGkgaSBkYXRpIGFzc29jaWF0aSwgc2lldGUgc2ljdXJpIGRpIHZvbGVyIHByb2NlZGVyZT8nOwokbGFuZ1sncHJpY2UnXSA9ICdQcmV6em8nOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByZXp6byBkaSBhZGVndWFtZW50byc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2RvdHRvJzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnTm9tZSBQcm9kb3R0byc7CiRsYW5nWydwcm9kdWN0cyddID0gJ0dlc3Rpb25lIFByb2RvdHRvJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhemlvbmkgZGV0dGFnbGlvIFByb2RvdHRpJzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1Byb2R1Y3QgRWRpdGluZyBTZXR0aW5ncyc7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQcm9kdWN0IFN1bW1hcnkgU2V0dGluZ3MnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdHZXJhcmNoaWEgUHJvZG90dG8nOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnR2VzdG9yZSBQcm9kb3R0byc7CiRsYW5nWydwcm9ncmVzcyddID0gJ0F2YW56YW1lbnRvJzsKJGxhbmdbJ3Byb21wdCddID0gJ1Byb21wdCAnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBZ2dpdW5nZXJlL01vZGlmaWNhIEF0dHJpYnV0aSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdQZXJtZXR0ZXJlIGwmIzAzOTt1cGxvYWQgZGkgZmlsZXMgY29uIHF1ZXN0ZSBlc3RlbnNpb25pIChwZXIgY2FtcGkgdGlwbyBmaWxlKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnUGVybWV0dGVyZSBsJiMwMzk7dXBsb2FkIGRpIGltbWFnaW5pIGNvbiBxdWVzdGUgZXN0ZW5zaW9uaSAgKHBlciBjYW1waSB0aXBvIGltbWFnaW5lKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3IgZGlzcGxheSBvZiBwcm9kdWN0IGF0dHJpYnV0ZSB2YWx1ZXMgaW4gZHJvcGRvd24nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdBdXRvbWF0aWNhbWVudGUgY3JlYSBtaW5pYXR1cmUgZGkgaW1tYWdpbmknOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ0RpbWVuc2lvbmUgbWFzc2ltYSAobGEgcGkmdWdyYXZlOyBncmFuZGUpIGRlbGxhIG1pbmlhdHVyYS4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQXV0b21hdGljYW1lbnRlIGNyZWEgaW1tYWdpbmkgZGkgYW50ZXByaW1hIGRlbGxlIGltbWFnaW5pJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnRGltZW5zaW9uZSBtYXNzaW1hIChsYSBwaSZ1Z3JhdmU7IGdyYW5kZSkgZGVsbGEgaW1tYWdpbmUgZGkgYW50ZXByaW1hLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0F1dG9tYXRpY2FtZW50ZSBwb3NpemlvbmEgd2F0ZXJtYXJrcyBzdWxsZSBpbW1hZ2luaSc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0FiaWxpdGF0byBwZXIgdHV0dGkgaSBudW92aSBwcm9kb3R0aSc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggU2l6ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdNb2R1bG8gQ2FydCc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnUGFyYW1ldHJpIGRlbCBtb2R1bG8gQ2FydCc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ0NyZWEgQ2F0ZWdvcmllJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdDcmVvIGNhbXBpIFByb2RvdHRvPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JlYSBnZXJhcmNoaWEgUHJvZG90dG8nOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdVcGxvYWQgZmlsZSBDU1YnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ0NvZGljZSBwZXIgbGEgdmFsdXRhJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1NpbWJvbG8gZGkgdmFsdXRhJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3N0YXR1cyddID0gJ0lsIHByZWRlZmluaXRvICZlZ3JhdmU7IGNoZSB0dXR0aSBpIG51b3ZpIHByb2RvdHRpIGhhbm5vIHF1ZXN0byBzdGF0byc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnSWwgcHJlZGVmaW5pdG8gJmVncmF2ZTsgY2hlIHR1dHRpIGkgbnVvdmkgcHJvZG90dGkgaGFubm8gbGEgdGFzc2EnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0NhbmNlbGxhIGkgZmlsZXMgYXNzb2NpYXRpIGNvbiBpbCBwcm9kb3R0byBxdWFuZG8gdmllbmUgY2FuY2VsbGF0bz8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0NhbXBvIGRlbGltaXRhdG9yZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1BhZ2luYSBkZXR0YWdsaW8gcHJlZGVmaW5pdGEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXR0YWdsaW8gcGVyICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0NvbWUgZGV2byB0ZW5lcmUgcHJvZG90dGkgZHVwbGljYXRpPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdGYWxzbyc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnTWFuZWdnaWFyZSBsZSBpbW1hZ2luaT8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ1BhdGggaW1tYWdpbmUnOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnVW5pdCZhZ3JhdmU7IGRpIGx1bmdoZXp6YSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdRdWFsZSBhemlvbmUgZG92cmViYmUgZXNzZXJlIGVzZWd1aXRhIHF1YW5kbyB1biBwcm9kb3R0byBub24gcHUmb2dyYXZlOyBlc3NlcmUgdmlzdWFsaXp6YXRvPyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfNDA0J10gPSAnR2VuZXJhIHVuIGVycm9yZSA0MDQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlbmVyYSB1bmEgcmVkaXJlemlvbmUgMzAxJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9lcnJvcm1zZyddID0gJ1Zpc3VhbGl6emEgdW4gbWVzc2FnZ2lvIGRpIGVycm9yZSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnTWVzc2FnZ2lvIGRpIGVycm9yZSBxdWFuZG8gdW4gcHJvZG90dG8gbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIHRyb3ZhdG8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdpbmEgcGVyIGZhcmUgdW5hIHJlZGlyZXppb25lIHBlcm1hbmVudGU/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ0RlZmF1bHQgUGFnZSBmb3IgSGllcmFyY2h5IFZpZXcnOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnVXNlIFByZXR0eSBVUkxTIHRvIEhpZXJhcmNoeSBWaWV3cyc7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAnUGFnaW5hIHByZWRlZmluaXRhIHBlciBsYSBWaXN1YWxpenphemlvbmUgRGV0dGFnbGlvIFByb2R1dHRvJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2RvdHRpIGNoZSBjb21iYWNpYW5vIGNvbiAlcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCddID0gJ0RlZmF1bHQgcGFnZSBsaW1pdCBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdPcmRpbmUgcHJlZGVmaW5pdG8gbmVsIG1vZG8gc29tbWFyaW8nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnQ2FtcG8gZGVsbCYjMDM5O29yZGluZSBwcmVkZWZpbml0byBuZWwgbW9kbyBzb21tYXJpbyc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdNb2RlbGxvIHNvcmdlbnRlJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnVmVybyc7CiRsYW5nWydwcm9tcHRfdXJscHJlZml4J10gPSAnUHJlZml4IHRvIHVzZSBvbiBhbGwgVVJMUyB0YXJnZXRlZCB0byB0aGlzIHRoaXMgbW9kdWxlJzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnVXNlIHRoaXMgcGFnZSBmb3Igc2VhcmNoIHJlc3VsdHMgdG9vIDxlbT4ob3ZlcnJpZGVzIHRoZSBzZWFyY2hyZXN1bHRzIHBhZ2UgcGFyYW1ldGVyIGluIHRoZSBzZWFyY2ggbW9kdWxlKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVc2UgSGllcmFyY2h5IFBhdGggaW4gUHJvZHVjdCBEZXRhaWwgVVJMUyc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdVbml0JmFncmF2ZTsgZGkgcGVzbyc7CiRsYW5nWydwdWJsaWMnXSA9ICdFJiMwMzk7IHVuIGNhbXBvIHB1YmJsaWNvPyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJibGljYXRvJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1JhbmRvbSAnOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdBenplcmEgYWkgdmFsb3JpIGluaXppYWxpJzsKJGxhbmdbJ3JldHVybiddID0gJ1JpdG9ybmEnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JpdG9ybmEgYWxsJiMwMzk7aW5pemlvJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSYWRpY2UnOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnU2VhcmNoIFByb3BlcnR5IERlc2NyaXB0aW9uJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2hvdWxkIHRoZSBxdWVyeSBtYXRjaCBhbGwsIG9yIGFueSBvZiB0aGUgdGVzdHMgYmVsb3c/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnQ2VyY2Egbm9tZSBkZWxsYSBwcm9wcmlldCZhZ3JhdmU7JzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ0ludGVydmFsbG8gZGkgcHJlenpvJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZ2dpdWdlL01vZGlmaWNhIE1vZHVsbyBTZWFyY2ggVGVtcGxhdGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnVGVtcGxhdGUgZGkgUmljZXJjYSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZXppb25hIHVubyc7CiRsYW5nWydza3UnXSA9ICdTS1UgJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdPcmRpbmUgcGVyJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdUaXBvIG9yZGluZSc7CiRsYW5nWydzb3VyY2UnXSA9ICdTb3JnZW50ZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0byc7CiRsYW5nWydzdWJtaXQnXSA9ICdJbnZpbyc7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdTb3R0b3Njcml6aW9uZSc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnU2NhZGVuemEnOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdTY2FkdXRpJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTWVuc2lsbWVudGUnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0ZyZXF1ZW56YSBkaSBkaXN0cmlidXppb25lJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnRGlzdHJpYnV6aW9uZSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kJ10gPSAnRnJlcXVlbnphIGRpIHBhZ2FtZW50byc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ1BhZ2FtZW50byc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUXVhZGltZXN0cmFsZSc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdTZW1lc3RyYWxlJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdBbm51YWxlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdNb2RlbGxpIFNvbW1hcmlvJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWdnaXVuZ2VyZS9Nb2RpZmljYSB1biBNb2RlbGxvIFNvbW1hcmlvJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdJbXBvbmliaWxlJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0ICc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHQgYXJlYSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGV4dCBpbnB1dCc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdNb2RlbGxvIG51b3ZvIFJlcG9ydCBnZXJhcmNoaWNvJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdNb2RlbGxvIG51b3ZvIExpc3RhIGNhdGVnb3JpZSBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnTW9kZWxsbyBudW92byBkZXR0YWdsaW8gcHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ051b3ZvIFNlYXJjaCBUZW1wbGF0ZSBwcmVkZWZpbml0byc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ01vZGVsbG8gbnVvdm8gc29tbWFyaW8gcHJlZGVmaW5pdG8nOwokbGFuZ1sndHlwZSddID0gJ1RpcG8nOwokbGFuZ1sndXAnXSA9ICdNdW92aSBzdSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBZ2dpb3JuYSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlemlvbmEgdW4gZmlsZSBwZXIgdXBsb2FkJzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ1VSTCBhbGlhcyc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkbyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbG9yZSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWYWxvcmknOwokbGFuZ1sndmlldyddID0gJ1Zpc3VhbGl6emEnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnQ2FtcGkgU2VsZWN0IGNhc3RvbWl6emF0aSBwZXIgdmlzdWFsaXp6YXJlIGluIHVuYSB0YWJlbGxhJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ0xvY2F6aW9uZSBkZWwgV2F0ZXJtYXJrJzsKJGxhbmdbJ3dlaWdodCddID0gJ1Blc28nOwokbGFuZ1sneWVzJ10gPSAnUyZpZ3JhdmU7JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuOTc0MzQ5MTU1LjEyOTkwNzI0NjguMTI5OTA3MjQ2OC4xMjk5MDc0NTU0LjInOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyOTkwNzI0NjguMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1ByaWTEl3RpJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnUHJpZMSXdGkga2F0ZWdvcmlqxIUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdQcmlkxJd0aSBsYXVrxIUnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0FkanVzdGFibGUnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ1ByaWTEl3RpIHByb2R1a3TEhSc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ1ByaWTEl3RpIGF0cmlidXTEhSc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdBc3NvY2lhdGUgRmllbGQgd2l0aCBDYXRlZ29yeTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnUHJpZMSXdGkgaGllcmFyY2hpam9zIHB1bmt0xIUnOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ1ByaWTEl3RpIGF0cmlidXRvIHNhdnlixJknOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0FyIHRpayBhZG1pbmlzdHJhdG9yaXVzIGdhbGkgbWF0eXRpICZzY2Fyb247xK8gYXRyaWJ1dMSFPyc7CiRsYW5nWydhbGlnbl91bCddID0gJ1RvcCBMZWZ0JzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnVG9wIENlbnRlcic7CiRsYW5nWydhbGlnbl91ciddID0gJ1RvcCBSaWdodCc7CiRsYW5nWydhbGlnbl9tbCddID0gJ01pZGRsZSBMZWZ0JzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudGVyJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlkZGxlIFJpZ2h0JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQm90dG9tIExlZnQnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdCb3R0b20gQ2VudGVyJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnQm90dG9tIFJpZ2h0JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdWaXNvcyBrYXRlZ29yaWpvcyc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnQXIgSsWrcyDEr3NpdGlraW7EmXM/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0FyIHRpa3JhaSBub3JpdGUgaSZzY2Fyb247dHJpbnRpICZzY2Fyb247xK8gcHJvZHVrdMSFIGlyIHZpc8SFIHN1IGp1byBzdXNpanVzacSFIGluZm9ybWFjaWrEhT8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnRGlkxJdqYW7EjWlhaSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0cmlidXRvIHBhdmFkaW5pbWFzJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGhpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXQmc2Nhcm9uO2F1a3RpJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWpvcyc7CiRsYW5nWydjYXRlZ29yeSddID0gJ2thdGVnb3JpamEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdLYXRlZ29yaWphIHRva2kgcGF2YWRpbmltdSBqYXUgeXJhJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0thdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGthdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWydjaGVja2JveCddID0gJ1Zhcm5lbMSXJzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG5vZGU/ICBBbnkgcHJvZHVjdHMgdGhhdCBhcmUgdXNpbmcgdGhpcyBub2RlIHdpbGwgYmUgc2V0IHRvIG5vIGhpZXJhcmNoeSc7CiRsYW5nWydjb3B5J10gPSAnQ29weSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29weSBDYXRlZ29yeSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ1N1a8WrcmltbyBkYXRhJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdQYXN0YXJvamkgcmVpayZzY2Fyb247bcSXJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdOdW1hdHl0aWVqaSAmc2Nhcm9uO2FibG9uYWknOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdUcmludGknOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1RyaW50aSBhdHJpYnV0xIUnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnVHJpbnRpIGhpZXJhcmNoaWpvcyBwdW5rdMSFJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdNYcW+xJdqYW7EjWlhaSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0FwaWLFq2RpbmltYXMnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsxJdzJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsacWzICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnUHJpZMSXdGkva2Vpc3RpIGRldGFsacWzICZzY2Fyb247YWJsb27EhSc7CiRsYW5nWydkaXNhYmxlZCddID0gJ0kmc2Nhcm9uO2p1bmd0YXMnOwokbGFuZ1snZHJhZnQnXSA9ICdKdW9kcmEmc2Nhcm9uO3Rpcyc7CiRsYW5nWydkcm9wZG93biddID0gJ0kmc2Nhcm9uO2tyZW50YW50aXMgbWVuaXUnOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnS2Vpc3RpJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0tlaXN0aSBhdHJpYnV0xbMgcmlua2luxK8nOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0tlaXN0aSBhdHJpYnV0xbMgcmlua2luxK8gKGthbT8pJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ0tlaXN0aSBhdHJpYnV0dXMnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1JlZGFndW90aSBrYXRlZ29yaWrEhSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkaXQgQ2F0ZWdvcnkgRmllbGRzJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdLZWlzdGkgaGllcmFyY2hpam9zIHB1bmt0xIUnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0F0cmlidXRhcyB0b2tpdSB2YXJkdSBqYXUgeXJhJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdUaGUgRmllbGQgVmFsdWUgY2Fubm90IGJlIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGUgTm90IEZvdW5kJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRwYXJlbnQnXSA9ICdJbnZhbGlkIFBhcmVudCAoYSBoaWVyYXJjaHkgbm9kZSBjYW5ub3QgYmUgaXQmIzAzOTtzIG93biBwYXJlbnQpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ1RoZSBjdXN0b20gZmllbGQgdmFsdWUgZW50ZXJlZCBpcyBpbnZhbGlkIChjb250YWlucyBub24gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1Ryxatrc3RhIGFyYmEgbmV0ZWlzaW5nYXMgcHJpdmFsb21hcyBwYXJhbWV0cmFzJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnQW4gaXRlbSBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSBpbiB1c2UnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQYXNpcmlua2l0ZSBsYXVrbyB0aXDEhSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgbXVzdCBzdXBwbHkgYSBuYW1lJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0YXMgdG9raXUgcGF2YWRpbmltdSBqYXUgeXJhJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdOZXRlaXNpbmdhIGthaW5vcyBwYWtlaXRpbW8gcmVpayZzY2Fyb247bcSXICAmc2Nhcm9uO2lhbSDEr3JhJnNjYXJvbjt1aTogJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ8Sua8SXbGltYXMgbmVwYXZ5a286ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnTGF1a2FzJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnTGF1a28gYXBpYnLEl8W+aW1hcyc7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdMYXVrbyBhcGlicsSXxb5pbWFpJzsKJGxhbmdbJ2ZpbGUnXSA9ICdCeWxhJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmFpJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWphJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmNoaWpvcyBwb3ppY2lqYSc7CiRsYW5nWydpZCddID0gJ0lkJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ1BhdmVpa3NsYXMnOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ8SudHJhdWt0aSB2aWRpbmVzPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fYXV0b3RodW1ibmFpbCddID0gJ1RodW1ibmFpbCBzZXR0aW5ncyBhcmUgdGFrZW4gZnJvbSB0aGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICdXYXRlcm1hcmsgc2V0dGluZ3MgYXJlIHRha2VuIGZyb20gdGhlIENHRXh0ZW5zaW9ucyBNb2R1bGUnOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnVGhpcyBzeXN0ZW0gdW5kZXJzdGFuZHMgKC4pIGFzIHRoZSBkZWNpbWFsIHBvaW50IHNlcGFyYXRvci4gaS5lLjogPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+IEFsbCBGaWVsZHMgZGVmaW5lZCBoZXJlIGFyZSBhdmFpbGFibGUgdG8gYWxsIHByb2R1Y3RzLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdQcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHdoZW4gZGVhbGluZyB3aXRoIG9uZSBvciBtb3JlIGN1c3RvbSBmaWVsZHMuICBUaGUgYWN0aW9uIGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBob3dldmVyIHlvdSBzaG91bGQgaW52ZXN0aWdhdGUgYW5kIGNvcnJlY3QgdGhlc2UgcHJvYmxlbXMnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnR2FsaW1vcyB0aWsgdG9raW9zIHZlcnTEl3M6ICstKiMuIyMnOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1ZpZSZzY2Fyb247aSBsYXVrYWkgeXJhIHZpZSZzY2Fyb247YWkgbWF0b21pJzsKJGxhbmdbJ2xhYmVsJ10gPSAnRXRpa2V0xJcnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnUGFza3V0aW7ElyBtb2RpZmlrYWNpamEnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdBbnRyYXMgcGF2ZWlrc2xhcyc7CiRsYW5nWydtYXhsZW5ndGgnXSA9ICdNYWtzaW1hbHVzIGlsZ2lzPGVtPih0YWlrb21hIHRpayAmcXVvdDt0ZXh0Ym94JnF1b3Q7IGxhdWt1aSk8L2VtPic7CiRsYW5nWydtb2RpZmllZGRhdGUnXSA9ICdNb2RpZmlrYXZpbW8gZGF0YSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdBIG1vZHVsZSBmb3IgbWFuYWdpbmcgYSBjYXRhbG9nIG9mIHByb2R1Y3RzLCB0aGVpciBwcmljZSwgaW1hZ2VzLCBldGMsIGFuZCBmb3IgYWxsb3dpbmcgdXNlcnMgdG8gYnVpbGQgYSBjYXJ0JzsKJGxhbmdbJ25hbWUnXSA9ICdQYXZhZGluaW1hcyc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ0rFq3MgbmV0dXJpdGUgcmVpa2lhbcWzIGxlaWRpbcWzOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05ldyBDYXRlZ29yeSBOYW1lJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ0pva3MgdmFyZGFzIG5lcGF0ZWlrdGFzJzsKJGxhbmdbJ25vbmUnXSA9ICdKb2tpbyc7CiRsYW5nWydvZiddID0gJ09mJzsKJGxhbmdbJ3BhZ2UnXSA9ICdQdXNsYXBpcyc7CiRsYW5nWydwYWdlX29mJ10gPSAnUHVzbGFwaXMgJXMgaSZzY2Fyb247ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICfErnJhJnNjYXJvbjvFsyBza2FpxI1pdXMgcHVzbGFweWplJzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbCAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJlbnQnXSA9ICdUxJd2YXMnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdQcm9kdWN0cyBtb2R1bGlzIGluc3RhbGl1b3RhcyBzxJdrbWluZ2FpJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUGFzaXJpbmtpbWFpJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnS2FpbmEnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ0thaW5vcyBwYWtlaXRpbWFzJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnUHJvZHVrdGFzJzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnUHJvZHVrdG8gcGF2YWRpbmltYXMnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0YWknOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm90dWt0xbMgaGllcmFyY2hpamEnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnUHJvZHVrdMWzIHR2YXJreW1hcyc7CiRsYW5nWydwcm9tcHQnXSA9ICdVxb51b21pbmEnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnTGVpc3RpIHRpayB0b2tpbyBmb3JtYXRvIHBhdmVpa3NsxbMgxK9rxJdsaW3EhSBieWzFsyB0aXBvIGxhdWt1b3NlJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdMZWlzdGkgdGlrIHRva2lvIGZvcm1hdG8gcGF2ZWlrc2zFsyDEr2vEl2xpbcSFIHBhdmVpa3NsxbMgdGlwbyBsYXVrdW9zZSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F1dG9tYXRpJnNjYXJvbjtrYWkgZ2VuZXJ1b3RpIHBhdmVpa3NsxbMgbWluaWF0acWrcmFzJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdGljYWxseSBwbGFjZSB3YXRlcm1hcmtzIG9uIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ0xlaXN0aSBwYWdhbCBudXR5bMSXamltxIUgdmlzaWVtcyBuYXVqaWVtcyBwcm9kdWt0YW1zJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdWYWxpdXRvcyBrb2Rhcyc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdWYWxpdXRvcyBzaW1ib2xpcyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgcHJvZHVjdHMgaGF2ZSB0aGlzIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnQnkgZGVmYXVsdCBhbGwgbmV3IHByb2R1Y3RzIGFyZSB0YXhhYmxlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdJJnNjYXJvbjt0cmludGkgYnlsYXMgc3VzaWp1c2lhcyBzdSBwcm9kdWt0YWlzLCBrYWkgJnNjYXJvbjtpZSB5cmEgaSZzY2Fyb247dHJpbmFtaT8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdOdW1hdHl0YXNpcyBkZXRhbGnFsyBwdXNsYXBpcyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ051bWF0eXRvamkgcsWrJnNjYXJvbjtpYXZpbW8gdHZhcmthIHNhbnRyYXVrb3MgbW9kb2plJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ051bWF0eXRhc2lzIHLFqyZzY2Fyb247aWF2aW1vIGxhdWthcyBzYW50cmF1a29zIG1vZG9qZSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9ubyAmc2Nhcm9uO2FsdGluaXMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnU3ZvcmlvIHZpZW5ldGFpJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0FyICZzY2Fyb247aXMgbGF1a2FzIHZpZSZzY2Fyb247YXM/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1Bhc2tlbGJ0YSc7CiRsYW5nWydyYW5kb20nXSA9ICdBdHNpdGlrdGlpbmFpJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnR3LEhcW+aW50aSBnYW15a2xpbmVzIHJlaWsmc2Nhcm9uO21lcyc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXR1cm4nOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JldHVybiB0byB0aGUgdG9wIG9mIHRoZSB2aWV3JzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdQYXNpcmlua2l0ZSB2aWVuxIUnOwokbGFuZ1snc29ydF9ieSddID0gJ1LFqyZzY2Fyb247aXVvdGkgcGFnYWwnOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1LFqyZzY2Fyb247aWF2aW1vIHR2YXJrYSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXNhcyc7CiRsYW5nWydzdWJtaXQnXSA9ICdQYXRlaWt0aSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU2FudHJhdWtvcyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQcmlkxJd0aS9rZWlzdGkgc2FudHJhdWtvcyAmc2Nhcm9uO2FibG9uxIUnOwokbGFuZ1sndGF4YWJsZSddID0gJ0FwbW9rZXN0aW5hbWEnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdGluxJcgc3JpdGlzJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZWtzdG8gxK92ZXN0aXMnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnTnVtYXR5dGFzaXMgbmF1am9zIGhpZXJhcmNoaW7El3MgYXRhc2thaXRvcyAmc2Nhcm9uO2FibG9uYXMnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ051bWF0eXRhc2lzIG5hdWpvIGthdGVnb3JpasWzIHPEhXJhJnNjYXJvbjtvICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnTnVtYXR5dGFzaXMgbmF1asWzIGRldGFsacWzICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ051bWF0eXRhc2lzIG5hdWpvcyBzYW50cmF1a29zICZzY2Fyb247YWJsb25hcyc7CiRsYW5nWyd0eXBlJ10gPSAnVGlwYXMnOwokbGFuZ1sndXBkYXRlJ10gPSAnTmF1amludGknOwokbGFuZ1sndXBsb2FkJ10gPSAnUGFzaXJpbmt0aSBieWzEhSDEr2vEl2xpbXVpJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnVmFsaWQnOwokbGFuZ1sndmFsdWUnXSA9ICdSZWlrJnNjYXJvbjttxJcnOwokbGFuZ1sndmFsdWVzJ10gPSAnUmVpayZzY2Fyb247bcSXcyc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYXRpb24nOwokbGFuZ1snd2VpZ2h0J10gPSAnU3ZvcmlzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzMwMTE1NTMwNTc2MjU3OTAwMC4xMjIwMzQ1MDcwLjEyMjg5MDI4NDcuMTIyODk4NjM1MS4yMCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMjg5ODYzNTEuMjAuMTUudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDI4MjE5LjAuaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCc7CiRsYW5nWydhYmJyX2xlbmd0aCddID0gJ0wnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ0InOwokbGFuZ1snYWRkJ10gPSAnTGVnZyB0aWwnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMZWdnIHRpbCBlbiBrYXRlZ29yaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0xlZ2cgdGlsIGZlbHQnOwokbGFuZ1snYWRkb3B0aW9uJ10gPSAnTGVnZyB0aWwgZXQgYWx0ZXJuYXRpdic7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnTGVnZyB0aWwgcHJvZHVrdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0xlZ2cgdGlsIGF0dHJpYnV0dCc7CiRsYW5nWydhZGRfY2F0ZWdvcnlfZmllbGQnXSA9ICdBc3Nvc2llciBGZWx0IG1lZCBLYXRlZ29yaTogIiVzIic7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdMZWdnIHRpbCBoaWVyYXJraSBhcnRpa2tlbCc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnTGVnZyB0aWwgYXR0cmlidXR0IHZhbGcnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0pzdXRlcmJhcnQnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0thbiBrdW4gYWRtaW5pc3RyYXRvcmVyIHNlIGRlbm5lIGF0dHJpYnV0dGVuPyc7CiRsYW5nWydhZHZhbmNlZCddID0gJ0F2YW5zZXJ0JzsKJGxhbmdbJ2FsaWduX2xjJ10gPSAnQnVubiBzZW50ZXInOwokbGFuZ1snYWxpZ25fbGwnXSA9ICdCdW5uIHZlbnN0cmUnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCdW5uIGjDuHlyZSc7CiRsYW5nWydhbGlnbl9tYyddID0gJ1NlbnRlcic7CiRsYW5nWydhbGlnbl9tbCddID0gJ01pZHRlbiB2ZW5zdHJlJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlkdGVuIGjDuHlyZSc7CiRsYW5nWydhbGlnbl91YyddID0gJ1RvcHAgc2VudGVyJzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnVG9wcCB2ZW5zdHJlJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnVG9wcCBow7h5cmUnOwokbGFuZ1snYWxsJ10gPSAnQWxsZSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsZSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2FueSddID0gJ05vZW4nOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0VyIGR1IHNpa2tlcj8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnRXIgZHUgdmlya2VsaWcgc2lra2VyIHDDpSBhdCBkdSB2aWwgc2xldHRlIGRldHRlIHByb2R1a3RldCBvZyBhbGwgZGV0cyB0aWxow7hyZW5kZSBpbmZvcm1hc2pvbj8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnU3RpZ2VuZGUnOwokbGFuZ1snYXR0cmlidXRlX25hbWUnXSA9ICdBdHRyaWJ1dHQgbmF2bic7CiRsYW5nWydhdHRyaWJfdGV4dCddID0gJ1Rla3N0JzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2snOwokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ1NldHQgRWNvbW1lcmNlIGhlbmRlbHNlcyBiZWhhbmRsZXJlJzsKJGxhbmdbJ2J1bGtfZWRpdF9xdWFudGl0eSddID0gJ1JlZGlnZXIgQW50YWxsIGZvciBmbGVyZSBwcm9kdWt0ZXInOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJraSByYXBwb3JtYWxlcic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIEhpZXJhcmtpIHJhcHBvcm1hbCc7CiRsYW5nWydjYW5jZWwnXSA9ICdBdmJyeXQnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZXInOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0VuIGthdGVnb3JpIG1lZCBkZXQgbmF2bmV0IGVrc2lzdGVyZXIgYWxsZXJlZGUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnS2F0ZWdvcmlsaXN0ZSBtYWxlcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBrYXRlZ29yaSBMaXN0ZW1hbCc7CiRsYW5nWydjZF9hdXRvY29tcGxldGUnXSA9ICdTa3JpdiBpbm4gc3RhcnRlbiBww6UgZXQgZmlybWFuYXZuJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltZXRlcic7CiRsYW5nWydjaGVja2JveCddID0gJ0F2a3J5c25pbmdzYm9rcyc7CiRsYW5nWydjb21wYW55ZGlyX3JlZmVyZW5jZSddID0gJ0NvbXBhbnlEaXJlY3RvcnkgU2Vsc2thcGV0cyBJZCc7CiRsYW5nWydjb25maXJtX2NvcHlvcHRpb25zJ10gPSAnQWxsZSBla3Npc3RlcmVuZGUgdmFsZyBmb3IgZGV0dGUgcHJvZHVrdGV0IHZpbCBibGkgZXJzdGF0dGV0LiBFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBmb3J0c2V0dGU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlYWxsb3B0aW9ucyddID0gJ0VyIGR1IHNpa2tlciBww6UgYXQgZHUgdmlsIHNsZXR0ZSBhbGxlIHZhbGcgZm9yIGRldHRlIHByb2R1a3RldD8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdFciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBzbGV0dGUgZGVubmUgbm9kZW4/IEFsbGUgcHJvZHVrdGVyIHNvbSBicnVrZXIgZGVubmUgbm9kZW4gdmlsIGJsaSBzYXR0IHRpbCBpbmdlbiBoaWVyYXJraSc7CiRsYW5nWydjb25maXJtX2VkaXRvcHRpb25zJ10gPSAnRXIgZHUgc2lra2VyIHDDpSBhdCBkdSB2aWwgZm9ybGF0ZSBkZXR0ZSBza2plbWFldCBvZyByZWRpZ2VyZSBhbHRlcm5hdGl2ZW5lIGZvciBkZXR0ZSBwcm9kdWt0ZXQ/JzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnRXIgZHUgaGVsdCBzaWtrZXIgcMOlIGF0IGR1IHZpbCBnasO4cmUgZGV0dGU/XFxuXFxuRmVpbCBpbm5zdGlsbGluZ2VyIGVsbGVyIGVuIHVneWxkaWcga29uZmlndXJhc2pvbnNmaWwga2FuIGZ1bGxzdGVuZGlnIMO4ZGVsZWdnZSBldCBuw6UgZ3lsZGlnIG9nIGZ1bmdlcmVuZGUgc3lzdGVtLic7CiRsYW5nWydjb3B5J10gPSAnS29waWVyJzsKJGxhbmdbJ2NvcHlfYXR0cmlidXRlJ10gPSAnS29waWVyIHByb2R1a3QgYWx0ZXJuYXRpdic7CiRsYW5nWydjb3B5X2F0dHJpYl9zZXRzJ10gPSAnS29waWVyIGF0dHJpYnV0dHNldHRlbmUnOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0tvcGllciBrYXRlZ29yaSc7CiRsYW5nWydjb3B5X29wdGlvbnNfZnJvbSddID0gJ0tvcGllciBhbGxlIHZhbGcgZnJhJzsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gJ0tvcGllciBkZXR0ZSBwcm9kdWt0ZXQnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdPcHByZXR0ZXQgZGF0byc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnTsOldsOmcmVuZGUgdmVyZGknOwokbGFuZ1snY3JlYXRlc2x1Z19lJ10gPSAnTGFnIHNsdWcgVVJMIChodmlzIHRvbSknOwokbGFuZ1snZGF0YSddID0gJ0RhdGEnOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYXJkJzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTdGFuZGFyZCBtYWxlcic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+TWVyazo8L3N0cm9uZz4gSW5uaG9sZGV0IGkgZGlzc2UgdGVrc29tcsOlZGVuZSBiZW55dHRlcyBmb3Igw6UgbGFnZSBzdGFuZGFyZGlubmhvbGQgaSBtYWxlbmUgbsOlciBkdSBrbGlra2VyIFwnTGVnZyB0aWwgbWFsXCcgaSBkZW4gYWt0dWVsbGUgbWFsZmFuZW4uIMOFIHJlZGlnZXJlIGVuIGF2IGRpc3NlIHRla3N0b21yw6VkZW5lIHZpbCBpa2tlIGhhIHVtaWRkZWxiYXIgZWZmZWt0IHDDpSBkaXR0IG5ldHRzdGVkLic7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0dCc7CiRsYW5nWydkZWxldGVfYWxsJ10gPSAnU2xldHQgYWxsZSc7CiRsYW5nWydkZWxldGVfYXR0cmlidXRlJ10gPSAnU2xldHQgRWdlbnNrYXAnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnU2xldHQgaGllcmFya2kgYXJ0aWtrZWwnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1N5bmtlbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3JpdmVsc2UnOwokbGFuZ1snZGVzdGluYXRpb24nXSA9ICdNw6VsJzsKJGxhbmdbJ2RlcHJlY2F0ZWQnXSA9ICdBdnZpa2xldCc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWxqZXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWxqbWFsZXInOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgZW4gZGV0YWxqbWFsJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdNw6VsJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGVha3RpdmVydCc7CiRsYW5nWydkb3duJ10gPSAnRmx5dHQgbmVkJzsKJGxhbmdbJ2RyYWZ0J10gPSAnS2xhZGQnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdOZWR0cmVrayc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnTmVkdHJla2tzdmFsZyA8ZW0+KGt1biBneWxkaWcgZm9yIG5lZHRyZWtrc2ZlbHQpPC9lbT48YnIvPjxici8+PGVtPihlbiBwb3N0IHByIGxpbmplKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2VkaXRxdWFudGl0eSddID0gJ0p1c3RlciBsYWdlcm5pdsOlZXInOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dCBzZXR0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dCBzZXR0IGZvcic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdSZWRpZ2VyIGF0dHJpYnV0dGVyJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdSZWRpZ2VyIEthdGVnb3JpJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnUmVkaWdlciBLYXRlZ29yaSBmZWx0ZXInOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ1JlZGlnZXIgSGllcmFya2kgRWxlbWVudCc7CiRsYW5nWydlZGl0X25vdGVzJ10gPSAnUmVkaWdlciBub3RhdGVyJzsKJGxhbmdbJ2VkaXRfb3B0aW9ucyddID0gJ1JlZGlnZXIgcHJvZHVrdCB2YWxnJzsKJGxhbmdbJ2VkaXRfb3B0aW9uX25vdGVzJ10gPSAnUmVkaWdlciB2YWxnIG5vdGVyJzsKJGxhbmdbJ2VkaXRfcHJvZHVjdCddID0gJ1JlZGlnZXIgcHJvZHVrdCc7CiRsYW5nWydlcm9ycl9xb2hfbmVnYXRpdmVfYXRyb3cnXSA9ICdBbnRhbGwgcMOlIGjDpW5kZW4ga2FuIGlra2UgdsOmcmUgbmVnYXRpdiBww6UgcmFkICVkJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZlaWwnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0VuIGF0dHJpYnV0dCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX2RiZXJyb3InXSA9ICdEYXRhYmFzZWZlaWwnOwokbGFuZ1snZXJyb3JfZGVsZXRlX2xhc3Ryb3cnXSA9ICdEZW4gc2lzdGUgcmFkZW4ga2FuIGlra2Ugc2xldHRlcyBww6UgZGVubmUgbcOldGVuJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdEdXBsaWthdCBWLm5yLihTS1UpIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnRmVsdHZlcmRpZW4ga2FuIGlra2UgdsOmcmUgdG9tJzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICdGaWxmb3JtYXQgcnBvYmxlbSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdGaWwgaWtrZSBmdW5uZXQnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIG1lZCDDpSDDpXBuZSBmaWxlbiAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkY2R2YWx1ZSddID0gJ1VneWxkaWcgQ29tcGFueURpcmVjdG9yeSBzZWxza2FwcyBpZCBzcGVzaWZpc2VydCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1jb3VudCddID0gJ1VneWxkaWcgKGVsbGVyIGlra2Ugc2Ftc3ZhcmVuZGUpIHBhcmFtZXRlciB0ZWxsZXInOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ1VneWxkaWcgZm9yZWxkcmUgKGVuIGhpZXJhcmtpIG5vZGUga2FuIGlra2UgdsOmcmUgc2luIGVnZW4gZm9yZWxkcmUpJzsKJGxhbmdbJ2Vycm9yX2ludmFsaWRfbmFtZSddID0gJ0Vrc3RyYShjdXN0b20pIGZlbHR2ZXJkaWVuIHNvbSBibGUgb3BwZ2l0dCBlciB1Z3lsZGlnIChpbm5laG9sZGVyIGlra2UtYWxmYW51bW1lcmlza2UgdGVnbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ1VneWxkaWcgdmVyZGkgb3BwZ2l0dCc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdFbiBuw7hkdmVuZGlnIHBhcmFtZXRlciBtYW5nbGVyIGVsbGVyIGVyIHVneWxkaWcnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFbiBhcnRpa2tlbCBtZWQgZGV0IG5hdm5ldCBla3Npc3RlcmVyIGFsbGVyZWRlJzsKJGxhbmdbJ2Vycm9yX25lZWR0d29yb3dzJ10gPSAnRXQgbWluaW11bSBhdiB0byByYWRlciBlciBww6VrcmV2ZCc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1Zlbm5saWdzdCB2ZWxnIGVuIGZlbHR0eXBlJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ0R1IG3DpSBvcHBnaSBldCBuYXZuJzsKJGxhbmdbJ2Vycm9yX29uZXF1YW50aXR5ZmllbGQnXSA9ICdLdW4gZXQgbWVuZ2RlLWZlbHQgdGlsbGF0dCc7CiRsYW5nWydlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCddID0gJ0JhcmUgZXR0IGFib25uZW1lbnQgZmVsdCBlciB0aWxsYXR0JzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdUaWxnYW5nIG5la3RldCc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnVWd5bGRpZyBwcmlzanVzdGVyaW5nc3ZlcmRpIGZvciBlbmhldCAlcyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0FsaWFzIHNvbSBibGUgb3BwZ2l0dCBlciBhbGxlcmVkZSBpIGJydWsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ0V0IHByb2R1a3QgbWVkIGRldCBuYXZuZXQgZWtzaXN0ZXJlciBhbGxlcmVkZSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnUHJvZHVrdGV0IGJsZSBpa2tlIGZ1bm5ldCc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdEZXR0ZSBWLm5yLihTS1UpIGVyIGFsbGVyZWRlIGkgYnJ1ayBhdiBldCBhbm5ldCBwcm9kdWt0JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfc2t1dXNlZF9hdHJvdyddID0gJ0Rlbm5lIFNLVS92YXJlbnVtbWVyIHZlcmRpIHDDpSByYWQgJWQgZXIgYWxsZXJlZGUgaSBicnVrIGF2IGV0IGFubmV0IHByb2R1a3QnOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkJ10gPSAnVmVubmxpZ3N0IG9wcGdpdCBldCB1bmlrdCBWLm5yLihTS1UpJzsKJGxhbmdbJ2Vycm9yX3NrdV9yZXF1aXJlZF9hdHJvdyddID0gJ1Zlbm5saWdzdCBvcHBnaSBlbiB1bmlrIFNLVS92YXJlbnVtbWVyIHDDpSByYWQgJWQnOwokbGFuZ1snZXJyb3JfdGV4dF9lbXB0eV9hdHJvdyddID0gJ1Rla3N0ZmVsdGV0IHDDpSByYWQgJWQga2FuIGlra2UgdsOmcmUgdG9tdCc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnT3BwbGFzdGluZyBmZWlsZXQ6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0Vrc2tsdWRlciBwcm9kdWt0ZXIgaSBkZSB2YWxndGUga2F0ZWdvcmllbmUgZnJhIHJlc3VsdGF0ZW5lJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0V0dGVyIGV0dCDDpXInOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdFdHRlciBzZWtzIG3DpW5lZGVyJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0V0dGVyIHRvIMOlcic7CiRsYW5nWydleHBvcnRjYXRzJ10gPSAnRWtzcG9ydCBrYXRlZ29yaWVyJzsKJGxhbmdbJ2V4cG9ydGRlbGltJ10gPSAnRWtzcG9ydCBmZWx0c2tpbGxldGVnbic7CiRsYW5nWydleHBvcnRkcmFmdCddID0gJ0Vrc3BvcnQga2xhZGQgcHJvZHVrdGVyJzsKJGxhbmdbJ2V4cG9ydGZpZWxkcyddID0gJ0Vrc3BvcnQgZWdlbmRlZmluZXJ0ZSBmZWx0ZXInOwokbGFuZ1snZXhwb3J0b3B0aW9ucyddID0gJ0Vrc3BvcnR2YXJlIEFsdGVybmF0aXZlcic7CiRsYW5nWydleHBvcnRfdG9fY3N2J10gPSAnRWtzcG9ydCB0aWwgQ1NWJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0Vrc3RyYWZlbHQgMSc7CiRsYW5nWydleHRyYTInXSA9ICdFa3N0cmFmZWx0IDInOwokbGFuZ1snZmllbGQnXSA9ICdGZWx0JzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmVsdGRlZmluaXNqb24nOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRmVsdGRlZmluaXNqb25lcic7CiRsYW5nWydmaWVsZHMnXSA9ICdGZWx0ZXInOwokbGFuZ1snZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWx0ZXInXSA9ICdGaWx0ZXInOwokbGFuZ1snZmlsdGVyaW51c2UnXSA9ICdha3RpdmVydCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdHJlJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmVsbGUgaW5uc3RpbGxpbmdlcic7CiRsYW5nWydnbyddID0gJ1N0YXJ0JzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmtpJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ0hpZXJhcmtpIHBvc2lzam9uJzsKJGxhbmdbJ2hpZXJhcmNoeV9zZXR0aW5ncyddID0gJ0hpZXJhcmtpIGlubnN0aWxsaW5nZXInOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkZSc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0JpbGRlYmVoYW5kbGluZ3Npbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydGVyIHByb2R1a3RlciBmcmEgQ1NWIGZpbCc7CiRsYW5nWydpbmNoZXMnXSA9ICdUb21tZXInOwokbGFuZ1snaW5jbHVkZV9jaGlsZHJlbiddID0gJ0lua2x1ZGVyIGJhcm4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnS3VuIGFsZmFudW1tZXJpc2tlIHRlZ24uIEluZ2VuIG1lbGxvbXJvbSwgYW5mw7hyc2Vsc3RlZ24gZWxsZXIgaWtrZS1ib2tzdGF2L3RhbGwga29tYmluYXNqb25lcic7CiRsYW5nWydpbmZvX2F0dHJpYnRlbXBsYXRlJ10gPSAnTXVsaWdlIHZhcmlhYmxlciBlcjogKCRhdHRyaWJfdGV4dCksICgkYXR0cmliX2FkanVzdCksICgkY3VycmVuY3lfc3ltYm9sKSc7CiRsYW5nWydpbmZvX2F0dHJpYnV0ZXNfY29waWVkJ10gPSAnQXRyaWJ1dHRlciBrb3BpZXJ0JzsKJGxhbmdbJ2luZm9fYmF0Y2hzaXplJ10gPSAnU2V0dCBldCBhbnRhbGwgbGluamVyIHNvbSBza2FsIHByb3Nlc3NlcmVzIHBlciAiYmF0Y2giLiBFdHRlciBodmVyIGJhdGNoIGVyIGZlcmRpZywgdmlsIGltcG9ydGVyZXJlbiBvbWRpcmlnZXJlLCBvZyBmb3J0c2V0dGUgb3BlcmFzam9uZW5lLiBPbSBkdSBvcHBsZXZlciBtaW5uZSBmZWlsIGVsbGVyIHRpZHNhdmJydWRkIHByb2JsZW1lciBww6UgZ3J1bm4gYXYgc3RvcmUgbWVuZ2RlciBpIHByb3Nlc3NlcmluZywgc28gYsO4ciBkdSBrYW5za2plIGtvbnRha3RlIGRpbiBkaW4gbmV0dHN0ZWRzdmVydCwgZWxsZXIgcmVkdXNlcmUgZGV0dGUgYW50YWxsZXQnOwokbGFuZ1snaW5mb19idWxrX2VkaXRxdWFudGl0eSddID0gJ0Rlbm5lIGZvcm1lbiB0aWxsYXRlciByZWRpZ2VyaW5nIGF2IG1lbmdkZW4gcMOlIGjDpW5kZW4gZm9yIGVuIHJla2tlIHByb2R1a3RlciAodmVkIFNLVSkgc2FtdGlkaWcuIFbDpnIgZm9yc2lrdGlnLCBkYSBkZXR0ZSBlciBlbiBkYXRhYmFzZSBpbnRlbnNpdiBkcmlmdCwgb2cgYsO4ciBrdW4gdXRmw7hyZXMgcMOlIGVuIGxpdGVuIGdydXBwZSBhdiBwcm9kdWt0ZXIgcMOlIGVuIGdhbmcuJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnRGlzc2UgcGFyYW1ldGVyZSBnaXMgdGlsIGRlbiB2YWxndGUgaGFuZGxla3VydihjYXJ0KSBtb2R1bGVuIGZyYSBwcm9kdWt0LWRldGFsaiBvZyAtc2FtbWVuZHJhZ3N2aXNuaW5nZW5lJzsKJGxhbmdbJ2luZm9fY2xlYXJhdHRyaWJzJ10gPSAnR2plbGRlciBiYXJlIG7DpXIgZHUgb3BwZGF0ZXJlciBla3Npc3RlcmVuZGUgcHJvZHVrdGVyLCBkZXR0ZSB2aWwgZmplcm5lIGFsbCBhdHRyaWJ1dHQgaW5mb3JtYXNqb24gZnJhIGRhdGFiYXNlbiBmb3IgcHJvZHVrdGVyIGbDuHIgb3BwcmV0dGluZyBhdiBueWUnOwokbGFuZ1snaW5mb19jbGVhcmNhdGVnb3JpZXMnXSA9ICdHamVsZGVyIGJhcmUgbsOlciBkdSBvcHBkYXRlcmVyIGVrc2lzdGVyZW5kZSBwcm9kdWt0ZXIsIHZpbCBkZXR0ZSBmamVybmUgYWxsZSBrYXRlZ29yaSBtZWRsZW1za2FwIGbDuHIgbnllIG9wcHJldHRlcyc7CiRsYW5nWydpbmZvX2NsZWFyZmllbGRzJ10gPSAnR2plbGRlciBiYXJlIG7DpXIgZHUgb3BwZGF0ZXJlciBla3Npc3RlcmVuZGUgcHJvZHVrdGVyLCB2aWwgZGV0dGUgZmplcm5lIGFsbGUgZmVsdCBmw7hyIG55ZSBmZWx0dmVyZGllciBvcHByZXR0ZXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdEZW5uZSBoYW5kbGluZ2VuIHZpbCBrb3BpZXJlIGF0dHJpYnV0dHNldHQgKHVubnRhdHQgc2t1IHZlcmRpZXIpIGZyYSBldCBhbm5ldCBwcm9kdWt0Lic7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdPcHByZXR0IGF1dG9tYXRpc2sgcHJvZHVrdGthdGVnb3JpZXIgZm9yIMOlIHNhbXN2YXJlIG1lZCBkZSBzb20gZXIgaSBDU1YgZmlsZW4sIG9tIGRlIGlra2UgYWxsZXJlZGUgZWtzaXN0ZXJlcic7CiRsYW5nWydpbmZvX2NyZWF0ZWZpZWxkcyddID0gJ09wcHJldHQgdWtqZW50ZSBwcm9kdWt0ZmVsdGVyIGF1dG9tYXRpc2s/IDxlbT4oRGUgdmlsIGJsaSBvcHByZXR0ZXQgc29tIHRla3N0ZmVsdGVyKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlaGllcmFyY2h5J10gPSAnT3BwcmV0dCBwcm9kdWt0aGllcmFya2llciBhdXRvbWF0aXNrIGZvciDDpSBzYW1zdmFyZSBtZWQgZGUgc29tIGVyIGkgQ1NWIGZpbGVuLCBvbSBkZSBpa2tlIGFsbGVyZWRlIGVrc2lzdGVyZXInOwokbGFuZ1snaW5mb19kZWNpbWFsX3VuaXRzJ10gPSAnU3lzdGVtZXQgZm9yc3TDpXIgKC4pIHNvbSBkZXNpbWFsc2VwYXJhdG9yIChpa2tlIGtvbW1hISkuIEYuZWtzLjogPHN0cm9uZz41LjI1PC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnU3Blc2lmaXNlciBib2tzdGF2ZW4gKGVsbGVyIGJva3N0YXZlbmUpIHNvbSBzZXBhcmVyZXIgaHZlcnQgZmVsdCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnU3Blc2lmaXNlciBodm9yZGFuIHN5c3RlbWV0IHNrYWwgYmVoYW5kbGUgZXQgcHJvZHVrdCBzb20gaGFyIGV0IG5hdm4gc29tIGFsbGVyZWRlIGVrc2lzdGVyZXIgaSBDU1YgZmlsZW4nOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5NZXJrOiA8L3N0cm9uZz4gQWxsZSBmZWx0ZXIgZGVmaW5lcnQgaGVyIGVyIHRpbGdqZW5namVsaWdlIGZvciBhbGxlIHByb2R1a3Rlci4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbWVyIGJsZSBvcHBkYWdldCB1bmRlciBow6VuZHRlcmluZyBhdiBldCBlbGxlciBmbGVyZSBla3N0cmEoY3VzdG9tKSBmZWx0ZXIuIEhhbmRsaW5nZW4gZXIgdmVsbHlra2V0IGZ1bGxmw7hydCwgbWVuIGR1IGLDuHIgdW5kZXJzw7hrZSBvZyBrb3JyaWdlcmUgZGlzc2UgcHJvYmxlbWVuZSc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1ZlZCBpbXBvcnQsIG9tIGV0IGJpbGRlIGZpbG5hdm4gYmxpciBmdW5uZXQgaSBlbiBmZWx0a29sb25uZSwgc2thbCBkZXQgYmxpIGZseXR0ZXQgZnJhIGtpbGRlIGxva2Fzam9uZW4sIHZhbm5tZXJrZXQsIG1pbmlhdHlyYmlsZGV0LCBvZyBmZWx0dHlwZW4gZW5kcmVzIHRpbCAiaW1hZ2UiJzsKJGxhbmdbJ2luZm9faGllcnBhZ2UnXSA9ICdCcnVrIGRlbm5lIHNpZGVuIGZvciBoaWVyYXJraXZpc25pbmdlci4gRGVuZSBzaWRlSUQgdmlsIGlra2UgYmxpIHNwZXNpZmlzZXJ0IHDDpSB3ZWJhZHJlc3Nlbi4nOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdTdGllbiAocmVsYXRpdnQgdGlsIHVwbG9hZHMga2F0YWxvZ2VuKSBodm9yIGJpbGRlciByZWZlcmVydCB0aWwgaSBpbXBvcnRmaWxlbiwga2FuIGJsaSBmdW5uZXQnOwokbGFuZ1snaW5mb19pbWFnZXN0dWZmX2RlcHJlY2F0ZWQnXSA9ICdCaWxkZWJlaGFuZGxpbmdzZnVua3Nqb25lciBlciBmb3JlbGRldCBvZyB2aWwgYmxpIGZqZXJuZXQgaSBlbiBmcmVtdGlkaWcgdmVyc2pvbi4gQnJ1ayBDR1NtYXJ0SW1hZ2UgZm9yIGlubGluZSBiaWxkZWJlaGFuZGxpbmcuJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnRW4ga29ydCB0ZXN0IGhhciBibGl0dCB1dGbDuHJ0IHDDpSBkZW4gc3Blc2lmaXNlcnRlIGlubmZpbGVuLCBvZyBhbHQgc2VyIHV0IHRpbCDDpSB2w6ZyZSBpIG9yZGVuLjxici8+RGV0dGUgZXIgaWtrZSBlbiBpbmRpa2Fzam9uIHDDpSBhdCBkZXQgaWtrZSBrYW4gdsOmcmUgZmVpbCBpIGZpbGVuLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnSW5rbHVkZXIgaGllcmFya2kgZWxlbWVudG5hdm5ldCBww6UgVVJMZW4nOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdEZXR0ZSBhbHRlcm5hdGl2ZXQgYmVzdGVtbWVyIG9wcGbDuHJzZWxlbiB0aWwgbmV0dHN0ZWRldCBodmlzIGVuIGhhciBnw6V0dCByZXR0IHRpbCBwcm9kdWt0LWRldGFsanZpc25pbmcgdmlhIGVuIG5ldHRhZHJlc3NlLCBvZyBhdCBwcm9kdWt0ZXQgYXYgZW4gZWxsZXIgYW5uZW4gZ3J1bm4gKGRlYWt0aXZlcnQsIHNsZXR0ZXQsIG9zdi4pIGlra2Uga2FuIMOlcG5lcy4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ09mZmVudGxpZ2UgZmVsdCBlciB0aWxnamVuZ2VsaWdlIMOlIHNlIGZvciBhbGxlJzsKJGxhbmdbJ2luZm9fcmVvcmRlcl9jb250ZW50J10gPSAnRGVubmUgb3BlcmFzam9uZW4gdGlsbGF0ZXIgw6UgZHJhIGRlIGVua2VsdGUgbm9kZXIgaSB0cmVldCBmb3Igw6UgZW5kcmUgcmVra2Vmw7hsZ2VuIGRlIHZpc2VzIHDDpSBpIGhpZXJhcmtpdmlzbmluZyc7CiRsYW5nWydpbmZvX3NldGVjb21oYW5kbGVycyddID0gJ0Rlbm5lIGtuYXBwZW4gdmlsIHNpa3JlIGF0IGhlbmRlbHNlc2JlaGFuZGxlcm5lIGZvciBlLWhhbmRlbCBoZW5kZWxzZXIgZXIgcMOlIHBsYXNzLiBEZXR0ZSBlciBueXR0aWcgb20gZW4gYmVyIFByb2R1a3Rtb2R1bGVuIG9tIMOlIGhvbGRlIHN0eXIgcMOlIG1lbmdkZSB0aWxnamVuZ2VsaWcsIG1lbiBoZW5kaW5nc2FrdGl2YXRvcmVyIGlra2UgYmxlIG9wcHJldHRldCB1bmRlciBpbnN0YWxsYXNqb24gZWxsZXIgb3BwZ3JhZGVyaW5nJzsKJGxhbmdbJ2xhYmVsJ10gPSAnRXRpa2V0dCc7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdPdmVyc2tyaXYnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ0hvcHAgb3Zlcic7CiRsYW5nWydsYWJlbF91cGRhdGUnXSA9ICdPcHBkYXRlcic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdTaXN0IGVuZHJldCc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0FuZHJlIGJpbGRlJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01ha3NpbXVtIGxlbmdkZSA8ZW0+KGthbiBiZW55dHRlcyBrdW4gcMOlIHRla3N0Ym9rcyBmZWx0ZXIpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRW5kcmV0IGRhdG8nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnRW4gbW9kdWwgZm9yIMOlIGJlaGFuZGxlIGVuIGthdGFsb2cgbWVkIHByb2R1a3RlciwgZGV0cyBwcmlzLCBiaWxkZXIsIG9zdiwgb2cgZm9yIMOlIHRpbGxhdGUgYnJ1a2VyZSDDpSBieWdnZSBlbiBoYW5kbGVrdXJ2JzsKJGxhbmdbJ21vdmVfZG93biddID0gJ0ZseXR0IG5lZCc7CiRsYW5nWydtb3ZlX3VwJ10gPSAnRmx5dHQgb3BwJzsKJGxhbmdbJ21zZ19jYXRlZ29yeV9kZWxldGVkJ10gPSAnS2F0ZWdvcmkgU2xldHRldCc7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAnSGVuZGVsc2VzYmVoYW5kbGVyZSBvcHByZXR0ZXQnOwokbGFuZ1snbXNnX29wdGlvbnNjb3BpZWQnXSA9ICdQcm9kdWt0IHZhbGcga29waWVydCAobWVuIGlra2UgbGFncmV0IGVubsOlKSc7CiRsYW5nWydtc2dfb3B0aW9uc19kZWxldGVkJ10gPSAnUHJvZHVrdCB2YWxnIHNsZXR0ZXQgZm9yIHByb2R1a3QgJWQnOwokbGFuZ1snbXNnX29wdGlvbnNfc2F2ZWQnXSA9ICdQcm9kdWt0IHZhbGcgbGFncmV0JzsKJGxhbmdbJ21zZ19wcm9kdWN0Y29waWVkJ10gPSAnUHJvZHVrdGV0IGJsZSBrb3BpZXJ0LiBEdSByZWRpZ2VyZXIgbsOlIGtvcGllbi4gRW5odmVyIHNrdS92YXJlbnVtbWVyIGluZm9ybWFzam9uIGkgcHJvZHVrdGV0LCBvZy9lbGxlciBhdHRyaWJ1dHRlciBlciBmamVybmV0JzsKJGxhbmdbJ25hbWUnXSA9ICdOYXZuJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgaGFyIGlra2UgZGVuIG7DuGR2ZW5kaWdlIHJldHRpZ2hldGVuOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ055dHQga2F0ZWdvcmkgbmF2bic7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOZWknOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdJbmdlbiBuYXZuIG9wcGdpdHQnOwokbGFuZ1snbm9uZSddID0gJ0luZ2VuJzsKJGxhbmdbJ25vdGVzJ10gPSAnTWVya25hZGVyJzsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZCddID0gJ0luZ2VudGluZyB2YWxndCc7CiRsYW5nWydudW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1snb2YnXSA9ICdhdic7CiRsYW5nWydvayddID0gJ09LJzsKJGxhbmdbJ29wZXJhdGlvbl9jYW5jZWxsZWQnXSA9ICdPcGVyYXNqb24gYXZicnV0dCc7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGUnXSA9ICdPcGVyYXNqb24gZmVyZGlnJzsKJGxhbmdbJ29wdGlvbiddID0gJ0FsdGVybmF0aXYnOwokbGFuZ1snb3B0aW9ucyddID0gJ0FsdGVybmF0aXZlcic7CiRsYW5nWydwYWdlJ10gPSAnU2lkZSc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnU2lkZSBiZWdyZW5zbmluZyc7CiRsYW5nWydwYWdlX29mJ10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgdmFsdWVzIGZyb20gYSBzcGVjaWZpZWQgZmllbGQuDQogICAgIDxwPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJnF1b3Q7Y29sb3ImcXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4NCiAgICAgPC9wPg0KICA8L2xpPg0KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4NCjxsaT5hamF4X3Byb3B2YWwgLSBSZXR1cm4gYSBqc29uIGVuY29kZWQgbGlzdCBvZiBwcm9wZXJ0eSB2YWx1ZXMgbWF0Y2hpbmcgdGhlIGNyaXRlcmlhIHNwZWNpZmllZC4gIFRoaXMgYWN0aW9uIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgdmlhIGFqYXgsIGFuZCBzaG91bGQgYmUgY2FsbGVkIHdpdGggdGhlIHNob3d0ZW1wbGF0ZT1mYWxzZSBwYXJhbWV0ZXIgb24gdGhlIFVSTC48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdOw6VyIGJlbnl0dGV0IG1lZCA8ZW0+c3RhbmRhcmQ8L2VtPiBzYW1tZW5kcmFnc21vZHVzIHZpbCBkZW5uZSBwYXJhbWV0ZXIsIHNvbSBza2FsIHbDpnJlIGxpayBuYXZuZXQgcMOlIGVuIGVrc2lzdGVyZW5kZSBrYXRlZ29yaSwgYmxpIGJlbnl0dGV0IGZvciDDpSB2aXNlIGt1biBkZSBwcm9kdWt0ZW5lIHNvbSBlciBpIGRlbm5lIGthdGVnb3JpZW4uIChlbiBrb21tYXNlcGFyZXJ0IGxpc3RlIGthbiBvcHBnaXMpIERlbm5lIHBhcmFtZXRlcmVuIGthbiBvZ3PDpSBiZW55dHRlcyBtZWQgY2F0ZWdvcnlsaXN0IGhhbmRsaW5nZW4gZm9yIMOlIGJlZ3JlbnNlIHV0ZGF0YSB0aWwgZGUgc3Blc2lmaXNlcnRlIHByb2R1a3RrYXRhZ29yaWVuZS4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlmaWVsZCddID0gJ0dqZWxkZXIga3VuIHRpbCAiY2F0ZWdvcnlsaXN0IiBoYW5kbGluZywgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYnJ1a2VzIHRpbCDDpSBmaWx0cmVyZSBrYXRlZ29yaWVyIGJhc2VydCBww6UgdmVyZGllbiBhdiBldCBrYXRlZ29yaWZlbHQuIERldHRlIHZpbCBpa2tlIGZ1bmdlcmUgaSBmb3JiaW5kZWxzZSBtZWQgImthdGVnb3JpIiBlbGxlciAiY2F0ZWdvcnlfaWQiIHBhcmFtZXRlcmUuIFN5bnRha3NlbiBmb3IgZGVubmUgcGFyYW1ldGVyZW4gZXIgZW4ga29tbWFzZXBhcmVydCBsaXN0ZSBtZWQgZmVsdG5hdm4sIG9nIGZlbHR2ZXJkaWVyLiBkdnMuOiBjYXRlZ29yeWxpc3Q9JnF1b3Q7ZmVsdG5hdm5ldDp2ZXJkaSxmZWx0bmF2bjI6dmVyZGllbiAyJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnS2FuIGt1biBiZW55dHRlcyBtZWQgY2F0ZWdvcnlsaXN0IGhhbmRsaW5nZW5lLCBodm9yIGRlbm5lIHBhcmFtZXRlcmVuIGluZGlrZXJlciBtYWxlbiBzb20gc2thbCBiZW55dHRlcyBmb3IgdmlzbmluZyBhdiBrYXRlZ29yaWRldGFsamVyLiBEZXR0ZSBiZW55dHRlciBlbiBrYXRhZ29yaWxpc3RlbWFsLi4gT20gaW5nZW4gdmVyZGkgZXIgc3Blc2lmaXNlcnQgc8OlIHZpbCBuw6V2w6ZyZW5kZSBzdGFuZGFyZG1hbCBhdiBkZW5uZSB0eXBlbiBibGkgYmVueXR0ZXQuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnTWVkIGthdGVnb3JpbGlzdGUgIG9nIGZpZWxkbGlzdCBoYW5kbGluZ2VuZSwgdmlsIGRlbm5lIHBhcmFtZXRlciBpbmRpa2VyZSBtYWxlbiBzb20gc2thbCBiZW55dHRlcyBmb3IgdmlzbmluZy4gT20gaW5nZW4gdmVyZGkgZXIgb3BwZ2l0dCB2aWwgbsOldsOmcmVuZGUgc3RhbmRhcmQgbWFsIGF2IGRlbm5lIHR5cGUgYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRGV0dGUgc3Blc2lmaXNlcmVyIHNpZGVpZFwnZW4gZWxsZXIgc2lkZWFsaWFzIHNvbSBza2FsIGJlbnl0dGVzIGZvciDDpSB2aXNlIGRldGFsanJhcHBvcnRlbi4gRGV0dGUga2FuIGJlbnl0dGVzIG1lZCA8ZW0+ZGVmYXVsdDwvZW0+IGVsbGVyIHPDuGsgaGFuZGxpbmdlbmUuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBtYWxlbiBzb20gc2thbCBiZW55dHRlcyBmb3IgZGV0YWxqbW9kdXMgdmlzbmluZy4gT20gaW5nZW4gdmVyZGkgZXIgb3BwZ2l0dCB2aWwgbsOldsOmcmVuZGUgc3RhbmRhcmQgbWFsIGF2IGRlbm5lIHR5cGUgYmxpIGJlbnl0dGV0LiBEZW5uZSBwYXJhbWV0ZXIgaGFyIGluZ2VuIHZpcmtuaW5nIG7DpXIgdmFrcmUgdXJsZXIgZXIgcMOlc2zDpXR0Lic7CiRsYW5nWydwYXJhbV9leGNsdWRlY2F0J10gPSAnR2plbGRlciBrdW4gdGlsIHN0YW5kYXJkIChzYW1tZW5kcmFnKSB2aXNuaW5nLCBodm9yIGRlbm5lIHBhcmFtZXRlcmVuIHZpbCB0aWxsYXRlIHVubnRhayBhdiBwcm9kdWt0ZXIgc29tIGVyIGkgZW4gYmVzdGVtdCBrYXRlZ29yaSBmcmEgcmVzdWx0YXRldC4gRW4ga29tbWFzZXBhcmVydCBsaXN0ZSBtZWQga2F0ZWdvcmluYXZuIGVyIHRpbGxhdHQuIERlbm5lIHBhcmFtZXRlcmVuIGthbiBmdW5nZXJlIHNhbW1lbiBtZWQga2F0ZWdvcmktcGFyYW1ldGVyZW4gZm9yIMOlIGdpIGVuIGxpc3RlIG92ZXIgcHJvZHVrdGVyIHNvbSBlciBpIGRlbm5lIGthdGVnb3JpZW4sIG1lbiBpa2tlIGkgZGVuIGthdGVnb3JpZW4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gYW5kIHRoZSA8ZW0+YWpheF9wcm9wdmFsPC9lbT4gYWN0aW9ucy4gSW4gdGhlIGZpZWxkbGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLiAgSW4gdGhlIGFqYXhfcHJvcHZhbCBhY3Rpb24gdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGZpZWxkIHRvIHVzZSB0byBleHRyYWN0IGEgbGlzdCBvZiB2YWx1ZXMuICBBbnkgdmFsaWQgZmllbGQgbmFtZXMgYXJlIGFjY2VwdGVkICh0aG91Z2ggb25seSB0ZXh0IGZpZWxkIGFuZCBkcm9wZG93biBmaWVsZCBuYW1lcyB3aWxsIHdvcmsgcHJvcGVybHkuICBBZGRpdGlvbmFsbHkgdGhlIHNwZWNpYWwgdmFsdWVzIDo6bmFtZTo6LCA6OnNrdTo6LCBhbmQgOjphbGlhczo6IGNhbiBiZSBzcGVjaWZpZWQgdG8gcmV0dXJuIHZhbHVlcyBmcm9tIHRoZSBwcm9kdWN0IG5hbWUsIHNrdSBhbmQgYWxpYXMgcmVzcGVjdGl2ZWx5Lic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYW5kIDxlbT5hamF4X3Byb3B2YWw8L2VtPiBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIGZpZWxkIHZhbHVlIHRvIGxpbWl0IHJlc3VsdHMgYnkuICBJbiB0aGUgZGVmYXVsdCB2YWx1ZSB0aGVzZSBzcGVjaWFsIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6ICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7LiBJbiB0aGUgYWpheF9wcm9wdmFsIGFjdGlvbiB0aGlzIGZpZWxkIGlzIGV4cGVjdGVkIHRvIGNvbnRhaW4gb25seSBhIGZldyBsZXR0ZXJzLCB0byBpbmRpY2F0ZSBhIHNtYWxsIGZpbHRlci4gIGkuZTogZmllbGR2YWw9YiB0byByZXR1cm4gYWxsIGZpZWxkIHZhbHVlcyB0aGF0IGJlZ2luIHdpdGggdGhlIGxldHRlciBiLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdLYW4ga3VuIGJlbnl0dGVzIGkgPGVtPmRlZmF1bHQ8L2VtPiBvZyBoaWVyYXJraSBoYW5kbGluZ2VyLiBEZW5uZSBwYXJhbWV0ZXIgaGFyIHRvIG9wcGdhdmVyIC0gZGVuIHNwZXNpZmlzZXJlciBhdCBrdW4gYXJ0aWtsZXIgaSBkZW5uZSBsb2thc2pvbmVuIGkgaGllcmFya2lldCBza2FsIHZpc2VzLiAgSm9rZXJ0ZWduIGthbiBiZW55dHRlcyBzw6UgZHUgb2dzw6Uga2FuIHNwZXNpZmlzZXJlIGZvcmVsZHJlL2Jhcm4gcmVsYXNqb25lci4gRi5la3MuIHtQcm9kdWN0cyBoaWVyYXJjaHk9XCd0cnVja3MqXCd9IHZpbCBsYWdlIGVuIHNhbW1lbmRyYWdzcmFwcG9ydCBtZWQgYWxsZSB0cnVja3MsIGlua2x1ZGVydCBiYXJuYSBpIGhpZXJhcmtpZXQuICBQw6Ugc2FtbWUgbcOldGUsIHtQcm9kdWN0cyBoaWVyYXJjaHk9XCcqdHJ1Y2tzXCd9IHZpbCB2aXNlIGVuIHNhbW1lbmRyYWdzcmFwcG9ydCBtZWQgYWxsZSB0cnVja3Mgb2cgYWxsZSBwcm9kdWt0ZXIgdGlsaMO4cmVuZGUgZW5odmVyIGZvcmVsZHJlIGkgaGllcmFya2lldC4gTsOlciBiZW55dHRldCBtZWQgaGllcmFya2loYW5kbGluZ2VuIHPDpSBrYW4gZGVubmUgcGFyYW1ldGVyIGdpIGVuIGxpc3RlIG1lZCBoaWVyYXJraW5hdm4gZm9yIMOlIHZpc2UgYWtrdXJhdCBkaXNzZS4gRi5la3MuIHtQcm9kdWN0cyBhY3Rpb249aGllcmFyY2h5IGhpZXJhcmNoeT1cJ3RydWNrcyxjYXJzXCd9JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnRGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlciBtYWxlbiBzb20gc2thbCBicnVrZXMgZm9yIGhpZXJhcmtpIHZpc25pbmcuIE9tIGluZ2VuIHZlcmRpIGVyIHNhdHQgdmlsIHN0YW5kYXJkIG1hbCBhdiBkZW4gdHlwZW4gYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdLdW4gbnl0dGlnIGZvciBzw7hrLWhhbmRsaW5nZW4sIGRlciBkZW5uZSBwYXJhbWV0ZXJlbiBzcGVzaWZpc2VyZXIgYXQgdXRkYXRhIGZvciBzYW1tZW5kcmFnZXN2aXNuaW5nZW4gc2thbCB2aXNlcyBpbmxpbmUnOwokbGFuZ1sncGFyYW1fbm90cHJldHR5J10gPSAnRGVubmUgcGFyYW1ldGVyIGFuZ2lyIGVuIGtvbW1hc2VwYXJlcnQgbGlzdGUgb3ZlciBoYW5kbGluZ2VyIHNvbSB2YWtyZSB3ZWJhZHJlc3NlciBpa2tlIGLDuHIgZ2VuZXJlcmVzIGZvciBmLmVrcy46IG5vdHByZXR0eT1oaWVyYXJjaHksIGRlZmF1bHQgdmlsIGlra2UgZ2VuZXJlcmUgdmFrcmUgdXJsZXIgdGlsIGhpZXJhcmNoeSwgZWxsZXIgc3VtbWFyeSAoc3RhbmRhcmQpIGhhbmRsaW5nZW5lLCBtZW4gdmlsIHRpbGxhdGUgZ2VuZXJlcmluZyBhdiB2YWtyZSB3ZWJhZHJlc3NlciB0aWwgZGV0YWxqdmlzbmluZy4gU29tIGVuIHNwZXNpZWxsIHZlcmRpICJhbGwiIGthbiBicnVrZXMgdGlsIMOlIGFuZ2kgYXQgaW5nZW4gcGVuZSB1cmxlciBza2FsIGdlbmVyZXJlcyc7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdCZW55dHRldCBtZWQgPGVtPnN0YW5kYXJkPC9lbT4gaGFuZGxpbmdlbiB2aWwgZGVubmUgcGFyYW1ldGVyIHNwZXNpZmlzZXJlIGh2b3IgbWFuZ2UgcHJvZHVrdGVyIHNvbSBza2FsIGxpc3RlcyBww6UgaHZlciBzaWRlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdLYW4ga3VuIGJlbnl0dGVzIGkgPGVtPmhpZXJhcmNoeTwvZW0+IGhhbmRsaW5nZW4uIERlbm5lIHBhcmFtZXRlciBzcGVzaWZpc2VyZXIgaGllcmFya2kgaWQgdGlsIHN0YXJ0IHBvc2lzam9uZW4gaSByYXBwb3J0ZW4uJzsKJGxhbmdbJ3BhcmFtX3BhcmVudHMnXSA9ICdOeXR0aWcgYmFyZSBpIDxlbT5oaWVyYXJjaHk8L2VtPiBoYW5kbGluZ2VuLCBhbmdpciBkZW5uZSBwYXJhbWV0ZXJlbiBlbiBrb21tYXNlcGFyZXJ0IGxpc3RlIG1lZCBoaWVyYXJraSBuYXZuIHNvbSBzcGVzaWZpc2VyZXIgZm9yIG9wcHJldHRpbmcgZW4gcmVra2UgaGllcmFya2kgdHLDpnIgZnJhIGRlbi9kZSBhbmdpdHRlIHBsYXNzZXJpbmcoZW5lKS4gSGllcmFya2kgbmF2biBtw6UgdsOmcmUgdW5pa2UsIG9nIGlra2UgaW5uZWhvbGRlIHNwZXNpYWx0ZWduLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdCZW55dHRldCBtZWQgZGV0YWxqIGhhbmRsaW5nZW4gdmlsIGRlbm5lIHBhcmFtZXRlciBpbmRpa2VyZSBodmlsa2V0IHByb2R1a3Qgc29tIHNrYWwgdmlzZXMgcMOlIHNpZGVuLic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0dqZWxkZXIga3VuIHRpbCBzdGFuZGFyZCAoc2FtbWVuZHJhZykgdmlzbmluZywgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBrYW4gYW5naSBlbiBrb21tYXNlcGFyZXJ0IGxpc3RlIG1lZCBoZWx0YWxsIHByb2R1a3QtSURlciDDpSB2aXNlLiBJbmdlbiBwYWdpbmVyaW5nIGVsbGVyIHNvcnRlcmluZyB1dGbDuHJlcyBkYSBww6UgZGlzc2UgdmVyZGllbmUuIEFuZHJlIHNwZXNpZmlzZXJ0ZSBmaWx0cmVyaW5nc3BhcmFtZXRlcmUsIG9tIGRldHRlIGVyIHNwZXNpZmlzZXJ0IGZvciBzYW1tZW5kcmFnc3Zpc25pbmdlbiwgdmlsIG9nc8OlIGlnbm9yZXJlcy4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0t1biBneWxkaWcgZm9yIHPDuGsgaGFuZGxpbmdlbiwgaHZvciBkZW5uZSBwYXJhbWV0ZXJlbiBzcGVzaWZpc2VyZXIgZW4gc2lkZS1pZCBlbGxlciBhbGlhcyDDpSBiZW55dHRlIGZvciDDpSB2aXNlIHPDuGtlcmVzdWx0YXRlbmUnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdLdW4gZ3lsZGlnIGZvciBzw7hrIGhhbmRsaW5nZW4sIGh2b3IgZGVubmUgcGFyYW1ldGVyZW4ga2FuIGlubmVob2xkZSBlbiBrb21tYXNlcGFyZXJ0IGxpc3RlIG1lZCBmZWx0bmF2biDDpSBpbmtsdWRlcmUgaSBzw7hrZXQnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnS3VuIGd5bGRpZyBmb3Igc8O4ayBoYW5kbGluZ2VuLCBodm9yIGRlbm5lIHBhcmFtZXRlcmVuIHRpbGxhdGVyIMOlIHNwZXNpZmlzZXJlIGVuIGlra2Utc3RhbmRhcmQgc8O4a2Vza2plbWFtYWwnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0dqZWxkZXIga3VuIHRpbCBjYXRlZ29yeWxpc3Qgb2cgZmllbGRsaXN0IGhhbmRsaW5nZW5lLCBkZXJzb20gZGVubmUgcGFyYW1ldGVyZW4gZXIgc2F0dCB0aWwgZW4gaWtrZSAwIGhlbHRhbGxzdmVyZGkgdmlsIGFsbGUga2F0ZWdvcmllciAob2dzw6UgZGUgdXRlbiBwcm9kdWt0ZXIpIGJsaSB2aXN0Lic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIGluIHRoZSBzdW1tYXJ5LCBjYXRlZ29yeWxpc3Qgb3Igc2VhcmNoIGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5pZCAtLSBUaGUgcHJvZHVjdCBpZDwvbGk+DQogIDxsaT53ZWlnaHQgLS0gVGhlIHByb2R1Y3Qgd2VpZ2h0PC9saT4NCiAgPGxpPnByaWNlIC0tIFRoZSBwcm9kdWN0IGJhc2UgcHJpY2U8L2xpPg0KICA8bGk+c3RhdHVzIC0tIERyYWZ0IG9yIHB1Ymxpc2hlZDwvbGk+DQogIDxsaT5yYW5kb20gLS0gRGlzcGxheSBpbiByYW5kb20gb3JkZXIgb24gZWFjaCByZXF1ZXN0PC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gVGhlIGNyZWF0aW9uIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+bW9kaWZpZWQgLS0gVGhlIG1vZGlmaWVkIGRhdGUgZm9yIHRoaXMgY29tcGFueSByZWNvcmQ8L2xpPg0KICA8bGk+ZjpmaWVsZG5hbWUgLS0gQWxsb3dzIHNvcnRpbmcgYnkgdmFsdWVzIG9mIGN1c3RvbSBmaWVsZHMuPC9saT4NCjwvdWw+DQo8cD5UaGUgY2F0ZWdvcnkgbGlzdCB2aWV3IHN1cHBvcnRzIG9ubHkgYSBmZXcgc3BlY2lmaWMgc29ydGluZyBvcHRpb25zOjwvcD4NCjx1bD4NCiAgPGxpPmlkIC0tIFRoZSBjYXRlZ29yeSBpZC48L2xpPg0KICA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0tIFRoZSBjYXRlZ29yeSBuYW1lLjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnRGVubmUgcGFyYW1ldGVyZW4gZXIga3VuIGd5bGRpZyBmb3Igc3RhbmRhcmQgc2FtZW1uZHJhZ3N2aXNuaW5nZW4sIGh2b3IgZGVubmUgcGFyYW1ldGVyZW4gYmVueXR0ZXMgdGlsIMOlIGtvbnZlcnRlcmUgdmVyZGllbmUgdGlsIGVuIGFubmVuIHR5cGUgc8OlIGRlIGthbiBiZW55dHRlcyB0aWwgc29ydGVyaW5nLiBHeWxkaWdlIHZlcmRpZXIgZXIgU1RSSU5HLFNJR05FRCBvZyBVTlNJR05FRC4gT20gZGV0dGUgaWtrZSBlciBzYXR0IGhlciBzw6UgdmlsIHN0YW5kYXJkdHlwZW4gU1RSSU5HIGJsaSBiZW55dHRldC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdEZW5uZSBwYXJhbWV0ZXIgZXIga3VuIGFrdHVlbGwgZm9yIGFjdGlvbj1oaWVyYXJjaHksIGh2b3IgZGVuIHRpbGxhdGVyIMOlIHNwZXNpZmlzZXJlIGVuIHNpZGVJRCBlbGxlciBhbGlhcyBzb20gdmlsIGJsaSBiZW55dHRldCBmb3IgYWxsZSBsZW5rZXIgZm9yIHNhbW1lbmRyYWdzdmlzbmluZyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdEZW5uZSBwYXJhbWV0ZXIgc3Blc2lmaXNlcmVyIG1hbGVuIHNvbSBza2FsIGJlbnl0dGVzIGZvciBzYW1tZW5kcmFnc21vZHVzIHZpc25pbmdlbi4gT20gaW5nZW4gdmVyZGkgZXIgb3BwZ2l0dCB2aWwgbsOldsOmcmVuZGUgc3RhbmRhcmQgbWFsIGF2IGRlbm5lIHR5cGUgYmxpIGJlbnl0dGV0Lic7CiRsYW5nWydwYXJlbnQnXSA9ICdGb3JlbGRyZSc7CiRsYW5nWydwaF9vcHRpb250ZXh0J10gPSAnU2tyaXYgdW5payBtdWxpZ2hldCB0ZWtzdCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Byb2R1Y3RzIG1vZHVsZW4gaGFyIGJsaXR0IGluc3RhbGxlcnQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1Byb2R1Y3RzIG1vZHVsZW4gb2cgYWxsZSBhc3Nvc2llcnRlIGRhdGEgaGFyIGJsaXR0IGZqZXJuZXQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJhbnNlcic7CiRsYW5nWydwcmVmaXhfY29weW9mJ10gPSAnS29waSBhdic7CiRsYW5nWydwcmV1bmluc3RhbGwnXSA9ICfDhSBmamVybmUgZGVubmUgbW9kdWxlbiB2aWwgb2dzw6UgZmplcm5lIGFsbGUgYXNzb3NpZXJ0ZSBkYXRhLCBlciBkdSBzaWtrZXIgcMOlIGF0IGR1IHZpbCBmb3J0c2V0dGU/JzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcmljZSddID0gJ1ByaXMnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaXNqdXN0ZXJpbmcnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWt0bmF2bic7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3QgYWRtaW5pc3RyYXNqb24nOwokbGFuZ1sncHJvZHVjdF9kZXRhaWxfc2V0dGluZ3MnXSA9ICdQcm9kdWt0IGRldGFsamlubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnUHJvZHVrdHJlZGlnZXJpbmdzIGlubnN0aWxsaW5nZXInOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWt0IGhpZXJhcmtpJzsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gJ1Byb2R1a3RpbmZvcm1hc2pvbic7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWt0IGJlaGFuZGxlcic7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQcm9kdWt0c2FtbWVuZHJhZyBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnRnJlbWRyaWZ0JzsKJGxhbmdbJ3Byb21wdCddID0gJ0V0aWtldHQgKHNww7hyc23DpWwvcHJvbXB0KSc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ0xlZ2cgdGlsL3JlZGlnZXIgYXRyaWJ1dHRzZXR0JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1RpbGxhdCBvcHBsYXN0aW5nIGF2IGZpbGUgbWVkIGRpc3NlIGZpbGVuZGVsc2VyIChmb3IgZmlsIHR5cGUgZmVsdGVyKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnVGlsbGF0IG9wcGxhc3RpbmcgYXYgYmlsZGVyIG1lZCBkaXNzZSBmaWxlbmRlbHNlciAoZm9yIGJpbGRlIHR5cGUgZmVsdGVyKSc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ1Nsw6UgcMOlIHNvbSBzdGFuZGFyZCBmb3IgYWxsZSBueWUgcHJvZHVrdGVyJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ01hbCBmb3IgdmlzbmluZyBhdiBwcm9kdWt0ZXRzIGF0dHJpYnV0dHZlcmRpZXIgaSBuZWR0cmVrayc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggc3TDuHJyZWxzZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdIYW5kbGVrdXJ2KGNhcnQpIG1vZHVsJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdIYW5kbGVrdXJ2KGNhcnQpIG1vZHVsIHBhcmFtZXRlcmUnOwokbGFuZ1sncHJvbXB0X2NsZWFyYXR0cmlicyddID0gJ1JlbnMgYXR0cmlidXR0ZXIgdmVkIG9wcGRhdGVyaW5nJzsKJGxhbmdbJ3Byb21wdF9jbGVhcmNhdGVnb3JpZXMnXSA9ICdSZW5zIGthdGVnb3JpZXIgdmVkIG9wcGRhdGVyaW5nJzsKJGxhbmdbJ3Byb21wdF9jbGVhcmZpZWxkcyddID0gJ1JlbnMgZmVsdGVyIHZlZCBvcHBkYXRlcmluZyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlY2F0ZWdvcmllcyddID0gJ09wcHJldHQga2F0ZWdvcmllcic7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnT3BwcmV0dCBwcm9kdWt0a2F0ZWdvcmllcj8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ09wcHJldHQgcHJvZHVrdGthdGVnb3JpJzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnTGFzdCBvcHAgQ1NWIGZpbCc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnVmFsdXRha29kZSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdWYWx1dGFzeW1ib2wnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnU29tIHN0YW5kYXJkIGhhciBhbGxlIG55ZSBwcm9kdWt0ZXIgZGVubmUgc3RhdHVzZW4nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ1NvbSBzdGFuZGFyZCBlciBhbGxlIG55ZSBwcm9kdWt0ZXIgYXZnaWZ0c3BsaWt0aWdlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdTbGV0dCBhbGxlIGZpbGVyIHRpbGtueXR0ZXQgcHJvZHVrdGV0IG7DpXIgcHJvZHVrdGV0IHNsZXR0ZXM/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGZWx0IHNraWxsZXRlZ24nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZCBkZXRhbGpzaWRlJzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxzZm9yJ10gPSAnRGV0YWxqZXIgZm8gJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSHZvcmRhbiBza2FsIGR1cGxpa2F0ZSBwcm9kdWt0ZXIgYmVoYW5kbGVzPyc7CiRsYW5nWydwcm9tcHRfZmFsc2UnXSA9ICdVc2Fubic7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnQmVoYW5kbGUgYmlsZGVyPyc7CiRsYW5nWydwcm9tcHRfaGllcnBhZ2UnXSA9ICdTdGFuZGFyZHNpZGUgZm9yIGhpZXJhcmtpdmlzbmluZyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnQmlsZGVzdGknOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnTGVuZ2RlZW5oZXRlcic7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VuZXJlciBlbiAzMDEgb21kaXJpZ2VyaW5nJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZW5lcmVyIGVuIDQwNCBmZWlsJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ0h2aWxrZW4gaGFuZGxpbmcgc2thbCB1dGbDuHJlcyBvbSBldCBwcm9kdWt0IGlra2Uga2FuIHZpc2VzPyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdWaXMgZW4gZmVpbG1lbGRpbmcnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ0ZlaWxtZWxkaW5nIGZvciBuw6VyIGV0IHByb2R1a3QgaWtrZSBibGlyIGZ1bm5ldCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1NpZGUgw6Ugb21kaXJpZ2VyZSB0aWwgcGVybWFuZW50Pyc7CiRsYW5nWydwcm9tcHRfcHJldHR5aGllcnVybHMnXSA9ICdCZW55dHQgdmFrcmUgVVJMZXIgZm9yIGhpZXJhcmtpdmlzbmluZ2VuZSc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdWt0ZXIgc29tIHBhc3NlciAlcyc7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAnU3RhbmRhcmRzaWRlIGZvciBQcm9kdWN0IGRldGFsanZpc25pbmcnOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ1YubnIuKFNLVSkgZXIgcMOla3JldmQgZm9yIGFsbGUgcHJvZHVrdGVyIG9nIGF0dHJpYnV0dGVyJzsKJGxhbmdbJ3Byb21wdF9zbHVndGVtcGxhdGUnXSA9ICdVUkwgU2x1ZyBNYWwnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdTdGFuZGFyZCBzaWRlZ3JlbnNlIGkgc2FtbWVuZHJhZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmdzZmVsdCBpIHNhbW1lbmRyYWdzbW9kdXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdTdGFuZGFyZCBzb3J0ZXJpbmcgaSBzYW1tZW5kcmFnc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X25ld2RlZmF1bHQnXSA9ICdCZW55dHQgbnkgc2FtZW5kcmFnc3Zpc25pbmcnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnTWFsa2lsZGUnOwokbGFuZ1sncHJvbXB0X3RydWUnXSA9ICdTYW5uJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQcmVmaWtzIHRpbCBicnVrIHDDpSBhbGxlIG5ldHRhZHJlc3NlciBtw6VscmV0dGV0IHRpbCBkZW5uZSBkZW5uZSBtb2R1bGVuJzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdCZW55dHQgaGllcmFraXN0aSBpIFByb2R1Y3QgZGV0YWxqIFVSTGVyJzsKJGxhbmdbJ3Byb21wdF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJ10gPSAnQmVueXR0IGRlbm5lIHNpZGVuIGZvciBzw7hrZXJlc3VsdGF0ZXIgb2dzw6UgPGVtPihvdmVyc3R5cmVyIHNlYXJjaHJlc3VsdHMgc2lkZXBhcmFtZXRlcmVuIGkgc8O4a2Vtb2R1bGVuKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ1Zla3RlbmhldGVyJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0VyIGRldHRlIGV0IG9mZmVudGxpZyBmZWx0Pyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaXNlcnQnOwokbGFuZ1sncXVhbnRpdHlfb25faGFuZCddID0gJ01lbmdkZSB0aWxnamVuZ2VsaWcnOwokbGFuZ1sncmFuZG9tJ10gPSAnVGlsZmVsZGlnJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdFbmRyZSBSZWtrZWbDuGxnZSc7CiRsYW5nWydyZW9yZGVyX2hpZXJhcmNoeSddID0gJ09tb3JnYW5pc2VyIGhpZXJhcmtpJzsKJGxhbmdbJ3Jlc2V0J10gPSAnTnVsbHN0aWxsJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnU2V0dCB0aWxiYWtlIHRpbCBmYWJyaWtraW5uc3RpbGxpbmdlcic7CiRsYW5nWydyZXR1cm4nXSA9ICdUaWxiYWtlJzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdSZXR1cm5lciB0aWwgdG9wcGVuIGF2IHZpc25pbmdlbic7CiRsYW5nWydyb290J10gPSAnUm90YSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTw7hrZSBtYWxlcic7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTGVnZyB0aWwvcmVkaWdlciBTw7hrZXNramVtYW1hbCc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdTw7hrZWVnZW5za2FwIGJlc2tyaXZlbHNlJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2thbCBzcMO4cnJpbmdlbiBwYXNzZSBhbGxlIGVsbGVyIG5vZW4gYXYga3JpdGVyaWVuZSBuZWRlbmZvcj8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdTw7hrZWVnZW5za2Fwc25hdm4nOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnUHJpc2ludGVydmFsbCc7CiRsYW5nWydzZWxlY3RfYWxsJ10gPSAnVmVsZyBhbGxlJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWZWxnIGVuJzsKJGxhbmdbJ3NldGRpc2FibGVkJ10gPSAnU2V0dCBzb20gRGVha3RpdmVydCc7CiRsYW5nWydzZXRkcmFmdCddID0gJ1NldHQgc29tIGtsYWRkJzsKJGxhbmdbJ3NldHB1Ymxpc2hlZCddID0gJ1NldHQgc29tIHB1Ymxpc2VydCc7CiRsYW5nWydza3UnXSA9ICdWLm5yLihTS1UpJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZXIgZXR0ZXInOwokbGFuZ1snc29ydF9vcmRlciddID0gJ1NvcnRlcmluZ3NyZWtrZWbDuGxnZSc7CiRsYW5nWydzb3VyY2UnXSA9ICdLaWxkZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF0dXMnOwokbGFuZ1snc3VibWl0J10gPSAnVXRmw7hyJzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ0Fib25uZW1lbnQnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0RldmVyaW5nc2ZyZWt2ZW5zJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnTGV2ZXJ0JzsKJGxhbmdbJ3N1YnNjcl9leHBpcnknXSA9ICdVdGzDuHBlcic7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ1V0bMO4cGVyJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTcOlbmVkbGlnJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdCZXRhbGluZ3NmcmVrdmVucyc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JldGFsdCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnS3ZhcnRhbHMnOwokbGFuZ1snc3Vic2NyX3NlbWlhbnVhbGx5J10gPSAnSGFsdi3DpXJsaWcnOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJ8OFcmxpZyc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAnU2FtbWVuZHJhZ3NtYWwnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMZWdnIHRpbC9yZWRpZ2VyIHNhbW1lbmRyYWdzbWFsJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdLYW4gaWxlZ2dlcyBhdmdpZnQnOwokbGFuZ1sndGVzdCddID0gJ1Rlc3QnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZWtzdG9tcsOlZGUnOwokbGFuZ1sndGV4dGJveCddID0gJ1Rla3N0IGlubnNrcml2aW5nJzsKJGxhbmdbJ3RpdGxlX2FkanVzdG1lbnQnXSA9ICdTa3JpdiBpbm4gZW4ganVzdGVyaW5nIGZyYSBncnVubnByaXNlbiBmb3IgcHJvZHVrdGFsdGVybmF0aXZldC4gU3ludGFrcyBlciBbKy1dIy4jIyc7CiRsYW5nWyd0aXRsZV9hdHRyaWJ1dGVfdGV4dCddID0gJ1Nrcml2IGlubiBlbiBrb3J0IGJlc2tyaXZlbHNlIGF2IGRldHRlIHByb2R1a3QgYWx0ZXJuYXRpdmV0JzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIEhpZXJhcmtpIHJhcHBvcnRtYWwnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG55IGthdGVnb3JpbGlzdGVtYWwnOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG55IGRldGFsam1hbCc7CiRsYW5nWyd0aXRsZV9xb2gnXSA9ICdFdmVudHVlbHQgYW5naSBldCBrdmFudHVtIHRpbGdqZW5nZWxpZyBmb3IgZGV0dGUgcHJvZHVrdGFsdGVybmF0aXZldC4gTWVyayAtICBGb3IgYXQgbWVuZ2RlIGp1c3RlcmluZ2VyIHNrYWwgdsOmcmUgYXV0b21hdGlzayBtw6UgU0tVIGZlbHRldCBtw6Ugb2dzw6UgZnlsbGVzIHV0JzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBueSBzw7hrZW1hbCc7CiRsYW5nWyd0aXRsZV9za3UnXSA9ICdEZW5uZSBTS1UgYnJ1a2VzIGZvciDDpSBhZG1pbmlzdHJlcmUga3ZhbnRpdGV0IHRpbGdqZW5nZWxpZywgb2cga2FtcGFuamVyIGZvciBwcm9kdWt0IGFsdGVybmF0aXZlci4nOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBueSBzYW1tZW5kcmFnc21hbCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd1cCddID0gJ0ZseXR0IG9wcCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcHBkYXRlcic7CiRsYW5nWyd1cGxvYWQnXSA9ICdWZWxnIGVuIGZpbCDDpSBsYXN0ZSBvcHAnOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnVVJMIGFsaWFzJzsKJGxhbmdbJ3VybF9zbHVnJ10gPSAnVVJMIFNsdWcnOwokbGFuZ1sndmFsaWQnXSA9ICdHeWxkaWcnOwokbGFuZ1sndmFsdWUnXSA9ICdWZXJkaSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdWZXJkaWVyJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaXMnOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnVmVsZyBicnVrZXJkZWZpbmVydGUgZmVsdGVyIHNvbSBza2FsIHZpc2VzIGkgdGFiZWxsZW4nOwokbGFuZ1snd2Fybl9lZGl0X3Byb2R1Y3Rfb3B0aW9ucyddID0gJ0h2ZXJ0IHByb2R1a3QgdmFsZyBtw6UgaGEgZW4gdW5payBzdHJlbmcuIE9tIFNLVS92YXJlbnVtbWVyIGVyIHDDpWtyZXZkIHPDpSBtw6UgZGV0IHbDpnJlIHVuaWt0IHDDpSB0dmVycyBhdiBoZWxlIHN5c3RlbWV0Lic7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdWYW5ubWVya2UgbG9rYXNqb24nOwokbGFuZ1snd2VpZ2h0J10gPSAnVmVrdCc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnTWVkIHZhbGd0ZSc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSGcnOwokbGFuZ1snYWJicl9sZW5ndGgnXSA9ICdMJzsKJGxhbmdbJ2FiYnJfd2lkdGgnXSA9ICdCcic7CiRsYW5nWydhZGQnXSA9ICdWb2VnIHRvZSc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ1ZvZWcgY2F0ZWdvcmllIHRvZSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ1ZvZWcgdmVsZCB0b2UnOwokbGFuZ1snYWRkb3B0aW9uJ10gPSAnVm9lZyBvcHRpZSB0b2UnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ1ZvZWcgcHJvZHVjdCB0b2UnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdWb2VnIGF0dHJpYnV1dCB0b2UnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnS29wcGVsIHZlbGQgbWV0IGNhdGVnb3JpZTogIiVzIic7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdWb2VnIGVlbiBoaWVyYXJjaGllIHN0YXAgdG9lJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdWb2VnIGF0dHJpYnV1dG9wdGllIHRvZSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnQWFucGFzYmFhcic7CiRsYW5nWydhZG1pbl9vbmx5J10gPSAnS2FuIGFsbGVlbiBkZSBhZG1pbmlzdHJhdG9yIGRpdCBhdHRyaWJ1dXQgemllbj8nOwokbGFuZ1snYWR2YW5jZWQnXSA9ICdHZWF2YW5jZWVyZCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ09uZGVyIE1pZGRlbic7CiRsYW5nWydhbGlnbl9sbCddID0gJ09uZGVyIExpbmtzJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnT25kZXIgUmVjaHRzJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnTWlkZGVuJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnTWlkZGVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWlkZGVuIFJlY2h0cyc7CiRsYW5nWydhbGlnbl91YyddID0gJ0JvdmVuIE1pZGRlbic7CiRsYW5nWydhbGlnbl91bCddID0gJ0JvdmVuIExpbmtzJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnQm92ZW4gUmVjaHRzJzsKJGxhbmdbJ2FsbCddID0gJ0FsbGUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ0FsbGUgY2F0ZWdvcmllw6tuJzsKJGxhbmdbJ2FueSddID0gJ0VuaWdlJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdXZWV0IHUgZGl0IHpla2VyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGl0IHByb2R1Y3QgZW4gYWxsZSBiaWpiZWhvcmVuZGUgaW5mb3JtYXRpZSB3aWx0IHZlcndpamRlcmVuPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdPcGxvcGVuZCc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV1dCBOYWFtJzsKJGxhbmdbJ2F0dHJpYl90ZXh0J10gPSAnVGVrc3QnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzY2gnOwokbGFuZ1snYnRuX3NldGVjb21oYW5kbGVycyddID0gJ0UtQ29tbWVyY2UgR2ViZXVydGVuaXNzZW4gaW5zdGVsbGVuJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2hpZSBTamFibG9uZW4nOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnSGllcmFyY2hpZSBTamFibG9vbiB0b2V2b2VnZW4vYWFucGFzc2VuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXJlbic7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnQ2F0ZWdvcmllw6tuJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gY2F0ZWdvcmllIG1ldCBkZXplIG5hYW0nOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnQ2F0ZWdvcmllIExpanN0IFNqYWJsb25lbic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQ2F0ZWdvcmllIExpanN0IFNqYWJsb29uIHRvZXZvZWdlbi9hYW5wYXNzZW4nOwokbGFuZ1snY2RfYXV0b2NvbXBsZXRlJ10gPSAnVHlwZSBkZSBlZXJzdGUgbGV0dGVycyB2YW4gZGUgYmVkcmlqZnNuYWFtJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltZXRlcic7CiRsYW5nWydjaGVja2JveCddID0gJ1Zpbmt2YWtqZSc7CiRsYW5nWydjb21wYW55ZGlyX3JlZmVyZW5jZSddID0gJ0NvbXBhbnkgRGlyZWN0b3J5IEl0ZW0gSWQnOwokbGFuZ1snY29uZmlybV9kZWxldGVhbGxvcHRpb25zJ10gPSAnV2VldCB1IHpla2VyIGRhdCB1IGFsbGUgb3B0aWVzIHZvb3IgZGl0IHByb2R1Y3Qgd2lsdCB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdCZW50IHUgemVrZXIgZGF0IHUgZGV6ZSBub2RlIHdpbHQgdmVyd2lqZGVyZW4/ICBFbGsgcHJvZHVjdCB3YXQgZ2VicnVpayBtYWFrdCB2YW4gZGV6ZSBub2RlIHphbCBuaWV0IG1lZXIgb25kZXIgZWVuIGhpw6tyYXJjaGllIHZhbGxlbi4nOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdCZW50IHUgemVrZXIgZGF0IHUgZGl0IHdpbHQgdWl0dm9lcmVuP1xuXG5WZXJrZWVyZGUgaW5zdGVsbGluZ2VuIG9mIGVlbiB2ZXJrZWVyZCBjb25maWd1cmF0aWViZXN0YW5kIGthbiBoZXQgaGVsZSBzeXN0ZWVtIGluIGRlIHdhciBicmVuZ2VuLiBXYXQgcmVzdWx0ZWVydCBpbiBlZW4gbmlldCB3ZXJrZW5kZSBwcm9kdWN0ZW4gbW9kdWxlLic7CiRsYW5nWydjb3B5J10gPSAnS29waWUnOwokbGFuZ1snY29weV9hdHRyaWJ1dGUnXSA9ICdLb3BpZWVyIFByb2R1Y3QgT3B0aWVzJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdLb3BpZWVyIGF0dHJpYnV0ZW5zZXQnOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0NhdGVnb3JpZSBrb3BpZXJlbic7CiRsYW5nWydjb3B5X29wdGlvbnNfZnJvbSddID0gJ0tvcGllZXIgYWxsZSBvcHRpZXMgdmFuJzsKJGxhbmdbJ2NvcHlfcHJvZHVjdCddID0gJ0tvcGllZXIgZGl0IGl0ZW0nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdBYW5nZW1hYWt0IG9wJzsKJGxhbmdbJ2N1cnJlbnRfdmFsdWUnXSA9ICdIdWlkaWdlIHdhYXJkZSc7CiRsYW5nWydkYXRhJ10gPSAnR2VnZXZlbnMnOwokbGFuZ1snZGVmYXVsdCddID0gJ1N0YW5kYWFyZCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnU3RhbmRhYXJkIFNqYWJsb25lbic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+T3BtZXJraW5nOjwvc3Ryb25nPiBEZSBpbmhvdWQgdmFuIGRlemUgdGVrc3RibG9ra2VuIHdvcmRlbiBnZWJydWlrdCBvbSBkZSBzdGFuZGFhcmQgd2FhcmRlbiB2YW4gZWVuIHRlbXBsYXRlIG9wIHRlIHNsYWFuLiBBbHMgdSBvcCBkZSBrbm9wICJWb2VnIHRlbXBsYXRlIHRvZSIga2xpa3QgZGFuIHp1bGxlbiBkZXplIHN0YW5kYWFyZCB3YWFyZGVuIGluIGhldCBuaWV1d2UgdGVtcGxhdGUgd29yZGVuIG9wZ2Vub21lbi4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZGVsZXRlX2FsbCddID0gJ1ZlcndpamRlciBhbGxlcyc7CiRsYW5nWydkZWxldGVfYXR0cmlidXRlJ10gPSAnVmVyd2lqZGVyIEF0dHJpYnV1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdWZXJ3aWpkZXIgSGllcmFyY2hpZSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdBZmxvcGVuZCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ09tc2NocmlqdmluZyc7CiRsYW5nWydkZXN0aW5hdGlvbiddID0gJ0Jlc3RlbW1pbmcnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFNqYWJsb25lbic7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnVG9ldm9lZ2VuL3dpanppZ2VuIERldGFpbCBTamFibG9vbic7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAnRGltZW5zaWUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdVaXRnZXNjaGFrZWxkJzsKJGxhbmdbJ2Rvd24nXSA9ICdOYWFyIGJlbmVkZW4nOwokbGFuZ1snZHJhZnQnXSA9ICdDb25jZXB0JzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICdEcm9wZG93biBvcHRpZXMgPGVtPih3b3JkdCBhbGxlZW4gdG9lZ2VwYXN0IG9wIHZlbGRlbik8L2VtPjxiciAvPjxiciAvPjxlbT4oMSBpbnZvZXIgcGVyIHJlZ2VsKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdBYW5wYXNzZW4nOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdXaWp6aWcgYXR0cmlidXV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0F0dHJpYnV1dCBHcm9lcGVuIGFhbnBhc3Nlbic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnQXR0cmlidXV0IEdyb2VwIGFhbnBhc2VuIHZvb3InOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnQXR0cmlidXV0IGFhbnBhc3Nlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmllIGFhbnBhc3Nlbic7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0NhdGVnb3JpZSBWZWxkZW4gYWFucGFzc2VuJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdXaWp6aWcgSGllcmFyY2hpZSBJdGVtJzsKJGxhbmdbJ2VkaXRfbm90ZXMnXSA9ICdXaWp6aWcgT3BtZXJraW5nZW4nOwokbGFuZ1snZWRpdF9vcHRpb25zJ10gPSAnV2lqemlnIFByb2R1Y3QgT3B0aWVzJzsKJGxhbmdbJ2VkaXRfb3B0aW9uX25vdGVzJ10gPSAnV2lqemlnIE9wdGllIE9wbWVya2luZ2VuJzsKJGxhbmdbJ2VkaXRfcHJvZHVjdCddID0gJ1dpanppZyBJdGVtJzsKJGxhbmdbJ2Vyb3JyX3FvaF9uZWdhdGl2ZV9hdHJvdyddID0gJ1Zvb3JyYWFkIGhvZXZlZWxoZWlkIGthbiBuaWV0IG5lZ2V0aWVmIHppam4gYmlqICVkJzsKJGxhbmdbJ2Vycm9ycyddID0gJ0ZvdXRlbic7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnRXIgYmVzdGFhdCBhbCBlZW4gYXR0cmlidXV0IG1ldCBkZXplIG5hYW0nOwokbGFuZ1snZXJyb3JfZGJlcnJvciddID0gJ0RhdGFiYXNlIGZvdXQnOwokbGFuZ1snZXJyb3JfZGVsZXRlX2xhc3Ryb3cnXSA9ICdEZSBsYWF0c3RlIHJlZ2VsIGthbiB6byBuaWV0IHdvcmRlbiB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdEdWJiZWxlIFVpdGxldmVyZWVuaGVpZCB3YWFyZGUgZ2V2b25kZW4nOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0RlIFZlbGQgV2FhcmRlIG1hZyBuaWV0IGxlZWcgemlqbic7CiRsYW5nWydlcnJvcl9maWxlZm9ybWF0J10gPSAnQmVzdGFuZCBGb3JtYXQgcHJvYmxlZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnQmVzdGFuZCBuaWV0IGdldm9uZGVuJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlZW0gbWV0IG9wZW5lbiB2YW4gYmVzdGFuZCAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnT25nZWxkaWdlIE91ZGVyIChlZW4gaGllcmFyY2hpZSBub2RlIGthbiBuaWV0IHppam4gZWlnZW4gb3VkZXIgemlqbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnRGUgYWFuZ2VwYXN0ZSB2ZWxkIHdhYXJkZSBkaWUgdSBoZWVmdCBpbmdldm9lcmQga2xvcHQgbmlldCAoZXIgc3RhYW4gb29rIG5pZXQgYWxmbnVtZXJpZWtlIGthcmFrdGVycyBpbiknOwokbGFuZ1snZXJyb3JfaW52YWxpZF92YWx1ZSddID0gJ09uZ2VsZGlnZSB3YWFyZGUgb3BnZWdldmVuJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ0VlbiBiZW5vZGlnZGUgcGFyYW1ldGVyIG1pc3Qgb2YgaXMgbmlldCBnZWxkaWcnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFZW4gaXRlbSBtZXQgZGV6ZSBuYWFtIGlzIGFsIGluIGdlYnJ1aWsnOwokbGFuZ1snZXJyb3JfbmVlZHR3b3Jvd3MnXSA9ICdNaW5pbWFhbCB0d2VlIHJlZ2VscyBpcyB2ZXJwbGljaHQnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdTZWxlY3RlZXIgYS51LmIuIGVlbiB2ZWxkdHlwZSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdVIG1vZXQgZWVuIG5hYW0gaW52b2VyZW4nOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ0VyIGlzIHNsZWNodHMgZWVuIHZlbGQgbWV0IGRlIGhvZXZlZWxoZWlkIHRvZWdlc3RhYW4nOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdFciBpcyDDqcOpbiBsaWRtYWF0c2NoYXB2ZWxkIHRvZWdlc3RhYW4nOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1RvZWdhbmcgZ2V3ZWlnZXJkJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdPbmdlbGRpZ2UgcHJpanMgYWFucGFzc2luZyB2YW4gaXRlbSAlcyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ0RlIGdlbm9lbWRlIGFsaWFzIGlzIGFsIGluIGdlYnJ1aWsnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ0VyIGJlc3RhYXQgYWwgZWVuIHByb2R1Y3QgbWV0IGRlemUgbmFhbSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAnSGV0IGdldnJhYWdkZSBwcm9kdWN0IGthbiBuaWV0IHdvcmRlbiBnZXZvbmRlbic7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdEZXplIFVpdGxldmVyZWVuaGVpZCBpcyBhbCBpbiBnZWJydWlrIGRvb3IgZWVuIGFuZGVyIHByb2R1Y3QnOwokbGFuZ1snZXJyb3Jfc2t1X3JlcXVpcmVkJ10gPSAnVm9lciBlZW4gdW5pZWtlIFNLVSBpbic7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIG1pc2x1a3Q6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ1NsdWl0IHByb2R1Y3RlbiBpbiBkZSBnZXNlbGVjdGVlcmRlIGNhdGVnb3Jpw6tuIHVpdCB2YW4gZGUgcmVzdWx0YXRlbic7CiRsYW5nWydleHBpcmVfb25lX3llYXInXSA9ICdOYSBlZW4gamFhcic7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ05hIHplcyBtYWFuZGVuJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ05hIHR3ZWUgamFhcic7CiRsYW5nWydleHBvcnRjYXRzJ10gPSAnRXhwb3J0IENhdGVnb3Jpw6tuJzsKJGxhbmdbJ2V4cG9ydF90b19jc3YnXSA9ICdFeHBvcnQgbmFhciBDU1YnOwokbGFuZ1snZXh0cmExJ10gPSAnRXh0cmEgdmVsZCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIHZlbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ1ZlbGQnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdWZWxkZGVmaW5pdGllJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ1ZlbGRkZWZpbml0aWVzJzsKJGxhbmdbJ2ZpZWxkcyddID0gJ1ZlbGRlbic7CiRsYW5nWydmaWxlJ10gPSAnQmVzdGFuZCc7CiRsYW5nWydmaWx0ZXJpbnVzZSddID0gJ2luIHdlcmtpbmcnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ0FsZ2VtZW5lIGluc3RlbGxpbmdlbic7CiRsYW5nWydnbyddID0gJ0dhIG5hYXInOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpZSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJjaGllIFBvc2l0aWUnOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnSGllcmFjaGllIGluc3RlbGxpbmdlbic7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ0FmYmVlbGRpbmcnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdJbnN0ZWxsaW5nZW4gYWZiZWVsZGluZyBhZmhhbmRlbGluZyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICdJbXBvcnRlZXIgcHJvZHVjdGVuIHZhbnVpdCBlZW4gQ1NWIGZpbGUnOwokbGFuZ1snaW5jaGVzJ10gPSAnaW5jaGVzJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdXNpZWYgb25kZXJsaWdnZW5kZW4/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnQWxsZWVuIGFsZmFudW1lcmlla2Uga2FyYWt0ZXJzLiBHZWVuIHdpdHJ1aW10ZSwgYWFuaGFsaW5nc3Rla2VucyBvZiBsZXR0ZXIvbnVtbWVyIGNvbWJpbmF0aWVzJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdNb2dlbGlqa2Ugd2FhcmRlbiB6aWpuOiB7JGF0dHJpYl90ZXh0fSwgeyRhdHRyaWJfYWRqdXN0fSwgeyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dGVuIGdla29waWVlcmQnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTdGVsIGhldCBhYW50YWwgcmVnZWxzIG9tIHVpdCB0ZSB2b2VyZW4gcGVyIFwnYmF0Y2hcJyBpbi4gTmFkYXQgZWVuIGJhdGNoIGlzIHZvbHRvb2lkLCB6YWwgZGUgaW1wb3J0ZXIgd29yZGVuIGRvb3J2ZXJ3ZXplbiBlbiBkb29yZ2FhbiBtZXQgZGUgb3BlcmF0aWUuIEFscyB1IHZlcndhY2h0IGRhdCBlciBtb2dlbGlqayBnZWhldWdlbmZvdXRlbiBnYWFuIG9udHN0YWFuIG9mIHRpbWUtb3V0cHJvYmxlbWVuIGRvb3IgaGV0IGhvZ2UgYWFudGFsIHJlZ2VscyBwZXIga2VlciwgZGFuIGt1bnQgdSBiZXRlciBjb250YWN0IG9wbmVtZW4gbWV0IHV3IGhvc3Rpbmdwcm92aWRlciBvZiBkaXQgbnVtbWVyIGxhZ2VyIGluc3RlbGxlbi4nOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdEZXplIHBhcmFtZXRlcnMgd29yZGVuIGRvb3JnZWdldmVuIGFhbiBkZSBnZXNlbGVjdGVlcmRlIGNhcnQgbW9kdWxlIHZhbnVpdCBoZXQgIHByb2R1Y3QgdWl0Z2VicmVpZCBlbiBvcHNvbW1pbmcgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdEZXplIGFjdGllIHphbCBkZSBhdHRyaWJ1dGVuc2V0cyBrb3BpZcOrcmVuIChleGNsdXNpZWYgc2t1IHdhYXJkZXMpIHZhbiBlZW4gYW5kZXIgcHJvZHVjdCc7CiRsYW5nWydpbmZvX2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdNYWFrIGF1dG9tYXRpc2NoIGVlbiBwcm9kdWN0Y2F0ZWdvcmllIGFhbiBkaWUgdm9vcmtvbXQgaW4gaGV0IENTViBmaWxlIGFscyBkZXplIG5vZyBuaWV0IGJlc3RhYXQnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdNYWFrIG9uYmVrZW5kZSBwcm9kdWN0dmVsZGVuIGF1dG9tYXRpc2NoIGFhbj8gPGVtPihaZSB3b3JkZW4gZGFuIGFhbmdlbWFha3QgYWxzIHRla3N0dmVsZCk8L2VtPic7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ01hYWsgYXV0b21hdGlzY2ggZWVuIHByb2R1Y3QgaGnDq3JhcmNoaWUgYWFuIGRpZSB2b29ya29tdCBpbiBoZXQgQ1NWIGZpbGUgYWxzIGRlemUgbm9nIG5pZXQgYmVzdGFhbic7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdEZSBtb2R1bGUgZ2VicnVpa3QgZWVuIHB1bnQgKC4pIGFscyBoZXQgZGVjaW1hbGUgc2NoZWlkaW5nc3Rla2VuIGIudi46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZmljZWVyIGhldCBrYXJha3RlcihzKSBkYXQgZ2VicnVpa3QgbW9ldCB3b3JkZW4gb20gdmVsZGVuIHRlIHNjaGVpZGVuJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZpY2VlciBob2UgaGV0IHN5c3RlZW0gbW9ldCBoYW5kZWxlbiBhbHMgZXIgZWVuIHByb2R1Y3Qgdm9vcmtvbXQgbWV0IGRlemVsZmRlIG5hYW0gaW4gaGV0IENTViBmaWxlJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+T3BtZXJraW5nOjwvc3Ryb25nPiBEZSBoaWVyIGFhbndlemlnZSB2ZWxkZW4gemlqbiBiZXNjaGlrYmFhciB2b29yIGFsbGUgcHJvZHVjdGVuLic7CiRsYW5nWydpbmZvX2ZpZWxkcHJvYmxlbXMnXSA9ICdFciBpcyBwcm9ibGVlbSBvbnRzdGFhbiBtZXQgaGV0IHZlcndlcmtlbiB2YW4gZWVuIG9mIG1lZXIgYWFuZ2VtYWFrdGUgdmVsZGVuLiAgRGV6ZSBhY3RpZSBpcyBjb3JyZWN0IHVpdGdldm9lcmQuIG1hYXIgaGV0IGlzIHZlcnN0YW5kaWcgYWxsZXMgdGUgY29udHJvbGVyZW4gZW4gZXZlbnR1ZWVsIHRlIGhlcnN0ZWxsZW4uJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnQWxzIGJpaiBlZW4gaW1wb3J0IGVlbiBiZXN0YW5kc25hYW0gdmFuIGVlbiBhZmJlZWxkaW5nIHdvcmR0IGdldm9uZGVuLCBtb2V0IGhldCBkYW4gdmVycGxhYXRzdCB3b3JkZW4gdmFuIGRlIGJyb25sb2NhdGllLCB3b3JkZW4gZ2V3YXRlcm1lcmt0LCBnZXRodW1uYWlsZWQgb2YgaGV0IGJlc3RhbmRzdHlwZSB3b3JkZW4gZ2V3aWp6aWdkIG5hYXIgImltYWdlIi4nOwokbGFuZ1snaW5mb19oaWVycGFnZSddID0gJ0dlYnJ1aWsgZGV6ZSBwYWdpbmEgdm9vciBkZSBoaWXDpHJjaGlzY2hlIHdlZXJnYXZlLiBEZSBwYWdpbmFpZCB6YWwgbmlldCB3b3JkZW4gd2VlcmdlZ2V2ZW4gaW4gZGUgVVJMLic7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ0luIGRpdCBwYWQgKGdlemllbiB2YW5hZiBkZSB1cGxvYWRzLW1hcCkga3VubmVuIGRlIGFmYmVlbGRpbmdlbiB3b3JkZW4gZ2V2b25kZW4gZGllIHppam4gb3BnZWdldmVuIGluIGhldCBnZcOvbXBvcnRlZXJkZSBiZXN0YW5kLic7CiRsYW5nWydpbmZvX2ltYWdlc3R1ZmZfZGVwcmVjYXRlZCddID0gJ0RlIGZ1bmN0aWVzIHZlcndlcmtlbiB2YW4gYWZiZWVsZGluZ2VuIHppam4gdmVybG9wZW4gZW4genVsbGVuIHdvcmRlbiB2ZXJ3aWpkZXJkIGluIHRvZWtvbXN0aWdlIHZlcnNpZXMuIEdlYnJ1aWsgQ0dTbWFydEltYWdlIHZvb3IgaGV0IHZlcndlcmtlbiB2YW4gYWZiZWVsZGluZ2VuLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0VlbiBrb3J0ZSB0ZXN0IGhlZWZ0IHBsYWF0c2dldm9uZGVuIG9wIGhldCBnZXNlbGVjdGVlcmRlIGdlc2VsZWN0ZWVyZGUgYmVzdGFuZCBlbiBhbGxlcyBsaWprdCBpbiBvcmRlLjxici8+RGl0IGlzIGVjaHRlciBnZWVuIGdhcmFudGllIGRhdCBlciBnZWVuIGZvdXRlbiBpbiBoZXQgYmVzdGFuZCBhYW53ZXppZyB6aWpuLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnVm9lZyBkZSBoaWXDpHJjaGllIG5hYW0gdG9lIGFhbiBkZSBVUkwnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdEZXplIG9wdGllIGJlcGFhbGQgaGV0IGdlZHJhZyB2YW4gZGUgd2Vic2l0ZSB3YW5uZWVyIGVlbiBkZXRhaWx3ZWVyZ2F2ZSB2YW4gZWVuIHByb2R1Y3QgcmVjaHRzdHJlZWtzIHdvcmR0IGJlem9jaHQgbWV0IGVlbiBVUkwgZW4gZGF0IHByb2R1Y3Qgb20gZWVuIGJlcGFhbGRlIHJlZGVuICh1aXRnZXNjaGFrZWxkLCB2ZXJ3aWpkZXJkLCBldGMuKSBuaWV0IGthbiB3b3JkZW4gYmV6b2NodC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1B1YmxpZWtlIHZlbGRlbiB6aWpuIHppY2h0YmFhciB2b29yIGhldCBwdWJsaWVrJzsKJGxhbmdbJ2luZm9fcmVvcmRlcl9jb250ZW50J10gPSAnRGV6ZSBhY3RpZSBzdGFhdCBoZXQgc2xlcGVuIHZhbiBpbmRpdmlkdWVsZSBpdGVtcyBpbiBkZSBib29tc3RydWN0dXVyIHRvZS4gWm8ga3VudCB1IGRlIHZvbGdvcmRlIGFhbnBhc3NlbiB3YWFyaW4gZGUgaXRlbXMgd29yZGVuIHdlZXJnZXZlbiBpbiBkZSBoacOrcmFyY2hpc2NoZSB3ZWVyZ2F2ZS4nOwokbGFuZ1snaW5mb19zZXRlY29taGFuZGxlcnMnXSA9ICdEZXplIGtub3AgZ2FyYW5kZWVydCBkYXQgZGUgZ2ViZXVydGVuaXNzZW4gdm9vciBlLWNvbW1lcmNlYWN0aXZpdGVpdGVuIGp1aXN0IHppam4gZ2XDr25zdGFsbGVlcmQuIERpdCBpcyBoYW5kaWcgd2FubmVlciBkZSBwcm9kdWN0ZW5tb2R1bGUgZGUgYmVzY2hpa2JhcmUgaG9ldmVlbGhlZGVuIGJpaiB3aWwgaG91ZGVuLCBtYWFyIGRlIGdlYmV1cnRlbmlzaGFuZGxlcnMgbmlldCB6aWpuIGFhbmdlbWFha3QgdGlqZGVuIGRlIGluc3RhbGxhdGllIG9mIHVwZ3JhZGUuJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ092ZXJzY2hyaWp2ZW4nOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ1NsYSBvdmVyJzsKJGxhbmdbJ2xhYmVsX3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdMYWF0c3QgYWFuZ2VwYXN0IG9wJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnVHdlZWRlIEFmYmVlbGRpbmcnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW1hbGUgbGVuZ3RlIDxlbT4oYWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGhldCB0ZWtzdHZlbGQpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnQWFuZ2VwYXN0IG9wJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0VlbiBtb2R1bGUgdm9vciBoZXQgbWFuYWdlbiB2YW4gZWVuIHByb2R1Y3RjYXRhbG9ndXMuIERlIHByb2R1Y3RlbiB6aWpuIHZvb3J6aWVuIHZhbiBlZW4gcHJpanMsIGVlbiBmb3RvLCBldGMuIE9vayBpcyBlciBlZW4gbW9nZWxpamtoZWlkIHZvb3IgZWVuIHdpbmtlbHdhZ2VuIHRlIG1ha2VuLic7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdWZXJzY2h1aWYgbmFhciBiZW5lZGVuJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdWZXJzY2h1aWYgbmFhciBib3Zlbic7CiRsYW5nWydtc2dfY2F0ZWdvcnlfZGVsZXRlZCddID0gJ0NhdGVnb3JpZSB2ZXJ3aWpkZXJkJzsKJGxhbmdbJ21zZ19ldmVudGhhbmRsZXJzX2NyZWF0ZWQnXSA9ICdHZWJldXJ0ZW5pc2hhbmRsZXJzIGdlY3JlZcOrcmQuJzsKJGxhbmdbJ21zZ19vcHRpb25zX3NhdmVkJ10gPSAnUHJvZHVjdCBvcHRpZXMgb3BnZXNsYWdlbic7CiRsYW5nWyduYW1lJ10gPSAnTmFhbSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1UgaGVlZnQgbmlldCBkZSB2ZXJlaXN0ZSByZWNodGVuOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ05pZXV3ZSBDYXRlZ29yaWUgTmFhbSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdFciBpcyBnZWVuIG5hYW0gaW5nZXZ1bGQnOwokbGFuZ1snbm9uZSddID0gJ0dlZW4nOwokbGFuZ1snbm90ZXMnXSA9ICdPcG1lcmtpbmdlbic7CiRsYW5nWydub3RoaW5nX3NlbGVjdGQnXSA9ICdOaWV0cyBnZXNlbGVjdGVlcmQnOwokbGFuZ1snbnVtZXJpYyddID0gJ051bWVyaWVrJzsKJGxhbmdbJ29mJ10gPSAnVmFuJzsKJGxhbmdbJ29rJ10gPSAnT2vDqSc7CiRsYW5nWydvcGVyYXRpb25fY2FuY2VsbGVkJ10gPSAnQWN0aWUgZ2Vhbm51bGVlcmQnOwokbGFuZ1snb3BlcmF0aW9uX2NvbXBsZXRlJ10gPSAnT3BlcmF0aWUgdWl0Z2V2b2VyZCc7CiRsYW5nWydwYWdlJ10gPSAnUGFnaW5hJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICdQYWdpbmEgTGltaWV0JzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdQYWdpbmEgJXMgdmFuICVzJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBbGxlZW4gdmFuIHRvZXBhc3Npbmcgb3AgZGUgImNhdGVnb3J5bGlzdCIgYWN0aWUsIGRlemUgcGFyYW1ldGVyIGthbiBnZWJydWlrdCB3b3JkZW4gb20gY2F0ZWdvcmnDq24gdGUgZmlsdGVyZW4gb3AgYmFzaXMgdmFuIGRlIHdhYXJkZSB2YW4gaGV0IGNhdGVnb3JpZXZlbGQuIEhldCB3ZXJrdCBuaWV0IGluIGNvbWJpbmF0aWUgbWV0IGRlICJjYXRlZ29yeSIgb2YgZGUgImNhdGVnb3J5X2lkIiBwYXJhbWV0ZXJzLiBEZSBzeW50YXggdmFuIGRlemUgcGFyYW1ldGVyIGlzIGVlbiBrb21tYWdlc2NoZWlkZW4gbGlqc3QgbWV0IHZlbGRuYW1lbiBlbiB2ZWxkd2FhcmRlbi4gIEJpanZvb3JiZWVsZDogIGNhdGVnb3J5bGlzdD0idmVsZG5hYW06d2FhcmRlLHZlbGRuYWFtIDI6d2FhcmRlIDIiJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIHByb2R1Y3RzIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5JzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0hlZWZ0IGFsbGVlbiB6aW4gaW4gZGUgdWl0Z2VicmVpZGUgc2phYmxvb24uIERlemUgcGFyYW1ldGVyIGdlZWZ0IGFhbiB3ZWxrIHByb2R1Y3QgdGUgZ2VicnVpa2VuIGJpaiBoZXQgd2VlcmdldmVuLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzZWFyY2ggcmVzdWx0cyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FsbGVlbiB2YW4gdG9lcGFzc2luZyBvcCBkZSB6b2VrYWN0aWVzLCBkZXplIHBhcmFtZXRlciBrYW4gZWVuIGtvbW1hZ2VzY2hlaWRlbiBsaWpzdCBiZXZhdHRlbiBtZXQgZGFhcmluIHZlbGRuYW1lbiBkaWUga3VubmVuIHdvcmRlbiB0b2VnZXZvZWdkIGluIGRlIHpvZWthY3RpZS4nOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGRlIHpvZWthY3RpZXMsIGRlemUgcGFyYW1ldGVyIHN0YWF0IG51IG9tIGVlbiBuaWV0IHN0YW5kYWFyZCB6b2Vrc2phYmxvb24gdGUgZ2VicnVpa2VuJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBwcm9kdWN0cykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnQWxsZWVuIHZhbiB0b2VwYXNzaW5nIG9wIGRlIHN0YW5kYWFyZCBzYW1lbnZhdHRpbmdzd2VlcmdhdmUsIGRlemUgcGFyYW1ldGVyIGthbiB3b3JkZW4gZ2VicnVpa3Qgb20gd2FhcmRlcyBvbSB0ZSB6ZXR0ZW4gbmFhciBlZW4gYW5kZXIgdHlwZSB2b29yIHNvcnRlcmluZy4gIEdlbGRpZ2Ugd2FhcmRlbiB6aWpuIFNUUklORywgU0lHTkVEIGVuIFVOU0lHTkVELiBBbHMgZGl0IG5pZXQgaXMgb3BnZWdldmVuIGRhbiB6YWwgc3RhbmRhYXJkIFNUUklORyB3b3JkZW4gZ2Vrb3plbi4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBbGxlZW4gdmFuIHRvZXBhc3Npbmcgb3AgYWN0aW9uPWhpZXJhcmNoeSwgc3RhYXQgdG9lIG9wIGVlbiBwYWdpbmEgaWQgb2YgYWxpYXMgb3AgdGUgZ2V2ZW4gZGllIG1vZXQgd29yZGVuIGdlYnJ1aWt0IHZvb3IgZGUgbGlua3MgaW4gZGUgc2FtZW52YXR0aW5nc3dlZXJnYXZlLic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdEZXplIHBhcmFtZXRlciBnZWVmdCBhYW4gd2Vsa2Ugb3Bzb21taW5nIHNqYWJsb29uIGVyIGdlYnJ1aWt0IG1vZXQgd29yZGVuLiBBbHMgZXIgZ2VlbiBnZXNlbGVjdGVlcmQgd29yZHQgZGFuIHdvcmQgZGUgc3RhbmRhYXJkIHNqYWJsb29uIGdlYnJ1aWt0Lic7CiRsYW5nWydwYXJlbnQnXSA9ICdCb3ZlbmxpZ2dlbmRlJzsKJGxhbmdbJ3BoX29wdGlvbnRleHQnXSA9ICdWb2VyIGVlbiB1bmlla2Ugb3B0aWUgdGVrc3QgdG9lJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnRGUgUHJvZHVjdHMgbW9kdWxlIGlzIGdlaW5zdGFsbGVlcmQnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0RlIFByb2R1Y3RzIG1vZHVsZSBpcyB2ZXJ3aWpkZXJkIGluY2x1c2llZiBhbGxlIGJpamJlaG9yZW5kZSBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnVm9vcmtldXJlbic7CiRsYW5nWydwcmVmaXhfY29weW9mJ10gPSAnS29waWVlciB2YW4nOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnQWxzIGRlIG1vZHVsZSB3b3JkdCB2ZXJ3aWpkZXJkIGRhbiB3b3JkIG9vayBhbGxlIGFhbndlemlnZSBkYXRhIGdld2lzdC4gQmVudCB1IHpla2VyIGRhdCB1IHdpbHQgdmVyZGVyZ2Fhbj8nOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpanMnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaWpzd2lqemlnaW5nJzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnUHJvZHVjdG5hYW0nOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWN0ZW4nOwokbGFuZ1sncHJvZHVjdF9kZXRhaWxfc2V0dGluZ3MnXSA9ICdQcm9kdWN0IERldGFpbCBJbnN0ZWxsaW5nZW4nOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnUHJvZHVjdCBXaWp6aWdlbiBpbnN0ZWxsaW5nZW4nOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWN0aGllcmFyY2hpZSc7CiRsYW5nWydwcm9kdWN0X2luZm8nXSA9ICdQcm9kdWN0aW5mb3JtYXRpZSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWN0bWFuYWdlcic7CiRsYW5nWydwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnXSA9ICdQcm9kdWN0c2FtZW52YXR0aW5nIGluc3RlbGxpbmdlbic7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Zvb3J0Z2FuZyc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ1RvZXZvZWdlbi9XaWp6aWdlbiBBdHRyaWJ1dGVuIFNldCc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9maWxldHlwZXMnXSA9ICdTdGEgaGV0IHVwbG9hZGVuIHZhbiBiZXN0YW5kZW4gdG9lIG1ldCBkZXplIGV4dGVuc2llcyAodm9vciBuaWV0LWFmYmVlbGRpbmdlbiknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ1N0YSBoZXQgdXBsb2FkZW4gdmFuIGJlc3RhbmRlbiB0b2UgbWV0IGRlemUgZXh0ZW5zaWVzICh2b29yIGFmYmVlbGRpbmdlbiknOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdTY2hha2VsIHN0YW5kYWFyZCBpbiB2b29yIGFsbGUgbmlldXdlIHByb2R1Y3Rlbic7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdTamFibG9vbiB2b29yIGhldCwgaW4gZWVuIGRyb3Bkb3duIHRvbmVuIHZhbiBwcm9kdWN0IGF0dHJpYnV0ZW4nOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ1ZvbHVtZSBncm9vdHRlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZSddID0gJ0NhcnQgTW9kdWxlJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJ0IE1vZHVsZSBQYXJhbWV0ZXJzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnTWFhayBjYXRlZ29yacOrbic7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnTWFhayBwcm9kdWN0IHZlbGRlbj8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ01hYWsgcHJvZHVjdCBoacOrcmFyY2hpZSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ1VwbG9hZCBlZW4gQ1NWIGJlc3RhbmQnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ1ZhbHV0YWNvZGUnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnVmFsdXRhdGVrZW4nOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnU3RhbmRhYXJkIGhlYmJlbiBhbGxlIG5pZXV3ZSBwcm9kdWN0ZW4gZGV6ZSBzdGF0dXMnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ1N0YW5kYWFyZCB6aWpuIGFsbGUgcHJvZHVjdGVuIGJlbGFzdGJhYXInOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ0FscyBlZW4gcHJvZHVjdCB3b3JkdCB2ZXJ3aWpkZXJkLCBtb2V0ZW4gYWxsZSBiZXN0YW5kZW4gZGllIGVyIGFhbiBnZWtvcHBlbGQgemlqbiBvb2sgd29yZGVuIHZlcndpamRlcmQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdWZWxkIHNjaGVpZGluZ3N0ZWtlbic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYWFyZCBkZXRhaWxwYWdpbmEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxzIHZvb3IgJXMnOwokbGFuZ1sncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnSG9lIG9tIHRlIGdhYW4gbWV0IGRlemVsZmRlIHByb2R1Y3Rlbj8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnTmlldCc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnVmVyd2VyayBhZmJlZWxkaW5nZW4/JzsKJGxhbmdbJ3Byb21wdF9oaWVycGFnZSddID0gJ1N0YW5kYWFyZCBwYWdpbmEgdm9vciBoaWVyYXJjaGlzY2hlIHdlZXJnYXZlJzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdBZmJlZWxkaW5nIHBhZCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdMZW5ndGUgRWVuaGVkZW4nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzMwMSddID0gJ0dlbmVyZWVyIGVlbiAzMDEtcmVkaXJlY3QnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyZWVyIGVlbiA0MDQtbWVsZGluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdXYXQgbW9ldCBlciB3b3JkZW4gZ2VkYWFuIGFscyBlZW4gcHJvZHVjdCBuaWV0IGdldm9uZGVuIHdvcmR0Pyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdUb29uIGVlbiBmb3V0bWVsZGluZyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRm91dG1lbGRpbmcgYWxzIGVlbiBwcm9kdWN0IG5pZXQgZ2V2b25kZW4gaXMnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdpbmEgb20gcGVybWFuZW50IG5hYXIgdGUgdmVyd2lqemVuPyc7CiRsYW5nWydwcm9tcHRfcHJldHR5aGllcnVybHMnXSA9ICdHZWJydWlrIFByZXR0eSBVUkxcJ3Mgdm9vciBkZSBoaWXDpHJjaGlzY2hlIHdlZXJnYXZlJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1Y3RlbiBnZWxpamsgYWFuICVzJzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFhcmQgUGFnaW5hIHZvb3IgUHJvZHVjdCBEZXRhaWwgT3ZlcnppY2h0ZW4nOwokbGFuZ1sncHJvbXB0X3NrdV9yZXF1aXJlZCddID0gJ0VlbiBTS1UgaXMgdmVyZWlzdCB2b29yIGFsbGUgcHJvZHVjdGVuIGVuIGF0dHJpYnV0ZW4nOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdTdGFuZGFhcmQgcGFnaW5hbGltaWV0IGluIHNhbWVudmF0dGluZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdTdGFuZGFhcmQgdmVsZHZvbGdvcmRlIGluIHNhbWVudmF0dGluZ3Ntb2R1cyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRvcmRlciddID0gJ1N0YW5kYWFyZCBzb3J0ZWVydm9sZ29yZGUgaW4gc2FtZW52YXR0aW5nc21vZHVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5X25ld2RlZmF1bHQnXSA9ICdHZWJydWlrIGVlbiBuaWV1d2Ugc2FtZW52YXR0aW5nIHNjaGVybSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICdTamFibG9vbiBCcm9uJzsKJGxhbmdbJ3Byb21wdF90cnVlJ10gPSAnV2VsJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdUZSBnZWJydWlrZW4gcHJlZml4IHZvb3IgYWxsZSBVUkxzIGRpZSBkZXplIG1vZHVsZSBnZWJydWlrdCc7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnR2VicnVpayBQYWQgSGllcmFyY2hpZSBpbiBkZSBQcm9kdWN0IERldGFpbCBVcmxcJ3MnOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdHZWJydWlrIGRlemUgcGFnaW5hIG9vayB2b29yIHpvZWtyZXN1bHRhdGVuIDxlbT4ob3ZlcnNjaHJpamZ0IGRlIHpvZWtyZXN1bHRhdGVuIHBhZ2luYSBwYXJhbWV0ZXIgaW4gZGUgWm9layBtb2R1bGUpPC9lbT4nOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnR2V3aWNodGVlbmhlaWQnOwokbGFuZ1sncHVibGljJ10gPSAnSXMgZGl0IGVlbiBwdWJsaWVrIHZlbGQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ0dlcHVibGljZWVyZCc7CiRsYW5nWydxdWFudGl0eV9vbl9oYW5kJ10gPSAnQmVzY2hpa2JhcmUgaG9ldmVlbGhlaWQnOwokbGFuZ1sncmFuZG9tJ10gPSAnV2lsbGVrZXVyaWcnOwokbGFuZ1sncmVvcmRlciddID0gJ0hlcm9yZGVyJzsKJGxhbmdbJ3Jlb3JkZXJfaGllcmFyY2h5J10gPSAnSGVyb3JkZXIgaGllcmFyY2hpZSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Jlc2V0IG5hYXIgc3RhbmRhYXJkaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3JldHVybiddID0gJ0tlZXIgdGVydWcnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ0dhIHRlcnVnIG5hYXIgZGUgYm92ZW5rYW50IHZhbiBkZSBwYWdpbmEnOwokbGFuZ1sncm9vdCddID0gJ1N0YXJ0JzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1pvZWsgU2phYmxvbmVuJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdUb2V2b2VnZW4vd2lqemlnZW4gWm9la2Zvcm11bGllciBzamFibG9vbic7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdab2VrZWlnZW5zY2hhcCBPbXNjaHJpanZpbmcnOwokbGFuZ1snc2VhcmNoX2V4cHInXSA9ICdNb2V0IGRlIHpvZWtvcGRyYWNodCB2b2xkb2VuIGFhbiDDqcOpbiwgb2YgYWFuIGFsbGUgdGVzdGVuIGhpZXJvbmRlcj8nOwokbGFuZ1snc2VhcmNoX25hbWUnXSA9ICdab2VrZWlnZW5zY2hhcCBOYWFtJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByaWpzIG1hcmdlJzsKJGxhbmdbJ3NlbGVjdF9hbGwnXSA9ICdTZWxlY3RlZXIgYWxsZXMnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0tpZXMgw6nDqW4nOwokbGFuZ1snc2V0ZGlzYWJsZWQnXSA9ICdNYXJrZWVyIGFscyBVaXRnZXNjaGFrZWxkJzsKJGxhbmdbJ3NldGRyYWZ0J10gPSAnTWFya2VlciBhbHMgY29uY2VwdCc7CiRsYW5nWydzZXRwdWJsaXNoZWQnXSA9ICdNYXJrZWVyIGFscyBnZXB1YmxpY2VlcmQnOwokbGFuZ1snc2t1J10gPSAnVWl0bGV2ZXJlZW5oZWlkJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0ZWVyIG9wJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0ZWVydm9sZ29yZGUnOwokbGFuZ1snc291cmNlJ10gPSAnQnJvbic7CiRsYW5nWydzdWJtaXQnXSA9ICdWZXJzdHVyZW4nOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnTGlkbWFhdHNjaGFwJzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdVaXRsZXZlcmZyZXF1ZW50aWUnOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdVaXRnZWxldmVyZCc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnVmVybG9wZW4nOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdWZXJsb29wdCc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01hYW5kZWxpamtzJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdCZXRhbGluZ3NmcmVxdWVudGllJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnQmV0YWFsZCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUGVyIGt3YXJ0YWFsJzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ09tIGhldCBqYWFyJzsKJGxhbmdbJ3N1YnNjcl95ZWFybHknXSA9ICdKYWFybGlqa3MnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1NhbWVudmF0dGluZ3NzYWJsb25lbic7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1RvZXZvZWdlbi93aWp6aWdlbiBTYW1lbnZhdHRpbmcgU2phYmxvb24nOwokbGFuZ1sndGF4YWJsZSddID0gJ0JlbGFzdGJhYXInOwokbGFuZ1sndGVzdCddID0gJ1Rlc3Rlbic7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1Rla3N0cnVpbXRlJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZWtzdCBJbnZvZXInOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIG5pZXV3IEhpZXJhY2hpZSBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhYXJkIG5pZXV3IENhdGVnb3JpZWxpanN0IFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgbmlldXcgRGV0YWlsIFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFhcmQgbmlldXcgWm9layBTamFibG9vbic7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYWFyZCBuaWV1d2UgU2FtZW52YXR0aW5nIFNqYWJsb29uJzsKJGxhbmdbJ3VwJ10gPSAnT21ob29nJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY3RlZXIgZWVuIGJlc3RhbmQgb20gdGUgdXBsb2FkZW4nOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnQWxpYXMgaW4gcGFnaW5hIHVybCc7CiRsYW5nWyd2YWxpZCddID0gJ0NvcnJlY3QnOwokbGFuZ1sndmFsdWUnXSA9ICdXYWFyZGUnOwokbGFuZ1sndmFsdWVzJ10gPSAnV2FhcmRlbic7CiRsYW5nWyd2aWV3J10gPSAnQmVraWprJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjdGVlciB2ZWxkZW4gb20gaW4gaGV0IHRhYmVsIHRlIHRvbmVuJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ1BsYWF0cyBXYXRlcm1lcmsnOwokbGFuZ1snd2VpZ2h0J10gPSAnR2V3aWNodCc7CiRsYW5nWyd3aXRoX3NlbGVjdGVkJ10gPSAnTWV0IGdlc2VsZWN0ZWVyZGVuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnRG9kYWonOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdEb2RhaiBrYXRlZ29yacSZJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnRG9kYWogcG9sZSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnWm1pZW5pYWxueSc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRG9kYWogcHJvZHVrdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0RvZGFqIGF0cnlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnUHJ6eXBpc2HEhyBwb2xlIGRvIGthdGVnb3JpaTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnRG9kYWogZWxlbWVudCBoaWVyYXJjaGlpJzsKJGxhbmdbJ2FkZF9vcHRpb24nXSA9ICdEb2RhaiBvcGNqxJkgYXRyeWJ1dHUnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0N6eSB0eWxrbyBhZG1pbmlzdHJhdG9yenkgbW9nxIUgd2lkemllxIcgdGVuIGF0cnlidXQ/JzsKJGxhbmdbJ2FkdmFuY2VkJ10gPSAnWmFhd2Fuc293YW5lJzsKJGxhbmdbJ2FsaWduX3VsJ10gPSAnRyZvYWN1dGU7cm55IGxld3knOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdHJm9hY3V0ZTtybnkgxZtyb2Rlayc7CiRsYW5nWydhbGlnbl91ciddID0gJ0cmb2FjdXRlO3JueSBwcmF3eSc7CiRsYW5nWydhbGlnbl9tbCddID0gJ8Wacm9kZWsgbGV3eSc7CiRsYW5nWydhbGlnbl9tYyddID0gJ8Wacm9kZWsnOwokbGFuZ1snYWxpZ25fbXInXSA9ICfFmnJvZGVrIHByYXd5JzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnRCZvYWN1dGU7xYIgbGV3eSc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0Qmb2FjdXRlO8WCIMWbcm9kZWsnOwokbGFuZ1snYWxpZ25fbHInXSA9ICdEJm9hY3V0ZTvFgiBwcmF3eSc7CiRsYW5nWydhbGwnXSA9ICdXc3p5c3RraWUnOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1dzenlzdGtpZSBrYXRlZ29yaWUnOwokbGFuZ1snYW55J10gPSAnSmFraWtvbHdpZWsnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0N6eSBuYSBwZXdubyB1c3VuxIXEhz8nOwokbGFuZ1snYXJleW91c3VyZV9kZWxldGVwcm9kdWN0J10gPSAnQ3p5IG5hcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHRlbiBwcm9kdWt0IG9yYXogd3N6eXN0a2llIGRvZGF0a293ZSBpbmZvcm1hY2plIG5hIGplZ28gdGVtYXQ/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Jvc27EhWNvJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnTmF6d2EgYXRyeWJ1dHUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdHljem5pZSc7CiRsYW5nWydidG5fc2V0ZWNvbWhhbmRsZXJzJ10gPSAnU2V0IEVjb21tZXJjZSBFdmVudCBIYW5kbGVycyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ1N6YWJsb255IHJhcG9ydCZvYWN1dGU7dyBoaWVyYXJjaGlpJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIHJhcG9ydHUgaGllcmFyY2hpaSc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsdWonOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0thdGVnb3JpZSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpYSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0thdGVnb3JpYSBvIHRlaiBuYXp3aWUganXFvCBpc3RuaWVqZSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBsaXN0eSBrYXRlZ29yaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL0VkeXR1aiBzemFibG9uIGxpc3R5IGthdGVnb3JpaSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ0NlbnR5bWV0cnknOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydjb25maXJtX2NvcHlhdHRyaWJ1dGVzJ10gPSAnQW55IGV4aXN0aW5nIGF0dHJpYnV0ZSBzZXRzIGZvciB0aGlzIHByb2R1Y3Qgd2lsbCBiZSByZW1vdmVkLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY29udGludWU/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAnQ3p5IG5hcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHRlbiBlbGVtZW50IGhpZXJhcmNoaWk/IFdzenlzdGtpZSBwcm9kdWt0eSB1xbx5d2FqxIVjZSB0ZWdvIGVsZW1lbnR1IG5pZSBixJlkxIUgcHJ6eXBpc2FuZSBkbyDFvGFkbmVqIGhpZXJhcmNoaWknOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIGRvIHRoaXM/XG5cbkltcHJvcGVyIHNldHRpbmdzLCBvciBhbiBpbnZhbGlkIGNvbmZpZyBmaWxlIGNvdWxkIGNvbXBsZXRlbHkgY29ycnVwdCBhIGN1cnJlbnRseSB2YWxpZCBhbmQgd29ya2luZyBzeXN0ZW0uJzsKJGxhbmdbJ2NvcHknXSA9ICdTa29waXVqJzsKJGxhbmdbJ2NvcHlfYXR0cmliX3NldHMnXSA9ICdDb3B5IEF0dHJpYnV0ZSBTZXRzJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdTa29waXVqIGthdGVnb3JpxJknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIHV0d29yemVuaWEnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ0FrdHVhbG5hIHdhcnRvxZvEhyc7CiRsYW5nWydkYXRhJ10gPSAnRGFuZSc7CiRsYW5nWydkZWZhdWx0J10gPSAnRG9tecWbbG55JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBkb215xZtsbmUnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlV3YWdhOjwvc3Ryb25nPiBaYXdhcnRvxZvEhyB0eWNoIHAmb2FjdXRlO2wgdGVrc3Rvd3ljaCBqZXN0IHXFvHl3YW5hIGRvIG9rcmXFm2xlbmlhIGRvbXnFm2xuZWogemF3YXJ0b8WbY2kgc3phYmxvbiZvYWN1dGU7dyB3IG1vbWVuY2llIHd5YnJhbmlhIG9wY2ppICZhbXA7cXVvdDtEb2RhaiBzemFibG9uJmFtcDtxdW90OyBuYSBvZHBvd2llZG5pZWogemFrxYJhZGNlLiBFZHljamEgdHljaCBwJm9hY3V0ZTtsIG5pZSB3cMWCeXdhIGJlenBvxZtyZWRuaW8gbmEgaXN0bmllasSFY2Ugc3phYmxvbnkuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NrYXN1aic7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnU2thc3VqIGF0cnlidXQnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnU2thc3VqIGVsZW1lbnQgaGllcmFyY2hpaSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnTWFsZWrEhWNvJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnT3Bpcyc7CiRsYW5nWydkZXN0aW5hdGlvbiddID0gJ0Rlc3RpbmF0aW9uJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBzemN6ZWcmb2FjdXRlO8WCb3dlJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai9lZHl0dWogc3phYmxvbiBzemN6ZWcmb2FjdXRlO8WCb3d5JzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdXeW1pYXJ5JzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnV3nFgsSFY3pvbnknOwokbGFuZ1snZG93biddID0gJ1ByemVzdcWEIHcgZCZvYWN1dGU7xYInOwokbGFuZ1snZHJhZnQnXSA9ICdLb3BpYSByb2JvY3phJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTGlzdGEgcm96d2lqYWxuYSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnT3BjamVsaXN0eSByb3p3aWphbG5laiA8ZW0+KGF0byBwb2xlIGplc3QgdcW8eXdhbmUgdHlsa28gcHJ6eSBsaXN0YWNoIHJvendpamFsbnljaCk8L2VtPjxici8+PGJyLz48ZW0+KGplZG5hIGxpbmlhIHRvIGplZG5hIG9wY2phKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdFZHl0dWonOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICdFZHl0dWogYXRyeWJ1dCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZHl0dWogemVzdGF3IGF0cnlidXQmb2FjdXRlO3cnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0VkeXR1aiBhdHJ5YnV0eSBkbGEnOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnRWR5dHVqIGF0cnlidXR5JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZHl0dWoga2F0ZWdvcmnEmSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkeXR1aiBwb2xhIGthdGVnb3JpaSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnRWR5dHVqIGVsZW1lbnQgaGllcmFyY2hpaSc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAnQXRyeWJ1dCB6IHRha8SFIG5henfEhSBqdcW8IGlzdG5pZWplJzsKJGxhbmdbJ2Vycm9yX2R1cGxpY2F0ZV9za3UnXSA9ICdabmFsZXppb25vIHpkdXBsaWtvd2FuxIUgd2FydG/Fm8SHIFNLVSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnV2FydG/Fm8SHIHBvbGEgbmllIG1vxbxlIGJ5xIcgcHVzdGEnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW0geiBmb3JtYXRlbSBwbGlrdSc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICdOaWUgb2RuYWxlemlvbm8gcGxpa3UnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIHBvZGN6YXMgb3R3aWVyYW5pYSBwbGlrdSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnTmllcHJhd2lkxYJvd3kgZWxlbWVudCBuYWRyesSZZG55IChnYcWCxIXFuiBoaWVyYXJjaGlpIG5pZSBtb8W8ZSBiecSHIHN3b2ltIHfFgmFzbnltIGVsZW1lbnRlbSBuYWRyesSZZG55bSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnV2FydG/Fm8SHIHBvbGEgamVzdCBuaWVwb3ByYXduYSAobW/FvGUgemF3aWVyYcSHIHR5bGtvIHpuYWtpIGFsZmFudW1lcnljem5lKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAnSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQnOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnV1ltYWdhbnkgcGFyYW1ldHIgamVzdCBuaWVwcmF3aWTFgm93eSBsdWIgcHVzdHknOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdFbGVtZW50IHogdGFrxIUgbmF6d8SFIGp1xbwgaXN0bmllamUnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zesSZIHd5YnJhxId0eXAgcG9sYSc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdNdXNpc3ogd3Bpc2HEhyBuYXp3xJknOwokbGFuZ1snZXJyb3Jfb25lcXVhbnRpdHlmaWVsZCddID0gJ09ubHkgb25lIHF1YW50aXR5IGZpZWxkIGlzIGFsbG93ZWQnOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnRG9zdMSZcCB6YWJyb25pb255JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnT2tyZcWbbG9ueSBhbGlhcyBqZXN0IGp1xbwgdcW8eXR5JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0IHogdGFrxIUgbmF6d8SFIGp1xbwgaXN0bmllamUnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9ub3Rmb3VuZCddID0gJ1RoZSByZXF1ZXN0ZWQgcHJvZHVjdCBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnVGEgd2FydG/Fm8SHIFNLVSBqZXN0IGp1xbwgcHJ6eXBpc2FuYSBpbm5lbXUgcHJvZHVrdG93aSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTmllcHJhd2lkxYJvd2Egem1pYW5hIHdhcnRvxZtjaSBjZW55IGRsYSBlbGVtZW50dSAlcyc7CiRsYW5nWydlcnJvcl9za3VfcmVxdWlyZWQnXSA9ICdXcGlzeiB1bmlrYWxuZSBTS1UnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1phxYJhZG93YW5pZSBwbGlrdSBuaWUgcG93aW9kxYJvIHNpxJk6ICVzJzsKJGxhbmdbJ2V4Y2x1ZGVfY2F0ZWdvcmllcyddID0gJ0V4Y2x1ZGUgcHJvZHVjdHMgaW4gdGhlIHNlbGVjdGVkIGNhdGVnb3JpZXMgZnJvbSB0aGUgcmVzdWx0cyc7CiRsYW5nWydleHBpcmVfc2l4X21vbnRocyddID0gJ1BvIHN6ZcWbY2l1IG1pZXNpxIVjYWNoJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ1BvIHJva3UnOwokbGFuZ1snZXhwaXJlX3R3b195ZWFyJ10gPSAnUG8gZHcmb2FjdXRlO2NoIGxhdGFjaCc7CiRsYW5nWydleHRyYTEnXSA9ICdQb2xlIEV4dHJhIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnUG9sZSBFeHRyYSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9sZSc7CiRsYW5nWydmaWVsZHMnXSA9ICdQb2xhJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRGVmaW5pY2phIHBvbGEnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW5pY2plIHAmb2FjdXRlO2wnOwokbGFuZ1snZmlsZSddID0gJ1BsaWsnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyeSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnVXN0YXdpZW5pYSc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWEnOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnUG96eWNqYSB3IGhpZXJhcmNoaWknOwokbGFuZ1snaGllcmFyY2h5X3NldHRpbmdzJ10gPSAnVXN0YXdpZW5pYSBoaWVyYXJjaGlpJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnT2JyYXplayc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgb2JzxYJ1Z2kgb2JyYXprJm9hY3V0ZTt3JzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ1phaW1wb3J0dWogUHJvZHVrdHkgeiBwbGlrdSBDU1YnOwokbGFuZ1snaW5jaGVzJ10gPSAnQ2FsZSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnRG/FgsSFY3p5xIcgZWxlbWVudHkgcG9kcnrEmWRuZT8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdUeWxrbyB6bmFraSBhbGZhbnVtZXJ5Y3puZSAoYmV6IHNwYWNqaSwgYXBvc3Ryb2Ymb2FjdXRlO3csIGN1ZHp5c8WCb3cmb2FjdXRlO3csIHBvbHNraWNoIHpuYWsmb2FjdXRlO3cpJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdNb8W8bGl3ZSB3YXJ0b8WbY2kgdG86IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHJ5YnV0eSBza29waW93YW5lJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1VzdGF3aWVuaWEgem5hayZvYWN1dGU7dyB3b2RueWNoIHPEhSBwb2JpZXJhbmUgeiBtb2R1xYJ1IENHRXh0ZW5zaW9ucyc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIGNvcHkgQXR0cmlidXRlIHNldHMgKGV4Y2x1ZGluZyBza3UgdmFsdWVzKSBmcm9tIGFub3RoZXIgcHJvZHVjdC4nOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgdW5rbm93biBwcm9kdWN0IGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ1RoaXMgc3lzdGVtIHVuZGVyc3RhbmRzICguKSBhcyB0aGUgZGVjaW1hbCBwb2ludCBzZXBhcmF0b3IuIGkuZS46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZ5IGhvdyB0aGUgc3lzdGVtIHNob3VsZCBoYW5kbGUgYSBwcm9kdWN0IHdob3MgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Vd2FnYTogPC9zdHJvbmc+IFdzenlzdGtpZSBwb2xhIHpkZWZpbmlvd2FuZSB0dXRhaiBzxIUgZG9zdMSZcG5lIGRsYSB3c3p5c3RraWNoIHByb2R1a3Qmb2FjdXRlO3cuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1d5c3TEhXBpxYJ5IHByb2JsZW15IHogb2JzxYJ1Z8SFIGplZG5lZ28gbHViIHdpxJljZWogcCZvYWN1dGU7bCB6ZGVmaW5pb3dhbnljaC4gQWtjamEgem9zdGHFgmEgcHJ6ZXByb3dhZHpvbmEgcG9wcmF3bmllLCBqZWRuYWsgcG93aW5pZW5lxZsgc3ByYXdkemnEhyBjenkgd3N6eXN0a28gamVzdCB3IHBvcnrEhWRrdSc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1Vwb24gaW1wb3J0LCBpZiBhbiBpbWFnZSBmaWxlbmFtZSBpcyBmb3VuZCBpbiBhIGZpZWxkIGNvbHVtbiwgc2hvdWxkIGl0IGJlIG1vdmVkIGZyb20gdGhlIHNvdXJjZSBsb2NhdGlvbiwgd2F0ZXJtYXJrZWQsIHRodW1ibmFpbGVkLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAnVXNlIHRoaXMgcGFnZSBmb3IgaGllcmFyY2h5IHZpZXdzLiAgVGhlIHBhZ2VpZCB3aWxsIG5vdCBiZSBzcGVmaXJpZWQgb24gdGhlIFVSTC4nOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB3aGVyZSBpbWFnZXMgcmVmZXJyZWQgdG8gaW4gdGhlIGltcG9ydCBmaWxlLCBjYW4gYmUgZm91bmQnOwokbGFuZ1snaW5mb19pbWFnZXN0dWZmX2RlcHJlY2F0ZWQnXSA9ICdLb253ZXJ0b3dhbmllIG9icmF6ayZvYWN1dGU7dyBqZXN0IHByemVzdGFyemHFgmUgaSB6b3N0YW5pZSB1c3VuacSZdGUgdyBub3dzenljaCB3ZXJzamFjaC4gVcW8eWogQ0dTbWFydEltYWdlIGRsYSBrb253ZXJ0b3dhbmlhIG9icmF6ayZvYWN1dGU7dyB3IGxvY2llLic7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0EgYnJpZWYgdGVzdCBhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgZmlsZSBzcGVjaWZpZWQsIGFuZCBldmVyeXRoaW5nIGFwcGVhcnMgdG8gYmUgY29ycmVjdC48YnIvPlRoaXMgaXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgaW4gdGhlIGZpbGUuJzsKJGxhbmdbJ2luZm9fcHJldHR5aGllcnVybHMnXSA9ICdJbmNsdWRlIHRoZSBoaWVyYXJjaHkgaXRlbSBuYW1lIG9uIHRoZSBVUkwnOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnUG9wcmF3bmUgd2FydG/Fm2NpIHBvbGEgdG8gKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ1RoaXMgb3B0aW9uIGRldGVybWluZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgd2Vic2l0ZSBpZiBhIHByb2R1Y3QgZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBwcm9kdWN0IGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ1BvbGEgcHVibGljem5lIHPEhSB3aWRvY3puZSBkbGEgd3N6eXN0a2ljaCc7CiRsYW5nWydpbmZvX3Jlb3JkZXJfY29udGVudCddID0gJ1RoaXMgb3BlcmF0aW9uIGFsbG93cyBkcmFnZ2luZyB0aGUgaW5kaXZpZHVhbCBub2RlcyBpbiB0aGUgdHJlZSB0byBhZGp1c3QgdGhlIG9yZGVyIHRoYXQgdGhleSB3aWxsIGJlIGRpc3BsYXllZCBpbiBpbiB0aGUgaGllcmFyY2h5IHZpZXcnOwokbGFuZ1snaW5mb19zZXRlY29taGFuZGxlcnMnXSA9ICdUaGlzIGJ1dHRvbiB3aWxsIGVuc3VyZSB0aGF0IGV2ZW50IGhhbmRsZXJzIGZvciBlY29tbWVyY2UgZXZlbnRzIGFyZSBpbiBwbGFjZS4gIFRoaXMgaXMgdXNlZnVsIGlmIGFza2luZyB0aGUgcHJvZHVjdHMgbW9kdWxlIHRvIGtlZXAgdHJhY2sgb2YgYSBxdWFudGl0eSBvbiBoYW5kLCBidXQgdGhlIGV2ZW50IGhhbmRsZXJzIGRpZCBub3QgZ2V0IGNyZWF0ZWQgZHVyaW5nIGluc3RhbGwgb3IgdXBncmFkZSc7CiRsYW5nWydsYWJlbCddID0gJ0V0eWtpZXRhJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICdQb21pxYQnOwokbGFuZ1snbGFiZWxfb3ZlcndyaXRlJ10gPSAnTmFkcGlzeic7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdPc3RhdG5pYSBtb2R5ZmlrYWNqYSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0RydWdpIG9icmF6ZWsnOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWFrc3ltYWxuYSBkxYJ1Z2/Fm8SHIDxlbT4oZG90eWN6eSB0eWxrbyBwJm9hY3V0ZTtsIHRla3N0b3d5Y2gpPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0YSBtb2R5ZmlrYWNqaSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdNb2R1xYIgcG96d2FsYWrEhWN5IG5hIHN0d29yemVuaWUga2F0YWxvZ3UgcHJvZHVrdCZvYWN1dGU7dyB6IGNlbmFtaSwgemRqxJljaWFtaSBpdHAuIFBvendhbGEgdGFrxbxlIG5hIHR3b3J6ZW5pZSBrb3N6eWthLic7CiRsYW5nWydtb3ZlX2Rvd24nXSA9ICdQcnplc3XFhCB3IGQmb2FjdXRlO8WCJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdQcnplc3XFhCB3IGcmb2FjdXRlO3LEmSc7CiRsYW5nWydtc2dfZXZlbnRoYW5kbGVyc19jcmVhdGVkJ10gPSAnT2JzxYJ1Z2EgemRhcnplxYQgc3R3b3J6b25hJzsKJGxhbmdbJ25hbWUnXSA9ICdOYXp3YSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ05pZSBwb3NpYWRhc3ogd3ltYWdhbmVnbyB1cHJhd25pZW5pYTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOb3dhIG5hendhIGthdGVnb3JpaSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOaWUnOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOaWUgcG9kYW5vIG5hend5JzsKJGxhbmdbJ25vbmUnXSA9ICdCcmFrJzsKJGxhbmdbJ25vdGhpbmdfc2VsZWN0ZCddID0gJ05pYyBuaWUgemF6bmFjem9ubyc7CiRsYW5nWydvZiddID0gJ3onOwokbGFuZ1snb3BlcmF0aW9uX2NhbmNlbGxlZCddID0gJ09wZXJhY2phIGFudWxvd2FuYSc7CiRsYW5nWydvcGVyYXRpb25fY29tcGxldGUnXSA9ICdPcGVyYWNqYSB6YWtvxYRjem9uYSc7CiRsYW5nWydwYWdlJ10gPSAnU3Ryb25hJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHJvbmEgJXMgeiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTGltaXQgbmEgc3Ryb27EmSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYSBwcm9kdWN0IGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCiAgPGxpPmZpZWxkbGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHZhbHVlcyBmcm9tIGEgc3BlY2lmaWVkIGZpZWxkLg0KICAgICA8cD4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOy0gVGhpcyBhY3Rpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmF2aWdhdGlvbiBmcm9tIHRoZSB2YWx1ZXMgb2YgYSBzcGVjaWZpYyBmaWVsZC4gIGkuZTogIHlvdSBjb3VsZCBjcmVhdGUgYSBjdXN0b20gZHJvcGRvd24gZmllbGQgY2FsbGVkICZhbXA7cXVvdDtjb2xvciZhbXA7cXVvdDsgYW5kIHRoZW4gY3JlYXRlIGEgbmF2aWdhdGlvbiBiYXNlZCBvbiB0aGUgZGlmZmVyZW50IGNvbG9ycy4NCiAgICAgPC9wPg0KICA8L2xpPg0KICA8bGk+c2VhcmNoIC0gRGlzcGxheSBhIGZvcm0gdG8gYWxsb3cgc2VhcmNoaW5nIHByb2R1Y3RzIG9uIHZhcmlvdXMgY3JpdGVyaXVtPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpLiAgVGhpcyBwYXJhbWV0ZXIgY2FuIGFsc28gYmUgdXNlZCB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uIHRvIGxpbWl0IHRoZSBvdXRwdXQgdG8gdGhlIHNwZWNpZmllZCBwcm9kdWN0IGNhdGVnb3JpZXMuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5ZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlICZxdW90O2NhdGVnb3J5bGlzdCZxdW90OyBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBjYXRlZ29yaWVzIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBhIGNhdGVnb3J5IGZpZWxkLiAgSXQgd2lsbCBub3Qgd29yayBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAmcXVvdDtjYXRlZ29yeSZxdW90OyBvciAmcXVvdDtjYXRlZ29yeV9pZCZxdW90OyBwYXJhbWV0ZXJzLiAgIFRoZSBzeW50YXggb2YgdGhpcyBwYXJhbWV0ZXIgaXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcywgYW5kIGZpZWxkIHZhbHVlcy4gIGkuZTogIGNhdGVnb3J5bGlzdD0mcXVvdDtmaWVsZCBuYW1lOnZhbHVlLGZpZWxkIG5hbWUgMjp2YWx1ZSAyJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkgb2YgdGhlIGNhdGVnb3J5IGRldGFpbHMuICBUaGlzIHVzZXMgYSBjYXRlZ29yeSBsaXN0IHRlbXBsYXRlLi4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2V4Y2x1ZGVjYXQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIHdpbGwgYWxsb3cgZXhjbHVkaW5nIHByb2R1Y3RzIHRoYXQgYXJlIGluIGEgc3BlY2lmaWMgY2F0ZWdvcnkgZnJvbSB0aGUgcmVzdWx0LiBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGNhdGVnb3J5IG5hbWVzIGlzIGFsbG93ZWQuIFRoaXMgcGFyYW1ldGVyIGNhbiB3b3JrIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGNhdGVnb3J5IHBhcmFtZXRlciB0byBwcm92aWRlIGEgbGlzdCBvZiB0aGUgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhpcyBjYXRlZ29yeSwgYnV0IG5vdCBpbiB0aGF0IGNhdGVnb3J5JzsKJGxhbmdbJ3BhcmFtX2ZpZWxkJ10gPSAnVXNlZCBvbmx5IGluIHRoZSA8ZW0+ZmllbGRsaXN0PC9lbT4gdGhpcyBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiBhIHVzZXIgZGVmaW5lZCBwcm9wZXJ0eSB0byBjcmVhdGUgYSBsaXN0IGZyb20uJzsKJGxhbmdbJ3BhcmFtX2ZpZWxkdmFsJ10gPSAnVXNlZCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBmaWVsZCB2YWx1ZSB0byBsaW1pdCByZXN1bHRzIGJ5LiAgU3BlY2lhbCB2YWx1ZXMgZm9yIHRoaXMgZmllbGQgYXJlICZxdW90Ozo6bnVsbDo6JnF1b3Q7ICZxdW90Ozo6bm90bnVsbDo6JnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGxpc3QnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGRlZmF1bHQgKHN1bW1hcnkpIHZpZXcsIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgaW50ZWdlciBwcm9kdWN0IGlkcyB0byBkaXNwbGF5LiAgTm8gcGFnaW5hdGlvbiBvciBzb3J0aW5nIGlzIHBlcmZvcm1lZCBvbiB0aGVzZSB2YWx1ZXMsIGFuZCBpZiBzcGVjaWZpZWQgdGhlIG90aGVyIGZpbHRlcmluZyBwYXJhbWV0ZXJzIHRvIHRoZSBzdW1tYXJ5IHZpZXcgYXJlIGlnbm9yZWQuJzsKJGxhbmdbJ3BhcmFtX3Jlc3VsdHBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCwgYW5kIGNhdGVnb3J5IGxpc3QgYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcGFnZSBpZCBvciBhbGlhcyB0byB1c2UgdG8gZGlzcGxheSB0aGUgc3VtbWFyeSByZXN1bHRzJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZpZWxkJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBtYXkgY29udGFpbiBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkIG5hbWVzIHRvIGluY2x1ZGUgaW4gdGhlIHNlYXJjaCc7CiRsYW5nWydwYXJhbV9zZWFyY2hmb3JtdGVtcGxhdGUnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXNwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBub24gZGVmYXVsdCBzZWFyY2ggZm9ybSB0ZW1wbGF0ZSc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBjYXRlZ29yeWxpc3QgYW5kIGZpZWxkbGlzdCBhY3Rpb25zLCBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBub24gMCBpbnRlZ2VyIHZhbHVlIGFsbCBjYXRlZ29yaWVzIChldmVuIHRob3NlIHdpdGhvdXQgcHJvZHVjdHMpIHdpbGwgYmUgZGlzcGxheWVkLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgaW4gdGhlIHN1bW1hcnksIGNhdGVnb3J5bGlzdCBvciBzZWFyY2ggYWN0aW9ucywgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPmlkIC0tIFRoZSBwcm9kdWN0IGlkPC9saT4NCiAgPGxpPndlaWdodCAtLSBUaGUgcHJvZHVjdCB3ZWlnaHQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5mOmZpZWxkbmFtZSAtLSBBbGxvd3Mgc29ydGluZyBieSB2YWx1ZXMgb2YgY3VzdG9tIGZpZWxkcy48L2xpPg0KPC91bD4NCjxwPlRoZSBjYXRlZ29yeSBsaXN0IHZpZXcgc3VwcG9ydHMgb25seSBhIGZldyBzcGVjaWZpYyBzb3J0aW5nIG9wdGlvbnM6PC9wPg0KPHVsPg0KICA8bGk+aWQgLS0gVGhlIGNhdGVnb3J5IGlkLjwvbGk+DQogIDxsaT48c3Ryb25nPm5hbWU8L3N0cm9uZz4gLS0gVGhlIGNhdGVnb3J5IG5hbWUuPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnR0eXBlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBkZWZhdWx0IHN1bW1hcnkgdmlldywgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZCB0byBjb252ZXJ0IHRoZSB2YWx1ZXMgdG8gYW5vdGhlciB0eXBlIGZvciBzb3J0aW5nLiAgdmFsaWQgdmFsdWVzIGFyZSBTVFJJTkcsU0lHTkVEIGFuZCBVTlNJR05FRC4gIElmIG5vdCBzdXBwbGllZCB0aGUgZGVmYXVsdCBTVFJJTkcgdHlwZSBpcyBhc3N1bWVkLic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgYWN0aW9uPWhpZXJhcmNoeSwgYWxsb3dzIHNwZWNpZnlpbmcgYSBwYWdlIGlkIG9yIGFsaWFzIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbnkgbGlua3MgdG8gc3VtbWFyeSB2aWV3JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ0VsZW1lbnQgbmFkcnrEmWRueSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ01vZHXFgiBLYXRhbG9nIHByb2R1a3Qmb2FjdXRlO3cgem9zdGHFgiBwb215xZtsbmllIHphaW5zdGFsb3dhbnknOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHXFgiBLYXRhbG9nIHByb2R1a3Qmb2FjdXRlO3cgem9zdGHFgiBvZGluc3RhbG93YW55Lic7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1VzdGF3aWVuaWEnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnVXN1bmnEmWNpZSB0ZWdvIG1vZHXFgnUgc3Bvd29kdWplIHVzdW5pxJljaWUgd3N6eXN0a2ljaCBkYW55Y2gga2F0YWxvZ3UuIEN6eSBuYXBld25vIGNoY2VzeiBrb250eW51b3dhxIc/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnQ2VuYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnWm1pYW5hIGNlbnknOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWt0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnTmF6d2EgcHJvZHVrdHUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0eSc7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgc3pjemVnJm9hY3V0ZTvFgiZvYWN1dGU7dyBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb2R1Y3RfZWRpdGluZ19zZXR0aW5ncyddID0gJ1VzdGF3aWVuaWEgZWR5Y2ppIHByb2R1a3Qmb2FjdXRlO3cnOwokbGFuZ1sncHJvZHVjdF9zdW1tYXJ5X3NldHRpbmdzJ10gPSAnVXN0YXdpZW5pYSB3aWRva3Ugb2cmb2FjdXRlO2xuZWdvJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFyY2hpYSBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb2R1Y3RfaW5mbyddID0gJ0luZm9ybWFjamUgbyBwcm9kdWtjaWUnOwokbGFuZ1sncHJvZHVjdF9tYW5hZ2VyJ10gPSAnS2F0YWxvZyBwcm9kdWt0Jm9hY3V0ZTt3JzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3MnOwokbGFuZ1sncHJvbXB0J10gPSAnWmFjaMSZdGEnOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBZGQvRWRpdCBBdHRyaWJ1dGUgU2V0JzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1Bvencmb2FjdXRlO2wgbmEgdXBsb2FkIHBsaWsmb2FjdXRlO3cgdGVnbyB0eXB1IChkbGEgcCZvYWN1dGU7bCB0eXB1IHBsaWspJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdQb3p3Jm9hY3V0ZTtsIG5hIHVwbG9hZCBvYnJhemsmb2FjdXRlO3cgdGVnbyB0eXB1IChkbGEgcCZvYWN1dGU7bCB0eXB1IG9icmF6ZWspJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBkaXNwbGF5IG9mIHByb2R1Y3QgYXR0cmlidXRlIHZhbHVlcyBpbiBkcm9wZG93bic7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ1R3Jm9hY3V0ZTtyeiBhdXRvbWF0eWN6bmllIG1pbmlhdHVyeSBvYnJhemsmb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhciAobmFqZMWCdcW8c3p5IGJvaykgbWluaWF0dXJraS4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQXV0b21hdHljem5pZSB0dyZvYWN1dGU7cnogb2JyYXpraSBwb2dsxIVkb3dlJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWFrc3ltYWxueSByb3ptaWFyIChuYWpkxYJ1xbxzenkgYm9rKSBvYnJhemthIHBvZ2zEhWRvd2Vnby4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0eWN6bmllIG5ha8WCYWRhaiB6bmFraSB3b2RuZSBuYSDFgmFkb3dhbmUgb2JyYXpraSc7CiRsYW5nWydwcm9tcHRfYXBwbGljYWJsZSddID0gJ1fFgsSFY3ogZG9tecWbbG5pZSBkbGEgbm93eWNoIHByb2R1a3Qmb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0JhdGNoIFNpemUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQgTW9kdWxlIFBhcmFtZXRlcnMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmVhdGUgQ2F0ZWdvcmllcyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIFByb2R1Y3QgRmllbGRzPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JlYXRlIFByb2R1Y3QgSGllcmFyY2h5JzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnV2dyYWogcGxpayBDU1YnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ0tvZCB3YWx1dHknOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnU3ltYm9sIHdhbHV0eSc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdEb215xZtsbnkgc3RhdHVzIHdzenlzdGtpY2ggbm93eWNoIHByb2R1a3Qmb2FjdXRlO3cnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ0RvbXnFm2xuaWUgd3N6eXN0a2llIG5vd2UgcHJvZHVrdHkgc8SFIG9wb2RhdGtvd2FuZSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnU2thc293YcSHIHdzenlzdGtpZSBwbGlraSB6d2nEhXphbmUgeiBwcm9kdWt0ZW0gZ2R5IGplc3Qgb24ga2Fzb3dhbnk/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEb215xZtsbmEgc3Ryb25hIHdpZG9rdSBzemN6ZWcmb2FjdXRlO8WCb3dlZ28nOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxzIGZvciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSBwcm9kdWN0cz8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnRmHFgnN6JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdIYW5kbGUgaW1hZ2VzPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnSW1hZ2UgUGF0aCc7CiRsYW5nWydwcm9tcHRfbGVuZ3RodW5pdHMnXSA9ICdKZWRub3N0a2kgbWlhcnknOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnQ28genJvYmnEhywgamXFvGVsaSBwcm9kdWt0IG5pZSBtb8W8ZSB6b3N0YcSHIHd5xZt3aWV0bG9ueT8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVydWogYsWCxIVkIDQwNCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VuZXJ1aiBwcnpla2llcm93YW5pZSAzMDEnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnV3nFm3dpZXRsIHdpYWRvbW/Fm8SHIG8gYsWCxJlkemllJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdFcnJvciBtZXNzYWdlIGZvciB3aGVuIGEgcHJvZHVjdCBjYW5ub3QgYmUgZm91bmQnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX3BhZ2UnXSA9ICdQYWdlIHRvIGRvIHBlcm1hbmVudCByZWRpcmVjdCB0bz8nOwokbGFuZ1sncHJvbXB0X2hpZXJwYWdlJ10gPSAnRG9tecWbbG5hIHN0cm9uYSBkbGEgd2lkb2t1IGhpZXJhcmNoaWknOwokbGFuZ1sncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJ10gPSAnVXNlIFByZXR0eSBVUkxTIHRvIEhpZXJhcmNoeSBWaWV3cyc7CiRsYW5nWydwcm9tcHRfcHJvZF9kZXRhaWxwYWdlJ10gPSAnRGVmYXVsdCBQYWdlIGZvciBQcm9kdWN0IERldGFpbCBWaWV3cyc7CiRsYW5nWydwcm9tcHRfcHJvZHVjdHNfbWF0Y2hpbmcnXSA9ICdQcm9kdWN0cyBtYXRjaGluZyAlcyc7CiRsYW5nWydwcm9tcHRfc2t1X3JlcXVpcmVkJ10gPSAnU0tVIGlzIHJlcXVpcmVkIGZvciBhbGwgcHJvZHVjdHMgYW5kIGF0dHJpYnV0ZXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdEb215xZtsbnkgbGltaXQgc3Ryb24gdyB3aWRva3UgcG9kc3Vtb3dhbmlhJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnRG9tecWbbG5hIGtvbGVqbm/Fm8SHIHNvcnRvd2FuaWEgdyB3aWRva3UgbGlzdHknOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnRG9tecWbbG5lIHBvbGUgdcW8eXdhbmUgZG8gc29ydG93YW5pYSB3IHdpZG9rdSBsaXN0eSc7CiRsYW5nWydwcm9tcHRfdGVtcGxhdGUnXSA9ICfFuXImb2FjdXRlO2TFgm8gc3phYmxvbnUnOwokbGFuZ1sncHJvbXB0X3RydWUnXSA9ICdQcmF3ZGEnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIFByb2R1Y3QgRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnSmVkbm9zdGkgd2FnaSc7CiRsYW5nWydwdWJsaWMnXSA9ICdDenkgdG8gamVzdCBwb2xlIGRvc3TEmXBuZSBkbGEgd3N6eXN0a2ljaD8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT3B1Ymxpa293YW55JzsKJGxhbmdbJ3F1YW50aXR5X29uX2hhbmQnXSA9ICdEb3N0xJlwbmEgaWxvxZvEhyB3IG1hZ2F6eW5pZSc7CiRsYW5nWydyYW5kb20nXSA9ICdMb3Nvd3knOwokbGFuZ1sncmVvcmRlcl9oaWVyYXJjaHknXSA9ICdabWllxYQga29sZWpub8WbxIcgaGllcmFyY2hpaSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1Byenl3ciZvYWN1dGU7xIcgd2FydG/Fm2NpIGRvbXnFm2xuZSc7CiRsYW5nWydyZXR1cm4nXSA9ICdQb3dyJm9hY3V0ZTt0JzsKJGxhbmdbJ3JldHVybl90b190b3AnXSA9ICdSZXR1cm4gdG8gdGhlIHRvcCBvZiB0aGUgdmlldyc7CiRsYW5nWydyb290J10gPSAnR8WCJm9hY3V0ZTt3bnknOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnU2VhcmNoIFByb3BlcnR5IERlc2NyaXB0aW9uJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2hvdWxkIHRoZSBxdWVyeSBtYXRjaCBhbGwsIG9yIGFueSBvZiB0aGUgdGVzdHMgYmVsb3c/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnU2VhcmNoIFByb3BlcnR5IE5hbWUnOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnUHJpY2UgUmFuZ2UnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IFNlYXJjaCBGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlcyddID0gJ1NlYXJjaCBUZW1wbGF0ZXMnOwokbGFuZ1snc2VsZWN0X2FsbCddID0gJ1phem5hY3ogd3N6eXN0a2llJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdXeWJpZXJ6IG9wY2rEmSc7CiRsYW5nWydzZXRkcmFmdCddID0gJ1VzdGF3IGpha28ga29waWEgcm9ib2N6YSc7CiRsYW5nWydzZXRwdWJsaXNoZWQnXSA9ICdVc3RhdyBqYWtvIG9wdWJsaWtvd2FuZSc7CiRsYW5nWydza3UnXSA9ICdTS1UgJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0dWogcG8nOwokbGFuZ1snc29ydF9vcmRlciddID0gJ0tvbGVqbm/Fm8SHIHNvcnRvd2FuaWEnOwokbGFuZ1snc291cmNlJ10gPSAnU291cmNlJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnWmFwaXN6JzsKJGxhbmdbJ3N1YnNjcmlwdGlvbiddID0gJ1N1YnNjcmlwdGlvbic7CiRsYW5nWydzdWJzY3JfZXhwaXJ5J10gPSAnRXhwaXJ5JzsKJGxhbmdbJ3N1YnNjcl9leHBpcnkyJ10gPSAnRXhwaXJlcyc7CiRsYW5nWydzdWJzY3JfbW9udGhseSddID0gJ01vbnRobHknOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZCddID0gJ0RlbGl2ZXJ5IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kMiddID0gJ0RlbGlldmVyZWQnOwokbGFuZ1snc3Vic2NyX3BheXBlcmlvZCddID0gJ1BheW1lbnQgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QyJ10gPSAnUGFpZCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUXVhcnRlcmx5JzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ1NlbWkgQW51YWxseSc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnWWVhcmx5JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTemFibG9ueSBsaXN0JzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRG9kYWovZWR5dHVqIHN6YWJsb24gbGlzdHknOwokbGFuZ1sndGF4YWJsZSddID0gJ09wb2RhdGtvd2FueSc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1BvbGUgdGVrc3Rvd2UgKHRleHRhcmVhKSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnUG9sZSB0ZWtzdG93ZSc7CiRsYW5nWyd0aXRsZV9ieWhpZXJhcmNoeV9kZmx0dGVtcGxhdGUnXSA9ICdEb215xZtsbnkgbm93eSBzemFibG9uIHJhcG9ydHUgaGllcmFyY2hpaSc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IG5vd3kgc3phYmxvbiBsaXN0eSBrYXRlZ29yaWknOwokbGFuZ1sndGl0bGVfZGV0YWlsX2RmbHR0ZW1wbGF0ZSddID0gJ0RvbXnFm2xueSBub3d5IHN6YWJsb24gd2lkb2t1IHN6Y3plZyZvYWN1dGU7xYJvd2Vnbyc7CiRsYW5nWyd0aXRsZV9zZWFyY2hfZGZsdHRlbXBsYXRlJ10gPSAnRG9tecWbbG55IG5vd3kgc3phYmxvbiB3eXN6dWtpd2Fya2knOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdEb215xZtsbnkgbm93eSBzemFibG9uIHdpZG9rdSBsaXN0eSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwJ10gPSAnUHJ6ZXN1xYQgZG8gZyZvYWN1dGU7cnknOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXp1aic7CiRsYW5nWyd1cGxvYWQnXSA9ICdXeWJpZXJ6IHBsaWsnOwokbGFuZ1sndXJsX2FsaWFzJ10gPSAnQWxpYXMgVVJMJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnUG9wcmF3bnknOwokbGFuZ1sndmFsdWUnXSA9ICdXYXJ0b8WbxIcnOwokbGFuZ1sndmFsdWVzJ10gPSAnV2FydG/Fm2NpJzsKJGxhbmdbJ3ZpZXcnXSA9ICdab2JhY3onOwokbGFuZ1sndmlld2FibGVfZmllbGRzJ10gPSAnU2VsZWN0IGN1c3RvbSBmaWVsZHMgdG8gdmlldyBpbiB0aGUgdGFibGUnOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnxZpjaWXFvGthIGRvIHBsaWt1IHplIHpuYWtpZW0gd29kbnltJzsKJGxhbmdbJ3dlaWdodCddID0gJ1dhZ2EnOwokbGFuZ1snd2l0aF9zZWxlY3RlZCddID0gJ1phem5hY3pvbmUnOwokbGFuZ1sneWVzJ10gPSAnVGFrJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTEzMTgyMTM3MzktMTI3NTY2ODM3MTMwMyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE4NzM0OTYyODMuMTI5NDM0MDc2Mi4xMjk0MzQwNzYyLjEyOTQzNDA3NjIuMSc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCAnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ1cgJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAnSCAnOwokbGFuZ1snYWRkJ10gPSAnQWRpY2lvbmFyJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnQWRpY2lvbmFyIENhdGVnb3JpYSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0FkaWNpb25hciBDYW1wbyc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAnQWRqdXN0JmFhY3V0ZTt2ZWwnOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ0FkaWNpb25hciBQcm9kdXRvJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnQWRpY2lvbmFyIEF0cmlidXRvJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0NhbXBvIEFzc29jaSZhYWN1dGU7dmVsIGNvbSBhIENhdGVnb3JpYTogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYWRkX2hpZXJhcmNoeV9pdGVtJ10gPSAnQWRpY2lvbmFyIEl0ZW0gJmFncmF2ZTsgSGllcmFycXVpYSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnQWRpY2lvbmFyIE9wJmNjZWRpbDsmYXRpbGRlO28gZGUgQXRyaWJ1dG8nOwokbGFuZ1snYWRtaW5fb25seSddID0gJ1Mmb2FjdXRlOyBhcGVuYXMgQWRtaW4mIzAzOTtzIHBvZGVtIHZpc3VhbGl6YXIgZXN0ZSBhdHJpYnV0bz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BvIEVzcXVlcmRhJzsKJGxhbmdbJ2FsaWduX3VjJ10gPSAnVG9wbyBDZW50cm8nOwokbGFuZ1snYWxpZ25fdXInXSA9ICdUb3BvIERpcmVpdGEnOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNZWlvIEVzcXVlcmRhJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnQ2VudHJvJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnTWVpbyBEaXJlaXRhJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQmFpeG8gRXNxdWVyZGEnOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdCYWl4byBDZW50cm8nOwokbGFuZ1snYWxpZ25fbHInXSA9ICdCYWl4byBEaXJlaXRhJzsKJGxhbmdbJ2FsbCddID0gJ1RvZG9zJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdUb2RhcyBhcyBDYXRlZ29yaWFzJzsKJGxhbmdbJ2FueSddID0gJ1F1YWxxdWVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdUZW0gYSBjZXJ0ZXphPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIGFwYWdhciBlc3RlIHByb2R1dG8sIGJlbSBjb21vIG8gYWNvbXBhbmhhbWVudG8gZGUgdG9kYXMgYXMgaW5mb3JtYSZjY2VkaWw7Jm90aWxkZTtlcyByZWZlcmVudGVzIGFvIG1lc21vPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdBc2NlbmRlbnRlJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXRyaWJ1dG8gTm9tZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbSZhYWN1dGU7dGljbyc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlcyddID0gJ0hpZXJhcnF1aWEgUmVsYXQmb2FjdXRlO3JpbyB0ZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRpY2lvbmFyL0VkaXRhciBIaWVyYXJxdWlhIFJlbGF0Jm9hY3V0ZTtyaW8gdGVtcGxhdGVzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGFyJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnQ2F0ZWdvcmlhJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAnTyBub21lIGRhIGNhdGVnb3JpYSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ1RlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyIFRlbXBsYXRlcyBMaXN0YSBkZSBDYXRlZ29yaWFzJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudCZpYWN1dGU7bWV0cm9zJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2FpeGEgZGUgVmVyaWZpY2EmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1RlbSBjZXJ0ZXphIGRlIHF1ZSBkZXNlamEgZXhjbHVpciBlc3RlIG4mb2FjdXRlOz8gUXVhbHF1ZXIgcHJvZHV0byBxdWUgZXN0ZWphIGEgdXNhciBlc3RlIG4mb2FjdXRlOyBzZXImYWFjdXRlOyBjb25maWd1cmFkbyBwYXJhIG4mYXRpbGRlO28gdXNhcmVtIGhpZXJhcnF1aWEnOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICdUZW0gY2VydGV6YSBkZSBxdWUgcmVhbG1lbnRlIHF1ZXIgZmF6ZXIgaXNzbz9cblxuQ29uZmlndXJhJmNjZWRpbDsmb3RpbGRlO2VzIGltcHJvcHJpYXMgb3UgaW52JmFhY3V0ZTtsaWRhcyBwb2RlciZhYWN1dGU7IGhhdmVyIGNvbXBsZXRhbWVudGUgdW1hIGNvcnJ1cCZjY2VkaWw7JmF0aWxkZTtvIG5vIHNpc3RlbWEgYWN0dWFsbWVudGUgZW0gdmlnb3IuJzsKJGxhbmdbJ2NvcHknXSA9ICdDb3BpYXInOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0NvcGlhciBDYXRlZ29yaWEnOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdEYXRhIGRhIENyaWEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnVmFsb3IgQWN0dWFsJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnUGFkciZhdGlsZGU7byc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnVGVtcGxhdGVzIFBhZHImYXRpbGRlO28nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGE6PC9zdHJvbmc+IE8gY29udGUmdWFjdXRlO2RvIGRlc3RhcyAmYWFjdXRlO3JlYXMgdGV4dG9zICBzJmF0aWxkZTtvIHVzYWRhcyBwYXJhIGRldGVybWluYXIgbyBjb250ZSZ1YWN1dGU7ZG8gZG9zIHRlbXBsYXRlcyBwYWRyJmF0aWxkZTtvIHF1YW5kbyBjbGljYXIgZW0gJnF1b3Q7QWRpY2lvbmFyIFRlbXBsYXRlJnF1b3Q7IG5hIFRhYiBhcHJvcHJpYWRhLiBFZGl0YW5kbyB1bWEgZGVzdGFzICZhYWN1dGU7cmVhcyBkZSB0ZXh0byBuJmF0aWxkZTtvIHRlciZhYWN1dGU7IGVmZWl0b3MgaW1lZGlhdG9zIG5vIHNldSBzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdFbGltaW5hcic7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnRWxpbWluYXIgQXRyaWJ1dG8nOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnRWxpbWluYXIgSGllcmFycXVpYSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kZW50ZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2RldGFpbHMnXSA9ICdEZXRhbGhlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICdUZW1wbGF0ZXMgRGV0YWxoZXMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgVGVtcGxhdGVzIERldGFsaGVzJzsKJGxhbmdbJ2RpbWVuc2lvbnMnXSA9ICdEaW1lbnMmb3RpbGRlO2VzJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnRGVzYXRpdmFkbyc7CiRsYW5nWydkcmFmdCddID0gJ1Jhc2N1bmhvJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnTWVudSBNJnVhY3V0ZTtsdGlwbG8gKERyb3Bkb3duKSA8ZW0+KGFwbGljYXIgcyZvYWN1dGU7IGNhbXBvcyBNZW51IE0mdWFjdXRlO2x0aXBsbyAoRHJvcGRvd24pICk8L2VtPjxici8+PGJyLz48ZW0+KHVtYSBlbnRyYWRhIHBvciBsaW5oYSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdGFyICc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ0VkaXRhciBBdHJpYnV0byc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdFZGl0YXIgRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIGRlIEF0cmlidXRvcyc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAnRWRpdGFyIERlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkZSBBdHJpYnV0b3MgUGFyYSc7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdFZGl0YXIgQXRyaWJ1dG9zJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdFZGl0YXIgQ2F0ZWdvcmlhJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnRWRpdGFyIENhdGVnb3JpYSBDYW1wb3MnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ0VkaXRhciBIaWVyYXJxdWlhIEl0ZW0nOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ1VtIGF0cmlidXRvIGNvbSBlc3NlIG5vbWUgaiZhYWN1dGU7IGV4aXN0ZSc7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnVmFsb3IgU0tVIGR1cGxpY2FkbyBmb2kgZW5jb250cmFkbyc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAnTyB2YWxvciBkbyBDYW1wbyBuJmF0aWxkZTtvIHBvZGUgZXN0YXIgdmF6aW8nOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ1Byb2JsZW1hIGNvbSBvIGZvcm1hdG8gZG8gZmljaGVpcm8nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmljaGVpcm8gTiZhdGlsZGU7byBFbmNvbnRyYWRvJzsKJGxhbmdbJ2Vycm9yX2ZpbGVvcGVuJ10gPSAnUHJvYmxlbWEgYW8gYWJyaXIgbyBmaWNoZWlybyAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnUGFyZW50ZSBJbnYmYWFjdXRlO2xpZG8gIChvIG5vZGUgZGUgSGllcmFycXVpYSAgbiZhdGlsZGU7byBwb2RlIHNlciwgJmVhY3V0ZTsgbyBwciZvYWN1dGU7cHJpbyknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnTyB2YWxvciBkbyBjYW1wbyBwZXJzb25hbGl6YWRvIGRpZ2l0YWRvICZlYWN1dGU7IGludiZhYWN1dGU7bGlkbyAobiZhdGlsZGU7byBjb250JmVhY3V0ZTttIGNhcmFjdGVyZXMgYWxmYW51bSZlYWN1dGU7cmljb3MpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ1VtIHBhciZhY2lyYzttZXRybyBvYnJpZ2F0Jm9hY3V0ZTtyaW8gZXN0JmFhY3V0ZTsgYXVzZW50ZSBvdSAmZWFjdXRlOyBpbnYmYWFjdXRlO2xpZG8nOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdVbSBpdGVtIGNvbSBlc3NlIG5vbWUgaiZhYWN1dGU7IGVzdCZhYWN1dGU7IGVtIHVzbyc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BvciBGYXZvciBzZWxlY2lvbmUgdW0gdGlwbyBkZSBjYW1wbyc7CiRsYW5nWydlcnJvcl9ub25hbWUnXSA9ICdZb3UgZGV2ZSBmb3JuZWNlciB1bSBub21lJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICdQZXJtaXNzJmF0aWxkZTtvIE5lZ2FkYSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ08gYWxpYXMgZXNwZWNpZmljYWRvIGomYWFjdXRlOyBlc3QmYWFjdXRlOyBlbSB1c28nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCddID0gJ1VtIHByb2R1dG8gcG9yIGVzc2Ugbm9tZSBqJmFhY3V0ZTsgZXhpc3RlJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdPIHByb2R1dG8gc29saWNpdGFkbyBuJmF0aWxkZTtvIHAmb2NpcmM7ZGUgc2VyIGVuY29udHJhZG8nOwokbGFuZ1snZXJyb3JfcHJvZHVjdF9za3V1c2VkJ10gPSAnU0tVIGNvbSBlc3RlIHZhbG9yIGomYWFjdXRlOyBlc3QmYWFjdXRlOyBlbSB1c28gZW0gdW0gb3V0cm8gcHJvZHV0byc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTyB2YWxvciBhanVzdGFkbyBkbyBwcmUmY2NlZGlsO28gJmVhY3V0ZTsgaW52JmFhY3V0ZTtsaWRvIHBhcmEgbyBpdGVtICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdDYXJyZWdhbWVudG8gZmFsaG91OiAlcyc7CiRsYW5nWydleHRyYTEnXSA9ICdDYW1wbyBFeHRyYSAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0NhbXBvIEV4dHJhIDInOwokbGFuZ1snZmllbGQnXSA9ICdDYW1wbyc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluaSZjY2VkaWw7JmF0aWxkZTtvIGRvIENhbXBvJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaSZjY2VkaWw7Jm90aWxkZTtlcyBkb3MgQ2FtcG9zJzsKJGxhbmdbJ2ZpbGUnXSA9ICdBcnF1aXZvJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cm9zJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdDb25maWd1cmEmY2NlZGlsOyZvdGlsZGU7ZXMgR2VyYWlzJzsKJGxhbmdbJ2dvJ10gPSAnSXInOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFycXVpYSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdQb3NpJmNjZWRpbDsmYXRpbGRlO28gcG9yIEhpZXJhcnF1aWEgJzsKJGxhbmdbJ2lkJ10gPSAnSUQnOwokbGFuZ1snaW1hZ2V0ZXh0J10gPSAnSW1hZ2VtJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIERlIEltYWdlJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydGEmY2NlZGlsOyZhdGlsZGU7byBkZSBQcm9kdXRvcyBwb3IgQ1NWJzsKJGxhbmdbJ2luY2hlcyddID0gJ1BvbGVnYWRhcyc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5jbHVpciBGaWxob3M/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnU29tZW50ZSBjYXJhY3RlcmVzIGFsZmFudW0mZWFjdXRlO3JpY29zLiBOJmF0aWxkZTtvIGFjZWl0YSBlc3BhJmNjZWRpbDtvcyBlbSBicmFuY28sIGFzcGFzLCBvdSBsZXRyYS9uJnVhY3V0ZTttZXJvIHNlbSBjb21iaW5hJmNjZWRpbDsmb3RpbGRlO2VzJzsKJGxhbmdbJ2luZm9fYXR0cmlidGVtcGxhdGUnXSA9ICdQb3NzJmlhY3V0ZTt2ZWlzIHZhcmkmYWFjdXRlO3ZlaXMgcyZhdGlsZGU7bzogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnRGVmaW5pJmNjZWRpbDsmb3RpbGRlO2VzIFdhdGVybWFyayBzJmF0aWxkZTtvIHJlYWxpemFkYXMgYSBwYXJ0aXIgZG8gTSZvYWN1dGU7ZHVsbyBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdEZWZpbmlyIG8gbiZ1YWN1dGU7bWVybyBkZSBsaW5oYXMgYSBwcm9jZXNzbyBwb3IgJnF1b3Q7bG90ZSZxdW90Oy4gT3BlcmEmY2NlZGlsOyZvdGlsZGU7ZXMgYXAmb2FjdXRlO3MgdW0gbG90ZSBzZXIgY29tcGxldG8sIG8gaW1wb3J0YWRvciBpciZhYWN1dGU7IHJlZGlyZWNjaW9uYXIsIGUgcmV0b21hciBhcyBvcGVyYSZjY2VkaWw7Jm90aWxkZTtlcy4gU2UgZXN0JmFhY3V0ZTsgY29tIGVycm9zIGRlIG1lbSZvYWN1dGU7cmlhLCBvdSBwcm9ibGVtYXMgZGUgJnF1b3Q7dGltZW91dCZxdW90OyBkZXZpZG8gYSBncmFuZGUgcXVhbnRpZGFkZSBkZSBwcm9jZXNzYW1lbnRvLCBwb2RlIHByZWNpc2FyIGRlIGNvbnN1bHRhciBvIHNldSBwcm92ZWRvciBkZSBob3NwZWRhZ2VtLCBvdSByZWR1emlyIGVzdGUgbiZ1YWN1dGU7bWVybyc7CiRsYW5nWydpbmZvX2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0Vzc2VzIHBhciZhY2lyYzttZXRyb3MgcyZhdGlsZGU7byBpbmRpY2Fkb3MgcGFyYSBvIG0mb2FjdXRlO2R1bG8gQ2FycmluaG8gc2VsZWNjaW9uYWRvIGRvIHByb2R1dG8gZGV0YWxoZSBlIGV4aWJlIHN1bSZhYWN1dGU7cmlvJzsKJGxhbmdbJ2luZm9fY3JlYXRlZmllbGRzJ10gPSAnQ3JpYXIgY2FtcG9zIGRlIHByb2R1dG8gZGVzY29uaGVjaWRvIGF1dG9tYXRpY2FtZW50ZT8gPGVtPiAoRWxlcyBzZXImYXRpbGRlO28gY3JpYWRvcyBjb21vIGNhbXBvcyBkZSB0ZXh0bykgPC9lbT4nOwokbGFuZ1snaW5mb19jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JpYXIgYXV0b21hdGljYW1lbnRlIGFzIGNhdGVnb3JpYXMgZGUgcHJvZHV0b3MgcGFyYSBjb2luY2lkaXIgY29tIGFzIGRvIGFycXVpdm8gQ1NWLCBzZSBuJmF0aWxkZTtvIGV4aXN0aXIgYWluZGEnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdDcmlhciBhdXRvbWF0aWNhbWVudGUgYXMgIGhpZXJhcnF1aWFzIGRlIHByb2R1dG9zIHBhcmEgY29pbmNpZGlyIGNvbSBhcyBkbyBhcnF1aXZvIENTViwgc2UgbiZhdGlsZGU7byBleGlzdGlyIGFpbmRhJzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ0VzdGUgc2lzdGVtYSBjb21wcmVlbmRlICguKSBDb21vIG8gcG9udG8gZGVjaW1hbCBzZXBhcmFkb3IuIG91IHNlamE6IDxzdHJvbmc+IDUuMjUgPC9zdHJvbmc+JzsKJGxhbmdbJ2luZm9fZGVsaW1pdGVyJ10gPSAnRXNwZWNpZmlxdWUgbyBjYXImYWFjdXRlO2N0ZXIgKG91IGNhcmFjdGVyZXMpIHF1ZSBzZXBhcmFtIGNhZGEgY2FtcG8nOwokbGFuZ1snaW5mb19kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0VzcGVjaWZpY2FyIGNvbW8gbyBzaXN0ZW1hIGRldmUgdHJhdGFyIHVtIHByb2R1dG8gZW0gcXVlIG8gbm9tZSBqJmFhY3V0ZTsgZXhpc3RlIG5vIGFycXVpdm8gQ1NWJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+Tm90YTogPC9zdHJvbmc+VG9kb3Mgb3MgY2FtcG9zIGRlZmluaWRvcyBlc3QmYXRpbGRlO28gYXF1aSBkaXNwb24maWFjdXRlO3ZlaXMgcGFyYSB0b2RvcyBvcyBwcm9kdXRvcy4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnRm9yYW0gZW5jb250cmFkb3MgcHJvYmxlbWFzIHF1YW5kbyBzZSB0cmF0YSBkZSB1bSBvdSBtYWlzIGNhbXBvcyBwZXJzb25hbGl6YWRvcy4gQSBhYyZjY2VkaWw7JmF0aWxkZTtvIGZvaSBjb25jbHUmaWFjdXRlO2RhIGNvbSBzdWNlc3NvLCBubyBlbnRhbnRvIHZvYyZlY2lyYzsgZGV2ZXImYWFjdXRlOyBpbnZlc3RpZ2FyIGUgY29ycmlnaXIgZXN0ZXMgcHJvYmxlbWFzJzsKJGxhbmdbJ2luZm9faGFuZGxlaW1hZ2VzJ10gPSAnQXAmb2FjdXRlO3MgYSBpbXBvcnRhJmNjZWRpbDsmYXRpbGRlO28sIHNlIHVtIGFycXVpdm8gZGUgaW1hZ2VtIGZvciBlbmNvbnRyYWRhIGVtIHVtYSBjb2x1bmEgZGUgY2FtcG8sIGVsYSBkZXZlIHNlciB0cmFuc2ZlcmlkYSBkbyBsb2NhbCBkZSBvcmlnZW0sIG1hcmNhIGRlICZhYWN1dGU7Z3VhLCBtaW5pYXR1cmFzLCBlIG8gdGlwbyBkZSBjYW1wbyBhbHRlcmFkbyBwYXJhIGEgJnF1b3Q7aW1hZ2VtJnF1b3Q7JzsKJGxhbmdbJ2luZm9faW1hZ2VwYXRoJ10gPSAnTyBjYW1pbmhvIChyZWxhdGl2byBhbyBkaXJlY3Qmb2FjdXRlO3JpbyBkZSAvdXBsb2FkcykgZW0gcXVlIGFzIGltYWdlbnMgcmVmZXJpZGFzIG5vIGFycXVpdm8gZGUgaW1wb3J0YSZjY2VkaWw7JmF0aWxkZTtvLCBwb2RlbSBzZXIgZW5jb250cmFkYXMnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdVbSB0ZXN0ZSBicmV2ZSAgZm9pIHJlYWxpemFkbyBuYSBlbnRyYWRhIGRvIGNhbXBvIGVzcGVjaWZpY2FkbywgZSB0dWRvIHBhcmVjZSBlc3RhciBjb3JyZXRvLiA8YnIvPiBFc3RlIG4mYXRpbGRlO28gJmVhY3V0ZTsgdW0gaW5kJmlhY3V0ZTtjaW8gZGUgcXVlIG4mYXRpbGRlO28gaCZhYWN1dGU7IGVycm9zIG5vIGFycXVpdm8uJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbG9yZXMgViZhYWN1dGU7bGlkb3MgcyZhdGlsZGU7byArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHJvZG5vdGZvdW5kJ10gPSAnRXN0YSBvcCZjY2VkaWw7JmF0aWxkZTtvIGRldGVybWluYSBvIGNvbXBvcnRhbWVudG8gZG8gc2l0ZSwgc2UgdW0gZGV0YWlsIHZpZXcgZG8gcHJvZHV0byAmZWFjdXRlOyBhY2VzcyZpYWN1dGU7dmVsIGRpcmVjdGFtZW50ZSBwZWxhIFVSTCwgZSBxdWUgbyBwcm9kdXRvIHBvciBxdWFscXVlciBtb3Rpdm8gKGRlc2FiaWxpdGFkbywgZXhjbHUmaWFjdXRlO2RvLCBldGMpIG4mYXRpbGRlO28gcG9kZW0gc2VyIGFjZXNzJmlhY3V0ZTt2ZWlzLic7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnJkFhY3V0ZTtyZWFzIHAmdWFjdXRlO2JsaWNhcyBlc3QmYXRpbGRlO28gZGlzcG9uJmlhY3V0ZTt2ZWlzIHBhcmEgc2VyZW0gdmlzdWFsaXphZGFzJzsKJGxhbmdbJ2xhYmVsJ10gPSAnQmxvY28gKExhYmVsKSc7CiRsYW5nWydsYWJlbF9za2lwJ10gPSAnU2FsdGFyJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ1N1YnN0aXR1aXInOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnJlVhY3V0ZTtsdGltYSBNb2RpZmljYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2VndW5kYSBJbWFnZW0nOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnQ29tcHJpbWVudG8gbSZhYWN1dGU7eGltbyA8ZW0+KGFwbGljJmFhY3V0ZTt2ZWwgc29tZW50ZSBub3MgY2FtcG9zIGNhaXhhcyBkZSB0ZXh0byApPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnRGF0YSBkYSBtb2RpZmljYSZjY2VkaWw7JmF0aWxkZTtvJzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ1VtIG0mb2FjdXRlO2R1bG8gZGUgZ2VzdCZhdGlsZGU7byBkZSB1bSBjYXQmYWFjdXRlO2xvZ28gZGUgcHJvZHV0b3MsIG9zIHNldXMgcHJlJmNjZWRpbDtvcywgaW1hZ2VucywgZXRjLCBlIHBhcmEgcGVybWl0aXIgcXVlIG9zIHVzdSZhYWN1dGU7cmlvcyB0ZW5oYW0gdW0gY2FycmluaG8nOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnRGVzY2VyJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdTdWJpcic7CiRsYW5nWyduYW1lJ10gPSAnTm9tZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ04mYXRpbGRlO28gdGVtIGEgYXV0b3JpemEmY2NlZGlsOyZhdGlsZGU7byBuZWNlc3MmYWFjdXRlO3JpYTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOb3ZhIENhdGVnb3JpYSBOb21lJzsKJGxhbmdbJ25leHRwYWdlJ10gPSAnPic7CiRsYW5nWydubyddID0gJ04mYXRpbGRlO28nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdOZW5odW0gbm9tZSBmb2kgZm9ybmVjaWRvJzsKJGxhbmdbJ25vbmUnXSA9ICdOJmF0aWxkZTtvJzsKJGxhbmdbJ29mJ10gPSAnZGUnOwokbGFuZ1sncGFnZSddID0gJ1AmYWFjdXRlO2dpbmEnOwokbGFuZ1sncGFnZV9vZiddID0gJ1AmYWFjdXRlO2dpbmEgJXMgZGUgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ1AmYWFjdXRlO2dpbmEgTCZpYWN1dGU7bWl0ZSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KICA8bGk+ZmllbGRsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgdmFsdWVzIGZyb20gYSBzcGVjaWZpZWQgZmllbGQuDQogICAgIDxwPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7LSBUaGlzIGFjdGlvbiBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSBuYXZpZ2F0aW9uIGZyb20gdGhlIHZhbHVlcyBvZiBhIHNwZWNpZmljIGZpZWxkLiAgaS5lOiAgeW91IGNvdWxkIGNyZWF0ZSBhIGN1c3RvbSBkcm9wZG93biBmaWVsZCBjYWxsZWQgJmFtcDtxdW90O2NvbG9yJmFtcDtxdW90OyBhbmQgdGhlbiBjcmVhdGUgYSBuYXZpZ2F0aW9uIGJhc2VkIG9uIHRoZSBkaWZmZXJlbnQgY29sb3JzLg0KICAgICA8L3A+DQogIDwvbGk+DQogIDxsaT5zZWFyY2ggLSBEaXNwbGF5IGEgZm9ybSB0byBhbGxvdyBzZWFyY2hpbmcgcHJvZHVjdHMgb24gdmFyaW91cyBjcml0ZXJpdW08L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdRdWFuZG8gdXRpbGl6YWRvIGVtIDxlbT4gcGFkciZhdGlsZGU7byA8LyBlbT4gbW9kbyBzdW0mYWFjdXRlO3JpbywgZXN0ZSBwYXImYWNpcmM7bWV0cm8sIGRldmUgc2VyIGlndWFsIGFvIG5vbWUgZGUgdW1hIGNhdGVnb3JpYSBleGlzdGVudGUgc2VyJmFhY3V0ZTsgdXRpbGl6YWRvIHBhcmEgZXhpYmlyIGFwZW5hcyBhcyBlbXByZXNhcyBxdWUgZXN0JmF0aWxkZTtvIG5lc3NhIGNhdGVnb3JpYS4gKFVtYSBsaXN0YSBzZXBhcmFkYSBwb3IgdiZpYWN1dGU7cmd1bGFzIHBvZGUgc2VyIGZvcm5lY2lkYSknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICcmVWFjdXRlO3RpbCBhcGVuYXMgY29tIG8gbGlzdGFzIGRlIGNhdGVnb3JpYXMsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGluZGljYSBvIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1dGlsaXphZG8gcGFyYSBhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28uIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBlbnQmYXRpbGRlO28gbyBhY3R1YWwgdGVtcGxhdGUgcGFkciZhdGlsZGU7byAmZWFjdXRlOyB1c2Fkby4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnXSA9ICcmVWFjdXRlO3RpbCBhcGVuYXMgY29tIGFzIGEmY2NlZGlsOyZvdGlsZGU7ZXMgJnF1b3Q7Y2F0ZWdvcnlsaXN0JnF1b3Q7ICwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gaW5kaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHV0aWxpemFkbyBwYXJhIGEgZXhpYmkmY2NlZGlsOyZhdGlsZGU7byBkbyBkZXRhbGhlIGRhIGNhdGVnb3JpYS4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIGVudCZhdGlsZGU7byBvIGFjdHVhbCB0ZW1wbGF0ZSBwYWRyJmF0aWxkZTtvICZlYWN1dGU7IHVzYWRvLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRXNwZWNpZmljYSBvIHBhZ2VpZCBvdSBhbGlhcyBxdWUgZGV2ZSBzZXIgdXNhZG8gcGFyYSBleGliaXIgbyByZWxhdCZvYWN1dGU7cmlvIGRlIGRldGFsaGVzIC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHV0aWxpemFkbyBwYXJhIG8gZGV0YWxoZS4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIG8gdGVtcGxhdGUgcGFkciZhdGlsZGU7byAmZWFjdXRlOyB1c2Fkby4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2FkbyBzJm9hY3V0ZTsgZW0gPGVtPmZpZWxkbGlzdDwvZW0+IGFjJmNjZWRpbDsmYXRpbGRlO28sIG5lc3RlIHBhciZhY2lyYzttZXRybyAmZWFjdXRlOyBuZWNlc3MmYWFjdXRlO3JpbyBlc3BlY2lmaWNhciBvIG5vbWUgZGUgdW1hIHByb3ByaWVkYWRlIGRlZmluaWRhIHBlbG8gdXRpbGl6YWRvciBwYXJhIGNyaWFyIHVtYSBsaXN0YSBkZSBkZS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnJlVhY3V0ZTt0ZWlzIGFwZW5hcyBubyA8ZW0+IHBhZHImYXRpbGRlO28gPC9lbT4sIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgcXVlIGFwZW5hcyBvcyBpdGVucyBlbSBxdWUgYSBsb2NhbGl6YSZjY2VkaWw7JmF0aWxkZTtvIGRhIGhpZXJhcnF1aWEgZGV2ZSBzZXIgZXhpYmlkby4gV2lsZGNhcmQgcG9kZW0gc2VyIHV0aWxpemFkb3MgZGUgbW9kbyBxdWUgcG9kZSBlc3BlY2lmaWNhciBtJmF0aWxkZTtlL2ZpbGhvIHJlbGFjaW9uYW1lbnRvcy4gRS5YLiB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IGlyJmFhY3V0ZTsgY3JpYXIgdW1hIHMmaWFjdXRlO250ZXNlIGRlIHRvZG9zIG9zIGNhbWkmb3RpbGRlO2VzLCBpbmNsdWluZG8gb3MgZmlsaG9zIG5hIGhpZXJhcnF1aWEuIERhIG1lc21hIG1hbmVpcmEsIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gZXhpYmlyJmFhY3V0ZTsgdW0gcmVsYXQmb2FjdXRlO3Jpby1zJmlhY3V0ZTtudGVzZSBkZSB0b2RvcyBvcyBjYW1pJm90aWxkZTtlcywgZSB0b2RvcyBvcyBwcm9kdXRvcyBwZXJ0ZW5jZW50ZXMgYSBxdWFscXVlciBwYWkgbmEgaGllcmFycXVpYS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG8gdGVtcGxhdGUgcXVlIGRldmUgc2VyIHVzYWRvIHBhcmEgZXhpYmlyIGEgaGllcmFycXVpYS4gU2UgbmVuaHVtIHZhbG9yIGZvciBlc3BlY2lmaWNhZG8sIGVudCZhdGlsZGU7byBvIGFjdHVhbCB0ZW1wbGF0ZSBwYWRyJmF0aWxkZTtvIGRvIHRpcG8gcXVlIGVzdCZhYWN1dGU7IHNlciB1c2Fkby4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnJlVhY3V0ZTt0aWwgYXBlbmFzIGNvbSBhIGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgcGVzcXVpc2EsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgcXVlIGEgc2EmaWFjdXRlO2RhIGRhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28gZGUgc3VtbSZhYWN1dGU7cmlvIGRldmUgc2VyIGV4aWJpZG8gJnF1b3Q7aW5saW5lJnF1b3Q7JzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJyZVYWN1dGU7dGlsIGFwZW5hcyBjb20gYSBhYyZjY2VkaWw7JmF0aWxkZTtvICA8ZW0+cGFkciZhdGlsZGU7bzwvZW0+ICwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gZXNwZWNpZmljYSBxdWFudG9zIGl0ZW5zIGRldmVtIHNlciBsaXN0YWRvcyBlbSBjYWRhIHAmYWFjdXRlO2dpbmEuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJyZVYWN1dGU7dGVpcyBhcGVuYXMgbmEgPGVtPiBoaWVyYXJxdWlhIDwvZW0+LCBlc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIGEgaGllcmFycXVpYSBpZCBkYSBwYXJ0aWRhIGRhIGxvY2FsaXphJmNjZWRpbDsmYXRpbGRlO28gZG8gcmVsYXQmb2FjdXRlO3Jpby4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnJlVhY3V0ZTt0aWwgYXBlbmFzIGNvbSBhIGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgZGV0YWxoZSAsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGluZGljYSBvIHByb2R1dG8gcXVlIHByZXRlbmRlIGV4aWJpci4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzICZhZ3JhdmU7IGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgcGVzcXVpc2EsIGVzdGUgcGFyJmFjaXJjO21ldHJvIGVzcGVjaWZpY2EgdW1hICZxdW90O3BhZ2VJRCZxdW90OyAgb3UgJnF1b3Q7YWxpYXMmcXVvdDsgYSBzZXIgdXNhZG8gcGFyYSBleGliaXIgb3MgcmVzdWx0YWRvcyBkZSBwZXNxdWlzYSc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FwbGljJmFhY3V0ZTt2ZWwgYXBlbmFzICZhZ3JhdmU7IGFjJmNjZWRpbDsmYXRpbGRlO28gZGUgcGVzcXVpc2EsIGVzdGUgcGFyJmFjaXJjO21ldHJvIHBvZGUgY29udGVyIHVtYSBsaXN0YSBzZXBhcmFkYSBwb3IgdiZpYWN1dGU7cmd1bGFzIGRlIG5vbWVzIGRlIGNhbXBvcyBwYXJhIGluY2x1aXIgbmEgcGVzcXVpc2EnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgJmFncmF2ZTsgYWMmY2NlZGlsOyZhdGlsZGU7byBkZSBwZXNxdWlzYSwgZXN0ZSBwYXImYWNpcmM7bWV0cm8gcGVybWl0ZSBlc3BlY2lmaWNhciB1bSwgIHRlbXBsYXRlIG4mYXRpbGRlO28gcGFkciZhdGlsZGU7byBkZSBvIGZvcm11bCZhYWN1dGU7cmlvIGRhIHBlc3F1aXNhICc7CiRsYW5nWydwYXJhbV9zaG93YWxsJ10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgJmFncmF2ZTsgYWMmY2NlZGlsOyZhdGlsZGU7byBjYXRlZ29yeWxpc3QsIHNlIGVzdGUgcGFyJmFjaXJjO21ldHJvIGZvciBkZWZpbmlkbyBwYXJhIHVtIHZhbG9yIG4mYXRpbGRlO28gaW50ZWlybyAwLCB0b2RhcyBhcyBjYXRlZ29yaWFzIChtZXNtbyBhcXVlbGVzIHNlbSBwcm9kdXRvcykgc2VyJmF0aWxkZTtvIGV4aWJpZGFzLic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdFc3BlY2lmaWNhciBhIG9yZGVtIGRvcyBjYW1wb3Mgb3JkZW5hZG9zIG5vIHN1bSZhYWN1dGU7cmlvLiBPcyB2YWxvcmVzIHBvc3MmaWFjdXRlO3ZlaXMgcyZhdGlsZGU7bzoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBsaWMmYWFjdXRlO3ZlbCBhcGVuYXMgZW0gbW9kbyBzdW0mYWFjdXRlO3JpbywgZXN0ZSBwYXImYWNpcmM7bWV0cm8gZGV0ZXJtaW5hIGEgdHJpYWdlbSBkYXMgZW1wcmVzYXMgZGUgc2EmaWFjdXRlO2RhLiBPcyB2YWxvcmVzIHBvc3MmaWFjdXRlO3ZlaXMgcyZhdGlsZGU7bzoNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPmlkIC0tIFRoZSBwcm9kdWN0IGlkPC9saT4NCiAgPGxpPndlaWdodCAtLSBUaGUgcHJvZHVjdCB3ZWlnaHQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5mOmZpZWxkbmFtZSAtLSBBbGxvd3Mgc29ydGluZyBieSB2YWx1ZXMgb2YgY3VzdG9tIGZpZWxkcy48L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydHR5cGUnXSA9ICdBcGxpYyZhYWN1dGU7dmVsIGFwZW5hcyBhbyBzdW1tYXJ5IHZpZXcgcGFkciZhdGlsZGU7bywgZXNzZSBwYXImYWNpcmM7bWV0cm8gJmVhY3V0ZTsgdXNhZG8gcGFyYSBjb252ZXJ0ZXIgb3MgdmFsb3JlcyBwYXJhIG91dHJvIHRpcG8gZGUgb3JkZW5hJmNjZWRpbDsmYXRpbGRlO28uIFZhbG9yZXMgdiZhYWN1dGU7bGlkb3MgcyZhdGlsZGU7bzogU1RSSU5HLFNJR05FRCBlIFVOU0lHTkVELiBTZSBuJmF0aWxkZTtvIGZvciBmb3JuZWNpZG8gcXVhbHF1ZXIgZGFkbywgbyB0aXBvIFNUUklORyAmZWFjdXRlOyBhc3N1bWlkbyBwb3IgcGFkciZhdGlsZGU7by4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcGxpYyZhYWN1dGU7dmVsIGFwZW5hcyAmYWdyYXZlOyAmcXVvdDthY3Rpb249aGllcmFyY2h5JnF1b3Q7LCBwZXJtaXRlIGVzcGVjaWZpY2FyIHVtYSBpZCBkYSBwJmFhY3V0ZTtnaW5hIG91IGFsaWFzIHF1ZSBzZXImYWFjdXRlOyB1dGlsaXphZG8gcGFyYSBxdWFpc3F1ZXIgbGlua3MgcGFyYSB2ZXIgc3VtbWFyeSc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdFc3RlIHBhciZhY2lyYzttZXRybyBlc3BlY2lmaWNhIG5vIHRlbXBsYXRlIHF1ZSBkZXZlIHNlciB1dGlsaXphZG8gcGFyYSBhIGV4aWJpJmNjZWRpbDsmYXRpbGRlO28gZG8gc3VtJmFhY3V0ZTtyaW8uIFNlIG5lbmh1bSB2YWxvciBmb3IgZXNwZWNpZmljYWRvLCBvIHBhZHImYXRpbGRlO28gYWN0dWFsICZlYWN1dGU7IHVzYWRvLic7CiRsYW5nWydwYXJhbV91c2VvbGRoaWVyYXJjaHknXSA9ICdVc2FyIG8gbW9kbyBhbnRpZ2EgZGEgaGllcmFycXVpYSBxdWUgZ2VyYSB1bWEgbGlzdGEgZml4YSBkZSBoaWVyYXJxdWlhcyBhYmFpeG8gZG8gbiZpYWN1dGU7dmVsIGFjdHVhbC4gRXN0YSBtb2RhbGlkYWRlIGVzdCZhYWN1dGU7IG9ic29sZXRhIGUgc2VyJmFhY3V0ZTsgcmVtb3ZpZGEgZW0gdW1hIGRhdGEgcG9zdGVyaW9yLic7CiRsYW5nWydwYXJlbnQnXSA9ICdQYXJlbnRlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTSZvYWN1dGU7ZHVsbyBQcm9kdXRvcyBmb2kgaW5zdGFsYWRvIGNvbSBzdWNlc3NvJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdPIG0mb2FjdXRlO2R1bG8gUHJvZHV0b3MgZm9pIHJlbW92aWRvIGp1bnRhbWVudGUgY29tIHRvZG9zIG9zIGRhZG9zIGFzc29jaWFkb3MnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXImZWNpcmM7bmNpYXMnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnUmVtb3ZlbmRvIGVzdGUgbSZvYWN1dGU7ZHVsbyB0YW1iJmVhY3V0ZTttIGlyJmFhY3V0ZTsgcmVtb3ZlciB0b2RvcyBvcyBkYWRvcyBhc3NvY2lhZG9zLCB0ZW0gY2VydGV6YSBkZSBxdWUgZGVzZWphIHByb3NzZWd1aXI/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJlJmNjZWRpbDtvJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdBanVzdGVzIGRlIHByZSZjY2VkaWw7b3MnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0byc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ1Byb2R1Y3RvIE5vbWUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdHZXN0JmF0aWxkZTtvIGRvIFByb2R1Y3RvJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnQ29uZmlndXJhJmNjZWRpbDsmYXRpbGRlO28gRGV0YWxoZSBkbyBQcm9kdXRvJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnSGllcmFycXVpYSBQcm9kdWN0byc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdHZXN0JmF0aWxkZTtvIGRlIFByb2R1dG9zJzsKJGxhbmdbJ3Byb2dyZXNzJ10gPSAnUHJvZ3Jlc3NvJzsKJGxhbmdbJ3Byb21wdCddID0gJ0NvbWFuZG8nOwokbGFuZ1sncHJvbXB0X2FkZF9hdHRyaWJzZXQnXSA9ICdBZGljaW5hci9FZGl0YXIgQ29uanVudG8gZGUgYXRyaWJ1dG9zJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1Blcm1pdGlyIGNhcnJlZ2FyIGFycXVpdm9zIGNvbSBhcyBleHRlbnMmb3RpbGRlO2VzIChwYXJhIG8gdGlwbyBjYW1wb3MgZGUgYXJxdWl2byApJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdQZXJtaXRpciBjYXJyZWdhciBpbWFnZW5zIGNvbSBlc3NhcyBleHRlbnMmb3RpbGRlO2VzIChwYXJhIG8gdGlwbyBjYW1wb3MgZGUgaW1hZ2VtKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBwYXJhIGFwcmVzZW50YSZjY2VkaWw7JmF0aWxkZTtvIGRlIHZhbG9yZXMgZG9zIGF0cmlidXRvcyBkbyBwcm9kdXRvIGVtIG1lbnUgc3VzcGVuc28nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICdDcmlhciBhdXRvbWF0aWNhbWVudGUgbWluaWF0dXJhcyBkYXMgaW1hZ2Vucyc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnVGFtYW5obyBtJmFhY3V0ZTt4aW1vIChtYWlvciBkaW1lbnMmYXRpbGRlO28pIGRhIG1pbmlhdHVyYS4nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nJ10gPSAnQ3JpYXIgYXV0b21hdGljYW1lbnRlIGltYWdlbnMgZGUgdmlzdWFsaXphJmNjZWRpbDsmYXRpbGRlO28nOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdUYW1hbmhvIG0mYWFjdXRlO3hpbW8gKG1haW9yIGRpbWVucyZhdGlsZGU7bykgZGEgaW1hZ2VtIGRlIHZpc3VhbGl6YSZjY2VkaWw7JmF0aWxkZTtvLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ0x1Z2FyIGF1dG9tJmFhY3V0ZTt0aWNvIGRhcyBtYXJjYXMgZCYjMDM5OyZhYWN1dGU7Z3VhIGVtIGltYWdlbnMnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdBY3RpdmFyIHBvciBwYWRyJmF0aWxkZTtvIHBhcmEgdG9kb3Mgb3Mgbm92b3MgcHJvZHV0b3MnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ1RhbWFuaG8gZG8gTG90ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICdDYXJyaW5obyBNJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ3Byb21wdF9jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdDYXJyaW5obyBNJm9hY3V0ZTtkdWxvIFBhciZhY2lyYzttZXRyb3MnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmlhciBDYXRlZ29yaWFzJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdDcmlhciBDYW1wb3Mgbm8gUHJvZHV0bz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyaWFyIHVtIFByb2R1Y3RvIEhpZXJhcnF1aWEnOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdDYXJyZWdhciBmaWNoZWlybyBDU1YnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ0Mmb2FjdXRlO2RpZ28gZG8gUyZpYWN1dGU7bWJvbG8nOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnUyZpYWN1dGU7bWJvbG8gZGEgbW9lZGEnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfc3RhdHVzJ10gPSAnUG9yIGRlZmVpdG8sIHRvZG9zIG9zIG5vdm9zIHByb2R1dG9zIHQmZWNpcmM7bSBlc3RlIGVzdGFkbyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnUG9yIGRlZmVpdG8sIHRvZG9zIG9zIG5vdm9zIHByb2R1dG9zIHMmYXRpbGRlO28gdHJpYnV0JmFhY3V0ZTt2ZWlzJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdFeGNsdWEgcXVhaXNxdWVyIGFycXVpdm9zIGFzc29jaWFkb3MgY29tIG8gcHJvZHV0bywgcXVhbmRvIG8gcHJvZHV0byBmb3IgZXhjbHUmaWFjdXRlO2RvPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnRGVsaW1pdGFkb3IgZGUgQ2FtcG8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIERldGFsaGUgUGFkciZhdGlsZGU7byc7CiRsYW5nWydwcm9tcHRfZGV0YWlsc2ZvciddID0gJ0RldGFpbGhlcyBwYXJhICVzJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0NvbW8gbGlkYXIgY29tIHByb2R1dG9zIGR1cGxpY2Fkb3M/JzsKJGxhbmdbJ3Byb21wdF9oYW5kbGVpbWFnZXMnXSA9ICdNYW5pcHVsYXIgaW1hZ2Vucz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0NhbWluaG8gZGEgSW1hZ2VtJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ1VuaWRhZGVzIGRlIGNvbXByaW1lbnRvJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvciddID0gJ1F1ZSBhYyZjY2VkaWw7JmF0aWxkZTtvIGRldmUgc2VyIHRvbWFkYSBxdWFuZG8gdW0gcHJvZHV0byBuJmF0aWxkZTtvIHBvZGUgc2VyIGV4aWJpZG8/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZXJhciB1bSBlcnJvIDQwNCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VyYXIgdW0gcmVkaXJlY2lvbmFtZW50byAzMDEnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnRXhpYmlyIHVtYSBtZW5zYWdlbSBkZSBlcnJvJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9tc2cnXSA9ICdNZW5zYWdlbSBkZSBlcnJvIHBhcmEgcXVhbmRvIHVtIHByb2R1dG8gbiZhdGlsZGU7byBwb2RlIHNlciBlbmNvbnRyYWRvJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF9wYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBkZSBmYXplciByZWRpcmVjaW9uYW1lbnRvIHBlcm1hbmVudGUgcGFyYT8nOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ1AmYWFjdXRlO2dpbmEgcGFkciZhdGlsZGU7byBwYXJhIG9zIFZpZXdzIFByb2R1Y3QgRGV0YWlsJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1dG9zIHF1ZSBjb3JyZXNwb25kZW0gICVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnT3JkZW5hJmNjZWRpbDsmYXRpbGRlO28gUGFkciZhdGlsZGU7byBkbyBzdW0mYWFjdXRlO3Jpbyc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byBQYWRyJmF0aWxkZTtvIGRvcyBjYW1wb3Mgbm8gc3VtJmFhY3V0ZTtyaW8nOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgRm9udGUnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeG8gYSBzZXIgdXNhZG8gZW0gdG9kYXMgYXMgVVJMcyBkaXJlY2lvbmFkb3MgcGFyYSBlc3RlIG0mb2FjdXRlO2R1bG8nOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdVc2UgZXN0YSBwJmFhY3V0ZTtnaW5hIHBhcmEgcmVzdWx0YWRvcyBkZSBwZXNxdWlzYSB0YW1iJmVhY3V0ZTttIDxlbT4oc3Vic3RpdHVpIG8gcGFyJmFjaXJjO21ldHJvIGRhIHAmYWFjdXRlO2dpbmEgU2VhcmNocmVzdWx0cyBubyBtJm9hY3V0ZTtkdWxvIGRlIHBlc3F1aXNhKTwvZW0+JzsKJGxhbmdbJ3Byb21wdF91c2VoaWVycGF0aHVybHMnXSA9ICdVc2FyIENhbWluaG8gcGFyYSBhIEhpZXJhcnF1aWEgbm8gZGV0YWxoZSBkYXMgVVJMUyc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdVbmlkYWRlcyBkZSBQZXNvICc7CiRsYW5nWydwdWJsaWMnXSA9ICcmRWFjdXRlOyB1bSBjYW1wbyBwJnVhY3V0ZTtibGljbz8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnUCZ1YWN1dGU7YmxpY2Fkbyc7CiRsYW5nWydyYW5kb20nXSA9ICdBbGlhdCZvYWN1dGU7cmlvJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVkZWZlbmlyIHBhcmEgb3MgdmFsb3JlcyBQYWRyJmF0aWxkZTtvJzsKJGxhbmdbJ3JldHVybiddID0gJ1ZvbHRhcic7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnVm9sdGFyIHBhcmEgbyB0b3BvIGRhIHZpc3RhJzsKJGxhbmdbJ3Jvb3QnXSA9ICdSYWl6IChSb290KSc7CiRsYW5nWydzZWFyY2hfZGVzY3JpcHRpb24nXSA9ICdQZXNxdWlzYSBQcm9wcmllZGFkZSBEZXNjcmkmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1BvZGUgYSBjb25zdWx0YSBjb3JyZXNwb25kZXIgYSB0b2Rhcywgb3UgcXVhbHF1ZXIgdW0gZG9zIHRlc3RlcyBhYmFpeG8/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnUGVzcXVpc2EgTm9tZSBkYSBwcm9wcmllZGFkZSc7CiRsYW5nWydzZWFyY2hfcHJpY2UnXSA9ICdPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byBQcmUmY2NlZGlsO28nOwokbGFuZ1snc2VhcmNodGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkaWNpb25hci9FZGl0YXIgUGVzcXVpc2EgRm9ybXVsJmFhY3V0ZTtyaW8gVGVtcGxhdGUnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnVGVtcGxhdGUgUGVzcXVpc2EnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjY2lvbmFyIFVtJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSAnOwokbGFuZ1snc29ydF9ieSddID0gJ09yZGVuYXIgUG9yJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdPcmRlbSBkYSBPcmRlbmEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWydzdGF0dXMnXSA9ICdFc3RhZG8nOwokbGFuZ1snc3VibWl0J10gPSAnUHJvY2Vzc2FyJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICdTdW0mYWFjdXRlO3JpbyBUZW1wbGF0ZXMnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGljaW9uYXIvRWRpdGFyICBTdW0mYWFjdXRlO3JpbyBUZW1wbGF0ZXMnOwokbGFuZ1sndGF4YWJsZSddID0gJ1RyaWJ1dCZhYWN1dGU7dmVpcyc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdGUnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICcmQWFjdXRlO3JlYSBkZSBUZXh0byc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnQ2FtcG8gZGUgVGV4dG8nOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnSGllcmFycXVpYSBQYWRyJmF0aWxkZTtvIG5vdm8gdGVtcGxhdGUgZGUgcmVsYXQmb2FjdXRlO3Jpbyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnTm92byBUZW1wbGF0ZSBQYWRyJmF0aWxkZTtvIENhdGVnb3JpYSBMaXN0YSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnTm92byBUZW1wbGF0ZSBQYWRyJmF0aWxkZTtvIERldGFsaGVzJzsKJGxhbmdbJ3RpdGxlX3NlYXJjaF9kZmx0dGVtcGxhdGUnXSA9ICdOb3ZvIFRlbXBsYXRlIFBhZHImYXRpbGRlO28gUGVzcXVpc2EnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdOb3ZvIFRlbXBsYXRlIFBhZHImYXRpbGRlO28gU3VtJmFhY3V0ZTtyaW8nOwokbGFuZ1sndHlwZSddID0gJ1RpcG8nOwokbGFuZ1sndXBkYXRlJ10gPSAnQWN0dWFsaXphcic7CiRsYW5nWyd1cGxvYWQnXSA9ICdTZWxlY2Npb25lIHVtIGFycXVpdm8gYSBjYXJyZWdhcic7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVUkwgQWxpYXMgJzsKJGxhbmdbJ3ZhbGlkJ10gPSAnViZhYWN1dGU7bGlkbyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbG9yJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbG9yZXMnOwokbGFuZ1sndmlldyddID0gJ1Zpc3RhJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjaW9uYXIgY2FtcG9zIHBlcnNvbmFsaXphZG9zIHBhcmEgdmVyIG5hIHRhYmVsYSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYWxpemEmY2NlZGlsOyZhdGlsZGU7byc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdQZXNvJzsKJGxhbmdbJ3llcyddID0gJ1NpbSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjk3OTczNTQ0Mi4xMjcyMzI1Nzk2LjEyNzQwMzQ0NTMuMTI3NDEzMDYxOS4yMSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNzMwNTk2NDkuMTMuNC51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L3Byb2plY3QvZmlsZXMvNjknOwokbGFuZ1sncWNhJ10gPSAnUDAtMTk4MzY1MDQwMS0xMjcyMzI1Nzk2NjQ1JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAn0JQnOwokbGFuZ1snYWJicl93aWR0aCddID0gJ9CoJzsKJGxhbmdbJ2FiYnJfaGVpZ2h0J10gPSAn0JInOwokbGFuZ1snYWRkJ10gPSAn0JTQvtCx0LDQstC40YLRjCc7CiRsYW5nWydhZGRjYXRlZ29yeSddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0LrQsNGC0LXQs9C+0YDQuNGOJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQv9C+0LvQtSc7CiRsYW5nWydhZGp1c3RhYmxlJ10gPSAn0JLRgNGD0YfQvdGD0Y4nOwokbGFuZ1snYWRkcHJvZHVjdCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0L/RgNC+0LTRg9C60YInOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGMINCw0YLRgNC40LHRg9GCJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWF0ZSBGaWVsZCB3aXRoIENhdGVnb3J5OiAiJXMiJzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ9CU0L7QsdCw0LLQuNGC0Ywg0Y3Qu9C10LzQtdC90YIg0LIg0LjQtdGA0LDRgNGF0LjRjic7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAn0JTQvtCx0LDQstC40YLRjCDQstCw0YDQuNCw0L3RgiDQsNGC0YDQuNCx0YPRgtCwJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICfQkNGC0YDQuNCx0YPRgtGLINC00L7RgdGC0YPQv9C90Ysg0YLQvtC70YzQutC+INCw0LTQvNC40L3Rgz8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICfQktCy0LXRgNGF0YMg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl91YyddID0gJ9CS0LLQtdGA0LfRgyDQsiDRhtC10L3RgtGA0LUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICfQktCy0LXRgNGF0YMg0YHQv9GA0LDQstCwJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAn0J/QvtGB0LXRgNC10LTQuNC90LUg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl9tYyddID0gJ9CSINGG0LXQvdGC0YDQtSc7CiRsYW5nWydhbGlnbl9tciddID0gJ9Cf0L7RgdC10YDQtdC00LjQvdC1INGB0L/RgNCw0LLQsCc7CiRsYW5nWydhbGlnbl9sbCddID0gJ9CS0L3QuNC30YMg0YHQu9C10LLQsCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ9CS0L3QuNC30YMg0LIg0YbQtdC90YLRgNC1JzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAn0JLQvdC40LfRgyDRgdC/0YDQsNCy0LAnOwokbGFuZ1snYWxsJ10gPSAn0JLRgdC1JzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICfQktGB0LUg0LrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2FueSddID0gJ9Cb0Y7QsdC+0LknOwokbGFuZ1snYXJleW91c3VyZSddID0gJ9CS0Ysg0YPQstC10YDQtdC90Ys/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ9CS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0Y3RgtC+0YIg0YLQvtCy0LDRgCwg0Lgg0LLRgdGOINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC90LXQvD8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAn0J/QviDQstC+0LfRgNCw0YHRgtCw0L3QuNGOJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAn0J3QsNC30LLQsNC90LjQtSDQsNGC0YDQuNCx0YPRgtCwJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9CY0LfQvNC10L3QuNGC0Ywg0YjQsNCx0LvQvtC9INCy0YvQstC+0LTQsCDQuNC10YDQsNGA0YXQuNC4JzsKJGxhbmdbJ2NhbmNlbCddID0gJ9Ce0YLQvNC10L3QsCc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNC4JzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPJzsKJGxhbmdbJ2NhdGVnb3J5ZXhpc3RzJ10gPSAn0JrQsNGC0LXQs9C+0YDQuNGPINGBINGC0LDQutC40Lwg0LjQvNC10L3QtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICfQqNCw0LHQu9C+0L0g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAn0JTQvtCx0LDQstC40YLRjC/QoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDRiNCw0LHQu9C+0L0g0YHQv9C40YHQutCwINC60LDRgtC10LPQvtGA0LjQuSc7CiRsYW5nWydjZW50aW1ldGVycyddID0gJ9Ch0LDQvdGC0LjQvNC10YLRgNGLJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAn0KfQtdC60LHQvtC60YEnOwokbGFuZ1snY29uZmlybV9jb3B5YXR0cmlidXRlcyddID0gJ9CS0YHQtSDRgdGD0YnQtdGB0YLQstGD0Y7RidC40LUg0LDRgtGA0LjQsdGD0YLRiyDQv9GA0L7QtNGD0LrRgtGLINCx0YPQtNGD0YIg0YPQtNCw0LvQtdC90YsuINCS0Ysg0YPQstC10YDQtdC90YssINGH0YLQviDRhdC+0YLQuNGC0LUg0L/RgNC+0LTQvtC70LbQuNGC0Yw/JzsKJGxhbmdbJ2NvbmZpcm1fZGVsZXRlX2hpZXJhcmNoeV9ub2RlJ10gPSAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDRg9C00LDQu9C40YLRjCDRjdGC0L7RgiDRg9C30LXQuz8g0JLRgdC1INC/0YDQvtC00YPQutGC0YssINC90LDRhdC+0LTQtdGJ0LjQtdGB0Y8g0LIg0YPQt9C70LUg0LHRg9C00YPRgiDQv9C10YDQtdC80LXRidC10L3RiyDQsiDQutC+0YDQtdC90YwnOwokbGFuZ1snY29uZmlybV9pbXBvcnQnXSA9ICfQktGLINGD0LLQtdGA0LXQvdGLLCDRh9GC0L4g0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMP1xcblxcbtCd0LXQstC10YDQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4INC40LvQuCDQutC+0L3RhNC40LPRg9GA0LDRhtC40Y8g0LzQvtC20LXRgiDQv9C+0LvQvdC+0YHRgtGM0Y4g0L3QsNGA0YPRiNC40YLRjCDRgNCw0LHQvtGC0L7RgdC/0L7RgdC+0LHQvdC+0YHRgtGMINCS0LDRiNC10LPQviDRgdCw0LnRgtCwLic7CiRsYW5nWydjb3B5J10gPSAn0JrQvtC/0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snY29weV9hdHRyaWJfc2V0cyddID0gJ9Ch0LrQvtC/0LjRgNC+0LLQsNGC0Ywg0LDRgtGA0LjQsdGD0YLRiyDQv9GA0L7QtNGD0LrRgtCwJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICfQmtC+0L/QuNGA0L7QstCw0YLRjCDQutCw0YLQtdCz0L7RgNC40Y4nOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICfQodC+0LfQtNCw0L0nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ9CX0L3QsNGH0LXQvdC40LUnOwokbGFuZ1snZGF0YSddID0gJ9CU0LDRgtCwJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjic7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC90Ysg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAiQWRkIFRlbXBsYXRlIiBpbiB0aGUgYXBwcm9wcmlhdGUgdGVtcGxhdGUgdGFiLiAgRWRpdGluZyBvbmUgb2YgdGhlc2UgdGV4dCBhcmVhcyB3aWxsIGhhdmUgbm8gaW1tZWRpYXRlIGVmZmVjdCBvbiB5b3VyIHdlYnNpdGUuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ9Cj0LTQsNC70LjRgtGMJzsKJGxhbmdbJ2RlbGV0ZV9hdHRyaWJzZXQnXSA9ICfQo9C00LDQu9C40YLRjCDQsNGC0YDQuNCx0YPRgic7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICfQo9C00LDQu9C40YLRjCDQrdC70LXQvNC10L3RgiDQmNC10YDQsNGA0YXQuNC4JzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICfQn9C+INGD0LHRi9Cy0LDQvdC40Y4nOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICfQntC/0LjRgdCw0L3QuNC1JzsKJGxhbmdbJ2Rlc3RpbmF0aW9uJ10gPSAn0J3QsNC30L3QsNGH0LXQvdC40LUnOwokbGFuZ1snZGV0YWlscyddID0gJ9Ce0L/QuNGB0LDQvdC40LUnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAn0KjQsNCx0LvQvtC9INCa0LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlX2FkZGVkaXQnXSA9ICfQlNC+0LHQsNCy0LjRgtGML9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINGI0LDQsdC70L7QvSDQutCw0YDRgtC+0YfQutC4INGC0L7QstCw0YDQsCc7CiRsYW5nWydkaW1lbnNpb25zJ10gPSAn0KDQsNC30LzQtdGA0YsnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICfQntGC0LrQu9GO0YfQtdC90L4nOwokbGFuZ1snZG93biddID0gJ9Cf0LXRgNC10LTQstC40L3Rg9GC0Ywg0LLQvdC40LcnOwokbGFuZ1snZHJhZnQnXSA9ICfQp9C10YDQvdC+0LLQuNC6JzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAn0JLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6JzsKJGxhbmdbJ2Ryb3Bkb3duX29wdGlvbnMnXSA9ICfQrdC70LXQvNC10L3RgtGLINCy0YvQv9Cw0LTQsNGO0YnQtdCz0L4g0YHQv9C40YHQutCwIDxlbT4o0L/RgNC40LzQtdC90LjQvNC+INGC0L7Qu9GM0LrQviDQtNC70Y8g0L/QvtC70LXQuSDRgtC40L/QsCAi0LLRi9C/0LDQtNCw0Y7RidC40Lkg0YHQv9C40YHQvtC6Iik8L2VtPjxici8+PGJyLz48ZW0+KNCy0YHQtSDRjdC70LXQvNC10L3RgtGLINCyINGA0LDQt9C90YvRhSDRgdGC0YDQvtC60LDRhSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0YwnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXQnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQsNGC0YDQuNCx0YPRgic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQvdCw0LHQvtGAINCw0YLRgNC40LHRg9GC0L7Qsic7CiRsYW5nWydlZGl0X2F0dHJpYnNldHNfZm9yJ10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0L3QsNCx0L7RgCDQsNGC0YDQuNCx0YPRgtC+0LIg0LTQu9GPJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINCw0YLRgNC40LHRg9GC0YsnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC60LDRgtC10LPQvtGA0LjRjic7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ9Cg0LXQtNCw0LrRgtC40YDQvtCy0LDRgtGMINC/0L7Qu9GPINC60LDRgtC10LPQvtGA0LjQuCc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0Y3Qu9C10LzQtdC90YIg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydlcnJvcl9hdHRyaWJzZXRfZXhpc3RzJ10gPSAn0JDRgtGA0LjQsdGD0YIg0YEg0Y3RgtC40Lwg0LjQvNC10L3QtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAn0JTRg9Cx0LvQuNGA0YPQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1IFNLVSc7CiRsYW5nWydlcnJvcl9maWVsZHZhbHVlX2VtcHR5J10gPSAn0J3QtdC+0LHRhdC+0LTQuNC80L4g0LfQsNC/0L7Qu9C90LjRgtGMINC/0L7Qu9C1JzsKJGxhbmdbJ2Vycm9yX2ZpbGVmb3JtYXQnXSA9ICfQntGI0LjQsdC60LAg0YTQvtGA0LzQsNGC0LAg0YTQsNC50LvQsCc7CiRsYW5nWydlcnJvcl9maWxlbm90Zm91bmQnXSA9ICfQpNCw0LnQuyDQvdC1INC90LDQudC00LXQvSc7CiRsYW5nWydlcnJvcl9maWxlb3BlbiddID0gJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7RgtC60YDRi9GC0Ywg0YTQsNC50LsgJXMnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ0ludmFsaWQgUGFyZW50IChhIGhpZXJhcmNoeSBub2RlIGNhbm5vdCBiZSBpdFwncyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX3ZhbHVlJ10gPSAn0KPQutCw0LfQsNC90L4g0L3QtdCy0LXRgNC90L7QtSDQt9C90LDRh9C10L3QuNC1JzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ9Ce0LHRj9C30LDRgtC10LvRjNC90YvQuSDQv9Cw0YDQsNC80LXRgtGAINC/0YDQvtC/0YPRidC10L0g0LjQu9C4INGD0LrQsNC30LDQvSDQvdC10LLQtdGA0L3Qvic7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ9Ci0L7QstCw0YAg0YEg0YLQsNC60LjQvCDQvdCw0LfQstCw0L3QuNC10Lwg0YPQttC1INGB0YPRidC10YHRgtCy0YPQtdGCJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAn0J/QvtC20LDQu9GD0LnRgdGC0LAg0YPQutCw0LbQuNGC0LUg0YLQuNC/INC/0L7Qu9GPJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ9CS0Ysg0LTQvtC70LbQvdGLINGD0LrQsNC30LDRgtGMINC40LzRjyc7CiRsYW5nWydlcnJvcl9vbmVzdWJzY3JpcHRpb25maWVsZCddID0gJ09ubHkgb25lIHN1YnNjcmlwdGlvbiBmaWVsZCBpcyBhbGxvd2VkJzsKJGxhbmdbJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnXSA9ICfQlNC+0YHRgtGD0L8g0LfQsNC/0YDQtdGJ0LXQvSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X2FsaWFzdXNlZCddID0gJ9Cj0LrQsNC30LDQvdGL0Lkg0LDQu9C40LDRgSDRg9C20LUg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICfQotC+0LLQsNGAINGBINGC0LDQutC40Lwg0L3QsNC30LLQsNC90LjQtdC8INGD0LbQtSDRgdGD0YnQtdGB0YLQstGD0LXRgic7CiRsYW5nWydlcnJvcl9wcm9kdWN0X25vdGZvdW5kJ10gPSAn0JfQsNC/0YDQsNGI0LjQstCw0LXQvNGL0Lkg0YLQvtCy0LDRgCDQvdC1INC90LDQudC00LXQvSc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdUaGF0IFNLVSB2YWx1ZSBpcyBhbHJlYWR5IGluIHVzZSBieSBhbm90aGVyIHByb2R1Y3QnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ0ludmFsaWQgcHJpY2UgYWRqdXN0bWVudCB2YWx1ZSBmb3IgaXRlbSAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBsb2FkIGZhaWxlZDogJXMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdBZnRlciBTaXggTW9udGhzJzsKJGxhbmdbJ2V4cGlyZV9vbmVfeWVhciddID0gJ0FmdGVyIE9uZSBZZWFyJzsKJGxhbmdbJ2V4cGlyZV90d29feWVhciddID0gJ0FmdGVyIFR3byBZZWFycyc7CiRsYW5nWydleHRyYTEnXSA9ICfQlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QvtC1INC/0L7Qu9C1IDEnOwokbGFuZ1snZXh0cmEyJ10gPSAn0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L7QtSDQv9C+0LvQtSAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAn0J/QvtC70LUnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdGaWVsZCBEZWZpbml0aW9uJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ9Cf0L7Qu9GPJzsKJGxhbmdbJ2ZpbGUnXSA9ICfQpNCw0LnQuyc7CiRsYW5nWydmaWx0ZXJzJ10gPSAn0KTQuNC70YzRgtGAJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICfQntCx0YnQuNC1INC90LDRgdGC0YDQvtC50LrQuCc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ9CY0LXRgNCw0YDRhdC40Y8nOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAn0J/QvtC30LjRhtC40Y8g0LIg0LjQtdGA0LDRgNGF0LjQuCc7CiRsYW5nWydoaWVyYXJjaHlfc2V0dGluZ3MnXSA9ICdIaWVyYXJjaHkgU2V0dGluZ3MnOwokbGFuZ1snaWQnXSA9ICcg0JrQvtC0JzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ9CY0LfQvtCx0YDQsNC20LXQvdC40LUnOwokbGFuZ1snaW1hZ2VfaGFuZGxpbmdfc2V0dGluZ3MnXSA9ICdJbWFnZSBIYW5kbGluZyBTZXR0aW5ncyc7CiRsYW5nWydpbXBvcnRfZnJvbV9jc3YnXSA9ICfQmNC80L/QvtGA0YIg0L/RgNC+0LTRg9C60YLQvtCyINC40LcgQ1NWINGE0LDQudC70LAnOwokbGFuZ1snaW5jaGVzJ10gPSAnSW5jaGVzJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICfQktC60LvRjtGH0LDRgtGMINC/0L7QtNC60LDRgtC10LPQvtGA0LjQuD8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICfQotC+0LvRjNC60L4g0LvQsNGC0LjQvdGB0LrQuNC1INCx0YPQutCy0LXQvdC90L4t0YbQuNGE0YDQvtCy0YvQtSDRgdC40LzQstC+0LvRiy4g0JHQtdC3INC/0YDQvtCx0LXQu9C+0LIsINC60LDQstGL0YfQutC4LCDQuNC70Lgg0L3QtdC/0LXRh9Cw0YLQsNC10LzRi9GFINGB0LjQvNCy0L7Qu9C+0LInOwokbGFuZ1snaW5mb19hdHRyaWJ0ZW1wbGF0ZSddID0gJ1Bvc3NpYmxlIHZhcmlhYmxlcyBhcmU6IHskYXR0cmliX3RleHR9LHskYXR0cmliX2FkanVzdH0seyRjdXJyZW5jeV9zeW1ib2x9JzsKJGxhbmdbJ2luZm9fYXR0cmlidXRlc19jb3BpZWQnXSA9ICdBdHRyaWJ1dGVzIENvcGllZCc7CiRsYW5nWydpbmZvX2F1dG93YXRlcm1hcmsnXSA9ICfQn9Cw0YDQsNC80LXRgtGA0Ysg0LLQvtC00L3Ri9GFINC30L3QsNC60L7QsiDRg9GB0YLQsNC90LDQstC70LjQstCw0Y7RgtGM0YHRjyDQuNC3IENHRXh0ZW5zaW9ucyDQvNC+0LTRg9C70Y8nOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAiYmF0Y2giLiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jb3B5X2F0dHJpYnNldHMnXSA9ICdUaGlzIGFjdGlvbiB3aWxsIGNvcHkgQXR0cmlidXRlIHNldHMgKGV4Y2x1ZGluZyBza3UgdmFsdWVzKSBmcm9tIGFub3RoZXIgcHJvZHVjdC4nOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgdW5rbm93biBwcm9kdWN0IGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ9CSINC60LDRh9C10YHRgtCy0LUg0LTQtdGB0Y/RgtC40YfQvdC+0LPQviDRgNCw0LfQtNC10LvQuNGC0LXQu9GPINC40YHQv9C+0LvRjNC30YPQudGC0LUg0YLQvtGH0LrRgyAoLikg0L3QsNC/0YDQuNC80LXRgDogPHN0cm9uZz4gNTkuOTAgPC8gU1RST05HPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZ5IGhvdyB0aGUgc3lzdGVtIHNob3VsZCBoYW5kbGUgYSBwcm9kdWN0IHdob3MgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz7Qn9GA0LjQvNC10YfQsNC90LjQtTogPC9zdHJvbmc+INCS0YHQtSDQv9C+0LvRjyDQvtC/0YDQtdC00LXQu9GP0LXQvNGL0LUg0LfQtNC10YHRjCDQtNC+0YHRgtGD0L/QvdGLINC00LvRjyDQstGB0LXRhSDRgtC+0LLQsNGA0L7Qsi4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAn0JLQvtC30L3QuNC60LvQuCDQv9GA0L7QsdC70LXQvNGLINC/0YDQuCDRgNCw0LHQvtGC0LUg0YEg0L7QtNC90LjQvCDQuNC70Lgg0LHQvtC70LXQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjRhSDQv9C+0LvQtdC5LiDQtNC10LnRgdGC0LLQuNC1INC30LDQstC10YDRiNC10L3QviDRg9GB0L/QtdGI0L3Qviwg0L7QtNC90LDQutC+INCy0Ysg0LTQvtC70LbQvdGLINC40LfRg9GH0LjRgtGMINC4INC40YHQv9GA0LDQstC40YLRjCDRjdGC0Lgg0L/RgNC+0LHQu9C10LzRiy4nOwokbGFuZ1snaW5mb19oYW5kbGVpbWFnZXMnXSA9ICdVcG9uIGltcG9ydCwgaWYgYW4gaW1hZ2UgZmlsZW5hbWUgaXMgZm91bmQgaW4gYSBmaWVsZCBjb2x1bW4sIHNob3VsZCBpdCBiZSBtb3ZlZCBmcm9tIHRoZSBzb3VyY2UgbG9jYXRpb24sIHdhdGVybWFya2VkLCB0aHVtYm5haWxlZCwgYW5kIHRoZSBmaWVsZCB0eXBlIGNoYW5nZWQgdG8gImltYWdlIic7CiRsYW5nWydpbmZvX2hpZXJwYWdlJ10gPSAnVXNlIHRoaXMgcGFnZSBmb3IgaGllcmFyY2h5IHZpZXdzLiAgVGhlIHBhZ2VpZCB3aWxsIG5vdCBiZSBzcGVmaXJpZWQgb24gdGhlIFVSTC4nOwokbGFuZ1snaW5mb19pbWFnZXBhdGgnXSA9ICdUaGUgcGF0aCAocmVsYXRpdmUgdG8gdGhlIHVwbG9hZHMgZGlyZWN0b3J5KSB3aGVyZSBpbWFnZXMgcmVmZXJyZWQgdG8gaW4gdGhlIGltcG9ydCBmaWxlLCBjYW4gYmUgZm91bmQnOwokbGFuZ1snaW5mb19pbXBvcnRfdGVzdF9wYXNzZWQnXSA9ICdBIGJyaWVmIHRlc3QgYXMgYmVlbiBwZXJmb3JtZWQgb24gdGhlIGlucHV0IGZpbGUgc3BlY2lmaWVkLCBhbmQgZXZlcnl0aGluZyBhcHBlYXJzIHRvIGJlIGNvcnJlY3QuPGJyLz5UaGlzIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSBmaWxlLic7CiRsYW5nWydpbmZvX3ByZXR0eWhpZXJ1cmxzJ10gPSAnSW5jbHVkZSB0aGUgaGllcmFyY2h5IGl0ZW0gbmFtZSBvbiB0aGUgVVJMJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ9CU0L7Qv9GD0YHRgtC40LzRi9C1INC30L3QsNGH0LXQvdC40Y8gKy0qIy4jIyc7CiRsYW5nWydpbmZvX3Byb2Rub3Rmb3VuZCddID0gJ1RoaXMgb3B0aW9uIGRldGVybWluZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgd2Vic2l0ZSBpZiBhIHByb2R1Y3QgZGV0YWlsIHZpZXcgaXMgYWNjZXNzZWQgZGlyZWN0bHkgYnkgVVJMLCBhbmQgdGhhdCBwcm9kdWN0IGZvciB3aGF0ZXZlciByZWFzb24gKGRpc2FibGVkLCBkZWxldGVkLCBldGMpIGNhbm5vdCBiZSBhY2Nlc3NlZC4nOwokbGFuZ1snaW5mb19wdWJsaWNmaWVsZCddID0gJ9Cf0YPQsdC70LjRh9C90YvQtSDQv9C+0LvRjyDQtNC+0YHRgtGD0L/QvdGLINC00LvRjyDQv9GA0L7RgdC80L7RgtGA0LAg0L/QvtGB0LXRgtC40YLQtdC70Y/QvNC4JzsKJGxhbmdbJ2xhYmVsJ10gPSAn0J/QvtC00L/QuNGB0YwnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ9Cf0YDQvtC/0YPRgdGC0LjRgtGMJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ9Cf0LXRgNC10LfQsNC/0LjRgdCw0YLRjCc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICfQmNC30LzQtdC90LXQvSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ9CS0YLQvtGA0L7QtSDQuNC30L7QsdGA0LDQttC10L3QuNC1JzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ9CY0LfQvNC10L3QtdC9JzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ0EgbW9kdWxlIGZvciBtYW5hZ2luZyBhIGNhdGFsb2cgb2YgcHJvZHVjdHMsIHRoZWlyIHByaWNlLCBpbWFnZXMsIGV0YywgYW5kIGZvciBhbGxvd2luZyB1c2VycyB0byBidWlsZCBhIGNhcnQnOwokbGFuZ1snbW92ZV9kb3duJ10gPSAnTW92ZSBEb3duJzsKJGxhbmdbJ21vdmVfdXAnXSA9ICdNb3ZlIFVwJzsKJGxhbmdbJ25hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1JzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnWW91IGRvIG5vdCBoYXZlIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9uOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ9Cd0L7QstC+0LUg0L3QsNC30LLQsNC90LjQtSDQutCw0YLQtdCz0L7RgNC40LgnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vJ10gPSAn0J3QtdGCJzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnTm8gbmFtZSB3YXMgc3VwcGxpZWQnOwokbGFuZ1snbm9uZSddID0gJzzQndC10YI+JzsKJGxhbmdbJ29mJ10gPSAn0JjQtyc7CiRsYW5nWydwYWdlJ10gPSAn0KHRgtGA0LDQvdC40YbQsCc7CiRsYW5nWydwYWdlX29mJ10gPSAn0KHRgtGA0LDQvdC40YbQsCAlcyDQuNC3ICVzJzsKJGxhbmdbJ3BhZ2VfbGltaXQnXSA9ICfQn9GA0L7QtNGD0LrRgtC+0LIg0L3QsCDRgdGC0YDQsNC90LjRhtC1JzsKJGxhbmdbJ3BhcmFtX2FjdGlvbiddID0gJ1NwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kdWxlLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPmhpZXJhcmNoeSAtLSBEaXNwbGF5IGEgcHJvZHVjdCBsaXN0IGJ5IGhpZXJhcmNoeTwvbGk+DQogIDxsaT5jYXRlZ29yeWxpc3QgLSBEaXNwbGF5IGEgbGlzdCBvZiBwcm9kdWN0IGNhdGVnb3JpZXM8L2xpPg0KICA8bGk+PGVtPmRlZmF1bHQ8L2VtPiAtIERpc3BsYXkgYSBzdW1tYXJ5IG9mIHByb2R1Y3RzPC9saT4NCiAgPGxpPmRldGFpbHMgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9maWVsZCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmZpZWxkbGlzdDwvZW0+IHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIFNwZWNpYWwgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGFyZSAiOjpudWxsOjoiICI6Om5vdG51bGw6OiInOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT1cJ3RydWNrcypcJ30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9XCcqdHJ1Y2tzXCd9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faW5saW5lJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgdGhlIG91dHB1dCBvZiB0aGUgc3VtbWFyeSB2aWV3IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW5saW5lJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0bGlzdCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCAoc3VtbWFyeSkgdmlldywgdGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHNwZWNpZnlpbmcgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBpbnRlZ2VyIHByb2R1Y3QgaWRzIHRvIGRpc3BsYXkuICBObyBwYWdpbmF0aW9uIG9yIHNvcnRpbmcgaXMgcGVyZm9ybWVkIG9uIHRoZXNlIHZhbHVlcywgYW5kIGlmIHNwZWNpZmllZCB0aGUgb3RoZXIgZmlsdGVyaW5nIHBhcmFtZXRlcnMgdG8gdGhlIHN1bW1hcnkgdmlldyBhcmUgaWdub3JlZC4nOwokbGFuZ1sncGFyYW1fcmVzdWx0cGFnZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoLCBhbmQgY2F0ZWdvcnkgbGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgYSBwYWdlIGlkIG9yIGFsaWFzIHRvIHVzZSB0byBkaXNwbGF5IHRoZSBzdW1tYXJ5IHJlc3VsdHMnOwokbGFuZ1sncGFyYW1fc2VhcmNoZmllbGQnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIHNlYXJjaCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIG1heSBjb250YWluIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmllbGQgbmFtZXMgdG8gaW5jbHVkZSBpbiB0aGUgc2VhcmNoJzsKJGxhbmdbJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpc3BhcmFtZXRlciBhbGxvd3Mgc3BlY2lmeWluZyBhIG5vbiBkZWZhdWx0IHNlYXJjaCBmb3JtIHRlbXBsYXRlJzsKJGxhbmdbJ3BhcmFtX3Nob3dhbGwnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGNhdGVnb3J5bGlzdCBhbmQgZmllbGRsaXN0IGFjdGlvbnMsIGlmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBhIG5vbiAwIGludGVnZXIgdmFsdWUgYWxsIGNhdGVnb3JpZXMgKGV2ZW4gdGhvc2Ugd2l0aG91dCBwcm9kdWN0cykgd2lsbCBiZSBkaXNwbGF5ZWQuJzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnQXBwbGljYWJsZSBvbmx5IGluIHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyB0aGUgc29ydGluZyBvZiB0aGUgb3V0cHV0IHByb2R1Y3RzLiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPmlkIC0tIFRoZSBwcm9kdWN0IGlkPC9saT4NCiAgPGxpPndlaWdodCAtLSBUaGUgcHJvZHVjdCB3ZWlnaHQ8L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1hcnkgdmlldyc7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzdW1tYXJ5IG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJlbnQnXSA9ICfQoNC+0LTQuNGC0LXQu9GMJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgaW5zdGFsbGVkJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdUaGUgUHJvZHVjdHMgbW9kdWxlIGhhcyBiZWVuIHJlbW92ZWQgYWxvbmcgd2l0aCBhbGwgYXNzb2NpYXRlZCBkYXRhJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAn0J3QsNGB0YLRgNC+0LnQutC4JzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAn0KbQtdC90LAnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ9Ca0L7RgNGA0LXQutGC0LjRgNC+0LLQutCwINGG0LXQvSc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ9Ci0L7QstCw0YAnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICfQndCw0LfQstCw0L3QuNC1JzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAn0KLQvtCy0LDRgNGLJzsKJGxhbmdbJ3Byb2R1Y3RfZGV0YWlsX3NldHRpbmdzJ10gPSAnUHJvZHVjdCBEZXRhaWwgU2V0dGluZ3MnOwokbGFuZ1sncHJvZHVjdF9lZGl0aW5nX3NldHRpbmdzJ10gPSAnUHJvZHVjdCBFZGl0aW5nIFNldHRpbmdzJzsKJGxhbmdbJ3Byb2R1Y3Rfc3VtbWFyeV9zZXR0aW5ncyddID0gJ1Byb2R1Y3QgU3VtbWFyeSBTZXR0aW5ncyc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ9CY0LXRgNCw0YDRhdC40Y8g0JrQsNGC0LDQu9C+0LPQsCc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICfQo9C/0YDQsNCy0LvQtdC90LjQtSDQv9GA0L7QtNGD0LrRgtCw0LzQuCc7CiRsYW5nWydwcm9ncmVzcyddID0gJ1Byb2dyZXNzJzsKJGxhbmdbJ3Byb21wdCddID0gJ9Cf0L7QtNGB0LrQsNC30LrQsCc7CiRsYW5nWydwcm9tcHRfYWRkX2F0dHJpYnNldCddID0gJ0FkZC9FZGl0IEF0dHJpYnV0ZSBTZXQnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAn0KDQsNC30YDQtdGI0LjRgtGMINC30LDQs9GA0YPQttCw0YLRjCDRhNCw0LnQu9GLINGBINGA0LDRgdGI0LjRgNC10L3QuNGP0LzQuCAo0LTQu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNGFINC/0L7Qu9C10Lkg0YLQuNC/0LAgItGE0LDQudC7IiknOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfaW1hZ2V0eXBlcyddID0gJ9Cg0LDQt9GA0LXRiNC40YLRjCDQt9Cw0LPRgNGD0LbQsNGC0Ywg0LjQt9C+0LHRgNCw0LbQtdC90LjRjyDRgSDRjdGC0LjQvNC4INGA0LDRgdGI0LjRgNC10L3QuNGP0LzQuCAo0LTQu9GPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNGFINC/0L7Qu9C10Lkg0YLQuNC/0LAgItC40LfQvtCx0YDQsNC20LXQvdC40LUiKSc7CiRsYW5nWydwcm9tcHRfYXR0cmlidGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3IgZGlzcGxheSBvZiBwcm9kdWN0IGF0dHJpYnV0ZSB2YWx1ZXMgaW4gZHJvcGRvd24nOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWwnXSA9ICfQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDRgdC+0LfQtNCw0LLQsNGC0Ywg0Y3RgdC60LjQt9GLINC40LfQvtCx0YDQsNC20LXQvdC40LknOwokbGFuZ1sncHJvbXB0X2F1dG90aHVtYm5haWxfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSB0aHVtYm5haWwuJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByZXZpZXcgaW1hZ2VzIG9mIGltYWdlcyc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWdfc2l6ZSddID0gJ01heGltdW0gc2l6ZSAobGFyZ2VzdCBkaW1lbnNpb24pIG9mIHRoZSBwcmV2aWV3IGltYWdlLic7CiRsYW5nWydwcm9tcHRfYXV0b3dhdGVybWFyayddID0gJ9CQ0LLRgtC+0LzQsNGC0LjRh9C10YHQutC4INGB0YLQsNCy0LjRgtGMINCy0L7QtNGP0L3Ri9C1INC30L3QsNC60Lgg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNGP0YUnOwokbGFuZ1sncHJvbXB0X2FwcGxpY2FibGUnXSA9ICdFbmFibGUgYnkgZGVmYXVsdCBmb3IgYWxsIG5ldyBwcm9kdWN0cyc7CiRsYW5nWydwcm9tcHRfYmF0Y2hzaXplJ10gPSAnQmF0Y2ggU2l6ZSc7CiRsYW5nWydwcm9tcHRfY2FydF9tb2R1bGUnXSA9ICfQnNC+0LTRg9C70Ywg0LrQvtGA0LfQuNC90YsnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ9Cf0LDRgNC80LXRgtGA0Ysg0LzQvtC00YPQu9GPINC60L7RgNC30LjQvdGLJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVjYXRlZ29yaWVzJ10gPSAnQ3JlYXRlIENhdGVnb3JpZXMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWZpZWxkcyddID0gJ0NyZWF0ZSBQcm9kdWN0IEZpZWxkcz8nOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeSddID0gJ0NyZWF0ZSBQcm9kdWN0IEhpZXJhcmNoeSc7CiRsYW5nWydwcm9tcHRfY3N2ZmlsZSddID0gJ9CX0LDQs9GA0YPQt9C40YLRjCBDVlMg0YTQsNC50LsnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5Y29kZSddID0gJ9Ca0L7QtCDQstCw0LvRjtGC0YsnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAn0KHQuNC80LLQvtC7INCy0LDQu9GO0YLRiyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjiDQstGB0LUg0L3QvtCy0YvQtSDQv9GA0L7QtNGD0LrRgtGLINC40LzQtdGO0YIg0YHRgtCw0YLRg9GBJzsKJGxhbmdbJ3Byb21wdF9kZWZhdWx0X3RheGFibGUnXSA9ICfQn9C+INGD0LzQvtC70YfQsNC90LjRjiDQstGB0LUg0L3QvtCy0YvQtSDQv9GA0L7QtNGD0LrRgtGLINC+0LHQu9Cw0LPQsNGO0YLRgdGPINC90LDQu9C+0LPQvtC8JzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICfQo9C00LDQu9GP0YLRjCDQstGB0LUg0YTQsNC50LvRiywg0YHQstGP0LfQsNC90L3Ri9C1INGBINC/0YDQvtC00YPQutGC0L7QvCwg0LrQvtCz0LTQsCDQv9GA0L7QtNGD0LrRgiDQsdGD0LTQtdGCINGD0LTQsNC70LXQvT8nOwokbGFuZ1sncHJvbXB0X2RlbGltaXRlciddID0gJ0ZpZWxkIERlbGltaXRlcic7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ9Ch0YLRgNCw0L3QuNGG0LAg0L7Qv9C40YHQsNC90LjRjyDRgtC+0LLQsNGA0LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhaWxzIGZvciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdIb3cgdG8gaGFuZGxlIGR1cGxpY2F0ZSBwcm9kdWN0cz8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnRmFsc2UnOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ0hhbmRsZSBpbWFnZXM/JzsKJGxhbmdbJ3Byb21wdF9pbWFnZXBhdGgnXSA9ICdJbWFnZSBQYXRoJzsKJGxhbmdbJ3Byb21wdF9sZW5ndGh1bml0cyddID0gJ0xlbmd0aCBVbml0cyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfYmVoYXZpb3InXSA9ICdXaGF0IGFjdGlvbiBzaG91bGQgYmUgdGFrZW4gd2hlbiBhIHByb2R1Y3QgY2Fubm90IGJlIGRpc3BsYXllZD8nOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kXzQwNCddID0gJ0dlbmVyYXRlIGEgNDA0IGVycm9yJzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF8zMDEnXSA9ICdHZW5lcmF0ZSBhIDMwMSByZWRpcmVjdCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfZXJyb3Jtc2cnXSA9ICdEaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2UnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX21zZyddID0gJ0Vycm9yIG1lc3NhZ2UgZm9yIHdoZW4gYSBwcm9kdWN0IGNhbm5vdCBiZSBmb3VuZCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1BhZ2UgdG8gZG8gcGVybWFuZW50IHJlZGlyZWN0IHRvPyc7CiRsYW5nWydwcm9tcHRfaGllcnBhZ2UnXSA9ICdEZWZhdWx0IFBhZ2UgZm9yIEhpZXJhcmNoeSBWaWV3JzsKJGxhbmdbJ3Byb21wdF9wcmV0dHloaWVydXJscyddID0gJ1VzZSBQcmV0dHkgVVJMUyB0byBIaWVyYXJjaHkgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2RfZGV0YWlscGFnZSddID0gJ0RlZmF1bHQgUGFnZSBmb3IgUHJvZHVjdCBEZXRhaWwgVmlld3MnOwokbGFuZ1sncHJvbXB0X3Byb2R1Y3RzX21hdGNoaW5nJ10gPSAnUHJvZHVjdHMgbWF0Y2hpbmcgJXMnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlwYWdlbGltaXQnXSA9ICdEZWZhdWx0IHBhZ2UgbGltaXQgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAn0J/QvtGA0Y/QtNC+0Log0YHQvtGA0YLQuNGA0L7QstC60Lgg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LIg0YHRg9C80LzQsNGA0L3QvtC8INGA0LXQttC40LzQtSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICfQn9C+0LvRjyDRgdC+0YDRgtC40YDQvtCy0LrQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDRgdGD0LzQvNCw0YDQvdC+0Lwg0YDQtdC20LjQvNC1JzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIFNvdXJjZSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1RydWUnOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCB0byB1c2Ugb24gYWxsIFVSTFMgdGFyZ2V0ZWQgdG8gdGhpcyB0aGlzIG1vZHVsZSc7CiRsYW5nWydwcm9tcHRfdXNlX2RldGFpbHBhZ2VfZm9yX3NlYXJjaCddID0gJ1VzZSB0aGlzIHBhZ2UgZm9yIHNlYXJjaCByZXN1bHRzIHRvbyA8ZW0+KG92ZXJyaWRlcyB0aGUgc2VhcmNocmVzdWx0cyBwYWdlIHBhcmFtZXRlciBpbiB0aGUgc2VhcmNoIG1vZHVsZSk8L2VtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIFByb2R1Y3QgRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAn0JXQtNC40L3QuNGG0LAg0LLQtdGB0LAnOwokbGFuZ1sncHVibGljJ10gPSAn0K/QstC70Y/QtdGC0YHRjyDQu9C4INGN0YLQviDQv9C+0LvQtSDQv9GD0LHQu9C40YfQvdGL0Lw/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ9Ce0L/Rg9Cx0LvQuNC60L7QstCw0L0nOwokbGFuZ1sncmFuZG9tJ10gPSAnUmFuZG9tJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUmVzZXQgdG8gRmFjdG9yeSBWYWx1ZXMnOwokbGFuZ1sncmV0dXJuJ10gPSAn0J3QsNC30LDQtCc7CiRsYW5nWydyZXR1cm5fdG9fdG9wJ10gPSAnUmV0dXJuIHRvIHRoZSB0b3Agb2YgdGhlIHZpZXcnOwokbGFuZ1sncm9vdCddID0gJ9Ca0LDRgtCw0LvQvtCzJzsKJGxhbmdbJ3NlYXJjaF9kZXNjcmlwdGlvbiddID0gJ1NlYXJjaCBQcm9wZXJ0eSBEZXNjcmlwdGlvbic7CiRsYW5nWydzZWFyY2hfZXhwciddID0gJ1Nob3VsZCB0aGUgcXVlcnkgbWF0Y2ggYWxsLCBvciBhbnkgb2YgdGhlIHRlc3RzIGJlbG93Pyc7CiRsYW5nWydzZWFyY2hfbmFtZSddID0gJ1NlYXJjaCBQcm9wZXJ0eSBOYW1lJzsKJGxhbmdbJ3NlYXJjaF9wcmljZSddID0gJ1ByaWNlIFJhbmdlJzsKJGxhbmdbJ3NlYXJjaHRlbXBsYXRlX2FkZGVkaXQnXSA9ICdBZGQvRWRpdCBTZWFyY2ggRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZXMnXSA9ICdTZWFyY2ggVGVtcGxhdGVzJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSc7CiRsYW5nWydzb3J0X2J5J10gPSAn0KHQvtGA0YLQuNGA0L7QstCw0YLRjCDQv9C+JzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICfQn9C+0YDRj9C00L7QuiDRgdC+0YDRgtC40YDQvtCy0LrQuCc7CiRsYW5nWydzb3VyY2UnXSA9ICdTb3VyY2UnOwokbGFuZ1snc3RhdHVzJ10gPSAn0KHRgtCw0YLRg9GBJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ9Ce0YLQv9GA0LDQstC40YLRjCc7CiRsYW5nWydzdWJzY3JpcHRpb24nXSA9ICdTdWJzY3JpcHRpb24nOwokbGFuZ1snc3Vic2NyX2V4cGlyeSddID0gJ0V4cGlyeSc7CiRsYW5nWydzdWJzY3JfZXhwaXJ5MiddID0gJ0V4cGlyZXMnOwokbGFuZ1snc3Vic2NyX21vbnRobHknXSA9ICdNb250aGx5JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QnXSA9ICdEZWxpdmVyeSBGcmVxdWVuY3knOwokbGFuZ1snc3Vic2NyX2RlbHBlcmlvZDInXSA9ICdEZWxpZXZlcmVkJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdQYXltZW50IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ1BhaWQnOwokbGFuZ1snc3Vic2NyX3F1YXJ0ZXJseSddID0gJ1F1YXJ0ZXJseSc7CiRsYW5nWydzdWJzY3Jfc2VtaWFudWFsbHknXSA9ICdTZW1pIEFudWFsbHknOwokbGFuZ1snc3Vic2NyX3llYXJseSddID0gJ1llYXJseSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVzJ10gPSAn0KHRg9C80LzQsNGA0L3Ri9C5INGI0LDQsdC70L7QvSc7CiRsYW5nWydzdW1tYXJ5dGVtcGxhdGVfYWRkZWRpdCddID0gJ9CU0L7QsdCw0LLQuNGC0Ywv0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHRg9C80LzQsNGA0L3Ri9C5INGI0LDQsdC70L7QvSc7CiRsYW5nWyd0YXhhYmxlJ10gPSAn0J7QsdC70LDQs9Cw0LXQvNGL0Lkg0L3QsNC70L7Qs9C+0LwnOwokbGFuZ1sndGVzdCddID0gJ9Cf0YDQvtCy0LXRgNC60LAnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICfQotC10LrRgdGC0L7QstCw0Y8g0L7QsdC70LDRgdGC0YwnOwokbGFuZ1sndGV4dGJveCddID0gJ9Ci0LXQutGB0YLQvtCy0LDRjyDRgdGC0YDQvtC60LAnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAn0KjQsNCx0LvQvtC9INC40LXRgNCw0YDRhdC40Lgg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ9Co0LDQsdC70L7QvSDRgdC/0LjRgdC60LAg0LrQsNGC0LXQs9C+0YDQuNC5INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICfQqNCw0LHQu9C+0L0g0LrQsNGA0YLQvtGH0LrQuCDRgtC+0LLQsNGA0LAg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IFNlYXJjaCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ9Ch0YPQvNC80LDRgNC90YvQuSDRiNCw0LHQu9C+0L0g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4nOwokbGFuZ1sndHlwZSddID0gJ9Ci0LjQvyc7CiRsYW5nWyd1cCddID0gJ01vdmUgVXAnOwokbGFuZ1sndXBkYXRlJ10gPSAn0J7QsdC90L7QstC40YLRjCc7CiRsYW5nWyd1cGxvYWQnXSA9ICfQktGL0LHQtdGA0LjRgtC1INGE0LDQudC7INC00LvRjyDQt9Cw0LPRgNGD0LfQutC4JzsKJGxhbmdbJ3VybF9hbGlhcyddID0gJ1VSTCBBbGlhcyc7CiRsYW5nWyd2YWxpZCddID0gJ1ZhbGlkJzsKJGxhbmdbJ3ZhbHVlJ10gPSAn0JfQvdCw0YfQtdC90LjQtSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICfQl9C90LDRh9C10L3QuNGPJzsKJGxhbmdbJ3ZpZXcnXSA9ICdWaWV3JzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1NlbGVjdCBjdXN0b20gZmllbGRzIHRvIHZpZXcgaW4gdGhlIHRhYmxlJzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ9Cg0LDRgdC/0L7Qu9C+0LbQtdC90LjQtSDQstC+0LTRj9C90YvRhSDQt9C90LDQutC+0LIo0L/QvtC00L/QuNGB0Lgg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1KSc7CiRsYW5nWyd3ZWlnaHQnXSA9ICfQktC10YEnOwokbGFuZ1sneWVzJ10gPSAn0JTQsCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE1ODYyNTIxNzQuMTMwMjU1NDExMi4xMzAyNTU0MTEyLjEzMDI1NTQxMTIuMSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjQuOS4xMzAyNTU0NjIzNDUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMzAyNTU0MTEyLjEuMS51dG1jc3I9eWFuZGV4fHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtcyBtYWRlIHNpbXBsZSc7CiRsYW5nWydxY2EnXSA9ICdQMC01NDc1NzAyNS0xMzAyNTU0MTEyMDk4JzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ1ByaWRhxaUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdQcmlkYcWlIGthdGVnJm9hY3V0ZTtyaXUnOwokbGFuZ1snYWRkZmllbGRkZWYnXSA9ICdQcmlkYcWlIHBvbGUnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ05hc3Rhdml0ZcS+biZlYWN1dGU7JzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICdQcmlkYcWlIHByb2R1a3QnOwokbGFuZ1snYWRkX2F0dHJpYl9zZXQnXSA9ICdQcmlkYcWlIGF0cmliJnVhY3V0ZTt0JzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ1ByaXBvamnFpSAgcG9sZSBrdSBrYXRlZyZvYWN1dGU7cmlpOiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdQcmlkYcWlIHBvbG/Fvmt1IHYgaGllcmFyY2hpaSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnUHJpZGHFpSBhdHJpYiZ1YWN1dGU7dCB2b8S+YnknOwokbGFuZ1snYWRtaW5fb25seSddID0gJ00mb2NpcmM7xb51IHRlbnRvIGF0cmliJnVhY3V0ZTt0IHZpZGllxaUgbGVuIGFkbWluaXN0ciZhYWN1dGU7dG9yaT8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdWxL5hdm8gaG9yZSc7CiRsYW5nWydhbGlnbl91YyddID0gJ1Ygc3RyZWRlIGhvcmUnOwokbGFuZ1snYWxpZ25fdXInXSA9ICdWcHJhdm8gaG9yZSc7CiRsYW5nWydhbGlnbl9tbCddID0gJ1Ygc3RyZWRlIHbEvmF2byc7CiRsYW5nWydhbGlnbl9tYyddID0gJ1Ygc3RyZWRlJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnViBzdHJlZGUgdnByYXZvJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnRG9sZSB2xL5hdm8nOwokbGFuZ1snYWxpZ25fbGMnXSA9ICdEb2xlIHYgc3RyZWRlJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnRG9sZSB2cHJhdm8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1Ymc2Nhcm9uO2V0a3kga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU3RlIHNpIGlzdCZ5YWN1dGU7Pyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssLCDFvmUgY2hjZXRlIHNrdXRvxI1uZSBvZHN0ciZhYWN1dGU7bmnFpSB0ZW50byBwcm9kdWt0LCB2ciZhYWN1dGU7dGFuZSB2JnNjYXJvbjtldGt5Y2ggcHJpZHJ1xb5lbiZ5YWN1dGU7Y2ggaW5mb3JtJmFhY3V0ZTtjaWk/JzsKJGxhbmdbJ2FzY2VuZGluZyddID0gJ1Z6b3N0dXBuZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBhdHJpYiZ1YWN1dGU7dHUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljayZ5YWN1dGU7JzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvVXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ1pydSZzY2Fyb247acWlJzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZyZvYWN1dGU7cmllJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWcmb2FjdXRlO3JpYSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0thdGVnJm9hY3V0ZTtyaWEgcyB0JnlhY3V0ZTttdG8gbiZhYWN1dGU7enZvbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVzJ10gPSAnJlNjYXJvbjthYmwmb2FjdXRlO25hICB6b3puYW11IGthdGVnJm9hY3V0ZTtyaWknOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvVXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IHpvem5hbXUga2F0ZWcmb2FjdXRlO3JpaSc7CiRsYW5nWydjaGVja2JveCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhY2llIHBvbGUnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdTdGUgc2kgaXN0JnlhY3V0ZTssIMW+ZSBjaGNldGUgb2RzdHImYWFjdXRlO25pxaUgdCZ1YWN1dGU7dG8gJnVhY3V0ZTtyb3ZlxYg/ICBQcm9kdWt0eSB2IHRlanRvICZ1YWN1dGU7cm92bmkgIHByJmlhY3V0ZTtkdSBhdXRvbWF0aWNreSBvIHphcmFkZW5pZSB2IGhpZXJhcmNoaWknOwokbGFuZ1snY29weSddID0gJ0tvcCZpYWN1dGU7cm92YcWlJzsKJGxhbmdbJ2NvcHlfY2F0ZWdvcnknXSA9ICdLb3AmaWFjdXRlO3JvdmHFpSBrYXRlZyZvYWN1dGU7cml1JzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRCZhYWN1dGU7dHVtIHZ5dHZvcmVuaWEnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1MmdWFjdXRlO8SNYXNuJmFhY3V0ZTsgaG9kbm90YSc7CiRsYW5nWydkYXRhJ10gPSAnRCZhYWN1dGU7dGEnOwokbGFuZ1snZGVmYXVsdCddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7JzsKJGxhbmdbJ2RlZmF1bHR0ZW1wbGF0ZXMnXSA9ICdQcmVkYXN0YXZlbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueSc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlX25vdGljZSddID0gJzxzdHJvbmc+UG96biZhYWN1dGU7bWthOjwvc3Ryb25nPiBPYnNhaHkgdCZ5YWN1dGU7Y2h0byB0ZXh0b3YmeWFjdXRlO2NoIG9ibGFzdCZpYWN1dGU7IHNhIHBvdcW+JmlhY3V0ZTt2YWomdWFjdXRlOyBuYSB2eXR2b3JlbmllIHByZWRuYXN0YXZlbiZlYWN1dGU7aG8gb2JzYWh1ICZzY2Fyb247YWJsJm9hY3V0ZTtuIHByZSBqZWRub3RsaXYmZWFjdXRlOyAmc2Nhcm9uO2FsYiZvYWN1dGU7bnkuIEljaCAmdWFjdXRlO3ByYXZvdm91IG5lc3Amb2NpcmM7c29iJmlhY3V0ZTt0ZSDFvmlhZGVuIGVmZWt0IG5hIHMmdWFjdXRlO8SNYXNuZSB2eXR2b3JlbiZlYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtueS4nOwokbGFuZ1snZGVsZXRlJ10gPSAnT2RzdHImYWFjdXRlO25pxaUnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ09kc3RyJmFhY3V0ZTtuacWlIGF0cmliJnVhY3V0ZTt0JzsKJGxhbmdbJ2RlbGV0ZV9oaWVyYXJjaHlfaXRlbSddID0gJ09kc3RyJmFhY3V0ZTtuacWlIHBvbG/Fvmt1IHYgaGllcmFyY2hpaSc7CiRsYW5nWydkZXNjZW5kaW5nJ10gPSAnWm9zdHVwbmUnOwokbGFuZ1snZGVzY3JpcHRpb24nXSA9ICdQb3Bpcyc7CiRsYW5nWydkZXRhaWxzJ10gPSAnRGV0YWlseSc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bmEgZGV0YWlseSAnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ1ByaWRhxaUvdXByYXZpxaUgJnNjYXJvbjthYmwmb2FjdXRlO251IGRldGFpbHUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdWeXBuJnVhY3V0ZTvFpSc7CiRsYW5nWydkcmFmdCddID0gJ04mYWFjdXRlO3ZyaCc7CiRsYW5nWydkcm9wZG93biddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydkcm9wZG93bl9vcHRpb25zJ10gPSAnSG9kbm90eSB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7aG8gcG/EvmEgPGVtPihidWQmdWFjdXRlOyBwb3XFvml0JmVhY3V0ZTsgaWJhIHByZSB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGlhKTwvZW0+PGJyLz48YnIvPjxlbT4obm92JmFhY3V0ZTsgcG9sb8W+a2EgbmEgbm92JnlhY3V0ZTsgcmlhZG9rKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdVcHJhdmnFpSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldHMnXSA9ICdVcHJhdmnFpSBzZXR5IGF0cmliJnVhY3V0ZTt0b3YnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ1VwcmF2acWlIHNldHkgYXRyaWImdWFjdXRlO3RvdiBwcmUnOwokbGFuZ1snZWRpdF9hdHRyaWJ1dGVzJ10gPSAnVXByYXZpxaUgYXRyaWImdWFjdXRlO3R5JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdVcHJhdmnFpSBrYXRlZyZvYWN1dGU7cml1JzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJ10gPSAnVXByYXZpxaUgcG9saWEga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWydlZGl0X2hpZXJhcmNoeV9pdGVtJ10gPSAnVXByYXZpxaUgcG9sb8W+a3UgdiBoaWVyYXJjaGlpJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBdHJpYiZ1YWN1dGU7xaUgcyB0JnlhY3V0ZTttdG8gbiZhYWN1dGU7enZvbSB1xb4gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ0hvZG5vdGEgbmVtJm9jaXJjO8W+ZSBiecWlIHByJmFhY3V0ZTt6ZG5hJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ1MmdWFjdXRlO2JvciBuZW4mYWFjdXRlO2pkZW4meWFjdXRlOyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnTmVwbGF0biZ5YWN1dGU7IHJvZGnEjSAocHJ2b2sgdiBoaWVyYXJjaGlpIG5lbSZvY2lyYzvFvmUgYnnFpSBzdm9qIHZsYXN0biZ5YWN1dGU7IHJvZGnEjSknOwokbGFuZ1snZXJyb3JfaW52YWxpZF9uYW1lJ10gPSAnSG9kbm90YSB2bGFzdG4mZWFjdXRlO2hvIHBvxL5hIG9ic2FodWplIG5lcG92b2xlbiZlYWN1dGU7IHpuYWt5IChwb3ZvbGVuJmVhY3V0ZTsgcyZ1YWN1dGU7IGxlbiBhbGZhbnVtZXJpY2smZWFjdXRlOyknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnUG92aW5uJnlhY3V0ZTsgcGFyYW1ldGVyIG5lYm9sIHZ5cGxuZW4mZWFjdXRlOywgYWxlIGJvbCB2eXBsbmVuJnlhY3V0ZTsgbmVzcHImYWFjdXRlO3ZuZSc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ1BvbG/FvmthIHMgdCZ5YWN1dGU7bXRvIG4mYWFjdXRlO3p2b20gZXhpc3R1amUnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5YmVydGUgdHlwIHBvxL5hJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ011cyZpYWN1dGU7dGUgdnlwbG5pxaUgbiZhYWN1dGU7em92JzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdQcm9kdWt0IHMgdCZ5YWN1dGU7bXRvIG4mYWFjdXRlO3p2b20gZXhpc3R1amUnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ05lcGxhdG4mYWFjdXRlOyBob2Rub3RhIHVwcmF2ZW5laiBjZW55IHByZSBwb2xvxb5rdSAgJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ05haHImYWFjdXRlO3ZhbmllIHpseWhhbG86ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9sZSc7CiRsYW5nWydmaWVsZGRlZiddID0gJ0RlZmluJmlhY3V0ZTtjaWEgcG/EvmEnOwokbGFuZ1snZmllbGRkZWZzJ10gPSAnRGVmaW4maWFjdXRlO2NpYSBwb2wmaWFjdXRlOyc7CiRsYW5nWydmaWxlJ10gPSAnUyZ1YWN1dGU7Ym9yJzsKJGxhbmdbJ2ZpbHRlcnMnXSA9ICdGaWx0cmUnOwokbGFuZ1snZmlyc3RwYWdlJ10gPSAnPDwnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFyY2hpYSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdQb3omaWFjdXRlO2NpYSB2IGhpZXJhcmNoaWknOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdPYnImYWFjdXRlO3pvayc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnVnImYWFjdXRlO3RhbmUgcG9kJnVhY3V0ZTtyb3ZuZT8nOwokbGFuZ1snaW5mb19hbG51bW9ubHknXSA9ICdJYmEgYWxmYW51bWVyaWNrJmVhY3V0ZTsgem5hbWt5LCBiZXogbWVkemllciwgJnVhY3V0ZTt2b2R6b3ZpZWssIGEgb3N0YXRuJnlhY3V0ZTtjaCB6bmFrb3YgbWltbyDEjSZpYWN1dGU7c2llbCBhIHAmaWFjdXRlO3NtZW4uJzsKJGxhbmdbJ2luZm9fYXV0b3RodW1ibmFpbCddID0gJ05hc3RhdmVuaWUgbiZhYWN1dGU7aMS+YWRvdiZ5YWN1dGU7Y2ggb2JyJmFhY3V0ZTt6a292IHMmdWFjdXRlOyB6IG1vZHVsdSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnTmFzdGF2ZW5pYSB2b2Rvem5ha3UgcyZ1YWN1dGU7ICB6IG1vZHVsdSBDR0V4dGVuc2lvbnMnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Qb3puJmFhY3V0ZTtta2E6IDwvc3Ryb25nPiBWJnNjYXJvbjtldGt5IHBvbGlhIHR1IHMmdWFjdXRlOyBkb3N0dXBuJmVhY3V0ZTsgcHJlIHYmc2Nhcm9uO2V0a3kgcHJvZHVrdHknOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJvYmxlbXMgd2VyZSBlbmNvdW50ZXJlZCB3aGVuIGRlYWxpbmcgd2l0aCBvbmUgb3IgbW9yZSBjdXN0b20gZmllbGRzLiAgVGhlIGFjdGlvbiBoYXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSwgaG93ZXZlciB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCBjb3JyZWN0IHRoZXNlIHByb2JsZW1zJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1Bvdm9sZW4mZWFjdXRlOyB6bmFreSBzJnVhY3V0ZTsgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnVmVyZWpuJmVhY3V0ZTsgcG9saWEgcyZ1YWN1dGU7IHZpZGl0ZcS+biZlYWN1dGU7IHByZSB2JnNjYXJvbjtldGs9eWNoJzsKJGxhbmdbJ2xhYmVsJ10gPSAnWm5hxI1rYSc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdQb3NsZWRuJmFhY3V0ZTsgem1lbmEnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdEcnVoJnlhY3V0ZTsgb2JyJmFhY3V0ZTt6b2snOwokbGFuZ1snbWF4bGVuZ3RoJ10gPSAnTWF4aW0mYWFjdXRlO2xuYSBkxLrFvmxhIDxlbT4ocGxhdG4mZWFjdXRlOyBpYmEgdiB0ZXh0b3ZvbSBwb2xpKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0QmYWFjdXRlO3R1bSAmdWFjdXRlO3ByYXZ5JzsKJGxhbmdbJ21vZHVsZV9kZXNjcmlwdGlvbiddID0gJ01vZHVsIHByZSBzcHImYWFjdXRlO3Z1IHByb2R1a3RvdiwgaWNoIGNpZW4sIG9iciZhYWN1dGU7emtvdiwgYXTEjy4gTSZvY2lyYzvFvm5vc8WlIHBvdcW+acWlIHYga29tYmluJmFhY3V0ZTtjaWkgcyBtb2R1bG9tIG4mYWFjdXRlO2t1cG4mZWFjdXRlO2hvIGtvJnNjYXJvbjsmaWFjdXRlO2thIChDYXJ0KSBhIG1vZHVsb20gb2JqZWRuJmFhY3V0ZTt2b2sgKE9yZGVycyknOwokbGFuZ1snbmFtZSddID0gJ04mYWFjdXRlO3pvdic7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ05lbSZhYWN1dGU7dGUgcG90cmVibiZlYWN1dGU7IHByJmFhY3V0ZTt2YTogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOJmFhY3V0ZTt6b3Ygbm92ZWoga2F0ZWcmb2FjdXRlO3JpZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICfFvWlhZG55IG4mYWFjdXRlO3pvdiBuZWJvbCB6YWRhbiZ5YWN1dGU7JzsKJGxhbmdbJ25vbmUnXSA9ICfFvWlhZG5lJzsKJGxhbmdbJ29mJ10gPSAneic7CiRsYW5nWydwYWdlJ10gPSAnU3RyYW5hJzsKJGxhbmdbJ3BhZ2Vfb2YnXSA9ICdTdHJhbmEgJXMgeiAlcyc7CiRsYW5nWydwYWdlX2xpbWl0J10gPSAnTWF4LiBuYSBzdHImYWFjdXRlO25rdSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWwgLSBEaXNwbGF5IGEgZGV0YWlsIHZpZXcgb2YgYSBzaW5nbGUgcHJvZHVjdDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeSddID0gJ1doZW4gdXNlZCBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyLCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY2F0ZWdvcnkgd2lsbCBiZSB1c2VkIHRvIGRpc3BsYXkgb25seSB0aG9zZSBwcm9kdWN0cyB0aGF0IGFyZSBpbiB0aGF0IGNhdGVnb29yeS4gKGEgY29tbWEgc2VwZXJhdGVkIGxpc3QgY2FuIGJlIHN1cHBsaWVkKSc7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3R0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnVGhpcyBzcGVjaWZpZXMgdGhlIHBhZ2VpZCBvciBhbGlhcyB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGRldGFpbCByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGV0YWlsIG1vZGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGhpZXJhcmNoeSBkaXNwbGF5LiBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbWFueSBpdGVtcyBzaG91bGQgYmUgbGlzdGVkIG9uIGVhY2ggcGFnZS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5oaWVyYXJjaHk8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgaGllcmFyY2h5IGlkIG9mIHRoZSBzdGFydGluZyBsb2NhdGlvbiBvZiB0aGUgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9wcm9kdWN0aWQnXSA9ICdQb3XFviZpYWN1dGU7dmEgc2EgdiZ5YWN1dGU7aHJhZG5lIHByaSBtJm9hY3V0ZTtkZSBkZXRhaWwsYSB6b2JyYXp1amUgZGV0YWlsIHByb2R1a3R1JzsKJGxhbmdbJ3BhcmFtX3NvcnRvcmRlciddID0gJ1NwZWNpZnkgdGhlIG9yZGVyIG9mIHNvcnRlZCBmaWVsZHMgaW4gc3VtbWFyeSB2aWV3LiAgUG9zc2libGUgdmFsdWVzIGFyZToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+YXNjPC9zdHJvbmc+IC0tIEFzY2VuZGluZyBvcmRlcjwvbGk+DQogIDxsaT5kZXNjIC0tIERlc2NlbmRpbmcgb3JkZXI8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fc29ydGJ5J10gPSAnUG91xb4maWFjdXRlO3ZhIHNhIHYmeWFjdXRlO2hyYWRuZSB2IG0mb2FjdXRlO2RlIHByZWjEvmFkdSAoc3VtbWFyeSkgYSB6YWJlenBlxI11amUgdHJpZWRlbmllIHByb2R1a3RvdiBuYSB2JnlhY3V0ZTtzdHVwZS4gTW/Fvm4mZWFjdXRlOyBob2Rub3R5IHBhcmFtZXRyYToNCjx1bD4NCiAgPGxpPjxzdHJvbmc+cHJvZHVjdF9uYW1lPC9zdHJvbmc+PC9saT4NCiAgPGxpPnByaWNlIC0tIHomYWFjdXRlO2tsYWRuJmFhY3V0ZTsgY2VuYSBwcm9kdWt0dTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgYWxlYm8gcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBuJmFhY3V0ZTtob2RuJnlhY3V0ZTsgdiZ5YWN1dGU7YmVyPC9saT4NCiAgPGxpPmNyZWF0ZWQgLS0gZCZhYWN1dGU7dHVtIHZ5dHZvcnJlbmlhPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIGQmYWFjdXRlO3R1bSBwb3NsZWRuZWogJnVhY3V0ZTtwcmF2eTwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnXSA9ICdUZW50byBwYXJhbWV0ZXIgJnNjYXJvbjtwZWNpZmlrdWplICZzY2Fyb247YWJsJm9hY3V0ZTtudSBwcmUgcHJlIG0mb2FjdXRlO2QgcHJlaMS+YWR5ICZxdW90O3N1bW1hcnkmcXVvdDsuIEFrIG5pZWplIHphZGFuJnlhY3V0ZTssIHBvdcW+aWplIHNhIHByZWRuYXN0YXZlbiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYS4nOwokbGFuZ1sncGFyZW50J10gPSAnUm9kacSNJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgYm9sICZ1YWN1dGU7c3BlJnNjYXJvbjtuZSBuYWluJnNjYXJvbjt0YWxvdmFuJnlhY3V0ZTsnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1Byb2R1a3RvdiZ5YWN1dGU7IG1vZHVsIGJvbCBvZHN0ciZhYWN1dGU7bmVuJnlhY3V0ZTsgc28gdiZzY2Fyb247ZXRrJnlhY3V0ZTttaSBkJmFhY3V0ZTt0YW1pdSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ05hc3RhdmVuaWEnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnT2RzdHImYWFjdXRlO25lbiZpYWN1dGU7bSBtb2R1bHUgc3RyYXQmaWFjdXRlO3RlIHYmc2Nhcm9uO2V0a3kgZCZhYWN1dGU7dGEgcyBuJmlhY3V0ZTttIHMmdWFjdXRlO3Zpc2VqJnVhY3V0ZTtjZSwgY2hjZXRlIHBva3JhxI1vdmHFpT8nOwokbGFuZ1sncHJpY2UnXSA9ICdDZW5hJzsKJGxhbmdbJ3ByaWNlX2FkanVzdG1lbnQnXSA9ICdQcmlwJm9jaXJjO3NvYmVuaWUgY2VueSc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdOJmFhY3V0ZTt6b3YgcHJvZHVrdHUnOwokbGFuZ1sncHJvZHVjdHMnXSA9ICdQcm9kdWt0eSc7CiRsYW5nWydwcm9kdWN0X2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoaWEgcHJvZHVrdG92JzsKJGxhbmdbJ3Byb2R1Y3RfbWFuYWdlciddID0gJ1Byb2R1a3RvdiZ5YWN1dGU7IG1vZHVsJzsKJGxhbmdbJ3Byb21wdCddID0gJ0hsJmFhY3V0ZTsmc2Nhcm9uO2thJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sacWlIG5haHImYWFjdXRlO3ZhxaUgcyZ1YWN1dGU7Ym9yeSBzIHQmeWFjdXRlO21pdG8ga29uY292a2FtaSAocHJlIHBvbGUgcyZ1YWN1dGU7Ym9yKSc7CiRsYW5nWydwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJ10gPSAnUG92b2xpxaUgbmFociZhYWN1dGU7dmHFpSBvYnImYWFjdXRlO3preSBzIHQmeWFjdXRlO21pIGtvbmNvdmthbWkgKHByZSBwb2xlIG9iciZhYWN1dGU7em9rKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F1dG9tYXRpY2t5IHZ5dHZvcmnFpSBuYWjEvmFkIG9iciZhYWN1dGU7emthJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXV0b21hdGlja3kgdmxvxb5pxaUgdm9kb3puYWsgZG8gb2JyJmFhY3V0ZTt6a292JzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnWmFwbiZ1YWN1dGU7xaUgYWtvIHByZWRuYXN0YXZlbiZlYWN1dGU7IHByZSB2JnNjYXJvbjtldGt5IG5vdiZlYWN1dGU7IHByb2R1a3R5JzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdTJnVhY3V0ZTvEjWFzbiZ5YWN1dGU7IGsmb2FjdXRlO2QnOwokbGFuZ1sncHJvbXB0X2N1cnJlbmN5c3ltYm9sJ10gPSAnUyZ1YWN1dGU7xI1hc24meWFjdXRlOyBzeW1ib2wnOwokbGFuZ1sncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcyddID0gJ09kc3RyYW5pxaUgdiZzY2Fyb247ZXRreSBzJnVhY3V0ZTtib3J5IHNwb2plbiZlYWN1dGU7IHMgdCZ5YWN1dGU7bXRvIHByb2R1a3RvbSBwcmkgamVobyBvZHN0ciZhYWN1dGU7bmVuJmlhY3V0ZTs/JzsKJGxhbmdbJ3Byb21wdF9kZXRhaWxwYWdlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgc3RyJmFhY3V0ZTtua2EgZGV0YWlsdSc7CiRsYW5nWydwcm9tcHRfdGF4cmF0ZSddID0gJ1NhZHpiYSBkYW5lJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnUHJlZG5hc3RhdmVuJmVhY3V0ZTsgdHJpZWRlbmllIHYgbSZvYWN1dGU7ZGUgcHJlaMS+YWR1IChzdW1tYXJ5KSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdQcmVkbmFzdGF2ZW4mZWFjdXRlOyB0cmllZGVuaWUgdiBtJm9hY3V0ZTtkZSBwcmVoxL5hZHUgKHN1bW1hcnkpJzsKJGxhbmdbJ3Byb21wdF90YXgxJ10gPSAnUHJ2JmFhY3V0ZTsgZGHFiCc7CiRsYW5nWydwcm9tcHRfdGF4MiddID0gJ0RydWgmYWFjdXRlOyBkYcWIJzsKJGxhbmdbJ3Byb21wdF90YXhuYW1lJ10gPSAnTiZhYWN1dGU7em92IGRhbmUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnWmRyb2ogJnNjYXJvbjthYmwmb2FjdXRlO255JzsKJGxhbmdbJ3Byb21wdF93ZWlnaHR1bml0cyddID0gJ0plZG5vdGt5IGhtb3Rub3N0aSc7CiRsYW5nWydwdWJsaWMnXSA9ICdKZSB0b3RvIHZlcmVqbiZlYWN1dGU7IHBvbGU/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpa292YW4mZWFjdXRlOyc7CiRsYW5nWydyYW5kb20nXSA9ICdOJmFhY3V0ZTtob2RuZSc7CiRsYW5nWydyZXNldHRvZmFjdG9yeSddID0gJ1ByZWRuYXN0YXZpxaUgbmEgcHJlZHZvbGVuJmVhY3V0ZTsgaG9kbm90eSc7CiRsYW5nWydyb290J10gPSAnUm9kacSNb3ZzayZ5YWN1dGU7IGFkcmVzJmFhY3V0ZTtyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWeWJlcnRlIGplZG51JzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdab3RyaWVkacWlIHBvZMS+YSc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnUG9yYWRpZSc7CiRsYW5nWydzdGF0dXMnXSA9ICdTdGF2JzsKJGxhbmdbJ3N1Ym1pdCddID0gJ09kb3NsYcWlJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZXMnXSA9ICcmU2Nhcm9uO2FibCZvYWN1dGU7bnkgcHJlaMS+YWRvdiAoc3VtbWFyeSknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdQcmlkYcWlL3VwcmF2acWlICZzY2Fyb247YWJsJm9hY3V0ZTtudSBwcmVoxL5hZHUnOwokbGFuZ1sndGF4YWJsZSddID0gJ1pkYW5lbiZlYWN1dGU7JzsKJGxhbmdbJ3RheF9tb2R1bGUnXSA9ICdNb2R1bCBwcmUgZGFuZSc7CiRsYW5nWyd0ZXh0YXJlYSddID0gJ1RleHRvdiZhYWN1dGU7IG9ibGFzxaUnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHRvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3UgdiBoaWVyYXJjaGkmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9jYXRlZ29yeWxpc3RfZGZsdHRlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hIHYmeWFjdXRlO3Bpc3Uga2F0ZWcmb2FjdXRlO3JpaSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUHJlZG5hc3RhdmVuJmFhY3V0ZTsgJnNjYXJvbjthYmwmb2FjdXRlO25hIGRldGFpbHUnOwokbGFuZ1sndGl0bGVfc3VtbWFyeV9kZmx0dGVtcGxhdGUnXSA9ICdQcmVkbmFzdGF2ZW4mYWFjdXRlOyAmc2Nhcm9uO2FibCZvYWN1dGU7bmEgcyZ1YWN1dGU7aHJudSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcmF2acWlJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1Z5YnJhxaUgcyZ1YWN1dGU7Ym9yIHByZSBuYWhyYXRpZSc7CiRsYW5nWyd2YWxpZCddID0gJ1NwciZhYWN1dGU7dm5lJzsKJGxhbmdbJ3ZhbHVlJ10gPSAnSG9kbm90YSc7CiRsYW5nWyd2YWx1ZXMnXSA9ICdIb2Rub3R5JzsKJGxhbmdbJ3dhdGVybWFya19sb2NhdGlvbiddID0gJ0FkcmVzYSB2b2Rvem5ha3UnOwokbGFuZ1snd2VpZ2h0J10gPSAnViZhYWN1dGU7aGEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjI0NzYxMTA3LjM4OC4yNi51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9dmFzc2FsZ3ltLnNrfHV0bWNjdD0vYWRtaW4vbGlzdGNvbnRlbnQucGhwfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjQzMDA3NDI2ODkyNzU2MDE0MDAuMTIxMzI1Njk1My4xMjI1MTEwMjgwLjEyMjUxMTQ0NDEuMzk5JzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My41LjEwLjEyMjUxMTQ0NDEnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sl_SI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0RvZGFqJzsKJGxhbmdbJ2FkZGNhdGVnb3J5J10gPSAnRG9kYWoga2F0ZWdvcmlqbyc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0RvZGFqIHBvbGplJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdOYXN0YXZsaml2byc7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnRG9kYWogYXJ0aWtlbCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0RvZGFqIGF0cmlidXQnOwokbGFuZ1snYWRkX2NhdGVnb3J5X2ZpZWxkJ10gPSAnRG9kZWxpIHBvbGplIGthdGVnb3Jpamk6ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2FkZF9oaWVyYXJjaHlfaXRlbSddID0gJ0RvZGFqIGVsZW1lbnQgaGllcmFyaGlqZSc7CiRsYW5nWydhZGRfb3B0aW9uJ10gPSAnRG9kYWogbW/Fvm5vc3QgYXRyaWJ1dGEnOwokbGFuZ1snYWRtaW5fb25seSddID0gJ0FsaSBsYWhrbyBzYW1vIGFkbWluaXN0cmF0b3JqaSB2aWRpam8gdGEgYXRyaWJ1dD8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdaZ29yYWogbGV2byc7CiRsYW5nWydhbGlnbl91YyddID0gJ1pnb3JhaiBzcmVkaW5hJzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnWmdvcmFqIGRlc25vJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnU3JlZGluYSBsZXZvJzsKJGxhbmdbJ2FsaWduX21jJ10gPSAnU3JlZGluYSc7CiRsYW5nWydhbGlnbl9tciddID0gJ1NyZWRpbmEgZGVzbm8nOwokbGFuZ1snYWxpZ25fbGwnXSA9ICdTcG9kYWogbGV2byc7CiRsYW5nWydhbGlnbl9sYyddID0gJ1Nwb2RhaiBzcmVkaW5hJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnU3BvZGFqIGRlc25vJzsKJGxhbmdbJ2FsbGNhdGVnb3JpZXMnXSA9ICdWc2Uga2F0ZWdvcmlqZSc7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnU3RlIHByZXByacSNYW5pPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICdTdGUgcHJlcHJpxI1hbmksIGRhIMW+ZWxpdGUgaXpicmlzYXRpIHRhIGFydGlrZWwgdGVyIHZzZSBpbmZvcm1hY2lqZSwga2kgc28geiBuamltIHBvdmV6YW5lPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdOYXJhJnNjYXJvbjvEjWFqb8SNZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0ltZSBhdHJpYnV0YSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdnRvbWF0acSNbm8nOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdQcmVkbG9nZSB6YSBwb3JvxI1pbG8gaGllcmFyaGlqZSc7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdEb2Rhai91cmVkaSBwcmVkbG9nbyBwb3JvxI1pbGEgaGllcmFyaGlqZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdQcmVrbGnEjWknOwokbGFuZ1snY2FydF9tb2R1bGUnXSA9ICdNb2R1bCB6YSB2b3ppxI1layc7CiRsYW5nWydjYXRlZ29yaWVzJ10gPSAnS2F0ZWdvcmlqZSc7CiRsYW5nWydjYXRlZ29yeSddID0gJ0thdGVnb3JpamEnOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdLYXRlZ29yaWphIHMgdGVtIGltZW5vbSDFvmUgb2JzdGFqYSc7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdQcmVkbG9nZSB6YSBwcmVnbGVkIGthdGVnb3Jpaic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRG9kYWovdXJlZGkgcHJlZGxvZ28gemEgcHJlZ2xlZCBrYXRlZ29yaWonOwokbGFuZ1snY2hlY2tib3gnXSA9ICdDaGVja2JveCc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJ1N0ZSBwcmVwcmnEjWFuaSwgZGEgxb5lbGl0ZSBpemJyaXNhdGkgdGEgbml2bz8gVnNpIGFydGlrbGksIGtpIHVwb3JhYmxqYWpvIHRhIG5pdm8gYm9kbyBvZHN0cmFuamVuaSBpeiBoaWVyYXJoaWplLic7CiRsYW5nWydjb3B5J10gPSAnS29waXJhaic7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnS29waXJhaiBrYXRlZ29yaWpvJzsKJGxhbmdbJ2NyZWF0ZWRkYXRlJ10gPSAnRGF0dW0gdm5vc2EnOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ1RyZW51dG5hIHZyZWRub3N0JzsKJGxhbmdbJ2RhdGEnXSA9ICdQb2RhdGtpJzsKJGxhbmdbJ2RlZmF1bHQnXSA9ICdQcml2emV0byc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnUHJpdnpldGUgcHJlZGxvZ2UnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPlBvem9yOjwvc3Ryb25nPiBWc2ViaW5hIHRlaCBwb2xqIGplIHVwb3JhYmxqZW5hIHphIGRvbG/EjWFuamUgcHJpdnpldGUgdnNlYmluZSBwcmVkbG9nLCBrbyBrbGlrbmV0ZSAmcXVvdDtEb2RhaiBwcmVkbG9nbyZxdW90OyB2IHVzdHJlem5lbSB6YXZpaGt1IHMgcHJlZGxvZ2FtaS4gU3ByZW1pbmphbmplIHZzZWJpbmUgdGVoIHBvbCBuZSBibyB2cGxpdmFsbyBuYSB2YSZzY2Fyb247byBzcGxldG5vIHN0cmFuLic7CiRsYW5nWydkZWxldGUnXSA9ICdJemJyaSZzY2Fyb247aSc7CiRsYW5nWydkZWxldGVfYXR0cmlic2V0J10gPSAnSXpicmkmc2Nhcm9uO2kgYXRyaWJ1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdJemJyaSZzY2Fyb247aSBlbGVtZW50IGhpZXJhcmhpamUnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ1BhZGFqb8SNZSc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ09waXMnOwokbGFuZ1snZGV0YWlscyddID0gJ1BvZHJvYm5vc3RpJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ1ByZWRsb2dlIHphIHBvZHJvYm5vc3QnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0RvZGFqL3VyZWRpIHByZWRsb2dvIHphIHBvZHJvYm5vc3QnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdPbmVtb2dvxI1lbm8nOwokbGFuZ1snZHJhZnQnXSA9ICdPc251dGVrJzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnSXp2bGXEjW5pIG1lbmknOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ01vxb5ub3N0aSBpenZsZcSNbmVnYSBtZW5pamEgPGVtPihzYW1vIHByaSBpenZsZcSNbmloIHBvbGppaCk8L2VtPjxici8+PGJyLz48ZW0+KGVuIHphcGlzIG5hIHZyc3RpY28pPC9lbT4nOwokbGFuZ1snZWRpdCddID0gJ1VyZWRpJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1VyZWphbmplIG5hYm9yb3YgYXRyaWJ1dG92JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdVcmVqYW5qZSBuYWJvcm92IGF0cmlidXRvdiB6YSc7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdVcmVqYW5qZSBhdHJpYnV0b3YnOwokbGFuZ1snZWRpdF9jYXRlZ29yeSddID0gJ1VyZWphbmplIGthdGVnb3JpamUnOwokbGFuZ1snZWRpdF9jYXRlZ29yeV9maWVsZHMnXSA9ICdVcmVqYW5qZSBwb2xqIGthdGVnb3JpamUnOwokbGFuZ1snZWRpdF9oaWVyYXJjaHlfaXRlbSddID0gJ1VyZWphbmplIGVsZW1lbnRhIGhpZXJhcmhpamUnOwokbGFuZ1snZXJyb3JfYXR0cmlic2V0X2V4aXN0cyddID0gJ0F0cmlidXQgcyB0ZW0gaW1lbm9tIMW+ZSBvYnN0YWphJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdWcmVkbm9zdCBwb2xqYSBuZSBtb3JlIGJpdGkgcHJhem5hJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0RhdG90ZWthIG5lIG9ic3RhamEnOwokbGFuZ1snZXJyb3JfaW52YWxpZHBhcmVudCddID0gJ05hcGHEjWVuIG5hZHJlamVuaSBlbGVtZW50IChlbGVtZW50IGhpZXJhcmhpamUgbmUgbW9yZSBiaXRpIG5hZHJlamVuIHNhbWVtdSBzZWJpKSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdWcmVkbm9zdCBwcmlsYWdvamVuZWdhIHBvbGphIGplIG5hcGHEjW5hICh2c2VidWplIHBvc2VibmUgem5ha2UpJzsKJGxhbmdbJ2Vycm9yX21pc3NpbmdwYXJhbSddID0gJ09idmV6ZW4gcGFyYW1ldGVyIG5lIG9ic3RhamEgYWxpIHBhIGplIG5hcGHEjWVuJzsKJGxhbmdbJ2Vycm9yX25hbWV1c2VkJ10gPSAnRWxlbWVudCBzIHRlbSBpbWVub20gxb5lIG9ic3RhamEnOwokbGFuZ1snZXJyb3Jfbm9maWVsZHR5cGUnXSA9ICdQcm9zaW1vLCBpemJlcml0ZSB0aXAgcG9samEnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnVnBpc2F0aSBtb3JhdGUgaW1lJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBcnRpa2VsIHMgdGVtIGltZW5vbSDFvmUgb2JzdGFqYSc7CiRsYW5nWydlcnJvcl9wcmljZV9hZGp1c3RtZW50J10gPSAnTmFwYcSNbmEgdnJlZG5vc3QgY2VuZSB6YSBhcnRpa2VsICVzJzsKJGxhbmdbJ2Vycm9yX3VwbG9hZF9mYWlsZWQnXSA9ICdQcmVub3MgbmkgdXNwZSZzY2Fyb247ZW46ICVzJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnUG9samUnOwokbGFuZ1snZmllbGRkZWYnXSA9ICdEZWZpbmljaWphIHBvbGphJzsKJGxhbmdbJ2ZpZWxkZGVmcyddID0gJ0RlZmluaWNpamUgcG9saic7CiRsYW5nWydmaWxlJ10gPSAnRGF0b3Rla2EnOwokbGFuZ1snZmlsdGVycyddID0gJ0ZpbHRyaSc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydoaWVyYXJjaHknXSA9ICdIaWVyYXJoaWphJzsKJGxhbmdbJ2hpZXJhcmNoeV9wb3NpdGlvbiddID0gJ1BvbG/FvmFqIHYgaGllcmFyaGlqaSc7CiRsYW5nWydpZCddID0gJ0lEJzsKJGxhbmdbJ2ltYWdldGV4dCddID0gJ1NsaWthJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdWa2xqdcSNaSBwb2RyZWplbmU/JzsKJGxhbmdbJ2luZm9fYWxudW1vbmx5J10gPSAnU2FtbyBhbGZhbnVtZXJpxI1uaSB6bmFraS4gQnJleiBwcmVzbGVka292LCBuYXJla292YWpldiwgJnNjYXJvbjt1bW5pa292IGluIHBvc2VibmloIHpuYWtvdi4nOwokbGFuZ1snaW5mb19hdXRvdGh1bWJuYWlsJ10gPSAnTmFzdGF2aXR2ZSBwb21hbmomc2Nhcm9uO2FuaWggc2xpayBuYXN0YXZpdGUgdiBtb2R1bHUgQ0dFeHRlbnNpb25zJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ05hc3Rhdml0dmUgdm9kbmVnYSDFvmlnYSBuYXN0YXZpdGUgdiBtb2R1bHUgQ0dFeHRlbnNpb25zJzsKJGxhbmdbJ2luZm9fZmllbGRkZWZzX3RhYiddID0gJzxzdHJvbmc+T3Bvem9yaWxvOiA8L3N0cm9uZz4gVnNhIHR1a2FqIGRlZmluaXJhbmEgcG9samEgc28gbmEgdm9sam8gdnNlbSBhcnRpa2xvbS4nOwokbGFuZ1snaW5mb19maWVsZHByb2JsZW1zJ10gPSAnUHJpJnNjYXJvbjtsbyBqZSBkbyB0ZcW+YXYgcHJpIHVwcmF2bGphbmp1IHogZW5pbSBhbGkgdmXEjSBwcmlsYWdvamVuaWggcG9sai4gQWtjaWphIGplIGJpbGEgdXNwZSZzY2Fyb247bm8gemFrbGp1xI1lbmEsIHZlbmRhciBwcmV2ZXJpdGUgaW4gb2RwcmF2aXRlIG5hcGFrZS4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnRG92b2xqZW5lIHZyZWRub3N0aSBzbyArLSojLiMjJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdKYXZuYSBwb2xqYSBsYWhrbyB2aWRpam8gdnNpJzsKJGxhbmdbJ2xhYmVsJ10gPSAnTmF6aXYnOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnWmFkbmphIHNwcmVtZW1iYSc7CiRsYW5nWydsb2dvdGV4dCddID0gJ0RydWdhIHNsaWthJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ05hanZlxI1qYSBkb2zFvmluYSA8ZW0+KHNhbW8gcHJpIHRleHRib3ggcG9samloKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ0RhdHVtIHNwcmVtZW1iZSc7CiRsYW5nWydtb2R1bGVfZGVzY3JpcHRpb24nXSA9ICdNb2R1bCB6YSB1cHJhdmxqYW5qZSBzIGthdGFsb2dvbSBhcnRpa2xvdiwgY2VuYW1pLCBzbGlrYW1pIGl0ZC4nOwokbGFuZ1snbmFtZSddID0gJ0ltZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ05pbWF0ZSB6YWRvc3RuaWggcHJhdmljOiAlcyc7CiRsYW5nWyduZXdfY2F0ZWdvcnlfbmFtZSddID0gJ0ltZSBub3ZlIGthdGVnb3JpamUnOwokbGFuZ1snbmV4dHBhZ2UnXSA9ICc+JzsKJGxhbmdbJ25vbmFtZWdpdmVuJ10gPSAnSW1lIG5pIGJpbG8gcG9kYW5vJzsKJGxhbmdbJ25vbmUnXSA9ICdOb2Jlbic7CiRsYW5nWydvZiddID0gJ29kJzsKJGxhbmdbJ3BhZ2UnXSA9ICdTdHJhbic7CiRsYW5nWydwYWdlX29mJ10gPSAnU3RyYW4gJXMgb2QgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ09tZWppdGV2IHN0cmFuaSc7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBjYXRlZ29yeWxpc3QgYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1fZGV0YWlscGFnZSddID0gJ1RoaXMgc3BlY2lmaWVzIHRoZSBwYWdlaWQgb3IgYWxpYXMgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBkZXRhaWwgcmVwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIGRldGFpbCBtb2RlIGRpc3BsYXkuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGN1cnJlbnQgZGVmYXVsdCB0ZW1wbGF0ZSBvZiB0aGF0IHR5cGUgaXMgdXNlZC4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5J10gPSAnVXNlZnVsIG9ubHkgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCBvbmx5IGl0ZW1zIGluIHRoYXQgbG9jYXRpb24gb2YgdGhlIGhpZXJhcmNoeSBzaG91bGQgYmUgZGlzcGxheWVkLiAgV2lsZGNhcmQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IHBhcmVudC9jaGlsZCByZWxhdGlvbnNoaXBzIGFzIHdlbGwuICBpLmUge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTt0cnVja3MqJiMwMzk7fSB3aWxsIGNyZWF0ZSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGluY2x1ZGluZyB0aGUgY2hpbGRyZW4gaW4gdGhlIGhpZXJhcmNoeS4gIFNpbWlsYXJseSwge1Byb2R1Y3RzIGhpZXJhcmNoeT0mIzAzOTsqdHJ1Y2tzJiMwMzk7fSB3aWxsIGRpc3BsYXkgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBhbmQgYWxsIHByb2R1Y3RzIGJlbG9naW5nIHRvIGFueSBwYXJlbnQgaW4gdGhlIGhpZXJhcmNoeS4nOwokbGFuZ1sncGFyYW1faGllcmFyY2h5dGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBoaWVyYXJjaHkgZGlzcGxheS4gSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX3BhZ2VsaW1pdCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIDxlbT5kZWZhdWx0PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IG1hbnkgaXRlbXMgc2hvdWxkIGJlIGxpc3RlZCBvbiBlYWNoIHBhZ2UuJzsKJGxhbmdbJ3BhcmFtX3BhcmVudCddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+aGllcmFyY2h5PC9lbT4gYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGhpZXJhcmNoeSBpZCBvZiB0aGUgc3RhcnRpbmcgbG9jYXRpb24gb2YgdGhlIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fcHJvZHVjdGlkJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgZGV0YWlsIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHdoYXQgcHJvZHVjdCB0byB1c2UgZm9yIHRoZSBkaXNwbGF5Lic7CiRsYW5nWydwYXJhbV9zb3J0b3JkZXInXSA9ICdTcGVjaWZ5IHRoZSBvcmRlciBvZiBzb3J0ZWQgZmllbGRzIGluIHN1bW1hcnkgdmlldy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPmFzYzwvc3Ryb25nPiAtLSBBc2NlbmRpbmcgb3JkZXI8L2xpPg0KICA8bGk+ZGVzYyAtLSBEZXNjZW5kaW5nIG9yZGVyPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3NvcnRieSddID0gJ0FwcGxpY2FibGUgb25seSBpbiBzdW1tYXJ5IG1vZGUsIHRoaXMgcGFyYW1ldGVyIGRldGVybWluZXMgdGhlIHNvcnRpbmcgb2YgdGhlIG91dHB1dCBwcm9kdWN0cy4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT48c3Ryb25nPnByb2R1Y3RfbmFtZTwvc3Ryb25nPjwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ05hZHJlamVuaSBlbGVtZW50JzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnTW9kdWwgUHJvZHVrdGkgamUgYmlsIHVzcGUmc2Nhcm9uO25vIG5hbWUmc2Nhcm9uO8SNZW4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ01vZHVsIFByb2R1a3RpIGplIGJpbCB1c3BlJnNjYXJvbjtubyBvZHN0cmFuamVuIHogdnNlbWkgcG9kYXRraSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ05hc3Rhdml0dmUnOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnxIxlIG9kc3RyYW5pdGUgdGEgbW9kdWwsIGJvc3RlIG9kc3RyYW5pbGkgdHVkaSB2c2UgcG9kYXRrZSwga2kgbXUgcHJpcGFkYWpvLiBTdGUgcHJlcHJpxI1hbmksIGRhIMW+ZWxpdGUgbmFkYWxqZXZhdGk/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnQ2VuYSc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnTmFzdGF2aXRldiBjZW5lJzsKJGxhbmdbJ3ByZXZwYWdlJ10gPSAnPCc7CiRsYW5nWydwcm9kdWN0J10gPSAnQXJ0aWtlbCc7CiRsYW5nWydwcm9kdWN0bmFtZSddID0gJ0ltZSBhcnRpa2xhJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVrdGknOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdIaWVyYXJoaWphIHByb2R1a3Rvdic7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdVcHJhdml0ZWxqIHByb2R1a3Rvdic7CiRsYW5nWydwcm9tcHQnXSA9ICdWcHJhJnNjYXJvbjthbmplJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcyddID0gJ0Rvdm9saSBuYWxhZ2FuamUgZGF0b3RlayBzIHRlbWkga29uxI1uaWNhbWkgKHphIHBvbGphIHRpcGEgZGF0b3Rla2EpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdEb3ZvbGkgbmFsYWdhbmplIGRhdG90ZWsgcyB0ZW1pIGtvbsSNbmljYW1pICh6YSBwb2xqYSB0aXBhIHNsaWthKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F2dG9tYXRpxI1ubyB1c3R2YXJpIHBvbWFuaiZzY2Fyb247YW5lIHNsaWtlJzsKJGxhbmdbJ3Byb21wdF9hdXRvd2F0ZXJtYXJrJ10gPSAnQXZ0b21hdGnEjW5vIHZzdGF2aSB2b2RuaSDFvmlnIG5hIHNsaWtlJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnT21vZ2/EjWkgcHJpdnpldG8gemEgdnNlIG5vdmUgYXJ0aWtsZSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnJlNjYXJvbjtpZnJhIHZhbHV0ZSc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3lzeW1ib2wnXSA9ICdTaW1ib2wgdmFsdXRlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdJemJyaSZzY2Fyb247ZW0gdnNlIGRhdG90ZWtlLCBraSBzbyBwb3ZlemFuZSB6IGFydGlrbG9tLCBrbyBpemJyaSZzY2Fyb247ZW0gYXJ0aWtlbD8nOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdQcml2emV0YSBzdHJhbiBzIHBvZHJvYm5vc3RtaSc7CiRsYW5nWydwcm9tcHRfdGF4cmF0ZSddID0gJ1N0b3BuamEgZGF2a2EnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdQcml2emV0YSBzbWVyIHJhenZyJnNjYXJvbjvEjWFuamEgYXJ0aWtsb3YgdiBwb3Z6ZXRrdSc7CiRsYW5nWydwcm9tcHRfc3VtbWFyeXNvcnRpbmcnXSA9ICdQcml2emV0byBwb2xqZSB6YSByYXp2ciZzY2Fyb247xI1hbmplIGFydGlrbG92IHYgcG92emV0a3UnOwokbGFuZ1sncHJvbXB0X3RheDEnXSA9ICdQcnZpIGRhdmVrJzsKJGxhbmdbJ3Byb21wdF90YXgyJ10gPSAnRHJ1Z2kgZGF2ZWsnOwokbGFuZ1sncHJvbXB0X3RheG5hbWUnXSA9ICdJbWUgZGF2a2EnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnS29kYSBwcmVkbG9nZSc7CiRsYW5nWydwcm9tcHRfd2VpZ2h0dW5pdHMnXSA9ICdFbm90YSB0ZcW+ZSc7CiRsYW5nWydwdWJsaWMnXSA9ICdKZSB0byBwb2xqZSBqYXZubz8nOwokbGFuZ1sncHVibGlzaGVkJ10gPSAnT2JqYXZsamVubyc7CiRsYW5nWydyYW5kb20nXSA9ICdOYWtsanXEjW5vJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnUG9uYXN0YXZpIG5hIHRvdmFybmkmc2Nhcm9uO2tlIG5hc3Rhdml0dmUnOwokbGFuZ1sncm9vdCddID0gJ0tvcmVuJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdJemJlcml0ZSBlbm8nOwokbGFuZ1snc29ydF9ieSddID0gJ1JhenZyc3RpIHBvJzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTbWVyIHJhenZyJnNjYXJvbjvEjWFuamEnOwokbGFuZ1snc3RhdHVzJ10gPSAnU3RhdHVzJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1BvJnNjYXJvbjtsamknOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1ByZWRsb2dlIHphIHBvdnpldGVrJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnRG9kYWovdXJlZGkgcHJlZGxvZ28gemEgcG92emV0ZWsnOwokbGFuZ1sndGF4YWJsZSddID0gJ09iZGF2xI1lbm8nOwokbGFuZ1sndGF4X21vZHVsZSddID0gJ01vZHVsIHphIGRhdmVrJzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGVrc3Rvdm5vIHBvZHJvxI1qZSc7CiRsYW5nWyd0ZXh0Ym94J10gPSAnVGVrc3Rvdm5pIHZub3MnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnUHJpdnpldG8gemEgbm92ZSBwcmVkbG9nZSBoaWVyYXJoaWplJzsKJGxhbmdbJ3RpdGxlX2NhdGVnb3J5bGlzdF9kZmx0dGVtcGxhdGUnXSA9ICdQcml2emV0byB6YSBub3ZlIHByZWRsb2dlIHByZWdsZWRhIGthdGVnb3Jpaic7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnUHJpdnpldG8gemEgbm92ZSBwcmVkbG9nZSBwb2Ryb2Jub3N0aSc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1ByaXZ6ZXRvIHphIG5vdmUgcHJlZGxvZ2UgcG92emV0a2EnOwokbGFuZ1sndHlwZSddID0gJ1RpcCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdQb3NvZG9iaSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdJemJlcml0ZSBkYXRvdGVrbyB6YSBuYWxhZ2FuamUnOwokbGFuZ1sndmFsaWQnXSA9ICdWZWxqYXZubyc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZyZWRub3N0JzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZyZWRub3N0aSc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdMb2thY2lqYSB2b2RuZWdhIMW+aWdhJzsKJGxhbmdbJ3dlaWdodCddID0gJ1Rlxb5hJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNTg3OTU5Mjc3LjEyMTc0MzM1OTUuMTIyMjU4ODIxNi4xMjI2Njc3MTY3LjIxJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIyMjU4ODIxNi4yMC4xMS51dG1jc3I9Z29vZ2xlfHV0bWNjbj0ob3JnYW5pYyl8dXRtY21kPW9yZ2FuaWN8dXRtY3RyPWNtcyBtYWRlIHNpbXBsZSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FiYnJfbGVuZ3RoJ10gPSAnTCc7CiRsYW5nWydhYmJyX3dpZHRoJ10gPSAnVyc7CiRsYW5nWydhYmJyX2hlaWdodCddID0gJ0gnOwokbGFuZ1snYWRkJ10gPSAnTCZhdW1sO2dnIHRpbGwnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdMJmF1bWw7Z2cgdGlsbCBlbiBrYXRlZ29yaSc7CiRsYW5nWydhZGRmaWVsZGRlZiddID0gJ0wmYXVtbDtnZyB0aWxsIGV0dCBmJmF1bWw7bHQnOwokbGFuZ1snYWRqdXN0YWJsZSddID0gJ0p1c3RlcmJhcic7CiRsYW5nWydhZGRwcm9kdWN0J10gPSAnTCZhdW1sO2dnIHRpbGwgZW4gcHJvZHVrdCc7CiRsYW5nWydhZGRfYXR0cmliX3NldCddID0gJ0wmYXVtbDtnZyB0aWxsIGF0dHJpYnV0JzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWVyYW5kZSBmJmF1bWw7bHQgbWVkIGthdGVnb3JpOiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdMJmF1bWw7Z2cgdGlsbCBoaWVyYXJraSBvYmpla3QnOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIGV0dCBhdHRyaWJ1dCBhbHRlcm5hdGl2JzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdEZXR0YSBhdHRyaWJ1dCBrYW4gZW5kYXN0IHNlcyBhdiBhZG1pbj8nOwokbGFuZ1snYWxpZ25fdWwnXSA9ICdUb3BwZW4gdGlsbCB2JmF1bWw7bnN0ZXInOwokbGFuZ1snYWxpZ25fdWMnXSA9ICdUb3BwZW4gY2VudHJlcmF0JzsKJGxhbmdbJ2FsaWduX3VyJ10gPSAnVG9wcGVuIGgmb3VtbDtnZXInOwokbGFuZ1snYWxpZ25fbWwnXSA9ICdNaXR0ZW4gdGlsbCB2JmF1bWw7bnN0ZXInOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdDZW50cmVyYXQnOwokbGFuZ1snYWxpZ25fbXInXSA9ICdNaXR0ZW4gdGlsbCBoJm91bWw7Z2VyJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnTmVkZXJzdCB0aWxsIHYmYXVtbDtuc3Rlcic7CiRsYW5nWydhbGlnbl9sYyddID0gJ05lZGVyc3QgQ2VudHJlcmF0JzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnTmVkZXJzdCB0aWxsIGgmb3VtbDtnZXInOwokbGFuZ1snYWxsJ10gPSAnQWxsYSc7CiRsYW5nWydhbGxjYXRlZ29yaWVzJ10gPSAnQWxsYSBrYXRlZ29yaWVyJzsKJGxhbmdbJ2FueSddID0gJ1ZpbGtlbic7CiRsYW5nWydhcmV5b3VzdXJlJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyPyc7CiRsYW5nWydhcmV5b3VzdXJlX2RlbGV0ZXByb2R1Y3QnXSA9ICcmQXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZlcmtsaWdlbiB2aWxsIHRhIGJvcnQgZGVuIGgmYXVtbDtyIHByb2R1a3Rlbiwgb2NoIGFsbGEgZGUga29tcGxldHRlcmFuZGUgaW5mb3JtYXRpb24gZiZvdW1sO3IgZGVuPyc7CiRsYW5nWydhc2NlbmRpbmcnXSA9ICdTdGlnYW5kZSc7CiRsYW5nWydhdHRyaWJ1dGVfbmFtZSddID0gJ0F0dHJpYnV0IG5hbW4nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlza3QnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZXMnXSA9ICdIaWVyYXJraW1hbGxhcic7CiRsYW5nWydieWhpZXJhcmNoeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9SZWRpZ2VyYSBIaWVyYXJraW1hbGwnOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ2NhdGVnb3JpZXMnXSA9ICdLYXRlZ29yaWVyJzsKJGxhbmdbJ2NhdGVnb3J5J10gPSAnS2F0ZWdvcmknOwokbGFuZ1snY2F0ZWdvcnlleGlzdHMnXSA9ICdFbiBrYXRlZ29yaSBtZWQgZGV0IG5hbW5ldCBmaW5ucyByZWRhbic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZXMnXSA9ICdLYXRlZ29yaW1hbGxhcic7CiRsYW5nWydjYXRlZ29yeWxpc3R0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwvcmVkaWdlcmEga2F0ZWdvcmltYWxsJzsKJGxhbmdbJ2NlbnRpbWV0ZXJzJ10gPSAnQ2VudGltZXRlcic7CiRsYW5nWydjaGVja2JveCddID0gJ0tyeXNzcnV0YSc7CiRsYW5nWydjb25maXJtX2RlbGV0ZV9oaWVyYXJjaHlfbm9kZSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGRlbm5hIG5vZD8gQWxsYSBwcm9kdWt0ZXIgc29tIGFudiZhdW1sO25kZXIgZGVubmEgbm9kIGtvbW1lciBpbnRlIGF0dCB0aWxsaCZvdW1sO3JhIG4mYXJpbmc7Z29uIGhpZXJhcmtpJzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2ZXJrbGlnZW4gdmlsbCBnJm91bWw7cmEgZGV0dGE/IFwgbiBcIG5JbXByb3BlciBpbnN0JmF1bWw7bGxuaW5nYXIsIGVsbGVyIGVuIG9naWx0aWd0IGtvbmZpZ3VyYXRpb25zZmlsIGt1bmRlIGhlbHQgZiZvdW1sO3JkJmF1bWw7cnZhdCBmdW5nZXJhbmRlIHN5c3RlbS4nOwokbGFuZ1snY29weSddID0gJ0tvcGllcmEnOwokbGFuZ1snY29weV9jYXRlZ29yeSddID0gJ0tvcGllcmEgS2F0ZWdvcmknOwokbGFuZ1snY3JlYXRlZGRhdGUnXSA9ICdTa2FwYWQgZGF0dW0nOwokbGFuZ1snY3VycmVudF92YWx1ZSddID0gJ051dmFyYW5kZSB2JmF1bWw7cmRlJzsKJGxhbmdbJ2RhdGEnXSA9ICdEYXRhICc7CiRsYW5nWydkZWZhdWx0J10gPSAnU3RhbmRhcmQnOwokbGFuZ1snZGVmYXVsdHRlbXBsYXRlcyddID0gJ1N0YW5kYXJkbWFsbGFyJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVfbm90aWNlJ10gPSAnPHN0cm9uZz5Ob3Rpczo8L3N0cm9uZz4gSW5uZWgmYXJpbmc7bGxldCBpIGRlc3NhIHRleHQgb21yJmFyaW5nO2RlbiBhbnYmYXVtbDtuZHMgZiZvdW1sO3IgYXR0IGJlc3QmYXVtbDttbWEgc3RhbmRhcmRpbm5laCZhcmluZztsbCBhdiBkaW5hIG1hbGxhciBuJmF1bWw7ciBkdSBrbGlja2FyIHAmYXJpbmc7ICZxdW90O0wmYXVtbDtnZyB0aWxsIG1hbGwmcXVvdDsgaSBsJmF1bWw7bXBsaWcgbWFsbCBmbGlrLiBSZWRpZ2VyaW5nIGF2IGVuIHRleHQgaSBkZXNzYSBvbXImYXJpbmc7ZGVuIGtvbW1lciBhdHQgaGEgb21lZGVsYmFyIGVmZmVrdCBwJmFyaW5nOyBkaW4gd2ViYnBsYXRzLic7CiRsYW5nWydkZWxldGUnXSA9ICdSYWRlcmEnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ1JhZGVyYSBhdHRyaWJ1dCc7CiRsYW5nWydkZWxldGVfaGllcmFyY2h5X2l0ZW0nXSA9ICdSYWRlcmEgaGllcmFya2kgb2JqZWt0ZXQnOwokbGFuZ1snZGVzY2VuZGluZyddID0gJ0ZhbGxhbmRlJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnQmVza3Jpdm5pbmcnOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFsamVyJzsKJGxhbmdbJ2RldGFpbHRlbXBsYXRlcyddID0gJ0RldGFsam1hbGwnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVfYWRkZWRpdCddID0gJ0wmYXVtbDtnZyB0aWxsL3JlZGlnZXJhIGVuIGRldGFsam1hbGwnOwokbGFuZ1snZGltZW5zaW9ucyddID0gJ0RpbWVuc2lvbmVyJzsKJGxhbmdbJ2Rpc2FibGVkJ10gPSAnSW5ha3RpdmVyYWQnOwokbGFuZ1snZHJhZnQnXSA9ICdVdGthc3QnOwokbGFuZ1snZHJvcGRvd24nXSA9ICdOZWRydWxsbmluZ3NiYXInOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIFZhbCA8ZW0+KGcmYXVtbDtsbGVyIGVuZGFzdCBmJm91bWw7ciBkcm9wZG93biBvbXImYXJpbmc7ZGVuKTwvZW0+PGJyLz48YnIvPjxlbT4oZW4gcG9zdCBwZXIgcmFkKTwvZW0+JzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyYSc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ1JlZGlnZXJhIGF0dHJpYnV0JzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ1JlZGlnZXJhIGF0dHJpYnV0dXBwcyZhdW1sO3R0bmluZ2FyJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0c19mb3InXSA9ICdSZWRpZ2VyYSBhdHRyaWJ1dHVwcHMmYXVtbDt0dG5pbmdhciBmJm91bWw7cic7CiRsYW5nWydlZGl0X2F0dHJpYnV0ZXMnXSA9ICdSZWRpZ2VyYSBhdHRyaWJ1dGVyJzsKJGxhbmdbJ2VkaXRfY2F0ZWdvcnknXSA9ICdSZWRpZ2VyYSBrYXRlZ29yaSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ1JlZGlnZXJhIGthdGVnb3JpIGYmYXVtbDtsdGV0JzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdSZWRpZ2VyYSBoaWVyYWtpIG9iamVrdGV0JzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdFbiBhdHRyaWJ1dCBtZWQgZGV0IG5hbW5ldCBmaW5ucyByZWRhbic7CiRsYW5nWydlcnJvcl9kdXBsaWNhdGVfc2t1J10gPSAnRGV0dGEgU0tVIHYmYXVtbDtyZGV0IGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX2ZpZWxkdmFsdWVfZW1wdHknXSA9ICdGJmF1bWw7bHRldHMgdiZhdW1sO3JkZSBrYW4gaW50ZSB2YXJhIHRvbXQnOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ0ZpbGZvcm1hdHNwcm9ibGVtJzsKJGxhbmdbJ2Vycm9yX2ZpbGVub3Rmb3VuZCddID0gJ0ZpbGVuIGhpdHRhZGVzIGludGUnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIGF0dCAmb3VtbDtwcG5hIGZpbCUgcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdGJmF1bWw7bHRldHMgdiZhdW1sO3JkZSAmYXVtbDtyIG9naWx0aWcgKGlubmVoJmFyaW5nO2xsZXIgaWNrZSBhbGZhbnVtZXJpc2thIHRlY2tlbiknOwokbGFuZ1snZXJyb3JfbWlzc2luZ3BhcmFtJ10gPSAnRW4gbiZvdW1sO2R2JmF1bWw7bmRpZyBwYXJhbWV0ZXIgc2FrbmFzIGVsbGVyICZhdW1sO3Igb2dpbHRpZyc7CiRsYW5nWydlcnJvcl9uYW1ldXNlZCddID0gJ0V0dCBvYmpla3QgbWVkIGRldCBuYW1uZXQgYW52JmF1bWw7bmRzIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX25vZmllbGR0eXBlJ10gPSAnViZhdW1sO2xqIGYmYXVtbDtsdCB0eXAnOwokbGFuZ1snZXJyb3Jfbm9uYW1lJ10gPSAnRHUgbSZhcmluZztzdGUgdXBwZ2UgZXR0IG5hbW4nOwokbGFuZ1snZXJyb3Jfb25lc3Vic2NyaXB0aW9uZmllbGQnXSA9ICdPbmx5IG9uZSBzdWJzY3JpcHRpb24gZmllbGQgaXMgYWxsb3dlZCc7CiRsYW5nWydlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJ10gPSAnTmVrYXQgdGlsbHN0JmFyaW5nO25kJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfYWxpYXN1c2VkJ10gPSAnRGV0IHNwZWNpZmljZXJhZGUgYWxpYXMgYW52JmF1bWw7bmRzIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdFbiBwcm9kdWt0IG1lZCBkZXQgbmFtbmV0IGZpbm5zIHJlZGFuJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3Rfbm90Zm91bmQnXSA9ICdEZW4gYmVnJmF1bWw7cmRhIHByb2R1a3RlbiBrdW5kZSBpbnRlIGhpdHRhcyc7CiRsYW5nWydlcnJvcl9wcm9kdWN0X3NrdXVzZWQnXSA9ICdTS1UtdiZhdW1sO3JkZXQgYW52JmF1bWw7bmRzIHJlZGFuIGF2IGVuIGFubmFuIHByb2R1a3QnOwokbGFuZ1snZXJyb3JfcHJpY2VfYWRqdXN0bWVudCddID0gJ09naWx0aWcgcHJpc2p1c3RlcmluZ3MgdiZhdW1sO3JkZSBmJm91bWw7ciBvYmpla3RldCAlcyc7CiRsYW5nWydlcnJvcl91cGxvYWRfZmFpbGVkJ10gPSAnVXBwbGFkZG5pbmdzIGZlbDogJXMnOwokbGFuZ1snZXhwaXJlX3NpeF9tb250aHMnXSA9ICdFZnRlciA2IG0mYXJpbmc7bmFkZXInOwokbGFuZ1snZXhwaXJlX29uZV95ZWFyJ10gPSAnRWZ0ZXIgMSAmYXJpbmc7cic7CiRsYW5nWydleHBpcmVfdHdvX3llYXInXSA9ICdFZnRlciAyICZhcmluZztyJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIGYmYXVtbDtsdCAxJzsKJGxhbmdbJ2V4dHJhMiddID0gJ0V4dHJhIGYmYXVtbDtsdCAyJzsKJGxhbmdbJ2ZpZWxkJ10gPSAnRiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRiZhdW1sO2x0ZGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGJmF1bWw7bHRkZWZpbml0aW9uZXInOwokbGFuZ1snZmlsZSddID0gJ0ZpbCc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVyJzsKJGxhbmdbJ2ZpcnN0cGFnZSddID0gJzw8JzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdTdGFuZGFyZCBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1snZ28nXSA9ICdWaWRhcmUnOwokbGFuZ1snaGllcmFyY2h5J10gPSAnSGllcmFya2knOwokbGFuZ1snaGllcmFyY2h5X3Bvc2l0aW9uJ10gPSAnSGllcmFya2kgcG9zaXRpb24nOwokbGFuZ1snaWQnXSA9ICdJRCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdCaWxkJzsKJGxhbmdbJ2ltYWdlX2hhbmRsaW5nX3NldHRpbmdzJ10gPSAnQmlsZGhhbnRlcmluZ3MgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydGVyYSBwcm9kdWt0ZXIgZnImYXJpbmc7biBDU1YtZmlsJzsKJGxhbmdbJ2luY2hlcyddID0gJ1R1bSc7CiRsYW5nWydpbmNsdWRlX2NoaWxkcmVuJ10gPSAnSW5rbHVkZXJhIGNoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ0VuZGFzdCBhbGZhbnVtZXJpc2thIHRlY2tlbi4gSW5nYSBibGFua3N0ZWcsIGNpdGF0dGVja2VuIGVsbGVyIGlja2Ugc2tyaXZlbHNlIC8gbnVtbWVyIGtvbWJpbmF0aW9uZXInOwokbGFuZ1snaW5mb19hdHRyaWJ0ZW1wbGF0ZSddID0gJ00mb3VtbDtqbGlnYSB2YXJpYWJsZXIgJmF1bWw7cjogeyRhdHRyaWJfdGV4dH0seyRhdHRyaWJfYWRqdXN0fSx7JGN1cnJlbmN5X3N5bWJvbH0nOwokbGFuZ1snaW5mb19hdXRvd2F0ZXJtYXJrJ10gPSAnVmF0dGVuc3QmYXVtbDttcGVscyBpbnN0JmF1bWw7bGxuaW5nYXJuYSAmYXVtbDtyIGgmYXVtbDttdGFkZSBmciZhcmluZztuIENHRXh0ZW5zaW9ucyBNb2R1bGUnOwokbGFuZ1snaW5mb19iYXRjaHNpemUnXSA9ICdTZXQgdGhlIG51bWJlciBvZiBsaW5lcyB0byBwcm9jZXNzIHBlciAmcXVvdDtiYXRjaCZxdW90Oy4gIEFmdGVyIGEgYmF0Y2ggaXMgY29tcGxldGUsIHRoZSBpbXBvcnRlciB3aWxsIHJlZGlyZWN0LCBhbmQgcmVzdW1lIG9wZXJhdGlvbnMuICBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBtZW1vcnkgZXJyb3JzLCBvciB0aW1lb3V0IHByb2JsZW1zIGR1ZSB0byBsYXJnZSBhbW91bnRzIG9mIHByb2Nlc3NpbmcsIHlvdSBtYXkgbmVlZCB0byBjb25zdWx0IHlvdXIgaG9zdCBwcm92aWRlciwgb3IgcmVkdWNlIHRoaXMgbnVtYmVyJzsKJGxhbmdbJ2luZm9fY2FydF9tb2R1bGVfcGFyYW1zJ10gPSAnRGVzc2EgcGFyYW1ldHJhciBmaW5ucyB0aWxsIGRlbiB2YWxkYSBrdW5kdmFnbnNtb2R1bGVuIGZyJmFyaW5nO24gcHJvZHVrdGRldGFsaiBvY2ggc2FtbWFuZmF0dG5pbmcnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdTa2FwYSBhdXRvbWF0aXNrdCBldHQgb2smYXVtbDtudCBwcm9kdWt0ZiZhdW1sO2x0PyA8ZW0+IChEZSBrb21tZXIgYXR0IHNrYXBhcyBzb20gdGV4dGYmYXVtbDtsdCkgPC8gZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpc2t0IHNrYXBhIHByb2R1a3RrYXRlZ29yaWVyIGYmb3VtbDtyIGF0dCBtYXRjaGEgZGVtIGkgQ1NWLWZpbGVuLCBvbSBkZXQgaW50ZSByZWRhbiBmaW5ucyc7CiRsYW5nWydpbmZvX2NyZWF0ZWhpZXJhcmNoeSddID0gJ0F1dG9tYXRpc2t0IHNrYXBhIHByb2R1a3QgaGllcmFya2llciBmJm91bWw7ciBhdHQgbWF0Y2hhIGRlbSBpIENTVi1maWxlbiBvbSBkZXQgaW50ZSByZWRhbiBmaW5ucyc7CiRsYW5nWydpbmZvX2RlY2ltYWxfdW5pdHMnXSA9ICdEZXR0YSBzeXN0ZW0gZiZvdW1sO3JzdCZhcmluZztyICguKSBzb20gZGVjaW1hbHRlY2tlbnNlcGFyYXRvci4gZHZzOiA8c3Ryb25nPjUsMjU8L3N0cm9uZz4nOwokbGFuZ1snaW5mb19kZWxpbWl0ZXInXSA9ICdBbmdlIHZpbGtldCB0ZWNrZW4gKGVsbGVyIHRlY2tlbikgc29tIHNlcGFyZXJhIHZhcmplIGYmYXVtbDtsdCc7CiRsYW5nWydpbmZvX2R1cGxpY2F0ZXByb2R1Y3RzJ10gPSAnQW5nZSBodXIgc3lzdGVtZXQgc2thIGhhbnRlcmEgZW4gcHJvZHVrdCB2aWxrZXRzIG5hbW4gcmVkYW4gZmlubnMgaSBDU1YtZmlsZW4nOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RpczogPC9zdHJvbmc+IEFsbGEgZiZhdW1sO2x0IHNvbSBkZWZpbmllcmFzIGgmYXVtbDtyICZhdW1sO3IgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3IgYWxsYSBwcm9kdWt0ZXIuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW0gdXBwc3RvZCBuJmF1bWw7ciBtYW4gaGFyIGF0dCBnJm91bWw7cmEgbWVkIGVuIGVsbGVyIGZsZXJhIGVnbmEgZiZhdW1sO2x0LiAmQXJpbmc7dGcmYXVtbDtyZGVuICZhdW1sO3Iga2xhciwgbWVuIGR1IGImb3VtbDtyIHVuZGVycyZvdW1sO2thIG9jaCByJmF1bWw7dHRhIHRpbGwgZGVzc2EgcHJvYmxlbSc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1Vwb24gaW1wb3J0LCBpZiBhbiBpbWFnZSBmaWxlbmFtZSBpcyBmb3VuZCBpbiBhIGZpZWxkIGNvbHVtbiwgc2hvdWxkIGl0IGJlIG1vdmVkIGZyb20gdGhlIHNvdXJjZSBsb2NhdGlvbiwgd2F0ZXJtYXJrZWQsIHRodW1ibmFpbGVkLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ1YmYXVtbDtnZW4gKGkgZiZvdW1sO3JoJmFyaW5nO2xsYW5kZSB0aWxsIGlubGFnZGEga2F0YWxvZ2VuKSB2YXIgYmlsZGVybmEgc29tIGF2c2VzIGkgaW1wb3J0ZmlsZW4sIGZpbm5zJzsKJGxhbmdbJ2luZm9faW1wb3J0X3Rlc3RfcGFzc2VkJ10gPSAnQSBicmllZiB0ZXN0IGFzIGJlZW4gcGVyZm9ybWVkIG9uIHRoZSBpbnB1dCBmaWxlIHNwZWNpZmllZCwgYW5kIGV2ZXJ5dGhpbmcgYXBwZWFycyB0byBiZSBjb3JyZWN0Ljxici8+VGhpcyBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgZmlsZS4nOwokbGFuZ1snaW5mb19wcmljZV9hZGp1c3RtZW50J10gPSAnR2lsdGlnYSB2JmF1bWw7cmRlbiAmYXVtbDtyICstKiMuIyMnOwokbGFuZ1snaW5mb19wcm9kbm90Zm91bmQnXSA9ICdUaGlzIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHdlYnNpdGUgaWYgYSBwcm9kdWN0IGRldGFpbCB2aWV3IGlzIGFjY2Vzc2VkIGRpcmVjdGx5IGJ5IFVSTCwgYW5kIHRoYXQgcHJvZHVjdCBmb3Igd2hhdGV2ZXIgcmVhc29uIChkaXNhYmxlZCwgZGVsZXRlZCwgZXRjKSBjYW5ub3QgYmUgYWNjZXNzZWQuJzsKJGxhbmdbJ2luZm9fcHVibGljZmllbGQnXSA9ICdPZmZlbnRsaWdhIGYmYXVtbDtsdCBzb20gJmF1bWw7ciB0aWxsZyZhdW1sO25nbGlnYSBmJm91bWw7ciBhbGxtJmF1bWw7bmhldGVuIGF0dCBzZSc7CiRsYW5nWydsYWJlbCddID0gJ0V0aWtldHQnOwokbGFuZ1snbGFiZWxfc2tpcCddID0gJ0hvcHBhICZvdW1sO3Zlcic7CiRsYW5nWydsYWJlbF9vdmVyd3JpdGUnXSA9ICdTa3JpdiAmb3VtbDt2ZXInOwokbGFuZ1snbGFzdHBhZ2UnXSA9ICc+Pic7CiRsYW5nWydsYXN0X21vZGlmaWVkJ10gPSAnU2VuYXN0IHVwcGRhdGVyYWQnOwokbGFuZ1snbG9nb3RleHQnXSA9ICdBbmRyYSBiaWxkJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltYWwgbCZhdW1sO25nZCA8ZW0+KHRpbGwmYXVtbDttcGFzIGVuZGFzdCBwJmFyaW5nOyB0ZXh0cnV0YW5zIG9tciZhcmluZztkZW4pPC9lbT4nOwokbGFuZ1snbW9kaWZpZWRkYXRlJ10gPSAnJkF1bWw7bmRyYXQgZGF0dW0nOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnRW4gbW9kdWwgZiZvdW1sO3IgYXR0IGhhbnRlcmEgZXR0IHNvcnRpbWVudCBhdiBwcm9kdWt0ZXIsIGRlcmFzIHByaXMsIGJpbGRlciwgZXRjLCBvY2ggZyZvdW1sO3JhIGRldCBtJm91bWw7amxpZ3QgZiZvdW1sO3IgYW52JmF1bWw7bmRhcmUgYXR0IGJ5Z2dhIGVuIGt1bmR2YWduJzsKJGxhbmdbJ21vdmVfZG93biddID0gJ0ZseXR0YSBuZXInOwokbGFuZ1snbW92ZV91cCddID0gJ0ZseXR0YSB1cHAnOwokbGFuZ1snbmFtZSddID0gJ1Byb2R1a3RuYW1uJzsKJGxhbmdbJ25lZWRwZXJtaXNzaW9uJ10gPSAnRHUgaGFyIGludGUgciZhdW1sO3R0aWdoZXRlciBmJm91bWw7cjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOeXR0IGthdGVnb3JpbmFtbic7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1snbm9uYW1lZ2l2ZW4nXSA9ICdJbmdldCBwcm9kdWt0bmFtbiBoYXIgdXBwZ2V0dHMnOwokbGFuZ1snbm9uZSddID0gJ0luZ2VuJzsKJGxhbmdbJ29mJ10gPSAnQXYnOwokbGFuZ1sncGFnZSddID0gJ1NpZGEnOwokbGFuZ1sncGFnZV9vZiddID0gJ1NpZGEgJXMgb2YgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ01heCBhbnRhbCBzaWRvcic7CiRsYW5nWydwYXJhbV9hY3Rpb24nXSA9ICdTcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZHVsZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6DQo8dWw+DQogIDxsaT5oaWVyYXJjaHkgLS0gRGlzcGxheSBhIHByb2R1Y3QgbGlzdCBieSBoaWVyYXJjaHk8L2xpPg0KICA8bGk+Y2F0ZWdvcnlsaXN0IC0gRGlzcGxheSBhIGxpc3Qgb2YgcHJvZHVjdCBjYXRlZ29yaWVzPC9saT4NCiAgPGxpPjxlbT5kZWZhdWx0PC9lbT4gLSBEaXNwbGF5IGEgc3VtbWFyeSBvZiBwcm9kdWN0czwvbGk+DQogIDxsaT5kZXRhaWxzIC0gRGlzcGxheSBhIGRldGFpbCB2aWV3IG9mIGEgc2luZ2xlIHByb2R1Y3Q8L2xpPg0KPC91bD4nOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnknXSA9ICdXaGVuIHVzZWQgaW4gdGhlIDxlbT5kZWZhdWx0PC9lbT4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNhdGVnb3J5IHdpbGwgYmUgdXNlZCB0byBkaXNwbGF5IG9ubHkgdGhvc2UgcHJvZHVjdHMgdGhhdCBhcmUgaW4gdGhhdCBjYXRlZ29vcnkuIChhIGNvbW1hIHNlcGVyYXRlZCBsaXN0IGNhbiBiZSBzdXBwbGllZCknOwokbGFuZ1sncGFyYW1fY2F0ZWdvcnlsaXN0dGVtcGxhdGUnXSA9ICdBbnYmYXVtbDtuZGJhciBlbmRhc3QgbWVkIGthdGVnb3JpbGlzdGFucyAmYXJpbmc7dGcmYXVtbDtyZGVyLCBkZW4gaCZhdW1sO3IgcGFyYW1ldGVybiBhbmdlciBkZW4gbWFsbCBzb20gc2thIGFudiZhdW1sO25kYXMgZiZvdW1sO3IgaHVyIGxpc3RhbiBza2EgdmlzYXMuIE9tIGluZ2V0IHYmYXVtbDtyZGUgYW5nZXMga29tbWVyIGRlbiBudXZhcmFuZGUgc3RhbmRhcmRtYWxsIGF2IGRlbm5hIHR5cCBhbnYmYXVtbDtuZGFzLic7CiRsYW5nWydwYXJhbV9jYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGNhdGVnb3J5bGlzdCBhY3Rpb25zLCB0aGlzIHBhcmFtZXRlciBpbmRpY2F0ZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkaXNwbGF5IG9mIHRoZSBjYXRlZ29yeSBkZXRhaWxzLiAgVGhpcyB1c2VzIGEgY2F0ZWdvcnkgbGlzdCB0ZW1wbGF0ZS4uICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9kZXRhaWxwYWdlJ10gPSAnRGV0dGEgYW5nZXIgcGFnZWlkIGVsbGVyIGFsaWFzIHNvbSBiJm91bWw7ciBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIGF0dCB2aXNhIGVuIGRldGFsaiByYXBwb3J0Lic7CiRsYW5nWydwYXJhbV9kZXRhaWx0ZW1wbGF0ZSddID0gJ0RlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGFuZ2VyIGRlbiBtYWxsIHNvbSBza2EgYW52JmF1bWw7bmRhcyBmJm91bWw7ciBodXIgZGV0YWxqLWwmYXVtbDtnZSB2aXNhcy4gT20gaW5nZXQgdiZhdW1sO3JkZSBhbmdlcywgZCZhcmluZzsga29tbWVyIGRlbiBudXZhcmFuZGUgc3RhbmRhcmRtYWxsIGF2IGRlbm5hIHR5cCBhdHQgYW52JmF1bWw7bmRhcy4nOwokbGFuZ1sncGFyYW1fZmllbGQnXSA9ICdVc2VkIG9ubHkgaW4gdGhlIDxlbT5maWVsZGxpc3Q8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgYSB1c2VyIGRlZmluZWQgcHJvcGVydHkgdG8gY3JlYXRlIGEgbGlzdCBmcm9tLic7CiRsYW5nWydwYXJhbV9maWVsZHZhbCddID0gJ1VzZWQgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgZmllbGQgdmFsdWUgdG8gbGltaXQgcmVzdWx0cyBieS4gIFNwZWNpYWwgdmFsdWVzIGZvciB0aGlzIGZpZWxkIGFyZSAmcXVvdDs6Om51bGw6OiZxdW90OyAmcXVvdDs6Om5vdG51bGw6OiZxdW90Oyc7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHknXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmRlZmF1bHQ8L2VtPiBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGF0IG9ubHkgaXRlbXMgaW4gdGhhdCBsb2NhdGlvbiBvZiB0aGUgaGllcmFyY2h5IHNob3VsZCBiZSBkaXNwbGF5ZWQuICBXaWxkY2FyZCBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgc28gdGhhdCB5b3UgY2FuIHNwZWNpZnkgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMgYXMgd2VsbC4gIGkuZSB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5O3RydWNrcyomIzAzOTt9IHdpbGwgY3JlYXRlIGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgaW5jbHVkaW5nIHRoZSBjaGlsZHJlbiBpbiB0aGUgaGllcmFyY2h5LiAgU2ltaWxhcmx5LCB7UHJvZHVjdHMgaGllcmFyY2h5PSYjMDM5Oyp0cnVja3MmIzAzOTt9IHdpbGwgZGlzcGxheSBhIHN1bW1hcnkgcmVwb3J0IG9mIGFsbCB0cnVja3MsIGFuZCBhbGwgcHJvZHVjdHMgYmVsb2dpbmcgdG8gYW55IHBhcmVudCBpbiB0aGUgaGllcmFyY2h5Lic7CiRsYW5nWydwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZSddID0gJ0RlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGFuZ2VyIGRlbiBtYWxsIHNvbSBza2EgYW52JmF1bWw7bmRhcyBmJm91bWw7ciBoaWVyYXJraW4gZGlzcGxheWVuLiBPbSBpbmdldCB2JmF1bWw7cmRlIGFuZ2VzLCBkJmFyaW5nOyBrb21tZXIgZGVuIG51dmFyYW5kZSBzdGFuZGFyZG1hbGwgYXYgZGVubmEgdHlwIGF0dCBhbnYmYXVtbDtuZGFzLic7CiRsYW5nWydwYXJhbV9pbmxpbmUnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhhdCB0aGUgb3V0cHV0IG9mIHRoZSBzdW1tYXJ5IHZpZXcgc2hvdWxkIGJlIGRpc3BsYXllZCBpbmxpbmUnOwokbGFuZ1sncGFyYW1fcGFnZWxpbWl0J10gPSAnQW52JmF1bWw7bmRiYXIgZW5kYXN0IG1lZCA8ZW0+IHN0YW5kYXJkIDwvIGVtPiAmYXJpbmc7dGcmYXVtbDtyZGVyLCBkZW5uYSBwYXJhbWV0ZXIgYW5nZXIgaHVyIG0mYXJpbmc7bmdhIG9iamVrdCBza2EgYW5nZXMgcCZhcmluZzsgdmFyamUgc2lkYS4nOwokbGFuZ1sncGFyYW1fcGFyZW50J10gPSAnQW52JmF1bWw7bmRiYXIgZW5kYXN0IGkgPGVtPiBoaWVyYXJraSA8LyBlbT4gJmFyaW5nO3RnJmF1bWw7cmRlciwgZGVubmEgcGFyYW1ldGVyIGFuZ2VyIGhpZXJhcmtpbiBpZCBiJm91bWw7cmphbnMgcGxhdHMgaSByYXBwb3J0ZW4uJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ0FudiZhdW1sO25kYmFyIGVuZGFzdCBtZWQgZGV0YWxqICZhcmluZzt0ZyZhdW1sO3JkZXIsIGRlbiBoJmF1bWw7ciBwYXJhbWV0ZXJuIGFuZ2VyIHZpbGtlbiBwcm9kdWt0IHNvbSBza2EgYW52JmF1bWw7bmRhcyBmJm91bWw7ciB2aXNuaW5nLic7CiRsYW5nWydwYXJhbV9yZXN1bHRwYWdlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2gsIGFuZCBjYXRlZ29yeSBsaXN0IGFjdGlvbnMsIHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHBhZ2UgaWQgb3IgYWxpYXMgdG8gdXNlIHRvIGRpc3BsYXkgdGhlIHN1bW1hcnkgcmVzdWx0cyc7CiRsYW5nWydwYXJhbV9zZWFyY2hmaWVsZCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgc2VhcmNoIGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgbWF5IGNvbnRhaW4gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBmaWVsZCBuYW1lcyB0byBpbmNsdWRlIGluIHRoZSBzZWFyY2gnOwokbGFuZ1sncGFyYW1fc2VhcmNoZm9ybXRlbXBsYXRlJ10gPSAnQXBwbGljYWJsZSBvbmx5IHRvIHRoZSBzZWFyY2ggYWN0aW9uLCB0aGlzcGFyYW1ldGVyIGFsbG93cyBzcGVjaWZ5aW5nIGEgbm9uIGRlZmF1bHQgc2VhcmNoIGZvcm0gdGVtcGxhdGUnOwokbGFuZ1sncGFyYW1fc2hvd2FsbCddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGEgbm9uIDAgaW50ZWdlciB2YWx1ZSBhbGwgY2F0ZWdvcmllcyAoZXZlbiB0aG9zZSB3aXRob3V0IHByb2R1Y3RzKSB3aWxsIGJlIGRpc3BsYXllZC4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+cHJpY2UgLS0gVGhlIHByb2R1Y3QgYmFzZSBwcmljZTwvbGk+DQogIDxsaT5zdGF0dXMgLS0gRHJhZnQgb3IgcHVibGlzaGVkPC9saT4NCiAgPGxpPnJhbmRvbSAtLSBEaXNwbGF5IGluIHJhbmRvbSBvcmRlciBvbiBlYWNoIHJlcXVlc3Q8L2xpPg0KICA8bGk+Y3JlYXRlZCAtLSBUaGUgY3JlYXRpb24gZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQogIDxsaT5tb2RpZmllZCAtLSBUaGUgbW9kaWZpZWQgZGF0ZSBmb3IgdGhpcyBjb21wYW55IHJlY29yZDwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0dHlwZSddID0gJ0FwcGxpY2FibGUgb25seSB0byB0aGUgZGVmYXVsdCBzdW1tYXJ5IHZpZXcsIHRoaXMgcGFyYW1ldGVyIGlzIHVzZWQgdG8gY29udmVydCB0aGUgdmFsdWVzIHRvIGFub3RoZXIgdHlwZSBmb3Igc29ydGluZy4gIHZhbGlkIHZhbHVlcyBhcmUgU1RSSU5HLFNJR05FRCBhbmQgVU5TSUdORUQuICBJZiBub3Qgc3VwcGxpZWQgdGhlIGRlZmF1bHQgU1RSSU5HIHR5cGUgaXMgYXNzdW1lZC4nOwokbGFuZ1sncGFyYW1fc3VtbWFyeXBhZ2UnXSA9ICdBcHBsaWNhYmxlIG9ubHkgdG8gdGhlIGFjdGlvbj1oaWVyYXJjaHksIGFsbG93cyBzcGVjaWZ5aW5nIGEgcGFnZSBpZCBvciBhbGlhcyB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgYW55IGxpbmtzIHRvIHN1bW1qYXJ5IHZpZXcnOwokbGFuZ1sncGFyYW1fc3VtbWFyeXRlbXBsYXRlJ10gPSAnRGVuIGgmYXVtbDtyIHBhcmFtZXRlcm4gYW5nZXIgZGVuIG1hbGwgc29tIHNrYSBhbnYmYXVtbDtuZGFzIGYmb3VtbDtyIHNhbW1hbmZhdHRuaW5ncyBsJmF1bWw7Z2UuIE9tIGluZ2V0IHYmYXVtbDtyZGUgYW5nZXMsIGQmYXJpbmc7IGtvbW1lciBkZW4gbnV2YXJhbmRlIHN0YW5kYXJkbWFsbCBhdiBkZW5uYSB0eXAgYXR0IGFudiZhdW1sO25kYXMuJzsKJGxhbmdbJ3BhcmVudCddID0gJ0Ymb3VtbDtyZWcmYXJpbmc7ZW5kZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1Byb2R1Y3RzIG1vZHVsZW4gJmF1bWw7ciBudSBpbnN0YWxsZXJhZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUHJvZHVjdHMgbW9kdWxlbiAmYXVtbDtyIG51IGJvcnR0YWdlbiBzYW10IGFsbCB0aWxsaCZvdW1sO3JhbmRlIGRhdGEnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sncHJldW5pbnN0YWxsJ10gPSAnR2Vub20gYXR0IHRhIGJvcnQgZGVuIGgmYXVtbDtyIG1vZHVsZW4gcyZhcmluZzsga29tbWVyIG9ja3MmYXJpbmc7IGF0dCBhbGwgdGlsbGgmb3VtbDtyYW5kZSBkYXRhIHRhcyBib3J0LCAmYXVtbDtyIGR1IHMmYXVtbDtrZXIgcCZhcmluZzsgYXR0IGR1IHZpbGwgZm9ydHMmYXVtbDt0dGE/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpcyc7CiRsYW5nWydwcmljZV9hZGp1c3RtZW50J10gPSAnUHJpc2p1c3RlcmluZyc7CiRsYW5nWydwcmV2cGFnZSddID0gJzwnOwokbGFuZ1sncHJvZHVjdCddID0gJ1Byb2R1a3QnOwokbGFuZ1sncHJvZHVjdG5hbWUnXSA9ICdQcm9kdWt0bmFtbic7CiRsYW5nWydwcm9kdWN0cyddID0gJ1Byb2R1a3Rlcic7CiRsYW5nWydwcm9kdWN0X2RldGFpbF9zZXR0aW5ncyddID0gJ1Byb2R1a3QgRGV0YWxqaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3Byb2R1Y3RfaGllcmFyY2h5J10gPSAnUHJvZHVrdCBIaWVyYXJraSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWt0IE1hbmFnZXInOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdGcmFtc3RlZyc7CiRsYW5nWydwcm9tcHQnXSA9ICdVcHBtYW5hJzsKJGxhbmdbJ3Byb21wdF9hZGRfYXR0cmlic2V0J10gPSAnTCZhdW1sO2dnIHRpbGwgLyByZWRpZ2VyYSBhdHRyaWJ1dHVwcHMmYXVtbDt0dG5pbmcnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnVGlsbCZhcmluZzt0IGF0dCBsYWRkYSB1cHAgZmlsZXIgbWVkIGRlc3NhIGYmb3VtbDtybCZhdW1sO25nbmluZ2FyIChmJm91bWw7ciBmaWx0eXBlbiBmJmF1bWw7bHQpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3QgdXBwbGFkZG5pbmcgYXYgYmlsZGVyIG1lZCBkZXNzYSBmaWx0JmF1bWw7bmRlbHNlcihmJm91bWw7ciBiaWxkZiZhdW1sO2x0ZW4pJzsKJGxhbmdbJ3Byb21wdF9hdHRyaWJ0ZW1wbGF0ZSddID0gJ01hbGwgZiZvdW1sO3IgdmlzbmluZyBhdiBwcm9kdWt0YXR0cmlidXRlciBpIGVuIGRyb3Bkb3duJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsJ10gPSAnQXV0b21hdGlza3Qgc2thcGEgdHVtbmFnZWxiaWxkICh0aHVtYm5haWwpIGF2IGJpbGRlcic7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbF9zaXplJ10gPSAnTWF4aW1hbCBzdG9ybGVrIHAmYXJpbmc7IHR1bW5hZ2VsYmlsZCAodGh1bWJuYWlsKSc7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdBdXRvbWF0aXNrdCBza2FwYSBmJm91bWw7cmhhbmRzZ3JhbnNrbmluZ3NiaWxkZXIgYXYgYmlsZGVyJzsKJGxhbmdbJ3Byb21wdF9hdXRvcHJldmlld2ltZ19zaXplJ10gPSAnTWF4aW1hbCBzdG9ybGVrIHAmYXJpbmc7IGYmb3VtbDtyaGFuZHNncmFuc2tuaW5nc2JpbGQnOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0aXNrdCBwbGFjZXJhIHZhdHRlbm0mYXVtbDtya2UgcCZhcmluZzsgYmlsZGVyJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnQWt0aXZlcmEgYXV0b21hdGlza3QgZiZvdW1sO3IgYWxsYSBueWEgcHJvZHVrdGVyJzsKJGxhbmdbJ3Byb21wdF9iYXRjaHNpemUnXSA9ICdQYXJ0aXN0b3JsZWsnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnS3VuZHZhZ25zbW9kdWwnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ1BhcmFtZXRyYXIgZiZvdW1sO3IgS3VuZHZhZ25zbW9kdWwnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdTa2FwYSBrYXRlZ29yaWVyJzsKJGxhbmdbJ3Byb21wdF9jcmVhdGVmaWVsZHMnXSA9ICdTa2FwYSBwcm9kdWt0ZiZhdW1sO2x0Pyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnU2thcGEgcHJvZHVrdGhpcmFya2knOwokbGFuZ1sncHJvbXB0X2NzdmZpbGUnXSA9ICdMYWRkYSB1cHAgQ1NWLWZpbCc7CiRsYW5nWydwcm9tcHRfY3VycmVuY3ljb2RlJ10gPSAnVmFsdXRha29kJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ1ZhbHV0YXN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdTb20gc3RhbmRhcmQgaGFyIGFsbGEgbnlhIHByb2R1a3RlciBkZW5uYSBzdGF0dXMnOwokbGFuZ1sncHJvbXB0X2RlZmF1bHRfdGF4YWJsZSddID0gJ1NvbSBzdGFuZGFyZCAmYXVtbDtyIGFsbGEgbiB5YSBwcm9kdWt0ZXIgYmVza2F0dG5pbmdzYmFyYSc7CiRsYW5nWydwcm9tcHRfZGVsZXRlcHJvZHVjdGZpbGVzJ10gPSAnVGEgYm9ydCBhbGxhIGZpbGVyIGkgc2FtYmFuZCBtZWQgcHJvZHVrdGVuIG4mYXVtbDtyIHByb2R1a3RlbiBza2FsbCByYWRlcmFzPyc7CiRsYW5nWydwcm9tcHRfZGVsaW1pdGVyJ10gPSAnRiZhdW1sO2x0IGF2Z3ImYXVtbDtuc2FyZSc7CiRsYW5nWydwcm9tcHRfZGV0YWlscGFnZSddID0gJ1N0YW5kYXJkIGRldGFsanNpZGEnOwokbGFuZ1sncHJvbXB0X2RldGFpbHNmb3InXSA9ICdEZXRhbGplciBmJm91bWw7ciAlcyc7CiRsYW5nWydwcm9tcHRfZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdIdXIgbWFuIGhhbnRlcmFyIGR1cGxpa2F0IHByb2R1a3Rlcj8nOwokbGFuZ1sncHJvbXB0X2ZhbHNlJ10gPSAnRmFsc2snOwokbGFuZ1sncHJvbXB0X2hhbmRsZWltYWdlcyddID0gJ0hhbnRlcmEgYmlsZGVyPyc7CiRsYW5nWydwcm9tcHRfaW1hZ2VwYXRoJ10gPSAnQmlsZHMmb3VtbDtrdiZhdW1sO2cnOwokbGFuZ1sncHJvbXB0X2xlbmd0aHVuaXRzJ10gPSAnTCZhdW1sO25nZGVuaGV0ZXInOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2JlaGF2aW9yJ10gPSAnVmFkIHNrYSBoJmF1bWw7bmRhIG4mYXVtbDtyIGVuIHByb2R1a3QgaW50ZSBrYW4gdmlzYXM/JzsKJGxhbmdbJ3Byb21wdF9ub3Rmb3VuZF80MDQnXSA9ICdHZW5lcmVyYSBldHQgNDA0LWZlbCc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfMzAxJ10gPSAnR2VuZXJlcmEgZXR0IDMwMS1vbWRpcmlnZXJpbmcnOwokbGFuZ1sncHJvbXB0X25vdGZvdW5kX2Vycm9ybXNnJ10gPSAnVmlzYSBldHQgZmVsbWVkZGVsYW5kZSc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfbXNnJ10gPSAnRmVsbWVkZGVsYW5kZSBmJm91bWw7ciBuJmF1bWw7ciBlbiBwcm9kdWt0IGludGUga2FuIGhpdHRhcyc7CiRsYW5nWydwcm9tcHRfbm90Zm91bmRfcGFnZSddID0gJ1NpZGEgYXR0IGcmb3VtbDtyYSBwZXJtYW5lbnQgb21kaXJpZ2VyaW5nIHRpbGw/JzsKJGxhbmdbJ3Byb21wdF9wcm9kX2RldGFpbHBhZ2UnXSA9ICdTdGFuZGFyZHNpZGEgZiZvdW1sO3IgUHJvZHVrdCBkZXRhbGp2eWVyJzsKJGxhbmdbJ3Byb21wdF9wcm9kdWN0c19tYXRjaGluZyddID0gJ1Byb2R1a3RlciBtYXRjaGFyICVzJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydG9yZGVyJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nc29yZG5pbmcgaSBzYW1tYW5kcmFncyBsJmF1bWw7Z2UnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0aW5nJ10gPSAnU3RhbmRhcmQgc29ydGVyaW5nc29yZG5pbmcgaSBmJmF1bWw7bHRlbnMgc2FtbWFuZHJhZ3MgbCZhdW1sO2dlJzsKJGxhbmdbJ3Byb21wdF90ZW1wbGF0ZSddID0gJ01hbGxlbnMgayZhdW1sO2xsYSc7CiRsYW5nWydwcm9tcHRfdHJ1ZSddID0gJ1Nhbm4nOwokbGFuZ1sncHJvbXB0X3VybHByZWZpeCddID0gJ1ByZWZpeCBhdHQgYW52JmF1bWw7bmRhIHAmYXJpbmc7IGFsbGEgd2ViYmFkcmVzc2VyIHNvbSAmYXVtbDtyIGlucmlrdGFkIHAmYXJpbmc7IGRlbm5hIG1vZHVsZW4nOwokbGFuZ1sncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnXSA9ICdBbnYmYXVtbDtuZCBkZW4gaCZhdW1sO3Igc2lkYW4gZiZvdW1sO3IgcyZvdW1sO2tyZXN1bHRhdCBmJm91bWw7ciA8ZW0+ICgmYXJpbmc7c2lkb3MmYXVtbDt0dGVyIHMmb3VtbDtrcmVzdWx0YXQgc2lkcGFyYW1ldGVybiBpIG1vZHVsZW4pIDwvIGVtPic7CiRsYW5nWydwcm9tcHRfdXNlaGllcnBhdGh1cmxzJ10gPSAnVXNlIEhpZXJhcmNoeSBQYXRoIGluIFByb2R1Y3QgRGV0YWlsIFVSTFMnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnVmlrdCBlbmhldGVyJzsKJGxhbmdbJ3B1YmxpYyddID0gJyZBdW1sO3IgZGV0dGEgZXR0IG9mZmVudGxpZ3QgZiZhdW1sO2x0Pyc7CiRsYW5nWydwdWJsaXNoZWQnXSA9ICdQdWJsaWNlcmFkJzsKJGxhbmdbJ3JhbmRvbSddID0gJ1NsdW1wdmlzJzsKJGxhbmdbJ3Jlc2V0dG9mYWN0b3J5J10gPSAnJkFyaW5nO3RlcnN0JmF1bWw7bGwgdGlsbCBmYWJyaWtzaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3JldHVybiddID0gJyZBcmluZzt0ZXJ2JmF1bWw7bmQnOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJyZBcmluZzt0ZXJ2JmF1bWw7bmQgdGlsbCB0b3BwZW4nOwokbGFuZ1sncm9vdCddID0gJ1JPT1QnOwokbGFuZ1snc2VhcmNoX2Rlc2NyaXB0aW9uJ10gPSAnU2VhcmNoIFByb3BlcnR5IERlc2NyaXB0aW9uJzsKJGxhbmdbJ3NlYXJjaF9leHByJ10gPSAnU2thIGZyJmFyaW5nO2dhbiBtYXRjaGEgYWxsYSBlbGxlciBuJmFyaW5nO2dvbiBhdiB0ZXN0ZW4gbmVkYW4/JzsKJGxhbmdbJ3NlYXJjaF9uYW1lJ10gPSAnU2VhcmNoIFByb3BlcnR5IE5hbWUnOwokbGFuZ1snc2VhcmNoX3ByaWNlJ10gPSAnUHJpc2ludGVydmFsbCc7CiRsYW5nWydzZWFyY2h0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnTCZhdW1sO2dnIHRpbGwgLyByZWRpZ2VyYSBTJm91bWw7ayBmb3JtdWwmYXVtbDtyc21hbGwnOwokbGFuZ1snc2VhcmNodGVtcGxhdGVzJ10gPSAnUyZvdW1sO2sgbWFsbCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnViZhdW1sO2xqIGVuJzsKJGxhbmdbJ3NrdSddID0gJ1NLVSc7CiRsYW5nWydzb3J0X2J5J10gPSAnU29ydGVyYSc7CiRsYW5nWydzb3J0X29yZGVyJ10gPSAnU29ydGVyaW5nc29yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyAnOwokbGFuZ1snc3VibWl0J10gPSAnU3BhcmEnOwokbGFuZ1snc3Vic2NyaXB0aW9uJ10gPSAnU3Vic2NyaXB0aW9uJzsKJGxhbmdbJ3N1YnNjcl9leHBpcnknXSA9ICdFeHBpcnknOwokbGFuZ1snc3Vic2NyX2V4cGlyeTInXSA9ICdFeHBpcmVzJzsKJGxhbmdbJ3N1YnNjcl9tb250aGx5J10gPSAnTW9udGhseSc7CiRsYW5nWydzdWJzY3JfZGVscGVyaW9kJ10gPSAnRGVsaXZlcnkgRnJlcXVlbmN5JzsKJGxhbmdbJ3N1YnNjcl9kZWxwZXJpb2QyJ10gPSAnTGV2ZXJlcmFkJzsKJGxhbmdbJ3N1YnNjcl9wYXlwZXJpb2QnXSA9ICdQYXltZW50IEZyZXF1ZW5jeSc7CiRsYW5nWydzdWJzY3JfcGF5cGVyaW9kMiddID0gJ0JldGFsZCc7CiRsYW5nWydzdWJzY3JfcXVhcnRlcmx5J10gPSAnUXVhcnRlcmx5JzsKJGxhbmdbJ3N1YnNjcl9zZW1pYW51YWxseSddID0gJ1NlbWkgQW51YWxseSc7CiRsYW5nWydzdWJzY3JfeWVhcmx5J10gPSAnJkFyaW5nO3JsaWcnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1lcmluZ3NtYWxsYXInOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlX2FkZGVkaXQnXSA9ICdMJmF1bWw7Z2cgdGlsbC9yZWRpZ2VyYSBlbiBzdW1tZXJpbmdzbWFsbCc7CiRsYW5nWyd0YXhhYmxlJ10gPSAnQmVza2F0dG5pbmdzYmFyYSc7CiRsYW5nWyd0ZXN0J10gPSAnVGVzdCAnOwokbGFuZ1sndGV4dGFyZWEnXSA9ICdUZXh0LUFyZWEnOwokbGFuZ1sndGV4dGJveCddID0gJ1RleHQtSW5wdXQnOwokbGFuZ1sndGl0bGVfYnloaWVyYXJjaHlfZGZsdHRlbXBsYXRlJ10gPSAnU3RhbmRhcmRoaWVyYXJraW1hbGwnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJka2F0ZWdvcmltYWxsJzsKJGxhbmdbJ3RpdGxlX2RldGFpbF9kZmx0dGVtcGxhdGUnXSA9ICdTdGFuZGFyZGRldGFsam1hbGwnOwokbGFuZ1sndGl0bGVfc2VhcmNoX2RmbHR0ZW1wbGF0ZSddID0gJ055IHN0YW5kYXJkIHMmb3VtbDtrbWFsbCc7CiRsYW5nWyd0aXRsZV9zdW1tYXJ5X2RmbHR0ZW1wbGF0ZSddID0gJ1N0YW5kYXJkc2FtbWFuZmF0dG5pbmdzbWFsbCc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcGRhdGVyYSc7CiRsYW5nWyd1cGxvYWQnXSA9ICdWJmF1bWw7bGogZW4gZmlsIHNvbSBza2EgbGFkZGFzIHVwcCc7CiRsYW5nWyd1cmxfYWxpYXMnXSA9ICdVcmwgQWxpYXMnOwokbGFuZ1sndmFsaWQnXSA9ICdHaWx0aWcnOwokbGFuZ1sndmFsdWUnXSA9ICdWJmF1bWw7cmRlJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1YmYXVtbDtyZGVuJzsKJGxhbmdbJ3ZpZXcnXSA9ICdHcmFuc2thJzsKJGxhbmdbJ3ZpZXdhYmxlX2ZpZWxkcyddID0gJ1YmYXVtbDtsaiBhbnBhc3NhZGUgZiZhdW1sO2x0IGYmb3VtbDtyIGF0dCB2aXNhIGkgdGFiZWxsZW4nOwokbGFuZ1snd2F0ZXJtYXJrX2xvY2F0aW9uJ10gPSAnVmF0dGVubSZhdW1sO3JrZXRzIHBsYWNlcmluZyc7CiRsYW5nWyd3ZWlnaHQnXSA9ICdWaWt0JzsKJGxhbmdbJ3llcyddID0gJ0phPyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjYyMjYxMzI5MC4xMjgyMDY4ODAxLjEyODU2MTg2MjguMTI4NTYyMTM3MC4xOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyODQ2NTIzMTQuMTQuNC51dG1jc3I9ZmVlZGJ1cm5lcnx1dG1jY249RmVlZDogY21zbWFkZXNpbXBsZS9ibG9nIChDTVMgTWFkZSBTaW1wbGUpfHV0bWNtZD1mZWVkJzsKJGxhbmdbJ3FjYSddID0gJ1AwLTEyNjcyMTgzNjgtMTI4MjA2ODgwMTc4OCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMuMi4xMC4xMjg1NjIxMzcwJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/tr_TR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2FkZCddID0gJ0VrbGUnOwokbGFuZ1snYWRkY2F0ZWdvcnknXSA9ICdLYXRlZ29yaSBFa2xlJzsKJGxhbmdbJ2FkZGZpZWxkZGVmJ10gPSAnQWxhbiBFa2xlJzsKJGxhbmdbJ2FkanVzdGFibGUnXSA9ICdVeWFybGFuYWJpbGlyJzsKJGxhbmdbJ2FkZHByb2R1Y3QnXSA9ICcmVXVtbDtyJnV1bWw7biBFa2xlJzsKJGxhbmdbJ2FkZF9hdHRyaWJfc2V0J10gPSAnTml0ZWxpayBFa2xlJzsKJGxhbmdbJ2FkZF9jYXRlZ29yeV9maWVsZCddID0gJ0Fzc29jaWF0ZSBGaWVsZCB3aXRoIENhdGVnb3J5OiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhZGRfaGllcmFyY2h5X2l0ZW0nXSA9ICdBZGQgSGllcmFyY2h5IEl0ZW0nOwokbGFuZ1snYWRkX29wdGlvbiddID0gJ0FkZCBBdHRyaWJ1dGUgT3B0aW9uJzsKJGxhbmdbJ2FkbWluX29ubHknXSA9ICdDYW4gb25seSBhZG1pbnMgc2VlIHRoaXMgYXR0cmlidXRlPyc7CiRsYW5nWydhbGlnbl91bCddID0gJyZVdW1sO3N0IFNvbCc7CiRsYW5nWydhbGlnbl91YyddID0gJyZVdW1sO3N0IE9ydGEnOwokbGFuZ1snYWxpZ25fdXInXSA9ICcmVXVtbDtzdCBTYcSfJzsKJGxhbmdbJ2FsaWduX21sJ10gPSAnT3J0YSBTb2wnOwokbGFuZ1snYWxpZ25fbWMnXSA9ICdPcnRhJzsKJGxhbmdbJ2FsaWduX21yJ10gPSAnT3J0YSBTYcSfJzsKJGxhbmdbJ2FsaWduX2xsJ10gPSAnQWx0IFNvbCc7CiRsYW5nWydhbGlnbl9sYyddID0gJ0FsdCBPcnRhJzsKJGxhbmdbJ2FsaWduX2xyJ10gPSAnQWx0IFNhxJ8nOwokbGFuZ1snYWxsY2F0ZWdvcmllcyddID0gJ1QmdXVtbDttIEthdGVnb3JpbGVyJzsKJGxhbmdbJ2FyZXlvdXN1cmUnXSA9ICdBcmUgWW91IFN1cmU/JzsKJGxhbmdbJ2FyZXlvdXN1cmVfZGVsZXRlcHJvZHVjdCddID0gJ0FyZSB5b3Ugc3VyZSB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgcHJvZHVjdCwgYW5kIGFsbCBvZiB0aGUgYWNjb21wYW55aW5nIGluZm9ybWF0aW9uIGZvciBpdD8nOwokbGFuZ1snYXNjZW5kaW5nJ10gPSAnQXNjZW5kaW5nJzsKJGxhbmdbJ2F0dHJpYnV0ZV9uYW1lJ10gPSAnQXR0cmlidXRlIE5hbWUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKJGxhbmdbJ2J5aGllcmFyY2h5dGVtcGxhdGVzJ10gPSAnSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZXMnOwokbGFuZ1snYnloaWVyYXJjaHl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgSGllcmFyY2h5IFJlcG9ydCBUZW1wbGF0ZSc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snY2F0ZWdvcmllcyddID0gJ0NhdGVnb3JpZXMnOwokbGFuZ1snY2F0ZWdvcnknXSA9ICdDYXRlZ29yeSc7CiRsYW5nWydjYXRlZ29yeWV4aXN0cyddID0gJ0EgY2F0ZWdvcnkgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2NhdGVnb3J5bGlzdHRlbXBsYXRlcyddID0gJ0NhdGVnb3J5TGlzdCBUZW1wbGF0ZXMnOwokbGFuZ1snY2F0ZWdvcnlsaXN0dGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IEEgQ2F0ZWdvcnlMaXN0IFRlbXBsYXRlJzsKJGxhbmdbJ2NoZWNrYm94J10gPSAnQ2hlY2tib3gnOwokbGFuZ1snY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgbm9kZT8gIEFueSBwcm9kdWN0cyB0aGF0IGFyZSB1c2luZyB0aGlzIG5vZGUgd2lsbCBiZSBzZXQgdG8gbm8gaGllcmFyY2h5JzsKJGxhbmdbJ2NvbmZpcm1faW1wb3J0J10gPSAnQXJlIHlvdSBzdXJlIHlvdSByZWFsbHkgd2FudCB0byBkbyB0aGlzP1xuXG5JbXByb3BlciBzZXR0aW5ncywgb3IgYW4gaW52YWxpZCBjb25maWcgZmlsZSBjb3VsZCBjb21wbGV0ZWx5IGNvcnJ1cHQgYSBjdXJyZW50bHkgdmFsaWQgYW5kIHdvcmtpbmcgc3lzdGVtLic7CiRsYW5nWydjb3B5J10gPSAnQ29weSc7CiRsYW5nWydjb3B5X2NhdGVnb3J5J10gPSAnQ29weSBDYXRlZ29yeSc7CiRsYW5nWydjcmVhdGVkZGF0ZSddID0gJ0NyZWF0ZWQgRGF0ZSc7CiRsYW5nWydjdXJyZW50X3ZhbHVlJ10gPSAnQ3VycmVudCBWYWx1ZSc7CiRsYW5nWydkYXRhJ10gPSAnRGF0YSc7CiRsYW5nWydkZWZhdWx0J10gPSAnRGVmYXVsdCc7CiRsYW5nWydkZWZhdWx0dGVtcGxhdGVzJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZV9ub3RpY2UnXSA9ICc8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZXh0IGFyZWFzIGFyZSB1c2VkIHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBjb250ZW50IG9mIHRlbXBsYXRlcyB3aGVuIHlvdSBjbGljayAmcXVvdDtBZGQgVGVtcGxhdGUmcXVvdDsgaW4gdGhlIGFwcHJvcHJpYXRlIHRlbXBsYXRlIHRhYi4gIEVkaXRpbmcgb25lIG9mIHRoZXNlIHRleHQgYXJlYXMgd2lsbCBoYXZlIG5vIGltbWVkaWF0ZSBlZmZlY3Qgb24geW91ciB3ZWJzaXRlLic7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGVsZXRlX2F0dHJpYnNldCddID0gJ0RlbGV0ZSBBdHRyaWJ1dGUnOwokbGFuZ1snZGVsZXRlX2hpZXJhcmNoeV9pdGVtJ10gPSAnRGVsZXRlIEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2Rlc2NlbmRpbmcnXSA9ICdEZXNjZW5kaW5nJzsKJGxhbmdbJ2Rlc2NyaXB0aW9uJ10gPSAnRGVzY3JpcHRpb24nOwokbGFuZ1snZGV0YWlscyddID0gJ0RldGFpbHMnOwokbGFuZ1snZGV0YWlsdGVtcGxhdGVzJ10gPSAnRGV0YWlsIFRlbXBsYXRlcyc7CiRsYW5nWydkZXRhaWx0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBEZXRhaWwgVGVtcGxhdGUnOwokbGFuZ1snZGlzYWJsZWQnXSA9ICdEaXNhYmxlZCc7CiRsYW5nWydkcmFmdCddID0gJ0RyYWZ0JzsKJGxhbmdbJ2Ryb3Bkb3duJ10gPSAnRHJvcGRvd24nOwokbGFuZ1snZHJvcGRvd25fb3B0aW9ucyddID0gJ0Ryb3Bkb3duIE9wdGlvbnMgPGVtPihhcHBsaWNhYmxlIG9ubHkgZm9yIGRyb3Bkb3duIGZpZWxkcyk8L2VtPjxici8+PGJyLz48ZW0+KG9uZSBlbnRyeSBwZXIgbGluZSk8L2VtPic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2F0dHJpYnNldCddID0gJ0VkaXQgQXR0cmlidXRlJzsKJGxhbmdbJ2VkaXRfYXR0cmlic2V0cyddID0gJ0VkaXQgQXR0cmlidXRlIFNldHMnOwokbGFuZ1snZWRpdF9hdHRyaWJzZXRzX2ZvciddID0gJ0VkaXQgQXR0cmlidXRlIFNldHMgRm9yJzsKJGxhbmdbJ2VkaXRfYXR0cmlidXRlcyddID0gJ0VkaXQgQXR0cmlidXRlcyc7CiRsYW5nWydlZGl0X2NhdGVnb3J5J10gPSAnRWRpdCBDYXRlZ29yeSc7CiRsYW5nWydlZGl0X2NhdGVnb3J5X2ZpZWxkcyddID0gJ0VkaXQgQ2F0ZWdvcnkgRmllbGRzJzsKJGxhbmdbJ2VkaXRfaGllcmFyY2h5X2l0ZW0nXSA9ICdFZGl0IEhpZXJhcmNoeSBJdGVtJzsKJGxhbmdbJ2Vycm9yX2F0dHJpYnNldF9leGlzdHMnXSA9ICdBbiBhdHRyaWJ1dGUgd2l0aCB0aGF0IG5hbWUgYWxyZWFkeSBleGlzdHMnOwokbGFuZ1snZXJyb3JfZmllbGR2YWx1ZV9lbXB0eSddID0gJ1RoZSBGaWVsZCBWYWx1ZSBjYW5ub3QgYmUgZW1wdHknOwokbGFuZ1snZXJyb3JfZmlsZWZvcm1hdCddID0gJ0ZpbGUgRm9ybWF0IFByb2JsZW0nOwokbGFuZ1snZXJyb3JfZmlsZW5vdGZvdW5kJ10gPSAnRmlsZSBOb3QgRm91bmQnOwokbGFuZ1snZXJyb3JfZmlsZW9wZW4nXSA9ICdQcm9ibGVtIG9wZW5pbmcgZmlsZSAlcyc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyZW50J10gPSAnSW52YWxpZCBQYXJlbnQgKGEgaGllcmFyY2h5IG5vZGUgY2Fubm90IGJlIGl0JiMwMzk7cyBvd24gcGFyZW50KSc7CiRsYW5nWydlcnJvcl9pbnZhbGlkX25hbWUnXSA9ICdUaGUgY3VzdG9tIGZpZWxkIHZhbHVlIGVudGVyZWQgaXMgaW52YWxpZCAoY29udGFpbnMgbm9uIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzKSc7CiRsYW5nWydlcnJvcl9taXNzaW5ncGFyYW0nXSA9ICdBIHJlcXVpcmVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfbmFtZXVzZWQnXSA9ICdBbiBpdGVtIGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IGluIHVzZSc7CiRsYW5nWydlcnJvcl9ub2ZpZWxkdHlwZSddID0gJ1BsZWFzZSBzZWxlY3QgYSBmaWVsZCB0eXBlJzsKJGxhbmdbJ2Vycm9yX25vbmFtZSddID0gJ1lvdSBtdXN0IHN1cHBseSBhIG5hbWUnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1Blcm1pc3Npb24gRGVuaWVkJzsKJGxhbmdbJ2Vycm9yX3Byb2R1Y3RfbmFtZXVzZWQnXSA9ICdBIHByb2R1Y3QgYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX3ByaWNlX2FkanVzdG1lbnQnXSA9ICdJbnZhbGlkIHByaWNlIGFkanVzdG1lbnQgdmFsdWUgZm9yIGl0ZW0gJXMnOwokbGFuZ1snZXJyb3JfdXBsb2FkX2ZhaWxlZCddID0gJ1VwbG9hZCBmYWlsZWQ6ICVzJzsKJGxhbmdbJ2V4dHJhMSddID0gJ0V4dHJhIEZpZWxkIDEnOwokbGFuZ1snZXh0cmEyJ10gPSAnRXh0cmEgRmllbGQgMic7CiRsYW5nWydmaWVsZCddID0gJ0ZpZWxkJzsKJGxhbmdbJ2ZpZWxkZGVmJ10gPSAnRmllbGQgRGVmaW5pdGlvbic7CiRsYW5nWydmaWVsZGRlZnMnXSA9ICdGaWVsZCBEZWZpbml0aW9ucyc7CiRsYW5nWydmaWxlJ10gPSAnRmlsZSc7CiRsYW5nWydmaWx0ZXJzJ10gPSAnRmlsdGVycyc7CiRsYW5nWydmaXJzdHBhZ2UnXSA9ICc8PCc7CiRsYW5nWydnZW5lcmFsX3NldHRpbmdzJ10gPSAnR2VuZXJhbCBTZXR0aW5ncyc7CiRsYW5nWydnbyddID0gJ0dvJzsKJGxhbmdbJ2hpZXJhcmNoeSddID0gJ0hpZXJhcmNoeSc7CiRsYW5nWydoaWVyYXJjaHlfcG9zaXRpb24nXSA9ICdIaWVyYXJjaHkgUG9zaXRpb24nOwokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpbWFnZXRleHQnXSA9ICdJbWFnZSc7CiRsYW5nWydpbWFnZV9oYW5kbGluZ19zZXR0aW5ncyddID0gJ0ltYWdlIEhhbmRsaW5nIFNldHRpbmdzJzsKJGxhbmdbJ2ltcG9ydF9mcm9tX2NzdiddID0gJ0ltcG9ydCBQcm9kdWN0cyBmcm9tIENTViBmaWxlJzsKJGxhbmdbJ2luY2x1ZGVfY2hpbGRyZW4nXSA9ICdJbmNsdWRlIENoaWxkcmVuPyc7CiRsYW5nWydpbmZvX2FsbnVtb25seSddID0gJ09ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMuIE5vIHdoaXRlc3BhY2UsIHF1b3Rlcywgb3Igbm9uIGxldHRlci9udW1iZXIgY29tYmluYXRpb25zJzsKJGxhbmdbJ2luZm9fYXV0b3dhdGVybWFyayddID0gJ1dhdGVybWFyayBzZXR0aW5ncyBhcmUgdGFrZW4gZnJvbSB0aGUgQ0dFeHRlbnNpb25zIE1vZHVsZSc7CiRsYW5nWydpbmZvX2JhdGNoc2l6ZSddID0gJ1NldCB0aGUgbnVtYmVyIG9mIGxpbmVzIHRvIHByb2Nlc3MgcGVyICZxdW90O2JhdGNoJnF1b3Q7LiAgQWZ0ZXIgYSBiYXRjaCBpcyBjb21wbGV0ZSwgdGhlIGltcG9ydGVyIHdpbGwgcmVkaXJlY3QsIGFuZCByZXN1bWUgb3BlcmF0aW9ucy4gIElmIHlvdSBhcmUgZXhwZXJpZW5jaW5nIG1lbW9yeSBlcnJvcnMsIG9yIHRpbWVvdXQgcHJvYmxlbXMgZHVlIHRvIGxhcmdlIGFtb3VudHMgb2YgcHJvY2Vzc2luZywgeW91IG1heSBuZWVkIHRvIGNvbnN1bHQgeW91ciBob3N0IHByb3ZpZGVyLCBvciByZWR1Y2UgdGhpcyBudW1iZXInOwokbGFuZ1snaW5mb19jYXJ0X21vZHVsZV9wYXJhbXMnXSA9ICdUaGVzZSBwYXJhbWV0ZXJzIGFyZSBnaXZlbiB0byB0aGUgc2VsZWN0ZWQgY2FydCBtb2R1bGUgZnJvbSB0aGUgcHJvZHVjdCBkZXRhaWwgYW5kIHN1bW1hcnkgZGlzcGxheXMnOwokbGFuZ1snaW5mb19jcmVhdGVmaWVsZHMnXSA9ICdDcmVhdGUgdW5rbm93biBwcm9kdWN0IGZpZWxkcyBhdXRvbWF0aWNhbGx5PyA8ZW0+KFRoZXkgd2lsbCBiZSBjcmVhdGVkIGFzIHRleHQgZmllbGRzKTwvZW0+JzsKJGxhbmdbJ2luZm9fY3JlYXRlY2F0ZWdvcmllcyddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHByb2R1Y3QgY2F0ZWdvcmllcyB0byBtYXRjaCB0aG9zZSBvZiB0aGUgQ1NWIGZpbGUsIGlmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3QnOwokbGFuZ1snaW5mb19jcmVhdGVoaWVyYXJjaHknXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcm9kdWN0IGhpZXJhcmNoaWVzIHRvIG1hdGNoIHRob3NlIG9mIHRoZSBDU1YgZmlsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0JzsKJGxhbmdbJ2luZm9fZGVjaW1hbF91bml0cyddID0gJ1RoaXMgc3lzdGVtIHVuZGVyc3RhbmRzICguKSBhcyB0aGUgZGVjaW1hbCBwb2ludCBzZXBhcmF0b3IuIGkuZS46IDxzdHJvbmc+NS4yNTwvc3Ryb25nPic7CiRsYW5nWydpbmZvX2RlbGltaXRlciddID0gJ1NwZWNpZnkgdGhlIGNoYXJhY3RlciAob3IgY2hhcmFjdGVycykgdGhhdCBzZXBlcmF0ZSBlYWNoIGZpZWxkJzsKJGxhbmdbJ2luZm9fZHVwbGljYXRlcHJvZHVjdHMnXSA9ICdTcGVjaWZ5IGhvdyB0aGUgc3lzdGVtIHNob3VsZCBoYW5kbGUgYSBwcm9kdWN0IHdob3MgbmFtZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgQ1NWIGZpbGUnOwokbGFuZ1snaW5mb19maWVsZGRlZnNfdGFiJ10gPSAnPHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz4gQWxsIEZpZWxkcyBkZWZpbmVkIGhlcmUgYXJlIGF2YWlsYWJsZSB0byBhbGwgcHJvZHVjdHMuJzsKJGxhbmdbJ2luZm9fZmllbGRwcm9ibGVtcyddID0gJ1Byb2JsZW1zIHdlcmUgZW5jb3VudGVyZWQgd2hlbiBkZWFsaW5nIHdpdGggb25lIG9yIG1vcmUgY3VzdG9tIGZpZWxkcy4gIFRoZSBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHksIGhvd2V2ZXIgeW91IHNob3VsZCBpbnZlc3RpZ2F0ZSBhbmQgY29ycmVjdCB0aGVzZSBwcm9ibGVtcyc7CiRsYW5nWydpbmZvX2hhbmRsZWltYWdlcyddID0gJ1Vwb24gaW1wb3J0LCBpZiBhbiBpbWFnZSBmaWxlbmFtZSBpcyBmb3VuZCBpbiBhIGZpZWxkIGNvbHVtbiwgc2hvdWxkIGl0IGJlIG1vdmVkIGZyb20gdGhlIHNvdXJjZSBsb2NhdGlvbiwgd2F0ZXJtYXJrZWQsIHRodW1ibmFpbGVkLCBhbmQgdGhlIGZpZWxkIHR5cGUgY2hhbmdlZCB0byAmcXVvdDtpbWFnZSZxdW90Oyc7CiRsYW5nWydpbmZvX2ltYWdlcGF0aCddID0gJ1RoZSBwYXRoIChyZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyBkaXJlY3RvcnkpIHdoZXJlIGltYWdlcyByZWZlcnJlZCB0byBpbiB0aGUgaW1wb3J0IGZpbGUsIGNhbiBiZSBmb3VuZCc7CiRsYW5nWydpbmZvX2ltcG9ydF90ZXN0X3Bhc3NlZCddID0gJ0EgYnJpZWYgdGVzdCBhcyBiZWVuIHBlcmZvcm1lZCBvbiB0aGUgaW5wdXQgZmlsZSBzcGVjaWZpZWQsIGFuZCBldmVyeXRoaW5nIGFwcGVhcnMgdG8gYmUgY29ycmVjdC48YnIvPlRoaXMgaXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZXJlIGFyZSBubyBlcnJvcnMgaW4gdGhlIGZpbGUuJzsKJGxhbmdbJ2luZm9fcHJpY2VfYWRqdXN0bWVudCddID0gJ1ZhbGlkIHZhbHVlcyBhcmUgKy0qIy4jIyc7CiRsYW5nWydpbmZvX3B1YmxpY2ZpZWxkJ10gPSAnUHVibGljIGZpZWxkcyBhcmUgYXZhaWxhYmxlIGZvciB0aGUgcHVibGljIHRvIHNlZSc7CiRsYW5nWydsYWJlbCddID0gJ0xhYmVsJzsKJGxhbmdbJ2xhYmVsX3NraXAnXSA9ICdTa2lwJzsKJGxhbmdbJ2xhYmVsX292ZXJ3cml0ZSddID0gJ092ZXJ3cml0ZSc7CiRsYW5nWydsYXN0cGFnZSddID0gJz4+JzsKJGxhbmdbJ2xhc3RfbW9kaWZpZWQnXSA9ICdMYXN0IE1vZGlmaWVkJzsKJGxhbmdbJ2xvZ290ZXh0J10gPSAnU2Vjb25kIEltYWdlJzsKJGxhbmdbJ21heGxlbmd0aCddID0gJ01heGltdW0gbGVuZ3RoIDxlbT4oYXBwbGljYWJsZSBvbmx5IG9uIHRleHRib3ggZmllbGRzKTwvZW0+JzsKJGxhbmdbJ21vZGlmaWVkZGF0ZSddID0gJ01vZGlmaWVkIERhdGUnOwokbGFuZ1snbW9kdWxlX2Rlc2NyaXB0aW9uJ10gPSAnQSBtb2R1bGUgZm9yIG1hbmFnaW5nIGEgY2F0YWxvZyBvZiBwcm9kdWN0cywgdGhlaXIgcHJpY2UsIGltYWdlcywgZXRjLCBhbmQgZm9yIGFsbG93aW5nIHVzZXJzIHRvIGJ1aWxkIGEgY2FydCc7CiRsYW5nWyduYW1lJ10gPSAnTmFtZSc7CiRsYW5nWyduZWVkcGVybWlzc2lvbiddID0gJ1lvdSBkbyBub3QgaGF2ZSB0aGUgcmVxdWlyZWQgcGVybWlzc2lvbjogJXMnOwokbGFuZ1snbmV3X2NhdGVnb3J5X25hbWUnXSA9ICdOZXcgQ2F0ZWdvcnkgTmFtZSc7CiRsYW5nWyduZXh0cGFnZSddID0gJz4nOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydub25hbWVnaXZlbiddID0gJ05vIG5hbWUgd2FzIHN1cHBsaWVkJzsKJGxhbmdbJ25vbmUnXSA9ICdOb25lJzsKJGxhbmdbJ29mJ10gPSAnT2YnOwokbGFuZ1sncGFnZSddID0gJ1BhZ2UnOwokbGFuZ1sncGFnZV9vZiddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sncGFnZV9saW1pdCddID0gJ1BhZ2UgTGltaXQnOwokbGFuZ1sncGFyYW1fYWN0aW9uJ10gPSAnU3BlY2lmeSB0aGUgYmVoYXZpb3VyIG9mIHRoZSBtb2R1bGUuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+aGllcmFyY2h5IC0tIERpc3BsYXkgYSBwcm9kdWN0IGxpc3QgYnkgaGllcmFyY2h5PC9saT4NCiAgPGxpPmNhdGVnb3J5bGlzdCAtIERpc3BsYXkgYSBsaXN0IG9mIHByb2R1Y3QgY2F0ZWdvcmllczwvbGk+DQogIDxsaT48ZW0+ZGVmYXVsdDwvZW0+IC0gRGlzcGxheSBhIHN1bW1hcnkgb2YgcHJvZHVjdHM8L2xpPg0KICA8bGk+ZGV0YWlscyAtIERpc3BsYXkgYSBkZXRhaWwgdmlldyBvZiBhIHNpbmdsZSBwcm9kdWN0PC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5J10gPSAnV2hlbiB1c2VkIGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IHN1bW1hcnkgbW9kZSwgdGhpcyBwYXJhbWV0ZXIsIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgbmFtZSBvZiBhbiBleGlzdGluZyBjYXRlZ29yeSB3aWxsIGJlIHVzZWQgdG8gZGlzcGxheSBvbmx5IHRob3NlIHByb2R1Y3RzIHRoYXQgYXJlIGluIHRoYXQgY2F0ZWdvb3J5LiAoYSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBjYW4gYmUgc3VwcGxpZWQpJzsKJGxhbmdbJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJ10gPSAnVXNlZnVsIG9ubHkgd2l0aCB0aGUgY2F0ZWdvcnlsaXN0IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaW5kaWNhdGVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgZGlzcGxheS4gIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2RldGFpbHBhZ2UnXSA9ICdUaGlzIHNwZWNpZmllcyB0aGUgcGFnZWlkIG9yIGFsaWFzIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgZGV0YWlsIHJlcG9ydC4nOwokbGFuZ1sncGFyYW1fZGV0YWlsdGVtcGxhdGUnXSA9ICdUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBkZXRhaWwgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeSddID0gJ1VzZWZ1bCBvbmx5IGluIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoYXQgb25seSBpdGVtcyBpbiB0aGF0IGxvY2F0aW9uIG9mIHRoZSBoaWVyYXJjaHkgc2hvdWxkIGJlIGRpc3BsYXllZC4gIFdpbGRjYXJkIGNoYXJhY3RlciBjYW4gYmUgdXNlZCBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBwYXJlbnQvY2hpbGQgcmVsYXRpb25zaGlwcyBhcyB3ZWxsLiAgaS5lIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7dHJ1Y2tzKiYjMDM5O30gd2lsbCBjcmVhdGUgYSBzdW1tYXJ5IHJlcG9ydCBvZiBhbGwgdHJ1Y2tzLCBpbmNsdWRpbmcgdGhlIGNoaWxkcmVuIGluIHRoZSBoaWVyYXJjaHkuICBTaW1pbGFybHksIHtQcm9kdWN0cyBoaWVyYXJjaHk9JiMwMzk7KnRydWNrcyYjMDM5O30gd2lsbCBkaXNwbGF5IGEgc3VtbWFyeSByZXBvcnQgb2YgYWxsIHRydWNrcywgYW5kIGFsbCBwcm9kdWN0cyBiZWxvZ2luZyB0byBhbnkgcGFyZW50IGluIHRoZSBoaWVyYXJjaHkuJzsKJGxhbmdbJ3BhcmFtX2hpZXJhcmNoeXRlbXBsYXRlJ10gPSAnVGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSB0ZW1wbGF0ZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgaGllcmFyY2h5IGRpc3BsYXkuIElmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCwgdGhlbiB0aGUgY3VycmVudCBkZWZhdWx0IHRlbXBsYXRlIG9mIHRoYXQgdHlwZSBpcyB1c2VkLic7CiRsYW5nWydwYXJhbV9wYWdlbGltaXQnXSA9ICdVc2VmdWwgb25seSB3aXRoIHRoZSA8ZW0+ZGVmYXVsdDwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIGhvdyBtYW55IGl0ZW1zIHNob3VsZCBiZSBsaXN0ZWQgb24gZWFjaCBwYWdlLic7CiRsYW5nWydwYXJhbV9wYXJlbnQnXSA9ICdVc2VmdWwgb25seSBpbiB0aGUgPGVtPmhpZXJhcmNoeTwvZW0+IGFjdGlvbiwgdGhpcyBwYXJhbWV0ZXIgc3BlY2lmaWVzIHRoZSBoaWVyYXJjaHkgaWQgb2YgdGhlIHN0YXJ0aW5nIGxvY2F0aW9uIG9mIHRoZSByZXBvcnQuJzsKJGxhbmdbJ3BhcmFtX3Byb2R1Y3RpZCddID0gJ1VzZWZ1bCBvbmx5IHdpdGggdGhlIGRldGFpbCBhY3Rpb24sIHRoaXMgcGFyYW1ldGVyIGluZGljYXRlcyB3aGF0IHByb2R1Y3QgdG8gdXNlIGZvciB0aGUgZGlzcGxheS4nOwokbGFuZ1sncGFyYW1fc29ydG9yZGVyJ10gPSAnU3BlY2lmeSB0aGUgb3JkZXIgb2Ygc29ydGVkIGZpZWxkcyBpbiBzdW1tYXJ5IHZpZXcuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5hc2M8L3N0cm9uZz4gLS0gQXNjZW5kaW5nIG9yZGVyPC9saT4NCiAgPGxpPmRlc2MgLS0gRGVzY2VuZGluZyBvcmRlcjwvbGk+DQo8L3VsPic7CiRsYW5nWydwYXJhbV9zb3J0YnknXSA9ICdBcHBsaWNhYmxlIG9ubHkgaW4gc3VtbWFyeSBtb2RlLCB0aGlzIHBhcmFtZXRlciBkZXRlcm1pbmVzIHRoZSBzb3J0aW5nIG9mIHRoZSBvdXRwdXQgcHJvZHVjdHMuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOg0KPHVsPg0KICA8bGk+PHN0cm9uZz5wcm9kdWN0X25hbWU8L3N0cm9uZz48L2xpPg0KICA8bGk+aWQgLS0gVGhlIHByb2R1Y3QgaWQ8L2xpPg0KICA8bGk+d2VpZ2h0IC0tIFRoZSBwcm9kdWN0IHdlaWdodDwvbGk+DQogIDxsaT5wcmljZSAtLSBUaGUgcHJvZHVjdCBiYXNlIHByaWNlPC9saT4NCiAgPGxpPnN0YXR1cyAtLSBEcmFmdCBvciBwdWJsaXNoZWQ8L2xpPg0KICA8bGk+cmFuZG9tIC0tIERpc3BsYXkgaW4gcmFuZG9tIG9yZGVyIG9uIGVhY2ggcmVxdWVzdDwvbGk+DQogIDxsaT5jcmVhdGVkIC0tIFRoZSBjcmVhdGlvbiBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCiAgPGxpPm1vZGlmaWVkIC0tIFRoZSBtb2RpZmllZCBkYXRlIGZvciB0aGlzIGNvbXBhbnkgcmVjb3JkPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3BhcmFtX3N1bW1hcnl0ZW1wbGF0ZSddID0gJ1RoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgdGVtcGxhdGUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHN1bW1hcnkgbW9kZSBkaXNwbGF5LiAgSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBjdXJyZW50IGRlZmF1bHQgdGVtcGxhdGUgb2YgdGhhdCB0eXBlIGlzIHVzZWQuJzsKJGxhbmdbJ3BhcmVudCddID0gJ1BhcmVudCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBQcm9kdWN0cyBtb2R1bGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGluc3RhbGxlZCc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIFByb2R1Y3RzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkIGFsb25nIHdpdGggYWxsIGFzc29jaWF0ZWQgZGF0YSc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByZWZlcmVuY2VzJzsKJGxhbmdbJ3ByZXVuaW5zdGFsbCddID0gJ1JlbW92aW5nIHRoaXMgbW9kdWxlIHdpbGwgYWxzbyByZW1vdmUgYWxsIGFzc29jaWF0ZWQgZGF0YSwgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHByb2NlZWQ/JzsKJGxhbmdbJ3ByaWNlJ10gPSAnUHJpY2UnOwokbGFuZ1sncHJpY2VfYWRqdXN0bWVudCddID0gJ1ByaWNlIEFkanVzdG1lbnQnOwokbGFuZ1sncHJldnBhZ2UnXSA9ICc8JzsKJGxhbmdbJ3Byb2R1Y3QnXSA9ICdQcm9kdWN0JzsKJGxhbmdbJ3Byb2R1Y3RuYW1lJ10gPSAnUHJvZHVjdCBOYW1lJzsKJGxhbmdbJ3Byb2R1Y3RzJ10gPSAnUHJvZHVjdHMnOwokbGFuZ1sncHJvZHVjdF9oaWVyYXJjaHknXSA9ICdQcm9kdWN0IEhpZXJhcmNoeSc7CiRsYW5nWydwcm9kdWN0X21hbmFnZXInXSA9ICdQcm9kdWN0IE1hbmFnZXInOwokbGFuZ1sncHJvZ3Jlc3MnXSA9ICdQcm9ncmVzcyc7CiRsYW5nWydwcm9tcHQnXSA9ICdQcm9tcHQnOwokbGFuZ1sncHJvbXB0X2FsbG93ZWRfZmlsZXR5cGVzJ10gPSAnQWxsb3cgdXBsb2FkIG9mIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGZpbGUgdHlwZSBmaWVsZHMpJzsKJGxhbmdbJ3Byb21wdF9hbGxvd2VkX2ltYWdldHlwZXMnXSA9ICdBbGxvdyB1cGxvYWQgb2YgaW1hZ2VzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucyAoZm9yIGltYWdlIHR5cGUgZmllbGRzKSc7CiRsYW5nWydwcm9tcHRfYXV0b3RodW1ibmFpbCddID0gJ0F1dG9tYXRpY2FsbHkgY3JlYXRlIHRodW1ibmFpbHMgb2YgaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hdXRvdGh1bWJuYWlsX3NpemUnXSA9ICdNYXhpbXVtIHNpemUgKGxhcmdlc3QgZGltZW5zaW9uKSBvZiB0aGUgdGh1bWJuYWlsLic7CiRsYW5nWydwcm9tcHRfYXV0b3ByZXZpZXdpbWcnXSA9ICdBdXRvbWF0aWNhbGx5IGNyZWF0ZSBwcmV2aWV3IGltYWdlcyBvZiBpbWFnZXMnOwokbGFuZ1sncHJvbXB0X2F1dG9wcmV2aWV3aW1nX3NpemUnXSA9ICdNYXhpbXVtIHNpemUgKGxhcmdlc3QgZGltZW5zaW9uKSBvZiB0aGUgcHJldmlldyBpbWFnZS4nOwokbGFuZ1sncHJvbXB0X2F1dG93YXRlcm1hcmsnXSA9ICdBdXRvbWF0aWNhbGx5IHBsYWNlIHdhdGVybWFya3Mgb24gaW1hZ2VzJzsKJGxhbmdbJ3Byb21wdF9hcHBsaWNhYmxlJ10gPSAnRW5hYmxlIGJ5IGRlZmF1bHQgZm9yIGFsbCBuZXcgcHJvZHVjdHMnOwokbGFuZ1sncHJvbXB0X2JhdGNoc2l6ZSddID0gJ0JhdGNoIFNpemUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlJ10gPSAnQ2FydCBNb2R1bGUnOwokbGFuZ1sncHJvbXB0X2NhcnRfbW9kdWxlX3BhcmFtcyddID0gJ0NhcnQgTW9kdWxlIFBhcmFtZXRlcnMnOwokbGFuZ1sncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnXSA9ICdDcmVhdGUgQ2F0ZWdvcmllcyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlZmllbGRzJ10gPSAnQ3JlYXRlIFByb2R1Y3QgRmllbGRzPyc7CiRsYW5nWydwcm9tcHRfY3JlYXRlaGllcmFyY2h5J10gPSAnQ3JlYXRlIFByb2R1Y3QgSGllcmFyY2h5JzsKJGxhbmdbJ3Byb21wdF9jc3ZmaWxlJ10gPSAnVXBsb2FkIENTViBGaWxlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeWNvZGUnXSA9ICdDdXJyZW5jeSBDb2RlJzsKJGxhbmdbJ3Byb21wdF9jdXJyZW5jeXN5bWJvbCddID0gJ0N1cnJlbmN5IFN5bWJvbCc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF9zdGF0dXMnXSA9ICdCeSBkZWZhdWx0IGFsbCBuZXcgcHJvZHVjdHMgaGF2ZSB0aGlzIHN0YXR1cyc7CiRsYW5nWydwcm9tcHRfZGVmYXVsdF90YXhhYmxlJ10gPSAnQnkgZGVmYXVsdCBhbGwgbmV3IHByb2R1Y3RzIGFyZSB0YXhhYmxlJzsKJGxhbmdbJ3Byb21wdF9kZWxldGVwcm9kdWN0ZmlsZXMnXSA9ICdEZWxldGUgYW55IGZpbGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHJvZHVjdCB3aGVuIHRoZSBwcm9kdWN0IGlzIGRlbGV0ZWQ/JzsKJGxhbmdbJ3Byb21wdF9kZWxpbWl0ZXInXSA9ICdGaWVsZCBEZWxpbWl0ZXInOwokbGFuZ1sncHJvbXB0X2RldGFpbHBhZ2UnXSA9ICdEZWZhdWx0IERldGFpbCBQYWdlJzsKJGxhbmdbJ3Byb21wdF9kdXBsaWNhdGVwcm9kdWN0cyddID0gJ0hvdyB0byBoYW5kbGUgZHVwbGljYXRlIHByb2R1Y3RzPyc7CiRsYW5nWydwcm9tcHRfaGFuZGxlaW1hZ2VzJ10gPSAnSGFuZGxlIGltYWdlcz8nOwokbGFuZ1sncHJvbXB0X2ltYWdlcGF0aCddID0gJ0ltYWdlIFBhdGgnOwokbGFuZ1sncHJvbXB0X3N1bW1hcnlzb3J0b3JkZXInXSA9ICdEZWZhdWx0IFNvcnQgT3JkZXIgaW4gc3VtbWFyeSBtb2RlJzsKJGxhbmdbJ3Byb21wdF9zdW1tYXJ5c29ydGluZyddID0gJ0RlZmF1bHQgU29ydCBGaWVsZCBpbiBzdW1tYXJ5IG1vZGUnOwokbGFuZ1sncHJvbXB0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgU291cmNlJzsKJGxhbmdbJ3Byb21wdF91cmxwcmVmaXgnXSA9ICdQcmVmaXggdG8gdXNlIG9uIGFsbCBVUkxTIHRhcmdldGVkIHRvIHRoaXMgdGhpcyBtb2R1bGUnOwokbGFuZ1sncHJvbXB0X3dlaWdodHVuaXRzJ10gPSAnV2VpZ2h0IFVuaXRzJzsKJGxhbmdbJ3B1YmxpYyddID0gJ0lzIHRoaXMgYSBwdWJsaWMgZmllbGQ/JzsKJGxhbmdbJ3B1Ymxpc2hlZCddID0gJ1B1Ymxpc2hlZCc7CiRsYW5nWydyYW5kb20nXSA9ICdSYW5kb20nOwokbGFuZ1sncmVzZXR0b2ZhY3RvcnknXSA9ICdSZXNldCB0byBGYWN0b3J5IFZhbHVlcyc7CiRsYW5nWydyZXR1cm4nXSA9ICdSZXR1cm4nOwokbGFuZ1sncmV0dXJuX3RvX3RvcCddID0gJ1JldHVybiB0byB0aGUgdG9wIG9mIHRoZSB2aWV3JzsKJGxhbmdbJ3Jvb3QnXSA9ICdSb290JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NvcnRfYnknXSA9ICdTb3J0IEJ5JzsKJGxhbmdbJ3NvcnRfb3JkZXInXSA9ICdTb3J0IE9yZGVyJzsKJGxhbmdbJ3N0YXR1cyddID0gJ1N0YXR1cyc7CiRsYW5nWydzdWJtaXQnXSA9ICdTdWJtaXQnOwokbGFuZ1snc3VtbWFyeXRlbXBsYXRlcyddID0gJ1N1bW1hcnkgVGVtcGxhdGVzJzsKJGxhbmdbJ3N1bW1hcnl0ZW1wbGF0ZV9hZGRlZGl0J10gPSAnQWRkL0VkaXQgQSBTdW1tYXJ5IFRlbXBsYXRlJzsKJGxhbmdbJ3RheGFibGUnXSA9ICdUYXhhYmxlJzsKJGxhbmdbJ3Rlc3QnXSA9ICdUZXN0JzsKJGxhbmdbJ3RleHRhcmVhJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ3RleHRib3gnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ3RpdGxlX2J5aGllcmFyY2h5X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IEhpZXJhcmNoeSBSZXBvcnQgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY2F0ZWdvcnlsaXN0X2RmbHR0ZW1wbGF0ZSddID0gJ0RlZmF1bHQgTmV3IENhdGVnb3J5TGlzdCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9kZXRhaWxfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgRGV0YWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX3N1bW1hcnlfZGZsdHRlbXBsYXRlJ10gPSAnRGVmYXVsdCBOZXcgU3VtbWFyeSBUZW1wbGF0ZSc7CiRsYW5nWyd0eXBlJ10gPSAnVHlwZSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1sndXBsb2FkJ10gPSAnU2VsZWN0IGEgZmlsZSB0byB1cGxvYWQnOwokbGFuZ1sndmFsaWQnXSA9ICdWYWxpZCc7CiRsYW5nWyd2YWx1ZSddID0gJ1ZhbHVlJzsKJGxhbmdbJ3ZhbHVlcyddID0gJ1ZhbHVlcyc7CiRsYW5nWyd3YXRlcm1hcmtfbG9jYXRpb24nXSA9ICdXYXRlcm1hcmsgTG9jYXRpb24nOwokbGFuZ1snd2VpZ2h0J10gPSAnV2VpZ2h0JzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjg5NjE4NzYzMS4xMjM2Njc2MTIxLjEyNDI5MDQwODkuMTI0MjkxMDIyMC4yNSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyNDI5MDQwODkuMjQuOS51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vcHJvamVjdC9saXN0fHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/class.AdminSearch_sl.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFByb2R1Y3RzOwoKLyogbm90ZSwgY2xhc3MgY2Fubm90IGJlIG5hbWVkIEFkbWluU2VhcmNoX3NsYXZlIGFzIHRoZSBmaWxlbmFtZSB0aGVuIGNvbmZsaWN0cyB3aXRoIHRoYXQgaW4gdGhlIEFkbWluU2VhcmNoIG1vZHVsZSwgcmVzdWx0aW5nIGluIGFuIGVycm9yICovCmZpbmFsIGNsYXNzIEFkbWluU2VhcmNoX3NsIGV4dGVuZHMgXEFkbWluU2VhcmNoX3NsYXZlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbmFtZSgpCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRtaW5zZWFyY2hfbGJsJyk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9kZXNjcmlwdGlvbigpCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRtaW5zZWFyY2hfZGVzYycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBjaGVja19wZXJtaXNzaW9uKCkKICAgIHsKICAgICAgICAkdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwogICAgICAgIHJldHVybiBjaGVja19wZXJtaXNzaW9uKCR1c2VyaWQsJ01vZGlmeSBQcm9kdWN0cycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfbWF0Y2hlcygpCiAgICB7CiAgICAgICAgJG9yZWMgPSBbICd0aXRsZSc9Pm51bGwsJ2Rlc2NyaXB0aW9uJz0+bnVsbCwnZWRpdF91cmwnPT5udWxsLCd0ZXh0Jz0+bnVsbCBdOwogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICAgJGRiID0gJG1vZC0+R2V0RGIoKTsKICAgICAgICAkdGVybSA9ICclJy4kdGhpcy0+Z2V0X3RleHQoKS4nJSc7CgogICAgICAgICRmaWVsZGRlZnMgPSBccHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyh0cnVlKTsKICAgICAgICAkY29scyA9IFsgJ1AuKicgXTsKICAgICAgICAkam9pbnMgPSAkd2hlcmUgPSAkcGFybXMgPSBbXTsKICAgICAgICAkd2hlcmVbXSA9ICdQLnByb2R1Y3RfbmFtZSBMSUtFID8nOyAkcGFybXNbXSA9ICR0ZXJtOwogICAgICAgICR3aGVyZVtdID0gJ1AuZGV0YWlscyBMSUtFID8nOyAkcGFybXNbXSA9ICR0ZXJtOwoKICAgICAgICBpZiggY291bnQoJGZpZWxkZGVmcykgKSB7CiAgICAgICAgICAgICRpZHggPSAxOwogICAgICAgICAgICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggIWluX2FycmF5KCRvbmUtPnR5cGUsIFsndGV4dGJveCcsJ3RleHRhcmVhJywnaW1hZ2V0ZXh0JywnZmlsZSddKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJHRtcCA9ICJGViIuJGlkeDsKICAgICAgICAgICAgICAgICRmZGlkID0gJG9uZS0+aWQ7CiAgICAgICAgICAgICAgICAkY29sc1tdID0gIiR0bXAudmFsdWUiOwogICAgICAgICAgICAgICAgJGpvaW5zW10gPSAnTEVGVCBKT0lOICcuUHJvZHVjdFN0b3JhZ2U6OnByb2R1Y3RfZmllbGR2YWxzX3RhYmxlX25hbWUoKS4iICR0bXAgT04gUC5pZCA9ICR0bXAucHJvZHVjdF9pZCBBTkQgJHRtcC5maWVsZGRlZl9pZCA9ICRmZGlkIjsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gIiR0bXAudmFsdWUgTElLRSA/IjsKICAgICAgICAgICAgICAgICRwYXJtc1tdID0gJHRlcm07CiAgICAgICAgICAgICAgICAkaWR4Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGJ1aWxkIHRoZSBxdWVyeQogICAgICAgICRzcWwgPSAnU0VMRUNUICcuaW1wbG9kZSgnLCcsJGNvbHMpLicgRlJPTSAnLlByb2R1Y3RTdG9yYWdlOjpwcm9kdWN0X3RhYmxlX25hbWUoKS4nIFAnOwogICAgICAgIGlmKCBjb3VudCgkam9pbnMpICkgJHNxbCAuPSAnICcgLiBpbXBsb2RlKCcgJywkam9pbnMpOwogICAgICAgIGlmKCBjb3VudCgkd2hlcmUpICkgJHNxbCAuPSAnIFdIRVJFICcuaW1wbG9kZSgnIE9SICcsJHdoZXJlKTsKICAgICAgICAkc3FsIC49ICdPUkRFUiBCWSBQLm1vZGlmaWVkX2RhdGUgREVTQyc7CiAgICAgICAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHNxbCwgJHBhcm1zICk7CiAgICAgICAgaWYoICFpc19hcnJheSgkZGJyKSB8fCAhY291bnQoJGRicikgKSByZXR1cm47CgogICAgICAgICRvdXQgPSBbXTsKICAgICAgICBmb3JlYWNoKCAkZGJyIGFzICRyb3cgKSB7CiAgICAgICAgICAgIGZvcmVhY2goICRyb3cgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICAgICAgaWYoICgkcG9zID0gc3RycG9zKCR2YWwsJHRoaXMtPmdldF90ZXh0KCkpKSApIHsKICAgICAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIGZpcnN0IG9jY3VycmFuY2UKICAgICAgICAgICAgICAgICAgICAkc3RhcnQgPSBtYXgoMCwkcG9zIC0gNTApOwogICAgICAgICAgICAgICAgICAgICRlbmQgPSBtaW4oc3RybGVuKCR2YWwpLCRwb3MrNTApOwogICAgICAgICAgICAgICAgICAgICR0ZXh0ID0gc3Vic3RyKCR2YWwsJHN0YXJ0LCRlbmQtJHN0YXJ0KTsKICAgICAgICAgICAgICAgICAgICAkdGV4dCA9IGNtc19odG1sZW50aXRpZXMoJHRleHQpOwogICAgICAgICAgICAgICAgICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoJHRoaXMtPmdldF90ZXh0KCksJzxzcGFuIGNsYXNzPSJzZWFyY2hfb25lcmVzdWx0Ij4nLiR0aGlzLT5nZXRfdGV4dCgpLic8L3NwYW4+JywkdGV4dCk7CiAgICAgICAgICAgICAgICAgICAgJHRleHQgPSBzdHJfcmVwbGFjZSgiXHIiLCcnLCR0ZXh0KTsKICAgICAgICAgICAgICAgICAgICAkdGV4dCA9IHN0cl9yZXBsYWNlKCJcbiIsJycsJHRleHQpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZWMgPSAkb3JlYzsKICAgICAgICAgICAgJHJlY1sndGl0bGUnXSA9ICRyb3dbJ3Byb2R1Y3RfbmFtZSddOwogICAgICAgICAgICAkcmVjWydkZXNjcmlwdGlvbiddID0gXEFkbWluU2VhcmNoX3Rvb2xzOjpzdW1tYXJpemUoICRyb3dbJ2RldGFpbHMnXSApOwogICAgICAgICAgICAkcmVjWydlZGl0X3VybCddID0gJG1vZC0+Y3JlYXRlX3VybCggJ20xXycsICdlZGl0cHJvZHVjdCcsICcnLCBbICdjb21waWQnPT4kcm93WydpZCddIF0gKTsKICAgICAgICAgICAgJHJlY1sndGV4dCddID0gJHRleHQ7CiAgICAgICAgICAgICRvdXRbXSA9ICRyZWM7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQp9IC8vIGVuZCBvZiBjbGFzcw==]]></data>
	</file>
	<file>
	  <filename>/lib/class.DisplayableProduct.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFByb2R1Y3RzOwoKY2xhc3MgRGlzcGxheWFibGVQcm9kdWN0IGV4dGVuZHMgUHJvZHVjdAp7CiAgICBwcml2YXRlICRfZGRhdGEgPSBbICdub3RwcmV0dHknPT5udWxsLCAnaGllcnBhZ2UnPT5udWxsLCAnZGV0YWlscGFnZSc9Pm51bGwsICdkZXRhaWx0ZW1wbGF0ZSc9Pm51bGwsICdjdXJwYWdlJz0+bnVsbCBdOwogICAgcHJpdmF0ZSAkX2NhY2hlX2ZpZWxkczsKICAgIHByaXZhdGUgJF9jYWNoZV9jYXRzOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCggUHJvZHVjdCAkaW4sIGFycmF5ICRwYXJhbXMgPSBudWxsKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICAgJHRoaXMtPmZyb21fYXJyYXkoICRpbi0+dG9fYXJyYXkoKSApOwogICAgICAgIGlmKCAhaXNfbnVsbCgkcGFyYW1zKSApIHsKICAgICAgICAgICAgJHRoaXMtPl9kZGF0YVsnY3VycGFnZSddID0gXGNnZV9wYXJhbTo6Z2V0X2ludCgkcGFyYW1zLCdjdXJwYWdlJyk7CiAgICAgICAgICAgICR0aGlzLT5fZGRhdGFbJ2RldGFpbHBhZ2UnXSA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnZGV0YWlscGFnZScpOwogICAgICAgICAgICAkdGhpcy0+X2RkYXRhWydub3RwcmV0dHknXSA9IFxjZ2VfcGFyYW06OmdldF9zdHJpbmcoJHBhcmFtcywnbm90cHJldHR5Jyk7CiAgICAgICAgICAgICR0aGlzLT5fZGRhdGFbJ2hpZXJwYWdlJ10gPSBcY2dlX3BhcmFtOjpnZXRfc3RyaW5nKCRwYXJhbXMsJ2hpZXJwYWdlJyk7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X2RkYXRhWydjdXJwYWdlJ10gPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignQW4gaW52YWxpZCBjdXJwYWdlIHdhcyBwYXNzZWQgdG8nLl9fTUVUSE9EX18pOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19nZXQoJGtleSkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwoKICAgICAgICBzd2l0Y2goICRrZXkgKQogICAgICAgIHsKICAgICAgICBjYXNlICdjdXJwYWdlJzoKICAgICAgICAgICAgcmV0dXJuIChpbnQpICR0aGlzLT5fZGRhdGFbJ2N1cnBhZ2UnXTsKCiAgICAgICAgY2FzZSAnZGV0YWlscGFnZSc6CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X2RkYXRhWydkZXRhaWxwYWdlJ10gPiAwICkgcmV0dXJuICR0aGlzLT5fZGRhdGFbJ2RldGFpbHBhZ2UnXTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGRhdGFbJ2N1cnBhZ2UnXTsKCiAgICAgICAgY2FzZSAnZGV0YWlsdGVtcGxhdGUnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9kZGF0YVsnZGV0YWlsdGVtcGxhdGUnXTsKCiAgICAgICAgY2FzZSAncHJpY2UnOgogICAgICAgICAgICAkb3V0ID0gJG1vZC0+Z2V0X2FkanVzdGVkX3ByaWNlKCAkdGhpcywgcGFyZW50OjpfX2dldCgncHJpY2UnKSApOwogICAgICAgICAgICByZXR1cm4gJG91dDsKCiAgICAgICAgY2FzZSAnZmlsZV9sb2NhdGlvbic6CiAgICAgICAgICAgIHJldHVybiBccHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3VybCggJHRoaXMtPmlkICk7CgogICAgICAgIGNhc2UgJ2hpZXJhcmNoeV9pZCc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+Zmlyc3RfaGllcmFyY2h5OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAnaGllcnBhZ2UnOgogICAgICAgIGNhc2UgJ2hpZXJhcmNoeV9wYWdlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGRhdGFbJ2hpZXJwYWdlJ107CgogICAgICAgIGNhc2UgJ2JyZWFkY3J1bWInOgogICAgICAgICAgICBpZiggKCR0bXAgPSAkdGhpcy0+aGllcmFyY2h5X2lkKSApIHJldHVybiBcaGllcmFyY2h5X29wczo6Z2V0X2JyZWFkY3J1bWIoJ3Byb2QnLCR0bXAsJHRoaXMtPmhpZXJhcmNoeV9wYWdlKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2RldGFpbF9wYWdlJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fZGRhdGFbJ2RldGFpbHBhZ2UnXTsKCiAgICAgICAgY2FzZSAnZGV0YWlsX3VybCc6CiAgICAgICAgY2FzZSAnY2Fub25pY2FsJzoKICAgICAgICAgICAgJHByZXR0eSA9ICghJHRoaXMtPm5vdHByZXR0eSB8fCBzdHJwb3MoJHRoaXMtPm5vdHByZXR0eSwnZGV0YWlscycpICE9PSBGQUxTRSkgPyAkdGhpcy0+cHJldHR5X2RldGFpbF91cmwoKSA6IG51bGw7CiAgICAgICAgICAgICRwYXJtcyA9IFsgJ3Byb2R1Y3RpZCc9PiR0aGlzLT5pZCBdOwogICAgICAgICAgICBpZiggJHRoaXMtPmRldGFpbHRlbXBsYXRlICkgJHBhcm1zWydkZXRhaWx0ZW1wbGF0ZSddID0gJHRoaXMtPmRldGFpbHRlbXBsYXRlOwogICAgICAgICAgICByZXR1cm4gJG1vZC0+Y3JlYXRlX3VybCggJ3BfJywgJ2RldGFpbHMnLCAkdGhpcy0+ZGV0YWlscGFnZSwgJHBhcm1zLCBmYWxzZSwgZmFsc2UsICRwcmV0dHkgKTsKCiAgICAgICAgY2FzZSAnZmllbGRzJzoKICAgICAgICAgICAgLy8gdGhpcyBpcyBhIG1lcmdlIG9mIHRoZSBmaWVsZGRlZnMgYW5kIHByb2R1Y3RzLgogICAgICAgICAgICBpZiggISR0aGlzLT5fY2FjaGVfZmllbGRzICkgewogICAgICAgICAgICAgICAgJGZpZWxkdmFscyA9ICR0aGlzLT5maWVsZF92YWxzOwogICAgICAgICAgICAgICAgaWYoICFjb3VudCgkZmllbGR2YWxzKSApIHJldHVybjsKICAgICAgICAgICAgICAgICRkZWZzID0gXHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRmaWVsZHZhbHMgYXMgJGZpZCA9PiAkdmFsdWUgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICFpc3NldCgkZGVmc1skZmlkXSkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkcmVjID0gJGRlZnNbJGZpZF07CiAgICAgICAgICAgICAgICAgICAgJHJlYy0+dmFsdWUgPSAkdmFsdWU7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9jYWNoZV9maWVsZHNbJHJlYy0+bmFtZV0gPSAkcmVjOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2NhY2hlX2ZpZWxkczsKCiAgICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6CiAgICAgICAgICAgIC8vIHRoaXMgaXMgYSBtZXJnZSBvZiB0aGUgZnVsbCBjYXRlZ29yeSBpbmZvCiAgICAgICAgICAgIGlmKCAhJHRoaXMtPl9jYWNoZV9jYXRzICkgewogICAgICAgICAgICAgICAgJG1lbWJlcl9jYXRzID0gcGFyZW50OjpfX2dldCgnY2F0ZWdvcmllcycpOwogICAgICAgICAgICAgICAgaWYoICEkbWVtYmVyX2NhdHMgKSByZXR1cm47CiAgICAgICAgICAgICAgICAkYWxsY2F0cyA9IFxwcm9kdWN0X3V0aWxzOjpnZXRfZnVsbF9jYXRlZ29yaWVzKCk7CiAgICAgICAgICAgICAgICBpZiggISRhbGxjYXRzICkgcmV0dXJuOwogICAgICAgICAgICAgICAgZm9yZWFjaCggJG1lbWJlcl9jYXRzIGFzICRjYXRpZCApIHsKICAgICAgICAgICAgICAgICAgICBpZiggIWlzc2V0KCRhbGxjYXRzWyRjYXRpZF0pICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgJHJlYyA9ICRhbGxjYXRzWyRjYXRpZF07CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9jYWNoZV9jYXRzW10gPSAkcmVjOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2NhY2hlX2NhdHM7CgogICAgICAgIGNhc2UgJ2FsYnVtJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5nZXRfZXh0cmEoJ2FsYnVtJyk7CgogICAgICAgIGNhc2UgJ3Byb2R1Y3RfbmFtZSc6CiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ6Ol9fZ2V0KCduYW1lJyk7CgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIHJldHVybiAgcGFyZW50OjpfX2dldCgka2V5KTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9faXNzZXQoJGtleSkKICAgIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvLyBjcmVhdGVzIGEgcHJvZHVjdCBkZXRhaWwgdXJsLgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHByZXR0eV9kZXRhaWxfdXJsKCkKICAgIHsKICAgICAgICAkbW9kdWxlID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAgICRkYiA9IFxDbXNBcHA6OmdldF9pbnN0YW5jZSgpLT5HZXREQigpOwoKICAgICAgICAkcHJldHR5X3VybCA9IG51bGw7CiAgICAgICAgJHByZWZpeCA9ICRtb2R1bGUtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcpOwogICAgICAgIGlmKCAkdGhpcy0+dXJsICkgewogICAgICAgICAgICAvLyBpZiB3ZSBoYXZlIGEgdXJsIHNsdWcgd2UganVzdCBwcmVwZW5kIHRoZSBwcmVmaXggKGlmIHdlIGhhdmUgYW55KQogICAgICAgICAgICBpZiggJHByZWZpeCAmJiAhZW5kc3dpdGgoJHByZWZpeCwnLycpICkgJHByZWZpeCAuPSAnLyc7CiAgICAgICAgICAgICRwcmV0dHlfdXJsID0gInskcHJlZml4fXskdGhpcy0+dXJsfSI7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBubyB1cmxzbHVnLCBzbyBidWlsZCB0aGUgdXJsIGJhc2VkIG9uIHRoZSBwcmVmaXgsIHRoZSBhbGlhcywgYW5kIHRoZSBoaWVyYXJjaHkgc3R1ZmYuCiAgICAgICAgICAgICRwcmV0dHlfdXJsID0gKCRwcmVmaXgpPyRwcmVmaXg6JG1vZHVsZS0+R2V0TmFtZSgpOwogICAgICAgICAgICAkdXNlcmV0dXJuaWQgPSAoKGludCkgJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScpIDwgMSApOwogICAgICAgICAgICAkZG9uZSA9IGZhbHNlOwogICAgICAgICAgICBpZiggJG1vZHVsZS0+R2V0UHJlZmVyZW5jZSgndXNlaGllcnBhdGh1cmxzJywwKSAmJiAhZW1wdHkoJHRoaXMtPmFsaWFzKSAmJiAkdGhpcy0+aGllcmFyY2h5X2lkID4gMCApIHsKICAgICAgICAgICAgICAgICR0bXAgPSBcaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9pbmZvKCR0aGlzLT5oaWVyYXJjaHlfaWQpOwogICAgICAgICAgICAgICAgaWYoICR0bXAgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcDIgPSBleHBsb2RlKCcgfCAnLCR0bXBbJ2xvbmdfbmFtZSddKTsKICAgICAgICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wMik7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXAyWyRpXSA9IG11bmdlX3N0cmluZ190b191cmwoJHRtcDJbJGldKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHBhdGggPSBpbXBsb2RlKCcvJywkdG1wMik7CgogICAgICAgICAgICAgICAgICAgICRwcmV0dHlfdXJsIC49ICcvZGV0YWlscyc7CiAgICAgICAgICAgICAgICAgICAgaWYoICR1c2VyZXR1cm5pZCApICRwcmV0dHlfdXJsIC49ICIvJHJldHVybmlkIjsKICAgICAgICAgICAgICAgICAgICBpZiggIWVtcHR5KCRwYXRoKSApICRwcmV0dHlfdXJsIC49ICIvJHBhdGgiOwogICAgICAgICAgICAgICAgICAgICRwcmV0dHlfdXJsIC49ICIvIi4kdGhpcy0+YWxpYXM7CiAgICAgICAgICAgICAgICAgICAgJGRvbmUgPSB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggISRkb25lICkgewogICAgICAgICAgICAgICAgLy8gb2xkIHByZXR0eSB1cmxzLi4uICIkcHJlZml4L2lkLyRyZXR1cm5pZC8kc29tZXRoaW5nIgogICAgICAgICAgICAgICAgJHByZXR0eV91cmwgLj0gJy8nLiR0aGlzLT5pZDsKICAgICAgICAgICAgICAgIGlmKCAkdXNlcmV0dXJuaWQgKSAkcHJldHR5X3VybCAuPSAnLycuJHRoaXMtPmRldGFpbHBhZ2U7CiAgICAgICAgICAgICAgICAkYWxpYXMgPSAkdGhpcy0+YWxpYXM7CiAgICAgICAgICAgICAgICBpZiggZW1wdHkoJGFsaWFzKSApICRhbGlhcyA9IFxwcm9kdWN0X3V0aWxzOjptYWtlX2FsaWFzKCR0aGlzLT5uYW1lKTsKICAgICAgICAgICAgICAgICRwcmV0dHlfdXJsIC49ICIvJGFsaWFzIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHByZXR0eV91cmw7CiAgICB9Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/class.hierarchy_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGhpZXJhcmNoeV9vcHMKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9jYWNoZV9sb2FkZWQ7CiAgICBwcml2YXRlIHN0YXRpYyAkX2FsbGhpZXJhcmNoeTsKCiAgICBwcml2YXRlIHN0YXRpYyBmdW5jdGlvbiBfdXBkYXRlX2hpZXJhcmNoeV9jb3VudHMoJiRkYXRhLCRwYXJlbnRfaWQgPSAtMSkKICAgIHsKICAgICAgICAkbiA9IDA7CiAgICAgICAgZm9yZWFjaCggJGRhdGEgYXMgJiRyZWMgKSB7CiAgICAgICAgICAgIGlmKCAhaXNzZXQoJHJlY1snZGlyZWN0X2NvdW50J10pICkgY29udGludWU7CiAgICAgICAgICAgIGlmKCAkcmVjWydwYXJlbnRfaWQnXSAhPSAkcGFyZW50X2lkICkgY29udGludWU7CiAgICAgICAgICAgICRyZWNbJ2NvdW50J10gPSAkcmVjWydkaXJlY3RfY291bnQnXTsKICAgICAgICAgICAgJHJlY1snY291bnQnXSArPSBzZWxmOjpfdXBkYXRlX2hpZXJhcmNoeV9jb3VudHMoJGRhdGEsJHJlY1snaWQnXSk7CiAgICAgICAgICAgICRuICs9ICRyZWNbJ2NvdW50J107CiAgICAgICAgfQogICAgICAgIHJldHVybiAkbjsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9hbGxfaGllcmFyY2h5X2luZm8oJGNvdW50ID0gRkFMU0UsICRhbGwgPSBUUlVFKQogICAgewogICAgICAgIGlmKCAhIHNlbGY6OiRfY2FjaGVfbG9hZGVkICkgewogICAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIHBoLiosY291bnQocHIuaWQpIEFTIGRpcmVjdF9jb3VudCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IHBoCiAgICAgICAgICAgICAgICAgIExFRlQgT1VURVIgSk9JTiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgcHRoCiAgICAgICAgICAgICAgICAgIE9OIHBoLmlkID0gcHRoLmhpZXJhcmNoeV9pZAogICAgICAgICAgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cyBwcgogICAgICAgICAgICAgICAgICBPTiBwdGgucHJvZHVjdF9pZCA9IHByLmlkJzsKICAgICAgICAgICAgaWYoICEkYWxsICkgJHF1ZXJ5IC49ICcgQU5EIHByLnN0YXR1cyA9ICcuJGRiLT5xc3RyKCdwdWJsaXNoZWQnKTsKICAgICAgICAgICAgJHF1ZXJ5IC49ICcgR1JPVVAgQlkgcGguaWQgT1JERVIgQlkgcGguaGllcmFyY2h5JzsKICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0QWxsKCRxdWVyeSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApICR0bXAgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnaWQnKTsKICAgICAgICAgICAgc2VsZjo6X3VwZGF0ZV9oaWVyYXJjaHlfY291bnRzKCR0bXApOwogICAgICAgICAgICBzZWxmOjokX2FsbGhpZXJhcmNoeSA9ICR0bXA7CiAgICAgICAgICAgIHNlbGY6OiRfY2FjaGVfbG9hZGVkID0gVFJVRTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmOjokX2FsbGhpZXJhcmNoeTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9oaWVyYXJjaHlfaW5mbygkaGllcmFyY2h5X2lkKQogICAgewogICAgICAgICRoaWVyYXJjaHlfaWQgPSAoaW50KSAkaGllcmFyY2h5X2lkOwogICAgICAgICRhbGxpbmZvID0gc2VsZjo6Z2V0X2FsbF9oaWVyYXJjaHlfaW5mbygpOwogICAgICAgIGlmKCBpc19hcnJheSgkYWxsaW5mbykgJiYgY291bnQoJGFsbGluZm8pICkgewogICAgICAgICAgICBpZiggaXNzZXQoJGFsbGluZm9bJGhpZXJhcmNoeV9pZF0pICkgcmV0dXJuICRhbGxpbmZvWyRoaWVyYXJjaHlfaWRdOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9oaWVyYXJjaHlfcGF0aCgkaGllcl9pZCkKICAgIHsKICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICB3aGlsZSggJGhpZXJfaWQgPiAwICkgewogICAgICAgICAgICAkb3V0W10gPSAkaGllcl9pZDsKCiAgICAgICAgICAgICRoaWVyX2luZm8gPSBzZWxmOjpnZXRfaGllcmFyY2h5X2luZm8oJGhpZXJfaWQpOwogICAgICAgICAgICBpZiggISRoaWVyX2luZm8gKSBicmVhazsKCiAgICAgICAgICAgICRoaWVyX2lkID0gKGludCkgJGhpZXJfaW5mb1sncGFyZW50X2lkJ107CiAgICAgICAgICAgIGlmKCAkaGllcl9pZCA8IDAgKSBicmVhazsKICAgICAgICB9CgogICAgICAgIHJldHVybiBhcnJheV9yZXZlcnNlKCRvdXQpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9icmVhZGNydW1iKCRpZCwkaGllcl9pZCwkaGllcnBhZ2UsJGRlbGltID0gJyAmcmFxdW87ICcpCiAgICB7CiAgICAgICAgJGhpZXJhcmNoeV9wYXRoID0gc2VsZjo6Z2V0X2hpZXJhcmNoeV9wYXRoKCRoaWVyX2lkKTsKICAgICAgICBpZiggISRoaWVyYXJjaHlfcGF0aCApIHJldHVybiBGQUxTRTsKCiAgICAgICAgJG1vZHVsZSA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAgICR0bXAgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICRoaWVyYXJjaHlfcGF0aCBhcyAkb25lICkgewogICAgICAgICAgICAkaW5mbyA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkb25lKTsKICAgICAgICAgICAgJGxpbmsgPSAkbW9kdWxlLT5DcmVhdGVMaW5rKCRpZCwnaGllcmFyY2h5JywkaGllcnBhZ2UsJGluZm9bJ25hbWUnXSxhcnJheSgncGFyZW50Jz0+JGluZm9bJ2lkJ10pKTsKICAgICAgICAgICAgJHRtcFtdID0gJGxpbms7CiAgICAgICAgfQogICAgICAgIGlmKCAkZGVsaW0gIT0gJycgKSByZXR1cm4gaW1wbG9kZSgkZGVsaW0sJHRtcCk7CiAgICAgICAgcmV0dXJuICR0bXA7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmxhdF9saXN0KCRmdWxsID0gVFJVRSwkaWQgPSAncHJvZCcsJHJldHVybmRpZCA9ICcnKQogICAgewogICAgICAgIGlmKCAhZnVuY3Rpb25fZXhpc3RzKCdfX2hpZXJ0cmVlX2NiJykgKSB7CiAgICAgICAgICAgIGZ1bmN0aW9uIF9faGllcnRyZWVfY2IoJiRyb3cpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGdsb2JhbCAkaWQsJHJldHVybmlkLCRlbnRyeWFycmF5OwogICAgICAgICAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAgICAgICAgICAgaWYoIGlzX29iamVjdCgkbW9kKSApIHsKICAgICAgICAgICAgICAgICAgICAkcm93WydlZGl0X3VybCddID0gJG1vZC0+Q3JlYXRlVVJMKCRpZCwnYWRtaW5fZWRpdF9oaWVyYXJjaHlfaXRlbScsICRyZXR1cm5pZCwgYXJyYXkoJ2hpZXJhcmNoeV9pZCc9PiRyb3dbJ2lkJ10pKTsKICAgICAgICAgICAgICAgICAgICAkcm93WydkZXB0aCddID0gY291bnQoZXhwbG9kZSgnLicsICRyb3dbJ2hpZXJhcmNoeSddKSkgLSAxOwogICAgICAgICAgICAgICAgICAgICRyb3dbJ2VkaXRfbGluayddID0gJG1vZC0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZWRpdF9oaWVyYXJjaHlfaXRlbScsICRyZXR1cm5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdlZGl0X2hpZXJhcmNoeV9pdGVtJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2hpZXJhcmNoeV9pZCc9PiRyb3dbJ2lkJ10pKTsKICAgICAgICAgICAgICAgICAgICAkcm93WydkZWxldGVfbGluayddID0gJG1vZC0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZGVsZXRlX2hpZXJhcmNoeV9pdGVtJywgJHJldHVybmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygnZGVsZXRlX2hpZXJhcmNoeV9pdGVtJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2hpZXJhcmNoeV9pZCc9PiRyb3dbJ2lkJ10pLCcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygnY29uZmlybV9kZWxldGVfaGllcmFyY2h5X25vZGUnKSk7CgogICAgICAgICAgICAgICAgICAgICRlbnRyeWFycmF5W10gPSAkcm93OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBfX2hpZXJ0cmVlX2ZsYXR0ZW4oJHRyZWUsJiRlbnRyeWFycmF5KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJHRyZWUpICYmIGNvdW50KCR0cmVlKSApIHsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdHJlZSBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICAgICAkY29weSA9ICRvbmU7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0KCRjb3B5WydjaGlsZHJlbiddKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGVudHJ5YXJyYXlbXSA9ICRjb3B5OwogICAgICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJG9uZVsnY2hpbGRyZW4nXSkgKSBfX2hpZXJ0cmVlX2ZsYXR0ZW4oJG9uZVsnY2hpbGRyZW4nXSwkZW50cnlhcnJheSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IC8vIGZ1bmN0aW9uLgogICAgICAgIH0KCiAgICAgICAgJGVudHJ5YXJyYXkgPSBhcnJheSgpOwogICAgICAgICRjYiA9ICcnOwogICAgICAgIGlmKCAkZnVsbCApICRjYiA9ICdfX2hpZXJ0cmVlX2NiJzsKICAgICAgICAkdHJlZSA9IHByb2R1Y3RfdXRpbHM6OmhpZXJhcmNoeV9nZXRfdHJlZSgtMSwwLCRjYik7CiAgICAgICAgX19oaWVydHJlZV9mbGF0dGVuKCR0cmVlLCRlbnRyeWFycmF5KTsKICAgICAgICByZXR1cm4gJGVudHJ5YXJyYXk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBidWlsZF9oaWVyYXJjaHlfbGlzdCgpCiAgICB7CiAgICAgICAgJHRtcCA9IGhpZXJhcmNoeV9vcHM6OmdldF9mbGF0X2xpc3QoRkFMU0UpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgICAkbGlzdCA9IGFycmF5KC0xPT4kbW9kLT5MYW5nKCdub25lJykpOwogICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSAmJiBjb3VudCgkdG1wKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJGxpc3RbJG9uZVsnaWQnXV0gPSAkb25lWydsb25nX25hbWUnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGxpc3Q7CiAgICB9Cn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lib/class.importImageHandler.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIGltcG9ydEltYWdlSGFuZGxlcgp7CiAgdmFyICRfbW9kdWxlOwogIHZhciAkX3NyY3BhdGg7CiAgdmFyICRfZGVzdHBhdGg7CiAgdmFyICRfdW5pcXVlX25hbWVzOwoKICBmdW5jdGlvbiBpbXBvcnRJbWFnZUhhbmRsZXIoJiRtb2QpCiAgewogICAgJHRoaXMtPl9tb2R1bGUgPSAkbW9kOwogICAgJHRoaXMtPl91bmlxdWVfbmFtZXMgPSAwOwogIH0KCgogIGZ1bmN0aW9uIHNldFVuaXF1ZU5hbWVzKCR2YWx1ZSA9IDEpCiAgewogICAgJHRoaXMtPl91bmlxdWVfbmFtZXMgPSAoaW50KSR2YWx1ZTsKICB9CgoKICBmdW5jdGlvbiBzZXRTb3VyY2VMb2NhdGlvbigkcGF0aCkKICB7CiAgICBpZiggaXNfZGlyKCRwYXRoKSApCiAgICAgIHsKCSR0aGlzLT5fc3JjcGF0aCA9ICRwYXRoOwogICAgICB9CiAgfQoKCiAgZnVuY3Rpb24gc2V0RGVzdGluYXRpb25CYXNlKCRwYXRoKQogIHsKICAgICR0aGlzLT5fZGVzdHBhdGggPSAkcGF0aDsKICB9CgoKICBmdW5jdGlvbiBoYW5kbGVJbWFnZSgkcHJvZHVjdF9pZCwkZmlsZW5hbWUpCiAgewogICAgJGRlc3RwYXRoID0gY21zX2pvaW5fcGF0aCgkdGhpcy0+X2Rlc3RwYXRoLCdwcm9kdWN0XycuJHByb2R1Y3RfaWQpOwogICAgJG1vZCA9JiAkdGhpcy0+X21vZHVsZTsKICAgIGNnZV9kaXI6Om1rZGlycigkZGVzdHBhdGgpOwogICAgaWYoICFpc19kaXIoJGRlc3RwYXRoKSApIHJldHVybiBGQUxTRTsKCiAgICAkZXh0ID0gc3Vic3RyKCRmaWxlbmFtZSwgc3RycnBvcygkZmlsZW5hbWUsICcuJykgKyAxKTsKICAgICRhbGxvd2VkID0gZXhwbG9kZSgnLCcsJG1vZC0+R2V0UHJlZmVyZW5jZSgnYWxsb3dlZF9pbWFnZXR5cGVzJykpOwogICAgaWYoICFpbl9hcnJheSgkZXh0LCRhbGxvd2VkKSApIHJldHVybiBGQUxTRTsKCiAgICAkc3Jjc3BlYyA9IGNtc19qb2luX3BhdGgoJHRoaXMtPl9zcmNwYXRoLCRmaWxlbmFtZSk7CiAgICBpZiggIWZpbGVfZXhpc3RzKCRzcmNzcGVjKSApIHJldHVybiBGQUxTRTsKCiAgICAkcG9zdGZpeCA9IDA7CiAgICAkZm5hbWUgPSBzdWJzdHIoJGZpbGVuYW1lLDAsc3RybGVuKCRmaWxlbmFtZSktc3RybGVuKCRleHQpKTsKICAgICRkZXN0c3BlYyA9IGNtc19qb2luX3BhdGgoJGRlc3RwYXRoLCRmaWxlbmFtZSk7CiAgICB3aGlsZSggZmlsZV9leGlzdHMoJGRlc3RzcGVjKSAmJiAkdGhpcy0+X3VuaXF1ZV9uYW1lcyAmJiAoJHBvc3RmaXggPCAxMDApICkKICAgICAgewoJJHBvc3RmaXgrKzsKCSRkZXN0c3BlYyA9IGNtc19qb2luX3BhdGgoJGRlc3RwYXRoLCRmbmFtZS4nXycuJHBvc3RmaXguJGV4dCk7CiAgICAgIH0KICAgIGlmKCBmaWxlX2V4aXN0cygkZGVzdHNwZWMpICkgcmV0dXJuIEZBTFNFOwoKICAgIC8vIHdlIGhhdmUgdGhlIHNvdXJjZSBuYW1lLCBhbmQgZGVzdGluYXRpb24gbmFtZQogICAgLy8gY29weSB0aGUgZmlsZQogICAgQGNvcHkoJHNyY3NwZWMsJGRlc3RzcGVjKTsKICAgIGlmKCAhZmlsZV9leGlzdHMoJGRlc3RzcGVjKSApIHJldHVybiBGQUxTRTsKICAgIHJldHVybiBiYXNlbmFtZSgkZGVzdHNwZWMpOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.PriceAdjuster.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFByb2R1Y3RzOwoKYWJzdHJhY3QgY2xhc3MgUHJpY2VBZGp1c3Rlcgp7CiAgICBhYnN0cmFjdCBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FkanVzdGVkX3ByaWNlKFxQcm9kdWN0c1xQcm9kdWN0ICRwcm9kdWN0LCAkaW5fcHJpY2UgKTsKICAgIGFic3RyYWN0IHB1YmxpYyBmdW5jdGlvbiB1bmFkanVzdF9wcmljZShcUHJvZHVjdHNcUHJvZHVjdCAkcHJvZHVjdCwgJGluX3ByaWNlICk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/lib/class.Product.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFByb2R1Y3RzOwoKY2xhc3MgUHJvZHVjdAp7CiAgICBjb25zdCBTVEFUVVNfRElTQUJMRUQgPSAnZGlzYWJsZWQnOwogICAgY29uc3QgU1RBVFVTX0RSQUZUID0gJ2RyYWZ0JzsKICAgIGNvbnN0IFNUQVRVU19QVUJMSVNIRUQgPSAncHVibGlzaGVkJzsKCiAgICBwcml2YXRlICRfZGF0YSA9IFsnaWQnPT5udWxsLCAnbmFtZSc9Pm51bGwsICdkZXRhaWxzJz0+bnVsbCwgJ3ByaWNlJz0+bnVsbCwgJ2NyZWF0ZV9kYXRlJz0+bnVsbCwgJ21vZGlmaWVkX2RhdGUnPT5udWxsLAogICAgICAgICAgICAgICAgICAgICAgJ3RheGFibGUnPT5udWxsLCAnZGlnaXRhbCc9PmZhbHNlLCAnc3RhdHVzJz0+c2VsZjo6U1RBVFVTX0RSQUZULCAnd2VpZ2h0Jz0+bnVsbCwgJ3NrdSc9Pm51bGwsICdhbGlhcyc9Pm51bGwsICd1cmwnPT5udWxsLAogICAgICAgICAgICAgICAgICAgICAgJ293bmVyJz0+bnVsbCBdOwogICAgcHJpdmF0ZSAkX2NhdGVnb3JpZXMgPSBbXTsKICAgIHByaXZhdGUgJF9oaWVyYXJjaGllcyA9IFtdOwogICAgcHJpdmF0ZSAkX2ZpZWxkX3ZhbHMgPSBbXTsKICAgIHByaXZhdGUgJF9hdHRyaWJzID0gW107CiAgICBwcml2YXRlICRfZXh0cmEgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jbG9uZSgpCiAgICB7CiAgICAgICAgJG9sZF9pZCA9IChpbnQpICR0aGlzLT5fZGF0YVsnaWQnXTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2lkJ10gPSBudWxsOwogICAgICAgIGZvcmVhY2goICR0aGlzLT5fYXR0cmlicyBhcyAkYXR0cmliICkgewogICAgICAgICAgICAkYXR0cmliLT5zZXRfcHJvZHVjdF9pZChudWxsKTsKICAgICAgICAgICAgJGF0dHJpYi0+c2V0X3NrdShudWxsKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2NyZWF0ZV9kYXRlJzoKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnbW9kaWZpZWRfZGF0ZSc6CiAgICAgICAgY2FzZSAnb3duZXInOgogICAgICAgICAgICByZXR1cm4gKGludCkgJHRoaXMtPl9kYXRhWyRrZXldOwoKICAgICAgICBjYXNlICduYW1lJzoKICAgICAgICBjYXNlICdza3UnOgogICAgICAgIGNhc2UgJ2FsaWFzJzoKICAgICAgICBjYXNlICd1cmwnOgogICAgICAgIGNhc2UgJ2RldGFpbHMnOgogICAgICAgIGNhc2UgJ3N0YXR1cyc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CgogICAgICAgIGNhc2UgJ3ByaWNlJzoKICAgICAgICBjYXNlICd3ZWlnaHQnOgogICAgICAgICAgICByZXR1cm4gKGZsb2F0KSAkdGhpcy0+X2RhdGFbJGtleV07CgogICAgICAgIGNhc2UgJ3RheGFibGUnOgogICAgICAgIGNhc2UgJ2RpZ2l0YWwnOgogICAgICAgICAgICByZXR1cm4gKGJvb2wpICR0aGlzLT5fZGF0YVska2V5XTsKCiAgICAgICAgY2FzZSAnY2F0ZWdvcmllcyc6CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+X2NhdGVnb3JpZXM7CgogICAgICAgIGNhc2UgJ2hpZXJhcmNoaWVzJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5faGllcmFyY2hpZXM7CgogICAgICAgIGNhc2UgJ2hpZXJhcmNoeV9pZCc6IC8vIGZvciBjb21wYXRpYmlsaXR5LgogICAgICAgIGNhc2UgJ2ZpcnN0X2hpZXJhcmNoeSc6CiAgICAgICAgICAgIGlmKCBjb3VudCgkdGhpcy0+X2hpZXJhcmNoaWVzKSApIHJldHVybiAkdGhpcy0+X2hpZXJhcmNoaWVzWzBdOwogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGNhc2UgJ2ZpZWxkX3ZhbHMnOgogICAgICAgICAgICByZXR1cm4gJHRoaXMtPl9maWVsZF92YWxzOwoKICAgICAgICBjYXNlICdhdHRyaWJzJzoKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fYXR0cmliczsKCiAgICAgICAgY2FzZSAnZmlsZV9wYXRoJzoKICAgICAgICAgICAgaWYoICgkaWQgPSAkdGhpcy0+aWQpICkgcmV0dXJuIFxwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfcGF0aCggJGlkICk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoICRrZXksICR2YWwgKQogICAgewogICAgICAgIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oIiRrZXkgaXMgbm90IGEgc2V0dGFibGUgbWVtYmVyIG9mICIuZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9faXNzZXQoICRrZXkgKQogICAgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfbmFtZSggJHN0ciApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWyduYW1lJ10gPSB0cmltKCRzdHIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfc3RhdHVzKCAkc3RyICkKICAgIHsKICAgICAgICAkc3RyID0gdHJpbSgkc3RyKTsKICAgICAgICBzd2l0Y2goICRzdHIgKSB7CiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfRElTQUJMRUQ6CiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfRFJBRlQ6CiAgICAgICAgY2FzZSBzZWxmOjpTVEFUVVNfUFVCTElTSEVEOgogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJ3N0YXR1cyddID0gJHN0cjsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigkc3RyLicgaXMgYW4gaW52YWxpZCBzdGF0dXMgdmFsdWUgaW4gJy5fX01FVEhPRF9fKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9kZXRhaWxzKCAkc3RyICkKICAgIHsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2RldGFpbHMnXSA9IHRyaW0oJHN0cik7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wcmljZSggJHZhbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWydwcmljZSddID0gKGZsb2F0KSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfd2VpZ2h0KCAkdmFsICkKICAgIHsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3dlaWdodCddID0gKGZsb2F0KSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGF4YWJsZSggJHZhbCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWyd0YXhhYmxlJ10gPSAoYm9vbCkgJHZhbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2RpZ2l0YWwoICR2YWwgKQogICAgewogICAgICAgICR0aGlzLT5fZGF0YVsnZGlnaXRhbCddID0gKGJvb2wpICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9za3UoICRzdHIgKQogICAgewogICAgICAgICR0aGlzLT5fZGF0YVsnc2t1J10gPSB0cmltKCRzdHIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfYWxpYXMoICRzdHIgKQogICAgewogICAgICAgICR0aGlzLT5fZGF0YVsnYWxpYXMnXSA9IHRyaW0oJHN0cik7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF91cmwoICRzdHIgKQogICAgewogICAgICAgICR0aGlzLT5fZGF0YVsndXJsJ10gPSB0cmltKCRzdHIpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfb3duZXIoICRvd25lcl9pZCApCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhWydvd25lciddID0gKGludCkgJG93bmVyX2lkOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfY2F0ZWdvcmllcyggYXJyYXkgJGludGxpc3QgPSBudWxsICkKICAgIHsKICAgICAgICBpZiggaXNfbnVsbCgkaW50bGlzdCkgKSAkaW50bGlzdCA9IFtdOwogICAgICAgIGZvcmVhY2goICRpbnRsaXN0IGFzICRvbmUgKSB7CiAgICAgICAgICAgIGlmKCAoaW50KSAkb25lIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgaW50ZWdlciBhcnJheSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9jYXRlZ29yaWVzID0gJGludGxpc3Q7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9oaWVyYXJjaGllcyggYXJyYXkgJGludGxpc3QgPSBudWxsICkKICAgIHsKICAgICAgICBpZiggaXNfbnVsbCgkaW50bGlzdCkgKSAkaW50bGlzdCA9IFtdOwogICAgICAgIGlmKCBjb3VudCgkaW50bGlzdCkgPT0gMSAmJiAkaW50bGlzdFswXSA9PSAtMSApICRpbnRsaXN0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGludGxpc3QgYXMgJG9uZSApIHsKICAgICAgICAgICAgaWYoIChpbnQpICRvbmUgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBpbnRlZ2VyIGFycmF5IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2hpZXJhcmNoaWVzID0gJGludGxpc3Q7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9hdHRyaWJ1dGVzKCBhcnJheSAkbGlzdCA9IG51bGwgKQogICAgewogICAgICAgIGlmKCBpc19udWxsKCRsaXN0KSApICRsaXN0ID0gW107CiAgICAgICAgZm9yZWFjaCggJGxpc3QgYXMgJG9uZSApIHsKICAgICAgICAgICAgaWYoICEgJG9uZSBpbnN0YW5jZW9mIFByb2R1Y3RBdHRyaWJ1dGUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGFycmF5IHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2F0dHJpYnMgPSAkbGlzdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2ZpZWxkKCAkZmlkLCAkdmFsICkKICAgIHsKICAgICAgICAkZmlkID0gKGludCkgJGZpZDsKICAgICAgICBpZiggJGZpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkIGlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCBpc19udWxsKCAkdmFsICkgKSB7CiAgICAgICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2ZpZWxkX3ZhbHNbJGZpZF0pICkgdW5zZXQoJHRoaXMtPl9maWVsZF92YWxzWyRmaWRdKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+X2ZpZWxkX3ZhbHNbJGZpZF0gPSAkdmFsOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX3ZhbHVlKCAkZmlkICkKICAgIHsKICAgICAgICAkZmlkID0gKGludCkgJGZpZDsKICAgICAgICBpZiggJGZpZCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIGZpZWxkIGlkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2ZpZWxkX3ZhbHNbJGZpZF0pICkgcmV0dXJuICR0aGlzLT5fZmllbGRfdmFsc1skZmlkXTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2V4dHJhKCRrZXksJGRmbHQgPSBudWxsKQogICAgewogICAgICAgIGlmKCBhcnJheV9rZXlfZXhpc3RzKCRrZXksJHRoaXMtPl9leHRyYSkgKSByZXR1cm4gJHRoaXMtPl9leHRyYVska2V5XTsKICAgICAgICByZXR1cm4gJGRmbHQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9leHRyYSggJGtleSwgJHZhbCApCiAgICB7CiAgICAgICAgJGtleSA9IHRyaW0oJGtleSk7CiAgICAgICAgaWYoIGlzX251bGwoICR2YWwgKSApIHsKICAgICAgICAgICAgaWYoIGFycmF5X2tleV9leGlzdHMoJGtleSwkdGhpcy0+X2V4dHJhKSApIHVuc2V0KCR0aGlzLT5fZXh0cmFbJGtleV0pOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl9leHRyYVska2V5XSA9ICR2YWw7CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0b19hcnJheSgpCiAgICB7CiAgICAgICAgJG91dCA9IFtdOwogICAgICAgICRvdXRbJ2lkJ10gPSAkdGhpcy0+aWQ7CiAgICAgICAgJG91dFsnbmFtZSddID0gJHRoaXMtPm5hbWU7CiAgICAgICAgJG91dFsnZGV0YWlscyddID0gJHRoaXMtPmRldGFpbHM7CiAgICAgICAgJG91dFsnc3RhdHVzJ10gPSAkdGhpcy0+c3RhdHVzOwogICAgICAgICRvdXRbJ3NrdSddID0gJHRoaXMtPnNrdTsKICAgICAgICAkb3V0WydhbGlhcyddID0gJHRoaXMtPmFsaWFzOwogICAgICAgICRvdXRbJ3VybCddID0gJHRoaXMtPnVybDsKICAgICAgICAkb3V0Wydvd25lciddID0gJHRoaXMtPm93bmVyOwogICAgICAgICRvdXRbJ2NyZWF0ZV9kYXRlJ10gPSAkdGhpcy0+Y3JlYXRlX2RhdGU7CiAgICAgICAgJG91dFsnbW9kaWZpZWRfZGF0ZSddID0gJHRoaXMtPm1vZGlmaWVkX2RhdGU7CiAgICAgICAgJG91dFsndGF4YWJsZSddID0gJHRoaXMtPnRheGFibGU7CiAgICAgICAgJG91dFsnZGlnaXRhbCddID0gJHRoaXMtPmRpZ2l0YWw7CiAgICAgICAgJG91dFsncHJpY2UnXSA9ICR0aGlzLT5wcmljZTsKICAgICAgICAkb3V0Wyd3ZWlnaHQnXSA9ICR0aGlzLT53ZWlnaHQ7CiAgICAgICAgJG91dFsnY2F0ZWdvcmllcyddID0gJHRoaXMtPl9jYXRlZ29yaWVzOwogICAgICAgICRvdXRbJ2hpZXJhcmNoaWVzJ10gPSAkdGhpcy0+X2hpZXJhcmNoaWVzOwogICAgICAgICRvdXRbJ2ZpZWxkX3ZhbHMnXSA9ICR0aGlzLT5fZmllbGRfdmFsczsKICAgICAgICAkb3V0WydleHRyYSddID0gJHRoaXMtPl9leHRyYTsKICAgICAgICAkb3V0WydhdHRyaWJzJ10gPSBbXTsKICAgICAgICBmb3JlYWNoKCAkdGhpcy0+X2F0dHJpYnMgYXMgJG9iaiApIHsKICAgICAgICAgICAgJG91dFsnYXR0cmlicyddW10gPSAkb2JqLT50b19hcnJheSgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZnJvbV9hcnJheSggYXJyYXkgJGlucHV0ICkKICAgIHsKICAgICAgICBmb3JlYWNoKCAkaW5wdXQgYXMgJGtleSA9PiAkdmFsICkgewogICAgICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgY2FzZSAnb3duZXInOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKGludCkgJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdwcm9kdWN0X25hbWUnOgogICAgICAgICAgICAgICAgLy8gYW4gYWxpYXMgZm9yIHRoZSBuYW1lLi4gdGhlIGZpZWxkIGluIHRoZSBkYXRhYmFzZSBpcyBwcm9kdWN0X25hbWUuCiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJ25hbWUnXSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnbmFtZSc6CiAgICAgICAgICAgIGNhc2UgJ2RldGFpbHMnOgogICAgICAgICAgICBjYXNlICdzdGF0dXMnOgogICAgICAgICAgICBjYXNlICdza3UnOgogICAgICAgICAgICBjYXNlICdhbGlhcyc6CiAgICAgICAgICAgIGNhc2UgJ3VybCc6CiAgICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2NyZWF0ZV9kYXRlJzoKICAgICAgICAgICAgY2FzZSAnbW9kaWZpZWRfZGF0ZSc6CiAgICAgICAgICAgICAgICBpZiggISBpc19udW1lcmljKCR2YWwpICkgJHZhbCA9IHN0cnRvdGltZSgkdmFsKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAndGF4YWJsZSc6CiAgICAgICAgICAgIGNhc2UgJ2RpZ2l0YWwnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKGJvb2wpICR2YWw7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAncHJpY2UnOgogICAgICAgICAgICBjYXNlICd3ZWlnaHQnOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKGZsb2F0KSAkdmFsOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2NhdGVnb3JpZXMnOgogICAgICAgICAgICAgICAgJHRoaXMtPnNldF9jYXRlZ29yaWVzKCR2YWwpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2hpZXJhcmNoaWVzJzoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfaGllcmFyY2hpZXMoJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnZXh0cmEnOgogICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCAkdmFsICkgKSAkdGhpcy0+X2V4dHJhID0gJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdmaWVsZF92YWxzJzoKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSggJHZhbCApICkgJHRoaXMtPl9maWVsZF92YWxzID0gJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdhdHRyaWJzJzoKICAgICAgICAgICAgICAgICRvdXQgPSBbXTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR2YWwgYXMgJHJvdyApIHsKICAgICAgICAgICAgICAgICAgICAkb2JqID0gbmV3IFByb2R1Y3RBdHRyaWJ1dGUoKTsKICAgICAgICAgICAgICAgICAgICAkb2JqLT5mcm9tX2FycmF5KCAkcm93ICk7CiAgICAgICAgICAgICAgICAgICAgJG91dFtdID0gJG9iajsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT5zZXRfYXR0cmlidXRlcyggJG91dCApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0gLy8gY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.ProductAttribute.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFByb2R1Y3RzOwoKY2xhc3MgUHJvZHVjdEF0dHJpYnV0ZQp7CiAgICBwcml2YXRlICRfZGF0YSA9IFsgJ2lkJz0+bnVsbCwgJ3Byb2R1Y3RfaWQnPT5udWxsLCAndGV4dCc9Pm51bGwsICdhZGp1c3RtZW50Jz0+bnVsbCwgJ3NrdSc9Pm51bGwsICdxb2gnPT5udWxsLCAnbm90ZXMnPT5udWxsLCAnaW9yZGVyJz0+bnVsbCBdOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2dldCggJGtleSApCiAgICB7CiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICBjYXNlICdwcm9kdWN0X2lkJzoKICAgICAgICBjYXNlICdxb2gnOgogICAgICAgIGNhc2UgJ2lvcmRlcic6CiAgICAgICAgICAgIHJldHVybiAoaW50KSAkdGhpcy0+X2RhdGFbJGtleV07CiAgICAgICAgY2FzZSAndGV4dCc6CiAgICAgICAgY2FzZSAnYWRqdXN0bWVudCc6CiAgICAgICAgY2FzZSAnc2t1JzoKICAgICAgICBjYXNlICdub3Rlcyc6CiAgICAgICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGF0YVska2V5XSk7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiJGtleSBpcyBub3QgYSBnZXR0YWJsZSBtZW1iZXIgb2YgIi5fX0NMQVNTX18pOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGZyb21fYXJyYXkoIGFycmF5ICRpbnB1dCApCiAgICB7CiAgICAgICAgZm9yZWFjaCggJGlucHV0IGFzICRrZXkgPT4gJHZhbCApIHsKICAgICAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgICAgIGNhc2UgJ3Byb2R1Y3RfaWQnOgogICAgICAgICAgICBjYXNlICdxb2gnOgogICAgICAgICAgICBjYXNlICdpb3JkZXInOgogICAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKGludCkgJHZhbDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICd0ZXh0JzoKICAgICAgICAgICAgY2FzZSAnYWRqdXN0bWVudCc6CiAgICAgICAgICAgIGNhc2UgJ3NrdSc6CiAgICAgICAgICAgIGNhc2UgJ25vdGVzJzoKICAgICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdG9fYXJyYXkoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2RhdGE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9wcm9kdWN0X2lkKCAkdmFsICkKICAgIHsKICAgICAgICBpZiggIWlzX251bGwoJHZhbCkgKSB7CiAgICAgICAgICAgICR2YWwgPSAoaW50KSAkdmFsOwogICAgICAgICAgICBpZiggJHZhbCA8IDEgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHByb2R1Y3RfaWQgcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9kYXRhWydwcm9kdWN0X2lkJ10gPSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfdGV4dCggJHZhbCApCiAgICB7CiAgICAgICAgJHZhbCA9IHRyaW0oJHZhbCk7CiAgICAgICAgaWYoICEkdmFsICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCB2YWx1ZSBwcm92aWRlZCB0byAnLl9fTUVUSE9EX18pOwogICAgICAgICR0aGlzLT5fZGF0YVsndGV4dCddID0gJHZhbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X2FkanVzdG1lbnQoICR2YWwgKQogICAgewogICAgICAgICR2YWwgPSB0cmltKCR2YWwpOwogICAgICAgIGlmKCAhJHZhbCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgdmFsdWUgcHJvdmlkZWQgdG8gJy5fX01FVEhPRF9fKTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2FkanVzdG1lbnQnXSA9ICR2YWw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNldF9za3UoICR2YWwgKQogICAgewogICAgICAgIGlmKCAhaXNfbnVsbCgkdmFsKSApICR2YWwgPSB0cmltKCR2YWwpOwogICAgICAgICR0aGlzLT5fZGF0YVsnc2t1J10gPSAkdmFsOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcW9oKCAkdmFsICkKICAgIHsKICAgICAgICAkdmFsID0gKGludCkgJHZhbDsKICAgICAgICAkdGhpcy0+X2RhdGFbJ3FvaCddID0gJHZhbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0X25vdGVzKCAkdmFsICkKICAgIHsKICAgICAgICAkdGV4dCA9IHRyaW0oJHZhbCk7CiAgICAgICAgJHRoaXMtPl9kYXRhWydub3RlcyddID0gJHZhbDsKICAgIH0KfQ==]]></data>
	</file>
	<file>
	  <filename>/lib/class.productsCsvImporter.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3RzQ3N2SW1wb3J0ZXIKewogICAgdmFyICRfZGVmc19ieW5hbWU7CiAgICB2YXIgJF9kZWZzX2J5aW5kZXg7CiAgICB2YXIgJF9yZWNvcmQ7CiAgICB2YXIgJF9saW5lbnVtOwogICAgdmFyICRfbGluZTsKICAgIHZhciAkX2RlbGltOwogICAgdmFyICRfZXJyb3JzOwogICAgdmFyICRfbW9kdWxlOwogICAgdmFyICRfZmllbGRfbWFwOwogICAgdmFyICRfY2F0ZWdvcnlfbWFwOwogICAgdmFyICRfaGllcmFyY2h5X21hcDsKICAgIHZhciAkX3BvbGljeTsKICAgIHZhciAkX2ltYWdlSGFuZGxlcjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gcHJvZHVjdHNDc3ZJbXBvcnRlcigmJG1vZCkKICAgIHsKICAgICAgICAkdGhpcy0+X21vZHVsZSA9ICRtb2Q7CiAgICAgICAgJHRoaXMtPl9saW5lbnVtID0gMDsKICAgICAgICAkdGhpcy0+X2RlbGltID0gJ3wnOwogICAgICAgICR0aGlzLT5fcG9saWN5ID0gYXJyYXkoKTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIHNldEltYWdlSGFuZGxlcigmJGhhbmRsZXIpCiAgICB7CiAgICAgICAgaWYoICFpc19vYmplY3QoJGhhbmRsZXIpICkgcmV0dXJuIEZBTFNFOwogICAgICAgICR0aGlzLT5faW1hZ2VIYW5kbGVyID0gJGhhbmRsZXI7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRQb2xpY3lWYWx1ZSgka2V5LCR2YWx1ZSkKICAgIHsKICAgICAgICAkdGhpcy0+X3BvbGljeVska2V5XSA9ICR2YWx1ZTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0UG9saWN5VmFsdWUoJGtleSwkZGZsdCA9IEZBTFNFKQogICAgewogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9wb2xpY3lbJGtleV0pICkgcmV0dXJuICRkZmx0OwogICAgICAgIHJldHVybiAkdGhpcy0+X3BvbGljeVska2V5XTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfc2V0RXJyb3IoJHRtcCkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZXJyb3JzKSApICR0aGlzLT5fZXJyb3JzID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+X2Vycm9yc1tdID0gJHRoaXMtPl9saW5lbnVtLic6ICcuJHRtcDsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyRXJyb3JzKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2Vycm9ycyA9IGFycmF5KCk7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRFcnJvcnMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2Vycm9yczsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIHNldERlbGltKCRkZWxpbSkKICAgIHsKICAgICAgICBpZiggZW1wdHkoJGRlbGltKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkdGhpcy0+X2RlbGltID0gJGRlbGltOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RmllbGREZWZzQnlOYW1lKCR0bXApCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdG1wKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkdGhpcy0+X2RlZnNfYnluYW1lID0gJHRtcDsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIHNldEZpZWxkRGVmc0J5SW5kZXgoJHRtcCkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0bXApICkgcmV0dXJuIEZBTFNFOwogICAgICAgICR0aGlzLT5fZGVmc19ieWluZGV4ID0gJHRtcDsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3NldExpbmUoJHRtcCkKICAgIHsKICAgICAgICAkdGhpcy0+X2xpbmUgPSAkdG1wOwogICAgICAgICR0aGlzLT5fbGluZW51bSsrOwogICAgICAgICR0aGlzLT5fcmVjb3JkID0gY2dlX2FycmF5OjpzbWFydF9leHBsb2RlKCR0aGlzLT5fbGluZSwkdGhpcy0+X2RlbGltKTsKICAgICAgICBpZiggZW5kc3dpdGgoJHRtcCwkdGhpcy0+X2RlbGltKSApICR0aGlzLT5fcmVjb3JkW10gPSAnJzsKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RmllbGRJZCgkbmFtZSkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZmllbGRfbWFwKSApIHsKICAgICAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxuYW1lLHR5cGUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyc7CiAgICAgICAgICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApICR0aGlzLT5fZmllbGRfbWFwID0gY2dlX2FycmF5Ojp0b19oYXNoKCR0bXAsJ25hbWUnKTsKICAgICAgICB9CiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fZmllbGRfbWFwKSAmJiBpc3NldCgkdGhpcy0+X2ZpZWxkX21hcFskbmFtZV0pICkgcmV0dXJuICR0aGlzLT5fZmllbGRfbWFwWyRuYW1lXVsnaWQnXTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldEZpZWxkVHlwZSgkbmFtZSkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZmllbGRfbWFwKSApICR0bXAgPSAkdGhpcy0+X2dldEZpZWxkSWQoJG5hbWUpOwogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2ZpZWxkX21hcCkgJiYgaXNzZXQoJHRoaXMtPl9maWVsZF9tYXBbJG5hbWVdKSApIHJldHVybiAkdGhpcy0+X2ZpZWxkX21hcFskbmFtZV1bJ3R5cGUnXTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3NldEZpZWxkVmFsdWUoJHByb2R1Y3RfaWQsJGZpZCwkdmFsKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCB2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQsJGZpZCkpOwogICAgICAgIGlmKCAkdG1wICkgewogICAgICAgICAgICBpZiggJHZhbCAhPSAnJyApIHsKICAgICAgICAgICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgU0VUIHZhbHVlID0gPyBXSEVSRSBwcm9kdWN0X2lkID0gPyBBTkQgZmllbGRkZWZfaWQgPSA/JzsKICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCR2YWwsJHByb2R1Y3RfaWQsJGZpZCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIFdIRVJFIHByb2R1Y3RfaWQgPSA/IEFORCBmaWVsZGRlZl9pZCA9ID8nOwogICAgICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHZhbCwkcHJvZHVjdF9pZCwkZmlkKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZGJyID0gdHJ1ZTsKICAgICAgICAgICAgaWYoICR2YWwgIT0gJycgKSB7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgKHZhbHVlLCBwcm9kdWN0X2lkLCBmaWVsZGRlZl9pZCkgVkFMVUVTICg/LD8sPyknOwogICAgICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHZhbCwkcHJvZHVjdF9pZCwkZmlkKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoICEkZGJyICkgewogICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdQcm9ibGVtIGluc2VydGluZyBmaWVsZCB2YWx1ZSBmb3IgZmllbGQgJy4kZmlkKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0Q2F0ZWdvcnlJZCgkbmFtZSkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfbWFwKSApIHsKICAgICAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxuYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzJzsKICAgICAgICAgICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICkgJHRoaXMtPl9jYXRlZ29yeV9tYXAgPSBjZ2VfYXJyYXk6OnRvX2hhc2goJHRtcCwnbmFtZScpOwogICAgICAgIH0KICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9jYXRlZ29yeV9tYXApICYmIGlzc2V0KCR0aGlzLT5fY2F0ZWdvcnlfbWFwWyRuYW1lXSkgKSByZXR1cm4gJHRoaXMtPl9jYXRlZ29yeV9tYXBbJG5hbWVdWydpZCddOwogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0SGllcmFyY2h5Q2FjaGUoKQogICAgewogICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gbWVtb3J5LgogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2hpZXJhcmNoeV9tYXApICkgcmV0dXJuOwogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCxsb25nX25hbWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSc7CiAgICAgICAgJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgICBpZiggIWlzX2FycmF5KCR0bXApICkgcmV0dXJuOwoKICAgICAgICAkb3V0ID0gW107CiAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkcmVjICkgewogICAgICAgICAgICAkb3V0W3N0cnRvbG93ZXIoJHJlY1snbG9uZ19uYW1lJ10pXSA9ICRyZWM7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5faGllcmFyY2h5X21hcCA9ICRvdXQ7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3NldEhpZXJhcmNoeUlkKCRwcm9kdWN0X2lkLCRoaWVyX2lkKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBoaWVyYXJjaHlfaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICBpZiggJHRtcCApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgU0VUIGhpZXJhcmNoeV9pZCA9ID8gV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkaGllcl9pZCwkcHJvZHVjdF9pZCkpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllciAocHJvZHVjdF9pZCxoaWVyYXJjaHlfaWQpIFZBTFVFUyAoPyw/KSc7CiAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRoaWVyX2lkKSk7CiAgICAgICAgfQogICAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcigncHJvYmxlbSBhZGp1c3RpbmcgaGllcmFyY2h5IGZvciAnLiRwcm9kdWN0X2lkKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRIaWVyYXJjaHlJZCgkaGllcikKICAgIHsKICAgICAgICAkc2VhcmNoX2hpZXJhcmNoeV9pZCA9IGZ1bmN0aW9uKCAkaGllciApIHsKICAgICAgICAgICAgJGhpZXIgPSBzdHJ0b2xvd2VyKHRyaW0oJGhpZXIpKTsKICAgICAgICAgICAgaWYoICEkaGllciApIHJldHVybjsKICAgICAgICAgICAgaWYoICEkdGhpcy0+X2hpZXJhcmNoeV9tYXAgKSByZXR1cm47CiAgICAgICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2hpZXJhcmNoeV9tYXBbJGhpZXJdKSApIHJldHVybiAkdGhpcy0+X2hpZXJhcmNoeV9tYXBbJGhpZXJdWydpZCddOwogICAgICAgIH07CgogICAgICAgICR0aGlzLT5fZ2V0SGllcmFyY2h5Q2FjaGUoKTsKICAgICAgICAkdGhlX2hpZCA9ICRzZWFyY2hfaGllcmFyY2h5X2lkKCAkaGllciApOwogICAgICAgIGlmKCAhJHRoZV9oaWQgJiYgJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2hpZXJhcmNoeScpICkgewogICAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICAgICAgICAgLy8gaGllcmFyY2h5IG5vdCBmb3VuZCwgd2UgaGF2ZSB0byBjcmVhdGUgaXQuCiAgICAgICAgICAgIC8vIGNsZWFyIHRoZSBtZW1vcnkKICAgICAgICAgICAgJHRoaXMtPl9faGllcmFyY2h5X21hcCA9IG51bGw7CgogICAgICAgICAgICAkcGF0aCA9IGV4cGxvZGUoJyB8ICcsJGhpZXIpOwogICAgICAgICAgICAkcGFyZW50ID0gJGl0ZW1fb3JkZXIgPSAkdF9pZCA9IC0xOwogICAgICAgICAgICAkZnF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IFdIRVJFIG5hbWUgPSA/IEFORCBwYXJlbnRfaWQgPSA/JzsKICAgICAgICAgICAgJGlxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSAobmFtZSxwYXJlbnRfaWQpIFZBTFVFUyAoPyw/KSc7CiAgICAgICAgICAgIGZvcmVhY2goICRwYXRoIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHRyaW0oJG5hbWUsJyJcJycpOwogICAgICAgICAgICAgICAgaWYoIGVtcHR5KCRuYW1lKSApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCRuYW1lLCRwYXJlbnQpKTsKICAgICAgICAgICAgICAgIGlmKCAhJHRfaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gZ290dGEgaW5zZXJ0IGl0CiAgICAgICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJG5hbWUsJHBhcmVudCkpOwogICAgICAgICAgICAgICAgICAgICR0X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X21vZHVsZS0+VXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcGFyZW50ID0gJHRfaWQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoZV9oaWQgPSAkdF9pZDsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhlX2hpZDsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfaGFzRmllbGQoJG5hbWUpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X3JlY29yZCkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2RlZnNfYnluYW1lKSApIHJldHVybiBGQUxTRTsKICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fZGVmc19ieW5hbWVbJG5hbWVdKSApIHJldHVybiBGQUxTRTsKICAgICAgICAkaWR4ID0gJHRoaXMtPl9kZWZzX2J5bmFtZVskbmFtZV07CiAgICAgICAgaWYoICRpZHggPj0gY291bnQoJHRoaXMtPl9yZWNvcmQpICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiAkaWR4OwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRGaWVsZCgkbmFtZSwkZGZsdCA9IG51bGwpCiAgICB7CiAgICAgICAgJGlkeCA9ICR0aGlzLT5faGFzRmllbGQoJG5hbWUpOwogICAgICAgIGlmKCAkaWR4ID09PSBGQUxTRSApIHJldHVybiAkZGZsdDsKICAgICAgICAkdmFsID0gdHJpbSgkdGhpcy0+X3JlY29yZFskaWR4XSwnXCciJyk7CiAgICAgICAgaWYoICEkdmFsICkgcmV0dXJuICRkZmx0OwogICAgICAgIHJldHVybiAkdmFsOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXREZWZDb3VudCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGNvdW50KCR0aGlzLT5fZGVmc19ieWluZGV4KTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RmllbGRDb3VudCgpICB7CiAgICAgICAgcmV0dXJuIGNvdW50KCR0aGlzLT5fcmVjb3JkKTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfZ2V0RGF0ZSgkc3RyLCRkZmx0ID0gbnVsbCkKICAgIHsKICAgICAgICAkdmFsID0gJHRoaXMtPl9nZXRGaWVsZCgkbmFtZSwkZGZsdCk7CiAgICAgICAgaWYoIGlzX251bWVyaWMoJHZhbCkgKSB7CiAgICAgICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgICAgIC8vIGFzc3VtZSBpdCdzIGEgdW5peCB0aW1lc3RhbXAKICAgICAgICAgICAgJHZhbCA9ICRkYi0+RGJUaW1lU3RhbXAoICR2YWwgKTsKICAgICAgICAgICAgJHZhbCA9IHRyaW0oJHZhbCwiJyIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHZhbDsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9nZXRDdXJyZW5jeSgkc3RyKQogICAgewogICAgICAgICRMb2NhbGVJbmZvID0gbG9jYWxlY29udigpOwogICAgICAgICRjdXJyZW5jeV9zeW1ib2wgPSAnJCc7CiAgICAgICAgaWYoIGlzc2V0KCRMb2NhbGVJbmZvWydjdXJyZW5jeV9zeW1ib2wnXSkgJiYgJExvY2FsZUluZm9bJ2N1cnJlbmN5X3N5bWJvbCddICE9ICcnICkgJGN1cnJlbmN5X3N5bWJvbCA9ICRMb2NhbGVJbmZvWydjdXJyZW5jeV9zeW1ib2wnXTsKCiAgICAgICAgJHN0ciA9IHRyaW0oJHN0cik7CiAgICAgICAgJHN0ciA9IHRyaW0oJHN0ciwkY3VycmVuY3lfc3ltYm9sKTsKICAgICAgICAkc3RyID0gc3RyX3JlcGxhY2UoJExvY2FsZUluZm9bIm1vbl90aG91c2FuZHNfc2VwIl0gLCAiIiwgJHN0cik7CiAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCRMb2NhbGVJbmZvWyJtb25fZGVjaW1hbF9wb2ludCJdICwgIi4iLCAkc3RyKTsKICAgICAgICAkdmFsID0gZmxvYXR2YWwoJHN0cik7CiAgICAgICAgcmV0dXJuICR2YWw7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2dldEZpZWxkTmFtZXNMaWtlKCRwcmVmaXgpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkdGhpcy0+X2RlZnNfYnlpbmRleCkgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgJHJlcyA9IGFycmF5KCk7CiAgICAgICAgZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkdGhpcy0+X2RlZnNfYnlpbmRleCk7ICRpKysgKSB7CiAgICAgICAgICAgICR0bXAgPSB0cmltKHRyaW0oJHRoaXMtPl9kZWZzX2J5aW5kZXhbJGldKSwnXCciJyk7CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCR0bXAsJHByZWZpeCkgKSAkcmVzW10gPSAkdG1wOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfaGFuZGxlRmlyc3RMaW5lKCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CgogICAgICAgIC8vIDAuICBHZXQgdGhlIGZpZWxkIGRlZmluaXRpb25zCiAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9yZWNvcmQpOyAkaSsrICkgewogICAgICAgICAgICAkdG1wID0gdHJpbSh0cmltKCR0aGlzLT5fcmVjb3JkWyRpXSksJyJcJycpOwogICAgICAgICAgICAkYnluYW1lWyR0bXBdID0gJGk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fZGVmc19ieW5hbWUgPSAkYnluYW1lOwogICAgICAgICR0aGlzLT5fZGVmc19ieWluZGV4ID0gJHRoaXMtPl9yZWNvcmQ7CgogICAgICAgIC8vIDEuIGZpcnN0IG1ha2Ugc3VyZSB3ZSBoYXZlIGFsbCB0aGUgcmVxdWlyZWQgZmllbGRzLgogICAgICAgICRyZXF1aXJlZF9maWVsZHMgPSBleHBsb2RlKCcsJywnI0ZMQUcsI25hbWUsI3ByaWNlJyk7CiAgICAgICAgZm9yZWFjaCggJHJlcXVpcmVkX2ZpZWxkcyBhcyAkb25lICkgewogICAgICAgICAgICBpZiggIWFycmF5X2tleV9leGlzdHMoJG9uZSwkdGhpcy0+X2RlZnNfYnluYW1lKSApIHsKICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ21pc3NpbmcgcmVxdWlyZWQgZmllbGQgJy4kb25lKTsKICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gMi4gZ28gdGhyb3VnaCBhbmQgZ2V0IGNhdGVnb3JpZXMKICAgICAgICAvLyBhbmQgbWFrZSBzdXJlIHRoZXkgZXhpc3QKICAgICAgICBpZiggJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2NhdGVnb3JpZXMnKSApIHsKICAgICAgICAgICAgJGNhdHMgPSAkdGhpcy0+X2dldEZpZWxkTmFtZXNMaWtlKCcjQ0FUJyk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkY2F0cykgKSB7CiAgICAgICAgICAgICAgICAkZnF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgICAgICAgICAkaXF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyAobmFtZSxjcmVhdGVfZGF0ZSxtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sJG5vdywkbm93KSI7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkY2F0cyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICR0bXAgPSB0cmltKHN1YnN0cigkb25lLDUpKTsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gdHJpbSgkdG1wLCciXCcnKTsKICAgICAgICAgICAgICAgICAgICBpZiggZW1wdHkoJHRtcCkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJHRtcCkpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJHRfaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9vcHMsIGdvdHRhIGFkZCBpdAogICAgICAgICAgICAgICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJHRtcCkpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggISRkYnIgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdwcm9ibGVtIGNyZWF0aW5nIGNhdGVnb3J5ICcuJHRtcCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdERUJVRzogJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gMy4gdGhlbiBmaWVsZHMKICAgICAgICAvLyBhbmQgbWFrZSBzdXJlIHRoZXkgZXhpc3QKICAgICAgICBpZiggJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY3JlYXRlX2ZpZWxkcycpICkgewogICAgICAgICAgICAkZmllbGRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0ZJRUxEJyk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkZmllbGRzKSApIHsKICAgICAgICAgICAgICAgICRmaWVsZF90eXBlcyA9IGFycmF5X2tleXMocHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkX3R5cGVzKCkpOwogICAgICAgICAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgICAgICAgICAkb3F1ZXJ5ID0gJ1NFTEVDVCBtYXgoaXRlbV9vcmRlcikgKyAxIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnOwogICAgICAgICAgICAgICAgJGlxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcwogICAgICAgICAgICAgICAgICAgICAgKG5hbWUsIHByb21wdCwgdHlwZSwgbWF4X2xlbmd0aCwgaXRlbV9vcmRlciwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUsIHB1YmxpYykKICAgICAgICAgICAgICAgICAgIFZBTFVFUyg/LD8sPyw/LD8sJG5vdywkbm93LDEpIjsKICAgICAgICAgICAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gZXhwbG9kZSgnOicsJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApICE9IDMgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAkdHlwZSA9IHRyaW0odHJpbSgkdG1wWzFdKSwnIlwnJyk7CiAgICAgICAgICAgICAgICAgICAgJG5hbWUgPSB0cmltKHRyaW0oJHRtcFsyXSksJyJcJycpOwogICAgICAgICAgICAgICAgICAgIGlmKCBlbXB0eSgkdHlwZSkgfHwgZW1wdHkoJG5hbWUpICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkdHlwZSwkZmllbGRfdHlwZXMpICkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdJbnZhbGlkIGZpZWxkIHR5cGU6ICcuJHR5cGUuJyBmb3IgZmllbGQgJy4kbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgICAgICAgICAgICAgICAgaWYoICEkdF9pZCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb21wdCA9IHVjd29yZHMoJG5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBvb3BzLCBnb3R0YSBhZGQgaXQuCiAgICAgICAgICAgICAgICAgICAgICAgICRtYXggPSAkZGItPkdldE9uZSgkb3F1ZXJ5KTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICEkbWF4ICkgJG1heCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJGlxdWVyeSxhcnJheSgkbmFtZSwkcHJvbXB0LCR0eXBlLDI1NSwkbWF4KSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAhJGRiciApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ1Byb2JsZW0gY3JlYXRpbmcgZmllbGQgJy4kbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdERUJVRzogJy4kZGItPnNxbC4nIC0tICcuJGRiLT5FcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2hhbmRsZVByb2R1Y3RMaW5lKCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRub3cgPSAkZGItPkRiVGltZVN0YW1wKHRpbWUoKSk7CgogICAgICAgIC8vIGdldCB0aGUgaW5mbyBmb3IgdGhlIHByb2R1Y3QKICAgICAgICAvLyBhbmQgaW5zZXJ0IGl0CiAgICAgICAgJHRub3cgPSB0cmltKCRub3csIiciKTsKICAgICAgICAkbmFtZSA9ICR0aGlzLT5fZ2V0RmllbGQoJyNuYW1lJyk7CiAgICAgICAgaWYoIGVtcHR5KCRuYW1lKSApIHsKICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcigiZW1wdHkgcHJvZHVjdCBuYW1lIik7CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CiAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIHByb2R1Y3RfbmFtZSA9ID8nOwogICAgICAgICR0X2lkID0gJGRiLT5HZXRPbmUoJGZxdWVyeSxhcnJheSgkbmFtZSkpOwogICAgICAgICRpc191cGRhdGUgPSBGQUxTRTsKICAgICAgICBpZiggJHRfaWQgKSB7CiAgICAgICAgICAgIC8vIHVoLW9oLCBpdCdzIGEgZHVwbGljYXRlIHByb2R1Y3QuCiAgICAgICAgICAgICRoYW5kbGVyID0gJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnb25fZHVwbGljYXRlX3Byb2R1Y3QnKTsKICAgICAgICAgICAgaWYoICRoYW5kbGVyID09ICdza2lwJyApIHsKICAgICAgICAgICAgICAgIC8vIHdvb2hvbywgd2UgZ2V0IHRvIHNraXAgdGhpcyB3aG9sZSBsaW5lCiAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCJkdXBsaWNhdGUgcHJvZHVjdCAkbmFtZSIpOwogICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRoYW5kbGVyID09ICd1cGRhdGUnICkgewogICAgICAgICAgICAgICAgLy8gaXQncyBhbiB1cGRhdGUuLi4gbm90aGluZyBoZXJlLgogICAgICAgICAgICAgICAgJGlzX3VwZGF0ZSA9IFRSVUU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyB1aC1vaCB3ZSBnb3R0YSBkZWxldGUgdGhpcyBleGlzdGluZyBwcm9kdWN0IGZpcnN0LgogICAgICAgICAgICAgICAgJHRoaXMtPl9tb2R1bGUtPkRlbGV0ZVByb2R1Y3QoJHRfaWQpOwogICAgICAgICAgICAgICAgJHRfaWQgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggISR0X2lkICkgewogICAgICAgICAgICAkaXF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMKICAgICAgICAgICAgICAgICAocHJvZHVjdF9uYW1lLGRldGFpbHMscHJpY2UsY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZSx0YXhhYmxlLHN0YXR1cyx3ZWlnaHQsc2t1KQogICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8pIjsKICAgICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkaXF1ZXJ5LGFycmF5KCR0aGlzLT5fZ2V0RmllbGQoJyNuYW1lJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEZpZWxkKCcjZGV0YWlscycsJycpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRDdXJyZW5jeSgkdGhpcy0+X2dldEZpZWxkKCcjcHJpY2UnLDApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RGF0ZSgnI2NyZWF0ZV9kYXRlJywkdG5vdyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldERhdGUoJyNtb2RpZmllZF9kYXRlJywkdG5vdyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEZpZWxkKCcjdGF4YWJsZScsMSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEZpZWxkKCcjc3RhdHVzJywncHVibGlzaGVkJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEZpZWxkKCcjd2VpZ2h0JywwKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNza3UnLCcnKSkpOwogICAgICAgICAgICBpZiggISRkYnIgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdwcm9kdWN0IGluc2VydCBmYWlsZWQ6ICcuJGRiLT5FcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ0RFQlVHOiAnLiRkYi0+c3FsLicgLS0gJy4kZGItPkVycm9yTXNnKCkpOwogICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRwcm9kdWN0X2lkID0gJGRiLT5JbnNlcnRfSUQoKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIGl0J3MgYSBwcm9kdWN0IHVwZGF0ZS4KICAgICAgICAgICAgJHByb2R1Y3RfaWQgPSAkdF9pZDsKICAgICAgICAgICAgJHVxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cwogICAgICAgICAgICAgICAgIFNFVCBwcm9kdWN0X25hbWUgPSA/LCBkZXRhaWxzID0gPywgcHJpY2UgPSA/LCBtb2RpZmllZF9kYXRlID0gPywgdGF4YWJsZSA9ID8sIHN0YXR1cyA9ID8sIHdlaWdodCA9ID8sIHNrdSA9ID8KICAgICAgICAgICAgICAgICBXSEVSRSBpZCA9ID8nOwogICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCR1cXVlcnksYXJyYXkoJHRoaXMtPl9nZXRGaWVsZCgnI25hbWUnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fZ2V0RmllbGQoJyNkZXRhaWxzJywnJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEN1cnJlbmN5KCR0aGlzLT5fZ2V0RmllbGQoJyNwcmljZScsMCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXREYXRlKCcjbW9kaWZpZWRfZGF0ZScsJHRub3cpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI3RheGFibGUnLDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI3N0YXR1cycsJ3B1Ymxpc2hlZCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9nZXRGaWVsZCgnI3dlaWdodCcsMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2dldEZpZWxkKCcjc2t1JywnJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJvZHVjdF9pZCkpOwogICAgICAgIH0KCgogICAgICAgIC8vIGdldCB0aGUgaGllcmFyY2h5CiAgICAgICAgLy8gYW5kIGluc2VydCBpdAogICAgICAgICRoaWVyID0gJHRoaXMtPl9nZXRGaWVsZCgnI0hJRVInKTsKICAgICAgICBpZiggJGhpZXIgKSB7CiAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCc+PicsJGhpZXIpOwogICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICR0bXBbJGldID0gdHJpbSh0cmltKCR0bXBbJGldKSwnIlwnJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGhpZXIgPSBpbXBsb2RlKCcgfCAnLCR0bXApOwoKICAgICAgICAgICAgJGhpZCA9ICR0aGlzLT5fZ2V0SGllcmFyY2h5SWQoJGhpZXIpOwogICAgICAgICAgICBpZiggJGhpZCApICR0aGlzLT5fc2V0SGllcmFyY2h5SWQoJHByb2R1Y3RfaWQsJGhpZCk7CiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgdGhlIGluZm8gZm9yIGZpZWxkcwogICAgICAgIC8vIGFuZCBpbnNlcnQgdGhlbQogICAgICAgIGlmKCAkaXNfdXBkYXRlICYmICR0aGlzLT5fZ2V0UG9saWN5VmFsdWUoJ2NsZWFyZmllbGRzJykgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICB9CiAgICAgICAgJGZpZWxkcyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNGSUVMRCcpOwogICAgICAgIGlmKCBpc19hcnJheSgkZmllbGRzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGZpZWxkcyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJzonLCRvbmUpOwogICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApICE9IDMgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRuYW1lID0gdHJpbSh0cmltKCR0bXBbMl0pLCciXCcnKTsKICAgICAgICAgICAgICAgICR0eXBlX2EgPSB0cmltKHRyaW0oJHRtcFsxXSksJyJcJycpOwogICAgICAgICAgICAgICAgJHZhbCA9ICR0aGlzLT5fZ2V0RmllbGQoJG9uZSk7CiAgICAgICAgICAgICAgICAkdmFsID0gdHJpbSh0cmltKCR2YWwpLCciXCcnKTsKICAgICAgICAgICAgICAgIGlmKCAhJHZhbCApIGNvbnRpbnVlOwoKICAgICAgICAgICAgICAgICRmaWQgPSAkdGhpcy0+X2dldEZpZWxkSWQoJG5hbWUpOwogICAgICAgICAgICAgICAgaWYoICRmaWQgPT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ2ZpZWxkICcuJG5hbWUuJyBub3QgZm91bmQnKTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdHlwZSA9ICR0aGlzLT5fZ2V0RmllbGRUeXBlKCRuYW1lKTsKICAgICAgICAgICAgICAgIGlmKCAkdHlwZV9hICE9ICR0eXBlICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ0ludmFsaWQgdHlwZSBmb3IgZmllbGQgJy4kbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYoICR0eXBlID09ICdzdWJzY3JpcHRpb24nICkgY29udGludWU7ICAvLyB3ZSBkb24ndCBpbXBvcnQgdGhlc2UuCgogICAgICAgICAgICAgICAgaWYoICR0eXBlID09ICdkaW1lbnNpb25zJyAmJiAkdmFsKSB7CiAgICAgICAgICAgICAgICAgICAgJHBhcnRzID0gZXhwbG9kZSgnLCcsJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGNvdW50KCRwYXJ0cykgIT0gMyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignSW52YWxpZCBmb3JtYXQgZm9yIGRpbWVuc2lvbnMgZmllbGQ6ICcuJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkZGF0YSA9IGFycmF5KCdsZW5ndGgnPT4nJywnd2lkdGgnPT4nJywnaGVpZ2h0Jz0+JycpOwogICAgICAgICAgICAgICAgICAgICRlcnIgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkcGFydHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCgkaywkdikgPSBleHBsb2RlKCc6Jywkb25lLDIpOwogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2goJGspIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbCc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF0YVsnbGVuZ3RoJ10gPSAkdjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICd3JzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYXRhWyd3aWR0aCddID0gJHY7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaCc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF0YVsnaGVpZ2h0J10gPSAkdjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgZGltZW5zaW9ucyBmaWVsZCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVyciA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiggJGVyciApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICR2YWwgPSAkZGF0YTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkaW5zZXJ0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlmKCAkdHlwZSA9PSAnaW1hZ2UnKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gaXQncyBhbiBpbWFnZS4uLgogICAgICAgICAgICAgICAgICAgIGlmKCAhJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnaGFuZGxlX2ltYWdlcycpIHx8IGVtcHR5KCR2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVtcHR5KCR0aGlzLT5faW1hZ2VIYW5kbGVyKSB8fCAhaXNfb2JqZWN0KCR0aGlzLT5faW1hZ2VIYW5kbGVyKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gd2UncmUgbm90IGhhbmRsaW5nIGltYWdlcywgb3IgdGhlIHZhbHVlIGlzIGVtcHR5LgogICAgICAgICAgICAgICAgICAgICAgICAkaW5zZXJ0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBidWlsZCBzb3VyY2UgbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPl9pbWFnZUhhbmRsZXItPmhhbmRsZUltYWdlKCRwcm9kdWN0X2lkLCR2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiggJHJlcyA9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ3Byb2JsZW0gaGFuZGxpbmcgaW1hZ2UgJy4kdmFsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbnNlcnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR2YWwgPSAkcmVzOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCAkaW5zZXJ0ICkgewogICAgICAgICAgICAgICAgICAgIC8vIGdvb2QgdG8gaW5zZXJ0LgogICAgICAgICAgICAgICAgICAgIGlmKCAhJHRoaXMtPl9zZXRGaWVsZFZhbHVlKCRwcm9kdWN0X2lkLCRmaWQsJHZhbCkgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSAvLyBmaWVsZHMuCiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgdGhlIGluZm8gZm9yIGNhdGVnb3JpZXMKICAgICAgICAvLyBhbmQgaW5zZXJ0IHRoZW0KICAgICAgICAvLyBoZXJlIHNob3VsZCB3ZSBudWtlIGV4aXN0aW5nIGNhdGVnb3JpZXM/CiAgICAgICAgaWYoICRpc191cGRhdGUgJiYgJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY2xlYXJjYXRlZ29yaWVzJykgKSB7CiAgICAgICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICB9CiAgICAgICAgJGNhdHMgPSAkdGhpcy0+X2dldEZpZWxkTmFtZXNMaWtlKCcjQ0FUJyk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRjYXRzKSApIHsKICAgICAgICAgICAgJGlxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcwogICAgICAgICAgICAgICAgIChwcm9kdWN0X2lkLGNhdGVnb3J5X2lkLGNyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoPyw/LCRub3csJG5vdykiOwogICAgICAgICAgICBmb3JlYWNoKCAkY2F0cyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJzonLCRvbmUpOwogICAgICAgICAgICAgICAgaWYoIGNvdW50KCR0bXApICE9IDIgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICRuYW1lID0gdHJpbSh0cmltKCR0bXBbMV0pLCciXCcnKTsKICAgICAgICAgICAgICAgICR2YWwgPSAkdGhpcy0+X2dldEZpZWxkKCRvbmUpOwogICAgICAgICAgICAgICAgJHZhbCA9IHRyaW0odHJpbSgkdmFsKSwnIlwnJyk7CgogICAgICAgICAgICAgICAgJGNpZCA9ICR0aGlzLT5fZ2V0Q2F0ZWdvcnlJZCgkbmFtZSk7CiAgICAgICAgICAgICAgICBpZiggIShpbnQpJHZhbCAmJiAhJHRoaXMtPl9nZXRQb2xpY3lWYWx1ZSgnY2xlYXJjYXRlZ29yaWVzJykgKSB7CiAgICAgICAgICAgICAgICAgICAgaWYoICRjaWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgV0hFUkUgcHJvZHVjdF9pZCA9ID8gQU5EIGNhdGVnb3J5X2lkID0gPyc7CiAgICAgICAgICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkZHF1ZXJ5LGFycmF5KCRwcm9kdWN0X2lkLCRjaWQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBjYXRlZ29yeSBpZCBmcm9tIGNhY2hlCiAgICAgICAgICAgICAgICBpZiggJGNpZCA9PT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignZmllbGQgJy4kbmFtZS4nIG5vdCBmb3VuZCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiggJHZhbCApIHsKICAgICAgICAgICAgICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCRpcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQsJGNpZCkpOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJGRiciApICR0aGlzLT5fc2V0RXJyb3IoInByb2JsZW0gYXNzb2NpYXRpbmcgY2F0ZWdvcnkgJGNpZCB3aXRoIHByb2R1Y3QgJHByb2R1Y3RfaWQiKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gZ2V0IGF0dHJpYnV0ZXMKICAgICAgICBpZiggJGlzX3VwZGF0ZSAmJiAkdGhpcy0+X2dldFBvbGljeVZhbHVlKCdjbGVhcmF0dHJpYnMnKSApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHByb2R1Y3RfaWQpKTsKICAgICAgICB9CiAgICAgICAgJGF0dHJfZmllbGRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0FUVFInKTsKICAgICAgICAkYXR0cl9rZXlfbGlzdCA9IFsgJ3RleHQnLCAnYWRqdXN0bWVudCcsICdza3UnLCAncW9oJyBdOwogICAgICAgICRmaWVsZF9uYW1lX3BhdHRlcm4gPSAnI0FUVFI6JTAyZF8lcyc7CiAgICAgICAgLy8gbm93IGJ1aWxkIHVwIHRvIE4gYXR0cmlidXRlcyBhbmQgaW5zZXJ0IGl0LgogICAgICAgICRpcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzIChwcm9kdWN0X2lkLCB0ZXh0LCBhZGp1c3RtZW50LCBza3UsIHFvaCwgaW9yZGVyKSBWQUxVRVMgKD8sPyw/LD8sPyw/KSc7CiAgICAgICAgJGlvcmRlciA9IDA7CiAgICAgICAgZm9yKCAkYXR0cl9pZHggPSAxOyAkYXR0cl9pZHggPD0gMjA7ICRhdHRyX2lkeCsrICkgewogICAgICAgICAgICAkcmVjID0gW107CiAgICAgICAgICAgIGZvcmVhY2goICRhdHRyX2tleV9saXN0IGFzICRhdHRyX2tleSApIHsKICAgICAgICAgICAgICAgICRmaWVsZF9uYW1lID0gc3ByaW50ZigkZmllbGRfbmFtZV9wYXR0ZXJuLCRhdHRyX2lkeCwkYXR0cl9rZXkpOwogICAgICAgICAgICAgICAgJHJlY1skYXR0cl9rZXldID0gJHZhbCA9IHRyaW0oJHRoaXMtPl9nZXRGaWVsZCgkZmllbGRfbmFtZSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCAhJHJlY1sndGV4dCddICkgYnJlYWs7CiAgICAgICAgICAgICRkYi0+RXhlY3V0ZSgkaXF1ZXJ5LFsgKGludCkgJHByb2R1Y3RfaWQsICRyZWNbJ3RleHQnXSwgJHJlY1snYWRqdXN0bWVudCddLCAkcmVjWydza3UnXSwgKGludCkgJHJlY1sncW9oJ10sICRpb3JkZXIgXSApOwogICAgICAgICAgICAkaW9yZGVyKys7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gVFJVRTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfdGVzdEZpcnN0TGluZSgmJG1lc3NhZ2VzKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5fcmVjb3JkKTsgJGkrKyApIHsKICAgICAgICAgICAgJHRtcCA9IHRyaW0odHJpbSgkdGhpcy0+X3JlY29yZFskaV0pLCciXCcnKTsKICAgICAgICAgICAgJGJ5bmFtZVskdG1wXSA9ICRpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X2RlZnNfYnluYW1lID0gJGJ5bmFtZTsKICAgICAgICAkdGhpcy0+X2RlZnNfYnlpbmRleCA9ICR0aGlzLT5fcmVjb3JkOwoKICAgICAgICAkcmVxdWlyZWRfZmllbGRzID0gZXhwbG9kZSgnLCcsJyNGTEFHLCNuYW1lLCNwcmljZScpOwogICAgICAgIGZvcmVhY2goICRyZXF1aXJlZF9maWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgaWYoICFhcnJheV9rZXlfZXhpc3RzKCRvbmUsJHRoaXMtPl9kZWZzX2J5bmFtZSkgKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGZpZWxkICcuJG9uZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRtZXNzYWdlc1tdID0gJ2ZvdW5kIGFsbCByZXF1aXJlZCBmaWVsZHMnOwoKICAgICAgICAkY2F0cyA9ICR0aGlzLT5fZ2V0RmllbGROYW1lc0xpa2UoJyNDQVQnKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGNhdHMpICkgewogICAgICAgICAgICBmb3JlYWNoKCAkY2F0cyBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMgV0hFUkUgbmFtZSA9ID8nOwoKICAgICAgICAgICAgICAgICR0bXAgPSB0cmltKHN1YnN0cigkb25lLDUpKTsKICAgICAgICAgICAgICAgICR0bXAgPSB0cmltKCR0bXAsJyJcJycpOwogICAgICAgICAgICAgICAgaWYoIGVtcHR5KCR0bXApICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdF9pZCA9ICRkYi0+R2V0T25lKCRmcXVlcnksYXJyYXkoJHRtcCkpOwogICAgICAgICAgICAgICAgaWYoICR0X2lkICkgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ2ZvdW5kIGV4aXN0aW5nIGNhdGVnb3J5ICcuJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ3Vua25vd24gY2F0ZWdvcnkgJy4kdG1wOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkZmllbGRzID0gJHRoaXMtPl9nZXRGaWVsZE5hbWVzTGlrZSgnI0ZJRUxEJyk7CiAgICAgICAgaWYoIGlzX2FycmF5KCRmaWVsZHMpICkgewogICAgICAgICAgICAkZmllbGRfdHlwZXMgPSBhcnJheV9rZXlzKHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZF90eXBlcygpKTsKICAgICAgICAgICAgJGZxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBuYW1lID0gPyc7CiAgICAgICAgICAgIGZvcmVhY2goICRmaWVsZHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCc6Jywkb25lKTsKICAgICAgICAgICAgICAgIGlmKCBjb3VudCgkdG1wKSAhPSAzICkgY29udGludWU7CiAgICAgICAgICAgICAgICAkdHlwZSA9IHRyaW0odHJpbSgkdG1wWzFdKSwnIlwnJyk7CiAgICAgICAgICAgICAgICAkbmFtZSA9IHRyaW0odHJpbSgkdG1wWzJdKSwnIlwnJyk7CiAgICAgICAgICAgICAgICBpZiggZW1wdHkoJHR5cGUpIHx8IGVtcHR5KCRuYW1lKSApIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdJbnZhbGlkIGZpZWxkIGRlZmluaXRpb246ICcuJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoICFpbl9hcnJheSgkdHlwZSwkZmllbGRfdHlwZXMpICkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5fc2V0RXJyb3IoJ0ludmFsaWQgZmllbGQgdHlwZTogJy4kdHlwZSk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRfaWQgPSAkZGItPkdldE9uZSgkZnF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgICAgICAgICAgICBpZiggISR0X2lkICkgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ3Vua25vd24gZmllbGQgJy4kbmFtZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICRtZXNzYWdlc1tdID0gJ2ZvdW5kIGZpZWxkICcuJG5hbWUuJyBvZiB0eXBlICcuJHR5cGU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF90ZXN0TmV3UHJvZHVjdCgmJG1lc3NhZ2UpCiAgICB7CiAgICAgICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJlcXVpcmVkIG51bWJlciBvZiBmaWVsZHMKICAgICAgICAvLyBhY2NvcmRpbmcgdG8gdGhlIGhlYWRlci4KICAgICAgICBpZiggJHRoaXMtPl9nZXRGaWVsZENvdW50KCkgPCAyICkgewogICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdpbnZhbGlkIGZpZWxkIGNvdW50ICgnLiR0aGlzLT5fZ2V0RmllbGRDb3VudCgpLicgb2YgZXhwZWN0ZWQgJy4kdGhpcy0+X2dldERlZkNvdW50KCkuJyknKTsKICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgICAgIH0KICAgICAgICBpZiggISAkdGhpcy0+X2dldEZpZWxkKCcjbmFtZScpICkgewogICAgICAgICAgICAkdGhpcy0+X3NldEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIGZpZWxkICNuYW1lJyk7CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdExpbmUoJGxpbmUsJiRtZXNzYWdlcykKICAgIHsKICAgICAgICAkcG9zID0gc3RycG9zKCRsaW5lLCcvLycpOwogICAgICAgIGlmKCAkcG9zICE9PSBGQUxTRSApICRsaW5lID0gc3Vic3RyKCRsaW5lLDAsJHBvcyk7CiAgICAgICAgJGxpbmUgPSB0cmltKCRsaW5lKTsKICAgICAgICBpZiggZW1wdHkoJGxpbmUpICkgcmV0dXJuIFRSVUU7CgogICAgICAgICRyZXMgPSAkdGhpcy0+X3NldExpbmUoJGxpbmUpOwogICAgICAgIGlmKCAkcmVzID09PSBGQUxTRSApIHJldHVybiBGQUxTRTsKCiAgICAgICAgaWYoICR0aGlzLT5fbGluZW51bSA9PSAxICkgewogICAgICAgICAgICAkcmVzID0gJHRoaXMtPl90ZXN0Rmlyc3RMaW5lKCRtZXNzYWdlcyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkZmxhZyA9IHN0cnRvdXBwZXIoJHRoaXMtPl9nZXRGaWVsZCgnI0ZMQUcnKSk7CiAgICAgICAgICAgIGlmKCAkZmxhZyA9PSAnUCcgKSB7CiAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPl90ZXN0TmV3UHJvZHVjdCgkbWVzc2FnZXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYoICRmbGFnID09ICcnICkgewogICAgICAgICAgICAgICAgLy8gZW1wdHkgZmxhZywgaWdub3JlIHRoaXMgbGluZS4KICAgICAgICAgICAgICAgICRyZXMgPSBUUlVFOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignaW52YWxpZCBmaWVsZDogI0ZMQUcnKTsKICAgICAgICAgICAgICAgICRyZXMgPSBGQUxTRTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIGhhbmRsZUxpbmUoJGxpbmUpCiAgICB7CiAgICAgICAgLy8gdHJpbSBvZmYgY29tbWVudHMuCiAgICAgICAgJHBvczEgPSBzdHJwb3MoJGxpbmUsJy8vJyk7CiAgICAgICAgJHBvczIgPSBzdHJwb3MoJGxpbmUsJ2h0dHA6Ly8nKTsKICAgICAgICAkcG9zMyA9IHN0cnBvcygkbGluZSwnaHR0cHM6Ly8nKTsKICAgICAgICAkcG9zNCA9IHN0cnBvcygkbGluZSwnZnRwOi8vJyk7CiAgICAgICAgaWYoICRwb3MxICE9IEZBTFNFICkgewogICAgICAgICAgICBpZiggJHBvczIgIT09IEZBTFNFICYmICRwb3MyID09ICRwb3MxIC0gNSApIHsKICAgICAgICAgICAgICAgIC8vIGl0cyBhbiBodHRwIGxpbmsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkcG9zMyAhPT0gRkFMU0UgJiYgJHBvczMgPT0gJHBvczEgLSA2ICkgewogICAgICAgICAgICAgICAgLy8gaXRzIGFuIGh0dHBzIGxpbmsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKCAkcG9zNCAhPT0gRkFMU0UgJiYgJHBvczQgPT0gJHBvczEgLSA0ICkgewogICAgICAgICAgICAgICAgLy8gaXRzIGFuIGZ0cCBsaW5rCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkbGluZSA9IHN1YnN0cigkbGluZSwwLCRwb3MxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkbGluZSA9IHRyaW0oJGxpbmUpOwogICAgICAgIGlmKCBlbXB0eSgkbGluZSkgKSByZXR1cm4gVFJVRTsKCiAgICAgICAgJHJlcyA9ICR0aGlzLT5fc2V0TGluZSgkbGluZSk7CiAgICAgICAgaWYoICRyZXMgPT09IEZBTFNFICkgcmV0dXJuIEZBTFNFOwogICAgICAgIGlmKCAkdGhpcy0+X2xpbmVudW0gPT0gMSApIHsKICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5faGFuZGxlRmlyc3RMaW5lKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiggJHRoaXMtPl9nZXRGaWVsZCgnI0ZMQUcnKSA9PSAnUCcgKSB7CiAgICAgICAgICAgICAgICAkcmVzID0gJHRoaXMtPl90ZXN0TmV3UHJvZHVjdCgkbWVzc2FnZXMpOwogICAgICAgICAgICAgICAgaWYoICRyZXMgKSAkcmVzID0gJHRoaXMtPl9oYW5kbGVQcm9kdWN0TGluZSgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPl9zZXRFcnJvcignaW52YWxpZCBmaWVsZDogI0ZMQUcnKTsKICAgICAgICAgICAgICAgICRyZXMgPSBGQUxTRTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBpc19uZXdfcmVjb3JkKCRsaW5lKQogICAgewogICAgICAgIC8vIGEgZnVuY3Rpb24gdG8gdGVzdCBpZiB0aGlzIGxpbmUgZGVub3RlcyB0aGUgc3RhcnQgb2YgYSBuZXcgcmVjb3JkLgogICAgICAgICR2YWxpZCA9IGFycmF5KCcjRkxBRycsJ1AnLCciI0ZMQUciJywnIlAiJyk7CgogICAgICAgIGZvcmVhY2goICR2YWxpZCBhcyAkb25lICkgewogICAgICAgICAgICAkb25lIC49ICR0aGlzLT5fZGVsaW07CiAgICAgICAgICAgIGlmKCBzdGFydHN3aXRoKCRsaW5lLCRvbmUpICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCgogICAgcHJpdmF0ZSBmdW5jdGlvbiBteV9mZ2V0cygkZmgpCiAgICB7CiAgICAgICAgaWYoICEkZmggKSByZXR1cm47CiAgICAgICAgJHBvczEgPSBmdGVsbCgkZmgpOwoKICAgICAgICAkbGluZSA9IGZnZXRzKCRmaCk7CiAgICAgICAgaWYoIHN0cnBvcygkbGluZSwiXHIiKSA9PT0gRkFMU0UgKSByZXR1cm4gJGxpbmU7CgogICAgICAgIC8vIGxpbmUgaXMgcHJvYmFibHkgYSBjcmFwcHkgbWFjIGxpbmUuCiAgICAgICAgJGxlbjEgPSBzdHJsZW4oJGxpbmUpOwogICAgICAgICRwb3MgPSBzdHJwb3MoJGxpbmUsIlxyIik7CgogICAgICAgICRsaW5lID0gc3Vic3RyKCRsaW5lLDAsJHBvcyk7CiAgICAgICAgZnNlZWsoJGZoLCgkbGVuMSAtICRwb3MgLTEgKSAqIC0xLFNFRUtfQ1VSKTsKICAgICAgICByZXR1cm4gJGxpbmU7CiAgICB9CgoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfdW5wYXJzZWRfcmVjb3JkKCRmaCkKICAgIHsKICAgICAgICAkbGluZSA9ICcnOwogICAgICAgIHdoaWxlKCAhZmVvZigkZmgpICkgewogICAgICAgICAgICAkcG9zID0gZnRlbGwoJGZoKTsKICAgICAgICAgICAgJHRkYXRhID0gJHRoaXMtPm15X2ZnZXRzKCRmaCk7CiAgICAgICAgICAgIGlmKCAhJHRoaXMtPmlzX25ld19yZWNvcmQoJHRkYXRhKSApIHsKICAgICAgICAgICAgICAgICRsaW5lIC49ICR0ZGF0YTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiggc3RybGVuKCRsaW5lKSA+IDAgKSB7CiAgICAgICAgICAgICAgICBmc2VlaygkZmgsJHBvcyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICAkbGluZSA9ICR0ZGF0YTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkbGluZTsKICAgIH0KCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMKPz4=]]></data>
	</file>
	<file>
	  <filename>/lib/class.ProductStorage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKbmFtZXNwYWNlIFByb2R1Y3RzOwoKY2xhc3MgUHJvZHVjdFN0b3JhZ2UKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9pbnN0ID0gMDsgLy8gdGhpcyBpcyBhIHNpbmdsZXRvbi4KICAgIHByaXZhdGUgc3RhdGljICRfY2FjaGUgPSBbXTsKICAgIHByaXZhdGUgJF9tb2Q7CiAgICBwcml2YXRlICRfZGI7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCBcUHJvZHVjdHMgJG1vZCwgJGRiICkKICAgIHsKICAgICAgICBpZiggc2VsZjo6JF9pbnN0ID4gMCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ09ubHkgb25lIGluc3RhbmNlIG9mICcuX19DTEFTU19fLicgaXMgYWxsb3dlZCcpOwogICAgICAgIHNlbGY6OiRfaW5zdCsrOwogICAgICAgICR0aGlzLT5fbW9kID0gJG1vZDsKICAgICAgICAkdGhpcy0+X2RiID0gJGRiOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBkYl9kYXRlc3RyaW5nKCAkdHMgPSBudWxsICkKICAgIHsKICAgICAgICBpZiggaXNfbnVsbCgkdHMpICkgJHRzID0gdGltZSgpOwogICAgICAgIHJldHVybiB0cmltKCR0aGlzLT5fZGItPkRiVGltZVN0YW1wKCR0cyksIiciKTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9pbnNlcnRfY3VzdG9tX2ZpZWxkcyggJHByb2R1Y3RfaWQsICRwcm9kdWN0X2FyciApCiAgICB7CiAgICAgICAgaWYoIGlzc2V0KCRwcm9kdWN0X2FyclsnZmllbGRfdmFscyddKSAmJiBjb3VudCgkcHJvZHVjdF9hcnJbJ2ZpZWxkX3ZhbHMnXSkgKSB7CiAgICAgICAgICAgICRkYiA9ICR0aGlzLT5fZGI7CiAgICAgICAgICAgICRkZWZzID0gXHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoIFRSVUUgKTsKICAgICAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLnNlbGY6OnByb2R1Y3RfZmllbGR2YWxzX3RhYmxlX25hbWUoKS4nIChwcm9kdWN0X2lkLCBmaWVsZGRlZl9pZCwgdmFsdWUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LD8sPyknOwogICAgICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdF9hcnJbJ2ZpZWxkX3ZhbHMnXSBhcyAkZmllbGRkZWZfaWQgPT4gJHZhbCApIHsKICAgICAgICAgICAgICAgIGlmKCAkZGVmc1skZmllbGRkZWZfaWRdLT50eXBlID09ICdkaW1lbnNpb25zJyB8fCAkZGVmc1skZmllbGRkZWZfaWRdLT50eXBlID09ICdzdWJzY3JpcHRpb24nICYmIChpc19hcnJheSgkdmFsKSB8fCBpc19vYmplY3QoJHZhbCkpICkgewogICAgICAgICAgICAgICAgICAgICR2YWwgPSBzZXJpYWxpemUoJHZhbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZGItPkV4ZWN1dGUoICRzcWwsIFsgJHByb2R1Y3RfaWQsICRmaWVsZGRlZl9pZCwgJHZhbCwgJHRoaXMtPmRiX2RhdGVzdHJpbmcoKSwgJHRoaXMtPmRiX2RhdGVzdHJpbmcoKSBdICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfaW5zZXJ0X2hpZXJhcmNoeV9yZWNvcmRzKCAkcHJvZHVjdF9pZCwgJHByb2R1Y3RfYXJyICkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHByb2R1Y3RfYXJyWydoaWVyYXJjaGllcyddKSAmJiBjb3VudCgkcHJvZHVjdF9hcnJbJ2hpZXJhcmNoaWVzJ10pICkgewogICAgICAgICAgICAkZGIgPSAkdGhpcy0+X2RiOwogICAgICAgICAgICAkc3FsID0gJ0lOU0VSVCBJTlRPICcuc2VsZjo6cHJvZHVjdF9oaWVyYXJjaGllc190YWJsZV9uYW1lKCkuJyAocHJvZHVjdF9pZCxoaWVyYXJjaHlfaWQpIFZBTFVFUyAoPyw/KSc7CiAgICAgICAgICAgIGZvcmVhY2goICRwcm9kdWN0X2FyclsnaGllcmFyY2hpZXMnXSBhcyAkaGllcl9pZCApIHsKICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSggJHNxbCwgWyAkcHJvZHVjdF9pZCwgJGhpZXJfaWQgXSApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2luc2VydF9jYXRlZ29yeV9yZWNvcmRzKCAkcHJvZHVjdF9pZCwgJHByb2R1Y3RfYXJyICkKICAgIHsKICAgICAgICBpZiggaXNzZXQoJHByb2R1Y3RfYXJyWydjYXRlZ29yaWVzJ10pICYmIGNvdW50KCRwcm9kdWN0X2FyclsnY2F0ZWdvcmllcyddKSApIHsKICAgICAgICAgICAgJGRiID0gJHRoaXMtPl9kYjsKICAgICAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLnNlbGY6OnByb2R1Y3RfY2F0ZWdvcmllc190YWJsZV9uYW1lKCkuJyAocHJvZHVjdF9pZCwgY2F0ZWdvcnlfaWQsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKD8sPyw/LD8pJzsKICAgICAgICAgICAgZm9yZWFjaCggJHByb2R1Y3RfYXJyWydjYXRlZ29yaWVzJ10gYXMgJGNhdF9pZCApIHsKICAgICAgICAgICAgICAgICRkYi0+RXhlY3V0ZSggJHNxbCwgWyAkcHJvZHVjdF9pZCwgJGNhdF9pZCwgJHRoaXMtPmRiX2RhdGVzdHJpbmcoKSwgJHRoaXMtPmRiX2RhdGVzdHJpbmcoKSBdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9pbnNlcnRfYXR0cmliX3JlY29yZHMoICRwcm9kdWN0X2lkLCAkcHJvZHVjdF9hcnIgKQogICAgewogICAgICAgIC8vIGFsd2F5cyBpbnNlcnQgaW4gdGhlIG9yZGVyIHdlICBmb3VuZCB0aGVtLi4gcmVnYXJkbGVzcyBvZiBhbnkgaW9yZGVyIGZpZWxkLgogICAgICAgIGlmKCBpc3NldCgkcHJvZHVjdF9hcnJbJ2F0dHJpYnMnXSkgJiYgY291bnQoJHByb2R1Y3RfYXJyWydhdHRyaWJzJ10pICkgewogICAgICAgICAgICAkZGIgPSAkdGhpcy0+X2RiOwogICAgICAgICAgICAkaW9yZGVyID0gMTsKICAgICAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLnNlbGY6OnByb2R1Y3RfYXR0cmlic190YWJsZV9uYW1lKCkuJyAocHJvZHVjdF9pZCwgdGV4dCwgYWRqdXN0bWVudCwgc2t1LCBxb2gsIG5vdGVzLCBpb3JkZXIpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyknOwogICAgICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdF9hcnJbJ2F0dHJpYnMnXSBhcyAkcmVjICkgewogICAgICAgICAgICAgICAgJGRiLT5FeGVjdXRlKCAkc3FsLCBbICRwcm9kdWN0X2lkLCAkcmVjWyd0ZXh0J10sICRyZWNbJ2FkanVzdG1lbnQnXSwgJHJlY1snc2t1J10sICRyZWNbJ3FvaCddLCAkcmVjWydub3RlcyddLCAkaW9yZGVyKysgXSApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9pbnNlcnRfcHJvZHVjdCggUHJvZHVjdCAkcHJvZHVjdCApCiAgICB7CiAgICAgICAgJGFyciA9ICRwcm9kdWN0LT50b19hcnJheSgpOwogICAgICAgICRkYiA9ICR0aGlzLT5fZGI7CgogICAgICAgIC8vIGluc2VydCB0aGUgcHJvZHVjdCBpdHNlbGYuCiAgICAgICAgJGFkanVzdF9wYXJtcyA9IFsgJ2lkJz0+bnVsbCwgJ2NyZWF0ZV9kYXRlJz0+JHRoaXMtPmRiX2RhdGVzdHJpbmcoKSwgJ21vZGlmaWVkX2RhdGUnPT4kdGhpcy0+ZGJfZGF0ZXN0cmluZygpIF07CiAgICAgICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnLnNlbGY6OnByb2R1Y3RfdGFibGVfbmFtZSgpLicgKHByb2R1Y3RfbmFtZSwgcHJpY2UsIGRldGFpbHMsIHRheGFibGUsIGRpZ2l0YWwsIHN0YXR1cywgd2VpZ2h0LCBza3UsIGFsaWFzLCB1cmwsIG93bmVyLCBleHRyYSwKICAgICAgICAgICAgICAgICAgIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKQogICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8pJzsKICAgICAgICAkaV9hcnIgPSBbICRwcm9kdWN0LT5uYW1lLCAkcHJvZHVjdC0+cHJpY2UsICRwcm9kdWN0LT5kZXRhaWxzLCAkcHJvZHVjdC0+dGF4YWJsZSwgJHByb2R1Y3QtPmRpZ2l0YWwsICRwcm9kdWN0LT5zdGF0dXMsICRwcm9kdWN0LT53ZWlnaHQsICRwcm9kdWN0LT5za3UsCiAgICAgICAgICAgICAgICAgICAkcHJvZHVjdC0+YWxpYXMsICRwcm9kdWN0LT51cmwsICRwcm9kdWN0LT5vd25lcixzZXJpYWxpemUoJGFyclsnZXh0cmEnXSksCiAgICAgICAgICAgICAgICAgICAkYWRqdXN0X3Bhcm1zWydjcmVhdGVfZGF0ZSddLCAkYWRqdXN0X3Bhcm1zWydtb2RpZmllZF9kYXRlJ10gXTsKICAgICAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCAkc3FsLCAkaV9hcnIgKTsKICAgICAgICBpZiggISRkYnIgKSB0aHJvdyBuZXcgXGNnX3NxbF9lcnJvciggJ1NZU1RFTSBFUlJPUjogUHJvYmxlbSBpbnNlcnRpbmcgcHJvZHVjdDogJy4kZGItPkVycm9yTXNnKCkgKTsKICAgICAgICAkbmV3X2lkID0gJGFkanVzdF9wYXJtc1snaWQnXSA9ICRkYi0+SW5zZXJ0X0lEKCk7CiAgICAgICAgJHByb2R1Y3QtPmZyb21fYXJyYXkoICRhZGp1c3RfcGFybXMgKTsKCiAgICAgICAgLy8gaW5zZXJ0IGFuY2lsbGFyeSBkYXRhLgogICAgICAgICR0aGlzLT5faW5zZXJ0X2N1c3RvbV9maWVsZHMoICRuZXdfaWQsICRhcnIgKTsKICAgICAgICAkdGhpcy0+X2luc2VydF9oaWVyYXJjaHlfcmVjb3JkcyggJG5ld19pZCwgJGFyciApOwogICAgICAgICR0aGlzLT5faW5zZXJ0X2NhdGVnb3J5X3JlY29yZHMoICRuZXdfaWQsICRhcnIgKTsKICAgICAgICAkdGhpcy0+X2luc2VydF9hdHRyaWJfcmVjb3JkcyggJG5ld19pZCwgJGFyciApOwoKICAgICAgICBcQ01TTVNcSG9va01hbmFnZXI6OmRvX2hvb2soJ1Byb2R1Y3RzOjpBZnRlckluc2VydFByb2R1Y3QnLCAkcHJvZHVjdCApOwogICAgICAgIHJldHVybiAkcHJvZHVjdDsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9kZWxldGVfY29ubmVjdGVkX2RhdGEoICRwcm9kdWN0X2lkLCAkZGVsZXRlX2ZpbGVzID0gZmFsc2UgKQogICAgewogICAgICAgICRwcm9kdWN0X2lkID0gKGludCkgJHByb2R1Y3RfaWQ7CiAgICAgICAgaWYoICRwcm9kdWN0X2lkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgcHJvZHVjdF9pZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgaWYoICRkZWxldGVfZmlsZXMgKSB7CiAgICAgICAgICAgICRkaXIgPSBccHJvZHVjdF91dGlsczo6Z2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoICRwcm9kdWN0X2lkICk7CiAgICAgICAgICAgIFxjZ2VfZGlyOjpyZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSgkZGlyKTsKICAgICAgICB9CgogICAgICAgICRkYiA9ICR0aGlzLT5fZGI7CiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLnNlbGY6OnByb2R1Y3RfY2F0ZWdvcmllc190YWJsZV9uYW1lKCkuJyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCAkc3FsLCBbICRwcm9kdWN0X2lkXSApOwogICAgICAgICRzcWwgPSAnREVMRVRFIEZST00gJy5zZWxmOjpwcm9kdWN0X2hpZXJhcmNoaWVzX3RhYmxlX25hbWUoKS4nIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoICRzcWwsIFsgJHByb2R1Y3RfaWRdICk7CiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLnNlbGY6OnByb2R1Y3RfZmllbGR2YWxzX3RhYmxlX25hbWUoKS4nIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoICRzcWwsIFsgJHByb2R1Y3RfaWRdICk7CiAgICAgICAgJHNxbCA9ICdERUxFVEUgRlJPTSAnLnNlbGY6OnByb2R1Y3RfYXR0cmlic190YWJsZV9uYW1lKCkuJyBXSEVSRSBwcm9kdWN0X2lkID0gPyc7CiAgICAgICAgJGRiLT5FeGVjdXRlKCAkc3FsLCBbICRwcm9kdWN0X2lkXSApOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX3VwZGF0ZV9wcm9kdWN0KCBQcm9kdWN0ICRwcm9kdWN0ICkKICAgIHsKICAgICAgICAkZGIgPSAkdGhpcy0+X2RiOwoKICAgICAgICBcQ01TTVNcSG9va01hbmFnZXI6OmRvX2hvb2soJ1Byb2R1Y3RzOjpCZWZvcmVVcGRhdGVQcm9kdWN0JywgJHByb2R1Y3QgKTsKICAgICAgICAkYXJyID0gJHByb2R1Y3QtPnRvX2FycmF5KCk7CgogICAgICAgICRzcWwgPSAnVVBEQVRFICcuc2VsZjo6cHJvZHVjdF90YWJsZV9uYW1lKCkuJyBTRVQgcHJvZHVjdF9uYW1lID0gPywgcHJpY2UgPSA/LCBkZXRhaWxzID0gPywgdGF4YWJsZSA9ID8sIGRpZ2l0YWwgPSA/LCBzdGF0dXMgPSA/LCB3ZWlnaHQgPSA/LAogICAgICAgICAgICAgICAgc2t1ID0gPywgYWxpYXMgPSA/LCB1cmwgPSA/LCBvd25lciA9ID8sIGV4dHJhID0gPywgbW9kaWZpZWRfZGF0ZSA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICAkYWRqX3Bhcm1zID0gWyAnbW9kaWZpZWRfZGF0ZSc9PiR0aGlzLT5kYl9kYXRlc3RyaW5nKCkgXTsKICAgICAgICAkZGItPkV4ZWN1dGUoICRzcWwsIFsgJHByb2R1Y3QtPm5hbWUsICRwcm9kdWN0LT5wcmljZSwgJHByb2R1Y3QtPmRldGFpbHMsICRwcm9kdWN0LT50YXhhYmxlLCAkcHJvZHVjdC0+ZGlnaXRhbCwgJHByb2R1Y3QtPnN0YXR1cywgJHByb2R1Y3QtPndlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHByb2R1Y3QtPnNrdSwgJHByb2R1Y3QtPmFsaWFzLCAkcHJvZHVjdC0+dXJsLCAkcHJvZHVjdC0+b3duZXIsIHNlcmlhbGl6ZSgkYXJyWydleHRyYSddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFkal9wYXJtc1snbW9kaWZpZWRfZGF0ZSddLCAkcHJvZHVjdC0+aWRdICk7CgogICAgICAgICR0aGlzLT5fZGVsZXRlX2Nvbm5lY3RlZF9kYXRhKCAkcHJvZHVjdC0+aWQgKTsKICAgICAgICAkdGhpcy0+X2luc2VydF9jdXN0b21fZmllbGRzKCAkcHJvZHVjdC0+aWQsICRhcnIgKTsKICAgICAgICAkdGhpcy0+X2luc2VydF9oaWVyYXJjaHlfcmVjb3JkcyggJHByb2R1Y3QtPmlkLCAkYXJyICk7CiAgICAgICAgJHRoaXMtPl9pbnNlcnRfY2F0ZWdvcnlfcmVjb3JkcyggJHByb2R1Y3QtPmlkLCAkYXJyICk7CiAgICAgICAgJHRoaXMtPl9pbnNlcnRfYXR0cmliX3JlY29yZHMoICRwcm9kdWN0LT5pZCwgJGFyciApOwogICAgICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygnUHJvZHVjdHM6OkFmdGVyVXBkYXRlUHJvZHVjdCcsICRwcm9kdWN0ICk7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoZWNrX3Byb2R1Y3RfbmFtZSggUHJvZHVjdCAkcHJvZHVjdCApCiAgICB7CiAgICAgICAgJHByb2R1Y3RfbmFtZSA9IHRyaW0oJHByb2R1Y3QtPm5hbWUpOwogICAgICAgIGlmKCAhJHByb2R1Y3RfbmFtZSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbiggJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX3Byb2R1Y3RfbmFtZXJlcXVpcmVkJykgKTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaWQgRlJPTSAnLnNlbGY6OnByb2R1Y3RfdGFibGVfbmFtZSgpLicgV0hFUkUgcHJvZHVjdF9uYW1lID0gPyc7CiAgICAgICAgJHBhcm1zID0gWyAkcHJvZHVjdF9uYW1lIF07CiAgICAgICAgaWYoICRwcm9kdWN0LT5pZCA+IDAgKSB7CiAgICAgICAgICAgICRzcWwgLj0gJyBBTkQgaWQgIT0gPyc7CiAgICAgICAgICAgICRwYXJtc1tdID0gJHByb2R1Y3QtPmlkOwogICAgICAgIH0KICAgICAgICAkdF9pZCA9IChpbnQpICR0aGlzLT5fZGItPkdldE9uZSggJHNxbCwgJHBhcm1zICk7CiAgICAgICAgaWYoICR0X2lkID4gMCApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCcpKTsKICAgICAgICByZXR1cm4gJHByb2R1Y3Q7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrX3Byb2R1Y3RfYWxpYXMoIFByb2R1Y3QgJHByb2R1Y3QgKQogICAgewogICAgICAgICRhbGlhcyA9IHRyaW0oJHByb2R1Y3QtPmFsaWFzKTsKICAgICAgICBpZiggISRhbGlhcyApIHsKICAgICAgICAgICAgJGFsaWFzID0gXHByb2R1Y3Rfb3BzOjpnZW5lcmF0ZV9hbGlhcyggJHByb2R1Y3QtPm5hbWUgKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYWxpYXMgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCAkYWxpYXMgKTsKICAgICAgICB9CiAgICAgICAgaWYoIFxwcm9kdWN0X29wczo6Y2hlY2tfYWxpYXNfdXNlZCggJGFsaWFzLCAkcHJvZHVjdC0+aWQgKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfcHJvZHVjdF9hbGlhc3VzZWQnKSApOwogICAgICAgICRwcm9kdWN0LT5zZXRfYWxpYXMoICRhbGlhcyApOwogICAgICAgIHJldHVybiAkcHJvZHVjdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfc2t1KCBQcm9kdWN0ICRwcm9kdWN0ICkKICAgIHsKICAgICAgICBpZiggZW1wdHkoJHByb2R1Y3QtPnNrdSkgJiYgJHRoaXMtPl9tb2QtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJykgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX3Byb2R1Y3Rfc2t1cmVxdWlyZWQnKSk7CiAgICAgICAgaWYoICFlbXB0eSgkcHJvZHVjdC0+c2t1KSApIHsKICAgICAgICAgICAgaWYoIFxwcm9kdWN0X29wczo6Y2hlY2tfc2t1X3VzZWQoICRwcm9kdWN0LT5za3UsICRwcm9kdWN0LT5pZCApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9wcm9kdWN0X3NrdXVzZWQnKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcHJvZHVjdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfdXJsc2x1ZyggUHJvZHVjdCAkcHJvZHVjdCApCiAgICB7CiAgICAgICAgJHVybHNsdWcgPSAkcHJvZHVjdC0+dXJsOwogICAgICAgIGlmKCAkdXJsc2x1ZyApIHsKICAgICAgICAgICAgJHVybHNsdWcgPSB0cmltKHRyaW0oJHVybHNsdWcsJy8nKSk7CgogICAgICAgICAgICAkdHIgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCR1cmxzbHVnLGZhbHNlLHRydWUpOwogICAgICAgICAgICBpZiggc3RydG9sb3dlcigkdHIpICE9IHN0cnRvbG93ZXIoJHVybHNsdWcpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9wcm9kdWN0X2ludmFsaWR1cmxzbHVnJykpOwoKICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoaXMgdXJsIGlzbid0IHRha2VuCiAgICAgICAgICAgICR1cmwgPSB0cmltKCR1cmxzbHVnLCIgL1x0XHJcblwwXHgwOCIpOwogICAgICAgICAgICBcY21zX3JvdXRlX21hbmFnZXI6OmxvYWRfcm91dGVzKCk7CiAgICAgICAgICAgICRyb3V0ZSA9IFxjbXNfcm91dGVfbWFuYWdlcjo6ZmluZF9tYXRjaCgkdXJsc2x1Zyk7CiAgICAgICAgICAgIGlmKCAkcm91dGUgJiYgaXNzZXQoJHJvdXRlLT5kZWZhdWx0c1sncHJvZHVjdGlkJ10pICYmICRyb3V0ZS0+ZGVmYXVsdHNbJ3Byb2R1Y3RpZCddICE9ICRwcm9kdWN0LT5pZCApIHsKICAgICAgICAgICAgICAgIC8vIHdlJ3JlIGFkZGluZyBhbiBhcnRpY2xlLCBub3QgZWRpdGluZy4uLiBhbnkgbWF0Y2hpbmcgcm91dGUgaXMgYmFkLgogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9wcm9kdWN0X3VybHNsdWd1c2VkJykpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcHJvZHVjdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfYXR0cmlicyggUHJvZHVjdCAkcHJvZHVjdCApCiAgICB7CiAgICAgICAgJGF0dHJpYnMgPSAkcHJvZHVjdC0+YXR0cmliczsKICAgICAgICBpZiggIWlzX2FycmF5KCRhdHRyaWJzKSB8fCAhY291bnQoJGF0dHJpYnMpICkgcmV0dXJuICRwcm9kdWN0OwogICAgICAgIC8vaWYoIGNvdW50KCRhdHRyaWJzKSA8IDIgKSB0aHJvdyBuZXcgXFJ1bnRpbWVFeGNlcHRpb24oJHRoaXMtPl9tb2QtPkxhbmcoJ2Vycm9yX2F0dHJpYl9jb3VudCcpKTsKCiAgICAgICAgLy8gdHJpdmlhbCBjaGVjayBmb3IgZHVwbGljYXRlZCBuYW1lIG9yIHNrdQogICAgICAgICRuYW1lcyA9ICRza3VzID0gW107CiAgICAgICAgZm9yZWFjaCggJGF0dHJpYnMgYXMgJGF0dHJpYiApIHsKICAgICAgICAgICAgJHRleHQgPSB0cmltKCRhdHRyaWItPnRleHQpOwogICAgICAgICAgICAkc2t1ID0gdHJpbSgkYXR0cmliLT5za3UpOwogICAgICAgICAgICBpZiggJHRleHQgJiYgIWluX2FycmF5KCR0ZXh0LCRuYW1lcykgKSAkbmFtZXNbXSA9ICR0ZXh0OwogICAgICAgICAgICBpZiggJHNrdSAmJiBpbl9hcnJheSgkc2t1LCRza3VzKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfYXR0cmliX2R1cGxpY2F0ZXNrdScpKTsKICAgICAgICAgICAgJHNrdXNbXSA9ICRza3U7CiAgICAgICAgfQogICAgICAgIGlmKCBjb3VudCgkbmFtZXMpIDwgY291bnQoJGF0dHJpYnMpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9hdHRyaWJfdGV4dCcpKTsKCiAgICAgICAgZm9yZWFjaCggJGF0dHJpYnMgYXMgJGF0dHJpYiApIHsKICAgICAgICAgICAgaWYoIGVtcHR5KCRwcm9kdWN0LT5za3UpICkgewogICAgICAgICAgICAgICAgaWYoICR0aGlzLT5fbW9kLT5HZXRQcmVmZXJlbmNlKCdza3VyZXF1aXJlZCcpICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCRtb2QtPkxhbmcoJ2Vycm9yX2F0dHJpYl9za3VyZXF1aXJlZCcpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmKCBccHJvZHVjdF9vcHM6OmNoZWNrX3NrdV91c2VkKCAkYXR0cmliLT5za3UsICRwcm9kdWN0LT5pZCApICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCR0aGlzLT5fbW9kLT5MYW5nKCdlcnJvcl9hdHRyaWJfc2t1dXNlZCcpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHByb2R1Y3Q7CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGNoZWNrX2ZpZWxkcyggUHJvZHVjdCAkcHJvZHVjdCApCiAgICB7CiAgICAgICAgJGdldF9maWVsZGRlZiA9IGZ1bmN0aW9uKCAkZmlkLCBhcnJheSAkZmllbGRkZWZzICkgewogICAgICAgICAgICBmb3JlYWNoKCAkZmllbGRkZWZzIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggJG9uZS0+aWQgPT0gJGZpZCApIHJldHVybiAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgJGZpZWxkZGVmcyA9IFxwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKFRSVUUsVFJVRSxGQUxTRSk7CiAgICAgICAgaWYoICFjb3VudCgkZmllbGRkZWZzKSAmJiBjb3VudCgkcHJvZHVjdC0+ZmllbGRfdmFscykgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdObyBmaWVsZGRlZnMgZGVmaW5lZCwgYnV0IGhhdmUgZmllbGQgdmFsdWVzIGluIHRoaXMgcHJvZHVjdCcpOwoKICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdC0+ZmllbGRfdmFscyBhcyAkZmlkID0+ICR2YWwgKSB7CiAgICAgICAgICAgIGlmKCAhJGdldF9maWVsZGRlZigkZmlkLCRmaWVsZGRlZnMpICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbigiRmllbGRkZWYgd2l0aCBpZCAkZmlkIGV4aXN0cyBpbiBwcm9kdWN0IGJ1dCBpcyBub3QgZGVmaW5lZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIHRvZG86IGNoZWNrIGZpZWxkIHZhbHVlLgogICAgICAgIH0KICAgICAgICByZXR1cm4gJHByb2R1Y3Q7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHZhbGlkYXRlKCBQcm9kdWN0ICRwcm9kdWN0ICkKICAgIHsKICAgICAgICBpZiggISRwcm9kdWN0LT5uYW1lICkgdGhyb3cgbmV3IFxSdW50aW1lRXhjZXB0aW9uKCAkdGhpcy0+X21vZC0+TGFuZygnZXJyb3JfcHJvZHVjdF9uYW1ldXNlZCcpICk7CiAgICAgICAgJHByb2R1Y3QgPSAkdGhpcy0+Y2hlY2tfcHJvZHVjdF9uYW1lKCAkcHJvZHVjdCApOwogICAgICAgICRwcm9kdWN0ID0gJHRoaXMtPmNoZWNrX3Byb2R1Y3RfYWxpYXMoICRwcm9kdWN0ICk7CiAgICAgICAgJHByb2R1Y3QgPSAkdGhpcy0+Y2hlY2tfc2t1KCAkcHJvZHVjdCApOwogICAgICAgICRwcm9kdWN0ID0gJHRoaXMtPmNoZWNrX3VybHNsdWcoICRwcm9kdWN0ICk7CiAgICAgICAgJHByb2R1Y3QgPSAkdGhpcy0+Y2hlY2tfZmllbGRzKCAkcHJvZHVjdCApOwogICAgICAgICRwcm9kdWN0ID0gJHRoaXMtPmNoZWNrX2F0dHJpYnMoICRwcm9kdWN0ICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoIFByb2R1Y3QgJHByb2R1Y3QgKQogICAgewogICAgICAgICR0aGlzLT52YWxpZGF0ZSggJHByb2R1Y3QgKTsKICAgICAgICBpZiggJHByb2R1Y3QtPmlkID4gMCApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5fdXBkYXRlX3Byb2R1Y3QoICRwcm9kdWN0ICk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5faW5zZXJ0X3Byb2R1Y3QoICRwcm9kdWN0ICk7CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gX2J1aWxkX2Zyb21fcm93KCBhcnJheSAkcm93ICkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCRyb3dbJ2lkJ10pIHx8ICRyb3dbJ2lkJ10gPCAxIHx8ICFpc3NldCgkcm93Wydwcm9kdWN0X25hbWUnXSkgfHwgISRyb3dbJ3Byb2R1Y3RfbmFtZSddICkgcmV0dXJuOwoKICAgICAgICAkZGIgPSAkdGhpcy0+X2RiOwogICAgICAgICRwcm9kdWN0X2lkID0gKGludCkgJHJvd1snaWQnXTsKICAgICAgICAkcm93WyduYW1lJ10gPSAkcm93Wydwcm9kdWN0X25hbWUnXTsKICAgICAgICB1bnNldCggJHJvd1sncHJvZHVjdF9uYW1lJ10pOwogICAgICAgIGlmKCAkcm93WydleHRyYSddICkgJHJvd1snZXh0cmEnXSA9IHVuc2VyaWFsaXplKCRyb3dbJ2V4dHJhJ10pOwoKICAgICAgICAvLyBnZXQgY2F0ZWdvcmllcwogICAgICAgICRzcWwgPSAnU0VMRUNUIGNhdGVnb3J5X2lkIEZST00gJy5zZWxmOjpwcm9kdWN0X2NhdGVnb3JpZXNfdGFibGVfbmFtZSgpLicgV0hFUkUgcHJvZHVjdF9pZCA9ID8gT1JERVIgQlkgY2F0ZWdvcnlfaWQnOwogICAgICAgICRyb3dbJ2NhdGVnb3JpZXMnXSA9IFtdOwogICAgICAgICRjYXRzID0gJGRiLT5HZXRDb2woICRzcWwsIFsgJHByb2R1Y3RfaWQgXSApOwogICAgICAgIGlmKCBpc19hcnJheSgkY2F0cykgKSAkcm93WydjYXRlZ29yaWVzJ10gPSAkY2F0czsKCiAgICAgICAgLy8gZ2V0IGhpZXJhcmNoaWVzCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaGllcmFyY2h5X2lkIEZST00gJy5zZWxmOjpwcm9kdWN0X2hpZXJhcmNoaWVzX3RhYmxlX25hbWUoKS4nIFdIRVJFIHByb2R1Y3RfaWQgPSA/IE9SREVSIEJZIGhpZXJhcmNoeV9pZCc7CiAgICAgICAgJHJvd1snaGllcmFyY2hpZXMnXSA9IFtdOwogICAgICAgICRoaWVycyA9ICRkYi0+R2V0Q29sKCAkc3FsLCBbICRwcm9kdWN0X2lkIF0gKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGhpZXJzKSApICRyb3dbJ2hpZXJhcmNoaWVzJ10gPSAkaGllcnM7CgogICAgICAgIC8vIGdldCBmaWVsZCB2YWx1ZXMKICAgICAgICAkc3FsID0gJ1NFTEVDVCBmaWVsZGRlZl9pZCwgdmFsdWUgRlJPTSAnLnNlbGY6OnByb2R1Y3RfZmllbGR2YWxzX3RhYmxlX25hbWUoKS4nIFdIRVJFIHByb2R1Y3RfaWQgPSA/IE9SREVSIEJZIGZpZWxkZGVmX2lkJzsKICAgICAgICAkZnYgPSAkZGItPkdldEFycmF5KCAkc3FsLCBbICRwcm9kdWN0X2lkIF0gKTsKICAgICAgICAkcm93WydmaWVsZHZhbHMnXSA9IFtdOwogICAgICAgIGlmKCBpc19hcnJheSgkZnYpICkgewogICAgICAgICAgICAkZGVmcyA9IFxwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKCBUUlVFICk7CiAgICAgICAgICAgIGZvcmVhY2goICRmdiBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJGZpZCA9ICRvbmVbJ2ZpZWxkZGVmX2lkJ107CiAgICAgICAgICAgICAgICBpZiggJGZpZCA8IDEgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAkZGVmc1skZmlkXS0+dHlwZSA9PSAnc3Vic2NyaXB0aW9uJyB8fCAkZGVmc1skZmlkXS0+dHlwZSA9PSAnZGltZW5zaW9ucycgKSAkb25lWyd2YWx1ZSddID0gdW5zZXJpYWxpemUoJG9uZVsndmFsdWUnXSk7CiAgICAgICAgICAgICAgICAkcm93WydmaWVsZF92YWxzJ11bJG9uZVsnZmllbGRkZWZfaWQnXV0gPSAkb25lWyd2YWx1ZSddOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBnZXQgYXR0cmlidXRlcwogICAgICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLnNlbGY6OnByb2R1Y3RfYXR0cmlic190YWJsZV9uYW1lKCkuJyBXSEVSRSBwcm9kdWN0X2lkID0gPyBPUkRFUiBCWSBJT1JERVIgQVNDJzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRBcnJheSggJHNxbCwgWyAkcHJvZHVjdF9pZCBdICk7CiAgICAgICAgJHJvd1snYXR0cmlicyddID0gW107CiAgICAgICAgaWYoIGlzX2FycmF5KCAkdG1wICkgKSAkcm93WydhdHRyaWJzJ10gPSAkdG1wOwoKICAgICAgICAkb2JqID0gbmV3IFByb2R1Y3Q7CiAgICAgICAgJG9iai0+ZnJvbV9hcnJheSggJHJvdyApOwogICAgICAgIHJldHVybiAkb2JqOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiByYXdfbG9hZF9ieV9pZCggJHByb2R1Y3RfaWQgKQogICAgewogICAgICAgICRwcm9kdWN0X2lkID0gKGludCkgJHByb2R1Y3RfaWQ7CiAgICAgICAgaWYoICRwcm9kdWN0X2lkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgcHJvZHVjdF9pZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJGRiID0gJHRoaXMtPl9kYjsKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5zZWxmOjpwcm9kdWN0X3RhYmxlX25hbWUoKS4nIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHJvdyA9ICRkYi0+R2V0Um93KCAkc3FsLCBbICRwcm9kdWN0X2lkIF0gKTsKICAgICAgICBpZiggISRyb3cgKSByZXR1cm47CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYnVpbGRfZnJvbV9yb3coICRyb3cgKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcmF3X2xvYWRfYnlfbmFtZSggJG5hbWUgKQogICAgewogICAgICAgICRuYW1lID0gdHJpbSgkbmFtZSk7CiAgICAgICAgaWYoICEkbmFtZSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgcHJvZHVjdCBuYW1lIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkZGIgPSAkdGhpcy0+X2RiOwogICAgICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnLnNlbGY6OnByb2R1Y3RfdGFibGVfbmFtZSgpLicgV0hFUkUgcHJvZHVjdF9uYW1lID0gPyc7CiAgICAgICAgJHJvdyA9ICRkYi0+R2V0Um93KCAkc3FsLCBbICRuYW1lIF0gKTsKICAgICAgICBpZiggISRyb3cgKSByZXR1cm47CiAgICAgICAgcmV0dXJuICR0aGlzLT5fYnVpbGRfZnJvbV9yb3coICRyb3cgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkX3RvX2NhY2hlKCBQcm9kdWN0ICRwcm9kdWN0ICkKICAgIHsKICAgICAgICBpZiggISRwcm9kdWN0LT5pZCApIHJldHVybjsKICAgICAgICBpZiggIWlzc2V0KHNlbGY6OiRfY2FjaGVbJHByb2R1Y3QtPmlkXSkgKSBzZWxmOjokX2NhY2hlWyRwcm9kdWN0LT5pZF0gPSAkcHJvZHVjdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2J5X2lkKCAkcHJvZHVjdF9pZCwgJGRpc3BsYXlhYmxlID0gZmFsc2UgKQogICAgewogICAgICAgICRwcm9kdWN0X2lkID0gKGludCkgJHByb2R1Y3RfaWQ7CiAgICAgICAgaWYoICRwcm9kdWN0X2lkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgcHJvZHVjdF9pZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJHJlcyA9IG51bGw7CiAgICAgICAgaWYoIGlzc2V0KHNlbGY6OiRfY2FjaGVbJHByb2R1Y3RfaWRdKSApIHsKICAgICAgICAgICAgJHJlcyA9IHNlbGY6OiRfY2FjaGVbJHByb2R1Y3RfaWRdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+cmF3X2xvYWRfYnlfaWQoICRwcm9kdWN0X2lkICk7CiAgICAgICAgICAgIGlmKCAkcmVzICkgJHRoaXMtPmFkZF90b19jYWNoZSggJHJlcyApOwogICAgICAgIH0KICAgICAgICBpZiggJHJlcyAmJiAkZGlzcGxheWFibGUgKSAkcmVzID0gbmV3IERpc3BsYXlhYmxlUHJvZHVjdCggJHJlcyApOwogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYnlfbmFtZSggJG5hbWUsICRkaXNwbGF5YWJsZSA9IGZhbHNlICkKICAgIHsKICAgICAgICAkbmFtZSA9IHRyaW0oJG5hbWUpOwogICAgICAgIGlmKCAhJG5hbWUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdJbnZhbGlkIHByb2R1Y3QgbmFtZSBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgJHJlcyA9IG51bGw7CiAgICAgICAgZm9yZWFjaCggc2VsZjo6JF9jYWNoZSBhcyAkcHJvZHVjdF9pZCA9PiAkb2JqICkgewogICAgICAgICAgICBpZiggJG9iai0+bmFtZSA9PSAkbmFtZSApIHsKICAgICAgICAgICAgICAgICRyZXMgPSAkb2JqOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYoICEkcmVzICkgewogICAgICAgICAgICAkcmVzID0gJHRoaXMtPnJhd19sb2FkX2J5X25hbWUoICRuYW1lICk7CiAgICAgICAgICAgIGlmKCAkcmVzICkgJHRoaXMtPmFkZF90b19jYWNoZSggJHJlcyApOwogICAgICAgIH0gZWxzZSBpZiggJGRpc3BsYXlhYmxlICkgewogICAgICAgICAgICAkcmVzID0gbmV3IERpc3BsYXlhYmxlUHJvZHVjdCggJHJlcyApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2J5X2FueV9za3UoJHNrdSwgJGRpc3BsYXlhYmxlID0gZmFsc2UpCiAgICB7CiAgICAgICAgJHNrdSA9IHRyaW0oJHNrdSk7CiAgICAgICAgaWYoICEkc2t1ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBza3UgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICRzcWwgPSAnU0VMRUNUIGlkIEZST00gJy5zZWxmOjpwcm9kdWN0X3RhYmxlX25hbWUoKS4nIFdIRVJFIHNrdSA9ID8nOwogICAgICAgICRwaWQgPSAoaW50KSAkdGhpcy0+X2RiLT5HZXRPbmUoICRzcWwsIFsgJHNrdSBdICk7CiAgICAgICAgaWYoICRwaWQgKSByZXR1cm4gc2VsZjo6Z2V0X2J5X2lkKCAkcGlkLCAkZGlzcGxheWFibGUgKTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgcHJvZHVjdF9pZCBGUk9NICcuc2VsZjo6cHJvZHVjdF9hdHRyaWJzX3RhYmxlX25hbWUoKS4nIFdIRVJFIHNrdSA9ID8nOwogICAgICAgICRwaWQgPSAoaW50KSAkdGhpcy0+X2RiLT5HZXRPbmUoICRzcWwsIFsgJHNrdSBdICk7CiAgICAgICAgaWYoICRwaWQgKSByZXR1cm4gc2VsZjo6Z2V0X2J5X2lkKCAkcGlkLCAkZGlzcGxheWFibGUgKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlX2J5X2lkKCAkcHJvZHVjdF9pZCApCiAgICB7CiAgICAgICAgXENNU01TXEhvb2tNYW5hZ2VyOjpkb19ob29rKCdQcm9kdWN0czo6QmVmb3JlRGVsZXRlUHJvZHVjdCcsICRwcm9kdWN0X2lkICk7CgogICAgICAgICRwcm9kdWN0X2lkID0gKGludCkgJHByb2R1Y3RfaWQ7CiAgICAgICAgaWYoICRwcm9kdWN0X2lkIDwgMSApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0ludmFsaWQgcHJvZHVjdF9pZCBwYXNzZWQgdG8gJy5fX01FVEhPRF9fKTsKCiAgICAgICAgaWYoIGlzc2V0KHNlbGY6OiRfY2FjaGVbJHByb2R1Y3RfaWRdKSApIHVuc2V0KHNlbGY6OiRfY2FjaGVbJHByb2R1Y3RfaWRdKTsKICAgICAgICAkZGIgPSAkdGhpcy0+X2RiOwoKICAgICAgICAvL0FuZCByZW1vdmUgaXQgZnJvbSBhbnkgY3VzdG9tIGZpZWxkcwogICAgICAgICRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBXSEVSRSBwcm9kdWN0X2lkID0gPyI7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgWyAkcHJvZHVjdF9pZCBdKTsKCiAgICAgICAgLy9BbmQgcmVtb3ZlIGl0IGZyb20gYW55IGNhdGVnb3JpZXMKICAgICAgICAkcXVlcnkgPSAiREVMRVRFIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgV0hFUkUgcHJvZHVjdF9pZCA9ID8iOwogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIFsgJHByb2R1Y3RfaWQgXSk7CgogICAgICAgIC8vIGFuZCByZW1vdmUgdGhlIGhpZXJhcmNoeSBzdHVmZgogICAgICAgICRxdWVyeSA9ICdERUxFVEUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIFsgJHByb2R1Y3RfaWQgXSk7CgogICAgICAgIC8vIGFuZCByZW1vdmUgdGhlIGF0dHJpYnMgc3R1ZmYKICAgICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzIFdIRVJFIHByb2R1Y3RfaWQgPSA/JzsKICAgICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LCBbICRwcm9kdWN0X2lkIF0pOwoKICAgICAgICAvLyBhbmQgdGhlIHByb2R1Y3QgaXRzZWxmLgogICAgICAgICRxdWVyeSA9ICJERUxFVEUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIFdIRVJFIGlkID0gPyI7CiAgICAgICAgJGRiLT5FeGVjdXRlKCRxdWVyeSwgWyAkcHJvZHVjdF9pZCBdKTsKCiAgICAgICAgLy8gYW5kIChvcHRpb25hbGx5KSByZW1vdmUgYWxsIGZpbGVzCiAgICAgICAgaWYoICR0aGlzLT5fbW9kLT5HZXRQcmVmZXJlbmNlKCdkZWxldGVwcm9kdWN0ZmlsZXMnKSApIHsKICAgICAgICAgICAgJGRpciA9IFxwcm9kdWN0X3V0aWxzOjpnZXRfcHJvZHVjdF91cGxvYWRfcGF0aCgkcHJvZHVjdF9pZCk7CiAgICAgICAgICAgIFxjZ2VfZGlyOjpyZWN1cnNpdmVfcmVtb3ZlX2RpcmVjdG9yeSgkZGlyKTsKICAgICAgICB9CgogICAgICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6ZG9faG9vaygnUHJvZHVjdHM6OkFmdGVyRGVsZXRlUHJvZHVjdCcsIFsgJ3Byb2R1Y3RfaWQnPT4kcHJvZHVjdF9pZCBdICk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X293bmVycyggYXJyYXkgJHByb2R1Y3RfaWRzICkKICAgIHsKICAgICAgICBpZiggIWNvdW50KCRwcm9kdWN0X2lkcykgKSByZXR1cm47CgogICAgICAgICRxdWVyeSA9IG5ldyBccHJvZHVjdHNfcXVlcnkoIFsncHJvZHVjdGxpc3QnPT4kcHJvZHVjdF9pZHMgXSApOwogICAgICAgICRycyA9ICRxdWVyeS0+ZXhlY3V0ZSgpOwogICAgICAgICRvdXQgPSBudWxsOwogICAgICAgIHdoaWxlKCAhJHJzLT5FT0YgKSB7CiAgICAgICAgICAgICRyb3cgPSAkcnMtPmZpZWxkczsKICAgICAgICAgICAgJG93bmVyID0gKGludCkgJHJvd1snb3duZXInXTsKICAgICAgICAgICAgaWYoICRvd25lciA8IDEgKSBjb250aW51ZTsKICAgICAgICAgICAgaWYoICFjb3VudCgkb3V0KSB8fCAhaW5fYXJyYXkoICRvd25lciwgJG91dCkgKSAkb3V0W10gPSAkb3duZXI7CiAgICAgICAgICAgICRycy0+TW92ZU5leHQoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGNvdW50X293bmVyX3Byb2R1Y3RzKCAkdWlkICkKICAgIHsKICAgICAgICAkdWlkID0gKGludCkgJHVpZDsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBDT1VOVCBpZCBGUk9NICcuc2VsZjo6dGFibGVfbmFtZSgpLicgV0VIUkUgb3duZXIgPSA/JzsKICAgICAgICAkY250ID0gKGludCkgJGRiLT5HZXRPbmUoICRzcWwsIFsgJHVpZCBdICk7CiAgICAgICAgcmV0dXJuICRjbnQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwcm9kdWN0X3RhYmxlX25hbWUoKSB7IHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHMnOyB9CiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHByb2R1Y3RfY2F0ZWdvcmllc190YWJsZV9uYW1lKCkgeyByZXR1cm4gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyc7IH0KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcHJvZHVjdF9oaWVyYXJjaGllc190YWJsZV9uYW1lKCkgeyByZXR1cm4gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXInOyB9CiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIHByb2R1Y3RfZmllbGR2YWxzX3RhYmxlX25hbWUoKSB7IHJldHVybiBDTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzJzsgfQogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwcm9kdWN0X2F0dHJpYnNfdGFibGVfbmFtZSgpIHsgcmV0dXJuIENNU19EQl9QUkVGSVguJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzJzsgfQoKfSAvLyBlbmQgb2YgY2xhc3MK]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_attrib.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCi8vICBUSElTIENMQVNTIElTIERFUFJFQ0FURUQgQU5EIFNIT1VMRCBCRSBSRU1PVkVECi8vICBVc2UgUHJvZHVjdEF0dHJpYnV0ZSBjbGFzcy4KZmluYWwgY2xhc3MgcHJvZHVjdHNfYXR0cmliIGltcGxlbWVudHMgQXJyYXlBY2Nlc3MKewogICAgcHJpdmF0ZSBzdGF0aWMgJF9rZXlzID0gYXJyYXkoJ2lkJywncHJvZHVjdF9pZCcsJ3RleHQnLCdhZGp1c3RtZW50Jywnc2t1JywncW9oJywnbm90ZXMnLCdpb3JkZXInKTsKICAgIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoJ2lkJz0+JycsJ3Byb2R1Y3RfaWQnPT4nJywndGV4dCc9PicnLCdhZGp1c3RtZW50Jz0+JycsJ3NrdSc9PicnLCdxb2gnPT4nJywnbm90ZXMnPT4nJywnaW9yZGVyJz0+LTEpOwogICAgcHJpdmF0ZSAkX2RpcnR5OwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2Nsb25lKCkKICAgIHsKICAgICAgICAkdGhpcy0+X2RpcnR5ID0gVFJVRTsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2lkJ10gPSAnJzsKICAgICAgICAkdGhpcy0+X2RhdGFbJ2lvcmRlciddID0gLTE7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpIHsKICAgICAgICAvLyBhbGxvdyBhY2Nlc3MgYXMgb2JqZWN0IHRvby4KICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW52YWxpZCBrZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19hdHRyaWIgb2JqZWN0Jyk7CiAgICAgICAgfQogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICkgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrZXkpIHsKICAgICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW52YWxpZCBrZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19hdHRyaWIgb2JqZWN0Jyk7CiAgICAgICAgfQogICAgICAgIGlmKCBpc3NldCgkdGhpcy0+X2RhdGFbJGtleV0pICkgcmV0dXJuICR0aGlzLT5fZGF0YVska2V5XTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0U2V0KCRrZXksJHZhbHVlKSB7CiAgICAgICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0ludmFsaWQga2V5ICcuJGtleS4nIHNwZWNpZmllZCBmb3IgcHJvZHVjdHNfYXR0cmliIG9iamVjdCcpOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICAgIGNhc2UgJ2lkJzoKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignaWQgY2Fubm90IGJlIHNldCBmb3IgdGhlIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QnKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2lvcmRlcic6CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ2lvcmRlciBjYW5ub3QgYmUgc2V0IGZvciB0aGUgcHJvZHVjdHNfYXR0cmliIG9iamVjdCBpbiB0aGlzIG1hbm5lcicpOwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAncHJvZHVjdF9pZCc6CiAgICAgICAgICAgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICBpZiggJHZhbHVlIDwgMSApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ3Byb2R1Y3QgaWQgY2Fubm90IGJlIG5lZ2F0aXZlIG9yIHplcm8gZm9yIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QnKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3FvaCc6CiAgICAgICAgICAgICR2YWx1ZSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgICBpZiggJHZhbHVlIDwgMCApIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ1FPSCBjYW5ub3QgYmUgbmVnYXRpdmUgZm9yIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QnKTsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ3RleHQnOgogICAgICAgIGNhc2UgJ2FkanVzdG1lbnQnOgogICAgICAgIGNhc2UgJ3NrdSc6CiAgICAgICAgY2FzZSAnbm90ZXMnOgogICAgICAgICAgICAkdmFsdWUgPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChzdHJpbmcpJHZhbHVlOwogICAgICAgICR0aGlzLT5fZGlydHkgPSBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgka2V5KQogICAgewogICAgICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdJbnZhbGlkIGtleSAnLiRrZXkuJyBzcGVjaWZpZWQgZm9yIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QnKTsKICAgICAgICB9CgogICAgICAgIHN3aXRjaCggJGtleSApIHsKICAgICAgICBjYXNlICdpZCc6CiAgICAgICAgY2FzZSAnaW9yb2Rlcic6CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oIiRrZXkgY2Fubm90IGJlIHVuc2V0IGZvciBhICIuX19DTEFTU19fLicgb2JqZWN0Jyk7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKICAgICAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IFRSVUU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpCiAgICB7CiAgICAgICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0ludmFsaWQga2V5ICcuJGtleS4nIHNwZWNpZmllZCBmb3IgcHJvZHVjdHNfYXR0cmliIG9iamVjdCcpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfaW5zZXJ0KCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICAgICBpZiggJHRoaXMtPl9kYXRhWydpb3JkZXInXSA8IDEgKSB7CiAgICAgICAgICAgIC8vIGNhbGN1bGF0ZSBhIG5ldyBpb3JkZXIgZm9yIHRoaXMgcHJvZHVjdAogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIE1BWChDT0FMRVNDRShpb3JkZXIsMCkpKzEgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAgICAgICAkdGhpcy0+X2RhdGFbJ2lvcmRlciddID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0aGlzLT5fZGF0YVsncHJvZHVjdF9pZCddKSk7CiAgICAgICAgfQoKICAgICAgICAkZGF0YSA9ICR0aGlzLT5fZGF0YTsKICAgICAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzCiAgICAgICAgICAgICAgKHByb2R1Y3RfaWQsdGV4dCxhZGp1c3RtZW50LHNrdSxxb2gsbm90ZXMsaW9yZGVyKQogICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyknOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRkYXRhWydwcm9kdWN0X2lkJ10sJGRhdGFbJ3RleHQnXSwkZGF0YVsnYWRqdXN0bWVudCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYXRhWydza3UnXSwkZGF0YVsncW9oJ10sJGRhdGFbJ25vdGVzJ10sJGRhdGFbJ2lvcmRlciddKSk7CiAgICAgICAgaWYoICEkZGJyICkgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignU1FMIEVSUk9SOiAnLiRkYi0+RXJyb3JNc2coKS4nIC0tICcuJGRiLT5zcWwpOwoKICAgICAgICAkdGhpcy0+X2RhdGFbJ2lkJ10gPSAkZGItPkluc2VydF9JRCgpOwogICAgICAgICR0aGlzLT5fZGlydHkgPSBGQUxTRTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF91cGRhdGUoKQogICAgewogICAgICAgICRkYXRhID0gJHRoaXMtPl9kYXRhOwoKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzCiAgICAgICAgICAgICAgU0VUIHRleHQgPSA/LCBhZGp1c3RtZW50ID0gPywgc2t1ID0gPywgcW9oID0gPywgbm90ZXMgPSA/LCBpb3JkZXIgPSA/LAogICAgICAgICAgICAgIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGRhdGFbJ3RleHQnXSwkZGF0YVsnYWRqdXN0bWVudCddLCRkYXRhWydza3UnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF0YVsncW9oJ10sJGRhdGFbJ25vdGVzJ10sJGRhdGFbJ2lvcmRlciddLCRkYXRhWydpZCddKSk7CiAgICAgICAgJHRoaXMtPl9kaXJ0eSA9IEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB2YWxpZGF0ZSgpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkdGhpcy0+X2RhdGFbJ3Byb2R1Y3RfaWQnXSkgfHwgJHRoaXMtPl9kYXRhWydwcm9kdWN0X2lkJ10gPCAxICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdFYWNoIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QgbmVlZHMgYSBwcm9kdWN0X2lkJyk7CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWyd0ZXh0J10pIHx8ICR0aGlzLT5fZGF0YVsndGV4dCddID09ICcnICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdFYWNoIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QgbmVlZHMgc29tZSB0ZXh0Jyk7CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9kYXRhWydhZGp1c3RtZW50J10pIHx8ICR0aGlzLT5fZGF0YVsnYWRqdXN0bWVudCddID09ICcnICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdFYWNoIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QgbmVlZHMgc29tZSBhZGp1c3RtZW50IHZhbHVlJyk7CiAgICAgICAgfQogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgJHNrdV9yZXF1aXJlZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJywwKTsKICAgICAgICBpZiggJHNrdV9yZXF1aXJlZCAmJiAoIWlzc2V0KCR0aGlzLT5fZGF0YVsnc2t1J10pIHx8ICR0aGlzLT5fZGF0YVsnc2t1J10gPT0gbnVsbCkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ0Egc2t1IGlzIHJlcXVpcmVkIGZvciBhIHByb2R1Y3RzX2F0dHJpYiBvYmplY3QnKTsKICAgICAgICB9CiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnc2t1J10pICYmICR0aGlzLT5fZGF0YVsnc2t1J10gIT0gJycgKSB7CiAgICAgICAgICAgIGlmKCBwcm9kdWN0X29wczo6Y2hlY2tfc2t1X3VzZWQoJHRoaXMtPl9kYXRhWydza3UnXSwkdGhpcy0+X2RhdGFbJ3Byb2R1Y3RfaWQnXSkgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdTS1UgJy4kdGhpcy0+X2RhdGFbJ3NrdSddLicgaXMgYWxyZWFkeSBpbiB1c2UgYnkgYW5vdGhlciBwcm9kdWN0Jyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHNhdmUoKQogICAgewogICAgICAgIGlmKCAhJHRoaXMtPl9kaXJ0eSApIHJldHVybjsKICAgICAgICAkdGhpcy0+dmFsaWRhdGUoKTsKCiAgICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fZGF0YVsnaWQnXSkgJiYgJHRoaXMtPl9kYXRhWydpZCddICE9ICcnICkgewogICAgICAgICAgICAkdGhpcy0+X3VwZGF0ZSgpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl9pbnNlcnQoKTsKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiAmbG9hZF9mcm9tX2RhdGEoJGRhdGEpCiAgICB7CiAgICAgICAgZm9yZWFjaCggc2VsZjo6JF9rZXlzIGFzICRrICkgewogICAgICAgICAgICBpZiggJGsgIT0gJ2lkJyAmJiAkayAhPSAnaW9yZGVyJyAmJiAhaW5fYXJyYXkoJGssYXJyYXlfa2V5cygkZGF0YSkpICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbigkay4nIGlzIG1pc3NpbmcgZnJvbSBsb2FkZWQgYXR0cmliIHJlY29yZCcpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcmVhY2goIGFycmF5X2tleXMoJGRhdGEpIGFzICRrZXkgKSB7CiAgICAgICAgICAgIGlmKCAhaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignVW5rbm93biBvciBleHRyYSBkYXRhIGV4aXN0cyBpbiB0aGUgc3VwcGxvZWQgYXR0cmliIHJlY29yZCcpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkb2IgPSBuZXcgcHJvZHVjdHNfYXR0cmliOwogICAgICAgICRvYi0+X2RhdGEgPSAkZGF0YTsKICAgICAgICAkb2ItPl9kaXJ0eSA9IFRSVUU7CiAgICAgICAgcmV0dXJuICRvYjsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGxvYWRfZnJvbV9mb3JtKCRwYXJhbXMpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydwcm9kaWQnXSkgKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ01pc3NpbmcgcHJvZHVjdCBpZCB2YWx1ZSBmcm9tIGZvcm0nKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydza3UnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ3NrdSddKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignTWlzc2luZyBTS1UgZGF0YSBmcm9tIGZvcm0nKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWyd0ZXh0J10pICYmICFpc19hcnJheSgkcGFyYW1zWyd0ZXh0J10pICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdNaXNzaW5nIFRleHQgZGF0YSBmcm9tIGZvcm0nKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydhZGp1c3RtZW50J10pICYmICFpc19hcnJheSgkcGFyYW1zWydhZGp1c3RtZW50J10pICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdNaXNzaW5nIGFkanVzdG1lbnQgZGF0YSBmcm9tIGZvcm0nKTsKICAgICAgICB9CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydxb2gnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ3FvaCddKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignTWlzc2luZyBxb2ggaW5mb3JtYXRpb24gZnJvbSBmb3JtJyk7CiAgICAgICAgfQogICAgICAgIGlmKCAhaXNzZXQoJHBhcmFtc1snbm90ZXMnXSkgJiYgIWlzX2FycmF5KCRwYXJhbXNbJ25vdGVzJ10pICkgewogICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdNaXNzaW5nIG5vdGVzIGluZm9ybWF0aW9uIGZyb20gZm9ybScpOwogICAgICAgIH0KICAgICAgICBpZiggKGNvdW50KCRwYXJhbXNbJ3NrdSddKSAhPSBjb3VudCgkcGFyYW1zWyd0ZXh0J10pKSB8fAogICAgICAgICAgICAoY291bnQoJHBhcmFtc1snc2t1J10pICE9IGNvdW50KCRwYXJhbXNbJ2FkanVzdG1lbnQnXSkpIHx8CiAgICAgICAgICAgIChjb3VudCgkcGFyYW1zWydza3UnXSkgIT0gY291bnQoJHBhcmFtc1sncW9oJ10pKSB8fAogICAgICAgICAgICAoY291bnQoJHBhcmFtc1snc2t1J10pICE9IGNvdW50KCRwYXJhbXNbJ25vdGVzJ10pKSApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignSW52YWxpZCBwYXJhbWV0ZXIgY291bnQgKGxlbmd0aCBvZiBza3UgZmllbGQgZG9lcyBub3QgbWF0Y2ggb25lIG9mIHRoZSBvdGhlcnMnKTsKICAgICAgICB9CgogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgJHNrdV9yZXF1aXJlZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJywwKTsKICAgICAgICAkaSA9IDA7CiAgICAgICAgZm9yZWFjaCggJHBhcmFtc1snc2t1J10gYXMgJG9uZSApIHsKICAgICAgICAgICAgJG9uZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgIGlmKCAhJG9uZSAmJiAkc2t1X3JlcXVpcmVkICkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IENtc0V4Y2VwdGlvbignU0tVIHJlcXVpcmVkIGF0IHJvdyAnLiRpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGkgPSAxOwogICAgICAgIGZvcmVhY2goICRwYXJhbXNbJ3RleHQnXSBhcyAkb25lICkgewogICAgICAgICAgICBpZiggISRvbmUgKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ21zRXhjZXB0aW9uKCdPcHRpb24gdGV4dCBlbXB0eSBhdCByb3cgJy4kaSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGkrKzsKICAgICAgICB9CgogICAgICAgIC8vIGNoZWNrIHFvaAogICAgICAgICRpID0gMTsKICAgICAgICBmb3JlYWNoKCAkcGFyYW1zWydxb2gnXSBhcyAkb25lICkgewogICAgICAgICAgICBpZiggKGludCkkb25lIDwgMCApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBDbXNFeGNlcHRpb24oJ1FPSCBpcyBuZWdhdGl2ZSBhdCByb3cgJy4kaSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGkrKzsKICAgICAgICB9CgogICAgICAgIC8vIHB1dCBldmVyeXRoaW5nIHRvZ2V0aGVyLgogICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgICRrZXlzID0gYXJyYXkoJ3RleHQnLCdhZGp1c3RtZW50Jywnc2t1JywncW9oJywnbm90ZXMnKTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkcGFyYW1zWydza3UnXSk7ICRpKysgKSB7CiAgICAgICAgICAgICRyZWMgPSBhcnJheSgncHJvZHVjdF9pZCc9PihpbnQpJHBhcmFtc1sncHJvZGlkJ10pOwogICAgICAgICAgICBmb3JlYWNoKCAka2V5cyBhcyAka2V5ICkgewogICAgICAgICAgICAgICAgJHJlY1ska2V5XSA9ICRwYXJhbXNbJGtleV1bJGldOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRvYmogPSBzZWxmOjpsb2FkX2Zyb21fZGF0YSgkcmVjKTsKICAgICAgICAgICAgJG9iai0+X2RhdGFbJ2lvcmRlciddID0gJGkrMTsKICAgICAgICAgICAgJG91dFtdID0gJG9iajsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbG9hZF9ieV9wcm9kdWN0KCRpZCkKICAgIHsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicwogICAgICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkID0gPyBPUkRFUiBCWSBpb3JkZXInOwogICAgICAgICRkYnIgPSAkZGItPkdldEFycmF5KCRxdWVyeSxhcnJheSgoaW50KSRpZCkpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJGRicikgfHwgY291bnQoJGRicikgPT0gMCApIHJldHVybjsKCiAgICAgICAgJHJlcyA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCggJGRiciBhcyAkb25lICkgewogICAgICAgICAgICAkcmVzW10gPSBzZWxmOjpsb2FkX2Zyb21fZGF0YSgkb25lKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBkZWxldGVfYnlfcHJvZHVjdCgkaWQpCiAgICB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzCiAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8nOwogICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KChpbnQpJGlkKSk7CiAgICAgICAgaWYoICEkZGJyICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_query.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmNsYXNzIHByb2R1Y3RzX3F1ZXJ5IGV4dGVuZHMgXENHRXh0ZW5zaW9uc1xxdWVyeVxxdWVyeQp7CiAgICBwcml2YXRlIHN0YXRpYyAkX2tleXMgPSBhcnJheSgncHJvZHVjdGlkJywncHJvZHVjdF9pZCcsJ3Byb2R1Y3RsaXN0JywnYWxpYXMnLCdjYXRlZ29yeScsJ2NhdGVnb3J5aWQnLCdleGNsdWRlY2F0JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoaWVyYXJjaHknLCdoaWVyYXJjaHlpZCcsJ2ZpZWxkaWQnLCdmaWVsZHZhbCcsJ3NvcnRvcmRlcicsJ3NrdScsJ29wdHNrdScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvZHVjdG5hbWVsaWtlJywnZGVzY2xpa2UnLCdzb3J0YnknLCdzb3J0dHlwZScsJ2xpbWl0Jywnb2Zmc2V0Jywnc3RhdHVzJywncHJpY2VyYW5nZScsJ3VzZW9yJywnbm9jaGlsZHJlbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3duZXInKTsKICAgIHByaXZhdGUgc3RhdGljICRfc29ydGluZ3MgPSBhcnJheSgnaWQnLCdwcm9kdWN0X25hbWUnLCdwcmljZScsJ2NyZWF0ZV9kYXRlJywnbW9kaWZpZWQnLCdzdGF0dXMnLCd3ZWlnaHQnLCdyYW5kb20nKTsKICAgIHByaXZhdGUgJF9kYXRhID0gYXJyYXkoKTsKICAgIHByaXZhdGUgJF9vcmlncGFybXMgPSBudWxsOwogICAgcHJpdmF0ZSAkX3NvcnRmaWVsZCA9IDA7CiAgICBwcml2YXRlICRfZmllbGRfZXhwcmVzc2lvbnMgPSBhcnJheSgpOwoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfa2V5KCR0ZXN0KQogICAgewogICAgICAgIGlmKCBpbl9hcnJheSgkdGVzdCxzZWxmOjokX2tleXMpICkgcmV0dXJuIFRSVUU7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZGF0YSA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgaWYoIGlzX2FycmF5KCRkYXRhKSApICR0aGlzLT5fb3JpZ3Bhcm1zID0gJGRhdGE7CiAgICAgICAgJHRoaXMtPnJlc2V0KCk7CiAgICB9CgogIHB1YmxpYyBmdW5jdGlvbiByZXNldCgpCiAgewogICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgJHRoaXMtPl9kYXRhWydsaW1pdCddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc3VtbWFyeV9wYWdlbGltaXQnLDEwMCk7CiAgICAkdGhpcy0+X2RhdGFbJ3NvcnRieSddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydGJ5JywncHJvZHVjdF9uYW1lJyk7CiAgICAkdGhpcy0+X2RhdGFbJ3NvcnRvcmRlciddID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgnc29ydG9yZGVyJywnREVTQycpOwogICAgJHRoaXMtPl9kYXRhWydzdGF0dXMnXSA9ICdwdWJsaXNoZWQnOwoJJHRoaXMtPl9kYXRhWydvZmZzZXQnXSA9IDA7CgkkdGhpcy0+X2ZpZWxkX2V4cHJlc3Npb25zID0gYXJyYXkoKTsKCiAgICBmb3JlYWNoKCAkdGhpcy0+X29yaWdwYXJtcyBhcyAka2V5ID0+ICR2YWx1ZSApIHsKICAgICAgICBpZiggaW5fYXJyYXkoJGtleSxzZWxmOjokX2tleXMpICkgJHRoaXNbJGtleV0gPSAkdmFsdWU7CiAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0R2V0KCRrZXkpCiAgewogICAgICBpZiggJGtleSA9PSAncGFnZWxpbWl0JyApICRrZXkgPSAnbGltaXQnOwogICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0dldDogaW52YWxpZCBrZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19xdWVyeScpOwogICAgICBpZiggaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKSApIHJldHVybiAkdGhpcy0+X2RhdGFbJGtleV07CiAgfQoKICBwcml2YXRlIGZ1bmN0aW9uIF9yZXNldGlkZW50aWZpZXJzKCkKICB7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsncHJvZHVjdG5hbWVsaWtlJ10pOwogICAgICB1bnNldCgkdGhpcy0+X2RhdGFbJ3NrdSddKTsKICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWydvcHRza3UnXSk7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsnYWxpYXMnXSk7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsncHJvZHVjdGxpc3QnXSk7CiAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsncHJvZHVjdF9pZCddKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRTZXQoJGtleSwkdmFsdWUpCiAgewogICAgICBpZiggJGtleSA9PSAncGFnZWxpbWl0JyApICRrZXkgPSAnbGltaXQnOwogICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ1NldDogSW52YWxpZCBLZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19xdWVyeScpOwogICAgICBpZiggISR2YWx1ZSApIHJldHVybjsKCiAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgc3dpdGNoKCAka2V5ICkgewogICAgICBjYXNlICdzdGF0dXMnOgogICAgICAgICAgJHZhbHVlID0gc3RydG9sb3dlcigkdmFsdWUpOwogICAgICAgICAgc3dpdGNoKCAkdmFsdWUgKSB7CiAgICAgICAgICBjYXNlICdkcmFmdCc6CiAgICAgICAgICBjYXNlICdkaXNhYmxlZCc6CiAgICAgICAgICBjYXNlICdwdWJsaXNoZWQnOgogICAgICAgICAgY2FzZSAnIWRyYWZ0JzoKICAgICAgICAgIGNhc2UgJyFkaXNhYmxlZCc6CiAgICAgICAgICBjYXNlICchcHVibGlzaGVkJzoKICAgICAgICAgIGNhc2UgJyonOgogICAgICAgICAgICAgICR0aGlzLT5fZGF0YVsnc3RhdHVzJ10gPSAkdmFsdWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ3ByaWNlcmFuZ2UnOgogICAgICAgICAgaWYoIHN0cnBvcygkdmFsdWUsJzonKSAhPT0gRkFMU0UgKSAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ3VzZW9yJzoKICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IGNtc190b19ib29sKCR2YWx1ZSk7CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ2Rlc2NsaWtlJzoKICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAncHJvZHVjdGlkJzoKICAgICAgY2FzZSAncHJvZHVjdF9pZCc6CiAgICAgICAgICAka2V5ID0gJ3Byb2R1Y3RfaWQnOwogICAgICAgICAgLy8gZmFsbHRocm91Z2gKICAgICAgY2FzZSAncHJvZHVjdG5hbWVsaWtlJzoKICAgICAgY2FzZSAnb3B0c2t1JzoKICAgICAgY2FzZSAnYWxpYXMnOgogICAgICBjYXNlICdza3UnOgogICAgICAgICAgJHRoaXMtPl9yZXNldGlkZW50aWZpZXJzKCk7CiAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ3Byb2R1Y3RsaXN0JzoKICAgICAgICAgICR0aGlzLT5fcmVzZXRpZGVudGlmaWVycygpOwogICAgICAgICAgJHRtcCA9ICR2YWx1ZTsKICAgICAgICAgIGlmKCBpc19zdHJpbmcoJHZhbHVlKSApICR0bXAgPSBleHBsb2RlKCcsJywkdmFsdWUpOwogICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgewogICAgICAgICAgICAgICR0bXAyID0gW107CiAgICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAkb25lID0gKGludCkkb25lOwogICAgICAgICAgICAgICAgICBpZiggJG9uZSA+IDAgJiYgIWluX2FycmF5KCRvbmUsJHRtcDIpICkgJHRtcDJbXSA9ICRvbmU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICR2YWx1ZSA9IGltcGxvZGUoJywnLCR0bXAyKTsKICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ2NhdGVnb3J5JzoKICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsnY2F0ZWdvcnlpZCddKTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAnY2F0ZWdvcnlpZCc6CiAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsnY2F0ZWdvcnknXSk7CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ2V4Y2x1ZGVjYXQnOgogICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdoaWVyYXJjaHknOgogICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gdHJpbSgkdmFsdWUpOwogICAgICAgICAgdW5zZXQoJHRoaXMtPl9kYXRhWydoaWVyYXJjaHlpZCddKTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAnb3duZXInOgogICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gKGludCkgJHZhbHVlOwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdub2NoaWxkcmVuJzoKICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IGNnZV91dGlsczo6dG9fYm9vbCgkdmFsdWUpOwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdoaWVyYXJjaHlpZCc6CiAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAoaW50KSR2YWx1ZTsKICAgICAgICAgIHVuc2V0KCR0aGlzLT5fZGF0YVsnaGllcmFyY2h5J10pOwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdmaWVsZGlkJzoKICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9IChpbnQpJHZhbHVlOwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdmaWVsZHZhbCc6CiAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ3NvcnRvcmRlcic6CiAgICAgICAgICAkdmFsdWUgPSBzdHJ0b2xvd2VyKHRyaW0oJHZhbHVlKSk7CiAgICAgICAgICBzd2l0Y2goICR2YWx1ZSApIHsKICAgICAgICAgIGNhc2UgJ2FzYyc6CiAgICAgICAgICBjYXNlICdkZXNjJzoKICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgJ3NvcnRieSc6CiAgICAgICAgICAkdmFsdWUgPSBzdHJ0b2xvd2VyKHRyaW0oJHZhbHVlKSk7CiAgICAgICAgICBzd2l0Y2goICR2YWx1ZSApIHsKICAgICAgICAgIGNhc2UgJ25hbWUnOgogICAgICAgICAgICAgICRrZXkgPSAncHJvZHVjdF9uYW1lJzsKICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgY2FzZSAnaWQnOgogICAgICAgICAgY2FzZSAnc2t1JzoKICAgICAgICAgIGNhc2UgJ3Byb2R1Y3RfbmFtZSc6CiAgICAgICAgICBjYXNlICdwcmljZSc6CiAgICAgICAgICBjYXNlICd3ZWlnaHQnOgogICAgICAgICAgY2FzZSAnc3RhdHVzJzoKICAgICAgICAgIGNhc2UgJ3JhbmRvbSc6CiAgICAgICAgICBjYXNlICdjcmVhdGVfZGF0ZSc6CiAgICAgICAgICBjYXNlICdtb2RpZmllZF9kYXRlJzoKICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgY2FzZSAnbW9kaWZpZWQnOgogICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICdtb2RpZmllZF9kYXRlJzsKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBjYXNlICdjcmVhdGVkJzoKICAgICAgICAgICAgICAkdGhpcy0+X2RhdGFbJGtleV0gPSAnY3JlYXRlX2RhdGUnOwogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHZhbHVlLCdmOicpICkgewogICAgICAgICAgICAgICAgICAkZmllbGRuYW1lID0gc3Vic3RyKCR2YWx1ZSxzdHJsZW4oJ2Y6JykpOwogICAgICAgICAgICAgICAgICAkZmllbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhGQUxTRSxUUlVFLFRSVUUpOwogICAgICAgICAgICAgICAgICBpZiggaXNfYXJyYXkoJGZpZWxkZGVmcykgJiYgaXNzZXQoJGZpZWxkZGVmc1skZmllbGRuYW1lXSkgKSAkdGhpcy0+X2RhdGFbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdTZXQ6IGludmFsaWQgc29ydGluZyAnLiR2YWx1ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdzb3J0dHlwZSc6CiAgICAgICAgICAkdmFsdWUgPSB0cmltKHN0cnRvdXBwZXIoJHZhbHVlKSk7CiAgICAgICAgICBzd2l0Y2goICR2YWx1ZSApIHsKICAgICAgICAgIGNhc2UgJ1NUUklORyc6CiAgICAgICAgICAgICAgJHRoaXMtPl9kYXRhWyRrZXldID0gJyc7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdTSUdORUQnOgogICAgICAgICAgY2FzZSAnVU5TSUdORUQnOgogICAgICAgICAgICAgICR0aGlzLT5fZGF0YVska2V5XSA9ICR2YWx1ZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAnbGltaXQnOgogICAgICAgICAgJHZhbHVlID0gbWF4KDEsKGludCkkdmFsdWUpOwogICAgICAgICAgJHRoaXMtPl9kYXRhWydsaW1pdCddID0gJHZhbHVlOwogICAgICAgICAgYnJlYWs7CgogICAgICBjYXNlICdvZmZzZXQnOgogICAgICAgICAgJHZhbHVlID0gbWF4KDAsKGludCkkdmFsdWUpOwogICAgICAgICAgJHRoaXMtPl9kYXRhWydvZmZzZXQnXSA9ICR2YWx1ZTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gb2Zmc2V0RXhpc3RzKCRrZXkpCiAgewogICAgICBpZiggIWluX2FycmF5KCRrZXksc2VsZjo6JF9rZXlzKSApIHRocm93IG5ldyBFeGNlcHRpb24oJ0V4aXN0czogSW52YWxpZCBLZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19xdWVyeScpOwogICAgICByZXR1cm4gaXNzZXQoJHRoaXMtPl9kYXRhWyRrZXldKTsKICB9CgogIHB1YmxpYyBmdW5jdGlvbiBvZmZzZXRVbnNldCgka2V5KQogIHsKICAgICAgaWYoICFpbl9hcnJheSgka2V5LHNlbGY6OiRfa2V5cykgKSB0aHJvdyBuZXcgRXhjZXB0aW9uKCdVbnNldDogSW52YWxpZCBLZXkgJy4ka2V5Licgc3BlY2lmaWVkIGZvciBwcm9kdWN0c19xdWVyeScpOwogICAgICByZXR1cm4gRkFMU0U7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gJmV4ZWN1dGUoKQogIHsKICAgICAgJHJzID0gbmV3IHByb2R1Y3RzX3Jlc3VsdHNldCgkdGhpcyk7CiAgICAgIHJldHVybiAkcnM7CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gYWRkX2ZpZWxkX2V4cHIoJGZpZWxkLCRleHByKQogIHsKICAgICAgaWYoICRleHByICkgewogICAgICAgICAgJHRoaXMtPl9maWVsZF9leHByZXNzaW9uc1skZmllbGRdID0gJGV4cHI7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgICB1bnNldCgkdGhpcy0+X2ZpZWxkX2V4cHJlc3Npb25zWyRmaWVsZF0pOwogICAgICB9CiAgfQoKICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX2V4cHJzKCkKICB7CiAgICAgIHJldHVybiAkdGhpcy0+X2ZpZWxkX2V4cHJlc3Npb25zOwogIH0KfSAvLyBlbmQgb2YgY2xhc3MKCiMKIyBFT0YKIwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/class.products_resultset.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3RzX3Jlc3VsdHNldCBleHRlbmRzIFxDR0V4dGVuc2lvbnNccXVlcnlccmVzdWx0c2V0CnsKICAgIHByaXZhdGUgJF9jYXRlZ29yeV9jYWNoZTsKICAgIHByaXZhdGUgJF9maWVsZF9jYWNoZTsKICAgIHByaXZhdGUgJF9oaWVyYXJjaHlfY2FjaGU7CiAgICBwcml2YXRlICRfYXR0cmlidXRlX2NhY2hlOwogICAgcHJpdmF0ZSAkX2RldGFpbHBhZ2U7CiAgICBwcml2YXRlICRfaGllcnBhZ2U7CiAgICBwcml2YXRlICRfY3VycGFnZTsKICAgIHByaXZhdGUgJF9ub3RwcmV0dHk7CiAgICBwcml2YXRlICRfZGV0YWlsdGVtcGxhdGU7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KHByb2R1Y3RzX3F1ZXJ5ICRxdWVyeSkKICAgIHsKICAgICAgICAkdGhpcy0+X2ZpbHRlciA9ICRxdWVyeTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIF93aWxkY2FyZCgkc3RyKQogICAgewogICAgICAgIGlmKCBzdHJwb3MoJHN0ciwnKicpID09PSBGQUxTRSAmJiBzdHJwb3MoJHN0ciwnJScpID09PSBGQUxTRSApICRzdHIgPSAnJScuJHN0ci4nJSc7CiAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCcqJywnJScsJHN0cik7CiAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCclJScsJyUnLCRzdHIpOwogICAgICAgIHJldHVybiAkc3RyOwogICAgfQoKICAgIC8qKgogICAgICogR2l2ZW4gYSBxdWVyeSBvYmplY3QuLi4gYnVpbGQgdGhlIHNxbCBxdWVyeSB0byBleHRyYWN0IHRoZSBwcm9kdWN0IGRhdGEuCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBfcXVlcnkoKQogICAgewogICAgICAgIGlmKCAhaXNfbnVsbCgkdGhpcy0+X3JzKSApIHJldHVybjsKICAgICAgICAkZGIgPSBcY2dlX3V0aWxzOjpnZXRfZGIoKTsKICAgICAgICAkb2JqID0gJHRoaXMtPl9maWx0ZXI7CgogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgU1FMX0NBTENfRk9VTkRfUk9XUyBDLiosUEguaGllcmFyY2h5X2lkIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHMgQyc7CiAgICAgICAgJHdoZXJlID0gYXJyYXkoKTsKICAgICAgICAkcXBhcm1zID0gYXJyYXkoKTsKICAgICAgICAkam9pbnMgPSBhcnJheSgpOwoKICAgICAgICAkam9pbnNbXSA9IENNU19EQl9QUkVGSVguJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIFBIIE9OIFBILnByb2R1Y3RfaWQgPSBDLmlkJzsKCiAgICAgICAgaWYoIGlzc2V0KCRvYmpbJ3Byb2R1Y3RuYW1lbGlrZSddKSApIHsKICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5wcm9kdWN0X25hbWUgTElLRSA/JzsKICAgICAgICAgICAgJHFwYXJtc1tdID0gJHRoaXMtPl93aWxkY2FyZCgkb2JqWydwcm9kdWN0bmFtZWxpa2UnXSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoIGlzc2V0KCRvYmpbJ3Byb2R1Y3RfaWQnXSkgJiYgJG9ialsncHJvZHVjdF9pZCddICE9ICcnICkgewogICAgICAgICAgICAkd2hlcmVbXSA9ICdDLmlkID0gPyc7CiAgICAgICAgICAgICRxcGFybXNbXSA9ICRvYmpbJ3Byb2R1Y3RfaWQnXTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNzZXQoJG9ialsnYWxpYXMnXSkgJiYgJG9ialsnYWxpYXMnXSAhPSAnJyApIHsKICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5hbGlhcyA9ID8nOwogICAgICAgICAgICAkcXBhcm1zW10gPSAkb2JqWydhbGlhcyddOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc3NldCgkb2JqWydza3UnXSkgJiYgJG9ialsnc2t1J10gIT0gJycgKSB7CiAgICAgICAgICAgICR3aGVyZVtdID0gJ0Muc2t1ID0gPyc7CiAgICAgICAgICAgICRxcGFybXNbXSA9ICRvYmpbJ3NrdSddOwogICAgICAgIH0KICAgICAgICBpZiggaXNzZXQoJG9ialsnb3B0c2t1J10pICYmICRvYmpbJ29wdHNrdSddICE9ICcnICkgewogICAgICAgICAgICAkc3VicXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIHByb2R1Y3RfaWQgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzIFdIRVJFIHNrdSA9ID8nOwogICAgICAgICAgICAkc3VicGFybXMgPSBhcnJheSgkb2JqWydvcHRza3UnXSk7CgogICAgICAgICAgICAkcGlkID0gJGRiLT5HZXRPbmUoJHN1YnF1ZXJ5LCRzdWJwYXJtcyk7CiAgICAgICAgICAgICR3aGVyZVtdID0gJ0MuaWQgPSA/JzsKICAgICAgICAgICAgJHFwYXJtc1tdID0gJHBpZDsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNzZXQoJG9ialsncHJvZHVjdGxpc3QnXSkgJiYgJG9ialsncHJvZHVjdGxpc3QnXSAhPSAnJyApIHsKICAgICAgICAgICAgJHRtcCA9ICRvYmpbJ3Byb2R1Y3RsaXN0J107CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHRtcCkgKSAkdG1wID0gZXhwbG9kZSgnLCcsJHRtcCk7CiAgICAgICAgICAgICRsaXN0ID0gYXJyYXkoKTsKICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgJG9uZSA9IChpbnQpdHJpbSgkb25lKTsKICAgICAgICAgICAgICAgIGlmKCAkb25lID4gMCApICRsaXN0W10gPSAkb25lOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRsaXN0ID0gYXJyYXlfdW5pcXVlKCRsaXN0KTsKICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5pZCBJTiAoJy5pbXBsb2RlKCcsJywkbGlzdCkuJyknOwogICAgICAgIH0KCiAgICAgICAgaWYoIGlzc2V0KCRvYmpbJ2Rlc2NsaWtlJ10pICYmICRvYmpbJ2Rlc2NsaWtlJ10gKSB7CiAgICAgICAgICAgICR2YWwgPSB0cmltKCRvYmpbJ2Rlc2NsaWtlJ10pOwogICAgICAgICAgICAkd2hlcmVbXSA9ICdDLmRldGFpbHMgTElLRSA/JzsKICAgICAgICAgICAgJHFwYXJtc1tdID0gJHRoaXMtPl93aWxkY2FyZCgkdmFsKTsKICAgICAgICB9CgogICAgICAgIGlmKCAoJG93bmVyID0gJG9ialsnb3duZXInXSkgPiAwICkgewogICAgICAgICAgICAkd2hlcmVbXSA9ICdDLm93bmVyID0gPyc7CiAgICAgICAgICAgICRxcGFybXNbXSA9ICRvd25lcjsKICAgICAgICB9CgogICAgICAgIGlmKCBpc3NldCgkb2JqWydzdGF0dXMnXSkgJiYgJG9ialsnc3RhdHVzJ10gIT0gJyonKSB7CiAgICAgICAgICAgICR2YWwgPSAkb2JqWydzdGF0dXMnXTsKICAgICAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHZhbCwnIScpICkgewogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5zdGF0dXMgIT0gPyc7CiAgICAgICAgICAgICAgICAkdmFsID0gc3Vic3RyKCR2YWwsMSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdDLnN0YXR1cyA9ID8nOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRxcGFybXNbXSA9ICR2YWw7CiAgICAgICAgfQoKICAgICAgICBpZiggaXNzZXQoJG9ialsncHJpY2VyYW5nZSddKSApIHsKICAgICAgICAgICAgaWYoIHN0cnBvcygkb2JqWydwcmljZXJhbmdlJ10sJzonKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICBsaXN0KCRtaW4sJG1heCkgPSBleHBsb2RlKCc6Jywkb2JqWydwcmljZXJhbmdlJ10pOwogICAgICAgICAgICAgICAgaWYoICRtaW4gJiYgJG1heCApIHsKICAgICAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAgICAgJG1heCA9IGZsb2F0dmFsKCRtYXgpOwogICAgICAgICAgICAgICAgICAgIGlmKCAkbWluID4gJG1heCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRtcCA9ICRtaW47CiAgICAgICAgICAgICAgICAgICAgICAgICRtaW4gPSAkbWF4OwogICAgICAgICAgICAgICAgICAgICAgICAkbWF4ID0gJHRtcDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnKEMucHJpY2UgQkVUV0VFTiA/IEFORCA/KSc7CiAgICAgICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJG1pbjsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkbWF4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZWlmICggJG1pbiApIHsKICAgICAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5wcmljZSA+PSA/JzsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkbWluOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZWlmICggJG1heCApIHsKICAgICAgICAgICAgICAgICAgICAkbWF4ID0gZmxvYXR2YWwoJG1heCk7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnQy5wcmljZSA8PSA/JzsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkbWF4OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggaXNzZXQoJG9ialsnaGllcmFyY2h5J10pICYmICRvYmpbJ2hpZXJhcmNoeSddICE9ICcnICkgewogICAgICAgICAgICAkc3VicXVlcnkgPSAnU0VMRUNUIERJU1RJTkNUIGlkIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IGggV0hFUkUgJzsKICAgICAgICAgICAgJHN1YnBhcm1zID0gYXJyYXkoKTsKICAgICAgICAgICAgJHRtcCA9IGV4cGxvZGUoJywnLCRvYmpbJ2hpZXJhcmNoeSddKTsKICAgICAgICAgICAgJHRtcDIgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICBpZiggc3Ryc3RyKCRvbmUsJyonKSAhPT0gRkFMU0UgKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcDJbXSA9ICd1cHBlcihoLmxvbmdfbmFtZSkgTElLRSB1cHBlcig/KSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdG1wMltdID0gJ3VwcGVyKGgubmFtZSkgPSB1cHBlcig/KSc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJG9uZSA9IGNtc19odG1sX2VudGl0eV9kZWNvZGUoJG9uZSk7CiAgICAgICAgICAgICAgICAkb25lID0gdHJpbShzdHJfcmVwbGFjZSgnKicsJyUnLHN0cl9yZXBsYWNlKCciJywnXycsJG9uZSkpKTsKICAgICAgICAgICAgICAgICRzdWJwYXJtc1tdID0gJG9uZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkc3VicXVlcnkgLj0gaW1wbG9kZSgnIE9SICcsJHRtcDIpOwogICAgICAgICAgICAkaGllcmFyY2h5X2lkcyA9ICRkYi0+R2V0Q29sKCRzdWJxdWVyeSwkc3VicGFybXMpOwoKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRoaWVyYXJjaHlfaWRzKSAmJiBjb3VudCgkaGllcmFyY2h5X2lkcykgKSB7CiAgICAgICAgICAgICAgICAvLyRqb2luc1tdID0gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXIgcGggT04gcGgucHJvZHVjdF9pZCA9IEMuaWQnOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnUEguaGllcmFyY2h5X2lkIElOICgnLmltcGxvZGUoJywnLCRoaWVyYXJjaHlfaWRzKS4nKSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggaXNzZXQoJG9ialsnaGllcmFyY2h5aWQnXSkgKSB7CiAgICAgICAgICAgIGlmKCBpc3NldCgkb2JqWydub2NoaWxkcmVuJ10pICYmICRvYmpbJ25vY2hpbGRyZW4nXSApIHsKICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBpbmNsdWRlIGNoaWxkcmVuCiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdQSC5oaWVyYXJjaHlfaWQgPSA/JzsKICAgICAgICAgICAgICAgICRxcGFybXNbXSA9IChpbnQpJG9ialsnaGllcmFyY2h5aWQnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIGluY2x1ZGUgY2hpbGRyZW4KICAgICAgICAgICAgICAgIC8vIGdldCB0aGUgbG9uZyBuYW1lIG9mIHRoaXMgaGllcmFyY2h5IGlkCiAgICAgICAgICAgICAgICAkaW5mbyA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygoaW50KSRvYmpbJ2hpZXJhcmNoeWlkJ10pOwogICAgICAgICAgICAgICAgJHN0ciA9ICcqKnxqdW5rfCoqJzsKICAgICAgICAgICAgICAgIGlmKCBpc19hcnJheSgkaW5mbykgKSAkc3RyID0gJGluZm9bJ2xvbmdfbmFtZSddLiclJzsKICAgICAgICAgICAgICAgICRqb2luc1tdID0gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBIIE9OIEguaWQgPSBQSC5oaWVyYXJjaHlfaWQnOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnSC5sb25nX25hbWUgTElLRSA/JzsKICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRzdHI7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmKCBpc3NldCgkb2JqWydjYXRlZ29yeSddKSAmJiAkb2JqWydjYXRlZ29yeSddICE9ICcnICkgewogICAgICAgICAgICAvLyBnZXQgdGhlIGNhdGVnb3J5J3MKICAgICAgICAgICAgJG9jYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoVFJVRSk7CiAgICAgICAgICAgICRpY2F0aWRzID0gYXJyYXkoKTsKICAgICAgICAgICAgJGljYXRzID0gZXhwbG9kZSgnLCcsJG9ialsnY2F0ZWdvcnknXSk7CiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkaWNhdHMpICYmIGNvdW50KCRpY2F0cykgKSB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCAkaWNhdHMgYXMgJG9uZSApIHsKICAgICAgICAgICAgICAgICAgICAkb25lID0gdHJpbSgkb25lKTsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJG9jYXRzWyRvbmVdKSApICRpY2F0aWRzW10gPSAoaW50KSRvY2F0c1skb25lXS0+aWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkaWNhdGlkcyA9IGFycmF5X3VuaXF1ZSgkaWNhdGlkcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGNvdW50KCRpY2F0aWRzKSApIHsKICAgICAgICAgICAgICAgICRqb2luc1tdID0gQ01TX0RCX1BSRUZJWC4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyBjYyBPTiBjYy5wcm9kdWN0X2lkID0gQy5pZCc7CiAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICdjYy5jYXRlZ29yeV9pZCBJTiAoJy5pbXBsb2RlKCcsJywkaWNhdGlkcykuJyknOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZGVidWdfYnVmZmVyKCdwcm9kdWN0c19yZXN1bHRzZXQgLSBjYXRlZ29yeSBwYXJhbWV0ZXIgcHJvdmlkZWQgdG8gcXVlcnkgKCcuJG9ialsnY2F0ZWdvcnknXS4nKSwgYnV0IG5vIG1hdGNoaW5nIGNhdGVnb3JpZXMgZm91bmQnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmKCBpc3NldCgkb2JqWydjYXRlZ29yeWlkJ10pICYmICRvYmpbJ2NhdGVnb3J5aWQnXSAhPSAnJyApIHsKICAgICAgICAgICAgJGpvaW5zW10gPSBDTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzIHBjIE9OIHBjLnByb2R1Y3RfaWQgPSBDLmlkJzsKICAgICAgICAgICAgJHdoZXJlW10gPSAncGMuY2F0ZWdvcnlfaWQgPSA/JzsKICAgICAgICAgICAgJHFwYXJtc1tdID0gJG9ialsnY2F0ZWdvcnlpZCddOwogICAgICAgIH0KCiAgICAgICAgaWYoIGlzc2V0KCRvYmpbJ2V4Y2x1ZGVjYXQnXSkgJiYgJG9ialsnZXhjbHVkZWNhdCddICE9ICcnICkgewogICAgICAgICAgICAvLyBnZXQgdGhlIGNhdGVvZ3J5IGlkJ3MgZnJvbSB0aGUgbmFtZS4KICAgICAgICAgICAgJG9jYXRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3JpZXMoVFJVRSk7CiAgICAgICAgICAgICRlY2F0cyA9IGV4cGxvZGUoJywnLCRvYmpbJ2V4Y2x1ZGVjYXQnXSk7CiAgICAgICAgICAgICRleGNsdWRlX2lkcyA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2goICRlY2F0cyBhcyAkZWNhdCApIHsKICAgICAgICAgICAgICAgIGlmKCAoaW50KSRlY2F0ID4gMCApIHsKICAgICAgICAgICAgICAgICAgICAkZXhjbHVkZV9pZHNbXSA9IChpbnQpJGVjYXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJG9jYXRzWyRlY2F0XSkgKSAkZXhjbHVkZV9pZHNbXSA9IChpbnQpJG9jYXRzWyRlY2F0XS0+aWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoIGNvdW50KCRleGNsdWRlX2lkcykgKSB7CiAgICAgICAgICAgICAgICAkam9pbnNbXSA9IENNU19EQl9QUkVGSVguJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMgY2MgT04gY2MucHJvZHVjdF9pZCA9IEMuaWQnOwogICAgICAgICAgICAgICAgJHdoZXJlW10gPSAnY2MuY2F0ZWdvcnlfaWQgTk9UIElOICgnLmltcGxvZGUoJywnLCRleGNsdWRlX2lkcykuJyknOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggaXNzZXQoJG9ialsnZmllbGRpZCddKSAmJiAkb2JqWydmaWVsZGlkJ10gPiAwICYmIGlzc2V0KCRvYmpbJ2ZpZWxkdmFsJ10pICYmICRvYmpbJ2ZpZWxkdmFsJ10gIT0gJycgKSB7CiAgICAgICAgICAgIC8vIGFkZCBhIGRlZmF1bHQgZmllbGQgZXhwcmVzc2lvbgogICAgICAgICAgICAkZmllbGRpZCA9ICRvYmpbJ2ZpZWxkaWQnXTsKICAgICAgICAgICAgJGZpZWxkdmFsID0gJG9ialsnZmllbGR2YWwnXTsKICAgICAgICAgICAgJG9iai0+YWRkX2ZpZWxkX2V4cHIoJGZpZWxkaWQsJGZpZWxkdmFsKTsKICAgICAgICB9CgogICAgICAgICRzdWZmaXggPSAnQSc7CiAgICAgICAgZm9yZWFjaCggJG9iai0+Z2V0X2ZpZWxkX2V4cHJzKCkgYXMgJGZpZWxkaWQgPT4gJGZpZWxkdmFsICkgewogICAgICAgICAgICBpZiggJGZpZWxkdmFsID09ICc6Om51bGw6OicgKSB7CiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgYSBjYXNlIHdoZXJlIGEgZmllbGQgaXMgbm90IHNldCBmb3IgYSBwcm9kdWN0LgogICAgICAgICAgICAgICAgJGpvaW5zW10gPSBzcHJpbnRmKENNU19EQl9QUkVGSVguIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZ7JHN1ZmZpeH0gT04gQy5pZCA9IEZWeyRzdWZmaXh9LnByb2R1Y3RfaWQgQU5EIEZWeyRzdWZmaXh9LmZpZWxkZGVmX2lkID0gJWQiLCRmaWVsZGlkKTsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gIihGVnskc3VmZml4fS52YWx1ZSBJUyBOVUxMKSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggJGZpZWxkdmFsID09ICc6Om5vdG51bGw6OicgKSB7CiAgICAgICAgICAgICAgICAvLyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgYSBmaWVsZCBpcyBzZXQgZm9yIGEgcHJvZHVjdCwgYnV0IHdlIGRvbid0IGNhcmUgYWJvdXQgdGhlIHZhbHVlLgogICAgICAgICAgICAgICAgJGpvaW5zW10gPSBzcHJpbnRmKENNU19EQl9QUkVGSVguIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZ7JHN1ZmZpeH0gT04gQy5pZCA9IEZWeyRzdWZmaXh9LnByb2R1Y3RfaWQgQU5EIEZWeyRzdWZmaXh9LmZpZWxkZGVmX2lkID0gJWQiLCRmaWVsZGlkKTsKICAgICAgICAgICAgICAgICR3aGVyZVtdID0gIihGVnskc3VmZml4fS52YWx1ZSAhPSBcJ1wnKSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggc3RycG9zKCRmaWVsZHZhbCwnOicpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgIC8vIGl0J3MgYSBtaW46bWF4IGNhc3QgZXhwcmVzc2lvbi4KICAgICAgICAgICAgICAgIGxpc3QoJG1pbiwkbWF4KSA9IGV4cGxvZGUoJzonLCRmaWVsZHZhbCwyKTsKICAgICAgICAgICAgICAgICRtaW4gPSB0cmltKCRtaW4pOyAkbWF4ID0gdHJpbSgkbWF4KTsKICAgICAgICAgICAgICAgIGlmKCAkbWluICYmICRtYXggKSB7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBzcHJpbnRmKENNU19EQl9QUkVGSVguIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZ7JHN1ZmZpeH0gT04gQy5pZCA9IEZWeyRzdWZmaXh9LnByb2R1Y3RfaWQgQU5EIEZWeyRzdWZmaXh9LmZpZWxkZGVmX2lkID0gJWQiLCRmaWVsZGlkKTsKICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoQ0FTVChGVnskc3VmZml4fS52YWx1ZSBBUyBERUNJTUFMKDEyLDMpKSBCRVRXRUVOID8gQU5EID8pIjsKICAgICAgICAgICAgICAgICAgICAkbWluID0gZmxvYXR2YWwoJG1pbik7CiAgICAgICAgICAgICAgICAgICAgJG1heCA9IGZsb2F0dmFsKCRtYXgpOwogICAgICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRtaW47CiAgICAgICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJG1heDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2VpZiAoICRtaW4gKSB7CiAgICAgICAgICAgICAgICAgICAgJGpvaW5zW10gPSBzcHJpbnRmKENNU19EQl9QUkVGSVguIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZ7JHN1ZmZpeH0gT04gQy5pZCA9IEZWeyRzdWZmaXh9LnByb2R1Y3RfaWQgQU5EIEZWeyRzdWZmaXh9LmZpZWxkZGVmX2lkID0gJWQiLCRmaWVsZGlkKTsKICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoQ0FTVChGVnskc3VmZml4fS52YWx1ZSBBUyBERUNJTUFMKDEyLDMpKSA+PSA/KSI7CiAgICAgICAgICAgICAgICAgICAgJG1pbiA9IGZsb2F0dmFsKCRtaW4pOwogICAgICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRtaW47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlaWYgKCAkbWF4ICkgewogICAgICAgICAgICAgICAgICAgICRqb2luc1tdID0gQ01TX0RCX1BSRUZJWC4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyBGVnskc3VmZml4fSBPTiBDLmlkID0gRlZ7JHN1ZmZpeH0ucHJvZHVjdF9pZCBBTkQgRlZ7JHN1ZmZpeH0uZmllbGRkZWZfaWQgPSA/IjsKICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoQ0FTVChGVnskc3VmZml4fS52YWx1ZSBBUyBERUNJTUFMKDEyLDMpKSA8PSA/KSI7CiAgICAgICAgICAgICAgICAgICAgJG1heCA9IGZsb2F0dmFsKCRtYXgpOwogICAgICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICRtYXg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBsaW1pdCByZXN1bHRzIHRvIGFsbCBvZiB0aGUgaXRlbXMgdGhhdCBoYXZlIHRoaXMgZmllbGQsIGFuZCBmaWVsZCB2YWx1ZS4KICAgICAgICAgICAgICAgICRqb2luc1tdID0gc3ByaW50ZihDTVNfREJfUFJFRklYLiJtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEZWeyRzdWZmaXh9IE9OIEMuaWQgPSBGVnskc3VmZml4fS5wcm9kdWN0X2lkIEFORCBGVnskc3VmZml4fS5maWVsZGRlZl9pZCA9ICVkIiwkZmllbGRpZCk7CiAgICAgICAgICAgICAgICBpZiggc3RycG9zKCRmaWVsZHZhbCwnKicpICE9PSBGQUxTRSB8fCBzdHJwb3MoJGZpZWxkdmFsLCclJykgIT09IEZBTFNFICkgewogICAgICAgICAgICAgICAgICAgICR3aGVyZVtdID0gIihGVnskc3VmZml4fS52YWx1ZSBMSUtFID8pIjsKICAgICAgICAgICAgICAgICAgICAkcXBhcm1zW10gPSAkdGhpcy0+X3dpbGRjYXJkKCRmaWVsZHZhbCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkd2hlcmVbXSA9ICIoRlZ7JHN1ZmZpeH0udmFsdWUgPSA/KSI7CiAgICAgICAgICAgICAgICAgICAgJHFwYXJtc1tdID0gJGZpZWxkdmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRzdWZmaXgrKzsKICAgICAgICB9CgogICAgICAgICRzb3J0YnkgPSAkb2JqWydzb3J0YnknXTsKICAgICAgICAkc29ydG9yZGVyID0gJG9ialsnc29ydG9yZGVyJ107CiAgICAgICAgaWYoIHN0YXJ0c3dpdGgoJHNvcnRieSwnZjonKSApIHsKICAgICAgICAgICAgJHNvcnRieSA9IHN1YnN0cigkc29ydGJ5LDIpOwogICAgICAgICAgICAkZmllbGRkZWZzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhGQUxTRSxUUlVFLFRSVUUpOwogICAgICAgICAgICBpZiggaXNfYXJyYXkoJGZpZWxkZGVmcykgJiYgY291bnQoJGZpZWxkZGVmcykgJiYgaXNzZXQoJGZpZWxkZGVmc1skc29ydGJ5XSkgKSB7CiAgICAgICAgICAgICAgICAkam9pbnNbXSA9IENNU19EQl9QUkVGSVguJ21vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMgRlZTIE9OIEMuaWQgPSBGVlMucHJvZHVjdF9pZCBBTkQgRlZTLmZpZWxkZGVmX2lkID0gJy4oaW50KSRmaWVsZGRlZnNbJHNvcnRieV0tPmlkOwogICAgICAgICAgICAgICAgJHNvcnRieSA9ICdGVlMudmFsdWUnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJHNvcnRieSA9ICdDLnByb2R1Y3RfbmFtZSc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiggJHNvcnRieSA9PSAncmFuZG9tJyApIHsKICAgICAgICAgICAgJHNvcnRieSA9ICdSQU5EKCknOwogICAgICAgICAgICAkc29ydG9yZGVyID0gJyc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkc29ydGJ5ID0gJ0MuJy4kc29ydGJ5OwogICAgICAgIH0KCiAgICAgICAgLy8KICAgICAgICAvLyBidWlsZCB0aGUgcXVlcnkgbm93LgogICAgICAgIC8vCiAgICAgICAgJGV4cHIgPSAnIEFORCAnOwogICAgICAgIGlmKCBpc3NldCgkb2JqWyd1c2VvciddKSAmJiAkb2JqWyd1c2VvciddICkgJGV4cHIgPSAnIE9SICc7CiAgICAgICAgaWYoIGNvdW50KCRqb2lucykgKSAkcXVlcnkgLj0gJyBMRUZUIEpPSU4gJy5pbXBsb2RlKCcgTEVGVCBKT0lOICcsJGpvaW5zKTsKICAgICAgICBpZiggY291bnQoJHdoZXJlKSApICRxdWVyeSAuPSAnIFdIRVJFICcuaW1wbG9kZSgkZXhwciwkd2hlcmUpOwogICAgICAgIGlmKCAkb2JqWydzb3J0dHlwZSddID09ICcnICkgewogICAgICAgICAgICAkcXVlcnkgLj0gJyBPUkRFUiBCWSAnLiRzb3J0YnkuJyAnLiRvYmpbJ3NvcnRvcmRlciddOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHF1ZXJ5IC49ICcgT1JERVIgQlkgQ0FTVCgnLiRzb3J0YnkuJyBBUyAnLiRvYmpbJ3NvcnR0eXBlJ10uJykgJy4kb2JqWydzb3J0b3JkZXInXTsKICAgICAgICB9CgogICAgICAgICRvZmZzZXQgPSAwOwogICAgICAgICRsaW1pdCA9IDEwMDAwMDsKICAgICAgICBpZiggJG9ialsnbGltaXQnXSA+IDAgKSB7CiAgICAgICAgICAgICRsaW1pdCA9IChpbnQpJG9ialsnbGltaXQnXTsKICAgICAgICAgICAgJG9mZnNldCA9IChpbnQpICRvYmpbJ29mZnNldCddOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3JzID0gJGRiLT5TZWxlY3RMaW1pdCgkcXVlcnksJGxpbWl0LCRvZmZzZXQsJHFwYXJtcyk7CiAgICAgICAgaWYoICEkdGhpcy0+X3JzICkgdGhyb3cgbmV3IEV4Y2VwdGlvbignSU5URVJOQUwgRVJST1I6IFF1ZXJ5IGZhaWxlZCAtICcuJGRiLT5zcWwuJyAtLSAnLiRkYi0+RXJyb3JNc2coKSk7CiAgICAgICAgJHRoaXMtPl90b3RhbG1hdGNoaW5nID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCBGT1VORF9ST1dTKCknKTsKCiAgICAgICAgJHRoaXMtPl9wcmVsb2FkKCk7CiAgICB9IC8vIF9xdWVyeQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9wcmVsb2FkX2NhdGVnb3JpZXMoJHByb2R1Y3RfaWRzKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHByb2R1Y3RfaWRzKSB8fCBjb3VudCgkcHJvZHVjdF9pZHMpID09IDAgKSByZXR1cm47CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwcm9kdWN0X2lkLGNhdGVnb3J5X2lkIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzCiAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCBJTiAoJy5pbXBsb2RlKCcsJywkcHJvZHVjdF9pZHMpLicpIE9SREVSIEJZIHByb2R1Y3RfaWQgQVNDJzsKICAgICAgICAkZGJyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgICAgIGlmKCAhaXNfYXJyYXkoJGRicikgfHwgY291bnQoJGRicikgPT0gMCApIHJldHVybjsKCiAgICAgICAgJHRoaXMtPl9jYXRlZ29yeV9jYWNoZSA9ICRkYnI7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJlbG9hZF9oaWVyYXJjaGllcygkcHJvZHVjdF9pZHMpCiAgICB7CiAgICAgICAgaWYoICFpc19hcnJheSgkcHJvZHVjdF9pZHMpIHx8IGNvdW50KCRwcm9kdWN0X2lkcykgPT0gMCApIHJldHVybjsKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICAgICAkc3FsID0gJ1NFTEVDVCBwcm9kdWN0X2lkLCBoaWVyYXJjaHlfaWQgRlJPTSAnLkNNU19EQl9QUkVGSVguJ21vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyCiAgICAgICAgICAgICAgICBXSEVSRSBwcm9kdWN0X2lkIElOICgnLmltcGxvZGUoJywnLCRwcm9kdWN0X2lkcykuJykgT1JERVIgQlkgcHJvZHVjdF9pZCBBU0MsIGhpZXJhcmNoeV9pZCc7CiAgICAgICAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHNxbCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkZGJyKSB8fCBjb3VudCgkZGJyKSA9PSAwICkgcmV0dXJuOwoKICAgICAgICAkdGhpcy0+X2hpZXJhcmNoeV9jYWNoZSA9ICRkYnI7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBfcHJlbG9hZF9maWVsZHMoJHByb2R1Y3RfaWRzKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHByb2R1Y3RfaWRzKSB8fCBjb3VudCgkcHJvZHVjdF9pZHMpID09IDAgKSByZXR1cm47CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwcm9kdWN0X2lkLGZpZWxkZGVmX2lkLHZhbHVlIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzCiAgICAgICAgICAgICAgV0hFUkUgZmllbGRkZWZfaWQgPiAwICYmIHByb2R1Y3RfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHByb2R1Y3RfaWRzKS4nKSBPUkRFUiBCWSBwcm9kdWN0X2lkIEFTQyc7CiAgICAgICAgJGRiciA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgICBpZiggIWlzX2FycmF5KCRkYnIpIHx8IGNvdW50KCRkYnIpID09IDAgKSByZXR1cm47CgogICAgICAgICR0aGlzLT5fZmllbGRfY2FjaGUgPSAkZGJyOwogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9wcmVsb2FkX2F0dHJpYnV0ZXMoJHByb2R1Y3RfaWRzKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoJHByb2R1Y3RfaWRzKSB8fCBjb3VudCgkcHJvZHVjdF9pZHMpID09IDAgKSByZXR1cm47CgogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5DTVNfREJfUFJFRklYLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicwogICAgICAgICAgICAgIFdIRVJFIHByb2R1Y3RfaWQgSU4gKCcuaW1wbG9kZSgnLCcsJHByb2R1Y3RfaWRzKS4nKSBPUkRFUiBCWSBwcm9kdWN0X2lkIEFTQywgaW9yZGVyIEFTQyc7CiAgICAgICAgJGF0dHJpYnMgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgaWYoICFpc19hcnJheSgkYXR0cmlicykgfHwgY291bnQoJGF0dHJpYnMpID09IDAgKSByZXR1cm47CgogICAgICAgICR0aGlzLT5fYXR0cmlidXRlX2NhY2hlID0gYXJyYXkoKTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkYXR0cmlicyk7ICRpKysgKSB7CiAgICAgICAgICAgICRvbmVzZXQgPSYgJGF0dHJpYnNbJGldOwogICAgICAgICAgICAkcGlkID0gJG9uZXNldFsncHJvZHVjdF9pZCddOwogICAgICAgICAgICBpZiggIWlzc2V0KCR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwaWRdKSApICR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwaWRdID0gYXJyYXkoKTsKICAgICAgICAgICAgJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGVbJHBpZF1bXSA9ICRvbmVzZXQ7CiAgICAgICAgfQogICAgfQoKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9wcmVsb2FkKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fcnMgKSByZXR1cm47CgogICAgICAgICRwcm9kdWN0X2lkcyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPl9ycy0+TW92ZUZpcnN0KCk7CiAgICAgICAgd2hpbGUoICEkdGhpcy0+X3JzLT5FT0YgKSB7CiAgICAgICAgICAgICRwcm9kdWN0X2lkc1tdID0gJHRoaXMtPl9ycy0+ZmllbGRzWydpZCddOwogICAgICAgICAgICAkdGhpcy0+X3JzLT5Nb3ZlTmV4dCgpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+X3JzLT5Nb3ZlRmlyc3QoKTsKCiAgICAgICAgaWYoICFjb3VudCgkcHJvZHVjdF9pZHMpICkgcmV0dXJuOwogICAgICAgICRwcm9kdWN0X2lkcyA9IGFycmF5X3VuaXF1ZSgkcHJvZHVjdF9pZHMpOwoKICAgICAgICAvLyBwcmVsb2FkIGNhdGVnb3J5IGluZm8gZm9yIHByb3VkY3QocykuCiAgICAgICAgJGFsbGNhdHMgPSBwcm9kdWN0X3V0aWxzOjpnZXRfY2F0ZWdvcmllcyhUUlVFKTsKICAgICAgICBpZiggaXNfYXJyYXkoJGFsbGNhdHMpICYmIGNvdW50KCRhbGxjYXRzKSApICR0aGlzLT5fcHJlbG9hZF9jYXRlZ29yaWVzKCRwcm9kdWN0X2lkcyk7CgogICAgICAgICR0aGlzLT5fcHJlbG9hZF9oaWVyYXJjaGllcygkcHJvZHVjdF9pZHMpOwoKICAgICAgICAvLyBwcmVsb2FkIGZpZWxkIGluZm8KICAgICAgICAkYWxsZmllbGRzID0gcHJvZHVjdF91dGlsczo6Z2V0X2ZpZWxkZGVmcyhUUlVFLFRSVUUpOwogICAgICAgIGlmKCBpc19hcnJheSgkYWxsZmllbGRzKSAmJiBjb3VudCgkYWxsZmllbGRzKSApICR0aGlzLT5fcHJlbG9hZF9maWVsZHMoJHByb2R1Y3RfaWRzKTsKCiAgICAgICAgLy8gcHJlbG9hZCBhdHRyaWJ1dGVzCiAgICAgICAgJHRoaXMtPl9wcmVsb2FkX2F0dHJpYnV0ZXMoJHByb2R1Y3RfaWRzKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gUmVjb3JkQ291bnQoKQogICAgewogICAgICAgICR0aGlzLT5fcXVlcnkoKTsKICAgICAgICBpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5SZWNvcmRDb3VudCgpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBNb3ZlTmV4dCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9xdWVyeSgpOwogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPk1vdmVOZXh0KCk7CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBNb3ZlRmlyc3QoKQogICAgewogICAgICAgICR0aGlzLT5fcXVlcnkoKTsKICAgICAgICBpZiggJHRoaXMtPl9ycyApIHJldHVybiAkdGhpcy0+X3JzLT5Nb3ZlRmlyc3QoKTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIFJld2luZCgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9xdWVyeSgpOwogICAgICAgIHJldHVybiAkdGhpcy0+TW92ZUZpcnN0KCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIE1vdmVMYXN0KCkKICAgIHsKICAgICAgICAkdGhpcy0+X3F1ZXJ5KCk7CiAgICAgICAgaWYoICR0aGlzLT5fcnMgKSByZXR1cm4gJHRoaXMtPl9ycy0+TW92ZUxhc3QoKTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEVPRigpCiAgICB7CiAgICAgICAgJHRoaXMtPl9xdWVyeSgpOwogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPkVPRigpOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBDbG9zZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPl9xdWVyeSgpOwogICAgICAgIGlmKCAkdGhpcy0+X3JzICkgcmV0dXJuICR0aGlzLT5fcnMtPkNsb3NlKCk7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRrZXkpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKCiAgICAgICAgaWYoICRrZXkgPT0gJ2RldGFpbHBhZ2UnICkgewogICAgICAgICAgICAkZGV0YWlscGFnZSA9IG51bGw7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X2RldGFpbHBhZ2UgKSAkZGV0YWlscGFnZSA9ICRtb2QtPnJlc29sdmVfYWxpYXNfb3JfaWQoICRkZXRhaWxwYWdlICk7CiAgICAgICAgICAgIGlmKCAkZGV0YWlscGFnZSApIHJldHVybiAkZGV0YWlscGFnZTsKICAgICAgICAgICAgJGRmbHRyZXR1cm5pZCA9ICRtb2QtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLC0xKTsKICAgICAgICAgICAgaWYoICRkZmx0cmV0dXJuaWQgPiAwICkgcmV0dXJuICRkZmx0cmV0dXJuaWQ7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X2N1cnBhZ2UgKSByZXR1cm4gJHRoaXMtPl9jdXJwYWdlOwogICAgICAgICAgICByZXR1cm4gXENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKS0+R2V0RGVmYXVsdENvbnRlbnQoKTsKICAgICAgICB9CiAgICAgICAgaWYoICRrZXkgPT0gJ2RldGFpbHRlbXBsYXRlJyApIHJldHVybiAkdGhpcy0+X2RldGFpbHRlbXBsYXRlOwogICAgICAgIGlmKCAka2V5ID09ICdoaWVycGFnZScgKSB7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+X2hpZXJwYWdlICkgcmV0dXJuICR0aGlzLT5faGllcnBhZ2U7CiAgICAgICAgICAgICRkZmx0cmV0dXJuaWQgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdoaWVycGFnZScsLTEpOwogICAgICAgICAgICBpZiggJGRmbHRyZXR1cm5pZCA+IDAgKSByZXR1cm4gJGRmbHRyZXR1cm5pZDsKICAgICAgICAgICAgaWYoICR0aGlzLT5fY3VycGFnZSApIHJldHVybiAkdGhpcy0+X2N1cnBhZ2U7CiAgICAgICAgICAgIHJldHVybiBcQ29udGVudE9wZXJhdGlvbnM6OmdldF9pbnN0YW5jZSgpLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgICAgIH0KICAgICAgICBpZiggJGtleSA9PSAnY3VycGFnZScgKSByZXR1cm4gJHRoaXMtPl9jdXJwYWdlOwogICAgICAgIGlmKCAka2V5ID09ICdub3RwcmV0dHknICkgcmV0dXJuICR0aGlzLT5fbm90cHJldHR5OwoKICAgICAgICAkdGhpcy0+X3F1ZXJ5KCk7CiAgICAgICAgaWYoICRrZXkgPT0gJ0VPRicgKSByZXR1cm4gJHRoaXMtPl9ycy0+RU9GKCk7CiAgICAgICAgaWYoICRrZXkgPT0gJ3RvdGFscm93cycgKSByZXR1cm4gJHRoaXMtPl90b3RhbG1hdGNoaW5nOwogICAgICAgIGlmKCAka2V5ID09ICdmaWVsZHMnICYmICR0aGlzLT5fcnMgJiYgISR0aGlzLT5fcnMtPkVPRigpICkgcmV0dXJuICR0aGlzLT5fcnMtPmZpZWxkczsKICAgICAgICBpZiggJGtleSA9PSAnbnVtcGFnZXMnICkgcmV0dXJuIGNlaWwoJHRoaXMtPl90b3RhbG1hdGNoaW5nIC8gJHRoaXMtPl9maWx0ZXJbJ3BhZ2VsaW1pdCddKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gX19zZXQoJGtleSwkdmFsdWUpCiAgICB7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZSgnUHJvZHVjdHMnKTsKICAgICAgICBzd2l0Y2goICRrZXkgKSB7CiAgICAgICAgY2FzZSAnZGV0YWlscGFnZSc6CiAgICAgICAgICAgICR0bXAgPSAkbW9kLT5yZXNvbHZlX2FsaWFzX29yX2lkKCR2YWx1ZSk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgJHRoaXMtPl9kZXRhaWxwYWdlID0gJHRtcDsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnaGllcnBhZ2UnOgogICAgICAgICAgICAkdG1wID0gJG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdmFsdWUpOwogICAgICAgICAgICBpZiggJHRtcCApICR0aGlzLT5faGllcnBhZ2UgPSAkdmFsdWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2N1cnBhZ2UnOgogICAgICAgICAgICAkdG1wID0gJG1vZC0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkdmFsdWUpOwogICAgICAgICAgICBpZiggJHRtcCApICR0aGlzLT5fY3VycGFnZSA9ICR2YWx1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnbm90cHJldHR5JzoKICAgICAgICAgICAgJHRoaXMtPl9ub3RwcmV0dHkgPSB0cmltKCR2YWx1ZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2RldGFpbHRlbXBsYXRlJzoKICAgICAgICAgICAgJHRoaXMtPl9kZXRhaWx0ZW1wbGF0ZSA9ICR2YWx1ZTsKICAgICAgICAgICAgaWYoICR0aGlzLT5fbm90cHJldHR5ID09ICcnICkgJHRoaXMtPl9ub3RwcmV0dHkgPSAnZGV0YWlscyc7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdDYW5ub3Qgc2V0ICcuJGtleS4nIGludG8gdGhpcyBvYmplY3QnKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uICZnZXRfb2JqZWN0KCkKICAgIHsKICAgICAgICAkb2JqID0gJHRoaXMtPmdldF9wcm9kdWN0KCk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgLy8gcmV0dXJuIHRoZSBmdWxsIHByb2R1Y3QgKHdpdGggZmllbGRzLCBhbmQgYXR0cmlidXRlcykKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdCgkYXNfYXJyYXkgPSBGQUxTRSkKICAgIHsKICAgICAgICAkcmV0ID0gbnVsbDsKICAgICAgICBpZiggISR0aGlzLT5fcnMgKSByZXR1cm4gJHJldDsKCiAgICAgICAgJHByb2R1Y3RfYXJyID0gJHRoaXMtPl9ycy0+ZmllbGRzOwogICAgICAgICRwcm9kdWN0X2FyclsnZXh0cmEnXSA9IHVuc2VyaWFsaXplKCRwcm9kdWN0X2FyclsnZXh0cmEnXSk7CgogICAgICAgICRwcm9kdWN0X2lkID0gKGludCkgJHByb2R1Y3RfYXJyWydpZCddOwoKICAgICAgICAvLyBjYXRlZ29yaWVzCiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUpICYmIGNvdW50KCR0aGlzLT5fY2F0ZWdvcnlfY2FjaGUpICkgewogICAgICAgICAgICAkY2F0YXJyYXkgPSBbXTsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9jYXRlZ29yeV9jYWNoZSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPl9jYXRlZ29yeV9jYWNoZVskaV1bJ3Byb2R1Y3RfaWQnXSA8ICRwcm9kdWN0X2lkICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPl9jYXRlZ29yeV9jYWNoZVskaV1bJ3Byb2R1Y3RfaWQnXSA+ICRwcm9kdWN0X2lkICkgYnJlYWs7CgogICAgICAgICAgICAgICAgJGNhdGFycmF5W10gPSAoaW50KSAkdGhpcy0+X2NhdGVnb3J5X2NhY2hlWyRpXVsnY2F0ZWdvcnlfaWQnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcHJvZHVjdF9hcnJbJ2NhdGVnb3JpZXMnXSA9ICRjYXRhcnJheTsKICAgICAgICB9CgogICAgICAgIC8vIGhpZXJhcmNoeSBjYWNoZQogICAgICAgIGlmKCBpc19hcnJheSgkdGhpcy0+X2hpZXJhcmNoeV9jYWNoZSkgJiYgY291bnQoJHRoaXMtPl9oaWVyYXJjaHlfY2FjaGUpICkgewogICAgICAgICAgICAkb3V0ID0gW107CiAgICAgICAgICAgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCR0aGlzLT5faGllcmFyY2h5X2NhY2hlKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgIGlmKCAkdGhpcy0+X2hpZXJhcmNoeV9jYWNoZVskaV1bJ3Byb2R1Y3RfaWQnXSA8ICRwcm9kdWN0X2lkICkgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPl9oaWVyYXJjaHlfY2FjaGVbJGldWydwcm9kdWN0X2lkJ10gPiAkcHJvZHVjdF9pZCApIGJyZWFrOwogICAgICAgICAgICAgICAgJG91dFtdID0gKGludCkgJHRoaXMtPl9oaWVyYXJjaHlfY2FjaGVbJGldWydoaWVyYXJjaHlfaWQnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcHJvZHVjdF9hcnJbJ2hpZXJhcmNoaWVzJ10gPSAkb3V0OwogICAgICAgIH0KCiAgICAgICAgLy8gZmllbGRzCiAgICAgICAgaWYoIGlzX2FycmF5KCR0aGlzLT5fZmllbGRfY2FjaGUpICYmIGNvdW50KCR0aGlzLT5fZmllbGRfY2FjaGUpICkgewogICAgICAgICAgICAkZmxkZGVmcyA9IHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoRkFMU0UsVFJVRSk7CiAgICAgICAgICAgICR1bnNlcmlhbGl6ZSA9IFtdOwogICAgICAgICAgICBmb3JlYWNoKCAkZmxkZGVmcyBhcyAkb25lZGVmICkgewogICAgICAgICAgICAgICAgaWYoICRvbmVkZWYtPnR5cGUgPT0gJ2RpbWVuc2lvbnMnIHx8ICRvbmVkZWYtPnR5cGUgPT0gJ3N1YnNjcmlwdGlvbicgKSAkdW5zZXJpYWxpemVbXSA9ICRvbmVkZWYtPmlkOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZmxkYXJyYXkgPSBbXTsKICAgICAgICAgICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9maWVsZF9jYWNoZSk7ICRpKysgKSB7CiAgICAgICAgICAgICAgICAkcm93ID0gJHRoaXMtPl9maWVsZF9jYWNoZVskaV07CiAgICAgICAgICAgICAgICBpZiggJHJvd1sncHJvZHVjdF9pZCddIDwgJHByb2R1Y3RfaWQgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgIGlmKCAkcm93Wydwcm9kdWN0X2lkJ10gPiAkcHJvZHVjdF9pZCApIGJyZWFrOwoKICAgICAgICAgICAgICAgICR2YWx1ZSA9ICRyb3dbJ3ZhbHVlJ107CiAgICAgICAgICAgICAgICBpZiggaW5fYXJyYXkoIChpbnQpICRyb3dbJ2ZpZWxkZGVmX2lkJ10sICR1bnNlcmlhbGl6ZSApICkgewogICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IHVuc2VyaWFsaXplKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZmxkYXJyYXlbJHJvd1snZmllbGRkZWZfaWQnXV0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHByb2R1Y3RfYXJyWydmaWVsZF92YWxzJ10gPSAkZmxkYXJyYXk7CiAgICAgICAgfQoKICAgICAgICAvLyBhdHRyaWJ1dGVzL29wdGlvbnMKICAgICAgICBpZiggaXNfYXJyYXkoJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGUpICYmIGlzc2V0KCR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwcm9kdWN0X2lkXSkgJiYKICAgICAgICAgICAgaXNfYXJyYXkoJHRoaXMtPl9hdHRyaWJ1dGVfY2FjaGVbJHByb2R1Y3RfaWRdKSAmJgogICAgICAgICAgICBjb3VudCgkdGhpcy0+X2F0dHJpYnV0ZV9jYWNoZVskcHJvZHVjdF9pZF0pICkgewogICAgICAgICAgICAkcHJvZHVjdF9hcnJbJ2F0dHJpYnMnXSA9ICR0aGlzLT5fYXR0cmlidXRlX2NhY2hlWyRwcm9kdWN0X2lkXTsKICAgICAgICB9CgogICAgICAgIGlmKCAkYXNfYXJyYXkgKSByZXR1cm4gJHByb2R1Y3RfYXJyOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgJG9iaiA9IG5ldyBcUHJvZHVjdHNcUHJvZHVjdDsKICAgICAgICAkb2JqLT5mcm9tX2FycmF5KCAkcHJvZHVjdF9hcnIgKTsKICAgICAgICAkbW9kLT5HZXRQcm9kdWN0U3RvcmFnZSgpLT5hZGRfdG9fY2FjaGUoICRvYmogKTsKICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCgogICAgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2Zvcl9kaXNwbGF5KCkKICAgIHsKICAgICAgICAkcmV0ID0gbnVsbDsKICAgICAgICBpZiggISR0aGlzLT5fcnMgKSByZXR1cm4gJHJldDsKCiAgICAgICAgJHByb2R1Y3QgPSAkdGhpcy0+Z2V0X3Byb2R1Y3QoKTsKICAgICAgICAkYXJyID0gWydkZXRhaWxwYWdlJyA9PiAkdGhpcy0+ZGV0YWlscGFnZSBdOwogICAgICAgICRhcnJbJ2RldGFpbHRlbXBsYXRlJ109ICR0aGlzLT5kZXRhaWx0ZW1wbGF0ZTsKICAgICAgICAkYXJyWydjdXJwYWdlJ10gPSAkdGhpcy0+Y3VycGFnZTsgLy8gYWJzb2x1dGVseSByZXF1aXJlZC4KICAgICAgICAkYXJyWydub3RwcmV0dHknXSA9ICR0aGlzLT5ub3RwcmV0dHk7CiAgICAgICAgJGFyclsnaGllcnBhZ2UnXSA9ICR0aGlzLT5oaWVycGFnZTsKICAgICAgICAkb2JqID0gbmV3IFxQcm9kdWN0c1xEaXNwbGF5YWJsZVByb2R1Y3QoICRwcm9kdWN0LCAkYXJyICk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9IC8vIGZ1bmN0aW9uCn0gLy8gZW5kIG9mIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/lib/class.product_ops.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3Rfb3BzCnsKICAgIHN0YXRpYyBwcml2YXRlICRfZmllbGRkZWZzOwogICAgc3RhdGljIHByaXZhdGUgJF9wcm9kaGllcjsKCiAgICBwcml2YXRlIGZ1bmN0aW9uIF9fY29uc3RydWN0KCkge30KCiAgICBzdGF0aWMgcHVibGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0KCRwcm9kdWN0X2lkLCRhbnlzdGF0dXMgPSBGQUxTRSkKICAgIHsKICAgICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAgICRwcm9kdWN0ID0gJG1vZC0+R2V0UHJvZHVjdFN0b3JhZ2UoKS0+Z2V0X2J5X2lkKCAkcHJvZHVjdF9pZCwgdHJ1ZSApOwogICAgICAgIGlmKCAhJHByb2R1Y3QgKSByZXR1cm47CiAgICAgICAgaWYoICEkYW55c3RhdHVzICYmICRwcm9kdWN0LT5zdGF0dXMgIT0gJHByb2R1Y3Q6OlNUQVRVU19QVUJMSVNIRUQgKSByZXR1cm47CiAgICAgICAgcmV0dXJuICRwcm9kdWN0OwogICAgfQoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gaXNfdmFsaWRfY2F0ZWdvcnkoJG5hbWUpCiAgICB7CiAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFdIRVJFIG5hbWUgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRuYW1lKSk7CiAgICAgICAgaWYoICR0bXAgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfcHJvZHVjdF9pZCgkcGlkKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgaWQgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkcGlkKSk7CiAgICAgICAgaWYoICR0bXAgKSByZXR1cm4gVFJVRTsKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaXNfdmFsaWRfaGllcmFyY2h5KCRzdHIpCiAgICB7CiAgICAgICAgLy8gYWNjZXB0IHN0cmluZyBvZiAibmFtZS5uYW1lLm5hbWUubmFtZSIgYW5kCiAgICAgICAgLy8gY29udmVydCBpbnRvICJuYW1lIHwgbmFtZSB8IG5hbWUgfCBuYW1lIjsKICAgICAgICAkdG1wID0gZXhwbG9kZSgnLicsJHN0cik7CiAgICAgICAgJHRtcDIgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2goICR0bXAgYXMgJG9uZSApIHsKICAgICAgICAgICAgJHRtcDJbXSA9IHRyaW0odHJpbSgkb25lLCciJykpOwogICAgICAgIH0KICAgICAgICAkdG1wMyA9IGltcGxvZGUoJyB8ICcsJHRtcDIpOwoKICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBXSEVSRSBsb25nX25hbWUgPSA/JzsKICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCR0bXAzKSk7CiAgICAgICAgaWYoICEkdG1wICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBUUlVFOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrX3NrdV91c2VkKCRza3UsJHByb2R1Y3RpZCA9ICcnLCRwcm9kdWN0b25seSA9IGZhbHNlKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgc2t1ID0gPyc7CiAgICAgICAgJHBhcm1zID0gYXJyYXkoJHNrdSk7CiAgICAgICAgaWYoICFlbXB0eSgkcHJvZHVjdGlkKSApIHsKICAgICAgICAgICAgJHF1ZXJ5IC49ICcgQU5EIGlkICE9ID8nOwogICAgICAgICAgICAkcGFybXNbXSA9ICRwcm9kdWN0aWQ7CiAgICAgICAgfQogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksJHBhcm1zKTsKICAgICAgICBpZiggJHRtcCApIHJldHVybiBUUlVFOwoKICAgICAgICBpZiggISRwcm9kdWN0b25seSApIHsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBXSEVSRSBza3UgPSA/JzsKICAgICAgICAgICAgJHBhcm1zID0gWyAkc2t1IF07CiAgICAgICAgICAgIGlmKCAhZW1wdHkoJHByb2R1Y3RpZCkgKSB7CiAgICAgICAgICAgICAgICAkcXVlcnkgLj0gJyBBTkQgcHJvZHVjdF9pZCAhPSA/JzsKICAgICAgICAgICAgICAgICRwYXJtc1tdID0gJHByb2R1Y3RpZDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdG1wID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCRwYXJtcyk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgcmV0dXJuIFRSVUU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gRkFMU0U7CiAgICB9CgoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gY2hlY2tfYWxpYXNfdXNlZCgkYWxpYXMsJHByb2R1Y3RpZCA9ICcnKQogICAgewogICAgICAgICRkYiA9IGNtc21zKCktPkdldERiKCk7CgogICAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICAgJHBhcm1zW10gPSAkYWxpYXM7CiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgV0hFUkUgYWxpYXMgPSA/JzsKICAgICAgICBpZiggIWVtcHR5KCRwcm9kdWN0aWQpICkgewogICAgICAgICAgICAkcXVlcnkgLj0gJ0FORCBpZCAhPSA/JzsKICAgICAgICAgICAgJHBhcm1zW10gPSAoaW50KSRwcm9kdWN0aWQ7CiAgICAgICAgfQogICAgICAgICR0bXAgPSAkZGItPkdldE9uZSgkcXVlcnksJHBhcm1zKTsKICAgICAgICBpZiggISR0bXAgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgcmV0dXJuIFRSVUU7CiAgICB9CgoKICAgIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gZ2VuZXJhdGVfYWxpYXMoJHByb2R1Y3RfbmFtZSkKICAgIHsKICAgICAgICAkc3RyID0gbXVuZ2Vfc3RyaW5nX3RvX3VybCgkcHJvZHVjdF9uYW1lKTsKICAgICAgICAkcG9zdGZpeCA9ICcnOwoKICAgICAgICB3aGlsZSggJHBvc3RmaXggPCAxMDAwICkgewogICAgICAgICAgICAkYWxpYXMgPSAkc3RyLiRwb3N0Zml4OwogICAgICAgICAgICBpZiggIXNlbGY6OmNoZWNrX2FsaWFzX3VzZWQoJGFsaWFzKSApIHJldHVybiAkYWxpYXM7CiAgICAgICAgICAgIGlmKCAkcG9zdGZpeCA9PSAnJyApICRwb3N0Zml4ID0gMTsKICAgICAgICAgICAgJHBvc3RmaXgrKzsKICAgICAgICB9CgogICAgICAgIHJldHVybiBGQUxTRTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2hpZXJhcmNoeV9pZCgkcHJvZHVjdGlkKQogICAgewogICAgICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9wcm9kaGllcikgfHwgIWlzc2V0KHNlbGY6OiRfcHJvZGhpZXJbJHByb2R1Y3RpZF0pICkgewogICAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIGhpZXJhcmNoeV9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHRvaGllcgogICAgICAgICAgICAgICAgV0hFUkUgcHJvZHVjdF9pZCA9ID8gTElNSVQgMSc7CiAgICAgICAgICAgICRoaWVyX2lkID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LGFycmF5KCRwcm9kdWN0aWQpKTsKICAgICAgICAgICAgaWYoICRoaWVyX2lkIDw9IDAgKSByZXR1cm4gRkFMU0U7CiAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoc2VsZjo6JF9wcm9kaGllcikgKSBzZWxmOjokX3Byb2RoaWVyID0gYXJyYXkoKTsKICAgICAgICAgICAgc2VsZjo6JF9wcm9kaGllclskcHJvZHVjdGlkXSA9ICRoaWVyX2lkOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VsZjo6JF9wcm9kaGllclskcHJvZHVjdGlkXTsKICAgIH0KCgogICAgLyogZGVwcmVjYXRlZCAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfcHJvZHVjdF9oaWVyYXJjaHlfcGF0aCgkcHJvZHVjdGlkKQogICAgewogICAgICAgICRoaWVyX2lkID0gc2VsZjo6Z2V0X3Byb2R1Y3RfaGllcmFyY2h5X2lkKCRwcm9kdWN0aWQpOwogICAgICAgIGlmKCAkaGllcl9pZCApIHJldHVybiBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X3BhdGgoJGhpZXJfaWQpOwogICAgfQoKCiAgICAvKiBkZXByZWNhdGVkICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZV9oaWVyYXJjaHlfYnJlYWRjcnVtYigkaWQsJHByb2R1Y3RfaWQsICRoaWVycGFnZSwgJGRlbGltID0gJyAmZ3Q7ICcpCiAgICB7CiAgICAgICAgJGhpZXJfaWQgPSBzZWxmOjpnZXRfcHJvZHVjdF9oaWVyYXJjaHlfaWQoJHByb2R1Y3RfaWQpOwogICAgICAgIGlmKCAkaGllcl9pZCA8PSAwICkgcmV0dXJuIEZBTFNFOwogICAgICAgIHJldHVybiBoaWVyYXJjaHlfb3BzOjpnZXRfYnJlYWRjcnVtYigkaWQsJGhpZXJfaWQsJGhpZXJwYWdlLCRkZWxpbSk7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3NlYXJjaF9yZXN1bHQoJHJldHVybmlkLCAkcHJvZHVjdGlkLCAkYXR0ciA9ICcnKQogICAgewogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKCiAgICAgICAgaWYoICRhdHRyICE9ICdwcm9kdWN0JyApIHJldHVybiAkcmVzdWx0OwogICAgICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCd1c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNoJywwKSApIHsKICAgICAgICAgICAgJHRtcCA9IChpbnQpICRtb2QtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnKTsKICAgICAgICAgICAgaWYoICR0bXAgPiAwICkgJHJldHVybmlkID0gJHRtcDsKICAgICAgICB9CgogICAgICAgICRxdWVyeSA9IG5ldyBwcm9kdWN0c19xdWVyeTsKICAgICAgICAkcXVlcnlbJ3Byb2R1Y3RpZCddID0gKGludCkgJHByb2R1Y3RpZDsKICAgICAgICAkcnMgPSAkcXVlcnktPmV4ZWN1dGUoKTsKICAgICAgICAkcnMtPmN1cnBhZ2UgPSAkcmV0dXJuaWQ7CiAgICAgICAgaWYoICRycy0+dG90YWxyb3dzID09IDEgKSB7CiAgICAgICAgICAgICRvbmVyb3cgPSAkcnMtPmdldF9wcm9kdWN0X2Zvcl9kaXNwbGF5KCk7CgogICAgICAgICAgICAvLzAgcG9zaXRpb24gaXMgdGhlIHByZWZpeCBkaXNwbGF5ZWQgaW4gdGhlIGxpc3QgcmVzdWx0cy4KICAgICAgICAgICAgJHJlc3VsdFswXSA9ICRtb2QtPkdldEZyaWVuZGx5TmFtZSgpOwoKICAgICAgICAgICAgLy8xIHBvc2l0aW9uIGlzIHRoZSB0aXRsZQogICAgICAgICAgICAkcmVzdWx0WzFdID0gJG9uZXJvdy0+bmFtZTsKCiAgICAgICAgICAgIC8vMiBwb3NpdGlvbiBpcyB0aGUgVVJMIHRvIHRoZSB0aXRsZS4KICAgICAgICAgICAgJHJlc3VsdFsyXSA9ICRvbmVyb3ctPmNhbm9uaWNhbDsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jdXJyZW5jeV9zeW1ib2woKQogICAgewogICAgICAgICRjZ2VjYiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIGlmKCBjbGFzc19leGlzdHMoJ2NnX2Vjb21tJykgKSByZXR1cm4gY2dfZWNvbW06OmdldF9jdXJyZW5jeV9zeW1ib2woKTsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICAgcmV0dXJuICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2N1cnJlbmN5c3ltYm9sJywnJCcpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2N1cnJlbmN5X2NvZGUoKQogICAgewogICAgICAgICRjZ2VjYiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIGlmKCBjbGFzc19leGlzdHMoJ2NnX2Vjb21tJykgKSByZXR1cm4gY2dfZWNvbW06OmdldF9jdXJyZW5jeV9jb2RlKCk7CiAgICAgICAgJG1vZCA9IGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAgIHJldHVybiAkbW9kLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19jdXJyZW5jeXN5bWJvbCcsJ1VTRCcpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3dlaWdodF91bml0cygpCiAgICB7CiAgICAgICAgJGNnZWNiID0gXGNtc191dGlsczo6Z2V0X21vZHVsZSgnQ0dFY29tbWVyY2VCYXNlJyk7CiAgICAgICAgaWYoIGNsYXNzX2V4aXN0cygnY2dfZWNvbW0nKSApIHJldHVybiBjZ19lY29tbTo6Z2V0X3dlaWdodF91bml0cygpOwogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgICByZXR1cm4gJG1vZC0+R2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfd2VpZ2h0dW5pdHMnLCdrZycpOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9sZW5ndGhfdW5pdHMoKQogICAgewogICAgICAgICRjZ2VjYiA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ0NHRWNvbW1lcmNlQmFzZScpOwogICAgICAgIGlmKCBjbGFzc19leGlzdHMoJ2NnX2Vjb21tJykgKSByZXR1cm4gY2dfZWNvbW06OmdldF9sZW5ndGhfdW5pdHMoKTsKICAgICAgICAkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICAgcmV0dXJuICRtb2QtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX2xlbmd0aHVuaXRzJywnY20nKTsKICAgIH0KCgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZmllbGRzKCkKICAgIHsKICAgICAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfZmllbGRkZWZzKSApIHsKICAgICAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKCiAgICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzIE9SREVSIEJZIGl0ZW1fb3JkZXInOwogICAgICAgICAgICBzZWxmOjokX2ZpZWxkZGVmcyA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNlbGY6OiRfZmllbGRkZWZzOwogICAgfQoKCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9maWVsZF9vcHRpb25zKCR0eXBlID0gJycpCiAgICB7CiAgICAgICAgJHRtcCA9IHNlbGY6OmdldF9maWVsZHMoKTsKICAgICAgICBpZiggIWlzX2FycmF5KCR0bXApICkgcmV0dXJuOwoKICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApIHsKICAgICAgICAgICAgaWYoICR0eXBlID09ICcnIHx8ICR0bXBbJGldWyd0eXBlJ10gPT0gJHR5cGUgKSAkcmVzdWx0WyR0bXBbJGldWydpZCddXSA9ICR0bXBbJGldWydwcm9tcHQnXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgoKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfYXR0cmlidXRlc19mdWxsKCRwcm9kdWN0X2lkKQogICAgewogICAgICAgICRkYXRhID0gcHJvZHVjdHNfYXR0cmliOjpsb2FkX2J5X3Byb2R1Y3QoJHByb2R1Y3RfaWQpOwogICAgICAgIGlmKCAhY291bnQoJGRhdGEpICkgcmV0dXJuIGZhbHNlOwogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZV9uZXdfcHJvZHVjdCgpCiAgICB7CiAgICAgICAgLy8gY3JlYXRlcyBhIG5ldyBwcm9kdWN0IGZpbGxlZCB3aXRoIGRlZmF1bHRzLgogICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgICAkcHJvZHVjdCA9IG5ldyBcUHJvZHVjdHNcUHJvZHVjdDsKICAgICAgICAkcHJvZHVjdC0+c2V0X3N0YXR1cygkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X3N0YXR1cycsJHByb2R1Y3Q6OlNUQVRVU19QVUJMSVNIRUQpKTsKICAgICAgICAkcHJvZHVjdC0+c2V0X3RheGFibGUoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF90YXhhYmxlJywxKSk7CiAgICAgICAgcmV0dXJuICRwcm9kdWN0OwogICAgfQp9IC8vIGNsYXNzCgoKIwojIEVPRgojCg==]]></data>
	</file>
	<file>
	  <filename>/lib/class.product_utils.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmZpbmFsIGNsYXNzIHByb2R1Y3RfdXRpbHMKewogIHByb3RlY3RlZCBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHt9CiAgcHJpdmF0ZSBzdGF0aWMgJF9jYXRlZ29yeV9jYWNoZTsKICBzdGF0aWMgcHJpdmF0ZSAkX2ZsZGRlZl9jYWNoZTsKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmV1X293bmVybGlzdCgpCiAgewogICAgICAvLyBsaXN0IG9mIHVzZXJzIHRoYXQgY2FuIGJlIG93bmVycyB0byBhIHByb2R1Y3QuCiAgICAgICRmZXUgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdGcm9udEVuZFVzZXJzJyk7CiAgICAgIGlmKCAhJGZldSApIHJldHVybjsKCiAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICRnaWQgPSAoaW50KSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdmZXVfb3duZXJncm91cCcpOwogICAgICBpZiggJGdpZCA8IDEgKSByZXR1cm47CgogICAgICAkb3V0ID0gWyAnJyA9PiAkbW9kLT5MYW5nKCdub25lJykgXTsKICAgICAgJHFyeSA9IG5ldyBcZmV1X3VzZXJfcXVlcnkoKTsKICAgICAgJHFyeS0+YWRkX2FuZF9vcHQoZmV1X3VzZXJfcXVlcnlfb3B0OjpNQVRDSF9HUk9VUElELCRnaWQpOwogICAgICAkcXJ5LT5hZGRfYW5kX29wdChcZmV1X3VzZXJfcXVlcnlfT1BUOjpNQVRDSF9OT1RFWFBJUkVEKTsKICAgICAgJHFyeS0+c2V0X3NvcnRieShcZmV1X3VzZXJfcXVlcnk6OlJFU1VMVF9TT1JUQllfVVNFUk5BTUUpOwogICAgICAkcXJ5LT5zZXRfc29ydG9yZGVyKFxmZXVfdXNlcl9xdWVyeTo6UkVTVUxUX1NPUlRPUkRFUl9BU0MpOwogICAgICAkcnMgPSAkcXJ5LT5leGVjdXRlKCk7CiAgICAgIHdoaWxlKCAhJHJzLT5FT0YgKSB7CiAgICAgICAgICAkcm93ID0gJHJzLT5maWVsZHM7CiAgICAgICAgICAkb3V0WyRyb3dbJ2lkJ11dID0gJHJvd1sndXNlcm5hbWUnXTsKICAgICAgICAgICRycy0+TW92ZU5leHQoKTsKICAgICAgfQogICAgICByZXR1cm4gJG91dDsKICB9CgogIHN0YXRpYyBwdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpZWxkX3R5cGVzKCRzZWxlY3RvbmUgPSBmYWxzZSkKICB7CiAgICAgICRtb2QgPSBjZ2VfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgJGl0ZW1zID0gYXJyYXkoKTsKICAgICAgaWYoICRzZWxlY3RvbmUgKSAkaXRlbXNbJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXSA9ICcnOwogICAgICAkaXRlbXNbJG1vZC0+TGFuZygndGV4dGJveCcpXSA9ICd0ZXh0Ym94JzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2NoZWNrYm94JyldID0gJ2NoZWNrYm94JzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ3RleHRhcmVhJyldID0gJ3RleHRhcmVhJzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2Ryb3Bkb3duJyldID0gJ2Ryb3Bkb3duJzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2ltYWdlX3VwbG9hZCcpXSA9ICdpbWFnZSc7CiAgICAgICRpdGVtc1skbW9kLT5MYW5nKCdmaWxlX3VwbG9hZCcpXSA9ICdmaWxlJzsKICAgICAgJGl0ZW1zWyRtb2QtPkxhbmcoJ2ZpbGVfbGluaycpXSA9ICdmaWxlbGluayc7CiAgICAgICRpdGVtc1skbW9kLT5MYW5nKCdkaW1lbnNpb25zJyldID0gJ2RpbWVuc2lvbnMnOwogICAgICAkaXRlbXNbJG1vZC0+TGFuZygnc3Vic2NyaXB0aW9uJyldID0gJ3N1YnNjcmlwdGlvbic7CiAgICAgICRpdGVtc1skbW9kLT5MYW5nKCdxdWFudGl0eV9vbl9oYW5kJyldID0gJ3F1YW50aXR5JzsKICAgICAgJGNkbW9kID0gY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdDb21wYW55RGlyZWN0b3J5JywnMS4xOScpOwogICAgICBpZiggaXNfb2JqZWN0KCRjZG1vZCkgKSAkaXRlbXNbJG1vZC0+TGFuZygnY29tcGFueWRpcl9yZWZlcmVuY2UnKV0gPSAnY29tcGFueWRpcic7CiAgICAgIHJldHVybiBhcnJheV9mbGlwKCRpdGVtcyk7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZGlzcGxheWFibGVfZmllbGR2YWwoJGZpZWxkbmFtZSwkZmllbGR2YWwpCiAgewogICAgICAkbW9kID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKE1PRF9QUk9EVUNUUyk7CiAgICAgICRmaWVsZHMgPSBwcm9kdWN0X29wczo6Z2V0X2ZpZWxkcygpOwogICAgICAkZmllbGRzID0gY2dlX2FycmF5Ojp0b19oYXNoKCRmaWVsZHMsJ25hbWUnKTsKICAgICAgJGZpZWxkdHlwZSA9ICRmaWVsZHNbJGZpZWxkbmFtZV1bJ3R5cGUnXTsKICAgICAgJHJlcyA9ICRmaWVsZHZhbDsKICAgICAgc3dpdGNoKCAkZmllbGR0eXBlICkgewogICAgICBjYXNlICdjaGVja2JveCc6CiAgICAgICAgICBpZiggIWlzX251bGwoJHJlcykgKSAkcmVzID0gJG1vZC0+TGFuZygncHJvbXB0XycuJHJlcyk7CiAgICAgICAgICBicmVhazsKICAgICAgY2FzZSAndGV4dGFyZWEnOgogICAgICAgICAgJHJlcyA9ICcnOwogICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgJ2ZpbGVsaW5rJzoKICAgICAgY2FzZSAnZHJvcGRvd24nOgogICAgICBjYXNlICdpbWFnZSc6CiAgICAgIGNhc2UgJ2ZpbGUnOgogICAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgJ2RpbWVuc2lvbnMnOgogICAgICB7CiAgICAgICAgICBpZiggaXNfc3RyaW5nKCRyZXMpICkgJHJlcyA9IHVuc2VyaWFsaXplKCRyZXMpOwogICAgICAgICAgaWYoIGlzX2FycmF5KCRyZXMpICYmICRyZXNbJ2xlbmd0aCddID4gMCAmJiAkcmVzWyd3aWR0aCddID4gMCAmJiAkcmVzWydoZWlnaHQnXSA+IDAgKSB7CiAgICAgICAgICAgICAgJHJlcyA9IHNwcmludGYoJyVzOiAlZCwgJXM6ICVkLCAlczogJWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ2FiYnJfbGVuZ3RoJyksJHJlc1snbGVuZ3RoJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygnYWJicl93aWR0aCcpLCRyZXNbJ3dpZHRoJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygnYWJicl9oZWlnaHQnKSwkcmVzWydoZWlnaHQnXSk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAkcmVzID0gJG1vZC0+TGFuZygnbm9uZScpOwogICAgICAgICAgfQogICAgICB9CiAgICAgIGJyZWFrOwogICAgICBjYXNlICdzdWJzY3JpcHRpb24nOgogICAgICB7CiAgICAgICAgICBpZiggaXNfYXJyYXkoJHJlcykgJiYgJHJlc1sncGF5cGVyaW9kJ10gIT0gLTEgJiYgJHJlc1snZGVscGVyaW9kJ10gIT0gLTEgKSB7CiAgICAgICAgICAgICAgJHN1YnNjcmliZV9vcHRzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAkc3Vic2NyaWJlX29wdHNbLTFdID0gJG1vZC0+TGFuZygnbm9uZScpOwogICAgICAgICAgICAgICRzdWJzY3JpYmVfb3B0c1snbW9udGhseSddID0gJG1vZC0+TGFuZygnc3Vic2NyX21vbnRobHknKTsKICAgICAgICAgICAgICAkc3Vic2NyaWJlX29wdHNbJ3F1YXJ0ZXJseSddID0gJG1vZC0+TGFuZygnc3Vic2NyX3F1YXJ0ZXJseScpOwogICAgICAgICAgICAgICRzdWJzY3JpYmVfb3B0c1snc2VtaWFudWFsbHknXSA9ICRtb2QtPkxhbmcoJ3N1YnNjcl9zZW1pYW51YWxseScpOwogICAgICAgICAgICAgICRzdWJzY3JpYmVfb3B0c1sneWVhcmx5J10gPSAkbW9kLT5MYW5nKCdzdWJzY3JfeWVhcmx5Jyk7CgogICAgICAgICAgICAgICRleHBpcmVfb3B0cyA9IGFycmF5KCk7CiAgICAgICAgICAgICAgJGV4cGlyZV9vcHRzWyRtb2QtPkxhbmcoJ25vbmUnKV0gPSAtMTsKICAgICAgICAgICAgICAkZXhwaXJlX29wdHNbJG1vZC0+TGFuZygnZXhwaXJlX3NpeF9tb250aCcpXSA9ICc2JzsKICAgICAgICAgICAgICAkZXhwaXJlX29wdHNbJG1vZC0+TGFuZygnZXhwaXJlX29uZV95ZWFyJyldID0gJzEyJzsKICAgICAgICAgICAgICAkZXhwaXJlX29wdHNbJG1vZC0+TGFuZygnZXhwaXJlX3R3b195ZWFyJyldID0gJzI0JzsKICAgICAgICAgICAgICAkZXhwaXJlX29wdHMgPSBhcnJheV9mbGlwKCRleHBpcmVfb3B0cyk7CgogICAgICAgICAgICAgICRleHBpcnkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgaWYoICRmaWVsZHZhbFsnZXhwaXJlJ10gIT0gLTEgKSAkZXhwaXJ5ID0gJGZpZWxkdmFsWydleHBpcmUnXTsKICAgICAgICAgICAgICAkcmVzID0gc3ByaW50ZignJXM6ICVzLCAlczogJXMsICVzOiAlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZC0+TGFuZygnc3Vic2NyX3BheXBlcmlvZDInKSwkZmllbGR2YWxbJ3BheXBlcmlvZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtb2QtPkxhbmcoJ3N1YnNjcl9kZWxwZXJpb2QyJyksJGZpZWxkdmFsWydkZWxwZXJpb2QnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kLT5MYW5nKCdzdWJzY3JfZXhwaXJ5MicpLCRleHBpcnkpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgJHJlcyA9ICRtb2QtPkxhbmcoJ25vbmUnKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBicmVhazsKICAgICAgfQoKICAgICAgcmV0dXJuICRyZXM7CiAgfQoKCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBoaWVyYXJjaHlfaXNwYXJlbnRvZiggJGEsICRiICkKICB7CiAgICAgIC8vIHRlc3QgaWYgJGEgaXMgYSBwYXJlbnQgb2YgJGIgKGJ5IGlkKQogICAgICAkYSA9IChpbnQpICRhOwogICAgICAkYiA9IChpbnQpICRiOwogICAgICBpZiggJGEgPT0gJGIgKSByZXR1cm4gdHJ1ZTsKCiAgICAgIGZ1bmN0aW9uIF9fZmluZCggJGxpc3QsICRpZCApIHsKICAgICAgICAgIGZvcmVhY2goICRsaXN0IGFzICRyZWMgKSB7CiAgICAgICAgICAgICAgaWYoICRyZWNbJ2lkJ10gPT0gJGlkICkgcmV0dXJuICRyZWM7CiAgICAgICAgICB9CiAgICAgIH0KCiAgICAgICR0bXAgPSBoaWVyYXJjaHlfb3BzOjpnZXRfZmxhdF9saXN0KEZBTFNFKTsKICAgICAgLy8gZmluZCBub2RlIGIsIGdvIHVwIHRyZWUgdGlsbCBlaXRoZXIgYXQgdG9wIChmYWxzZSkgb3IgZm91bmQgJGEgKHRydWUpCiAgICAgIHdoaWxlKCAkYiA+IDAgKSB7CiAgICAgICAgICAkbm9kZSA9IF9fZmluZCggJHRtcCwgJGEgKTsKICAgICAgICAgIGlmKCAhJG5vZGUgKSB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCBoaWVyYXJjaHkgaXRlbSB3aXRoIGlkICcuJGIpOwogICAgICAgICAgaWYoICRub2RlWydwYXJlbnRfaWQnXSA9PSAkYiApIHJldHVybiBUUlVFOwogICAgICAgICAgaWYoICRub2RlWydwYXJlbnRfaWQnXSA8IDEgKSByZXR1cm47CiAgICAgICAgICAkYiA9ICRub2RlWydwYXJlbnRfaWQnXTsKICAgICAgfQogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBoaWVyYXJjaHlfZ2V0X3RyZWUoJHBhcmVudF9pZCA9IC0xLCRzaG93YWxsID0gMCwkY2FsbGJhY2tfZm4gPSAnJykKICB7CiAgICAgICRoaWVyYXJjaHlfbWFwID0gaGllcmFyY2h5X29wczo6Z2V0X2FsbF9oaWVyYXJjaHlfaW5mbyhUUlVFLCRzaG93YWxsKTsKICAgICAgaWYoICFpc19hcnJheSgkaGllcmFyY2h5X21hcCkgfHwgY291bnQoJGhpZXJhcmNoeV9tYXApID09IDAgKSByZXR1cm4gRkFMU0U7CgogICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgZm9yZWFjaCggJGhpZXJhcmNoeV9tYXAgYXMgJG9uZWhpZXIgKSB7CiAgICAgICAgICBpZiggJG9uZWhpZXJbJ3BhcmVudF9pZCddICE9ICRwYXJlbnRfaWQgKSBjb250aW51ZTsKICAgICAgICAgIGlmKCAkY2FsbGJhY2tfZm4gIT0gJycgJiYgZnVuY3Rpb25fZXhpc3RzKCRjYWxsYmFja19mbikgKSAkY2FsbGJhY2tfZm4oJG9uZWhpZXIpOwogICAgICAgICAgJHRtcCA9IHNlbGY6OmhpZXJhcmNoeV9nZXRfdHJlZSgkb25laGllclsnaWQnXSwkc2hvd2FsbCwkY2FsbGJhY2tfZm4pOwogICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXApICYmIGNvdW50KCR0bXApICkgJG9uZWhpZXJbJ2NoaWxkcmVuJ10gPSAkdG1wOwogICAgICAgICAgJG91dFtdID0gJG9uZWhpZXI7CiAgICAgIH0KICAgICAgcmV0dXJuICRvdXQ7CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB1cGRhdGVfaGllcmFyY2h5X3Bvc2l0aW9ucygpCiAgewogICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwoKICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgaXRlbV9vcmRlciwgbmFtZSBGUk9NICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IjsKICAgICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSk7CiAgICAgIGlmKCAhJGRicmVzdWx0ICkgeyBlY2hvICRkYi0+c3FsLic8YnIvPic7IGRpZSggJGRiLT5FcnJvck1zZygpICk7IH0KICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKSB7CiAgICAgICAgICAkY3VycmVudF9oaWVyYXJjaHlfcG9zaXRpb24gPSAiIjsKICAgICAgICAgICRjdXJyZW50X2xvbmdfbmFtZSA9ICIiOwogICAgICAgICAgJGNvbnRlbnRfaWQgPSAkcm93WydpZCddOwogICAgICAgICAgJGN1cnJlbnRfcGFyZW50X2lkID0gJHJvd1snaWQnXTsKICAgICAgICAgICRjb3VudCA9IDA7CgogICAgICAgICAgd2hpbGUgKCRjdXJyZW50X3BhcmVudF9pZCA+IC0xKSB7CiAgICAgICAgICAgICAgJHF1ZXJ5ID0gIlNFTEVDVCBpZCwgaXRlbV9vcmRlciwgbmFtZSwgcGFyZW50X2lkIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgV0hFUkUgaWQgPSA/IjsKICAgICAgICAgICAgICAkcm93MiA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJGN1cnJlbnRfcGFyZW50X2lkKSk7CiAgICAgICAgICAgICAgaWYgKCRyb3cyKSB7CiAgICAgICAgICAgICAgICAgICRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiA9IHN0cl9wYWQoJHJvdzJbJ2l0ZW1fb3JkZXInXSwgNSwgJzAnLCBTVFJfUEFEX0xFRlQpIC4gIi4iIC4gJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uOwogICAgICAgICAgICAgICAgICAkY3VycmVudF9sb25nX25hbWUgPSAkcm93MlsnbmFtZSddIC4gJyB8ICcgLiAkY3VycmVudF9sb25nX25hbWU7CiAgICAgICAgICAgICAgICAgICRjdXJyZW50X3BhcmVudF9pZCA9ICRyb3cyWydwYXJlbnRfaWQnXTsKICAgICAgICAgICAgICAgICAgJGNvdW50Kys7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAkY3VycmVudF9wYXJlbnRfaWQgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICBpZiAoc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgPiAwKSB7CiAgICAgICAgICAgICAgJGN1cnJlbnRfaGllcmFyY2h5X3Bvc2l0aW9uID0gc3Vic3RyKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiwgMCwgc3RybGVuKCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbikgLSAxKTsKICAgICAgICAgIH0KCiAgICAgICAgICBpZiAoc3RybGVuKCRjdXJyZW50X2xvbmdfbmFtZSkgPiAwKSAkY3VycmVudF9sb25nX25hbWUgPSBzdWJzdHIoJGN1cnJlbnRfbG9uZ19uYW1lLCAwLCBzdHJsZW4oJGN1cnJlbnRfbG9uZ19uYW1lKSAtIDMpOwoKICAgICAgICAgICRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHkgU0VUIGhpZXJhcmNoeSA9ID8sIGxvbmdfbmFtZSA9ID8gV0hFUkUgaWQgPSA/IjsKICAgICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRjdXJyZW50X2hpZXJhcmNoeV9wb3NpdGlvbiwgJGN1cnJlbnRfbG9uZ19uYW1lLCAkY29udGVudF9pZCkpOwogICAgICB9CiAgfQoKCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoaWVyYXJjaHlfc2F2ZV90cmVlKCR0cmVlLCRkZXB0aCA9IDAsJHVwZGF0ZV9oaWVyYXJjaHkgPSBUUlVFKQogIHsKICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeSBTRVQgcGFyZW50X2lkID0gPywgaXRlbV9vcmRlciA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgZm9yZWFjaCggJHRyZWUgYXMgJiRub2RlICkgewogICAgICAgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5vZGVbJ3BhcmVudF9pZCddLCRub2RlWydpdGVtX29yZGVyJ10sJG5vZGVbJ2lkJ10pKTsKICAgICAgICAgIGlmKCBpc3NldCgkbm9kZVsnY2hpbGRyZW4nXSkgKSBzZWxmOjpoaWVyYXJjaHlfc2F2ZV90cmVlKCRub2RlWydjaGlsZHJlbiddLCRkZXB0aCsxKTsKICAgICAgfQoKICAgICAgaWYoICRkZXB0aCA9PSAwICYmICR1cGRhdGVfaGllcmFyY2h5ICkgc2VsZjo6dXBkYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICB9CgoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9jYXRlZ29yaWVzKCRieV9uYW1lID0gRkFMU0UpCiAgewogICAgICAvLyB0b3BkbzogcmVwbGFjZSB0aGlzIHdpdGggQ2F0ZWdvcnlTdG9yYWdlIGNsYXNzIG1ldGhvZCByZXR1cm5pbmcgYXJyYXkgb2YgY2F0ZWdvcnkgb2JqZWN0cy4KICAgICAgaWYoIGlzX251bGwoc2VsZjo6JF9jYXRlZ29yeV9jYWNoZSkgKSB7CiAgICAgICAgICAkZGIgPSBjbXNtcygpLT5HZXREYigpOwogICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIE9SREVSIEJZIG5hbWUgQVNDJzsKICAgICAgICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgICBzZWxmOjokX2NhdGVnb3J5X2NhY2hlID0gRkFMU0U7CiAgICAgICAgICBpZiggaXNfYXJyYXkoJHRtcCkgJiYgY291bnQoJHRtcCkgKSB7CiAgICAgICAgICAgICAgc2VsZjo6JF9jYXRlZ29yeV9jYWNoZSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkcm93ICkgewogICAgICAgICAgICAgICAgICAkcm93ID0gY2dlX2FycmF5Ojp0b19vYmplY3QoJHJvdyk7CiAgICAgICAgICAgICAgICAgIHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGVbJHJvdy0+aWRdID0gJHJvdzsKICAgICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmKCAhJGJ5X25hbWUgKSByZXR1cm4gc2VsZjo6JF9jYXRlZ29yeV9jYWNoZTsKCiAgICAgIGlmKCBpc19hcnJheShzZWxmOjokX2NhdGVnb3J5X2NhY2hlKSApIHsKICAgICAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICAgICAgZm9yZWFjaCggc2VsZjo6JF9jYXRlZ29yeV9jYWNoZSBhcyAkcm93ICkgewogICAgICAgICAgICAgICRvdXRbJHJvdy0+bmFtZV0gPSAkcm93OwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICRvdXQ7CiAgICAgIH0KICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X2xpc3QoKQogIHsKICAgICAgJGFsbCA9IHNlbGY6OmdldF9jYXRlZ29yaWVzKCk7CiAgICAgIGlmKCAhJGFsbCApIHJldHVybjsKCiAgICAgICRvdXQgPSBbXTsKICAgICAgZm9yZWFjaCggJGFsbCBhcyAkb25lICkgewogICAgICAgICAgJG91dFskb25lLT5pZF0gPSAkb25lLT5uYW1lOwogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfZnVsbF9jYXRlZ29yaWVzKCRieV9uYW1lID0gRkFMU0UpCiAgewogICAgICAkY2F0ZWdvcmllcyA9IHNlbGY6OmdldF9jYXRlZ29yaWVzKCk7CiAgICAgIGlmKCAhaXNfYXJyYXkoJGNhdGVnb3JpZXMpIHx8IGNvdW50KCRjYXRlZ29yaWVzKSA9PSAwICkgcmV0dXJuOwoKICAgICAgJGtleXMgPSBhcnJheV9rZXlzKCRjYXRlZ29yaWVzKTsKICAgICAgJGZpZCA9ICRrZXlzWzBdOyAvLyBmaXJzdCBmaWVsZC4KICAgICAgaWYoICFpc3NldChzZWxmOjokX2NhdGVnb3J5X2NhY2hlWyRmaWRdLT5kYXRhKSApIHsKICAgICAgICAgIC8vIHdlJ3JlIGdvbm5hIHVzZSB0aGUgc2FtZSBjYWNoZSBhZ2Fpbi4uLgogICAgICAgICAgJGRiID0gY21zbXMoKS0+R2V0RGIoKTsKICAgICAgICAgICRtb2QgPSBjbXNfdXRpbHM6OmdldF9tb2R1bGUoTU9EX1BST0RVQ1RTKTsKICAgICAgICAgICRjb25maWcgPSBjbXNtcygpLT5HZXRDb25maWcoKTsKICAgICAgICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIE9SREVSIEJZIGNhdGVnb3J5X2lkLGZpZWxkX29yZGVyJzsKICAgICAgICAgICRkYnIgPSAkZGItPkdldEFycmF5KCRxdWVyeSk7CiAgICAgICAgICBmb3JlYWNoKCAka2V5cyBhcyAkb25lICkgewogICAgICAgICAgICAgICRjYXQgPSYgc2VsZjo6JF9jYXRlZ29yeV9jYWNoZVskb25lXTsKICAgICAgICAgICAgICBpZiggIWlzc2V0KCRjYXQtPmRhdGEpICkgJGNhdC0+ZGF0YSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgJGNhdC0+ZmlsZV9sb2NhdGlvbiA9IHNlbGY6OmdldF9jYXRlZ29yeV91cGxvYWRfdXJsKCRjYXQtPmlkKTsKICAgICAgICAgICAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGJyKTsgJGkrKyApIHsKICAgICAgICAgICAgICAgICAgLy8kY2F0aWQgPSAkZGJyWyRpXVsnY2F0ZWdvcnlfaWQnXTsKICAgICAgICAgICAgICAgICAgaWYoICRjYXQtPmlkID09ICRkYnJbJGldWydjYXRlZ29yeV9pZCddICkgICRjYXQtPmRhdGFbXSA9ICRkYnJbJGldOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgfQoKICAgICAgaWYoICEkYnlfbmFtZSApIHJldHVybiBzZWxmOjokX2NhdGVnb3J5X2NhY2hlOwoKICAgICAgaWYoIGlzX2FycmF5KHNlbGY6OiRfY2F0ZWdvcnlfY2FjaGUpICkgewogICAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgICBmb3JlYWNoKCBzZWxmOjokX2NhdGVnb3J5X2NhY2hlIGFzICRyb3cgKSB7CiAgICAgICAgICAgICAgJG91dFskcm93LT5uYW1lXSA9ICRyb3c7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgfQogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBnZXRfZmllbGRkZWZzKCRhZG1pbiA9IGZhbHNlLCRwdWJsaWMgPSB0cnVlLCRhc19oYXNoID0gRkFMU0UpCiAgewogICAgICBpZiggIWlzX2FycmF5KHNlbGY6OiRfZmxkZGVmX2NhY2hlKSApIHsKICAgICAgICAgICRlbnRyeWFycmF5ID0gYXJyYXkoKTsKICAgICAgICAgICRkYiA9IGNtc21zKCktPkdldERCKCk7CgogICAgICAgICAgaWYoICRhZG1pbiA9PSB0cnVlICYmICRwdWJsaWMgPT0gdHJ1ZSApIHsKICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBPUkRFUiBCWSBpdGVtX29yZGVyJzsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYoICRwdWJsaWMgPT0gdHJ1ZSApIHsKICAgICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyBXSEVSRSBwdWJsaWMgPiAwIE9SREVSIEJZIGl0ZW1fb3JkZXInOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMgV0hFUkUgYWRtaW5fb25seSA8PSAwIE9SREVSIEJZIGl0ZW1fb3JkZXInOwogICAgICAgICAgfQogICAgICAgICAgJGRicmVzdWx0ID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKICAgICAgICAgIGlmKCBpc19hcnJheSgkZGJyZXN1bHQpICkgewogICAgICAgICAgICAgIGZvcmVhY2goICRkYnJlc3VsdCBhcyAkcm93ICkgewogICAgICAgICAgICAgICAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CgogICAgICAgICAgICAgICAgICAkb25lcm93LT5wdWJsaWMgPSAoYm9vbCkgJHJvd1sncHVibGljJ107CiAgICAgICAgICAgICAgICAgICRvbmVyb3ctPmlkID0gJHJvd1snaWQnXTsKICAgICAgICAgICAgICAgICAgJG9uZXJvdy0+bmFtZSA9ICRyb3dbJ25hbWUnXTsKICAgICAgICAgICAgICAgICAgJG9uZXJvdy0+cHJvbXB0ID0gJHJvd1sncHJvbXB0J107CiAgICAgICAgICAgICAgICAgICRvbmVyb3ctPnR5cGUgPSAkcm93Wyd0eXBlJ107CiAgICAgICAgICAgICAgICAgICR0bXAgPSBleHBsb2RlKCJcbiIsJHJvd1snb3B0aW9ucyddKTsKICAgICAgICAgICAgICAgICAgJHRtcDIgPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICBmb3JlYWNoKCAkdG1wIGFzICRvbmUgKSB7CiAgICAgICAgICAgICAgICAgICAgICAka2V5ID0gJHZhbHVlID0gJG9uZSA9IHRyaW0oJG9uZSk7CiAgICAgICAgICAgICAgICAgICAgICBpZiggISRvbmUgKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgIGlmKCBzdHJwb3MoJG9uZSwnfCcpICE9PSBGQUxTRSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KCRrZXksJHZhbHVlKSA9IGV4cGxvZGUoJ3wnLCRvbmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICRrZXkgPSB0cmltKCRrZXkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZSA9IHRyaW0oJHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICR0bXAyWyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICRvbmVyb3ctPm9wdGlvbnMgPSBhcnJheV9mbGlwKCR0bXAyKTsKICAgICAgICAgICAgICAgICAgJG9uZXJvdy0+bWF4X2xlbmd0aCA9ICRyb3dbJ21heF9sZW5ndGgnXTsKCiAgICAgICAgICAgICAgICAgICRlbnRyeWFycmF5WyRvbmVyb3ctPmlkXSA9ICRvbmVyb3c7CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgc2VsZjo6JF9mbGRkZWZfY2FjaGUgPSAkZW50cnlhcnJheTsKICAgICAgfQoKICAgICAgaWYoICEkYXNfaGFzaCApIHJldHVybiBzZWxmOjokX2ZsZGRlZl9jYWNoZTsKCiAgICAgICRvdXQgPSBhcnJheSgpOwogICAgICBmb3JlYWNoKCBzZWxmOjokX2ZsZGRlZl9jYWNoZSBhcyAkb25lICkgewogICAgICAgICAgJG91dFskb25lLT5uYW1lXSA9ICRvbmU7CiAgICAgIH0KICAgICAgcmV0dXJuICRvdXQ7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9xdWFudGl0eV9maWVsZCgpCiAgewogICAgICAkZGVmcyA9IHNlbGY6OmdldF9maWVsZGRlZnMoVFJVRSxUUlVFKTsKICAgICAgaWYoICFjb3VudCgkZGVmcykgKSByZXR1cm47CiAgICAgIGZvcmVhY2goICRkZWZzIGFzICRkZWYgKSB7CiAgICAgICAgICBpZiggJGRlZi0+dHlwZSA9PSAncXVhbnRpdHknICkgcmV0dXJuICRkZWY7CiAgICAgIH0KICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gaGF2ZV9xdWFudGl0eV9maWVsZCgpCiAgewogICAgICAkb3V0ID0gc2VsZjo6Z2V0X3F1YW50aXR5X2ZpZWxkKCk7CiAgICAgIGlmKCAkb3V0ICkgcmV0dXJuIFRSVUU7CiAgICAgIHJldHVybiBGQUxTRTsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gY2FuX2RvX3ByZXR0eSgkYWN0aW9uLCRwYXJhbXMpIHsKICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydub3RwcmV0dHknXSkgKSByZXR1cm4gVFJVRTsKICAgICAgaWYoIHN0cnBvcygkcGFyYW1zWydub3RwcmV0dHknXSwnYWxsJykgIT09IEZBTFNFIHx8IHN0cnBvcygkcGFyYW1zWydub3RwcmV0dHknXSwkYWN0aW9uKSAhPT0gRkFMU0UgKSByZXR1cm4gRkFMU0U7CiAgICAgIHJldHVybiBUUlVFOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfYmFzZV91cGxvYWRfcGF0aCgpCiAgewogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAkcHJlZml4ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXBsb2FkX2RpcicsJG1vZC0+R2V0TmFtZSgpKTsKICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAkcGF0aCA9IGNtc19qb2luX3BhdGgoJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ10sJHByZWZpeCk7CiAgICAgIHJldHVybiAkcGF0aDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2Jhc2VfdXBsb2FkX3VybCgpCiAgewogICAgICAkbW9kID0gXGNtc191dGlsczo6Z2V0X21vZHVsZShNT0RfUFJPRFVDVFMpOwogICAgICAkcHJlZml4ID0gJG1vZC0+R2V0UHJlZmVyZW5jZSgndXBsb2FkX2RpcicsJG1vZC0+R2V0TmFtZSgpKTsKICAgICAgJGNvbmZpZyA9IGNtc21zKCktPkdldENvbmZpZygpOwogICAgICAkdXJsID0gJGNvbmZpZ1sndXBsb2Fkc191cmwnXS4iLyRwcmVmaXgiOwogICAgICByZXR1cm4gJHVybDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfdXBsb2FkX3BhdGgoJHByb2R1Y3RfaWQgPSBudWxsKQogIHsKICAgICAgJHByb2R1Y3RfaWQgPSAoaW50KSAkcHJvZHVjdF9pZDsKICAgICAgJHBhdGggPSBzZWxmOjpnZXRfYmFzZV91cGxvYWRfcGF0aCgpOwogICAgICBpZiggJHByb2R1Y3RfaWQgPiAwICkgJHBhdGggPSBjbXNfam9pbl9wYXRoKCRwYXRoLCdwcm9kdWN0XycuJHByb2R1Y3RfaWQpOwogICAgICByZXR1cm4gJHBhdGg7CiAgfQoKICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldF9wcm9kdWN0X3VwbG9hZF91cmwoJHByb2R1Y3RfaWQgPSBudWxsKQogIHsKICAgICAgJHByb2R1Y3RfaWQgPSAoaW50KSAkcHJvZHVjdF9pZDsKICAgICAgJHVybCA9IHNlbGY6OmdldF9iYXNlX3VwbG9hZF91cmwoKTsKICAgICAgaWYoICRwcm9kdWN0X2lkID4gMCApICR1cmwgLj0gJy9wcm9kdWN0XycuJHByb2R1Y3RfaWQ7CiAgICAgIHJldHVybiAkdXJsOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X3VwbG9hZF9wYXRoKCkKICB7CiAgICAgICRwYXRoID0gc2VsZjo6Z2V0X2Jhc2VfdXBsb2FkX3BhdGgoKTsKICAgICAgcmV0dXJuIGNtc19qb2luX3BhdGgoJHBhdGgsJ2hpZXJhcmNoeScpOwogIH0KCiAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRfaGllcmFyY2h5X3VwbG9hZF91cmwoKQogIHsKICAgICAgJHBhdGggPSBzZWxmOjpnZXRfYmFzZV91cGxvYWRfdXJsKCk7CiAgICAgIHJldHVybiAiJHBhdGgvaGllcmFyY2h5IjsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3VwbG9hZF9wYXRoKCRjYXRlZ29yeV9pZCA9IG51bGwpCiAgewogICAgICAkY2F0ZWdvcnlfaWQgPSAoaW50KSAkY2F0ZWdvcnlfaWQ7CiAgICAgICRwYXRoID0gc2VsZjo6Z2V0X2Jhc2VfdXBsb2FkX3BhdGgoKTsKICAgICAgJHBhdGggPSBjbXNfam9pbl9wYXRoKCRwYXRoLCdjYXRlZ29yaWVzJyk7CiAgICAgIGlmKCAkY2F0ZWdvcnlfaWQgPiAwICkgJHBhdGggPSBjbXNfam9pbl9wYXRoKCRwYXRoLCRjYXRlZ29yeV9pZCk7CiAgICAgIHJldHVybiAkcGF0aDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0X2NhdGVnb3J5X3VwbG9hZF91cmwoJGNhdGVnb3J5X2lkID0gbnVsbCkKICB7CiAgICAgICRjYXRlZ29yeV9pZCA9IChpbnQpICRjYXRlZ29yeV9pZDsKICAgICAgJHBhdGggPSBzZWxmOjpnZXRfYmFzZV91cGxvYWRfdXJsKCk7CiAgICAgICRwYXRoID0gIiRwYXRoL2NhdGVnb3JpZXMiOwogICAgICBpZiggJGNhdGVnb3J5X2lkID4gMCApICRwYXRoID0gIiRwYXRoLyRjYXRlZ29yeV9pZCI7CiAgICAgIHJldHVybiAkcGF0aDsKICB9CgogIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gcHJvZHVjdF90b19lY29tbV9wcm9kdWN0aW5mbyggXFByb2R1Y3RzXERpc3BsYXlhYmxlUHJvZHVjdCAkcHJvZHVjdCApCiAgewogICAgICAkb3V0ID0gbmV3IFxjZ19lY29tbV9wcm9kdWN0aW5mbygpOwogICAgICAkb3V0LT5zZXRfc291cmNlKCdQcm9kdWN0cycpOwogICAgICAkb3V0LT5zZXRfdHlwZSgkb3V0OjpUWVBFX1BST0RVQ1QpOwogICAgICAkb3V0LT5zZXRfcHJvZHVjdF9pZCgkcHJvZHVjdC0+aWQpOwogICAgICAkb3V0LT5zZXRfbmFtZSgkcHJvZHVjdC0+bmFtZSk7CiAgICAgICRvdXQtPnNldF9za3UoJHByb2R1Y3QtPnNrdSk7CiAgICAgICRvdXQtPnNldF9wcmljZSgkcHJvZHVjdC0+cHJpY2UpOyAvLyB3aWxsIHVzZSBkZXJpdmVkIGNsYXNzJyBtZXRob2QgYW5kIHRha2UgaW50byBhY2NvdW50IGFueSBhZGp1c3Rlci4KICAgICAgJG91dC0+c2V0X3RheGFibGUoJHByb2R1Y3QtPnRheGFibGUpOwogICAgICAkb3V0LT5zZXRfZGlnaXRhbCgkcHJvZHVjdC0+ZGlnaXRhbCk7CiAgICAgICRvdXQtPnNldF93ZWlnaHQoJHByb2R1Y3QtPndlaWdodCk7CiAgICAgIGlmKCBjb3VudCgkcHJvZHVjdC0+YXR0cmlicykgKSB7CiAgICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdC0+YXR0cmlicyBhcyAkYXR0cmliICkgewogICAgICAgICAgICAgICRvcHQgPSBuZXcgXGNnX2Vjb21tX3Byb2R1Y3RpbmZvX29wdGlvbigpOwogICAgICAgICAgICAgICRvcHQtPmlkID0gJGF0dHJpYi0+aWQ7CiAgICAgICAgICAgICAgJG9wdC0+dGV4dCA9ICRhdHRyaWItPnRleHQ7CiAgICAgICAgICAgICAgJG9wdC0+c2t1ID0gJGF0dHJpYi0+c2t1OwogICAgICAgICAgICAgICRvcHQtPmFkanVzdG1lbnQgPSAkYXR0cmliLT5hZGp1c3RtZW50OwogICAgICAgICAgICAgICRvcHQtPnFvaCA9ICRhdHRyaWItPnFvaDsKICAgICAgICAgICAgICAkb3V0LT5hZGRfb3B0aW9uKCAkb3B0ICk7CiAgICAgICAgICB9CiAgICAgIH0KICAgICAgaWYoIGNvdW50KCRwcm9kdWN0LT5maWVsZF92YWxzKSApIHsKICAgICAgICAgICRhbGxkZWZzID0gXHByb2R1Y3RfdXRpbHM6OmdldF9maWVsZGRlZnMoVFJVRSk7CiAgICAgICAgICBpZiggY291bnQoJGFsbGRlZnMgJiYgY291bnQoJHByb2R1Y3QtPmZpZWxkX3ZhbHMpKSApIHsKICAgICAgICAgICAgICBmb3JlYWNoKCAkcHJvZHVjdC0+ZmllbGRfdmFscyBhcyAkZmlkID0+ICR2YWwgKSB7CiAgICAgICAgICAgICAgICAgIGlmKCAhaXNzZXQoJGFsbGRlZnNbJGZpZF0pICkgY29udGludWU7CiAgICAgICAgICAgICAgICAgICRkZWYgPSAkYWxsZGVmc1skZmlkXTsKCiAgICAgICAgICAgICAgICAgIHN3aXRjaCggJGRlZi0+dHlwZSApIHsKICAgICAgICAgICAgICAgICAgY2FzZSAncXVhbnRpdHknOgogICAgICAgICAgICAgICAgICAgICAgJG91dC0+c2V0X3FvaCggKGludCkgJHZhbCApOwogICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgICBjYXNlICdkaW1lbnNpb25zJzoKICAgICAgICAgICAgICAgICAgICAgIGlmKCAhaXNfYXJyYXkoJHZhbCkgKSAkdmFsID0gdW5zZXJpYWxpemUoJHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAkb3V0LT5zZXRfZGltZW5zaW9ucygkdmFsWydsZW5ndGgnXSwkdmFsWyd3aWR0aCddLCR2YWxbJ2hlaWdodCddKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgICAgY2FzZSAnc3Vic2NyaXB0aW9uJzoKICAgICAgICAgICAgICAgICAgICAgICRzdWJzY3IgPSBuZXcgXGNnX2Vjb21tX3Byb2R1Y3RpbmZvX3N1YnNjcmlwdGlvbigpOwogICAgICAgICAgICAgICAgICAgICAgJHN1YnNjci0+c2V0X3BheXBlcmlvZCggJHZhbFsncGF5cGVyaWQnXSApOwogICAgICAgICAgICAgICAgICAgICAgJHN1YnNjci0+c2V0X2RlbGl2ZXJ5cGVyaW9kKCAkdmFsWydkZWxwZXJpb2QnXSApOwogICAgICAgICAgICAgICAgICAgICAgJHN1YnNjci0+c2V0X2V4cGlyeSggJHZhbFsnZXhwaXJlJ10gKTsKICAgICAgICAgICAgICAgICAgICAgICRvdXQtPnNldF9zdWJzY3JpcHRpb24oICRzdWJzY3IgKTsKICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiAkb3V0OwogIH0KCiAgc3RhdGljIHB1YmxpYyBmdW5jdGlvbiBtYWtlX2FsaWFzKCAkc3RyaW5nICkKICB7CiAgICAgICRzdHJpbmcgPSBtdW5nZV9zdHJpbmdfdG9fdXJsKCRzdHJpbmcpOwogICAgICAkc3RyaW5nID0gdHJpbSgkc3RyaW5nLCAnXycpOwogICAgICByZXR1cm4gc3RydG9sb3dlcigkc3RyaW5nKTsKICB9Cgp9IC8vIHByb2R1Y3QgdXRpbHMKCiMKIyBFT0YKIwo=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiggdmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwnNS40LjExJykgPCAwICkgewogICAgcmV0dXJuICJNaW5pbXVtIFBIUCB2ZXJzaW9uIG9mIDUuNC4xMSByZXF1aXJlZCI7Cn0KCiRkYiA9ICR0aGlzLT5HZXREYigpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiRmbGRzID0gIgoJaWQgSSBLRVkgQVVUTyBOT1ROVUxMLAoJcHJvZHVjdF9uYW1lIEMoMjU1KSBOT1ROVUxMLAoJZGV0YWlscyBYLAogICAgcHJpY2UgRiwKCWNyZWF0ZV9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAoJbW9kaWZpZWRfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKICAgIHRheGFibGUgSSwKICAgIHN0YXR1cyBDKDUwKSwKICAgIHdlaWdodCBGLAogICAgc2t1ICAgIEMoMjUpLAogICAgYWxpYXMgIEMoMjU1KSwKICAgIHVybCAgICBDKDI1NSksCiAgICBvd25lciAgSSwKICAgIGRpZ2l0YWwgSSBERUZBVUxUIDAsCiAgICBleHRyYSBYMgoiOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiLCRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2lkeHVybCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdpZCx1cmwsc3RhdHVzJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCWlkIEkgS0VZIEFVVE8sCgluYW1lIEMoMjU1KSBOT1ROVUxMLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiCiI7Cgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcyIsCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCXByb2R1Y3RfaWQgSSBLRVkgTk9UTlVMTCwKCWNhdGVnb3J5X2lkIEkgS0VZIE5PVE5VTEwsCgljcmVhdGVfZGF0ZSAiIC4gQ01TX0FET0RCX0RUIC4gIiwKCW1vZGlmaWVkX2RhdGUgIiAuIENNU19BRE9EQl9EVDsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyIsCgkJCQkgICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCiAgICAgICAgY2F0ZWdvcnlfaWQgSSBOT1ROVUxMLAogICAgICAgIGZpZWxkX3R5cGUgIEMoMjApIE5PVE5VTEwsCiAgICAgICAgZmllbGRfbmFtZSAgQygyNTUpIE5PVE5VTEwsCiAgICAgICAgZmllbGRfcHJvbXB0IEMoMjU1KSBOT1ROVUxMLAogICAgICAgIGZpZWxkX3ZhbHVlICBYLAogICAgICAgIGZpZWxkX29yZGVyICBJCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19jYXRlZ29yeV9maWVsZHMiLAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCglpZCBJIEtFWSBBVVRPIE5PVE5VTEwsCgluYW1lIEMoMjU1KSBOT1ROVUxMLAogICAgcHJvbXB0IEMoMjU1KSBOT1ROVUxMLAoJdHlwZSBDKDUwKSBOT1ROVUxMLAoJbWF4X2xlbmd0aCBJLAogICAgb3B0aW9ucyBYLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiLAogICAgaXRlbV9vcmRlciBJLAogICAgcHVibGljIEkKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcyIsCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgokZmxkcyA9ICIKCXByb2R1Y3RfaWQgSSBLRVkgTk9UTlVMTCwKCWZpZWxkZGVmX2lkIEkgS0VZIE5PVE5VTEwsCgl2YWx1ZSBYLAoJY3JlYXRlX2RhdGUgIiAuIENNU19BRE9EQl9EVCAuICIsCgltb2RpZmllZF9kYXRlICIgLiBDTVNfQURPREJfRFQgLiAiCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZHZhbHMiLAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKLyoKICogbm90IHVzZWQgYW55IG1vcmUsIGJ1dCBoZXJlIGZvciByZWZlcmVuY2UgdGVtcG9yYXJpbHkuCiRmbGRzID0gIgogICAgICAgIGF0dHJpYl9zZXRfaWQgSSBLRVkgQVVUTywKICAgICAgICBwcm9kdWN0X2lkIEkgS0VZLAogICAgICAgIGF0dHJpYl9zZXRfbmFtZSBDKDI1NSkgTk9UIE5VTEwKIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMiLAoJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoKJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX2lkIEkgS0VZIEFVVE8sCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSwKICAgICAgICBhdHRyaWJfdGV4dCAgIEMoMjU1KSBLRVksCiAgICAgICAgYXR0cmliX2FkanVzdG1lbnQgQyg1MCksCiAgICAgICAgc2t1IEMoMjUpCiI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIiwKCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoqLwoKJGZsZHMgPSAiaWQgSSBLRVkgQVVUTyBOT1ROVUxMLAogICAgICAgICBwcm9kdWN0X2lkIEkgS0VZIE5PVE5VTEwsCiAgICAgICAgIHRleHQgQygyNTUpIEtFWSBOT1ROVUxMLAogICAgICAgICBhZGp1c3RtZW50IEMoNTApLAogICAgICAgICBza3UgIEMoMjUpLAogICAgICAgICBxb2ggSSwKICAgICAgICAgbm90ZXMgWCwKICAgICAgICAgaW9yZGVyIEkgTk9UTlVMTCI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJzJywgJGZsZHMsJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJGZsZHMgPSAiaWQgSSBLRVkgQVVUTyBOT1ROVUxMLAogICAgICAgICBuYW1lIEMoMjU1KSBOT1ROVUxMLAogICAgICAgICBwYXJlbnRfaWQgSSBOT1ROVUxMLAogICAgICAgICBpdGVtX29yZGVyIEkgTk9UTlVMTCwKICAgICAgICAgaGllcmFyY2h5IEMoMjU1KSwKICAgICAgICAgaW1hZ2UgQygyNTUpLAogICAgICAgICBsb25nX25hbWUgWCwKICAgICAgICAgZGVzY3JpcHRpb24gWCwKICAgICAgICAgZXh0cmExIEMoMjU1KSwKICAgICAgICAgZXh0cmEyIEMoMjU1KSI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLAoJCQkJICAkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokZmxkcyA9ICJwcm9kdWN0X2lkIEkgS0VZIE5PVE5VTEwsCiAgICAgICAgIGhpZXJhcmNoeV9pZCBJIEtFWSBOT1ROVUxMIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R0b2hpZXInLAoJCQkJICAkZmxkcywkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgojCiMgSW5kZXhlcwojCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJvZHVjdF9uYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4nY2F0ZWdvcnlfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcmllcycsJ25hbWUnLCBbICdVTklRVUUnIF0pOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX3N0YXR1cycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdzdGF0dXMnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19hbGlhcycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdhbGlhcycpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX3ByaWNlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3ByaWNlJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfZGF0ZXMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywnY3JlYXRlX2RhdGUsbW9kaWZpZWRfZGF0ZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX3Byb2RfY2F0JyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMnLCdwcm9kdWN0X2lkLGNhdGVnb3J5X2lkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfY2F0X3Byb2QnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcycsJ2NhdGVnb3J5X2lkLHByb2R1Y3RfaWQnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19jYXRfZmxkX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcycsJ2NhdGVnb3J5X2lkLGZpZWxkX25hbWUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19mbGRkZWZfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzJywnbmFtZScsIFsnIFVOSVFVRSddICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfZmxkZGVmX3R5cGUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWxkZGVmcycsJ3R5cGUnKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19mbGR2YWxfcHJvZF9kZWYnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2ZpZWx2YWxzJywncHJvZHVjdF9pZCxmaWVsZGRlZl9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2ZsZHZhbF9kZWZfcHJvZCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbHZhbHMnLCdmaWVsZGRlZl9pZCxwcm9kdWN0X2lkJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfaGllcl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfaGllcl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCduYW1lJyk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfaGllcl9wYXJlbnQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ3BhcmVudF9pZCcpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2hpZXJfbG9uZ25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ2xvbmdfbmFtZScpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX2hpZXJfaGllcmFyY2h5JyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19oaWVyYXJjaHknLCdoaWVyYXJjaHknKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoY21zX2RiX3ByZWZpeCgpLidwcm9kdWN0c19vd25lcicsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMnLCdvd25lcicpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ3Byb2R1Y3RzX3Byb2R1Y3RfY2F0cycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9kdWN0X2lkLGNhdGVnb3J5X2lkJywgYXJyYXkoJ1VOSVFVRSc9PjEpKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCiMKIyBUZW1wbGF0ZXMKIwokY3JlYXRlX3RlbXBsYXRlX3R5cGUgPSBmdW5jdGlvbigkdHlwZV9uYW1lLCRtb2QpIHsKICAgIHRyeSB7CiAgICAgICAgJHRwbF90eXBlID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZVR5cGUoKTsKICAgICAgICAkdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCdQcm9kdWN0cycpOwogICAgICAgICR0cGxfdHlwZS0+c2V0X2RmbHRfZmxhZygpOwogICAgICAgICR0cGxfdHlwZS0+c2V0X25hbWUoJHR5cGVfbmFtZSk7CiAgICAgICAgJHRwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnUHJvZHVjdHM6OnRwbF90eXBlX2xhbmdfY2InKTsKICAgICAgICAkdHBsX3R5cGUtPnNldF9jb250ZW50X2NhbGxiYWNrKCdQcm9kdWN0czo6dHBsX3R5cGVfcmVzZXRfY2InKTsKICAgICAgICAkdHBsX3R5cGUtPnJlc2V0X2NvbnRlbnRfdG9fZmFjdG9yeSgpOwogICAgICAgICR0cGxfdHlwZS0+c2F2ZSgpOwogICAgfQogICAgY2F0Y2goIFxDbXNFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgXGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAgICAgYXVkaXQoJycsJ1Byb2R1Y3RzJywnSW5zdGFsbCBlcnJvcjogJy4kZS0+R2V0TWVzc2FnZSgpKTsKICAgIH0KCiAgICAkdHBsX3R5cGUgPSBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlOjpsb2FkKCdQcm9kdWN0czo6Jy4kdHlwZV9uYW1lKTsKICAgIHJldHVybiAkdHBsX3R5cGU7Cn07CgokY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUgPSBmdW5jdGlvbigkdHlwZV9vYiwkZGZsdCA9IHRydWUpIHsKICAgICRuYW1lID0gJ1Byb2R1Y3RzIFNhbXBsZSAnLiR0eXBlX29iLT5nZXRfbmFtZSgpOwogICAgJG9iID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZSgpOwogICAgJG9iLT5zZXRfdHlwZSggJHR5cGVfb2IgKTsKICAgICRvYi0+c2V0X2NvbnRlbnQoICR0eXBlX29iLT5nZXRfZGZsdF9jb250ZW50cygpICk7CiAgICAkb2ItPnNldF9vd25lciggZ2V0X3VzZXJpZCgpICk7CiAgICAkb2ItPnNldF90eXBlX2RmbHQoICRkZmx0ICk7CiAgICAkbmV3X25hbWUgPSAkb2ItPmdlbmVyYXRlX3VuaXF1ZV9uYW1lKCAkbmFtZSApOwogICAgJG9iLT5zZXRfbmFtZSggJG5ld19uYW1lICk7CiAgICAkb2ItPnNhdmUoKTsKfTsKCiRsaXN0dmlld190eXBlID0gJGNyZWF0ZV90ZW1wbGF0ZV90eXBlKCdMaXN0IFZpZXcnLCR0aGlzKTsKJGNyZWF0ZV90ZW1wbGF0ZV9vZl90eXBlKCAkbGlzdHZpZXdfdHlwZSApOwokZGV0YWlsdmlld190eXBlID0gJGNyZWF0ZV90ZW1wbGF0ZV90eXBlKCdEZXRhaWwgVmlldycsJHRoaXMpOwokY3JlYXRlX3RlbXBsYXRlX29mX3R5cGUoICRkZXRhaWx2aWV3X3R5cGUgKTsKJGhpZXJ2aWV3X3R5cGUgPSAkY3JlYXRlX3RlbXBsYXRlX3R5cGUoJ0hpZXJhcmNoeSBWaWV3JywkdGhpcyk7CiRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSggJGhpZXJ2aWV3X3R5cGUgKTsKJGNhdGVnb3J5dmlld190eXBlID0gJGNyZWF0ZV90ZW1wbGF0ZV90eXBlKCdDYXRlZ29yeSBWaWV3JywkdGhpcyk7CiRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSggJGNhdGVnb3J5dmlld190eXBlICk7CiRzZWFyY2hfdHlwZSA9ICRjcmVhdGVfdGVtcGxhdGVfdHlwZSgnU2VhcmNoJywkdGhpcyk7CiRjcmVhdGVfdGVtcGxhdGVfb2ZfdHlwZSggJHNlYXJjaF90eXBlICk7CgojU2V0IFBlcm1pc3Npb24KJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycsICdNb2RpZnkgUHJvZHVjdHMnKTsKCiNQcmVmZXJlbmNlcwokdGhpcy0+U2V0UHJlZmVyZW5jZSgncHJvZHVjdHNfY3VycmVuY3lzeW1ib2wnLCckJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwcm9kdWN0c193ZWlnaHR1bml0cycsJ2tnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ltYWdldHlwZXMnLCdqcGcsanBlZyxnaWYscG5nJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdhbGxvd2VkX2ZpbGV0eXBlcycsJ3BkZixkb2MsdHh0LGpwZyxqcGVnLGdpZixwbmcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlbGV0ZXByb2R1Y3RmaWxlcycsMSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cGxvYWRfZGlyJywnX3Byb2R1Y3RzJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzbHVndGVtcGxhdGUnLCd7aWYgZW1wdHkoJGhpZXJhcmNoeTMpfXskbmFtZX17ZWxzZX17JGhpZXJhcmNoeTN9L3skbmFtZX17L2lmfScpOwoKIyBFdmVudHMKJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignQ0dFY29tbWVyY2VCYXNlJywnT3JkZXJVcGRhdGVkJyxGQUxTRSk7CgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAgIC8qIC0qLSBNb2RlOiBQSFA7IGMtc2V0LXN0eWxlOiBsaW51eDsgdGFiLXdpZHRoOiA0OyBjLWJhc2ljLW9mZnNldDogNCAtKi0gKi8KI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSAkdGhpcy0+R2V0RGIoKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3JpZXMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2ZpZWxkdmFscyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLyoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoqLwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19wcm9kdG9oaWVyIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgokdGhpcy0+RGVsZXRlVGVtcGxhdGUoKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01vZGlmeSBQcm9kdWN0cycpOwoKdHJ5IHsKICAkdHlwZXMgPSBDbXNMYXlvdXRUZW1wbGF0ZVR5cGU6OmxvYWRfYWxsX2J5X29yaWdpbmF0b3IoJHRoaXMtPkdldE5hbWUoKSk7CiAgaWYoIGlzX2FycmF5KCR0eXBlcykgJiYgY291bnQoJHR5cGVzKSApIHsKICAgICAgZm9yZWFjaCggJHR5cGVzIGFzICR0eXBlICkgewogICAgICAgICAgJHRlbXBsYXRlcyA9ICR0eXBlLT5nZXRfdGVtcGxhdGVfbGlzdCgpOwogICAgICAgICAgaWYoIGlzX2FycmF5KCR0ZW1wbGF0ZXMpICYmIGNvdW50KCR0ZW1wbGF0ZXMpICkgewogICAgICAgICAgICAgIGZvcmVhY2goICR0ZW1wbGF0ZXMgYXMgJHRlbXBsYXRlICkgewogICAgICAgICAgICAgICAgICAkdGVtcGxhdGUtPmRlbGV0ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgICR0eXBlLT5kZWxldGUoKTsKICAgICAgfQogIH0KfQpjYXRjaCggRXhjZXB0aW9uICRlICkgewogICAgLy8gbG9nIGl0CiAgICBhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdVbmluc3RhbGwgRXJyb3I6ICcuJGUtPkdldE1lc3NhZ2UoKSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmlmKCB2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCc1LjQuMTEnKSA8IDAgKSB7CiAgICByZXR1cm4gIk1pbmltdW0gUEhQIHZlcnNpb24gb2YgNS40LjExIHJlcXVpcmVkIjsKfQoKc3dpdGNoKCAkb2xkdmVyc2lvbiApCiAgewogIGNhc2UgJzEuMCc6CiAgY2FzZSAnMS4wLjEnOgogICAgewogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKICAgICAgJGZsZHMgPSAiCiAgICAgICAgYXR0cmliX3NldF9pZCBJIEtFWSBBVVRPLAogICAgICAgIHByb2R1Y3RfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3NldF9uYW1lIEMoMjU1KQogICAgICAiOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyIsCgkJCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICRmbGRzID0gIgogICAgICAgIGF0dHJpYl9zZXRfaWQgSSBLRVksCiAgICAgICAgYXR0cmliX3RleHQgICBDKDI1NSkgS0VZLAogICAgICAgIGF0dHJpYl9hZGp1c3RtZW50IEMoNTApCiAgICAgICI7CiAgICAgICR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CiAgICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzIiwKCQkJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsKICAgICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwogICAgfQoKCiAgY2FzZSAnMi4wJzoKICBjYXNlICcyLjAuMSc6CiAgY2FzZSAnMi4wLjInOgogICAgewogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgICAkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKICAgICAgJGZsZHMgPSAiCiAgICAgICAgICBjYXRlZ29yeV9pZCBJLAogICAgICAgICAgZmllbGRfdHlwZSAgQygyMCksCiAgICAgICAgICBmaWVsZF9uYW1lICBDKDI1NSksCiAgICAgICAgICBmaWVsZF9wcm9tcHQgQygyNTUpLAogICAgICAgICAgZmllbGRfdmFsdWUgIFgKICAgICAgIjsKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcyIsCgkgICAgICRmbGRzLCAkdGFib3B0YXJyYXkpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CiAgICB9CgogIGNhc2UgJzIuMSc6CiAgICB7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMnOwogICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAgICRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKICAgICAgJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19hdHRyaWJ1dGVzJyk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICRmbGRzID0gIgogICAgICAgIGF0dHJpYl9pZCBJIEtFWSBBVVRPLAogICAgICAgIGF0dHJpYl9zZXRfaWQgSSwKICAgICAgICBhdHRyaWJfdGV4dCAgIEMoMjU1KSwKICAgICAgICBhdHRyaWJfYWRqdXN0bWVudCBDKDUwKQogICAgICAiOwogICAgICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsCgkJJGZsZHMsICR0YWJvcHRhcnJheSk7CiAgICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMKICAgICAgICAgICAgICAgIChhdHRyaWJfc2V0X2lkLCBhdHRyaWJfdGV4dCwgYXR0cmliX2FkanVzdG1lbnQpCiAgICAgICAgIAkgICAgVkFMVUVTICg/LD8sPyknOwogICAgICBmb3JlYWNoKCAkZGF0YSBhcyAkb25lICkKICAgICAgewogICAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksCiAgICAgICAgICAgYXJyYXkoJG9uZVsnYXR0cmliX3NldF9pZCddLCRvbmVbJ2F0dHJpYl90ZXh0J10sJG9uZVsnYXR0cmliX2FkanVzdG1lbnQnXSkpOwogICAgICB9CiAgICB9CgogIGNhc2UgJzIuMS4yJzoKCXsKCSAgJG5ld25hbWUgPSBzdHJfcmVwbGFjZSgnLicsJ18nLCd1cGdyYWRlX3RvXycuJHRoaXMtPkdldFZlcnNpb24oKSk7CgoJICAvLyBzZXR1cCBhIG5ldyBkZWZhdWx0IHN1bW1hcnkgdGVtcGxhdGUuCgkgIC8vIGJ1dCBkb24ndCBkZXN0cm95IGFueSBvdGhlcnMuCgkgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfc3VtbWFyeV90ZW1wbGF0ZS50cGwnKTsKCSAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgkJewoJCSAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdzdW1tYXJ5XycuJG5ld25hbWUsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNVTU1BUllfVEVNUExBVEUsJG5ld25hbWUpOwoJCX0KCgkgIC8vIHNldHVwIGEgbmV3IGRlZmF1bHQgZGV0YWlsIHRlbXBsYXRlLgoJICAvLyBidXQgZG9uJ3QgZGVzdHJveSBhbnkgb3RoZXJzLgoJICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2RldGFpbF90ZW1wbGF0ZS50cGwnKTsKCSAgaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCgkJewoJCSAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdkZXRhaWxfJy4kbmV3bmFtZSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFLCRuZXduYW1lKTsKCQl9CgoJICAvLyBzZXR1cCBhIG5ldyBkZWZhdWx0IGJ5aGllcmFyY2h5IHRlbXBsYXRlLgoJICAvLyBidXQgZG9uJ3QgZGVzdHJveSBhbnkgb3RoZXJzLgoJICAkZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2J5aGllcmFyY2h5X3RlbXBsYXRlLnRwbCcpOwoJICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQl7CgkJICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkJICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2J5aGllcmFyY2h5XycuJG5ld25hbWUsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVEJZSElFUkFSQ0hZX1RFTVBMQVRFLCRuZXduYW1lKTsKCQl9CgoJICAvLyBzZXR1cCBhIG5ldyBkZWZhdWx0IGNhdGVnb3J5bGlzdCB0ZW1wbGF0ZS4KCSAgLy8gYnV0IGRvbid0IGRlc3Ryb3kgYW55IG90aGVycy4KCSAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19jYXRlZ29yeWxpc3RfdGVtcGxhdGUudHBsJyk7CgkgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJCXsKCQkgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCQkgICR0aGlzLT5TZXRUZW1wbGF0ZSgnY2F0ZWdvcnlsaXN0XycuJG5ld25hbWUsJHRlbXBsYXRlKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURSwkbmV3bmFtZSk7CgkJfQoKCX0gLy8gMi4xLjEKCiAgY2FzZSAnMi4yJzoKICBjYXNlICcyLjIuMSc6CiAgY2FzZSAnMi4yLjInOgogIGNhc2UgJzIuMi4zJzoKICBjYXNlICcyLjIuNCc6Cgl7CiAgICAgICRkYiA9ICR0aGlzLT5HZXREYigpOwogICAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CgoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJvZHVjdF9uYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19zdGF0dXMnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzJywncHJvZHVjdF9zdGF0dXMnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX3ByaWNlJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3Byb2R1Y3RfcHJpY2UnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2RhdGVzJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ2NyZWF0ZV9kYXRlLG1vZGlmaWVkX2RhdGUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2NhdF9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzJywnbmFtZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfcHJvZF9jYXQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX3Byb2R1Y3RfY2F0ZWdvcmllcycsJ3Byb2R1Y3RfaWQsY2F0ZWdvcnlfaWQnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2NhdF9wcm9kJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19wcm9kdWN0X2NhdGVnb3JpZXMnLCdjYXRlZ29yeV9pZCxwcm9kdWN0X2lkJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19jYXRfZmxkX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcycsJ2NhdGVnb3J5X2lkLGZpZWxkX25hbWUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2ZsZGRlZl9uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsZGRlZnMnLCduYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19mbGRkZWZfdHlwZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGRkZWZzJywndHlwZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfZmxkdmFsX3Byb2RfZGVmJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19maWVsdmFscycsJ3Byb2R1Y3RfaWQsZmllbGRkZWZfaWQnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2ZsZHZhbF9kZWZfcHJvZCcsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbHZhbHMnLCdmaWVsZGRlZl9pZCxwcm9kdWN0X2lkJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX25hbWUnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ25hbWUnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX2hpZXJfbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnbmFtZScpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfaGllcl9wYXJlbnQnLGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2hpZXJhcmNoeScsJ3BhcmVudF9pZCcpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgncHJvZHVjdHNfaGllcl9sb25nbmFtZScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnbG9uZ19uYW1lJyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19oaWVyX2hpZXJhcmNoeScsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5JywnaGllcmFyY2h5Jyk7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IiwgImV4dHJhMSBDKDI1NSksZXh0cmEyIEMoMjU1KSIpOwoJICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJfQoKICBjYXNlICcyLjMnOgogIGNhc2UgJzIuMy4xJzoKCXsKCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyk7Cgl9CgogIGNhc2UgJzIuNCc6CiAgY2FzZSAnMi40LjEnOgogIGNhc2UgJzIuNC4yJzoKICBjYXNlICcyLjQuMyc6CiAgY2FzZSAnMi40LjQnOgogIGNhc2UgJzIuNC41JzoKICBjYXNlICcyLjQuNic6CiAgY2FzZSAnMi40LjcnOgogIGNhc2UgJzIuNC44JzoKCXsKICAgICAgJGRiID0gJHRoaXMtPkdldERiKCk7CiAgICAgICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHMiLCAic2t1IEMoMjUpIik7CgkgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkgICRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyIsICJza3UgQygyNSkiKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJfQoKICBjYXNlICcyLjUnOgoJewogICAgICAkZGIgPSAkdGhpcy0+R2V0RGIoKTsKICAgICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyIsICJhbGlhcyBDKDI1NSkiKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCSAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKCdwcm9kdWN0c19uYW1lJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ3Byb2R1Y3RfYWxpYXMnKTsKCSAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCX0KCiAgY2FzZSAnMi42JzoKICBjYXNlICcyLjYuMSc6CiAgY2FzZSAnMi42LjInOgogIGNhc2UgJzIuNyc6Cgl7CgkgIC8vIFNldHVwIGRlZmF1bHQgc2VhcmNoIHRlbXBsYXRlCgkgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFKTsKCSAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU0VBUkNIX1RFTVBMQVRFKTsKCSAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19zZWFyY2hfdGVtcGxhdGUudHBsJyk7CgkgIGlmKCBmaWxlX2V4aXN0cyggJGZuICkgKQoJCXsKCQkgICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCAkZm4gKTsKCQkgICR0aGlzLT5TZXRQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7CgkJICAkdGhpcy0+U2V0VGVtcGxhdGUoJ3NlYXJjaF9TYW1wbGUnLCR0ZW1wbGF0ZSk7CgkJICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUsJ1NhbXBsZScpOwoJCX0KCX0KCiAgY2FzZSAnMi43LjEnOgogIGNhc2UgJzIuNy4yJzoKICBjYXNlICcyLjcuMyc6CiAgY2FzZSAnMi43LjQnOgoJewoJICAvLyBTZXR1cCBkZWZhdWx0IHNlYXJjaCB0ZW1wbGF0ZQoJICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSk7CgkgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKFBST0RVQ1RTX1BSRUZfREZMVFNFQVJDSF9URU1QTEFURSk7CgkgICRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfc2VhcmNoX3RlbXBsYXRlLnRwbCcpOwoJICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKCQl7CgkJICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cyggJGZuICk7CgkJICAkdGhpcy0+U2V0UHJlZmVyZW5jZShQUk9EVUNUU19QUkVGX05FV1NFQVJDSF9URU1QTEFURSwkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFRlbXBsYXRlKCdzZWFyY2hfU2FtcGxlJywkdGVtcGxhdGUpOwoJCSAgJHRoaXMtPlNldFByZWZlcmVuY2UoUFJPRFVDVFNfUFJFRl9ERkxUU0VBUkNIX1RFTVBMQVRFLCdTYW1wbGUnKTsKCQl9Cgl9CgoJLy8gYWRkIGEgbmV3IGZpZWxkIHRvIHRoZSBjYXRlZ29yeSBmaWVsZHMgdGFibGUuCgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIiwgImZpZWxkX29yZGVyIEkiKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkvLyBub3cgdXBkYXRlIHRoZSBjYXRlZ29yeSBmaWVsZHMgc3R1ZmYuCgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICBPUkRFUiBCWSBjYXRlZ29yeV9pZCxmaWVsZF9uYW1lJzsKCSRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJJHByZXZfY2F0ZWdvcnlfaWQgPSAtMTsKCSRvcmRlciA9IDA7Cglmb3JlYWNoKCRkYXRhIGFzICRyb3cpCgkgIHsKCQlpZiggJHJvd1snY2F0ZWdvcnlfaWQnXSAhPSAkcHJldl9jYXRlZ29yeV9pZCApCgkJICB7CgkJCSRvcmRlciA9IDA7CgkJICB9CgoJCSRyb3dbJ2ZpZWxkX29yZGVyJ10gPSAkb3JkZXI7CgkJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAgICBTRVQgZmllbGRfb3JkZXIgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG9yZGVyLCRyb3dbJ2NhdGVnb3J5X2lkJ10sJHJvd1snZmllbGRfbmFtZSddKSk7CgoJCSRvcmRlcisrOwoJCSRwcmV2X2NhdGVnb3J5X2lkID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKCSAgfQoKICBjYXNlICcyLjcuNSc6CgkvLyBub3cgcmUtb3JkZXIgY2F0ZWdvcnkgZmllbGQgc3R1ZmYgYWdhaW4uCgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICBPUkRFUiBCWSBjYXRlZ29yeV9pZCxmaWVsZF9uYW1lJzsKCSRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoJJHByZXZfY2F0ZWdvcnlfaWQgPSAtMTsKCSRvcmRlciA9IDA7Cglmb3JlYWNoKCRkYXRhIGFzICRyb3cpCgkgIHsKCQlpZiggJHJvd1snY2F0ZWdvcnlfaWQnXSAhPSAkcHJldl9jYXRlZ29yeV9pZCApCgkJICB7CgkJCSRvcmRlciA9IDA7CgkJICB9CgoJCSRyb3dbJ2ZpZWxkX29yZGVyJ10gPSAkb3JkZXI7CgkJJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkcwogICAgICAgICAgICAgICAgICAgICBTRVQgZmllbGRfb3JkZXIgPSA/IFdIRVJFIGNhdGVnb3J5X2lkID0gPyBBTkQgZmllbGRfbmFtZSA9ID8nOwoJCSRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG9yZGVyLCRyb3dbJ2NhdGVnb3J5X2lkJ10sJHJvd1snZmllbGRfbmFtZSddKSk7CgoJCSRvcmRlcisrOwoJCSRwcmV2X2NhdGVnb3J5X2lkID0gJHJvd1snY2F0ZWdvcnlfaWQnXTsKCSAgfQoKICB9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjE0JykgPCAwICkKICB7CglmdW5jdGlvbiBwcm9kdWN0c19oaWVydHJlZV91cGRhdGVfb3JkZXIoJiR0cmVlKQoJewoJICAkb3JkZXIgPSAxOwoJICBmb3JlYWNoKCAkdHJlZSBhcyAmJG5vZGUgKQoJCXsKCQkgICRub2RlWydpdGVtX29yZGVyJ10gPSAkb3JkZXIrKzsKCQkgIGlmKCBpc3NldCgkbm9kZVsnY2hpbGRyZW4nXSkgKQoJCQl7CgkJCSAgcHJvZHVjdHNfaGllcnRyZWVfdXBkYXRlX29yZGVyKCRub2RlWydjaGlsZHJlbiddKTsKCQkJfQoJCX0KCX0KCgkkZGIgPSAkdGhpcy0+R2V0RGIoKTsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcHJvZHVjdHNfaGllcmFyY2h5IiwgIml0ZW1fb3JkZXIgSSIpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCSR0cmVlID0gcHJvZHVjdF91dGlsczo6aGllcmFyY2h5X2dldF90cmVlKCk7Cglwcm9kdWN0c19oaWVydHJlZV91cGRhdGVfb3JkZXIoJHRyZWUpOwoJcHJvZHVjdF91dGlsczo6aGllcmFyY2h5X3NhdmVfdHJlZSgkdHJlZSk7CiAgfQoKCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMTQnKSA8IDAgKQogIHsKCSR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0NHRWNvbW1lcmNlQmFzZScsJ09yZGVyVXBkYXRlZCcsRkFMU0UpOwogIH0KCmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMTknKSA8IDAgKQogIHsKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCSR0YWJvcHRhcnJheSA9IGFycmF5KCdteXNxbCcgPT4gJ1RZUEU9TXlJU0FNJyk7CgoJJGZsZHMgPSAiaWQgSSBLRVkgQVVUTywKICAgICAgICAgICAgIHByb2R1Y3RfaWQgSSBLRVkgTk9UIE5VTEwsCiAgICAgICAgICAgICB0ZXh0IEMoMjU1KSBLRVkgTk9UIE5VTEwsCiAgICAgICAgICAgICBhZGp1c3RtZW50IEMoNTApLAogICAgICAgICAgICAgc2t1ICBDKDI1KSwKICAgICAgICAgICAgIHFvaCBJLAogICAgICAgICAgICAgbm90ZXMgWCI7Cgkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicycsCgkJCQkJCQkJCSAgJGZsZHMsJHRhYm9wdGFycmF5KTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCglzZXRfdGltZV9saW1pdCg5OTk5KTsKCgkvLyBsb2FkIGFsbCBleGlzdGluZyBza3VzCgkkcXVlcnkgPSAnU0VMRUNUIHNrdSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHMgT1JERVIgQlkgc2t1JzsKCSRza3VzID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKCWlmKCBpc19hcnJheSgkc2t1cykgKSB7CgkgICR0bXAgPSBhcnJheV91bmlxdWUoJHNrdXMpOwoJICBpZiggY291bnQoJHRtcCkgPCBjb3VudCgkc2t1cykgKSB7CgkJYXVkaXQoJycsJHRoaXMtPkdldE5hbWUoKSwnV0FSTklORzogUHJvZHVjdHMgbW9kdWxlIHVwZ3JhZGUgZGV0ZWN0ZWQgZHVwbGljYXRlIHNrdSB2YWx1ZXMgaW4gdGhlIGRhdGFiYXNlJyk7CgkJJHNrdXMgPSAkdG1wOwoJICB9Cgl9CgogCS8vIGNvbnZlcnQgYXR0cmlic2V0cyBhbmQgYXR0cmlidXRlcyB0byAiYXR0cmlicyIKCS8vIHRleHRfZm9ybWF0ID0gc2V0X25hbWUgOiBhdHRyaWJfdGV4dCcKCSRxdWVyeSA9ICdTRUxFQ1QgUy4qLEEuKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlic2V0cyBTCiAgICAgICAgICAgICAgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlidXRlcyBBCiAgICAgICAgICAgICAgT04gUy5hdHRyaWJfc2V0X2lkID0gQS5hdHRyaWJfc2V0X2lkJzsKCgkkaXF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicwogICAgICAgICAgICAgICAocHJvZHVjdF9pZCx0ZXh0LGFkanVzdG1lbnQsc2t1LHFvaCxub3RlcykKICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyknOwoJJGRiciA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJJG5vdGVzID0gJ1VwZ3JhZGVkIGZyb20gUHJvZHVjdHMgJy4kb2xkdmVyc2lvbi4nIGF0ICcuc3RyZnRpbWUoJyV4ICVYJykuIlxuTm90ZSwgYXR0cmlidXRlIGNvbWJpbmF0aW9ucyB3ZXJlIG5vdCBpbXBvcnRlZC4iOwoJd2hpbGUoICEkZGJyLT5FT0YgKSB7CgkgICRyb3cgPSAkZGJyLT5maWVsZHM7CgoJICAkdGV4dCA9IHNwcmludGYoJyVzIDogJXMnLHN1YnN0cigkcm93WydhdHRyaWJfc2V0X25hbWUnXSwwLDMwKSxzdWJzdHIoJHJvd1snYXR0cmliX3RleHQnXSwwLDI1NS0zMC0zKSk7CgkgICRza3UgPSAkcm93Wydza3UnXTsKCSAgaWYoIGluX2FycmF5KCRza3UsJHNrdXMpICkgewoJCSRza3UgPSAnJzsKCQlhdWRpdCgnJywkdGhpcy0+R2V0TmFtZSgpLCdXQVJOSU5HOiBQcm9kdWN0cyBtb2R1bGUgdXBncmFkZSBkZXRlY3RlZCBkdXBsaWNhdGUgc2t1IHZhbHVlcyBpbiBhdHRyaWJ1dGVzIGZvciBwcm9kdWN0ICcuJHJvd1sncHJvZHVjdF9pZCddKTs7CgkgIH0KCSAgZWxzZSB7CgkJJHNrdXNbXSA9ICRza3U7CgkgIH0KCSAgJGRicjIgPSAkZGItPkV4ZWN1dGUoJGlxdWVyeSwkcm93Wydwcm9kdWN0X2lkJ10sJHRleHQsJHJvd1snYXR0cmliX2FkanVzdG1lbnQnXSwkc2t1LDAsJG5vdGVzKTsKCSAgJGRici0+TW92ZU5leHQoKTsKCX0KCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnNldHMnKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnV0ZXMnKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKICB9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjE5LjInKSA8IDAgKSB7CiAgJHF1ZXJ5ID0gJ0FMVEVSIFRBQkxFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfZmllbGR2YWxzIEFERCBQUklNQVJZIEtFWSAocHJvZHVjdF9pZCxmaWVsZGRlZl9pZCknOwogICRkYi0+RXhlY3V0ZSgkcXVlcnkpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjE5LjEwJykgPCAwICkgewogICRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKICAkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ3Byb2R1Y3RzX3Byb2R1Y3RfY2F0cycsY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfcHJvZHVjdF9jYXRlZ29yaWVzJywncHJvZHVjdF9pZCxjYXRlZ29yeV9pZCcsCgkJCQkJCQkJCWFycmF5KCdVTklRVUUnPT4xKSk7CiAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwp9CgppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjIwLjQnKSA8IDAgKSB7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMnLCdpb3JkZXIgSScpOwogICAgJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKICAgICRxdWVyeSA9ICdTRUxFQ1QgaWQscHJvZHVjdF9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfYXR0cmlicyBPUkRFUiBCWSBwcm9kdWN0X2lkLHNrdSxpZCc7CiAgICAkcmVzID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogICAgaWYoIGlzX2FycmF5KCRyZXMpICYmIGNvdW50KCRyZXMpICkgewogICAgICAgICRwcm9kdWN0X2lkID0gLTE7CiAgICAgICAgJGlvcmRlciA9IDE7CiAgICAgICAgJHF1ZXJ5ID0gJ1VQREFURSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzX2F0dHJpYnMgU0VUIGlvcmRlciA9ID8gV0hFUkUgaWQgPSA/JzsKICAgICAgICBmb3JlYWNoKCAkcmVzIGFzICRyb3cgKSB7CiAgICAgICAgICAgIGlmKCAkcm93Wydwcm9kdWN0X2lkJ10gIT0gJHByb2R1Y3RfaWQgKSB7CiAgICAgICAgICAgICAgICAvLyBhIG5ldyBwcm9kdWN0IGlkIHdhcyBlbmNvdW50ZXJlZC4KICAgICAgICAgICAgICAgICRwcm9kdWN0X2lkID0gJHJvd1sncHJvZHVjdF9pZCddOwogICAgICAgICAgICAgICAgJGlvcmRlciA9IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRkYnIgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpb3JkZXIsJHJvd1snaWQnXSkpOwogICAgICAgICAgICAkaW9yZGVyKys7CiAgICAgICAgfQogICAgfQp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMjIuMScpIDwgMCApIHsKICAgICR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1cGxvYWRfZGlyJywnX3Byb2R1Y3RzJyk7Cn0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMi4yMy45JykgPCAwICkgewogICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyIsICJ1cmwgQygyNTUpIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgogICAgJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4ncHJvZHVjdHNfaWR4dXJsJyxjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0cycsJ2lkLHVybCxzdGF0dXMnKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjI2JykgPCAwICkgewogICAgJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwogICAgJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9wcm9kdWN0cyIsICJvd25lciBJIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0KaWYoIHZlcnNpb25fY29tcGFyZSgkb2xkdmVyc2lvbiwnMi4yNi4yJykgPCAwICkgewogICAgLy8gY29udmVydCB0ZW1wbGF0ZXMgdG8gdXNlIERlc2lnbk1hbmFnZXIuCiAgICAkaGFuZGxlX3RlbXBsYXRlX2NvbnZlcnNpb24gPSBmdW5jdGlvbigkdHlwZV9uYW1lLCR0cGxfcHJlZml4LCRtb2QsJGN1cl9kZmx0X25hbWUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkdHBsX3R5cGUgPSBuZXcgXENtc0xheW91dFRlbXBsYXRlVHlwZSgpOwogICAgICAgICAgICAkdHBsX3R5cGUtPnNldF9vcmlnaW5hdG9yKCdQcm9kdWN0cycpOwogICAgICAgICAgICAkdHBsX3R5cGUtPnNldF9kZmx0X2ZsYWcoKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5zZXRfbmFtZSgkdHlwZV9uYW1lKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5zZXRfbGFuZ19jYWxsYmFjaygnUHJvZHVjdHM6OnRwbF90eXBlX2xhbmdfY2InKTsKICAgICAgICAgICAgJHRwbF90eXBlLT5zZXRfY29udGVudF9jYWxsYmFjaygnUHJvZHVjdHM6OnRwbF90eXBlX3Jlc2V0X2NiJyk7CiAgICAgICAgICAgICR0cGxfdHlwZS0+cmVzZXRfY29udGVudF90b19mYWN0b3J5KCk7CiAgICAgICAgICAgICR0cGxfdHlwZS0+c2F2ZSgpOwogICAgICAgIH0KICAgICAgICBjYXRjaCggXENtc0V4Y2VwdGlvbiAkZSApIHsKICAgICAgICAgICAgXGNnZV91dGlsczo6bG9nX2V4Y2VwdGlvbigkZSk7CiAgICAgICAgICAgIGF1ZGl0KCcnLCdQcm9kdWN0cycsJ1VwZ3JhZGUgZXJyb3I6ICcuJGUtPkdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQoKICAgICAgICB0cnkgewogICAgICAgICAgICAkdHBsX3R5cGUgPSBcQ21zTGF5b3V0VGVtcGxhdGVUeXBlOjpsb2FkKCdQcm9kdWN0czo6Jy4kdHlwZV9uYW1lKTsKCiAgICAgICAgICAgICR0ZW1wbGF0ZXMgPSAkbW9kLT5MaXN0VGVtcGxhdGVzV2l0aFByZWZpeCgkdHBsX3ByZWZpeCk7CiAgICAgICAgICAgIGlmKCBjb3VudCgkdGVtcGxhdGVzKSApIHsKICAgICAgICAgICAgICAgICRkZmx0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZvcmVhY2goICR0ZW1wbGF0ZXMgYXMgJHRwbF9uYW1lICkgewogICAgICAgICAgICAgICAgICAgICRjb250ZW50ID0gJG1vZC0+R2V0VGVtcGxhdGUoICR0cGxfbmFtZSApOwogICAgICAgICAgICAgICAgICAgIGlmKCAhJGNvbnRlbnQgKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICAgICAgJG9iID0gbmV3IFxDbXNMYXlvdXRUZW1wbGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICR0cGxfc3VmZml4ID0gJGFkal90cGxfbmFtZTEgPSBzdWJzdHIoJHRwbF9uYW1lLHN0cmxlbigkdHBsX3ByZWZpeCkpOwogICAgICAgICAgICAgICAgICAgICRhZGpfdHBsX25hbWUxID0gJ1Byb2R1Y3RzICcuJHR5cGVfbmFtZS4nICcuJGFkal90cGxfbmFtZTE7CiAgICAgICAgICAgICAgICAgICAgJGFkal90cGxfbmFtZTIgPSAkb2ItPmdlbmVyYXRlX3VuaXF1ZV9uYW1lKCAkYWRqX3RwbF9uYW1lMSApOwogICAgICAgICAgICAgICAgICAgICRvYi0+c2V0X3R5cGUoICR0cGxfdHlwZSApOwogICAgICAgICAgICAgICAgICAgICRvYi0+c2V0X2NvbnRlbnQoICRjb250ZW50ICk7CiAgICAgICAgICAgICAgICAgICAgJG9iLT5zZXRfb3duZXIoIGdldF91c2VyaWQoKSApOwogICAgICAgICAgICAgICAgICAgICRvYi0+c2V0X3R5cGVfZGZsdCgkZGZsdCk7CiAgICAgICAgICAgICAgICAgICAgJG9iLT5zZXRfbmFtZSggJGFkal90cGxfbmFtZTIgKTsKICAgICAgICAgICAgICAgICAgICAkb2ItPnNhdmUoKTsKCiAgICAgICAgICAgICAgICAgICAgJG1vZC0+UmVtb3ZlVGVtcGxhdGUoICR0cGxfbmFtZSApOwogICAgICAgICAgICAgICAgICAgICRkZmx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY2F0Y2goIFxDbXNFeGNlcHRpb24gJGUgKSB7CiAgICAgICAgICAgIFxjZ2VfdXRpbHM6OmxvZ19leGNlcHRpb24oJGUpOwogICAgICAgICAgICBhdWRpdCgnJywnUHJvZHVjdHMnLCdVcGdyYWRlIGVycm9yOiAnLiRlLT5HZXRNZXNzYWdlKCkpOwogICAgICAgIH0KICAgIH07CgogICAgJGhhbmRsZV90ZW1wbGF0ZV9jb252ZXJzaW9uKCdMaXN0IFZpZXcnLCdzdW1tYXJ5XycsJHRoaXMsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3ByZWZfZGZsdHN1bW1hcnlfdGVtcGxhdGUnKSk7CiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncHJvZHVjdHNfcHJlZl9kZmx0c3VtbWFyeV90ZW1wbGF0ZScpOwogICAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Byb2R1Y3RzX3ByZWZfbmV3c3VtbWFyeV90ZW1wbGF0ZScpOwogICAgJGhhbmRsZV90ZW1wbGF0ZV9jb252ZXJzaW9uKCdEZXRhaWwgVmlldycsJ2RldGFpbF8nLCR0aGlzLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19wcmVmX2RmbHRkZXRhaWxfdGVtcGxhdGUnKSk7CiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncHJvZHVjdHNfcHJlZl9kZmx0ZGV0YWlsX3RlbXBsYXRlJyk7CiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncHJvZHVjdHNfcHJlZl9uZXdkZXRhaWxfdGVtcGxhdGUnKTsKICAgICRoYW5kbGVfdGVtcGxhdGVfY29udmVyc2lvbignSGllcmFyY2h5IFZpZXcnLCdieWhpZXJhcmNoeV8nLCR0aGlzLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19wcmVmX2RmbHRieWhpZXJhcmNoeV90ZW1wbGF0ZScpKTsKICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdwcm9kdWN0c19wcmVmX2RmbHRieWhpZXJhcmNoeV90ZW1wbGF0ZScpOwogICAgJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Byb2R1Y3RzX3ByZWZfbmV3YnloaWVyYXJjaHlfdGVtcGxhdGUnKTsKICAgICRoYW5kbGVfdGVtcGxhdGVfY29udmVyc2lvbignQ2F0ZWdvcnkgVmlldycsJ2NhdGVnb3J5bGlzdF8nLCR0aGlzLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwcm9kdWN0c19wcmVmX2RmbHRjYXRlZ29yeWxpc3RfdGVtcGxhdGUnKSk7CiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncHJvZHVjdHNfcHJlZl9kZmx0Y2F0ZWdvcnlsaXN0X3RlbXBsYXRlJyk7CiAgICAkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncHJvZHVjdHNfcHJlZl9uZXdjYXRlZ29yeWxpc3RfdGVtcGxhdGUnKTsKICAgICRoYW5kbGVfdGVtcGxhdGVfY29udmVyc2lvbignU2VhcmNoJywnc2VhcmNoXycsJHRoaXMsJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Byb2R1Y3RzX3ByZWZfZGZsdHNlYXJjaF90ZW1wbGF0ZScpKTsKICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdwcm9kdWN0c19wcmVmX2RmbHRzZWFyY2hfdGVtcGxhdGUnKTsKICAgICR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdwcm9kdWN0c19wcmVmX25ld3NlYXJjaF90ZW1wbGF0ZScpOwp9CmlmKCB2ZXJzaW9uX2NvbXBhcmUoJG9sZHZlcnNpb24sJzIuMjcnKSA8IDAgKSB7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIiwgImRpZ2l0YWwgSSBERUZBVUxUIDAiKTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKfQppZiggdmVyc2lvbl9jb21wYXJlKCRvbGR2ZXJzaW9uLCcyLjI3LjEnKSA8IDAgKSB7CiAgICAkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7CiAgICAkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3Byb2R1Y3RzIiwgImV4dHJhIFgyIik7CiAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cn0=]]></data>
	</file>
	<file>
	  <filename>/moduleinfo.ini</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[W21vZHVsZV0KbmFtZSA9IFByb2R1Y3RzCnZlcnNpb24gPSAyLjI3LjUKZGVzY3JpcHRpb24gPSAiIgphdXRob3IgPSBjYWxndXkxMDAwCmF1dGhvcmVtYWlsID0gY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZwptaW5jbXN2ZXJzaW9uID0gMi4yLjIKbGF6eWxvYWRhZG1pbiA9IDEKbGF6eWxvYWRmcm9udGVuZCA9IDAKW2RlcGVuZHNdCkNHRXh0ZW5zaW9ucyA9IDEuNTYuMgpDR1NpbXBsZVNtYXJ0eSA9IDIuMS42CkpRdWVyeVRvb2xzID0gMS40Cg==]]></data>
	</file>
	<file>
	  <filename>/Products.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0JFR0lOX0xJQ0VOU0UKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFByb2R1Y3RzIChjKSAyMDA4LTIwMTQgYnkgUm9iZXJ0IENhbXBiZWxsCiMgICAgICAgICAoY2FsZ3V5MTAwMEBjbXNtYWRlc2ltcGxlLm9yZykKIyAgQW4gYWRkb24gbW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUgdG8gYWxsb3cgdXNlcnMgdG8gY3JlYXRlLCBtYW5hZ2UKIyAgYW5kIGRpc3BsYXkgcHJvZHVjdHMgaW4gYSB2YXJpZXR5IG9mIHdheXMuCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFZpc2l0IHRoZSBDTVNNUyBIb21lcGFnZSBhdDogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgSG93ZXZlciwgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkCiMgYXMgYW4gYWRkb24gbW9kdWxlIHRvIENNUyBNYWRlIFNpbXBsZS4gIFlvdSBtYXkgbm90IHVzZSB0aGlzIHNvZnR3YXJlCiMgaW4gYW55IE5vbiBHUEwgdmVyc2lvbiBvZiBDTVMgTWFkZSBzaW1wbGUsIG9yIGluIGFueSB2ZXJzaW9uIG9mIENNUwojIE1hZGUgc2ltcGxlIHRoYXQgZG9lcyBub3QgaW5kaWNhdGUgY2xlYXJseSBhbmQgb2J2aW91c2x5IGluIGl0cyBhZG1pbgojIHNlY3Rpb24gdGhhdCB0aGUgc2l0ZSB3YXMgYnVpbHQgd2l0aCBDTVMgTWFkZSBzaW1wbGUuCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojRU5EX0xJQ0VOU0UKCmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdTVU1NQVJZX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9uZXdzdW1tYXJ5X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUU1VNTUFSWV9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdHN1bW1hcnlfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX05FV0RFVEFJTF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfbmV3ZGV0YWlsX3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUREVUQUlMX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9kZmx0ZGV0YWlsX3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ORVdDQVRFR09SWUxJU1RfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld2NhdGVnb3J5bGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfREZMVENBVEVHT1JZTElTVF9URU1QTEFURScsJ3Byb2R1Y3RzX3ByZWZfZGZsdGNhdGVnb3J5bGlzdF90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfTkVXQllISUVSQVJDSFlfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX25ld2J5aGllcmFyY2h5X3RlbXBsYXRlJyk7CmRlZmluZSgnUFJPRFVDVFNfUFJFRl9ERkxUQllISUVSQVJDSFlfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX2RmbHRieWhpZXJhcmNoeV90ZW1wbGF0ZScpOwpkZWZpbmUoJ1BST0RVQ1RTX1BSRUZfTkVXU0VBUkNIX1RFTVBMQVRFJywncHJvZHVjdHNfcHJlZl9uZXdzZWFyY2hfdGVtcGxhdGUnKTsKZGVmaW5lKCdQUk9EVUNUU19QUkVGX0RGTFRTRUFSQ0hfVEVNUExBVEUnLCdwcm9kdWN0c19wcmVmX2RmbHRzZWFyY2hfdGVtcGxhdGUnKTsKCmZpbmFsIGNsYXNzIFByb2R1Y3RzIGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfYWRtaW5fbG9hZGVkOwoKICAgIC8qKgogICAgICogQGlnbm9yZQogICAgICovCiAgICBwcml2YXRlICRfcHJpY2VfYWRqdXN0ZXI7CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpCiAgICB7CiAgICAgICAgcGFyZW50OjpfX2NvbnN0cnVjdCgpOwogICAgICAgICRzbWFydHkgPSBTbWFydHlfQ01TOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICBpZiggISRzbWFydHkgKSByZXR1cm47CgogICAgICAgICR0aGlzLT5BZGRJbWFnZURpcignaWNvbnMnKTsKICAgICAgICAkdGhpcy0+X2FkbWluX2xvYWRlZCA9IGZhbHNlOwoKICAgICAgICAkc21hcnR5LT5yZWdpc3RlckNsYXNzKCdwcm9kdWN0X29wcycsJ3Byb2R1Y3Rfb3BzJyk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2dldGNhdGVnb3J5JyxhcnJheSgkdGhpcywnX3NtYXJ0eV9wcm9kdWN0c19nZXRjYXRlZ29yeScpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbigncHJvZHVjdHNfZ2V0aGllcmFyY2h5JyxhcnJheSgkdGhpcywnX3NtYXJ0eV9wcm9kdWN0c19nZXRoaWVyYXJjaHknKSk7CiAgICAgICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iJyxhcnJheSgkdGhpcywnX3NtYXJ0eV9wcm9kdWN0c19oaWVyYXJjaHlfYnJlYWRjcnVtYicpKTsKICAgICAgICAkc21hcnR5LT5yZWdpc3Rlcl9mdW5jdGlvbigncHJvZHVjdHNfaGllcmFyY2h5X3BhcmVudCcsYXJyYXkoJHRoaXMsJ19zbWFydHlfcHJvZHVjdHNfaGllcmFyY2h5X3BhcmVudCcpKTsKCiAgICAgICAgZ2xvYmFsICRDTVNfQURNSU5fUEFHRTsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyB0b2RvOiB0aGlzIHNob3VsZCBnbyBpbiBhIGhvb2suCiAgICAgICAgICAgIC8vIG1ha2luZyB0aGlzIHN0dWZmIGludG8gc3RhdGljIHJvdXRlcyB3b3VsZCBhbGxvdyBsYXp5IGxvYWRpbmcgdGhlIFByb2R1Y3RzIG1vZHVsZSBhbmQgc2F2ZSBleGFjdGx5IG9uZSBxdWVyeS4KICAgICAgICAgICAgJGRiID0gQ21zQXBwOjpnZXRfaW5zdGFuY2UoKS0+R2V0RGIoKTsKICAgICAgICAgICAgJHFwYXJtcyA9IGFycmF5KCcnKTsKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpZCx1cmwgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX3Byb2R1Y3RzIFdIRVJFIHVybCAhPSA/JzsKICAgICAgICAgICAgaWYoICFpc3NldCgkQ01TX0FETUlOX1BBR0UpICkgewogICAgICAgICAgICAgICAgLy8gZm9yIG5vbiBhZG1pbiByZXF1ZXN0cyB3ZSBvbmx5IG5lZWQgdG8gcmVnaXN0ZXIgcm91dGVzIHRvIHB1Ymxpc2hlZCBhcnRpY2xlcy4KICAgICAgICAgICAgICAgICRxdWVyeSAuPSAnIEFORCBzdGF0dXMgPSA/JzsKICAgICAgICAgICAgICAgICRxcGFybXNbXSA9ICdwdWJsaXNoZWQnOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0bXAgPSAkZGItPkdldEFycmF5KCRxdWVyeSwkcXBhcm1zKTsKCiAgICAgICAgICAgIGlmKCBpc19hcnJheSgkdG1wKSApIHsKICAgICAgICAgICAgICAgICRwcmVmaXggPSB0cmltKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnKSk7CiAgICAgICAgICAgICAgICBpZiggJHByZWZpeCApICRwcmVmaXggLj0gJy8nOwogICAgICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGV0YWlscGFnZScsLTEpOwogICAgICAgICAgICAgICAgaWYoICRkZXRhaWxwYWdlIDwgMSApIHsKICAgICAgICAgICAgICAgICAgICAkY29udGVudG9wcyA9IENvbnRlbnRPcGVyYXRpb25zOjpnZXRfaW5zdGFuY2UoKTsKICAgICAgICAgICAgICAgICAgICAkZGV0YWlscGFnZSA9ICRjb250ZW50b3BzLT5HZXREZWZhdWx0Q29udGVudCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZm9yZWFjaCggJHRtcCBhcyAkb25lICkgewogICAgICAgICAgICAgICAgICAgICRwYXJtcyA9IGFycmF5KCdhY3Rpb24nPT4nZGV0YWlscycsJ3JldHVybmlkJz0+JGRldGFpbHBhZ2UsJ3Byb2R1Y3RpZCc9PiRvbmVbJ2lkJ10pOwogICAgICAgICAgICAgICAgICAgICRyb3V0ZSA9IG5ldyBDbXNSb3V0ZSgkcHJlZml4LiRvbmVbJ3VybCddLCR0aGlzLT5HZXROYW1lKCksJHBhcm1zLFRSVUUpOwogICAgICAgICAgICAgICAgICAgIGNtc19yb3V0ZV9tYW5hZ2VyOjpyZWdpc3Rlcigkcm91dGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoKCBcRXhjZXB0aW9uICRlICkgewogICAgICAgICAgICAvLyBpZ25vcmUKICAgICAgICB9CgogICAgICAgIFxDTVNNU1xIb29rTWFuYWdlcjo6YWRkX2hvb2soJ0Zyb250RW5kVXNlcnM6Ok9uRGVsZXRlVXNlcicsZnVuY3Rpb24oJHBhcmFtcyl7CiAgICAgICAgICAgICAgICAkaWQgPSBcY2dlX3BhcmFtOjpnZXRfaW50KCRwYXJhbXMsJ2lkJyk7CiAgICAgICAgICAgICAgICBpZiggJGlkIDwgMSApIHJldHVybjsKCiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPmNvdW50X293bmVyX3Byb2R1Y3RzKCAkaWQgKSApIHRocm93IG5ldyBcUnVudGltZUV4Y2VwdGlvbigkdGhpcy0+TGFuZygnZXJyb3JfZGVsZXRldXNlcicpKTsKICAgICAgICAgICAgfSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIEdldE5hbWUoKSB7IHJldHVybiAnUHJvZHVjdHMnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Byb2R1Y3RfbWFuYWdlcicpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvSW5zdGFsbCgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsgcmV0dXJuIEZBTFNFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKSB7IHJldHVybiB0cnVlOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSGFzQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0VmVyc2lvbigpIHsgcmV0dXJuICcyLjI3LjUnOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKSB7IHJldHVybiAnMi4yLjInOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpIHsgcmV0dXJuICR0aGlzLT5MYW5nKCdtb2R1bGVfZGVzY3JpcHRpb24nKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKSB7IHJldHVybiAkdGhpcy0+TGFuZygncHJldW5pbnN0YWxsJyk7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKSB7IHJldHVybiAnY29udGVudCc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3IoKSB7IHJldHVybiAnY2FsZ3V5MTAwMCc7IH0KICAgIHB1YmxpYyBmdW5jdGlvbiBHZXRBdXRob3JFbWFpbCgpIHsgcmV0dXJuICdjYWxndXkxMDAwQGNtc21hZGVzaW1wbGUub3JnJzsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24oICRldmVudG5hbWUgKSB7IHJldHVybiAkdGhpcy0+bGFuZygnZXZlbnRkZXNjLScgLiAkZXZlbnRuYW1lKTsgfQogICAgcHVibGljIGZ1bmN0aW9uIEdldEV2ZW50SGVscCggJGV2ZW50bmFtZSApIHsJcmV0dXJuICR0aGlzLT5sYW5nKCdldmVudGhlbHAtJyAuICRldmVudG5hbWUpOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSGFuZGxlcnNFdmVudHMoKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gQWxsb3dTbWFydHlDYWNoaW5nKCkgeyByZXR1cm4gVFJVRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkRnJvbnRlbmQoKSB7IHJldHVybiBGQUxTRTsgfQogICAgcHVibGljIGZ1bmN0aW9uIExhenlMb2FkQWRtaW4oKSB7IHJldHVybiBUUlVFOyB9CiAgICBwdWJsaWMgZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkgeyByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7IH0KCiAgICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogICAgewogICAgICAgIHJldHVybiBhcnJheSgnQ0dFeHRlbnNpb25zJz0+JzEuNTYuMicsICdDR1NpbXBsZVNtYXJ0eSc9PicyLjEuNicsICdKUXVlcnlUb29scyc9PicxLjQnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgUHJvZHVjdHMnKSB8fCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBIYXNDYXBhYmlsaXR5KCRjYXBhYmlsaXR5LCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICBzd2l0Y2goICRjYXBhYmlsaXR5ICkgewogICAgICAgIGNhc2UgQ21zQ29yZUNhcGFiaWxpdGllczo6UExVR0lOX01PRFVMRToKICAgICAgICBjYXNlIENtc0NvcmVDYXBhYmlsaXRpZXM6OkFETUlOU0VBUkNIOgogICAgICAgICAgICByZXR1cm4gVFJVRTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRfYWRtaW5zZWFyY2hfc2xhdmVzKCkKICAgIHsKICAgICAgICByZXR1cm4gWyAnXFByb2R1Y3RzXEFkbWluU2VhcmNoX3NsJyBdOwogICAgfQoKICAgIGZ1bmN0aW9uIEdldEhlYWRlckhUTUwoKQogICAgewogICAgICAgICR0eHQgPSBwYXJlbnQ6OkdldEhlYWRlckhUTUwoKTsKICAgICAgICAkb2JqID0gY2dlX3V0aWxzOjpnZXRfbW9kdWxlKCdKUXVlcnlUb29scycsJzEuMi42Jyk7CiAgICAgICAgaWYoIGlzX29iamVjdCgkb2JqKSApIHsKICAgICAgICAgICAgJHRtcGwgPSA8PDxFT1QKe0pRdWVyeVRvb2xzIGFjdGlvbj0ncmVxdWlyZScgbGliPSd0YWJsZXNvcnRlcixqcXVlcnl0b29scyxmYW5jeWJveCd9CntKUXVlcnlUb29scyBhY3Rpb249J3BsYWNlbWFya2VyJ30KRU9UOwogICAgICAgICAgICAkdHh0IC49ICAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRtcGwpOwogICAgICAgIH0KICAgICAgICAkdHh0IC49IDw8PEVPVAo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAgJCgndWwub3B0aW9uLW1lbnUtaG9yaXonKS5tZW51KHsgcG9zaXRpb246IHsgbXk6ICJsZWZ0IHRvcCIsIGF0OiAibGVmdC0xIGJvdHRvbSsyIiB9IH0pOwp9KTsKPC9zY3JpcHQ+CkVPVDsKICAgICAgICByZXR1cm4gJHR4dDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gSW5pdGlhbGl6ZUZyb250ZW5kKCkKICAgIHsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKICAgICAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwcm9kdWN0aWQnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RldGFpbHBhZ2UnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5bGlzdHRlbXBsYXRlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZGV0YWlsdGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1bW1hcnl0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaGllcmFyY2h5dGVtcGxhdGUnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2hpZXJhcmNoeXBhZ2UnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NvcnRieScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc29ydG9yZGVyJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdzb3J0dHlwZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZXhjbHVkZWNhdCcsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm90cHJldHR5JyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnY2F0ZWdvcnluYW1lJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdoaWVyYXJjaHknLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3BhZ2VsaW1pdCcsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFyZW50JyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdvd25lcicsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgncGFyZW50cycsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2hvd2FsbCcsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZmllbGQnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpZWxkaWQnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpZWxkdmFsJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdjYXRlZ29yeWZpZWxkJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdpbmxpbmUnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Jlc3VsdHBhZ2UnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3NlYXJjaGZvcm10ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnc2VhcmNoZmllbGQnLENMRUFOX1NUUklORyk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3N1bW1hcnlwYWdlJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdqdW5rJyxDTEVBTl9TVFJJTkcpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwYWdlJyxDTEVBTl9JTlQpOwogICAgICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdhbGlhcycsQ0xFQU5fU1RSSU5HKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnaGllcmFyY2h5aWQnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2NhdGVnb3J5aWQnLENMRUFOX0lOVCk7CiAgICAgICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Byb2R1Y3RsaXN0JyxDTEVBTl9OT05FKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbm9jaGlsZHJlbicsQ0xFQU5fSU5UKTsKICAgICAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9jZF8uKi8nLENMRUFOX1NUUklORyk7CgogICAgICAgIC8vIEZyaWVuZGx5IFVSTCBzdHVmZgogICAgICAgICRkZXRhaWxwYWdlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RldGFpbHBhZ2UnLC0xKTsKICAgICAgICBpZiggJGRldGFpbHBhZ2UgPT0gLTEgKSB7CiAgICAgICAgICAgICRjb250ZW50b3BzID0gY21zbXMoKS0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgICAgICAgICAgJGRldGFpbHBhZ2UgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdFBhZ2VJRCgpOwogICAgICAgIH0KICAgICAgICAkc3RyID0gJy9eJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywnW1BwXXJvZHVjdHMnKTsKICAgICAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VzZWhpZXJwYXRodXJscycpICkgewogICAgICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2RldGFpbHNcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oW15cL10rXC8pKyg/UDxhbGlhcz4uKikkLycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdhY3Rpb24nPT4nZGV0YWlscycsJ3JldHVybmlkJz0+JGRldGFpbHBhZ2UpKTsKICAgICAgICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9kZXRhaWxzXC8oW15cL10rXC8pKyg/UDxhbGlhcz4uKikkLycsYXJyYXkoJ2FjdGlvbic9PidkZXRhaWxzJywncmV0dXJuaWQnPT4kZGV0YWlscGFnZSkpOwogICAgICAgIH0KCiAgICAgICAgLy8gZGV0YWlsIHZpZXcKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcLyg/UDxwcm9kdWN0aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsYXJyYXkoJ2FjdGlvbic9PidkZXRhaWxzJykpOwogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvKD9QPHByb2R1Y3RpZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nLCBhcnJheSgnYWN0aW9uJz0+J2RldGFpbHMnLCdyZXR1cm5pZCc9PiRkZXRhaWxwYWdlKSk7CiAgICAgICAgLy8gJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC8oP1A8cHJvZHVjdGlkPlswLTldKykkLycpOyBicm9rZW4/CgogICAgICAgIC8vIHZpZXcgY2F0ZWdvcnkgbGlzdAogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvdmlld2NhdGVnb3J5XC8oP1A8Y2F0ZWdvcnlpZD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyxhcnJheSgnYWN0aW9uJz0+J2NhdGVnb3J5bGlzdCcpKTsKCiAgICAgICAgLy8gZGVmYXVsdCB2aWV3cy4uLi4gdXNlZD8KICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL3N1bW1hcnlcLygkUDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL3N1bW1hcnlcLygkUDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCiAgICAgICAgLy8gdmlld2luZyBzdW1tYXJ5IHZpZXcgb2YgcHJvZHVjdHMgYnkgY2F0ZWdvcnkKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2J5Y2F0ZWdvcnlcLyg/UDxjYXRlZ29yeWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2J5Y2F0ZWdvcnlcLyg/UDxjYXRlZ29yeWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspJC8nKTsKCiAgICAgICAgLy8gdmlld2luZyBzdW1tYXJ5IHZpZXcgb2YgcHJvZHVjdHMgYnkgaGllcmFyY2h5CiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9ieWhpZXJhcmNoeVwvKD9QPGhpZXJhcmNoeWlkPlswLTldKylcLyg/UDxyZXR1cm5pZD5bMC05XSspXC8oP1A8anVuaz4uKj8pJC8nKTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2J5aGllcmFyY2h5XC8oP1A8aGllcmFyY2h5aWQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKykkLycpOwoKICAgICAgICAvLyBmb3Igdmlld2luZyB0aGUgcHJvZHVjdCBoaWVyYXJjaHkKICAgICAgICAkaGllcnBhZ2UgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnLC0xKTsKICAgICAgICBpZiggJGhpZXJwYWdlIDw9IDAgKSAkaGllcnBhZ2UgPSAkZGV0YWlscGFnZTsKICAgICAgICAkdGhpcy0+UmVnaXN0ZXJSb3V0ZSgkc3RyLidcL2hpZXJhcmNoeVwvKD9QPHBhcmVudD5bMC05XSspXC8oP1A8cmV0dXJuaWQ+WzAtOV0rKSQvJyk7CiAgICAgICAgJHRoaXMtPlJlZ2lzdGVyUm91dGUoJHN0ci4nXC9oaWVyYXJjaHlcLyg/UDxwYXJlbnQ+WzAtOV0rKVwvKD9QPHJldHVybmlkPlswLTldKylcLyg/UDxqdW5rPi4qPykkLycpOwogICAgICAgICR0aGlzLT5SZWdpc3RlclJvdXRlKCRzdHIuJ1wvaGllcmFyY2h5XC8oP1A8cGFyZW50PlswLTldKylcLyg/UDxqdW5rPi4qPykkLycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoJ2FjdGlvbic9PidoaWVyYXJjaHknLCdyZXR1cm5pZCc9PiRoaWVycGFnZSkpOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBJbml0aWFsaXplQWRtaW4oKQogICAgewogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2FjdGlvbicsJ2RlZmF1bHQnLCR0aGlzLT5MYW5nKCdwYXJhbV9hY3Rpb24nKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncHJvZHVjdGlkJywnJywkdGhpcy0+TGFuZygncGFyYW1fcHJvZHVjdGlkJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ293bmVyJywgJycsICR0aGlzLT5MYW5nKCdwYXJhbV9vd25lcicpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZXRhaWxwYWdlJywnJywkdGhpcy0+TGFuZygncGFyYW1fZGV0YWlscGFnZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdjYXRlZ29yeWxpc3R0ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2NhdGVnb3J5bGlzdHRlbXBsYXRlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5bGlzdGR0bHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygncGFyYW1fY2F0ZWdvcnlsaXN0ZHRsdGVtcGxhdGUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZGV0YWlsdGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9kZXRhaWx0ZW1wbGF0ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzdW1tYXJ5dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9zdW1tYXJ5dGVtcGxhdGUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGllcmFyY2h5dGVtcGxhdGUnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9oaWVyYXJjaHl0ZW1wbGF0ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdoaWVyYXJjaHlwYWdlJywnJywkdGhpcy0+TGFuZygncGFyYW1faGllcmFyY2h5cGFnZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzb3J0YnknLCdwcm9kdWN0X25hbWUnLCR0aGlzLT5MYW5nKCdwYXJhbV9zb3J0YnknKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc29ydG9yZGVyJywnYXNjJywkdGhpcy0+TGFuZygncGFyYW1fc29ydG9yZGVyJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NvcnR0eXBlJywnJywkdGhpcy0+TGFuZygncGFyYW1fc29ydHR5cGUnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZXhjbHVkZWNhdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2V4Y2x1ZGVjYXQnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbm90cHJldHR5JywnJywkdGhpcy0+TGFuZygncGFyYW1fbm90cHJldHR5JykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5JywnJywkdGhpcy0+TGFuZygncGFyYW1fY2F0ZWdvcnknKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignaGllcmFyY2h5JywnJywkdGhpcy0+TGFuZygncGFyYW1faGllcmFyY2h5JykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3BhZ2VsaW1pdCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3BhZ2VsaW1pdCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdwYXJlbnQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9wYXJlbnQnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncGFyZW50cycsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3BhcmVudHMnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignc2hvd2FsbCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3Nob3dhbGwnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignZmllbGQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9maWVsZCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWVsZGlkJywnJywkdGhpcy0+TGFuZygncGFyYW1fZmllbGRpZCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWVsZHZhbCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX2ZpZWxkdmFsJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2NhdGVnb3J5ZmllbGQnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9jYXRlZ29yeWZpZWxkJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2lubGluZScsMCwkdGhpcy0+TGFuZygncGFyYW1faW5saW5lJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3Jlc3VsdHBhZ2UnLCcnLCR0aGlzLT5MYW5nKCdwYXJhbV9yZXN1bHRwYWdlJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3NlYXJjaGZvcm10ZW1wbGF0ZScsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NlYXJjaGZvcm10ZW1wbGF0ZScpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdzZWFyY2hmaWVsZCcsJycsJHRoaXMtPkxhbmcoJ3BhcmFtX3NlYXJjaGZpZWxkJykpOwogICAgICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ3N1bW1hcnlwYWdlJywkdGhpcy0+TGFuZygncGFyYW1fc3VtbWFyeXBhZ2UnKSk7CiAgICAgICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigncHJvZHVjdGxpc3QnLCR0aGlzLT5MYW5nKCdwYXJhbV9wcm9kdWN0bGlzdCcpKTsKICAgICAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdub2NoaWxkcmVuJywkdGhpcy0+TGFuZygncGFyYW1fbm9jaGlsZHJlbicpKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIF9sb2FkX2FkbWluKCkKICAgIHsKICAgICAgICBpZiggISR0aGlzLT5fYWRtaW5fbG9hZGVkICkgewogICAgICAgICAgICByZXF1aXJlX29uY2UoX19ESVJfXy4nL2Z1bmN0aW9ucy5hZG1pbl90b29scy5waHAnKTsKICAgICAgICAgICAgJHRoaXMtPl9hZG1pbl9sb2FkZWQgPSB0cnVlOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFByb2R1Y3RTdG9yYWdlKCkKICAgIHsKICAgICAgICBzdGF0aWMgJG9iajsKICAgICAgICBpZiggISRvYmogKSAkb2JqID0gbmV3IFxQcm9kdWN0c1xQcm9kdWN0U3RvcmFnZSggJHRoaXMsIFxjZ2VfdXRpbHM6OmdldF9kYigpICk7CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gR2V0VHlwZXNEcm9wZG93biggJGlkLCAkbmFtZSwgJHNlbGVjdGVkID0gJycsICRhZGR0ZXh0ID0gJycsICRzZWxlY3RvbmUgPSBmYWxzZSApCiAgICB7CiAgICAgICAgJHRoaXMtPl9sb2FkX2FkbWluKCk7CiAgICAgICAgcmV0dXJuIHByb2R1Y3RzX0dldFR5cGVzRHJvcGRvd24oJHRoaXMsJGlkLCRuYW1lLCRzZWxlY3RlZCwkYWRkdGV4dCwkc2VsZWN0b25lKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqIEBkZXByZWNhdGVkCiAgICAgKi8KICAgIGZ1bmN0aW9uICZHZXRDYXRlZ29yeSgkY2F0ZWdvcnlfaWQsJGZ1bGwgPSBmYWxzZSkKICAgIHsKICAgICAgICAkZ0NtcyA9IGNtc21zKCk7CiAgICAgICAgJGRiID0gJGdDbXMtPkdldERiKCk7CiAgICAgICAgJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCiAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9wcm9kdWN0c19jYXRlZ29yaWVzIFdIRVJFIGlkID0gPyc7CiAgICAgICAgJHF1ZXJ5MiA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfcHJvZHVjdHNfY2F0ZWdvcnlfZmllbGRzIFdIRVJFIGNhdGVnb3J5X2lkID0gPyc7CgogICAgICAgICRyb3cgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGNhdGVnb3J5X2lkKSk7CiAgICAgICAgaWYoICEkcm93ICkgcmV0dXJuIEZBTFNFOwoKICAgICAgICAkb25lcm93ID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgJG9uZXJvdy0+aWQgPSAkcm93WydpZCddOwogICAgICAgICRvbmVyb3ctPm5hbWUgPSAkcm93WyduYW1lJ107CiAgICAgICAgJG9uZXJvdy0+dmFsdWUgPSBmYWxzZTsKICAgICAgICAkb25lcm93LT5maWxlX2xvY2F0aW9uID0gcHJvZHVjdF91dGlsczo6Z2V0X2NhdGVnb3J5X3VwbG9hZF91cmwoJG9uZXJvdy0+aWQpOwoKICAgICAgICBpZiggJGZ1bGwgKSB7CiAgICAgICAgICAgICR0bXAyID0gJGRiLT5HZXRBcnJheSgkcXVlcnkyLGFycmF5KCRyb3dbJ2lkJ10pKTsKICAgICAgICAgICAgaWYoIGlzX2FycmF5KCR0bXAyKSApICRvbmVyb3ctPmRhdGEgPSAkdG1wMjsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkb25lcm93OwogICAgfQoKICAgIGZ1bmN0aW9uIFNlYXJjaFJlc3VsdCgkcmV0dXJuaWQsICRwcm9kdWN0aWQsICRhdHRyID0gJycpCiAgICB7CiAgICAgICAgcmV0dXJuIHByb2R1Y3Rfb3BzOjpnZXRfc2VhcmNoX3Jlc3VsdCgkcmV0dXJuaWQsJHByb2R1Y3RpZCwkYXR0cik7CiAgICB9CgogICAgZnVuY3Rpb24gU2VhcmNoUmVpbmRleCgmJG1vZHVsZSkKICAgIHsKICAgICAgICAkdGhpcy0+X2xvYWRfYWRtaW4oKTsKICAgICAgICByZXR1cm4gcHJvZHVjdHNfU2VhcmNoUmVpbmRleCgkdGhpcywkbW9kdWxlKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gR2V0U2VhcmNoYWJsZVRleHQoXFByb2R1Y3RzXFByb2R1Y3QgJHByb2R1Y3QpCiAgICB7CiAgICAgICAgaWYoICRwcm9kdWN0LT5zdGF0dXMgIT0gJHByb2R1Y3Q6OlNUQVRVU19QVUJMSVNIRUQgKSByZXR1cm4gW107CgogICAgICAgICRmaWVsZGRlZnMgPSBwcm9kdWN0X3V0aWxzOjpnZXRfZmllbGRkZWZzKHRydWUpOwogICAgICAgICRyZXN1bHRzID0gYXJyYXkoKTsKICAgICAgICAkcmVzdWx0c1tdID0gJHByb2R1Y3QtPm5hbWU7CiAgICAgICAgJHJlc3VsdHNbXSA9IHN0cmlwX3RhZ3MoJHByb2R1Y3QtPmRldGFpbHMpOwogICAgICAgICRyZXN1bHRzW10gPSAkcHJvZHVjdC0+c2t1OwogICAgICAgICRyZXN1bHRzW10gPSAkcHJvZHVjdC0+YWxpYXM7CiAgICAgICAgJGZpZWxkdmFscyA9ICRwcm9kdWN0LT5maWVsZF92YWxzOwogICAgICAgIGlmKCBjb3VudCgkZmllbGRkZWZzKSApIHsKICAgICAgICAgICAgZm9yZWFjaCggJGZpZWxkZGVmcyBhcyAkb25lZGVmICkgewogICAgICAgICAgICAgICAgaWYoICRvbmVkZWYtPnB1YmxpYyApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYoICFpc3NldCgkZmllbGR2YWxzWyRvbmVkZWYtPmlkXSkgKSBjb250aW51ZTsKCiAgICAgICAgICAgICAgICBzd2l0Y2goICRvbmVkZWYtPnR5cGUgKSB7CiAgICAgICAgICAgICAgICBjYXNlICd0ZXh0Ym94JzoKICAgICAgICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzoKICAgICAgICAgICAgICAgIGNhc2UgJ2Ryb3Bkb3duJzoKICAgICAgICAgICAgICAgICAgICBpZiggaXNzZXQoJG9uZWRlZi0+dmFsdWUpICkgJHJlc3VsdHNbXSA9ICRvbmVkZWYtPnZhbHVlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcmVhY2goICRwcm9kdWN0LT5hdHRyaWJzIGFzICRhdHRyaWIgKSB7CiAgICAgICAgICAgICRyZXN1bHRzW10gPSBzdHJpcF90YWdzKCRyb3ctPnRleHQpOwogICAgICAgICAgICAkcmVzdWx0c1tdID0gJHJvdy0+c2t1OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdHM7CiAgICB9CgogICAgLy8gZGVwcmVjYXRlZCwgbW92ZSB0byBvcHMKICAgIC8vIGludGVybmFsCiAgICBwdWJsaWMgZnVuY3Rpb24gVXBkYXRlSGllcmFyY2h5UG9zaXRpb25zKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJvZHVjdF91dGlsczo6dXBkYXRlX2hpZXJhcmNoeV9wb3NpdGlvbnMoKTsKICAgIH0KCiAgICAvLyBkZXByZWNhdGVkLCBtb3ZlIHRvIG9wcwogICAgLy8gaW50ZXJuYWwKICAgIHB1YmxpYyBmdW5jdGlvbiBCdWlsZEhpZXJhcmNoeUxpc3QoKQogICAgewogICAgICAgIHJldHVybiBhcnJheV9mbGlwKGhpZXJhcmNoeV9vcHM6OmJ1aWxkX2hpZXJhcmNoeV9saXN0KCkpOwogICAgfQoKICAgIC8vIGRlcHJlY2F0ZWQsIG1vdmUgdG8gb3BzCiAgICBmdW5jdGlvbiBDcmVhdGVIaWVyYXJjaHlEcm9wZG93bigkaWQsJG5hbWUsJHNlbGVjdGVkdmFsdWUpCiAgICB7CiAgICAgICAgJHRtcCA9ICR0aGlzLT5CdWlsZEhpZXJhcmNoeUxpc3QoKTsKICAgICAgICAkdG1wID0gYXJyYXlfbWVyZ2UoYXJyYXkoJHRoaXMtPkxhbmcoJ2FueScpPT4nJyksJHRtcCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwkbmFtZSwkdG1wLC0xLCRzZWxlY3RlZHZhbHVlKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X3ByZXR0eV91cmwoJGlkLCRhY3Rpb24sJHJldHVybmlkPScnLCRwYXJhbXM9YXJyYXkoKSwkaW5saW5lPWZhbHNlKQogICAgewogICAgICAgIGlmKCAkaW5saW5lIHx8ICFwcm9kdWN0X3V0aWxzOjpjYW5fZG9fcHJldHR5KCRhY3Rpb24sJHBhcmFtcykgKSByZXR1cm47CiAgICAgICAgJHByZXR0eXVybCA9IG51bGw7CgogICAgICAgIHN3aXRjaCggJGFjdGlvbiApIHsKICAgICAgICBjYXNlICdkZXRhaWwnOgogICAgICAgIGNhc2UgJ2RldGFpbHMnOgogICAgICAgICAgICAvLyBpZiB3ZSBnb3QgaGVyZSwgdGhlbiBlaXRoZXIgcHJldHR5IHVybHMgYXJlIG5vdCBlbmFibGVkLi4uIG9yIHNvbWV0aGluZyBpcyB3cm9uZwogICAgICAgICAgICByZXR1cm47CgogICAgICAgIGNhc2UgJ2RlZmF1bHQnOgogICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnlpZCddKSApIHsKICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBjYXRlZ29yeSBpZCBwYXJhbWV0ZXIgaXMgc2V0LCB1c2UgYnljYXRlZ29yeQogICAgICAgICAgICAgICAgJHByZXR0eXVybCA9IHNwcmludGYoIiVzL2J5Y2F0ZWdvcnkvJWQvJWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyksIChpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddLCRyZXR1cm5pZCk7CiAgICAgICAgICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snY2F0ZWdvcnluYW1lJ10pICkgJHByZXR0eXVybCAuPSAnLycubXVuZ2Vfc3RyaW5nX3RvX3VybCgkcGFyYW1zWydjYXRlZ29yeW5hbWUnXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snaGllcmFyY2h5aWQnXSkgKSB7CiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgaGllcmFyY2h5IGlkIHBhcmFtZXRlciBpcyBzZXQsIHVzZSBieWhpZXJhcmNoeQogICAgICAgICAgICAgICAgJG5vY2hpbGRyZW4gPSBcY2dlX3BhcmFtOjpnZXRfYm9vbCgkcGFyYW1zLCdub2NoaWxkcmVuJyk7CiAgICAgICAgICAgICAgICBpZiggJG5vY2hpbGRyZW4gKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90IHdhbnQgY2hpbGRyZW4sIG5vIHByZXR0eSB1cmwuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcHJldHR5dXJsID0gc3ByaW50ZigiJXMvYnloaWVyYXJjaHkvJWQvJWQiLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywncHJvZHVjdHMnKSwgKGludCkkcGFyYW1zWydoaWVyYXJjaHlpZCddLCRyZXR1cm5pZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snZmllbGRpZCddKSApIHsKICAgICAgICAgICAgICAgIC8vIG5vIHByZXR0eSB1cmxzIGZvciB0aGlzIGF0bS4KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSB1c2Ugc3VtbWFyeQogICAgICAgICAgICAgICAgJHByZXR0eXVybCA9IHNwcmludGYoIiVzL3N1bW1hcnkvJWQiLCR0aGlzLT5HZXRQcmVmZXJlbmNlKCd1cmxwcmVmaXgnLCdwcm9kdWN0cycpLCRyZXR1cm5pZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgJ2NhdGVnb3J5bGlzdCc6CiAgICAgICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydjYXRlZ29yeWlkJ10pICYmICFpc3NldCgkcGFyYW1zWydjYXRlZ29yeWxpc3RkdGx0ZW1wbGF0ZSddKSApIHsKICAgICAgICAgICAgICAgICRwcmV0dHl1cmwgPSBzcHJpbnRmKCIlcy92aWV3Y2F0ZWdvcnkvJXMvJXMiLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndXJscHJlZml4JywncHJvZHVjdHMnKSwoaW50KSRwYXJhbXNbJ2NhdGVnb3J5aWQnXSwkcmV0dXJuaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICdoaWVyYXJjaHknOgogICAgICAgICAgICAkbm9jaGlsZHJlbiA9IGNnZV91dGlsczo6dG9fYm9vbChjZ2VfdXRpbHM6OmdldF9wYXJhbSgkcGFyYW1zLCdub2NoaWxkcmVuJywwKSk7CiAgICAgICAgICAgIGlmKCAhJG5vY2hpbGRyZW4gKSB7CiAgICAgICAgICAgICAgICAkcHJldHR5dXJsID0gc3ByaW50ZignJXMvaGllcmFyY2h5LyVkJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3VybHByZWZpeCcsJ3Byb2R1Y3RzJyksIChpbnQpJHBhcmFtc1sncGFyZW50J10pOwogICAgICAgICAgICAgICAgaWYoICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWVycGFnZScsLTEpID09IC0xICkgewogICAgICAgICAgICAgICAgICAgIC8vIHVzZSByZXR1cm5pZCBpbiB0aGUgbGluay4KICAgICAgICAgICAgICAgICAgICAkcHJldHR5dXJsIC49ICcvJy4kcmV0dXJuaWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiggJHRoaXMtPkdldFByZWZlcmVuY2UoJ3ByZXR0eWhpZXJ1cmxzJywwKSApIHsKICAgICAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIG5hbWUgdG8gdGhlIHVybC4KICAgICAgICAgICAgICAgICAgICAkaW5mbyA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbygkcGFyYW1zWydwYXJlbnQnXSk7CiAgICAgICAgICAgICAgICAgICAgaWYoIGlzX2FycmF5KCRpbmZvKSApICRwcmV0dHl1cmwgLj0gJy8nLm11bmdlX3N0cmluZ190b191cmwoJGluZm9bJ25hbWUnXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0gLy8gc3dpdGNoCgogICAgICAgIHJldHVybiAkcHJldHR5dXJsOwogICAgfQoKICAgIC8vIGRlcHJlY2F0ZWQKICAgIGZ1bmN0aW9uIEdldEhpZXJhcmNoeUluZm8oJGhpZXJhcmNoeV9pZCkKICAgIHsKICAgICAgICByZXR1cm4gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9pbmZvKCRoaWVyYXJjaHlfaWQpOwogICAgfQoKICAgIC8vIGRlcHJlY2F0ZWQKICAgIGZ1bmN0aW9uIEdldEhpZXJhcmNoeVBhdGgoJGhpZXJhcmNoeV9pZCkKICAgIHsKICAgICAgICByZXR1cm4gaGllcmFyY2h5X29wczo6Z2V0X2hpZXJhcmNoeV9wYXRoKCRoaWVyYXJjaHlfaWQpOwogICAgfQoKICAgIC8vIGRlcHJlY2F0ZWQKICAgIGZ1bmN0aW9uIEdldFByb2R1Y3RIaWVyYXJjaHlQYXRoKCRwcm9kdWN0aWQpCiAgICB7CiAgICAgICAgcmV0dXJuIHByb2R1Y3Rfb3BzOjpnZXRfcHJvZHVjdF9oaWVyYXJjaHlfcGF0aCgkcHJvZHVjdGlkKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIEdldFByb2R1Y3RCeUlkKCAkcHJvZHVjdF9pZCApCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5HZXRQcm9kdWN0U3RvcmFnZSgpLT5nZXRfYnlfaWQoICRwcm9kdWN0X2lkICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKiBAZGVwcmVjYXRlZAogICAgICovCiAgICBmdW5jdGlvbiBEZWxldGVQcm9kdWN0KCRwcm9kdWN0X2lkKQogICAgewogICAgICAgIC8vIG5vdGU6IG5vdyBubyBsb25nZXIgdXBkYXRlIHNlYXJjaAogICAgICAgIHJldHVybiAkdGhpcy0+R2V0UHJvZHVjdFN0b3JhZ2UoKS0+ZGVsZXRlX2J5X2lkKCAkcHJvZHVjdF9pZCApOwogICAgfQoKICAgIGZ1bmN0aW9uIF9zbWFydHlfcHJvZHVjdHNfZ2V0Y2F0ZWdvcnkoJHBhcmFtcywmJHNtYXJ0eSkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ2NhdGVnb3J5aWQnXSkgKSByZXR1cm47CgogICAgICAgICRjYXRpZCA9IChpbnQpJHBhcmFtc1snY2F0ZWdvcnlpZCddOwogICAgICAgICRvYmogPSAkdGhpcy0+R2V0Q2F0ZWdvcnkoJGNhdGlkLHRydWUpOwoKICAgICAgICBpZiggaXNzZXQoJHBhcmFtc1snYXNzaWduJ10pICkgewogICAgICAgICAgICAkc21hcnR5LT5hc3NpZ24oJHBhcmFtc1snYXNzaWduJ10sJG9iaik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgZnVuY3Rpb24gX3NtYXJ0eV9wcm9kdWN0c19nZXRoaWVyYXJjaHkoJHBhcmFtcywmJHNtYXJ0eSkKICAgIHsKICAgICAgICAkaGllcl9pZCA9IFxjZ2VfcGFyYW06OmdldF9pbnQoJHBhcmFtcywnaWQnKTsKICAgICAgICBpZiggJGlkIDwgMSApIHJldHVybjsKCiAgICAgICAgJG9iaiA9IGhpZXJhcmNoeV9vcHM6OmdldF9oaWVyYXJjaHlfaW5mbyggJGlkICk7CgogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkb2JqKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJG9iajsKICAgIH0KCiAgICBmdW5jdGlvbiBfc21hcnR5X3Byb2R1Y3RzX2hpZXJhcmNoeV9icmVhZGNydW1iKCRwYXJhbXMsJiRzbWFydHkpCiAgICB7CiAgICAgICAgaWYoICFpc3NldCgkcGFyYW1zWydoaWVyYXJjaHlpZCddKSApIHJldHVybjsKICAgICAgICAkcmV0dXJuaWQgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGllcnBhZ2UnKTsKICAgICAgICBpZiggJHJldHVybmlkIDw9IDAgKSAkcmV0dXJuaWQgPSBjbXNfdXRpbHM6OmdldF9jdXJyZW50X3BhZ2VpZCgpOwogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydwYWdlaWQnXSkgKSB7CiAgICAgICAgICAgICR0bXAgPSAkdGhpcy0+cmVzb2x2ZV9hbGlhc19vcl9pZCgkcGFyYW1zWydwYWdlaWQnXSk7CiAgICAgICAgICAgIGlmKCAkdG1wICkgJHJldHVybmlkID0gJHRtcDsKICAgICAgICB9CiAgICAgICAgJGRlbGltID0gJyAmcmFxdW87ICc7CiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlbGltJ10pICkgJGRlbGltID0gJHBhcmFtc1snZGVsaW0nXTsKCiAgICAgICAgJGhpZXJpZCA9IChpbnQpJHBhcmFtc1snaGllcmFyY2h5aWQnXTsKICAgICAgICAkYmMgPSBoaWVyYXJjaHlfb3BzOjpnZXRfYnJlYWRjcnVtYigncHJvZCcsJGhpZXJpZCwkcmV0dXJuaWQsJGRlbGltKTsKCiAgICAgICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Fzc2lnbiddKSApIHsKICAgICAgICAgICAgJHNtYXJ0eS0+YXNzaWduKCRwYXJhbXNbJ2Fzc2lnbiddLCRiYyk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRiYzsKICAgIH0KCiAgICBmdW5jdGlvbiBfc21hcnR5X3Byb2R1Y3RzX2hpZXJhcmNoeV9wYXJlbnQoJHBhcmFtcywmJHNtYXJ0eSkKICAgIHsKICAgICAgICBpZiggIWlzc2V0KCRwYXJhbXNbJ2hpZXJhcmNoeWlkJ10pICkgcmV0dXJuOwogICAgICAgICRoaWQgPSAoaW50KSRwYXJhbXNbJ2hpZXJhcmNoeWlkJ107CiAgICAgICAgJGluZm8gPSBoaWVyYXJjaHlfb3BzOjpnZXRfaGllcmFyY2h5X2luZm8oJGhpZCk7CiAgICAgICAgaWYoICFpc19hcnJheSgkaW5mbykgKSByZXR1cm47CgogICAgICAgIGlmKCBpc3NldCgkcGFyYW1zWydhc3NpZ24nXSkgKSB7CiAgICAgICAgICAgICRzbWFydHktPmFzc2lnbigkcGFyYW1zWydhc3NpZ24nXSwkaW5mb1sncGFyZW50X2lkJ10pOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHJldHVybiAkaW5mb1sncGFyZW50X2lkJ107CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldF9wcm9kdWN0X2luZm8oJHByb2R1Y3RfaWQpCiAgICB7CiAgICAgICAgJHByb2R1Y3RfaWQgPSAoaW50KSAkcHJvZHVjdF9pZDsKICAgICAgICBpZiggJHByb2R1Y3RfaWQgPCAxICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBwcm9kdWN0X2lkIHBhc3NlZCB0byAnLl9fTUVUSE9EX18pOwoKICAgICAgICAkcHJvZHVjdCA9ICR0aGlzLT5HZXRQcm9kdWN0U3RvcmFnZSgpLT5nZXRfYnlfaWQoICRwcm9kdWN0X2lkLCB0cnVlICk7CiAgICAgICAgaWYoICEkcHJvZHVjdCApIHJldHVybjsKICAgICAgICBpZiggJHByb2R1Y3QtPnN0YXR1cyAhPSAkcHJvZHVjdDo6U1RBVFVTX1BVQkxJU0hFRCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBnZXQgZWNvbW0gcHJvZHVjdCBpbmZvcm1hdGlvbiBmb3IgYW4gdW5wdWJsaXNoZWQgcHJvZHVjdCcpOwoKICAgICAgICAkb3V0ID0gcHJvZHVjdF91dGlsczo6cHJvZHVjdF90b19lY29tbV9wcm9kdWN0aW5mbyggJHByb2R1Y3QgKTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0X3Byb2R1Y3RfYnlfc2t1KCRza3UpCiAgICB7CiAgICAgICAgJHNrdSA9IHRyaW0oJHNrdSk7CiAgICAgICAgaWYoICEkc2t1ICkgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbignSW52YWxpZCBza3UgcGFzc2VkIHRvICcuX19NRVRIT0RfXyk7CgogICAgICAgICRwcm9kdWN0ID0gJHRoaXMtPkdldFByb2R1Y3RTdG9yYWdlKCktPmdldF9ieV9hbnlfc2t1KCAkc2t1LCB0cnVlICk7CiAgICAgICAgaWYoICEkcHJvZHVjdCApIHJldHVybjsKICAgICAgICBpZiggJHByb2R1Y3QtPnN0YXR1cyAhPSAkcHJvZHVjdDo6U1RBVFVTX1BVQkxJU0hFRCApIHRocm93IG5ldyBcTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCBnZXQgZWNvbW0gcHJvZHVjdCBpbmZvcm1hdGlvbiBmb3IgYW4gdW5wdWJsaXNoZWQgcHJvZHVjdCcpOwoKICAgICAgICAkb3V0ID0gcHJvZHVjdF91dGlsczo6cHJvZHVjdF90b19lY29tbV9wcm9kdWN0aW5mbyggJHByb2R1Y3QgKTsKICAgICAgICByZXR1cm4gJG91dDsKICAgIH0KCiAgICAvKioKICAgICAqIEBpZ25vcmUKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0cGxfdHlwZV9sYW5nX2NiKCRzdHIpCiAgICB7CiAgICAgICAgJG1vZCA9IFxjbXNfdXRpbHM6OmdldF9tb2R1bGUoJ1Byb2R1Y3RzJyk7CiAgICAgICAgJHN0ciA9IHN0cl9yZXBsYWNlKCcgJywnXycsJHN0cik7CiAgICAgICAgaWYoIGlzX29iamVjdCgkbW9kKSApIHJldHVybiAkbW9kLT5MYW5nKCd0cGx0eXBlXycuJHN0cik7CiAgICB9CgogICAgLyoqCiAgICAgKiBAaWdub3JlCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdHBsX3R5cGVfcmVzZXRfY2IoQ21zTGF5b3V0VGVtcGxhdGVUeXBlICR0eXBlKQogICAgewogICAgICAgICRtb2QgPSBcY21zX3V0aWxzOjpnZXRfbW9kdWxlKCdQcm9kdWN0cycpOwogICAgICAgIGlmKCAkdHlwZS0+Z2V0X29yaWdpbmF0b3IoKSAhPSAkbW9kLT5HZXROYW1lKCkgKSB0aHJvdyBuZXcgQ21zTG9naWNFeGNlcHRpb24oJ0Nhbm5vdCByZXNldCBjb250ZW50cyBmb3IgdGhpcyB0ZW1wbGF0ZSB0eXBlJyk7CgogICAgICAgICRmbiA9IG51bGw7CiAgICAgICAgc3dpdGNoKCAkdHlwZS0+Z2V0X25hbWUoKSApIHsKICAgICAgICBjYXNlICdMaXN0IFZpZXcnOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19zdW1tYXJ5X3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0RldGFpbCBWaWV3JzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfZGV0YWlsX3RlbXBsYXRlLnRwbCc7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ0hpZXJhcmNoeSBWaWV3JzoKICAgICAgICAgICAgJGZuID0gJ29yaWdfYnloaWVyYXJjaHlfdGVtcGxhdGUudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnQ2F0ZWdvcnkgVmlldyc6CiAgICAgICAgICAgICRmbiA9ICdvcmlnX2NhdGVnb3J5bGlzdF90ZW1wbGF0ZS50cGwnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdTZWFyY2gnOgogICAgICAgICAgICAkZm4gPSAnb3JpZ19zZWFyY2hfdGVtcGxhdGUudHBsJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBpZiggISRmbiApIHJldHVybjsKICAgICAgICAkZm4gPSBfX0RJUl9fLicvdGVtcGxhdGVzLycuJGZuOwogICAgICAgIGlmKCBmaWxlX2V4aXN0cygkZm4pICkgcmV0dXJuIEBmaWxlX2dldF9jb250ZW50cygkZm4pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRfcHJpY2VfYWRqdXN0ZXIoIFxQcm9kdWN0c1xQcmljZUFkanVzdGVyICRhZGp1c3RlciApCiAgICB7CiAgICAgICAgaWYoICR0aGlzLT5fcHJpY2VfYWRqdXN0ZXIgKSByZXR1cm47CiAgICAgICAgJHRoaXMtPl9wcmljZV9hZGp1c3RlciA9ICRhZGp1c3RlcjsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0X2FkanVzdGVkX3ByaWNlKCBcUHJvZHVjdHNcUHJvZHVjdCAkcHJvZHVjdCwgJHZhbHVlICkKICAgIHsKICAgICAgICAkdmFsdWUgPSAoZmxvYXQpICR2YWx1ZTsKICAgICAgICBpZiggJHRoaXMtPl9wcmljZV9hZGp1c3RlciApIHJldHVybiAkdGhpcy0+X3ByaWNlX2FkanVzdGVyLT5nZXRfYWRqdXN0ZWRfcHJpY2UoICRwcm9kdWN0LCAkdmFsdWUgKTsKICAgICAgICByZXR1cm4gJHZhbHVlOwogICAgfQp9IC8vIGNsYXNzCgojCiMgRU9GCiMK]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/addcategoryfield.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGZ1bmN0aW9uKCl7CiAgICQoJyNmbGR0eXBlJykuY2hhbmdlKGZ1bmN0aW9uKCl7CiAgICAgIHZhciBfdCA9ICQodGhpcykudmFsKCk7CiAgICAgIGlmKCBfdCA9PSAnZmlsZScgfHwgX3QgPT0gJ2ltYWdlJyApIHsKICAgICAgICAgICQoJyNmbGR2YWwnKS5wcm9wKCd0eXBlJywnZmlsZScpOwogICAgICB9IGVsc2UgewogICAgICAgICAgJCgnI2ZsZHZhbCcpLnByb3AoJ3R5cGUnLCd0ZXh0Jyk7CiAgICAgIH0KICAgfSkKfSkKPC9zY3JpcHQ+Cgo8aDM+eyRtb2QtPkxhbmcoJ2FkZF9jYXRlZ29yeV9maWVsZCcsJGNhdGVnb3J5Lm5hbWUpfTwvaDM+Cgp7Zm9ybV9zdGFydCBjYXRpZD0kY2F0aWQgZmxkbmFtZT0kZmllbGRuYW1lfQo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygndHlwZScpfTo8L2xhYmVsPgogIDxzZWxlY3QgY2xhc3M9ImdyaWRfOSIgaWQ9ImZsZHR5cGUiIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfZmllbGR0eXBlIj57aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZpZWxkdHlwZXMgc2VsZWN0ZWQ9JGZpZWxkdHlwZX08L3NlbGVjdD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCduYW1lJyl9OjwvbGFiZWw+CiAgPGlucHV0IGNsYXNzPSJncmlkXzkiIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfZmllbGRuYW1lIiB2YWx1ZT0ieyRmaWVsZG5hbWV9Ii8+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0Jyl9OjwvbGFiZWw+CiAgPGlucHV0IGNsYXNzPSJncmlkXzkiIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfZmllbGRwcm9tcHQiIHZhbHVlPSJ7JGZpZWxkcHJvbXB0fSIgbWF4bGVuZ3RoPSIyNTUiLz4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCd2YWx1ZScpfTo8L2xhYmVsPgogIHtpZiAkZmllbGR0eXBlID09ICdmaWxlJyB8fCAkZmllbGR0eXBlID09ICdpbWFnZSd9CiAgICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1pbnB1dF9maWVsZHZhbHVlIiB2YWx1ZT0ieyRmaWVsZHZhbHVlfSIvPgogICAgPGRpdiBjbGFzcz0iZ3JpZF8yIj4mbmJzcDs8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWRfOSI+eyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06Jm5ic3A7eyRmaWVsZHZhbHVlfQogICAgICB7aWYgaXNzZXQoJGZpbGVleGlzdHMpfSZuYnNwO3skbW9kLT5MYW5nKCd2YWxpZCcpfXtlbHNlfTxlbT4oeyRtb2QtPkxhbmcoJ2Vycm9yX2ZpbGVub3Rmb3VuZCcpfSk8L2VtPnsvaWZ9CiAgICA8L2Rpdj4KICB7ZWxzZX0KICAgIDxpbnB1dCBpZD0iZmxkdmFsIiBjbGFzcz0iZ3JpZF85IiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWlucHV0X2ZpZWxkdmFsdWUiIHZhbHVlPSJ7JGZpZWxkdmFsdWV9Ii8+CiAgey9pZn0KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgo8L2Rpdj4Ke2Zvcm1fZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/add_attrib_set.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdwcm9tcHRfYWRkX2F0dHJpYnNldCcpfTwvaDM+CjxoND57JG1vZC0+TGFuZygncHJvZHVjdCcpfTombmJzcDsgeyRwcm9kdWN0LnByb2R1Y3RfbmFtZX0gKHskcHJvZHVjdC5pZH0pe2lmICRwcm9kdWN0LnNrdSAhPSAnJ308YnIvPnskbW9kLT5MYW5nKCdza3UnKX06Jm5ic3A7eyRwcm9kdWN0LnNrdX17L2lmfTwvaDQ+CnskZm9ybXN0YXJ0fQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc2V0X25hbWV9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3NldF9uYW1lfTwvcD4KPC9kaXY+Cgp7aWYgY291bnQoJHZhbHVlcyl9Cjxici8+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+Cjx0YWJsZT4KICA8dGhlYWQ+CiAgICA8dGg+eyRpZHRleHR9PC90aD4KICAgIDx0aD4qeyRrZXl0ZXh0fTwvdGg+CiAgICA8dGg+eyR2YWx1ZXRleHR9PGJyLz57JGluZm9fdmFsdWV0ZXh0fTwvdGg+CiAgICA8dGg+e2lmICRtb2QtPkdldFByZWZlcmVuY2UoJ3NrdXJlcXVpcmVkJyl9KnsvaWZ9eyRtb2QtPkxhbmcoJ3NrdScpfTwvdGg+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kdmFsdWVzIGl0ZW09J29uZXZhbHVlJ30KICA8dHI+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+aWR4fTwvdGQ+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+a2V5fTwvdGQ+CiAgICA8dGQ+eyRvbmV2YWx1ZS0+dmFsdWV9PC90ZD4KICAgIDx0ZD57JG9uZXZhbHVlLT5za3V9PC90ZD4KICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgo8L2Rpdj4KPGJyLz4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCIgYm9yZGVyPSIwIj4KICAgICB7JGlucHV0X3VwZGF0ZX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fSZuYnNwO3skY2FuY2VsfTwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_bulk_editquantity.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdidWxrX2VkaXRfcXVhbnRpdHknKX08L2gzPgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiI+eyRtb2QtPkxhbmcoJ2luZm9fYnVsa19lZGl0cXVhbnRpdHknKX08L2Rpdj4KCnskcHJldl9wcm9kdWN0PS0xfQp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgogIDx0aGVhZD4KICAgIDx0cj4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdwcm9kdWN0Jyl9PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCdvcHRpb24nKX08L3RoPgogICAgICA8dGg+eyRtb2QtPkxhbmcoJ3NrdScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygncXVhbnRpdHlfb25faGFuZCcpfTwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogIHtmb3JlYWNoICRlZGl0YWJsZSBhcyAkb25lfQogICAgPHRyPgogICAgICA8dGQ+eyRvbmUtPnByb2R1Y3RfbmFtZX08L3RkPgogICAgICA8dGQ+eyRvbmUtPmF0dHJpYnV0ZX08L3RkPgogICAgICA8dGQ+eyRvbmUtPnNrdX08L3RkPgogICAgICA8dGQ+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y2RfcW9oW3skb25lLT5za3V9XSIgdmFsdWU9Inskb25lLT5zdG9ja30iIHNpemU9IjUiIG1heGxlbmd0aD0iNSIvPgogICAgICA8L3RkPgogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_copyattribsets.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X2F0dHJpYl9zZXRzJyl9PC9oMz4KPHA+eyRtb2QtPkxhbmcoJ2luZm9fY29weV9hdHRyaWJzZXRzJyl9PC9wPgp7JGZvcm1zdGFydH0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdzb3VyY2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfXNyY19jb21waWQiPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRwcm9kdWN0X2xpc3R9CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdkZXN0aW5hdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICB7JGRlc3RfcHJvZHVjdF9uYW1lfQogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9IiBvbmNsaWNrPSJyZXR1cm4gY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fY29weWF0dHJpYnV0ZXMnKX0nKTsiLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_attribs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHN0eWxlPgojYXR0cmliX3RhYmxlIHRib2R5IHRyIHsKICAgY3Vyc29yOiBtb3ZlOwp9Cjwvc3R5bGU+Cgo8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfb3B0aW9ucycpfTwvaDM+CjxoND57JHByb2R1Y3QtPm5hbWV9IC8vIHskcHJvZHVjdC0+c2t1fSAvLyAoeyRwcm9kdWN0LT5pZH0pPC9oND4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAvLyBtb3ZlIHRoZSBza2VsIHJvdyB0byBhIGhpZGRlbiBkaXYuCiAgdmFyIGUgPSAkKCc8ZGl2IHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PC9kaXY+Jyk7CiAgJCgnYm9keScpLmFwcGVuZChlKTsKICB2YXIgc2tlbCA9ICQoJyNza2VsX3JvdycpOwogIHNrZWwucmVtb3ZlKCk7CiAgZS5hcHBlbmQoc2tlbCk7CgogICQoJyNhdHRyaWJfdGFibGUgPiB0Ym9keScpLnNvcnRhYmxlKHsKICAgIGN1cnNvcjogJ21vdmUnCiAgfSk7CiAgJCgnI2FkZF9vcHRpb24nKS5jbGljayhmdW5jdGlvbigpewogICAgdmFyIGUyID0gc2tlbC5jbG9uZSgpOwogICAgZTIucmVtb3ZlQXR0cignaWQnKS5zaG93KCk7CiAgICAkKCcjYXR0cmliX3RhYmxlID4gdGJvZHknKS5hcHBlbmQoZTIpOwogIH0pCiAgJCgnLmNvcHlfb3B0aW9uJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAvLyBmaW5kIHRoZSBwcmVjZWRpbmcgcm93Li4gYW5kIGNvcHkgaXQuCiAgICB2YXIgdHIgPSAkKHRoaXMpLmNsb3Nlc3QoJ3RyJyk7CiAgICB2YXIgY2xvbmUgPSB0ci5jbG9uZSgpOwogICAgdHIuYWZ0ZXIoY2xvbmUpOwogIH0pOwogICQoJy5kZWxfb3B0aW9uJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICB2YXIgdGJsID0gJCh0aGlzKS5jbG9zZXN0KCd0YWJsZScpOwogICAgdmFyIGxlbiA9ICQoJ3Rib2R5IHRyJyx0YmwpLmxlbmd0aDsKICAgICQodGhpcykuY2xvc2VzdCgndHInKS5yZW1vdmUoKTsKICB9KTsKICAkKCcuZWRpdF9ub3RlcycpLmxpdmUoJ2NsaWNrJyxmdW5jdGlvbigpewogICAgdmFyIGEgPSAkKHRoaXMpLmNsb3Nlc3QoJ3RyJyk7CiAgICB2YXIgYiA9ICQoJy5ub3RlcycsYSk7CiAgICB2YXIgaWR4ID0gYS5wcmV2QWxsKCkubGVuZ3RoOwogICAgJCgnI25vdGVzX2lkeCcpLnZhbChpZHgpOwogICAgJCgnI25vdGVzX3R4dCcpLnZhbChiLnZhbCgpKTsKICAgICQoJyNub3Rlc19kaWFsb2cnKS5kaWFsb2coewogICAgICBtb2RhbDogdHJ1ZSwKICAgICAgd2lkdGg6ICdhdXRvJywKICAgICAgYnV0dG9uczogWwogICAgICAgIHsgdGV4dDogInskbW9kLT5MYW5nKCdvaycpfSIsCiAgICAgICAgICBjbGljazogZnVuY3Rpb24oKXsKCSAgICB2YXIgdHh0ID0gJCgnI25vdGVzX3R4dCcpLnZhbCgpOwoJICAgIHZhciBpZHggPSAkKCcjbm90ZXNfaWR4JykudmFsKCk7CiAgCSAgICAkKCcjYXR0cmliX3RhYmxlIHRib2R5IHRyJykuZXEoaWR4KS5maW5kKCcubm90ZXMnKS52YWwodHh0KTsKICAgICAgICAgICAgJCh0aGlzKS5kaWFsb2coJ2Nsb3NlJyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICBdCiAgICB9KTsKICB9KTsKCiAgJChkb2N1bWVudCkub24oJ2NsaWNrJywnI3N1Ym1pdCcsZnVuY3Rpb24oKXsKICAgIC8vIGRvbid0IHJlbW92ZSB0aGUgcmVxdWlyZWQgYXR0cmlidXRlcy4KICAgIHZhciBsID0gJCgnI2F0dHJpYl90YWJsZSB0Ym9keSB0cicpLmxlbmd0aDsKICAgIGlmKCBsID09IDEgKSB7CiAgICAgIC8vIGlmIHRoZSB0ZXh0IGlzIGVtcHR5LCBza3UgaXMgZW1wdHksIGFuZCB0aGUgYWRqdXN0bWVudCBhbmQgcW9oIGFyZSAwCiAgICAgIC8vIHRoZSB3ZSB3aWxsIGRlbGV0ZSB0aGUgcm93IGFuZCB0aGVyZSB3aWxsIGJlIG5vIG9wdGlvbnMKICAgICAgLy8gb3RoZXJ3aXNlLCByZXF1aXJlIHR3byByb3dzLgogICAgICB2YXIgcm93ID0gJCgnI2F0dHJpYl90YWJsZSA+IHRib2R5ID4gdHI6Zmlyc3QnKTsKICAgICAgdmFyIHNrdSA9ICQoJ2lucHV0Lm9wdGlvbl9za3UnLHJvdykudmFsKCk7CiAgICAgIHZhciB0eHQgPSAkKCdpbnB1dC5vcHRpb25fdGV4dCcscm93KS52YWwoKTsKICAgICAgdmFyIGFkaiA9ICQoJ2lucHV0Lm9wdGlvbl9hZGonLHJvdykudmFsKCk7CiAgICAgIHZhciBxb2ggPSAkKCdpbnB1dC5vcHRpb25fcW9oJyxyb3cpLnZhbCgpOwogICAgICBpZiggc2t1ID09ICcnICYmIHR4dCA9PSAnJyAmJiAoYWRqID09ICcnIHx8IGFkaiA9PSAnMCcpICYmIChxb2ggPT0gJycgfHwgcW9oID09ICcwJykgKSB7CiAgICAgICAgLy8gZW1wdHkgcm93Cglyb3cucmVtb3ZlKCk7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgYWxlcnQoJ3skbW9kLT5MYW5nKCdlcnJvcl9uZWVkdHdvcm93cycpfScpOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQogIH0pOwoKICAkKGRvY3VtZW50KS5vbignY2xpY2snLCcjY2FuY2VsJyxmdW5jdGlvbigpewogICAgLy8gY2FuY2VsLCByZW1vdmUgcmVxdWlyZWQgYXR0cmlidXRlcwogICAgJCgnOmlucHV0JykucmVtb3ZlQXR0cigncmVxdWlyZWQnKTsKICB9KTsKCiAgJChkb2N1bWVudCkub24oJ2NsaWNrJywnI2NvcHlhdHRyaWJzJyxmdW5jdGlvbigpewogICAgLy8gY29weSBmcm9tIHNvbWV0aGluZyBlbHNlLgogICAgaWYoIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdjb25maXJtX2NvcHlvcHRpb25zJyl9JykgKSB7CiAgICAgICQoJzppbnB1dCcpLnJlbW92ZUF0dHIoJ3JlcXVpcmVkJyk7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0pOwp9KTsKPC9zY3JpcHQ+Cgo8ZGl2IGlkPSJub3Rlc19kaWFsb2ciIHN0eWxlPSJkaXNwbGF5OiBub25lOyIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0X29wdGlvbl9ub3RlcycpfSI+CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ25vdGVzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibm90ZXNfaWR4IiB2YWx1ZT0iIi8+CiAgICAgIDx0ZXh0YXJlYSBpZD0ibm90ZXNfdHh0IiByb3dzPSI1IiBjb2x1bW5zPSI0MCI+PC90ZXh0YXJlYT4KICAgIDwvcD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImluZm9ybWF0aW9uIiBzdHlsZT0iZGlzcGxheTogYmxvY2s7Ij57JG1vZC0+TGFuZygnaW5mb19lZGl0X3Byb2R1Y3Rfb3B0aW9ucycpfTwvZGl2Pgo8ZGl2IGlkPSJ3YXJuX2VkaXRfcHJvZHVjdF9vcHRpb25zIiBjbGFzcz0icGFnZXdhcm5pbmciIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPnskbW9kLT5MYW5nKCd3YXJuX2VkaXRfcHJvZHVjdF9vcHRpb25zJyl9PC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CjxhIGlkPSJhZGRfb3B0aW9uIj57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnIGFsdD0kbW9kLT5MYW5nKCdhZGRvcHRpb24nKSBjbGFzcz0nc3lzdGVtaWNvbid9IHskbW9kLT5MYW5nKCdhZGRvcHRpb24nKX08L2E+CjwvZGl2Pgp7JGZvcm1zdGFydH0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiIGNlbGxzcGFjaW5nPSIwIiBpZD0iYXR0cmliX3RhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD48c3BhbiB0aXRsZT0ieyRtb2QtPkxhbmcoJ3RpdGxlX3NrdScpfSI+e2lmICRza3VfaXNfcmVxdWlyZWR9KnsvaWZ9eyRtb2QtPkxhbmcoJ3NrdScpfTwvc3Bhbj48L3RoPgogICAgICA8dGg+PHNwYW4gdGl0bGU9InskbW9kLT5MYW5nKCd0aXRsZV9hdHRyaWJ1dGVfdGV4dCcpfSI+KnskbW9kLT5MYW5nKCdhdHRyaWJfdGV4dCcpfTwvc3Bhbj48L3RoPgogICAgICA8dGg+PHNwYW4gdGl0bGU9InskbW9kLT5MYW5nKCd0aXRsZV9hZGp1c3RtZW50Jyl9Ij57JG1vZC0+TGFuZygncHJpY2VfYWRqdXN0bWVudCcpfTwvc3Bhbj48L3RoPgogICAgICA8dGg+PHNwYW4gdGl0bGU9InskbW9kLT5MYW5nKCd0aXRsZV9xb2gnKX0iPnskbW9kLT5MYW5nKCdxdWFudGl0eV9vbl9oYW5kJyl9PC9zcGFuPjwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPjwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogICAgPHRyIGlkPSJza2VsX3JvdyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0ib3B0aW9uX3NrdSIgbmFtZT0ieyRhY3Rpb25pZH1za3VbXSIgdmFsdWU9Inskc2tlbF9yb3ctPnNrdX0iIHNpemU9IjEwIiBtYXhsZW5ndGg9IjI1IiAgcGxhY2Vob2xkZXI9InskbW9kLT5MYW5nKCdza3UnKX0iIHtpZiAkc2t1X2lzX3JlcXVpcmVkfXJlcXVpcmVkPSJyZXF1aXJlZCJ7L2lmfS8+PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0ib3B0aW9uX3RleHQiIG5hbWU9InskYWN0aW9uaWR9dGV4dFtdIiB2YWx1ZT0ieyRza2VsX3Jvdy0+dGV4dH0iIHNpemU9IjgwIiBtYXhsZW5ndGg9IjI1NSIgcmVxdWlyZWQ9InJlcXVpcmVkIiBwbGFjZWhvbGRlcj0ieyRtb2QtPkxhbmcoJ3BoX29wdGlvbnRleHQnKX0iLz48L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJvcHRpb25fYWRqIiBuYW1lPSJ7JGFjdGlvbmlkfWFkanVzdG1lbnRbXSIgdmFsdWU9Inskc2tlbF9yb3ctPmFkanVzdG1lbnR9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIvPjwvdGQ+CiAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9Im9wdGlvbl9xb2giIG5hbWU9InskYWN0aW9uaWR9cW9oW10iIHZhbHVlPSJ7JHNrZWxfcm93LT5xb2h9IiBzaXplPSI1IiBtYXhsZW5ndGg9IjUiIHZhbHVlPSIwIi8+PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJub3RlcyIgbmFtZT0ieyRhY3Rpb25pZH1ub3Rlc1tdIiB2YWx1ZT0ieyRza2VsX3Jvdy0+bm90ZXN9Ii8+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9lZGl0LmdpZicgY2xhc3M9ImVkaXRfbm90ZXMiIGFsdD0kbW9kLT5MYW5nKCdlZGl0X25vdGVzJyl9PC90ZD4KICAgICAgPHRkPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vY29weS5naWYnIGNsYXNzPSJjb3B5X29wdGlvbiIgYWx0PSRtb2QtPkxhbmcoJ2NvcHlfYXR0cmlidXRlJyl9CiAgICAgIDx0ZD57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnIGNsYXNzPSJkZWxfb3B0aW9uIiBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlX2F0dHJpYnV0ZScpfQogICAgPC90cj4KCiAge2ZvcmVhY2ggJGF0dHJpYnMgYXMgJGF0dHJpYn0KICAgIDx0ciBpZD0iYXR0cmliX3skYXR0cmliLT5pZH0iPgogICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJvcHRpb25fc2t1IiBuYW1lPSJ7JGFjdGlvbmlkfXNrdVtdIiB2YWx1ZT0ieyRhdHRyaWItPnNrdX0iIHNpemU9IjEwIiBtYXhsZW5ndGg9IjI1IiAgcGxhY2Vob2xkZXI9InskbW9kLT5MYW5nKCdza3UnKX0iIHtpZiAkc2t1X2lzX3JlcXVpcmVkfXJlcXVpcmVkPSJyZXF1aXJlZCJ7L2lmfS8+PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0ib3B0aW9uX3RleHQiIG5hbWU9InskYWN0aW9uaWR9dGV4dFtdIiB2YWx1ZT0ieyRhdHRyaWItPnRleHR9IiBzaXplPSI4MCIgbWF4bGVuZ3RoPSIyNTUiIHJlcXVpcmVkPSJyZXF1aXJlZCIgcGxhY2Vob2xkZXI9InskbW9kLT5MYW5nKCdwaF9vcHRpb250ZXh0Jyl9Ii8+PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0ib3B0aW9uX2FkaiIgbmFtZT0ieyRhY3Rpb25pZH1hZGp1c3RtZW50W10iIHZhbHVlPSJ7JGF0dHJpYi0+YWRqdXN0bWVudH0iIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIi8+PC90ZD4KICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0ib3B0aW9uX3FvaCIgbmFtZT0ieyRhY3Rpb25pZH1xb2hbXSIgdmFsdWU9InskYXR0cmliLT5xb2h9IiBzaXplPSI1IiBtYXhsZW5ndGg9IjUiLz48L3RkPgogICAgICA8dGQ+PGlucHV0IHR5cGU9ImhpZGRlbiIgY2xhc3M9Im5vdGVzIiBuYW1lPSJ7JGFjdGlvbmlkfW5vdGVzW10iIHZhbHVlPSJ7JGF0dHJpYi0+bm90ZXN9Ii8+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9lZGl0LmdpZicgY2xhc3M9ImVkaXRfbm90ZXMiIGFsdD0kbW9kLT5MYW5nKCdlZGl0X25vdGVzJyl9PC90ZD4KICAgICAgPHRkPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vY29weS5naWYnIGNsYXNzPSJjb3B5X29wdGlvbiIgYWx0PSRtb2QtPkxhbmcoJ2NvcHlfYXR0cmlidXRlJyl9CiAgICAgIDx0ZD57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnIGNsYXNzPSJkZWxfb3B0aW9uIiBhbHQ9JG1vZC0+TGFuZygnZGVsZXRlX2F0dHJpYnV0ZScpfQogICAgPC90cj4KICB7L2ZvcmVhY2h9CiAgPC90Ym9keT4KPC90YWJsZT4KPGRpdiBjbGFzcz0icGFnZW9wdGlvbnMiPgp7aWYgaXNzZXQoJHByb2R1Y3RzX3dpdGhfYXR0cmlicyl9CiAgPGxhYmVsIGZvcj0iY29weV9hdHRyaWJzX2Zyb20iPnskbW9kLT5MYW5nKCdjb3B5X29wdGlvbnNfZnJvbScpfTo8L2xhYmVsPiZuYnNwOwogIDxzZWxlY3QgaWQ9ImNvcHlfYXR0cmlic19mcm9tIiBuYW1lPSJ7JGFjdGlvbmlkfWNvcHlmcm9tIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kcHJvZHVjdHNfd2l0aF9hdHRyaWJzfQogIDwvc2VsZWN0PiZuYnNwOwogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJjb3B5YXR0cmlicyIgbmFtZT0ieyRhY3Rpb25pZH1jb3B5YXR0cmlicyIgdmFsdWU9InskbW9kLT5MYW5nKCdvaycpfSIvPgp7L2lmfQo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij48L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgaWQ9InN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiBpZD0iY2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_hierarchy_item.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPntsaXRlcmFsfQokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogICQoJ2EucG9wdXBfaW1hZ2UnKS5mYW5jeWJveCgpOwp9KTsKey9saXRlcmFsfTwvc2NyaXB0Pgp7aWYgaXNzZXQoJGhpZXJfcmVjLmlkKX0KPGgzPnskbW9kLT5MYW5nKCdlZGl0X2hpZXJhcmNoeV9pdGVtJyl9PC9oMz4Ke2Vsc2V9CjxoMz57JG1vZC0+TGFuZygnYWRkX2hpZXJhcmNoeV9pdGVtJyl9PC9oMz4Key9pZn0KCntmb3JtX3N0YXJ0IGhpZXJhcmNoeV9pZD0kaGllcl9yZWMuaWR9CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ij4mbmJzcDs8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iPgo8L2Rpdj4KPGhyLz4KCjxoND57JG1vZC0+TGFuZygnbWFpbicpfTwvaDQ+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCduYW1lJyl9PC9sYWJlbD4KICA8aW5wdXQgY2xhc3M9ImdyaWRfOSIgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1uYW1lIiB2YWx1ZT0ieyRoaWVyX3JlYy5uYW1lfSIgbWF4bGVuZ3RoPSIyNTUiPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwYXJlbnQnKX08L2xhYmVsPgogIDxzZWxlY3QgY2xhc3M9ImdyaWRfOSIgbmFtZT0ieyRhY3Rpb25pZH1wYXJlbnRfaWQiPntodG1sX29wdGlvbnMgb3B0aW9ucz0kaGllcmFyY2h5X2l0ZW1zIHNlbGVjdGVkPSRoaWVyX3JlYy5wYXJlbnRfaWR9PC9zZWxlY3Q+CjwvZGl2Pgo8aHIvPgoKPGg0PnskbW9kLT5MYW5nKCdkZXNjcmlwdGlvbicpfTwvaDQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KICAgIHtjZ2Vfd3lzaXd5ZyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZGVzY3JpcHRpb24gdmFsdWU9JGhpZXJfcmVjLmRlc2NyaXB0aW9uIGNsYXNzPSJncmlkXzkifQogIDwvZGl2Pgo8L2Rpdj4KPGhyLz4KCjxoND57JG1vZC0+TGFuZygnaW1hZ2V0ZXh0Jyl9PC9oND4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8ZGl2IGNsYXNzPSJncmlkXzEyIj4KICAgICB7aWYgIWVtcHR5KCRoaWVyX3JlYy5pbWFnZSkgJiYgJGhpZXJfcmVjLmltYWdlICE9ICcwJyAmJiAhZW1wdHkoJGltYWdlX3VybCl9CiAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPgogICAgICAgeyRtb2QtPkxhbmcoJ2N1cnJlbnRfdmFsdWUnKX06IDxhIGNsYXNzPSJwb3B1cF9pbWFnZSIgaHJlZj0ieyRpbWFnZV91cmx9Ij57JGhpZXJfcmVjLmltYWdlfTwvYT4KICAgICAgIHskbW9kLT5MYW5nKCdkZWxldGUnKX06PGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ7JGFjdGlvbmlkfWRlbGV0ZWltZyIgdmFsdWU9IjEiPgogICAgIDwvcD4KICAgICB7L2lmfQogICAgIDxpbnB1dCBjbGFzcz0iZ3JpZF8xMiIgdHlwZT0iZmlsZSIgbmFtZT0ieyRhY3Rpb25pZH1pbWFnZSIgc2l6ZT0iNTAiIG1heGxlbmd0aD0iMjU1Ij4KICA8L2Rpdj4KPC9kaXY+Cjxoci8+Cgo8aDQ+eyRtb2QtPkxhbmcoJ2V4dHJhX2luZm8nKX08L2g0Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnZXh0cmExJyl9PC9sYWJlbD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leHRyYTEiIHZhbHVlPSJ7JGhpZXJfcmVjLmV4dHJhMX0iIHNpemU9IjUwIiBtYXhsZW5ndGg9IjI1NSI+PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ2V4dHJhMicpfTwvbGFiZWw+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9ZXh0cmEyIiB2YWx1ZT0ieyRoaWVyX3JlYy5leHRyYTJ9IiBzaXplPSI1MCIgbWF4bGVuZ3RoPSIyNTUiPjwvcD4KPC9kaXY+Cgp7Zm9ybV9lbmR9]]></data>
	</file>
	<file>
	  <filename>/templates/admin_hierarchy_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHAgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1hZG1pbl9lZGl0X2hpZXJhcmNoeV9pdGVtfSI+e2FkbWluX2ljb24gaWNvbj0nbmV3b2JqZWN0LmdpZid9IHskbW9kLT5MYW5nKCdhZGRfaGllcmFyY2h5X2l0ZW0nKX08L2E+CiAgeyRyZW9yZGVyX2xpbmt8ZGVmYXVsdDonJ30KPC9wPgoKe2lmIGNvdW50KCRlbnRyaWVzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8dGFibGUgY2xhc3M9InBhZ2V0YWJsZSIgY2VsbHNwYWNpbmc9IjAiPgogICAgPHRoZWFkPgogICAgICA8dHI+CiAgICAgICAgPHRoIHdpZHRoPSIyJSI+eyRtb2QtPkxhbmcoJ2lkJyl9PC90aD4KICAgICAgICA8dGg+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeScpfTwvdGg+CiAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgIHtmb3JlYWNoIGZyb209JGVudHJpZXMgaXRlbT0nb25lZW50cnknfQogICAgICB7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQogICAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJPHRkPnskb25lZW50cnkuaWR9PC90ZD4KICAgICAgICA8dGQ+e2NncmVwZWF0IHRleHQ9JyZuYnNwOyZndDsmbmJzcDsnIGNvdW50PSRvbmVlbnRyeS5kZXB0aH08YSBocmVmPSJ7JG9uZWVudHJ5LmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0X2hpZXJhcmNoeV9pdGVtJyl9Ij57JG9uZWVudHJ5Lm5hbWV9PC9hPjwvdGQ+CiAgICAgICAgPHRkPnskb25lZW50cnkuZWRpdF9saW5rfTwvdGQ+CiAgICAgICAgPHRkPnskb25lZW50cnkuZGVsZXRlX2xpbmt9PC90ZD4KICAgICAgPC90cj4KICAgIHsvZm9yZWFjaH0KICAgIDwvdGJvZHk+CiAgPC90YWJsZT4KPC9kaXY+CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_reorder_hierarchy.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBwYXJzZVRyZWUodWwpIHsKCXZhciB0YWdzID0gW107Cgl1bC5jaGlsZHJlbigibGkiKS5lYWNoKGZ1bmN0aW9uKCl7CgkJdmFyIHN1YnRyZWUgPQkkKHRoaXMpLmNoaWxkcmVuKCJ1bCIpOwoJCWlmKHN1YnRyZWUuc2l6ZSgpID4gMCkKCQkJdGFncy5wdXNoKFskKHRoaXMpLmF0dHIoImlkIiksIHBhcnNlVHJlZShzdWJ0cmVlKV0pOwoJCWVsc2UKCQkJdGFncy5wdXNoKCQodGhpcykuYXR0cigiaWQiKSk7Cgl9KTsKCXJldHVybiB0YWdzOwp9CgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHsKICAkKCd1bC5zb3J0YWJsZScpLm5lc3RlZFNvcnRhYmxlKHsKICAgICBkaXNhYmxlTmVzdGluZzogJ25vLW5lc3QnLAogICAgIGZvcmNlUGxhY2Vob2xkZXJTaXplOiB0cnVlLAogICAgIGhhbmRsZTogJ2RpdicsCiAgICAgaXRlbXM6ICdsaScsCiAgICAgb3BhY2l0eTogNiwKICAgICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyJywKICAgICB0YWJTaXplOiAzNSwKICAgICB0b2xlcmFuY2U6ICdwb2ludGVyJywKICAgICBsaXN0VHlwZTogJ3VsJywKICAgICB0b2xlcmFuY2VFbGVtZW50OiAnPiBkaXYnCiAgfSk7CgogICQoJyNzdWJtaXRfYnRuJykubGl2ZSgnY2xpY2snLGZ1bmN0aW9uKCl7CiAgICAgdmFyIHRyZWUgPSAkLnRvSlNPTihwYXJzZVRyZWUoJCgndWwuc29ydGFibGUnKSkpOwogICAgICQoJyNvcmRlcmRhdGEnKS52YWwodHJlZSk7CiAgfSk7Cgp9KTsKPC9zY3JpcHQ+Cgp7ZnVuY3Rpb24gZHJhd19oaWVyYXJjaHkgZGVwdGg9MH0KICA8dWwgY2xhc3M9InNvcnRhYmxlTGlzdCB7aWYgJGRlcHRoPT0wfXNvcnRhYmxley9pZn0iPgogIHtmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09J2l0ZW0nfQogICAge2lmICRpdGVtLnBhcmVudF9pZCA9PSAtMX0KICAgICAge2Fzc2lnbiB2YXI9ImRlcHRoIiB2YWx1ZT0iMCJ9CiAgICB7L2lmfQogICAgPGxpIGlkPSJoaWVyX3skaXRlbS5pZH0iPjxkaXYgY2xhc3M9ImxhYmVsIj48c3Bhbj4mbmJzcDs8L3NwYW4+eyRpdGVtLm5hbWV9PC9kaXY+CiAgICAgIHtpZiBpc3NldCgkaXRlbS5jaGlsZHJlbil9CiAgICAgICAge2RyYXdfaGllcmFyY2h5IGRlcHRoPSRkZXB0aCsxIGl0ZW1zPSRpdGVtLmNoaWxkcmVufQogICAgICB7L2lmfQogICAgPC9saT4KICB7L2ZvcmVhY2h9CiAgPC91bD4Key9mdW5jdGlvbn0KCjxoMz57JG1vZC0+TGFuZygncmVvcmRlcl9oaWVyYXJjaHknKX08L2gzPgo8ZGl2IGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2luZm9fcmVvcmRlcl9jb250ZW50Jyl9PC9kaXY+CnskZm9ybXN0YXJ0fQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfW9yZGVyZGF0YSIgdmFsdWU9IiIgaWQ9Im9yZGVyZGF0YSIvPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8ZGl2IGNsYXNzPSJyZW9yZGVyLXBhZ2VzIHBhZ2VpbnB1dCI+CiAgICB7ZHJhd19oaWVyYXJjaHkgaXRlbXM9JHRyZWV9CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCBpZD0ic3VibWl0X2J0biIgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/categorylist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KJChmdW5jdGlvbigpewogICAgJCgnYS5kZWxldGVjYXQnKS5jbGljayhmdW5jdGlvbihldil7CiAgICAgICAgcmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhcmV5b3VzdXJlJyl9Jyk7CiAgICB9KTsKfSkKPC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgIDxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249J2VkaXRjYXRlZ29yeSd9Ij57YWRtaW5faWNvbiBpY29uPSduZXdmb2xkZXIuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZGNhdGVnb3J5Jyl9PC9hPgo8L2Rpdj4KCntpZiAhZW1wdHkoJGl0ZW1zKX0KPHRhYmxlIGNsYXNzPSJwYWdldGFibGUiPgoJPHRoZWFkPgoJCTx0cj4KCQkJPHRoPnskbW9kLT5MYW5nKCdjYXRlZ29yeScpfTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+CiAgIDx0Ym9keT4KICAgICB7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQogICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgogICAgICAgIHtjbXNfYWN0aW9uX3VybCBhY3Rpb249J2VkaXRjYXRlZ29yeScgY2F0aWQ9JGVudHJ5LT5pZCBhc3NpZ249J2VkaXRfdXJsJ30KCTx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JGVudHJ5LT5uYW1lfTwvYT48L3RkPgoJPHRkPjxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249ZWRpdGNhdGVnb3J5ZmllbGRzIGNhdGlkPSRlbnRyeS0+aWR9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXRfY2F0ZWdvcnlfZmllbGRzJywkZW50cnktPm5hbWUpfSI+e2FkbWluX2ljb24gaWNvbj0nYXR0YWNobWVudC5naWYnfTwvYT48L3RkPgoJPHRkPjxhIGhyZWY9IntjbXNfYWN0aW9uX3VybCBhY3Rpb249Y29weWNhdGVnb3J5IGNhdGlkPSRlbnRyeS0+aWR9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2NvcHknKX0iPnthZG1pbl9pY29uIGljb249J2NvcHkuZ2lmJ308L2E+PC90ZD4KCTx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57YWRtaW5faWNvbiBpY29uPSdlZGl0LmdpZid9PC9hPjwvdGQ+Cgk8dGQ+PGEgY2xhc3M9ImRlbGV0ZWNhdCIgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1kZWxldGVjYXRlZ29yeSBjYXRpZD0kZW50cnktPmlkfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPnthZG1pbl9pY29uIGljb249J2RlbGV0ZS5naWYnfTwvYT48L3RkPgogICAgPC90cj4KICAgIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/copycategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdjb3B5X2NhdGVnb3J5Jyl9OiB7JGNhdGVnb3J5Lm5hbWV9PC9oMz4KeyRzdGFydGZvcm19CjxkaXY+eyRoaWRkZW59PC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnbmV3X2NhdGVnb3J5X25hbWUnKX08L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dG5hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH17JGNhbmNlbH08L3A+CjwvZGl2Pgp7JGVuZGZvcm19]]></data>
	</file>
	<file>
	  <filename>/templates/editcategory.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KJChmdW5jdGlvbigpewogICAkKCcjZWRpdGNhdGVnb3J5ZmllbGRzJykuY2xpY2soZnVuY3Rpb24oZXYpewogICAgICBldi5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB2YXIgdXJsID0gJ3tjbXNfYWN0aW9uX3VybCBhY3Rpb249ZWRpdGNhdGVnb3J5ZmllbGRzIGNhdGlkPSRjYXRlZ29yeS5pZCBmb3Jqcz0xfSc7CiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsOwogICB9KQp9KQo8L3NjcmlwdD4KCntpZiBlbXB0eSgkaGlkZGVuKX0KPGgzPnskbW9kLT5MYW5nKCdhZGRjYXRlZ29yeScpfTwvaDM+CntlbHNlfQo8aDM+eyRtb2QtPkxhbmcoJ2VkaXRfY2F0ZWdvcnknKX08L2gzPgp7L2lmfQoKe2Zvcm1fc3RhcnQgYWN0aW9uPWVkaXRjYXRlZ29yeSBjYXRpZD0kY2F0ZWdvcnkuaWR9CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImVkaXRjYXRlZ29yeWZpZWxkcyIgdmFsdWU9InskbW9kLT5MYW5nKCdlZGl0X2ZpZWxkcycpfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0X2NhdGVnb3J5X2ZpZWxkcycsJGNhdGVnb3J5Lm5hbWUpfSI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygnbmFtZScpfTo8L2xhYmVsPgogIDxpbnB1dCBjbGFzcz0iZ3JpZF85IiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JGNhdGVnb3J5Lm5hbWV9IiBtYXhsZW5ndGg9IjI1NSIgcmVxdWlyZWQvPgo8L2Rpdj4Ke2Zvcm1fZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/editcategoryfields.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2NhdGVnb3J5X2ZpZWxkcycsJGNhdGVnb3J5Lm5hbWUpfTwvaDM+Cgo8cCBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8YSBocmVmPSJ7Y21zX2FjdGlvbl91cmwgYWN0aW9uPSdhZGRjYXRlZ29yeWZpZWxkJyBjYXRpZD0kY2F0aWR9Ij57YWRtaW5faWNvbiBpY29uPSduZXdvYmplY3QuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZF9jYXRlZ29yeV9maWVsZDInKX08L2E+CiAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj0nZWRpdGNhdGVnb3J5JyBjYXRpZD0kY2F0aWR9Ij57YWRtaW5faWNvbiBpY29uPSdiYWNrLmdpZid9IHskbW9kLT5MYW5nKCdyZXR1cm4nKX08L2E+CjwvcD4KCntpZiBpc3NldCgkZmllbGRzKSAmJiBjb3VudCgkZmllbGRzKX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JG1vZC0+TGFuZygnbmFtZScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygndHlwZScpfTwvdGg+CiAgICAgIDx0aD57JG1vZC0+TGFuZygndmFsdWUnKX08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgPC90cj4KICA8L3RoZWFkPgogIDx0Ym9keT4KICB7Zm9yZWFjaCAkZmllbGRzIGFzICRvbmVmaWVsZCB9CiAgICAge2N5Y2xlIHZhbHVlcz0icm93MSxyb3cyIiBhc3NpZ249J3Jvd2NsYXNzJ30KICAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9Ij4KICAgICAgIHttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPWFkZGNhdGVnb3J5ZmllbGQgY2F0aWQ9JGNhdGVnb3J5LmlkIGZsZG5hbWU9JG9uZWZpZWxkLmZpZWxkX25hbWUgdXJsb25seT0xIGFzc2lnbj0nZWRpdF91cmwnfQogICAgICAge21vZHVsZV9hY3Rpb25fbGluayBhY3Rpb249ZGVsZXRlY2F0ZWdvcnlmaWVsZCBjYXRpZD0kY2F0ZWdvcnkuaWQgZmxkbmFtZT0kb25lZmllbGQuZmllbGRfbmFtZSB1cmxvbmx5PTEgYXNzaWduPSdkZWxfdXJsJ30KICAgICAgIDx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JG9uZWZpZWxkLmZpZWxkX25hbWV9PC9hPjwvdGQ+CiAgICAgICA8dGQ+eyRvbmVmaWVsZC5maWVsZF90eXBlfTwvdGQ+CiAgICAgICA8dGQ+eyRvbmVmaWVsZC5maWVsZF92YWx1ZXxzdHJpcF90YWdzfHN1bW1hcml6ZToxMH08L3RkPgogICAgICAgPHRkPgogICAgICAgICB7aWYgJG9uZWZpZWxkLmZpZWxkX29yZGVyID4gMX0KCSAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPW1vdmVjYXRlZ29yeWZpZWxkIGRpcj11cCBjYXRpZD0kY2F0ZWdvcnkuaWQgZmxkbmFtZT0kb25lZmllbGQuZmllbGRfbmFtZSB1cmxvbmx5PTF9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL3NvcnRfdXAuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnbW92ZV91cCcpfTwvYT4KCSB7L2lmfQogICAgICAgPC90ZD4KICAgICAgIDx0ZD4KICAgICAgICAge2lmICEkb25lZmllbGRAbGFzdH0KCSAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX2xpbmsgYWN0aW9uPW1vdmVjYXRlZ29yeWZpZWxkIGRpcj1kb3duIGNhdGlkPSRjYXRlZ29yeS5pZCBmbGRuYW1lPSRvbmVmaWVsZC5maWVsZF9uYW1lIHVybG9ubHk9MX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vc29ydF9kb3duLmdpZicgYWx0PSRtb2QtPkxhbmcoJ21vdmVfZG93bicpfTwvYT4KCSB7L2lmfQogICAgICAgPC90ZD4KICAgICAgIDx0ZD48YSBocmVmPSJ7JGVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2VkaXQuZ2lmJyBhbHQ9Jyd9PC9hPjwvdGQ+CiAgICAgICA8dGQ+PGEgaHJlZj0ieyRkZWxfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdkZWxldGUnKX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicgYWx0PScnfTwvYT48L3RkPgogICAgIDwvdHI+CiAgey9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+CjwvZGl2Pgp7L2lmfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/editfielddef.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRmaWVsZC5pZH0KPGgzPnskbW9kLT5MYW5nKCdlZGl0ZmllbGRkZWYnKX08L2gzPgp7ZWxzZX0KPGgzPnskbW9kLT5MYW5nKCdhZGRmaWVsZGRlZicpfTwvaDM+CnsvaWZ9Cgo8c2NyaXB0PgokKGZ1bmN0aW9uKCl7CiAgIHZhciBjYW5jZWxsZWQ7CiAgIHZhciBvcmlnX3R5cGUgPSAkKCcjdHlwZScpLnZhbCgpOwogICAkKCcjdHlwZScpLmNoYW5nZShmdW5jdGlvbigpewogICAgICAgdmFyIHZhbCA9ICQodGhpcykudmFsKCk7CiAgICAgICAkKCdbZGF0YS10eXBlXScpLmVhY2goZnVuY3Rpb24oKXsKICAgICAgICAgICB2YXIgZGF0ID0gJCh0aGlzKS5kYXRhKCd0eXBlJyk7CgkgICBpZiggZGF0ICE9IHZhbCApIHsKCSAgICAgICAkKHRoaXMpLmhpZGUoKTsKICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAkKHRoaXMpLnNob3coKTsKCSAgIH0KICAgICAgIH0pCiAgIH0pCgogICAkKCcjZWRpdGZpZWxkZGVmJykuc3VibWl0KGZ1bmN0aW9uKGV2KXsKICAgICAgaWYoIGNhbmNlbGxlZCApIHJldHVybiB0cnVlOwogICAgICB2YXIgdmFsID0gJCgnI3R5cGUnKS52YWwoKTsKICAgICAgaWYoIChvcmlnX3R5cGUgPT0gJ2ZpbGUnIHx8IG9yaWdfdHlwZSA9PSAnaW1hZ2UnKSAmJiB2YWwgIT0gb3JpZ190eXBlICkgewogICAgICAgICAgZXYucHJldmVudERlZmF1bHQoKTsKCSAgYWxlcnQoJ3skbW9kLT5MYW5nKCd3YXJuX2NoYW5nZV9maWVsZHR5cGUnKX0nKTsKICAgICAgfQogICAgICByZXR1cm4gdHJ1ZTsKICAgfSkKICAgJCgnI2NhbmNlbCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICAgIGNhbmNlbGxlZCA9IDE7CiAgIH0pCiAgICQoJyN0eXBlJykudHJpZ2dlcignY2hhbmdlJyk7Cn0pCjwvc2NyaXB0PgoKe2Zvcm1fc3RhcnQgZmRpZD0kZmllbGQuaWQgaWQ9ImVkaXRmaWVsZGRlZiJ9CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPip7JG1vZC0+TGFuZygnbmFtZScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JGZpZWxkLm5hbWV9IiBtYXhsZW5ndGg9IjI1NSIgcmVxdWlyZWQvPgogICAgIDxwIGNsYXNzPSJncmlkXzEyIj57JG1vZC0+TGFuZygnaW5mb19hbG51bW9ubHknKX08L3A+CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+KnskbW9kLT5MYW5nKCdwcm9tcHQnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfXByb21wdCIgdmFsdWU9InskZmllbGQucHJvbXB0fSIgbWF4bGVuZ3RoPSIyNTUiIHJlcXVpcmVkLz4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj4qeyRtb2QtPkxhbmcoJ3R5cGUnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHNlbGVjdCBjbGFzcz0iZ3JpZF8xMiIgaWQ9InR5cGUiIG5hbWU9InskYWN0aW9uaWR9dHlwZSI+e2h0bWxfb3B0aW9ucyBvcHRpb25zPSR0eXBlcyBzZWxlY3RlZD0kZmllbGQudHlwZX08L3NlbGVjdD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiIGRhdGEtdHlwZT0idGV4dGJveCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+KnskbW9kLT5MYW5nKCdtYXhsZW5ndGgnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPGlucHV0IGNsYXNzPSJncmlkXzEyIiB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW1heF9sZW5ndGgiIHZhbHVlPSJ7JGZpZWxkLm1heF9sZW5ndGh9Ii8+CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIiBkYXRhLXR5cGU9ImRyb3Bkb3duIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj4qeyRtb2QtPkxhbmcoJ2Ryb3Bkb3duX29wdGlvbnMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPHRleHRhcmVhIGNsYXNzPSJncmlkXzEyIiByb3dzPSI1IiBuYW1lPSJ7JGFjdGlvbmlkfW9wdGlvbnMiPnskZmllbGQub3B0aW9uc308L3RleHRhcmVhPgogICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX2Ryb3Bkb3duX29wdGlvbnMnKX08L3A+CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+KnskbW9kLT5MYW5nKCdwdWJsaWMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzEyIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9InskYWN0aW9uaWR9cHVibGljIiB2YWx1ZT0iMSIge2lmICRmaWVsZC5wdWJsaWN9Y2hlY2tlZHsvaWZ9Lz48L2xhYmVsPgogICAgPHAgY2xhc3M9ImdyaWRfMTIiPnskbW9kLT5MYW5nKCdpbmZvX3B1YmxpY2ZpZWxkJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jYW5jZWwiIHZhbHVlPSJ7JG1vZC0+TGFuZygnY2FuY2VsJyl9IiBpZD0iY2FuY2VsIiBmb3Jtbm92YWxpZGF0ZS8+CjwvZGl2Pgp7Zm9ybV9lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/editproduct.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnY3NzX2FkZH0KI2FsYnVtX2NvbnRhaW5lciB7CiAgIHBhZGRpbmc6IDJtbTsKICAgbWF4LWhlaWdodDogMTVjbTsKICAgb3ZlcmZsb3cteTogYXV0bzsKfQouYWxidW1fcm93IHsKICAgYm9yZGVyOiAxcHggc29saWQgZ3JheTsKICAgcGFkZGluZzogNXB4OwogICBtYXJnaW46IDVweDsKICAgZmxvYXQ6IGxlZnQ7CiAgIHdpZHRoOiAxMjBweDsKICAgaGVpZ2h0OiAxMTBweDsKfQouYWxidW1fdGh1bWIgewogICB3aWR0aDogIDEwMHB4OwogICBtYXgtaGVpZ2h0OiAxMDBweDsKfQouYWxidW1fZGVsZXRlIHsKICAgZmxvYXQ6IHJpZ2h0OwogICBjdXJzb3I6IHBvaW50ZXI7CiAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgbWFyZ2luOiAycHg7Cn0Key9jZ2Nzc19hZGR9Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CiAge2lmIGlzc2V0KCRjb21waWQpfQogICQoZG9jdW1lbnQpLm9uKCdjbGljaycsJyNlZGl0b3B0aW9ucycsZnVuY3Rpb24oKXsKICAgIGlmKCAhY29uZmlybSgneyRtb2QtPkxhbmcoJ2NvbmZpcm1fZWRpdG9wdGlvbnMnKX0nKSApIHJldHVybiBmYWxzZTsKICAgIHdpbmRvdy5sb2NhdGlvbiA9ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT1Qcm9kdWN0cyBhY3Rpb249J2FkbWluX2VkaXRfYXR0cmlicycgcHJvZGlkPSRjb21waWQganNmcmllbmRseT0xfSc7CiAgICByZXR1cm4gZmFsc2U7CiAgfSk7CiAgey9pZn0KCiAgaWYoICQuZmFuY3lib3ggKSAkKCcuZmFuY3lib3gnKS5mYW5jeWJveCgpOwogICQoJ3NwYW4uY2RhdXRvY29tcGxldGUgPiBpbnB1dCcpLmF1dG9jb21wbGV0ZSh7CiAgICBtaW5MZW5ndGg6IDIsCiAgICBzb3VyY2U6IGZ1bmN0aW9uKCByZXF1ZXN0LCByZXNwb25zZSApIHsKICAgICAgJC5hamF4KHsKICAgICAgICB0eXBlOiAnUE9TVCcsCiAgICAgICAgZGF0YVR5cGU6ICdqc29uJywKICAgICAgICB1cmw6ICd7bW9kdWxlX2FjdGlvbl9saW5rIG1vZHVsZT0nQ29tcGFueURpcmVjdG9yeScgYWN0aW9uPSdhamF4X3NlbGNvbXBhbnknIGpzZnJpZW5kbHk9MSBwYWdlbGltaXQ9MjB9JnNob3d0ZW1wbGF0ZT1mYWxzZScsCiAgICAgICAgZGF0YTogewogICAgICAgICAgYWRkaWQ6IDEsCgkgIHRlcm06IHJlcXVlc3QudGVybQogICAgICAgIH0sCglzdWNjZXNzOiBmdW5jdGlvbiggZGF0YSApIHsKCSAgcmVzcG9uc2UoZGF0YSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICB9KTsKfSk7Cjwvc2NyaXB0PgoKe2Zvcm1fc3RhcnQgY29tcGlkPSRjb21waWR9CntpZiAhZW1wdHkoJGNvbXBpZCl9CjxoMz57JG1vZC0+TGFuZygnZWRpdF9wcm9kdWN0Jyl9Jm5ic3A7KHskY29tcGlkfSk8L2gzPgp7ZWxzZX0KPGgzPnskbW9kLT5MYW5nKCdhZGRwcm9kdWN0Jyl9PC9oMz4Key9pZn0KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRoaWRkZW59CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIHtpZiAhZW1wdHkoJGNvbXBpZCl9PGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9ImVkaXRvcHRpb25zIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2VkaXRfb3B0aW9ucycpfSIvPnsvaWZ9CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iIGZvcm1ub3ZhbGlkYXRlLz4KICA8L3A+CjwvZGl2PgoKe2NnZV9zdGFydF90YWJzfQp7Y2dlX3RhYmhlYWRlciBuYW1lPSdtYWluJyBsYWJlbD0kbW9kLT5MYW5nKCdwcm9kdWN0X2luZm8nKX0Ke2lmICRjdXN0b21maWVsZHNjb3VudCBndCAwfXtjZ2VfdGFiaGVhZGVyIG5hbWU9J2ZpZWxkcycgbGFiZWw9JG1vZC0+TGFuZygnZmllbGRzJyl9ey9pZn0Ke2NnZV90YWJoZWFkZXIgbmFtZT0nYWxidW0nIGxhYmVsPSRtb2QtPkxhbmcoJ2FsYnVtJyl9CntjZ2VfdGFiaGVhZGVyIG5hbWU9J2FkdmFuY2VkJyBsYWJlbD0kbW9kLT5MYW5nKCdhZHZhbmNlZCcpfQoKe2NnZV90YWJjb250ZW50X3N0YXJ0IG5hbWU9J21haW4nfQo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bCBjZmwiPgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCduYW1lJyl9OjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icHJvZHVjdF9uYW1lIiBuYW1lPSJ7JGFjdGlvbmlkfXByb2R1Y3RfbmFtZSIgdmFsdWU9InskcHJvZHVjdF9uYW1lfSIgc2l6ZT0iNDAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcmljZScpfTo8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZ3JpZF85Ij57JGN1cnJlbmN5X3N5bWJvbH0KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InByb2R1Y3RfcHJpY2UiIG5hbWU9InskYWN0aW9uaWR9cHJpY2UiIHZhbHVlPSJ7JHByaWNlfSIgc2l6ZT0iMTAiIG1heGxlbmd0aD0iMTIiLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWRfMyI+eyRkZXRhaWxzdGV4dH06PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWRfOSI+eyRpbnB1dGRldGFpbHN9PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iZ3JpZF80Ij57KiByaWdodCBjb2x1bW4gKn0KICAgIHsqIHN0YXR1cyBmaWVsZCAqfQogICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgPGRpdiBjbGFzcz0iZ3JpZF8zIj57JHN0YXR1c3RleHR9OjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzkiPnskaW5wdXRzdGF0dXN9PC9kaXY+CiAgICA8L2Rpdj4KCiAgICB7KiB0aGUgaGllcmFyY2h5IHN0dWZmICp9CiAgICB7aWYgY291bnQoJGhpZXJhcmNoeV9pdGVtcyl9CiAgICAgIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICAgICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeV9wb3NpdGlvbicpfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9ImdyaWRfOSI+CgkgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1oaWVyYXJjaHkiIGlkPSJoaWVyYXJjaHkiPgoJICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz1hcnJheV9mbGlwKCRoaWVyYXJjaHlfaXRlbXMpIHNlbGVjdGVkPSRoaWVyYXJjaHlfcG9zfQoJICA8L3NlbGVjdD4KCTwvcD4KICAgICAgPC9kaXY+CiAgICB7L2lmfQoKICAgIHsqIGNhdGVnb3JpZXMgKn0KICAgIHtpZiAhZW1wdHkoJGFsbF9jYXRlZ29yaWVzKX0KICAgICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgICA8ZGl2IGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdjYXRlZ29yaWVzJyl9OjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImdyaWRfOSI+CgkgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jYXRlZ29yaWVzW10iIGlkPSJjYXRlZ29yaWVzIiBtdWx0aXBsZT0ibXVsdGlwbGUiPgoJICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kYWxsX2NhdGVnb3JpZXMgc2VsZWN0ZWQ9JHNlbF9jYXRlZ29yaWVzfQoJICA8L3NlbGVjdD4KCTwvZGl2PgogICAgICA8L2Rpdj4KICAgIHsvaWZ9CiAgPC9kaXY+CjwvZGl2PgoKeyogZGlzcGxheSBjdXN0b20gZmllbGRzICp9CntpZiAkY3VzdG9tZmllbGRzY291bnQgZ3QgMH0Ke2NnZV90YWJjb250ZW50X3N0YXJ0IG5hbWU9J2ZpZWxkcyd9CiAge2ZvcmVhY2ggZnJvbT0kY3VzdG9tZmllbGRzIGl0ZW09Y3VzdG9tZmllbGR9CiAgICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICA8cCBjbGFzcz0iZ3JpZF8zIj57aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT5wcm9tcHQpfXskY3VzdG9tZmllbGQtPnByb21wdH17ZWxzZX17JGN1c3RvbWZpZWxkLT5uYW1lfXsvaWZ9OjwvcD4KICAgICAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgICAgICB7aWYgaXNzZXQoJGN1c3RvbWZpZWxkLT52YWx1ZSl9CgkgIDxwIGNsYXNzPSJncmlkXzEyIj4KICAgICAgICAgIHtpZiAkY3VzdG9tZmllbGQtPnR5cGUgPT0gJ2ltYWdlJyAmJiAhZW1wdHkoJGN1c3RvbWZpZWxkLT51cmwpfQogICAgICAgICAgICAgIDxhIGhyZWY9InskY3VzdG9tZmllbGQtPnVybH0iIGNsYXNzPSJmYW5jeWJveCI+eyRjdXN0b21maWVsZC0+dmFsdWV9PC9hPgoJICB7ZWxzZWlmICFlbXB0eSgkY3VzdG9tZmllbGQtPnVybCkgJiYgJGN1c3RvbWZpZWxkLT50eXBlID09ICdmaWxlJ30KICAgICAgICAgICAgICA8YSBocmVmPSJ7JGN1c3RvbWZpZWxkLT51cmx9IiBjbGFzcz0iZmFuY3lib3giPnskY3VzdG9tZmllbGQtPnZhbHVlfTwvYT4KCSAgey9pZn0KICAgICAgICAgIHtpZiBpc3NldCgkY3VzdG9tZmllbGQtPmRlbGV0ZSl9CiAgICAgICAgICAgICAgeyRtb2QtPkxhbmcoJ2RlbGV0ZScpfSZuYnNwO3skY3VzdG9tZmllbGQtPmRlbGV0ZX0KICAgICAgICAgIHsvaWZ9CgkgIDwvcD4KICAgICAgICB7L2lmfQogICAgICAgIHtpZiBpc3NldCgkY3VzdG9tZmllbGQtPmhpZGRlbil9eyRjdXN0b21maWVsZC0+aGlkZGVufXsvaWZ9CiAgICAgICAgPHAgY2xhc3M9ImdyaWRfMTIiPgoJICB7aWYgJGN1c3RvbWZpZWxkLT50eXBlID09ICdmaWxlbGluayd9CiAJICAgIHtjZ2VfZmlsZXBpY2tlciBuYW1lPSRjdXN0b21maWVsZC0+bmFtZWF0dHIgdmFsdWU9JGN1c3RvbWZpZWxkLT52YWx1ZX0KCSAge2Vsc2VpZiAkY3VzdG9tZmllbGQtPmlucHV0X2JveH0KICAJICAgIHskY3VzdG9tZmllbGQtPmlucHV0X2JveH0KCSAgey9pZn0KICAgICAgICAgIHtpZiBpc3NldCgkY3VzdG9tZmllbGQtPmF0dHJpYnV0ZSl9PGJyLz57JGN1c3RvbWZpZWxkLT5hdHRyaWJ1dGV9ey9pZn0KCTwvcD4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICB7L2ZvcmVhY2h9CnsvaWZ9Cgp7Y2dlX3RhYmNvbnRlbnRfc3RhcnQgbmFtZT0nYWxidW0nfQogIHskYWxidW09JHByb2R1Y3QtPmdldF9leHRyYSgnYWxidW0nKX0KICA8c2NyaXB0PgogICAgZnVuY3Rpb24gbmV3X2ltYWdlKCB2YWwgKSB7CiAgICAgICB2YXIgY29udCA9ICQoJyNhbGJ1bV9za2VsJykuY2xvbmUoKTsKICAgICAgIGNvbnQucmVtb3ZlQXR0cignaWQnKS5zaG93KCk7CiAgICAgICAkKCcuYWxidW1faGlkZGVuJyxjb250KS52YWwodmFsKTsKICAgICAgICQoJy5hbGJ1bV90aHVtYicsY29udCkucHJvcCgnc3JjJywne3VwbG9hZHNfdXJsfS8nK3ZhbCk7CiAgICAgICAkKCcjYWxidW1fY29udGFpbmVyJykuYXBwZW5kKGNvbnQpOwogICAgfQogICAgJChmdW5jdGlvbigpewogICAgICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywnLmFsYnVtX2RlbGV0ZScsZnVuY3Rpb24oZXYpewogICAgICAgICAgJCh0aGlzKS5jbG9zZXN0KCcuYWxidW1fcm93JykucmVtb3ZlKCk7CiAgICAgICB9KTsKICAgICAgICQoZG9jdW1lbnQpLm9uKCdjbXNmcDpjaGFuZ2UnLCJbbmFtZT0nYWRkaW1hZ2UnXSIsZnVuY3Rpb24oZXYpewogICAgICAgICAgbmV3X2ltYWdlKCAkKHRoaXMpLnZhbCgpICk7CiAgICAgICAgICB2YXIgcGlja2VyID0gJCgiW25hbWU9J2FkZGltYWdlJ10iKTsKICAgICAgICAgIHBpY2tlci5maWxlcGlja2VyKCdvcHRpb24nLCd2YWx1ZScsJycpOwogICAgICAgfSk7CiAgICAgICB7aWYgIWVtcHR5KCRhbGJ1bSl9CiAgICAgICAgIHtmb3JlYWNoICRhbGJ1bSBhcyAkaW1hZ2V9CiAgICAgICAgIG5ld19pbWFnZSggJ3skaW1hZ2V9JyApOwogICAgICAgICB7L2ZvcmVhY2h9CiAgICAgICB7L2lmfQogICAgfSk7CiAgPC9zY3JpcHQ+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2FkZF9pbWFnZScpfTo8L2xhYmVsPgogICAgIHtjZ2VfZmlsZXBpY2tlciBuYW1lPSJhZGRpbWFnZSIgdHlwZT0naW1hZ2UnfQogIDwvZGl2PgogIDxkaXYgaWQ9ImFsYnVtX2NvbnRhaW5lciI+CiAgICAgPGRpdiBpZD0iYWxidW1fc2tlbCIgY2xhc3M9ImFsYnVtX3JvdyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJhbGJ1bV9kZWxldGUiPlg8L2Rpdj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGNsYXNzPSJhbGJ1bV9oaWRkZW4iIG5hbWU9InskYWN0aW9uaWR9YWxidW1bXSIvPgogICAgICAgIDxpbWcgY2xhc3M9ImFsYnVtX3RodW1iIi8+CiAgICAgPC9kaXY+CiAgPC9kaXY+CgoKe2NnZV90YWJjb250ZW50X3N0YXJ0IG5hbWU9J2FkdmFuY2VkJ30KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewogIC8vIHZhcmlhYmxlcwogIHZhciBwaWQgPSB7JGNvbXBpZHxkZWZhdWx0OjB9OwogIHZhciBtYW51YWxfdXJsc2x1ZyA9IHBpZDsKICB2YXIgZmluaXNoZWRfc2V0dXAgPSAwOwogIHZhciBhamF4X3RpbWVvdXQ7CiAgdmFyIGFqYXhfeGhyOwoKICAvLyBzZXR1cCBjdXJzb3IgZm9yIGFqYXggc3R1ZmYKICAkKCdmb3JtJykuYWpheFN0YXJ0KGZ1bmN0aW9uKCkgewogICAgJCgnKicpLmNzcygnY3Vyc29yJywncHJvZ3Jlc3MnKTsKICB9KTsKCiAgJCgnZm9ybScpLmFqYXhTdG9wKGZ1bmN0aW9uKCkgewogICAgJCgnKicpLmNzcygnY3Vyc29yJywnYXV0bycpOwogIH0pOwoKICBmdW5jdGlvbiBfYWpheF9nZXRzbHVnKCkgewogICAgIGlmKCB0eXBlb2YgYWpheF94aHIgIT0gJ3VuZGVmaW5lZCcgJiYgYWpheF94aHIgIT0gMCApIGFqYXhfeGhyLmFib3J0KCk7CiAgICAgdmFyICRuYW1lID0gJCgnI3Byb2R1Y3RfbmFtZScpOwogICAgIHZhciBmb3JtID0gJG5hbWUuY2xvc2VzdCgnZm9ybScpOwogICAgIHZhciBwbmFtZSA9ICRuYW1lLnZhbCgpOwogICAgIGFqYXhfeGhyID0gJC5hamF4KHsKICAgICAgICB1cmw6ICd7bW9kdWxlX2FjdGlvbl91cmwgYWN0aW9uPSdhZG1pbl9hamF4X2dldHNsdWcnIGZvcmFqYXg9MX0nLAoJbWV0aG9kOiAnUE9TVCcsCglkYXRhOiB7CgkgICd7JGFjdGlvbmlkfXBpZCc6ICBwaWQsCgkgICd7JGFjdGlvbmlkfW5hbWUnOiBwbmFtZSwKCSAgJ3skYWN0aW9uaWR9aGllcic6ICQoJyNoaWVyYXJjaHknKS52YWwoKSwKCSAgJ3skYWN0aW9uaWR9Y2F0cyc6ICQoJyNjYXRlZ29yaWVzJykudmFsKCksCgl9LAoJc3VjY2VzczogZnVuY3Rpb24oIHJlcyApIHsKCSAgICQoJyN1cmxzbHVnJykudmFsKHJlcyk7CgkgICBhamF4X3hociA9IDA7Cgl9CiAgICAgfSkKICB9CgogIGZ1bmN0aW9uIGFqYXhfZ2V0c2x1ZygpIHsKICAgICBpZiggIWZpbmlzaGVkX3NldHVwICkgcmV0dXJuOwogICAgIGlmKCBtYW51YWxfdXJsc2x1ZykgcmV0dXJuOwogICAgIGlmKCBhamF4X3RpbWVvdXQgIT0gdW5kZWZpbmVkICkgY2xlYXJUaW1lb3V0KGFqYXhfdGltZW91dCk7CiAgICAgYWpheF90aW1lb3V0ID0gc2V0VGltZW91dChfYWpheF9nZXRzbHVnLDUwMCk7CiAgfQoKICAkKCcjdXJsc2x1ZycpLmtleXVwKGZ1bmN0aW9uKCl7CiAgICAgbWFudWFsX3VybHNsdWcgPSAwOwogICAgIGlmKCAkKHRoaXMpLnZhbCgpICE9ICcnICkgbWFudWFsX3VybHNsdWcgPSAxOwogIH0pOwoKICAkKCcjcHJvZHVjdF9uYW1lJykua2V5dXAoZnVuY3Rpb24oKXsKICAgICAvLyBhamF4IGNhbGwgdG8gZ2V0IGEgdXJsIHNsdWcgZ2l2ZW4gYSB0ZW1wbGF0ZQogICAgIGFqYXhfZ2V0c2x1ZygpOwogIH0pOwoKICAkKCcjaGllcmFyY2h5LCNjYXRlZ29yaWVzJykuY2hhbmdlKGZ1bmN0aW9uKCl7CiAgICAgLy8gYWpheCBjYWxsIHRvIGdldCBhIHVybCBzbHVnIGdpdmVuIGEgdGVtcGxhdGUKICAgICBhamF4X2dldHNsdWcoKTsKICB9KQoKICBmaW5pc2hlZF9zZXR1cCA9IDE7Cn0pCjwvc2NyaXB0PgoKICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnZGlnaXRhbCcpfTo8L2xhYmVsPgogICAgIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgICA8c2VsZWN0IGNsYXNzPSJncmlkX18xMiIgbmFtZT0ieyRhY3Rpb25pZH1kaWdpdGFsIj57Y2dlX3llc25vX29wdGlvbnMgc2VsZWN0ZWQ9JHByb2R1Y3QtPmRpZ2l0YWx9PC9zZWxlY3Q+CiAgICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX2RpZ2l0YWwnKX0KICAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIHskc2t1X3JlcT0kbW9kLT5HZXRQcmVmZXJlbmNlKCdza3VyZXF1aXJlZCcpfQogICAgPHAgY2xhc3M9ImdyaWRfMyI+e2lmICRza3VfcmVxfSp7L2lmfXskbW9kLT5MYW5nKCdza3UnKX06PC9wPgogICAgPHAgY2xhc3M9ImdyaWRfOSI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXNrdSIgdmFsdWU9Inskc2t1fSIgbWF4bGVuZ3RoPSIyNSIge2lmICRza3VfcmVxfXJlcXVpcmVkey9pZn0vPgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3NrdScpfQogICAgPC9wPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPHAgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3dlaWdodCcpfSAoeyR3ZWlnaHR1bml0c30pOjwvcD4KICAgIDxwIGNsYXNzPSJncmlkXzkiPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH13ZWlnaHQiIHZhbHVlPSJ7JHdlaWdodH0iIHNpemU9IjgiIG1heGxlbmd0aD0iMTIiLz4KICAgIDwvcD4KICA8L2Rpdj4KCiAgPGhyLz4KICA8aDQ+eyRtb2QtPkxhbmcoJ290aGVyJyl9PC9oND4KCiAge2lmICFlbXB0eSgkZmV1X293bmVybGlzdCl9CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxkaXYgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ293bmVyJyl9OjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfW93bmVyIiBzdHlsZT0id2lkdGg6IDEwMCU7Ij4KICAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRmZXVfb3duZXJsaXN0IHNlbGVjdGVkPSRwcm9kdWN0LT5vd25lcn0KICAgICAgPC9zZWxlY3Q+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICB7L2lmfQogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICA8ZGl2IGNsYXNzPSJncmlkXzMiPnskdGF4YWJsZXRleHR9OjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgICAgPHNlbGVjdCBzdHlsZT0id2lkdGg6IDEwMCU7IiBuYW1lPSJ7JGFjdGlvbmlkfXRheGFibGUiPntjbXNfeWVzbm8gc2VsZWN0ZWQ9JHByb2R1Y3QtPnRheGFibGV9PC9zZWxlY3Q+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgeyRzZWFyY2hhYmxlPSRwcm9kdWN0LT5nZXRfZXh0cmEoJ3NlYXJjaGFibGUnLDEpfQogICAgPGRpdiBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnc2VhcmNoYWJsZScpfTo8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICAgIDxzZWxlY3Qgc3R5bGU9IndpZHRoOiAxMDAlOyIgbmFtZT0ieyRhY3Rpb25pZH1zZWFyY2hhYmxlIj57Y21zX3llc25vIHNlbGVjdGVkPSRzZWFyY2hhYmxlfTwvc2VsZWN0PgogICAgICA8YnIvPnskbW9kLT5MYW5nKCdpbmZvX3NlYXJjaGFibGUnKX08L3A+CiAgICA8L2Rpdj4KICA8ZGl2PgogIDxoci8+CgogIDxoND5VUkwgLyBTRU88L2g0PgogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICA8cCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygndXJsX3NsdWcnKX06PC9wPgogICAgPHAgY2xhc3M9ImdyaWRfOSI+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idXJsc2x1ZyIgbmFtZT0ieyRhY3Rpb25pZH11cmxzbHVnIiB2YWx1ZT0ieyR1cmxzbHVnfSIgc2l6ZT0iODAiLz4KICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb191cmxfc2x1ZycpfQogICAgPC9wPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICA8cCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygndXJsX2FsaWFzJyl9OjwvcD4KICAgIDxwIGNsYXNzPSJncmlkXzkiPnskaW5wdXRhbGlhc308YnIvPnskbW9kLT5MYW5nKCdpbmZvX3VybF9hbGlhcycpfTwvcD4KICA8L2Rpdj4Ke2NnZV9lbmRfdGFic30KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIgZm9ybW5vdmFsaWRhdGUvPgogIDwvcD4KPC9kaXY+Cntmb3JtX2VuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/edit_attribsets.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGVfYXR0cmlic2V0c19mb3J9OiZuYnNwO3skcHJvZHVjdF9uYW1lfTwvaDM+Cgp7aWYgJGl0ZW1jb3VudCA+IDB9Cjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+Cgk8dGhlYWQ+CgkJPHRyPgoJCQk8dGg+eyRpZHRleHR9PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnskbmFtZXRleHR9PC90aD4KCQkJPHRoPnskY291bnR0ZXh0fTwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJCTx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CgkJPC90cj4KCTwvdGhlYWQ+Cgk8dGJvZHk+Cntmb3JlYWNoIGZyb209JGl0ZW1zIGl0ZW09ZW50cnl9Cgl7Y3ljbGUgdmFsdWVzPSJyb3cxLHJvdzIiIGFzc2lnbj0ncm93Y2xhc3MnfQoJCTx0ciBjbGFzcz0ieyRyb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRyb3djbGFzc30nOyI+CgkJCTx0ZD57JGVudHJ5LT5hdHRyaWJfc2V0X2lkfTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5hdHRyaWJfc2V0X25hbWV9PC90ZD4KCQkJPHRkPnskZW50cnktPmNvdW50fTwvdGQ+CgkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgeyRhZGRfbGlua30mbmJzcDt7JGNvcHlfbGlua30mbmJzcDt7JHJldHVybl9saW5rfQo8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/exportcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KJChmdW5jdGlvbigpewogICAkKGRvY3VtZW50KS5vbignY2xpY2snLCcjc3VibWl0JyxmdW5jdGlvbigpewogICAgICAkKCcjZm9ybXdyYXBwZXInKS5oaWRlKCk7CiAgICAgICQodGhpcykuaGlkZSgpOwogICB9KQp9KQo8L3NjcmlwdD4KCjxoMz57JG1vZC0+TGFuZygnZXhwb3J0X3RvX2NzdicpfTwvaDM+CnskZm9ybXN0YXJ0fQo8ZGl2IGlkPSJmb3Jtd3JhcHBlciI+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdleHBvcnRkZWxpbScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1leHBvcnRkZWxpbSIgdmFsdWU9Inskb3B0aW9ucy5leHBvcnRkZWxpbX0iIHNpemU9IjUiIG1heGxlbmd0aD0iNSIvPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdleHBvcnRkcmFmdCcpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWV4cG9ydGRyYWZ0IHNlbGVjdGVkPSRvcHRpb25zLmV4cG9ydGRyYWZ0fQogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdleHBvcnRjYXRzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZXhwb3J0Y2F0cyBzZWxlY3RlZD0kb3B0aW9ucy5leHBvcnRjYXRzfQogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdleHBvcnRmaWVsZHMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1leHBvcnRmaWVsZHMgc2VsZWN0ZWQ9JG9wdGlvbnMuZXhwb3J0ZmllbGRzfQogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdleHBvcnRvcHRpb25zJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9ZXhwb3J0b3B0aW9ucyBzZWxlY3RlZD0kb3B0aW9ucy5leHBvcnRvcHRpb25zfQogIDwvZGl2Pgo8L2Rpdj4KPC9kaXY+eyogI2Zvcm13cmFwcGVyICp9Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3N1Ym1pdCcpfSIvPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3JldHVybicpfSIvPgo8L2Rpdj4KeyRmb3JtZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/fielddeflist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdD4KJChmdW5jdGlvbigpewogICQoJyNmaWVsZGxpc3QnKS5jc3MoJ2N1cnNvcicsJ21vdmUnKTsKICAkKCcjZmllbGRsaXN0Jykuc29ydGFibGUoewogICAgICBjdXJzb3I6ICdtb3ZlJywKICAgICAgc3RvcDogZnVuY3Rpb24oZXZlbnQsdWkpIHsKICAgICAgICAgJCgnI3NhdmVfb3JkZXIsI3JldmVydF9vcmRlcicpLnNob3coKTsKICAgICAgfQogIH0pOwogICQoJyNyZXZlcnRfb3JkZXInKS5jbGljayhmdW5jdGlvbigpewogICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmKycmbTFfY2dfYWN0aXZldGFiPWZpZWxkZGVmcyc7CiAgfSk7CiAgJCgnI3NhdmVfb3JkZXInKS5jbGljayhmdW5jdGlvbigpewogICAgdmFyIGlkX29yZGVyID0gW107CiAgICAkKCcjZmllbGRsaXN0ID4gdHInKS5lYWNoKGZ1bmN0aW9uKCl7CiAgICAgICB2YXIgaWQgPSAkKHRoaXMpLmRhdGEoJ2lkJyk7CiAgICAgICBpZiggaWQgPCAxICkgcmV0dXJuOwogICAgICAgaWRfb3JkZXIucHVzaCggaWQgKTsKICAgIH0pOwogICAgJC5hamF4KHsKICAgICAgIHVybDogJ3tjbXNfYWN0aW9uX3VybCBhY3Rpb249YWRtaW5fYWpheF9vcmRlcmZpZWxkcyBmb3Jqcz0xfSZzaG93dGVtcGxhdGU9ZmFsc2UnLAogICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICBkYXRhOiB7CiAgICAgICAgICAgJ3skYWN0aW9uaWR9aWRsaXN0JyA6IGlkX29yZGVyLAogICAgICAgfQogICAgfSkuZG9uZShmdW5jdGlvbigpewogICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB3aW5kb3cubG9jYXRpb24uaHJlZisnJm0xX2NnX2FjdGl2ZXRhYj1maWVsZGRlZnMnOwogICAgfSkuZmFpbChmdW5jdGlvbigpewogICAgICAgYWxlcnQoJ2ZhaWwnKTsKICAgIH0pCiAgfSkKfSkKPC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJpbmZvcm1hdGlvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyI+eyRtb2QtPkxhbmcoJ2luZm9fZmllbGRkZWZzX3RhYicpfTwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3B0aW9ucyI+CiAgPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1lZGl0ZmllbGRkZWZ9Ij57YWRtaW5faWNvbiBpY29uPSduZXdvYmplY3QuZ2lmJ30geyRtb2QtPkxhbmcoJ2FkZGZpZWxkZGVmJyl9PC9hPgogIHtpZiAkaXRlbWNvdW50fQogICAgICA8YnV0dG9uIGlkPSJzYXZlX29yZGVyIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiLz57JG1vZC0+TGFuZygnc2F2ZScpfTwvYnV0dG9uPgogICAgICA8YnV0dG9uIGlkPSJyZXZlcnRfb3JkZXIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPnskbW9kLT5MYW5nKCdyZXZlcnQnKX08L2J1dHRvbj4KICB7L2lmfQo8L2Rpdj4KCntpZiAkaXRlbWNvdW50ID4gMH0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KCTx0aGVhZD4KCQk8dHI+CgkJCTx0aD57JG1vZC0+TGFuZygnaWQnKX08L3RoPgoJCQk8dGg+eyRmaWVsZGRlZnRleHR9PC90aD4KCQkJPHRoPnskdHlwZXRleHR9PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQkJPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KCQk8L3RyPgoJPC90aGVhZD4KCTx0Ym9keSBpZD0iZmllbGRsaXN0Ij4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCXtjeWNsZSB2YWx1ZXM9InJvdzEscm93MiIgYXNzaWduPSdyb3djbGFzcyd9CgkJPHRyIGRhdGEtaWQ9InskZW50cnktPmlkfSIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgoJCSAgICAgICAgPHRkPnskZW50cnktPmlkfTwvdGQ+CgkJCTx0ZD48YSBocmVmPSJ7JGVudHJ5LT5lZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdCcpfSI+eyRlbnRyeS0+bmFtZX08L2E+PC90ZD4KCQkJPHRkPnthc3NpZ24gdmFyPSd0bXAnIHZhbHVlPSRlbnRyeS0+dHlwZX17JGZpZWxkdHlwZXMuJHRtcH08L3RkPgoJCQk8dGQ+PGEgaHJlZj0ieyRlbnRyeS0+ZWRpdF91cmx9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2VkaXQuZ2lmJyBhbHQ9JG1vZC0+TGFuZygnZWRpdCcpfTwvYT48L3RkPgoJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCTwvdHI+CnsvZm9yZWFjaH0KCTwvdGJvZHk+CjwvdGFibGU+CnsvaWZ9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/importcsv.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfZnJvbV9jc3YnKX08L2gzPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojZXJyb3JibG9jayB7IGRpc3BsYXk6IG5vbmU7IH0KI29wdGlvbmJsb2NrIHsgZGlzcGxheTogbm9uZTsgfQojcHJvY2Vzc2Jsb2NrIHsgZGlzcGxheTogbm9uZTsgfQojcHJvZ3Jlc3MgeyB3aWR0aDogOTAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KPC9zdHlsZT4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KJChmdW5jdGlvbigpewogICQoJyNwcm9ncmVzcycpLnByb2dyZXNzYmFyKHsgdmFsdWU6IDAgfSk7CiAgJChkb2N1bWVudCkub24oJ2NsaWNrJywnI3JldHVybmJ0bicsZnVuY3Rpb24oKXsKICAgICB3aW5kb3cubG9jYXRpb24gPSAne2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1kZWZhdWx0YWRtaW4gbW9kdWxlPVByb2R1Y3RzIGZvcmpzPTF9JzsKICB9KTsKfSk7CmZ1bmN0aW9uIHByb2dyZXNzKHBjdCkgewogICQoJyNwcm9ncmVzcycpLnByb2dyZXNzYmFyKCd2YWx1ZScscGN0KTsKICAkKCcudWktcHJvZ3Jlc3NiYXItdmFsdWUnKS5odG1sKHBjdCsnJScpOwp9CmZ1bmN0aW9uIG9uRXJyb3Ioc3RyKSB7CiAgJCgnI2Vycm9yYmxvY2snKS5zaG93KCk7CiAgJCgnI2Vycm9ycycpLnZhbCgkKCcjZXJyb3JzJykudmFsKCkrc3RyKydcbicpOwp9CmZ1bmN0aW9uIGRvbmUoKSB7CiAgJCgnI29wdGlvbmJsb2NrJykuZmFkZUluKCk7Cn0KPC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3Byb2dyZXNzJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0IiBpZD0icHJvZ3Jlc3MiPjwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciIGlkPSJlcnJvcmJsb2NrIj4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdlcnJvcnMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHRleHRhcmVhIGlkPSJlcnJvcnMiIHJlYWRvbmx5PjwvdGV4dGFyZWE+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyIgaWQ9Im9wdGlvbmJsb2NrIj4KICA8cCBjbGFzcz0icGFnZXRleHQiPjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGlkPSJyZXR1cm5idG4iIHZhbHVlPSJ7JG1vZC0+TGFuZygncmV0dXJuJyl9Ii8+CiAgPC9wPgo8L2Rpdj4KCjxpZnJhbWUgc3JjPSJ7JHByb2Nlc3N1cmx9IiBpZD0icHJvY2Vzc2Jsb2NrIj48L2lmcmFtZT4=]]></data>
	</file>
	<file>
	  <filename>/templates/importproducts.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaW1wb3J0IHByb2R1Y3RzIGZvcm0gKn0KPGgzPnskbW9kLT5MYW5nKCdpbXBvcnRfZnJvbV9jc3YnKX08L2gzPgoKeyRmb3Jtc3RhcnR9CntpZiBpc3NldCgkbWVzc2FnZXMpfQogIDxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgICA8ZGl2IHN0eWxlPSJvdmVyZmxvdzogYXV0bzsgaGVpZ2h0OiAxMGVtOyB3aWR0aDogNzUlOyBtYXJnaW4tbGVmdDogNWVtOyBib3JkZXI6IDFweCBkYXNoZWQgI2NjYzsiLz4KICAgIHtzdHJpcH0KICAgIHtmb3JlYWNoIGZyb209JG1lc3NhZ2VzIGl0ZW09J29uZSd9CiAgICAgIHskb25lfTxici8+CiAgICB7L2ZvcmVhY2h9CiAgICB7L3N0cmlwfQogICAgPC9kaXY+CiAgPC9kaXY+CntlbHNlaWYgaXNzZXQoJGVycm9ycyl9CiAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIDxkaXYgc3R5bGU9Im92ZXJmbG93OiBhdXRvOyBoZWlnaHQ6IDEwZW07IHdpZHRoOiA3NSU7IG1hcmdpbi1sZWZ0OiA1ZW07IGJvcmRlcjogMXB4IGRhc2hlZCAjY2NjOyIvPgogICAge3N0cmlwfQogICAge2ZvcmVhY2ggZnJvbT0kZXJyb3JzIGl0ZW09J29uZSd9CiAgICAgIHskb25lfTxici8+CiAgICB7L2ZvcmVhY2h9CiAgICB7L3N0cmlwfQogICAgPC9kaXY+CiAgPC9kaXY+CnsvaWZ9Cgp7aWYgIWlzc2V0KCRjc3ZmaWxlKX0KICB7KiBkaXNwbGF5IHRoZSBmb3JtICp9CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMiI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZWxpbWl0ZXInKX06PC9sYWJlbD4+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWRlbGltaXRlciIgdmFsdWU9InskZGVsaW1pdGVyfSIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSIxMCIvPgogICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9fZGVsaW1pdGVyJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfY3JlYXRlZmllbGRzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jcmVhdGVmaWVsZHMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vIHNlbGVjdGVkPSRmbGFnX2NyZWF0ZWZpZWxkc30KICAgIDwvc2VsZWN0PgogICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9fY3JlYXRlZmllbGRzJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfaGFuZGxlaW1hZ2VzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1oYW5kbGVpbWFnZXMiPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JHllc25vIHNlbGVjdGVkPSRmbGFnX2hhbmRsZWltYWdlc30KICAgIDwvc2VsZWN0PgogICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9faGFuZGxlaW1hZ2VzJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfaW1hZ2VwYXRoJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWltYWdlcGF0aCIgdmFsdWU9InskaW1hZ2VwYXRofSIgc2l6ZT0iNjAiLz4KICAgIDxwPnskbW9kLT5MYW5nKCdpbmZvX2ltYWdlcGF0aCcpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2NyZWF0ZWhpZXJhcmNoeScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3JlYXRlaGllcmFyY2h5Ij4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSR5ZXNubyBzZWxlY3RlZD0kZmxhZ19jcmVhdGVoaWVyYXJjaHl9CiAgICA8L3NlbGVjdD4KICAgIDxwPnskbW9kLT5MYW5nKCdpbmZvX2NyZWF0ZWhpZXJhcmNoeScpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2NyZWF0ZWNhdGVnb3JpZXMnKX08L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y3JlYXRlY2F0ZWdvcmllcyI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0keWVzbm8gc2VsZWN0ZWQ9JGZsYWdfY3JlYXRlY2F0ZWdvcmllc30KICAgIDwvc2VsZWN0PgogICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9fY3JlYXRlY2F0ZWdvcmllcycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2R1cGxpY2F0ZXByb2R1Y3RzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1kdXBsaWNhdGVwcm9kdWN0cyI+CiAgICAgICA8b3B0aW9uIGxhYmVsPSJ7JG1vZC0+TGFuZygnbGFiZWxfc2tpcCcpfSIgdmFsdWU9InNraXAiIHtpZiAkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyBlcSAic2tpcCJ9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskbW9kLT5MYW5nKCdsYWJlbF9za2lwJyl9PC9vcHRpb24+CiAgICAgICA8b3B0aW9uIGxhYmVsPSJ7JG1vZC0+TGFuZygnbGFiZWxfdXBkYXRlJyl9IiB2YWx1ZT0idXBkYXRlIiB7aWYgJGZsYWdfZHVwbGljYXRlcHJvZHVjdHMgZXEgInVwZGF0ZSJ9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskbW9kLT5MYW5nKCdsYWJlbF91cGRhdGUnKX08L29wdGlvbj4KICAgICAgIDxvcHRpb24gbGFiZWw9InskbW9kLT5MYW5nKCdsYWJlbF9vdmVyd3JpdGUnKX0iIHZhbHVlPSJvdmVyd3JpdGUiIHtpZiAkZmxhZ19kdXBsaWNhdGVwcm9kdWN0cyBlcSAib3ZlcndyaXRlIn1zZWxlY3RlZD0ic2VsZWN0ZWQiey9pZn0+eyRtb2QtPkxhbmcoJ2xhYmVsX292ZXJ3cml0ZScpfTwvb3B0aW9uPgogICAgPC9zZWxlY3Q+CiAgICA8cD57JG1vZC0+TGFuZygnaW5mb19kdXBsaWNhdGVwcm9kdWN0cycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2JhdGNoc2l6ZScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1iYXRjaHNpemUiIHZhbHVlPSJ7JGJhdGNoc2l6ZX0iIHNpemU9IjMiIG1heGxlbmd0aD0iMyIvPgogICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9fYmF0Y2hzaXplJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfY2xlYXJmaWVsZHMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAge2NnZV95ZXNub19vcHRpb25zIHByZWZpeD0kYWN0aW9uaWQgbmFtZT1jbGVhcmZpZWxkcyBzZWxlY3RlZD0kY2xlYXJmaWVsZHN9CiAgICA8cD57JG1vZC0+TGFuZygnaW5mb19jbGVhcmZpZWxkcycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8yIj57JG1vZC0+TGFuZygncHJvbXB0X2NsZWFyYXR0cmlicycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICB7Y2dlX3llc25vX29wdGlvbnMgcHJlZml4PSRhY3Rpb25pZCBuYW1lPWNsZWFyYXR0cmlicyBzZWxlY3RlZD0kY2xlYXJhdHRyaWJzfQogICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9fY2xlYXJhdHRyaWJzJyl9PC9wPgogIDwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfY2xlYXJjYXRlZ29yaWVzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF85Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9Y2xlYXJjYXRlZ29yaWVzIHNlbGVjdGVkPSRjbGVhcmNhdGVnb3JpZXN9CiAgICA8cD57JG1vZC0+TGFuZygnaW5mb19jbGVhcmNhdGVnb3JpZXMnKX08L3A+CiAgPC9kaXY+CjwvZGl2PgoKey9pZn0KCjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzIiPnskbW9kLT5MYW5nKCdwcm9tcHRfY3N2ZmlsZScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOSI+CiAgICB7aWYgaXNzZXQoJGNzdmZpbGUpfQogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9Y3N2ZmlsZSIgdmFsdWU9InskY3N2ZmlsZX0iIHJlYWRvbmx5PXJlYWRvbmx5Lz4KICAgIHtlbHNlfQogICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9InskYWN0aW9uaWR9Y3N2ZmlsZSIgdmFsdWU9IiIgc2l6ZT0iNjAiLz4KICAgIHsvaWZ9CiAgPC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8ZGl2IGNsYXNzPSJncmlkXzkiPgogICAge2lmIGlzc2V0KCRjc3ZmaWxlKX0KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Z28iIHZhbHVlPSJ7JG1vZC0+TGFuZygnZ28nKX0iIG9uY2xpY2s9InJldHVybiBjb25maXJtKCd7JG1vZC0+TGFuZygnY29uZmlybV9pbXBvcnQnKX0nKTsiLz4KICAgIHtlbHNlfQogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH10ZXN0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ3Rlc3QnKX0iLz4KICAgIHsvaWZ9CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L2Rpdj4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_byhierarchy_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogaGllcmFyY2h5IHJlcG9ydCB0ZW1wbGF0ZSAqfQp7aWYgIWlzc2V0KCRoZGVwdGgpICYmIGlzc2V0KCRoaWVyYXJjaHlfaXRlbSl9CjxoMz5IaWVyYXJjaHkgRGF0YSBmb3IgeyRoaWVyYXJjaHlfaXRlbS5uYW1lfSAoeyRoaWVyYXJjaHlfaXRlbS5pZH0pPC9oMz4KPHA+PGEgaHJlZj0ieyRoaWVyYXJjaHlfaXRlbS5wYXJlbnRfdXJsfSI+VXA8L2E+PC9wPgp7L2lmfQoKe2lmICFpc3NldCgkaGRlcHRoKX17YXNzaWduIHZhcj0naGRlcHRoJyB2YWx1ZT0nMCd9ey9pZn0KCnsqCiAvLyBjcmVhdGUgYSBuZXN0ZWQgc2V0IG9mIHVub3JkZXJlZCBsaXN0cwogLy8gaWYgdGhlIGFjdGl2ZV9oaWVyYXJjaHkgc21hcnR5IHZhcmlhYmxlIGV4aXN0cwogLy8gYW5kIG1hdGNoZXMgdGhlIGN1cnJlbnQgaGllcmFyY2h5IGlkCiAvLyB0aGUgYWN0aXZlIGNsYXNzIHdpbGwgYmUgZ2l2ZW4KIC8vIHRvIHRoZSB1bC4gIFlvdSBtYXkgd2FudCB0byBtb2RpZnkgeW91ciBzdW1tYXJ5IHRlbXBsYXRlCiAvLyB0byBzZXQgdGhpcyB2YXJpYWJsZQoqfQo8dWwge2lmICRoZGVwdGggPT0gMH1pZD0icHJvZHVjdHNfaGllcmFyY2h5InsvaWZ9IGNsYXNzPSJwcm9kdWN0c19oaWVyYXJjaHlfbGV2ZWx7JGhkZXB0aH0iPgp7Zm9yZWFjaCBmcm9tPSRoaWVyZGF0YSBrZXk9J2tleScgaXRlbT0naXRlbSd9CntzdHJpcH0KICB7JGNsYXNzPSdwcm9kdWN0X2hpZXInfQogIHtpZiBpc3NldCgkYWN0aXZlX2hpZXJhcmNoeSkgYW5kICRpdGVtLmlkID09ICRhY3RpdmVfaGllcmFyY2h5fXskY2xhc3M9JGNsYXNzfGNhdDonIGFjdGl2ZSd9ey9pZn0KICB7aWYgaXNzZXQoJGl0ZW0uY2hpbGRyZW4pfXskY2xhc3M9JGNsYXNzfGNhdDonIHBhcmVudCd9ey9pZn0KICA8bGl7aWYgJGNsYXNzICE9ICcnfSBjbGFzcz0ieyRjbGFzc30iey9pZn0+CgogIHtpZiBpc3NldCgkaXRlbS5jaGlsZHJlbil9CiAgICA8YSBocmVmPSJ7JGl0ZW0uZG93bl91cmx9Ij57JGl0ZW0ubmFtZX08L2E+CiAge2Vsc2V9CiAgICB7JGl0ZW0ubmFtZX0KICB7L2lmfQogICZuYnNwOyZuYnNwOwogIHtpZiAkbm9jaGlsZHJlbn0KICAgIHsqIG5vdCBkaXNwbGF5aW5nIGNoaWxkIGhpZXJhcmNoeSBwcm9kdWN0cyAqfQogICAge2lmICRpdGVtLmRpcmVjdF9jb3VudCBndCAwfQogICAgICA8YSBocmVmPSJ7JGl0ZW0udXJsfSI+VmlldyAoeyRpdGVtLmRpcmVjdF9jb3VudH0pIGl0ZW1zPC9hPgogICAge2Vsc2V9CiAgICAgIHskaXRlbS5uYW1lfSAoeyRpdGVtLmNvdW50fSkKICAgIHsvaWZ9CiAge2Vsc2VpZiAkaXRlbS5jb3VudCBndCAwfQogICAgPGEgaHJlZj0ieyRpdGVtLnVybH0iPlZpZXcgKHskaXRlbS5jb3VudH0pIGl0ZW1zPC9hPgogIHtlbHNlfQogICB7JGl0ZW0ubmFtZX0gKHskaXRlbS5jb3VudH0pCiAgey9pZn0KCiAgPC9saT4Key9zdHJpcH0Key9mb3JlYWNofQo8L3VsPg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_categorylist_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icHJvZHVjdHNfY2F0ZWdvcnlfbGlzdCI+CntpZiBpc3NldCgkY2F0ZWdvcnlsaXN0KSAmJiBjb3VudCgkY2F0ZWdvcnlsaXN0KX0KICB7Zm9yZWFjaCBmcm9tPSRjYXRlZ29yeWxpc3QgaXRlbT0nb2JqJ30KICA8ZGl2IGNsYXNzPSJwcm9kdWN0c19jYXRlZ29yeSI+CiAgICB7KiBjYXRlZ29yeSBmaWVsZHMgYXJlIGF2YWlsYWJsZSBhcyBhbiBhcnJheSBpbiAkb2JqLT5maWVsZHMgKn0KICAgIHsqIGkuZTogJG9iai0+ZmllbGRzLmZpZWxkbmFtZS5maWVsZF92YWx1ZSAqfQogICAge2lmIGlzc2V0KCRvYmotPmZpZWxkcyl9CiAgICB7Zm9yZWFjaCBmcm9tPSRvYmotPmZpZWxkcyBrZXk9J2ZpZWxkX25hbWUnIGl0ZW09J2ZpZWxkZGF0YSd9CiAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3RzX2NhdGVnb3J5X2ZpZWxkIj4KICAgICAgICB7JGZpZWxkZGF0YS5maWVsZF9wcm9tcHR9ID0geyRmaWVsZGRhdGEuZmllbGRfdmFsdWV9CiAgICAgIDwvZGl2PgogICAgey9mb3JlYWNofQogICAgey9pZn0KICAgIHtpZiBpc3NldCgkb2JqLT5kZXRhaWxfdXJsKX0KICAgICAgPGEgaHJlZj0ieyRvYmotPmRldGFpbF91cmx9Ij5EZXRhaWxzIEZvciB7JG9iai0+bmFtZX08L2E+Jm5ic3A7Jm5ic3A7CiAgICB7L2lmfQogICAgPGEgaHJlZj0ieyRvYmotPnN1bW1hcnlfdXJsfSI+UHJvZHVjdHMgTWF0Y2hpbmcgeyRvYmotPm5hbWV9PC9hPih7JG9iai0+Y291bnR9KQogIDwvZGl2PgogIHsvZm9yZWFjaH0Ke2Vsc2V9CiAge2NnZXJyb3J9Tm8gZGF0YSB0byBkaXNwbGF5ey9jZ2Vycm9yfQp7L2lmfQo8L2Rpdj4K]]></data>
	</file>
	<file>
	  <filename>/templates/orig_detail_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogdGhpcyBpcyBhIHNhbXBsZSBwcm9kdWN0IGRldGFpbCB0ZW1wbGF0ZSAqfQo8ZGl2IGNsYXNzPSJQcm9kdWN0RGlyZWN0b3J5SXRlbSI+Cgp7KiBzZXQgYSBjYW5vbmljYWwgdXJsICp9CntpZiAkZW50cnktPmRldGFpbF91cmwgIT0gJyd9e2Fzc2lnbiB2YXI9J2Nhbm9uaWNhbCcgc2NvcGU9Z2xvYmFsIHZhbHVlPSRlbnRyeS0+ZGV0YWlsX3VybH17L2lmfQoKeyogbm90ZToge2NvbnRlbnR9IG11c3QgYmUgY2FsbGVkIGJlZm9yZSB0aGUgaGllcmFyY2h5IHZpZXcgaXMgY2FsbGVkICp9CntpZiAkZW50cnktPmhpZXJhcmNoeV9pZCA+IDB9e2Fzc2lnbiB2YXI9J2FjdGl2ZV9oaWVyYXJjaHknIHNjb3BlPWdsb2JhbCB2YWx1ZT0kZW50cnktPmhpZXJhcmNoeV9pZH17L2lmfQoKe2lmICRlbnRyeS0+YnJlYWRjcnVtYn0KPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMiI+QnJlYWRjcnVtYjo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAiPnskZW50cnktPmJyZWFkY3J1bWJ9PC9kaXY+CjwvZGl2Pgp7L2lmfQoKPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMiI+TmFtZTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAiPgogICAgPGEgbmFtZT0icHJvZHVjdF9uYW1lIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25lOyI+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfTwvYT4KICA8L2Rpdj4KPC9kaXY+Cgp7aWYgJGVudHJ5LT5wcmljZSBndCAwfQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxkaXYgY2xhc3M9ImNvbC1zbS0yIj57JG1vZC0+TGFuZygncHJpY2UnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj4KICAgIHtwcm9kdWN0X29wczo6Z2V0X2N1cnJlbmN5X3N5bWJvbCgpfXskZW50cnktPnByaWNlfGFzX251bToyfQogIDwvZGl2Pgo8L2Rpdj4KCiAgeyogdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZSBpZiB0aGUgUHJvbW90aW9ucyBtb2R1bGUgaXMgaW5zdGFsbGVkICp9CiAgeyogcHJvbW9fZ2V0X3Byb2RfZGlzY291bnQgcHJvZHVjdF9pZD0kZW50cnktPmlkIGFzc2lnbj0nZm9vJyAqfQogIHtpZiBpc3NldCgkZm9vLnByb21vX2lkKX0KICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTIiPgogICAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJlZDsiPkRpc2NvdW50Ojwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj4KICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij57cHJvZHVjdF9vcHM6OmdldF9jdXJyZW5jeV9zeW1ib2woKX17JGZvby5kaXNjb3VudHxhc19udW06Mn0gKHskZm9vLnBlcmNlbnRhZ2V8YXNfbnVtOjJ9JSk8L3NwYW4+CiAgICA8L2Rpdj4KICA8L2Rpdj4KICB7L2lmfQp7L2lmfQoKe2lmICRlbnRyeS0+d2VpZ2h0IGd0IDB9CjxkaXYgY2xhc3M9InJvdyI+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTIiPnskbW9kLT5MYW5nKCd3ZWlnaHQnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj4KICAgIHskZW50cnktPndlaWdodHxhc19udW06Mn0ge3Byb2R1Y3Rfb3BzOjpnZXRfd2VpZ2h0X3VuaXRzKCl9CiAgPC9kaXY+CjwvZGl2Pgp7L2lmfQoKe2lmICRlbnRyeS0+ZGV0YWlscyBuZSAnJ30KPGRpdiBjbGFzcz0icm93Ij4KICA8ZGl2IGNsYXNzPSJjb2wtc20tMiI+eyRtb2QtPkxhbmcoJ2RldGFpbHMnKX06PC9kaXY+CiAgPGRpdiBjbGFzcz0iY29sLXNtLTEwIj4KICAgIHskZW50cnktPmRldGFpbHN9CiAgPC9kaXY+CjwvZGl2Pgp7L2lmfQoKeyogYWNjZXNzaW5nIGFsbCBvZiB0aGUgZmllbGRzIGluIGEgbGlzdCAqfQp7aWYgaXNzZXQoJGVudHJ5LT5maWVsZHMpICYmIGNvdW50KCRlbnRyeS0+ZmllbGRzKX0KICA8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPkN1c3RvbSBGaWVsZHM8L2xlZ2VuZD4KICAgIHtmb3JlYWNoICRlbnRyeS0+ZmllbGRzIGFzICRmaWVsZH0KICAgICAgIDxkaXYgY2xhc3M9InJvdyBwcm9kdWN0X2RldGFpbF9maWVsZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMiI+eyRmaWVsZC0+bmFtZX06PC9kaXY+CgkgIDxkaXYgY2xhc3M9ImNvbC1zbS0xMCI+CiAgICAgICAgICAgIHskUHJvZHVjdHMtPmxhbmcoJ3R5cGUnKX06IHskZmllbGQtPnR5cGV9PGJyLz4KCSAgICB7aWYgIWlzX2FycmF5KCRmaWVsZC0+dmFsdWUpfQogICAgICAgICAgICAgIHskUHJvZHVjdHMtPmxhbmcoJ3ZhbHVlJyl9OiB7JGZpZWxkLT52YWx1ZX08YnIvPgoJICAgIHsvaWZ9CiAgICAgICAgICAgIHtpZiAkZmllbGQtPnR5cGUgPT0gJ2ltYWdlJyAmJiBpc3NldCgkZmllbGQtPnRodW1ibmFpbCl9CiAgICAgICAgICAgICAgPGltZyBzcmM9InskZW50cnktPmZpbGVfbG9jYXRpb259L3skZmllbGQtPnRodW1ibmFpbH0iIGFsdD0ieyRmaWVsZC0+dmFsdWV9Ii8+CiAgICAgICAgICAgIHsvaWZ9CgkgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgey9mb3JlYWNofQogIDwvZmllbGRzZXQ+CnsvaWZ9Cgp7KiBwcmludCBvdXQgYXR0cmlidXRlcyAqfQp7aWYgaXNzZXQoJGVudHJ5LT5hdHRyaWJ1dGVzKX0KICA8ZmllbGRzZXQ+CiAgICA8bGVnZW5kPkF0dHJpYnV0ZXM8L2xlZ2VuZD4KICAgIDx0YWJsZT4KICAgICAgPHRoZWFkPgogICAgICAgIDx0cj4KICAgICAgICAgIDx0aD5UZXh0PC90aD4KICAgICAgICAgIDx0aD5Ta3U8L3RoPgogICAgICAgICAgPHRoPkFkanVzdG1lbnQ8L3RoPgogICAgICAgIDwvdHI+CiAgICAgIDwvdGhlYWQ+CiAgICAgIDx0Ym9keT4KICAgICAge2ZvcmVhY2ggZnJvbT0kZW50cnktPmF0dHJpYnV0ZXMga2V5PSduYW1lJyBpdGVtPSdhdHRyaWInfQogICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD57JGF0dHJpYi50ZXh0fTwvdGQ+CiAgICAgICAgICA8dGQ+eyRhdHRyaWIuc2t1fTwvdGQ+CiAgICAgICAgICA8dGQ+eyRhdHRyaWIuYWRqdXN0bWVudH08L3RkPgogICAgICAgICA8L3RyPgogICAgICB7L2ZvcmVhY2h9CiAgICAgIDwvdGJvZHk+CiAgICA8L3RhYmxlPgogIDwvZmllbGRzZXQ+CnsvaWZ9Cgp7KiBwcmludCBvdXQgYSBsaW5rIHRvIGEgc3VtbWFyeSB2aWV3IG9mIGl0ZW1zIGluIHRoaXMgaGllcmFyY2h5LCBpZiB3ZSBoYXZlIGl0ICp9CntpZiAkZW50cnktPmhpZXJhcmNoeV9pZH0KICA8cD5JdGVtcyBpbiB0aGlzIGhpZXJhcmNoeTogPGEgaHJlZj0ie2Ntc19hY3Rpb25fdXJsIGFjdGlvbj1kZWZhdWx0IGhpZXJhcmNoeWlkPSRlbnRyeS0+aGllcmFyY2h5X2lkfSI+R288L2E+CnsvaWZ9Cgp7KiBwcmludCBvdXQgdGhlIGNhdGVnb3JpZXMgKn0Ke2lmIGlzc2V0KCRlbnRyeS0+Y2F0ZWdvcmllcyl9CiAgPGZpZWxkc2V0PgogICAgPGxlZ2VuZD5DYXRlZ29yaWVzOjwvbGVnZW5kPgogICAge2ZvcmVhY2ggJGVudHJ5LT5jYXRlZ29yaWVzIGFzICRjYXRlZ29yeX0KICAgIDxkaXYgY2xhc3M9InJvdyBwcm9kdWN0X2RldGFpbF9jYXRlZ29yeSI+PHA+CiAgICAgIHttb2R1bGVfYWN0aW9uX3VybCBjYXRlZ29yeWlkPSRjYXRlZ29yeS0+aWQgYXNzaWduPSdjYXRlZ29yeV92aWV3X3VybCd9CiAgICAgIDxkaXYgY2xhc3M9ImNvbC1zbS0yIj48YSBocmVmPSJ7JGNhdGVnb3J5X3ZpZXdfdXJsfSI+eyRjYXRlZ29yeS0+bmFtZX0gPGVtPihpZD17JGNhdGVnb3J5LT5pZH0pPC9lbT48L2E+OjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJjb2wtc20tMTAiPgogICAgICAgIHsqIGlmIHRoZXJlIGFyZSBkYXRhIGZpZWxkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjYXRlZ29yeSwgZGlzcGxheSB0aGVtIHRvbyAqfQogICAgICAgIHtpZiBpc3NldCgkY2F0ZWdvcnktPmRhdGEpICYmIGNvdW50KCRjYXRlZ29yeS0+ZGF0YSl9CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0X2RldGFpbF9jYXRlZ29yeV9maWVsZHMiPgogICAgICAgICAgICA8c3Ryb25nPnskUHJvZHVjdHMtPkxhbmcoJ2RhdGEnKX08L3N0cm9uZz48YnIvPgogICAgICAgICAgICB7Zm9yZWFjaCAkY2F0ZWdvcnktPmRhdGEgYXMgJG9uZWRhdGFpdGVtfQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3RfZGV0YWlsX2NhdGVnb3J5X29uZWZpZWxkIj4KICAgICAgICAgICAgICB7aWYgJG9uZWRhdGFpdGVtLmZpZWxkX3R5cGUgPT0gJ2ltYWdlJ30KICAgICAgICAgICAgICAgIDxhIGhyZWY9InskY2F0ZWdvcnktPmZpbGVfbG9jYXRpb259L3skb25lZGF0YWl0ZW0uZmllbGRfdmFsdWV9Ij48aW1nIHNyYz0ieyRjYXRlZ29yeS0+ZmlsZV9sb2NhdGlvbn0vdGh1bWJfeyRvbmVkYXRhaXRlbS5maWVsZF92YWx1ZX0iIGFsdD0idGh1bWIiIC8+PC9hPjxici8+CiAgICAgICAgICAgICAge2Vsc2VpZiAkb25lZGF0YWl0ZW0uZmllbGRfdHlwZSA9PSAnZmlsZSd9CiAgICAgICAgICAgICAgICA8YSBocmVmPSJ7JGNhdGVnb3J5LT5maWxlX2xvY2F0aW9ufS97JG9uZWRhdGFpdGVtLmZpZWxkX3ZhbHVlfSI+eyRvbmVkYXRhaXRlbS5maWVsZF92YWx1ZX08L2E+PGJyLz4KICAgICAgICAgICAgICB7ZWxzZX0KICAgICAgICAgICAgICAgIDxzdHJvbmc+eyRvbmVkYXRhaXRlbS5maWVsZF9wcm9tcHR9PC9zdHJvbmc+OiB7JG9uZWRhdGFpdGVtLmZpZWxkX3ZhbHVlfTxici8+CiAgICAgICAgICAgICAgey9pZn0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgey9mb3JlYWNofQogICAgICAgICAgPC9kaXY+CiAgICAgICAgey9pZn0KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIHsvZm9yZWFjaH0KICA8L2ZpZWxkc2V0Pgp7L2lmfQoKPGRpdj57KiAuUHJvZHVjdERpcmVjdG9yeUl0ZW0gKn0KCnsqIGRpc3BsYXkgdGhlIGNhcnQKe0NhcnQyIHNrdT0kZW50cnktPnNrdX0KKn0KCnsqIGFsYnVtLi4uIGlmIHdlIGhhdmUgYW55ICp9CntpZiAkZW50cnktPmFsYnVtfQogIDxkaXYgY2xhc3M9InJvdyI+CiAgICB7KiBhbGJ1bSBpbWFnZXMgYXJlIGFsd2F5cyByZWxhdGl2ZSB0byB0aGUgdXBsb2FkcyB1cmwgKn0KICAgIHtmb3JlYWNoICRlbnRyeS0+YWxidW0gYXMgJGltZ30KICAgICAgIDxhIGhyZWY9Int1cGxvYWRzX3VybH0veyRpbWd9Ij48aW1nIHNyYz0ie3VwbG9hZHNfdXJsfS97JGltZ30iIGNsYXNzPSJpbWctdGh1bWJuYWlsIiB3aWR0aD0iMTAwIi8+PC9hPgogICAgey9mb3JlYWNofQogIDwvZGl2Pgp7L2lmfQoKCnsqIGNyZWF0ZSBhIGxpbmsgYmFjayB0byB0aGUgdG9wIG9mIHRoZSBwYWdlICp9CnthbmNob3IgYW5jaG9yPSdwcm9kdWN0X25hbWUnIHRleHQ9JFByb2R1Y3RzLT5MYW5nKCdyZXR1cm5fdG9fdG9wJykgdGl0bGU9JFByb2R1Y3RzLT5MYW5nKCdyZXR1cm5fdG9fdG9wJyl9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/orig_frontendform_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2NnZXJyb3J9eyRtZXNzYWdlfXsvY2dlcnJvcn0KeyRzdGFydGZvcm19CiAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KICAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskbmFtZXRleHR9PC9kaXY+Cgk8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dG5hbWV9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZXJvdyI+CgkJICAgPGRpdiBjbGFzcz0icm93dGV4dCI+eyRhZGRyZXNzdGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGFkZHJlc3N9PC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0icGFnZXJvdyI+CgkJICAgPGRpdiBjbGFzcz0icm93dGV4dCI+eyR0ZWxlcGhvbmV0ZXh0fTwvZGl2PgoJCSAgIDxkaXYgY2xhc3M9InJvd2lucHV0Ij57JGlucHV0dGVsZXBob25lfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskZmF4dGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGZheH08L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkgICA8ZGl2IGNsYXNzPSJyb3d0ZXh0Ij57JGVtYWlsdGV4dH08L2Rpdj4KCQkgICA8ZGl2IGNsYXNzPSJyb3dpbnB1dCI+eyRpbnB1dGVtYWlsfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskd2Vic2l0ZXRleHR9PC9kaXY+CgkJICAgPGRpdiBjbGFzcz0icm93aW5wdXQiPnskaW5wdXR3ZWJzaXRlfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskZGV0YWlsc3RleHR9PC9kaXY+CgkJICAgPGRpdiBjbGFzcz0icm93aW5wdXQiPnskaW5wdXRkZXRhaWxzfTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InBhZ2Vyb3ciPgoJCSAgIDxkaXYgY2xhc3M9InJvd3RleHQiPnskaW1hZ2V0ZXh0fTwvZGl2PgoJCSAgIDxkaXYgY2xhc3M9InJvd2lucHV0Ij57JGltYWdlY3VycmVudH17JGltYWdlY3VycmVudGhpZGRlbn17JGltYWdldXBsb2FkfXskZGVsZXRldGV4dH17JGltYWdlY3VycmVudGRlbGV0ZX08L2Rpdj4KICAgICAgICA8L2Rpdj4KCSAgICB7aWYgJGN1c3RvbWZpZWxkc2NvdW50IGd0IDB9CgkJICAgIHtmb3JlYWNoIGZyb209JGN1c3RvbWZpZWxkcyBpdGVtPWN1c3RvbWZpZWxkfQoJCQk8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkJCTxwIGNsYXNzPSJyb3d0ZXh0Ij57JGN1c3RvbWZpZWxkLT5uYW1lfTo8L3A+CgkJCQk8cCBjbGFzcz0icm93aW5wdXQiPnskY3VzdG9tZmllbGQtPmlucHV0X2JveH08L3A+CgkJCTwvZGl2PgoJCSAgICB7L2ZvcmVhY2h9CiAgCSAgICB7L2lmfQogICAJICAgIHtpZiAkY2F0ZWdvcmllc2NvdW50IGd0IDB9CgkJICB7Zm9yZWFjaCBmcm9tPSRjYXRlZ29yaWVzIGl0ZW09Y2F0ZWdvcnl9CgkJCTxkaXYgY2xhc3M9InBhZ2Vvcm93Ij4KCQkJCTxwIGNsYXNzPSJyb3d0ZXh0Ij57JGNhdGVnb3J5LT5uYW1lfTo8L3A+CgkJCQk8cCBjbGFzcz0icm93aW5wdXQiPnskY2F0ZWdvcnktPmNoZWNrYm94fTwvcD4KCQkJPC9kaXY+CgkJICB7L2ZvcmVhY2h9CgkgICAgey9pZn0KCSAgICA8ZGl2IGNsYXNzPSJwYWdlcm93Ij4KCQkgIDxwIGNsYXNzPSJyb3d0ZXh0Ij4mbmJzcDs8L3A+CgkJICA8cCBjbGFzcz0icm93aW5wdXQiPnskaGlkZGVufXskc3VibWl0fXskY2FuY2VsfTwvcD4KCSAgICA8L2Rpdj4KICAgICAgeyRlbmRmb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_search_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogc2VhcmNoIHRlbXBsYXRlICp9CnsqIHZhbGlkIGZpZWxkcyBhcmU6CiAgIHskYWN0aW9uaWR9bm90cHJldHR5ID0gKGludGV0ZXIpIHR1cm4gb2ZmIHByZXR0eSB1cmxzIGZvciBkZXRhaWwgdmlld3MuCiAgIHskYWN0aW9uaWR9cGFnZWxpbWl0IC0gKGludGVnZXIpIG92ZXJyaWRlIHBhZ2UgbGltaXQgc2V0dGluZy4gIG1heGltdW0gdmFsdWUgaXMgNTAwLiBNaW5pbXVtIHZhbHVlIGlzIDEuCiAgIHskYWN0aW9uaWR9c29ydGJ5IC0gKHN0cmluZykgU2VlIHRoZSBzb3J0YnkgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuCiAgIHskYWN0aW9uaWR9c29ydG9yZGVyIC0gKHN0cmluZykgU2VlIHRoZSBzb3J0b3JkZXIgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuCiAgIHskYWN0aW9uaWR9c3VtbWFyeXRlbXBsYXRlIC0gKHN0cmluZykgU2VlIHRoZSBzdW1tYXJ5dGVtcGxhdGUgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuCiAgIHskYWN0aW9uaWR9ZGV0YWlsdGVtcGxhdGUgLSAoc3RyaW5nKSBTZWUgdGhlIGRldGFpbHRlbXBsYXRlIHBhcmFtIGluIHRoZSBtb2R1bGUgaGVscCBmb3IgdmFsaWQgdmFsdWVzLiAobm90IHZhbGlkIGlmIHByZXR0eSB1cmxzIGFyZSBlbmFibGVkKQogICB7JGFjdGlvbmlkfWRldGFpbHBhZ2UgLSAoc3RyaW5nKSBTZWUgdGhlIGRldGFpbHBhZ2UgcGFyYW0gaW4gdGhlIG1vZHVsZSBoZWxwIGZvciB2YWxpZCB2YWx1ZXMuIChub3QgdmFsaWQgaWYgcHJldHR5IHVybHMgYXJlIGVuYWJsZWQpCgogICB7JGFjdGlvbmlkfWNkX3N1Ym1pdCAgICAtIChzdHJpbmcpIGZvciBhIHN1Ym1pdCBidXR0b24KICAgeyRhY3Rpb25pZH1jZF9jYW5jZWwgICAgLSAoc3RyaW5nKSBmb3IgYSBjYW5jZWwgYnV0dG9uCiAgIHskYWN0aW9uaWR9Y2RfcHJvZG5hbWUgIC0gKHN0cmluZykgZm9yIHRleHQgZmllbGQgdG8gc2VhcmNoIGFnYWluc3QgcHJvZHVjdCBuYW1lCiAgIHskYWN0aW9uaWR9Y2RfcHJvZGRlc2MgIC0gKHN0cmluZykgZm9yIHRleHQgZmllbGQgdG8gc2VhcmNoIGFnYWluc3QgcHJvZHVjdCBkZXNjcmlwdGlvbi4KICAgeyRhY3Rpb25pZH1jZF9wcm9kcHJpY2UgLSAoc2VsZWN0KSBmb3IgcHJpY2Ugc2VhcmNoaW5nLgogICAgIG9wdGlvbnMgbXVzdCBiZSBvZiB0eXBlIHN0cmluZyB3aXRoIGhpZ2ggbG93IGxpbWl0cyBzZXBhcmF0ZWQgYnkgYSA6CiAgICAgaS5lOiAgIDEwMDA6MjAwMAogICAgIGEgc3BlY2lhbCB2YWx1ZSBvZiAtMSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSBhbnkgcHJpY2UuCiAgIHskYWN0aW9uaWR9Y2RfcHJvZHByaWNlX21pbiAtIChzdHJpbmcpIGZvciBtaW5pbXVtIHByaWNlIHZhbHVlCiAgIHskYWN0aW9uaWR9Y2RfcHJvZHByaWNlX21heCAtIChzdHJpbmcpIGZvciBtaW5pbXVtIHByaWNlIHZhbHVlCiAgICAgbm90ZTogaWYgcHJvZHByaWNlIGlzIHNwZWNpZmllZCwgcHJvZHByaWNlX21pbiBhbmQgcHJvZHByaWNlX21heCB3aWxsIGJlIGlnbm9yZWQKICAgeyRhY3Rpb25pZH1jZF9hbGxhbnkgICAgLSAoaW50KSB0byBpbmRpY2F0ZSB3ZXRoZXIgYWxsIG9mIHRoZQogICAgIGNvbmRpdGlvbnMgbXVjaCBtYXRjaCwgb3IgaWYgYW55IG9uZSBvZiB0aGVtIG1heS4KICAgeyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbXSAtIChhcnJheSkgZmllbGQgdmFsdWVzLgogICAgIHRoZSBrZXkgZm9yIGVhY2ggZWxlbWVudCBtdXN0IGJlIHRoZSBmaWVsZCBuYW1lIChub3QgdGhlIHByb21wdCkKICAgICBpLmU6ICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbbXlmaWVsZF0iIHNpemU9IjEwIi8+CiAgICAgdmFsdWVzIGNhbiBlaXRoZXIgYmUgc2luZ2xlIHZhbHVlcyB0byBpbmRpY2F0ZSBhbiBleGFjdCB2YWx1ZSBtYXRjaCBvciBjYW4gYmUgaW4gbnVtZXJvdXMgZm9ybWF0czoKICAgICB3aWxkY2FyZCBjaGFyYWN0ZXJzICglIG9yICopIGNhbiBiZSB1c2VkIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvbiBmaWVsZCB2YWx1ZXMKICAgICBpLmU6ICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb3B2YWxbbXlmaWVsZF0iIHZhbHVlPSIqZm9vKiIvPgoKICAgICBtaW52YWw6IC0tIHNwZWNpZnkgYSBtaW5pbXVtIG51bWVyaWMgdmFsdWUKICAgICA6bWF4dmFsIC0tIHNwZWNpZnkgYSBtYXhpbXVtIG51bWVyaWMgdmFsdWUKICAgICBtaW52YWw6bWF4dmFsIC0tIHNwZWNpZnkgYSByYW5nZSBvZiBudW1lcmljIHZhbHVlcwogICAgIDo6bnVsbDo6IC0tIHNlYXJjaCBmb3IgbnVsbCB2YWx1ZXMKICAgICA6Om5vdG51bGw6OiAtLSBzZWFyY2ggZm9yIGZpZWxkcyB0aGF0IGhhdmUgYW55IHZhbHVlCiAgICAgaS5lOiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb3B2YWxbbXlmaWVsZF0iIHZhbHVlPSI1OjEwIi8+CiAgIHskYWN0aW9uaWR9Y2RfcHJvZHZhbHVlXzxmbGRuYW1lPl9taW4gLSBNaW5pbXVtIHZhbHVlIHRvIHNlYXJjaCBmb3IgaW4gdGhlIDxmbGRuYW1lPiBmaWVsZC4KICAgeyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVfPGZsZG5hbWU+X21heCAtIE1heGltdW0gdmFsdWUgdG8gc2VhcmNoIGZvciBpbiB0aGUgPGZsZG5hbWU+IGZpZWxkLgogICAgIGkuZTogIFNlbGVjdCBNaW4gVmFsdWU6ICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9wdmFsX215ZmllbGRfbWluIiBzaXplPSIxMCIvPjxici8+CiAgICAgICAgICAgU2VsZWN0IE1heCBWYWx1ZTogIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb3B2YWxfbXlmaWVsZF9tYXgiIHNpemU9IjEwIi8+Cip9Cgo8ZGl2IGlkPSJwcm9kX3NlYXJjaGZvcm0iPgp7JGZvcm1zdGFydH0KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskbW9kLT5MYW5nKCdzZWFyY2hfZXhwcicpfTo8L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9Y2RfYWxsYW55Ij4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMCI+eyRtb2QtPkxhbmcoJ2FsbCcpfTwvb3B0aW9uPgogICAgICA8b3B0aW9uIHZhbHVlPSIxIj57JG1vZC0+TGFuZygnYW55Jyl9PC9vcHRpb24+CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ3NlYXJjaF9uYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icm93X2lucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb2RuYW1lIiBzaXplPSI0MCIgbWF4bGVuZ3RoPSIyNTUiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRtb2QtPkxhbmcoJ3NlYXJjaF9kZXNjcmlwdGlvbicpfTo8L3A+CiAgPHAgY2xhc3M9InJvd19pbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kZGVzYyIgc2l6ZT0iNDAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InJvdyI+CiAgPHAgY2xhc3M9InJvd19wcm9tcHQiPnskbW9kLT5MYW5nKCdzZWFyY2hfcHJpY2UnKX06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNkX3Byb2RwcmljZSI+CiAgICAgIDxvcHRpb24gdmFsdWU9Ii0xIj57JG1vZC0+TGFuZygnYW55Jyl9PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjA6OTkuOTkiPkxlc3MgVGhhbiAkMTAwPC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9IjEwMDo5OTkuOTkiPiQxMDAgdG8gJDEwMDA8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwMDo5OTk5Ljk5Ij4kMTAwMCB0byAkMTAwMDA8L29wdGlvbj4KICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAwMDA6OTk5OTk5OSI+R3JlYXRlciB0aGFuICQxMDAwMDwvb3B0aW9uPgogICAgPC9zZWxlY3Q+CiAgPC9wPgo8L2Rpdj4KCntpZiBpc3NldCgkc2VhcmNocHJvcHMpfQp7KiBidWlsZGluZyBpbnB1dHMgZm9yIGFsbCBhZGRyZXNzYWJsZSBmaWVsZHMgaW4gYSBsb29wICp9Cntmb3JlYWNoIGZyb209JHNlYXJjaHByb3BzIGtleT0nZmxkbmFtZScgaXRlbT0nb2JqJ30KPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+eyRvYmotPnByb21wdH06PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAge2lmICRvYmotPnR5cGUgPT0gJ3RleHQnfQogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbeyRmbGRuYW1lfV0iIHNpemU9IjQwIiBtYXhsZW5ndGg9IjQwIi8+CiAgICB7ZWxzZSBpZiAkb2JqLT50eXBlID09ICdkcm9wZG93bid9CiAgICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9kdmFsdWVbeyRmbGRuYW1lfV0iPgogICAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JG9iai0+b3B0aW9uc30KICAgICAgPC9zZWxlY3Q+CiAgICB7L2lmfQogIDwvcD4KPC9kaXY+CnsvZm9yZWFjaH0KCnsqIGFjY2Vzc2luZyBhIHNlYXJjaGFibGUgZmllbGQgYnkgbmFtZSAqfQp7aWYgaXNzZXQoJHNlYXJjaHByb3BzLm15ZmllbGQpfQogIHskb2JqPSRzZWFyY2hwcm9wcy5teWZpZWxkfQo8ZGl2IGNsYXNzPSJyb3ciPgogIDxwIGNsYXNzPSJyb3dfcHJvbXB0Ij57JG9iai0+cHJvbXB0fTo8L3A+CiAgPC9wIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgTWluOiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9wdmFsdWVfbXlmaWVsZF9taW4iIHNpemU9IjMiPgogICAgTWF4OiA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9wcm9wdmFsdWVfbXlmaWVsZF9tYXgiIHNpemU9IjMiPgogIDwvcD4KPC9kaXY+CnsvaWZ9Cgp7L2lmfQoKPGRpdiBjbGFzcz0icm93Ij4KICA8cCBjbGFzcz0icm93X3Byb21wdCI+PC9wPgogIDxwIGNsYXNzPSJyb3dfaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ieyRhY3Rpb25pZH1jZF9zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ii8+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfWNkX2NhbmNlbCIgdmFsdWU9InskbW9kLT5MYW5nKCdjYW5jZWwnKX0iLz4KICA8L3A+CjwvZGl2PgoKCnskZm9ybWVuZH0KPC9kaXY+eyogcHJvZF9zZWFyY2hmb3JtICp9]]></data>
	</file>
	<file>
	  <filename>/templates/orig_summary_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRwYWdlY291bnQpICYmICRwYWdlY291bnQgZ3QgMX0KeyRmaXJzdGxpbmt9Jm5ic3A7eyRwcmV2bGlua30mbmJzcDsmbmJzcDt7JHBhZ2V0ZXh0fSB7JGN1cnBhZ2V9IHskb2Z0ZXh0fSB7JHBhZ2Vjb3VudH0mbmJzcDsmbmJzcDt7JG5leHRsaW5rfSZuYnNwO3skbGFzdGxpbmt9CnsvaWZ9Cgp7Zm9yZWFjaCAkaXRlbXMgYXMgJGVudHJ5fQogICB7KgogICAgIHRoZSBzdW1tYXJ5IHRlbXBsYXRlIGhhcyBhY2Nlc3MgdG8gY3VzdG9tIGZpZWxkcyB2aWEgdGhlICRlbnRyeS0+ZmllbGRzIGhhc2gKICAgICBhbmQgdG8gY2F0ZWdvcmllcyB2aWEgdGhlICRlbnRyeS0+Y2F0ZWdvcmllcyBhcnJheSBvZiBvYmplY3RzLiAgQWxzbwogICAgIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgdmlhICRlbnRyeS0+YXR0cmlidXRlcy4KICAgICB5b3Ugc2hvdWxkIHVzZSB0aGUgZ2V0X3RlbXBsYXRlX3ZhcnMgYW5kIHRoZSBwcmludF9yIG1vZGlmaWVyIHRvIHNlZQogICAgIHdoYXQgaXMgYXZhaWxhYmxlCiAgICAqfQogIDxkaXYgY2xhc3M9IlByb2R1Y3REaXJlY3RvcnlJdGVtIj4KICAgICA8YSBocmVmPSJ7JGVudHJ5LT5kZXRhaWxfdXJsfSI+eyRlbnRyeS0+cHJvZHVjdF9uYW1lfTwvYT4mbmJzcDsoeyRlbnRyeS0+d2VpZ2h0fXskd2VpZ2h0X3VuaXRzfSkmbmJzcDsmbmJzcDt7JGN1cnJlbmN5X3N5bWJvbH17JGVudHJ5LT5wcmljZX0KICAgICB7aWYgaXNzZXQoJGVudHJ5LT5jYXRlZ29yaWVzKX0KICAgICAgIENhdGVnb3JpZXM6Jm5ic3A7CiAgICAgICB7Zm9yZWFjaCBmcm9tPSRlbnRyeS0+Y2F0ZWdvcmllcyBpdGVtPSdjYXRlZ29yeSd9CiAgICAgICAgIHskY2F0ZWdvcnktPm5hbWV9LCZuYnNwOwogICAgICAgey9mb3JlYWNofQogICAgICAgPGJyLz4KICAgICB7L2lmfQogIDwvZGl2PgoKICB7KiBpbmNsdWRlIHRoZSBjYXJ0CiAgPGRpdj4KICB7Q2FydDIgc2t1PSRlbnRyeS0+c2t1fQogIDwvZGl2PgogICp9Cgp7L2ZvcmVhY2h9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRzdGFydGZvcm19CjxmaWVsZHNldD4KPGxlZ2VuZD57JG1vZC0+TGFuZygnZ2VuZXJhbF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF91cmxwcmVmaXgnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfXVybHByZWZpeCIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjAiIHZhbHVlPSJ7JHVybHByZWZpeH0iLz48L2Rpdj4KPC9kaXY+CntpZiBpc3NldCgkaW5wdXRfY3VycmVuY3lzeW1ib2wpfQo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JHByb21wdF9jdXJyZW5jeXN5bWJvbH06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPnskaW5wdXRfY3VycmVuY3lzeW1ib2x9PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JHByb21wdF93ZWlnaHR1bml0c306PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPnskaW5wdXRfd2VpZ2h0dW5pdHN9PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JHByb21wdF9sZW5ndGh1bml0c306PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPnskaW5wdXRfbGVuZ3RodW5pdHN9PC9kaXY+CjwvZGl2Pgp7L2lmfQo8aHIvPgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJncmlkXzQiIG5hbWU9InskYWN0aW9uaWR9c2V0ZWNvbWhhbmRsZXJzIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2J0bl9zZXRlY29taGFuZGxlcnMnKX0iLz4KICA8ZGl2IGNsYXNzPSJncmlkXzciPgogICAgeyRtb2QtPkxhbmcoJ2luZm9fc2V0ZWNvbWhhbmRsZXJzJyl9CiAgPC9kaXY+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9kdWN0X2VkaXRpbmdfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfc2t1X3JlcXVpcmVkJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3NrdXJlcXVpcmVkJyBzZWxlY3RlZD0kc2t1cmVxdWlyZWR9CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2RlZmF1bHRfdGF4YWJsZScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+eyRpbnB1dF90YXhhYmxlfTwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF9kZWZhdWx0X3N0YXR1cycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+eyRpbnB1dF9zdGF0dXN9PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X2RlbGV0ZXByb2R1Y3RmaWxlcycpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+eyRpbnB1dF9kZWxldGVwcm9kdWN0ZmlsZXN9PC9kaXY+CjwvZGl2Pgp7aWYgIWVtcHR5KCRmZXVfZ3JvdXBsaXN0KX0KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2ZldV9vd25lcl9ncm91cCcpfTo8L2xhYmVsPgogIDxzZWxlY3QgY2xhc3M9ImdyaWRfOCIgbmFtZT0ieyRhY3Rpb25pZH1mZXVfb3duZXJncm91cCI+CiAgICB7aHRtbF9vcHRpb25zIG9wdGlvbnM9JGZldV9ncm91cGxpc3Qgc2VsZWN0ZWQ9JGZldV9vd25lcmdyb3VwfQogIDwvc2VsZWN0Pgo8L2Rpdj4Key9pZn0KPGhyLz4KCjxoND57JG1vZC0+TGFuZygncHJvbXB0X3NsdWd0ZW1wbGF0ZScpfTwvaDQ+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPHRleHRhcmVhIGNsYXNzPSJncmlkXzEyIiBuYW1lPSJ7JGFjdGlvbmlkfXNsdWd0ZW1wbGF0ZSIgcm93cz0iMyI+eyRzbHVndGVtcGxhdGV9PC90ZXh0YXJlYT4KICA8ZGl2IGNsYXNzPSJncmlkXzEyIj57JG1vZC0+TGFuZygnaW5mb19zbHVndGVtcGxhdGUnKX08L2Rpdj4KPC9kaXY+Cgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9kdWN0X3N1bW1hcnlfc2V0dGluZ3MnKX06PC9sZWdlbmQ+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeV9uZXdkZWZhdWx0Jyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3N1bW1hcnlfbmV3ZGVmYXVsdCcgc2VsZWN0ZWQ9JHN1bW1hcnlfbmV3ZGVmYXVsdH0KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfc3VtbWFyeXBhZ2VsaW1pdCcpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1zdW1tYXJ5X3BhZ2VsaW1pdCIgc2l6ZT0iNSIgbWF4bGVuZ3RoPSI1IiB2YWx1ZT0ieyRzdW1tYXJ5X3BhZ2VsaW1pdH0iLz4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskcHJvbXB0X3N1bW1hcnlzb3J0b3JkZXJ9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X3N1bW1hcnlzb3J0b3JkZXJ9PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JHByb21wdF9zdW1tYXJ5c29ydGluZ306PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPnskaW5wdXRfc3VtbWFyeXNvcnRpbmd9PC9kaXY+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGZpZWxkc2V0Pgo8bGVnZW5kPnskbW9kLT5MYW5nKCdwcm9kdWN0X2RldGFpbF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF91c2VoaWVycGF0aHVybHMnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPgogICAgeyRpbnB1dF91c2VoaWVycGF0aHVybHN9CiAgICA8cD57JG1vZC0+TGFuZygnZGVwcmVjYXRlZCcpfTwvcD4KICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskcHJvbXB0X2RldGFpbHBhZ2V9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X2RldGFpbHBhZ2V9PC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X3VzZV9kZXRhaWxwYWdlX2Zvcl9zZWFyY2gnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPgogICAgeyRpbnB1dF91c2VfZGV0YWlscGFnZV9mb3Jfc2VhcmNofQogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF9ub3Rmb3VuZF9iZWhhdmlvcicpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9cHJvZG5vdGZvdW5kIj4KICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kbm90Zm91bmRfb3B0cyBzZWxlY3RlZD0kcHJvZG5vdGZvdW5kfQogICAgPC9zZWxlY3Q+CiAgICA8cD57JG1vZC0+TGFuZygnaW5mb19wcm9kbm90Zm91bmQnKX08L3A+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X25vdGZvdW5kX3BhZ2UnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPgogICAgeyRpbnB1dF9wcm9kbm90Zm91bmRwYWdlfQogIDwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF9ub3Rmb3VuZF9tc2cnKX06PC9sYWJlbD4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPgogICAgPHRleHRhcmVhIG5hbWU9InskYWN0aW9uaWR9cHJvZG5vdGZvdW5kbXNnIiByb3dzPSI1IiBjb2xzPSI3MCI+eyRwcm9kbm90Zm91bmRtc2d9PC90ZXh0YXJlYT4KICA8L2Rpdj4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CjxsZWdlbmQ+eyRtb2QtPkxhbmcoJ2hpZXJhcmNoeV9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF9oaWVycGFnZScpfTo8L2xhYmVsPgogIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICB7JGlucHV0X2hpZXJwYWdlfQogICAgPHA+eyRtb2QtPkxhbmcoJ2luZm9faGllcnBhZ2UnKX08L3A+CiAgPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygncHJvbXB0X3ByZXR0eWhpZXJ1cmxzJyl9OjwvbGFiZWw+CiAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgIHtjZ2VfeWVzbm9fb3B0aW9ucyBwcmVmaXg9JGFjdGlvbmlkIG5hbWU9J3ByZXR0eWhpZXJ1cmxzJyBzZWxlY3RlZD0kcHJldHR5aGllcnVybHN9CiAgICA8cD57JG1vZC0+TGFuZygnaW5mb19wcmV0dHloaWVydXJscycpfTwvcD4KICA8L2Rpdj4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQ+CiAgIDxsZWdlbmQ+eyRtb2QtPkxhbmcoJ3VwbG9hZF9zZXR0aW5ncycpfTo8L2xlZ2VuZD4KICAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9tcHRfYWxsb3dlZF9pbWFnZXR5cGVzJyl9OjwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+eyRpbnB1dF9hbGxvd2VkX2ltYWdldHlwZXN9PC9kaXY+CiAgIDwvZGl2PgogICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3Byb21wdF9hbGxvd2VkX2ZpbGV0eXBlcycpfTo8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJncmlkXzgiPnskaW5wdXRfYWxsb3dlZF9maWxldHlwZXN9PC9kaXY+CiAgIDwvZGl2Pgo8L2ZpZWxkc2V0PgoKPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICA8ZGl2IGNsYXNzPSJncmlkXzgiPnskc3VibWl0fTwvZGl2Pgo8L2Rpdj4KCnskZW5kZm9ybX0K]]></data>
	</file>
	<file>
	  <filename>/templates/productlist.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyoKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNC02IGJ5IFRlZCBLdWxwICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiNUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL2Ntc21hZGVzaW1wbGUub3JnCiMKI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiNpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKI1RoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKI01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKI0dOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKI0ZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojJElkJAoqfQoKPGRpdiBpZD0iZmlsdGVyZm9ybSIgY2xhc3M9ImNfZnVsbCBjZiI+CnskZm9ybXN0YXJ0fQo8ZmllbGRzZXQgY2xhc3M9ImdyaWRfNiI+CiAgPGxlZ2VuZD57JG1vZC0+TGFuZygnZmlsdGVycycpfTombmJzcDs8L2xlZ2VuZD4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwcm9kdWN0bmFtZScpfTo8L2xhYmVsPgogICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZ3JpZF8xMiIgbmFtZT0ieyRhY3Rpb25pZH1pbnB1dF9wcm9kdWN0bmFtZSIgdmFsdWU9InskZmlsdGVyLnByb2R1Y3RuYW1lfSIgbWF4bGVuZ3RoPSIyNTUiLz4KICAgICAgIDxici8+eyRtb2QtPkxhbmcoJ2luZm9fZmlsdGVyX3Byb2R1Y3RuYW1lJyl9CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdza3UnKX06PC9sYWJlbD4KICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImdyaWRfMTIiIG5hbWU9InskYWN0aW9uaWR9aW5wdXRfc2t1IiB2YWx1ZT0ieyRmaWx0ZXIuc2t1fSIgbWF4bGVuZ3RoPSIxMCIvPgogICAgICAgPGJyLz57JG1vZC0+TGFuZygnaW5mb19maWx0ZXJfc2t1Jyl9CiAgICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdoaWVyYXJjaHknKX06PC9sYWJlbD4KICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+CiAgICAgICAgeyRpbnB1dF9oaWVyYXJjaHl9Jm5ic3A7eyRtb2QtPkxhbmcoJ2luY2x1ZGVfY2hpbGRyZW4nKX0geyRpbnB1dF9jaGlsZHJlbn0KICAgIDwvZGl2PgogIDwvZGl2PgogIHtpZiBpc3NldCgkY2F0ZWdvcnlfbGlzdCl9CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnY2F0ZWdvcnknKX06PC9sYWJlbD4KICAgIDxzZWxlY3QgY2xhc3M9ImdyaWRfOCIgbmFtZT0ieyRhY3Rpb25pZH1jYXRlZ29yaWVzW10iIG11bHRpcGxlPSJtdWx0aXBsZSIgc2l6ZT0iNSI+CiAgICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRjYXRlZ29yeV9saXN0IHNlbGVjdGVkPSRmaWx0ZXIuY2F0ZWdvcmllc30KICAgIDwvc2VsZWN0PgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ2V4Y2x1ZGVfY2F0ZWdvcmllcycpfTo8L2xhYmVsPgogICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X2V4Y2x1ZGVjYXRzfTwvZGl2PgogIDwvZGl2PgogIHsvaWZ9CjwvZmllbGRzZXQ+CjxmaWVsZHNldCBjbGFzcz0iZ3JpZF82Ij4KICA8bGVnZW5kPnskbW9kLT5MYW5nKCd2aWV3Jyl9OiZuYnNwOzwvbGVnZW5kPgogIHtpZiBpc3NldCgkZmllbGRzX3ZpZXdhYmxlKX0KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCd2aWV3YWJsZV9maWVsZHMnKX06PC9sYWJlbD4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jdXN0b21fZmllbGRzW10iIHNpemU9IjUiIG11bHRpcGxlPSJtdWx0aXBsZSIgY2xhc3M9ImdyaWRfOCI+CiAgICAgIHtodG1sX29wdGlvbnMgb3B0aW9ucz0kZmllbGRzX3ZpZXdhYmxlIHNlbGVjdGVkPSRmaWx0ZXIuY3VzdG9tX2ZpZWxkc30KICAgIDwvc2VsZWN0PgogIDwvZGl2PgogIHsvaWZ9CgogIDxkaXYgY2xhc3M9ImNfZnVsbCBjZiI+CiAgICA8bGFiZWwgY2xhc3M9ImdyaWRfMyI+eyRtb2QtPkxhbmcoJ3NvcnRfYnknKX06PC9sYWJlbD4KICAgIDxkaXYgY2xhc3M9ImdyaWRfOCI+eyRpbnB1dF9zb3J0Ynl9PC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iY19mdWxsIGNmIj4KICAgIDxsYWJlbCBjbGFzcz0iZ3JpZF8zIj57JG1vZC0+TGFuZygnc29ydF9vcmRlcicpfTo8L2xhYmVsPgogICAgPGRpdiBjbGFzcz0iZ3JpZF84Ij57JGlucHV0X3NvcnRvcmRlcn08L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiPgogICAgPGxhYmVsIGNsYXNzPSJncmlkXzMiPnskbW9kLT5MYW5nKCdwYWdlX2xpbWl0Jyl9OjwvbGFiZWw+CiAgICA8ZGl2IGNsYXNzPSJncmlkXzgiPnskaW5wdXRfcGFnZWxpbWl0fTwvZGl2PgogIDwvZGl2Pgo8L2ZpZWxkc2V0Pgo8ZGl2IGNsYXNzPSJjbGVhcmIiPjwvZGl2Pgo8ZGl2IGNsYXNzPSJjX2Z1bGwgY2YiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JG1vZC0+R2V0QWN0aW9uSWQoKX1zdWJtaXQiIHZhbHVlPSJ7JG1vZC0+TGFuZygnc3VibWl0Jyl9Ij4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JG1vZC0+R2V0QWN0aW9uSWQoKX1yZXNldCIgdmFsdWU9InskbW9kLT5MYW5nKCdyZXNldCcpfSI+CjwvZGl2Pgp7JGZvcm1lbmR9Cjxoci8+CjwvZGl2PjwhLS0gZmlsdGVyZm9ybSAtLT4KCgo8ZGl2IGlkPSJwcm9kdWN0bGlzdCI+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij57bGl0ZXJhbH0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAkKCcjZmlsdGVyZm9ybScpLmhpZGUoKTsKICAkKCcjZmlsdGVyYm94JykuY2xpY2soZnVuY3Rpb24oKXsKICAgICQoJyNmaWx0ZXJmb3JtJykudG9nZ2xlKCk7CiAgfSk7CiAgJCgnI3NlbGVjdF9hbGxfcHJvZHVjdHMnKS5jbGljayhmdW5jdGlvbigpewogICAgdmFyIGNoZWNrZWQgPSAkKHRoaXMpLmF0dHIoJ2NoZWNrZWQnKTsKICAgIGlmKCBjaGVja2VkID09ICdjaGVja2VkJyApIHsKICAgICAgJCgnLm11bHRpc2VsZWN0JykuYXR0cignY2hlY2tlZCcsY2hlY2tlZCk7CiAgICB9IGVsc2UgewogICAgICAkKCcubXVsdGlzZWxlY3QnKS5yZW1vdmVBdHRyKCdjaGVja2VkJyk7CiAgICB9CiAgfSk7CiAgJCgnLm11bHRpc2VsZWN0JykuY2xpY2soZnVuY3Rpb24oKXsKICAgICQoJyNzZWxlY3RfYWxsX3Byb2R1Y3RzJykucmVtb3ZlQXR0cignY2hlY2tlZCcpOwogIH0pOwogICQoJyNidWxrYWN0aW9uX3N1Ym1pdCcpLmNsaWNrKGZ1bmN0aW9uKCl7CiAgICB2YXIgbGVuID0gJCgnI3Byb2R1Y3RsaXN0IHRib2R5IGlucHV0OmNoZWNrYm94OmNoZWNrZWQnKS5sZW5ndGg7CiAgICBpZiggbGVuID09IDAgKQogICAgewogICAgICBhbGVydCgney9saXRlcmFsfXskbW9kLT5MYW5nKCdub3RoaW5nX3NlbGVjdGVkJyl9e2xpdGVyYWx9Jyk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0pOwp9KTsKey9saXRlcmFsfTwvc2NyaXB0PgoKPGRpdiBjbGFzcz0iY19mdWxsIj4KICA8ZGl2IGNsYXNzPSJncmlkXzYiIHN0eWxlPSJwYWRkaW5nLWJvdHRvbTogMC4yNWVtOyI+CiAgICA8dWwgY2xhc3M9Im9wdGlvbi1tZW51LWhvcml6Ij4KICAgICAgPGxpPgogICAgICAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX3VybCBhY3Rpb249YWRkcHJvZHVjdH0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicgYWx0PScnfSB7JG1vZC0+TGFuZygnYWRkcHJvZHVjdCcpfTwvYT4KICAgICAgPC9saT4KICAgICAgPGxpPgogICAgICAgIDxhIGhyZWY9Inttb2R1bGVfYWN0aW9uX3VybCBhY3Rpb249aW1wb3J0cHJvZHVjdHN9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2ltcG9ydC5naWYnIGFsdD0nJ30geyRtb2QtPkxhbmcoJ2ltcG9ydF9mcm9tX2NzdicpfTwvYT4KICAgICAgPC9saT4KICAgICAge2lmICRpdGVtY291bnQgZ3QgMH0KICAgICAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0ie21vZHVsZV9hY3Rpb25fdXJsIGFjdGlvbj1leHBvcnRjc3Z9Ij57Y2dpbWFnZSBpbWFnZT0naWNvbnMvc3lzdGVtL2V4cG9ydC5naWYnIGFsdD0nJ30geyRtb2QtPkxhbmcoJ2V4cG9ydF90b19jc3YnKX08L2E+CiAgICAgICAgPC9saT4KICAgICAgey9pZn0KICAgICAgPGxpPjxhIGlkPSJmaWx0ZXJib3giPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vdmlldy5naWYnIGFsdD0nJ30geyRtb2QtPkxhbmcoJ2ZpbHRlcicpfSB7aWYgJGZpbHRlcmludXNlfTxlbSBzdHlsZT0iY29sb3I6IGJsdWU7Ij4oeyRtb2QtPkxhbmcoJ2ZpbHRlcmludXNlJyl9KTwvZW0+ey9pZn08L2E+PC9saT4KICAgIDwvdWw+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImdyaWRfNiI+CiAgICB7aWYgJGl0ZW1jb3VudCBndCAwfQogICAgICA8c3BhbiBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyB0ZXh0LWFsaWduOiByaWdodDsiPgogICAgICB7aWYgaXNzZXQoJGZpcnN0cGFnZV91cmwpfQogICAgICAgIDxhIGhyZWY9InskZmlyc3RwYWdlX3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZmlyc3RwYWdlJyl9Ij57JG1vZC0+TGFuZygnZmlyc3RwYWdlJyl9PC9hPgogICAgICAgIDxhIGhyZWY9InskcHJldnBhZ2VfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdwcmV2cGFnZScpfSI+eyRtb2QtPkxhbmcoJ3ByZXZwYWdlJyl9PC9hPgogICAgICB7L2lmfQogICAgICB7aWYgaXNzZXQoJGZpcnN0cGFnZV91cmwpIHx8IGlzc2V0KCRsYXN0cGFnZV91cmwpfQogICAgICAgIHskbW9kLT5MYW5nKCdwYWdlX29mJywkcGFnZW51bWJlciwkcGFnZWNvdW50KX0KICAgICAgey9pZn0KICAgICAge2lmIGlzc2V0KCRsYXN0cGFnZV91cmwpfQogICAgICAgIDxhIGhyZWY9InskbmV4dHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCduZXh0cGFnZScpfSI+eyRtb2QtPkxhbmcoJ25leHRwYWdlJyl9PC9hPgogICAgICAgIDxhIGhyZWY9InskbGFzdHBhZ2VfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdsYXN0cGFnZScpfSI+eyRtb2QtPkxhbmcoJ2xhc3RwYWdlJyl9PC9hPgogICAgICB7L2lmfQogICAgICA8L3NwYW4+CiAgICB7L2lmfQogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNsZWFyYiI+PC9kaXY+CjwvZGl2PgoKe2lmICRpdGVtY291bnQgZ3QgMH0KICB7JGZvcm1zdGFydDJ9CiAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICAgIDx0aGVhZD4KICAgICAgPHRyPgoJPHRoPnskaWR0ZXh0fTwvdGg+Cgk8dGg+eyRwcm9kdWN0dGV4dH08L3RoPgoJPHRoPnskcHJpY2V0ZXh0fTwvdGg+Cgk8dGg+eyRtb2QtPkxhbmcoJ3N0YXR1cycpfTwvdGg+CiAgICAgICAge2lmICFlbXB0eSgkZmlsdGVyLmN1c3RvbV9maWVsZHMpfQogICAgICAgICAge2ZvcmVhY2ggJGZpbHRlci5jdXN0b21fZmllbGRzIGFzICRmaWR9CiAgICAgICAgICAgIDx0aD57JGZpZWxkc192aWV3YWJsZVskZmlkXX08L3RoPgogICAgICAgICAgey9mb3JlYWNofQogICAgICAgIHsvaWZ9Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+Cgk8dGggY2xhc3M9InBhZ2VpY29uIHtsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iPiZuYnNwOzwvdGg+CiAgICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIHRpdGxlPSJ7JG1vZC0+TGFuZygnc2VsZWN0X2FsbCcpfSIgdmFsdWU9IjEiIG5hbWU9InNlbGVjdF9hbGwiIGlkPSJzZWxlY3RfYWxsX3Byb2R1Y3RzIj48L3RoPgogICAgICA8L3RyPgogICAgPC90aGVhZD4KICAgIDx0Ym9keT4KICAgICAge2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KCTx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0ncm93MSxyb3cyJ30iPgoJPHRkPnskZW50cnkuaWR9PC90ZD4KCTx0ZD48YSBocmVmPSJ7JGVudHJ5LmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0Jyl9Ij57JGVudHJ5LnByb2R1Y3RfbmFtZX08L2E+PC90ZD4KCTx0ZD57JGVudHJ5LnByaWNlfGFzX251bToyfTwvdGQ+Cgk8dGQ+e2lmICRlbnRyeS5zdGF0dXMgIT0gJ3B1Ymxpc2hlZCd9CiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZWQ7Ij57JG1vZC0+TGFuZygkZW50cnkuc3RhdHVzKX08L3NwYW4+CiAgICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICAgICB7JG1vZC0+TGFuZygkZW50cnkuc3RhdHVzKX0KICAgICAgICAgICAgey9pZn0KICAgICAgICA8L3RkPgogICAgICAgIHtpZiAhZW1wdHkoJGZpbHRlci5jdXN0b21fZmllbGRzKX0KICAgICAgICAgIHtmb3JlYWNoICRmaWx0ZXIuY3VzdG9tX2ZpZWxkcyBhcyAkZmlkfQogICAgICAgICAgICA8dGQ+CgkgICAgICB7JHN1YmZsZD1zdWJzdHIoJGZpZCwyKX0KCSAgICAgIHtpZiBzdGFydHN3aXRoKCRmaWQsJ1A6Jyl9CgkgICAgICAgIHskZW50cnlbJHN1YmZsZF19CgkgICAgICB7ZWxzZX0KCSAgICAgICAgeyR0bXA9JGZpZWxkX25hbWVzWyRzdWJmbGRdfQoJICAgICAgICB7JGVudHJ5WyR0bXBdfQoJICAgICAgey9pZn0KCSAgICA8L3RkPgogICAgICAgICAgey9mb3JlYWNofQogICAgICAgIHsvaWZ9Cgk8dGQ+e21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J1Byb2R1Y3RzJyBhY3Rpb249J2FkbWluX2VkaXRfYXR0cmlicycgcHJvZGlkPSRlbnRyeS5pZCBpbWFnZT0ndGFibGVfcmVsYXRpb25zaGlwLnBuZycgdGV4dD0kbW9kLT5MYW5nKCdlZGl0X29wdGlvbnMnKSBpbWFnZW9ubHk9MX08L3RkPgoJPHRkPnskZW50cnkuZWRpdGxpbmt9PC90ZD4KCTx0ZD57JGVudHJ5LmNvcHlsaW5rfTwvdGQ+Cgk8dGQ+eyRlbnRyeS5kZWxldGVsaW5rfTwvdGQ+CiAgICAgICAgPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgY2xhc3M9Im11bHRpc2VsZWN0IiBuYW1lPSJ7JGFjdGlvbmlkfW11bHRpc2VsZWN0W10iIHZhbHVlPSJ7JGVudHJ5LmlkfSI+PC90ZD4KICAgICAgICA8L3RyPgogICAgICB7L2ZvcmVhY2h9CiAgICA8L3Rib2R5PgogIDwvdGFibGU+CgogIDxkaXYgY2xhc3M9InBhZ2VvcHRpb25zIiBzdHlsZT0iaGVpZ2h0OiAyZW07Ij4KICAgIDxkaXYgc3R5bGU9IndpZHRoOiA0MCU7IGZsb2F0OiBsZWZ0OyBtYXJnaW4tdG9wOiAwLjVlbTsiPgogICAgICB7JGFkZGxpbmt9Jm5ic3A7eyRpbXBvcnRsaW5rfQogICAgPC9kaXY+CiAgICB7aWYgJGl0ZW1jb3VudCBndCAwfQogICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgd2lkdGg6IDQwJTsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW4tdG9wOiAwLjVlbTsgbWFyZ2luLWJvdHRvbTogMC41ZW07Ij4KICAgICAgICB7JG1vZC0+TGFuZygnd2l0aF9zZWxlY3RlZCcpfToKICAgICAgICA8c2VsZWN0IG5hbWU9InskYWN0aW9uaWR9YnVsa2FjdGlvbiI+e2h0bWxfb3B0aW9ucyBvcHRpb25zPSRidWxrYWN0aW9uc308L3NlbGVjdD4KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBpZD0iYnVsa2FjdGlvbl9zdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9c3VibWl0IiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2dvJyl9Ii8+CiAgICAgIDwvZGl2PgogICAgey9pZn0KICA8L2Rpdj4KeyRmb3JtZW5kMn0Key9pZn0KPC9kaXY+PCEtLSBwcm9kdWN0bGlzdCAtLT4K]]></data>
	</file>
	<file>
	  <filename>/test_import.csv</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[I0ZMQUd8I25hbWV8I3NrdXwjZGV0YWlsc3wjcHJpY2V8I3RheGFibGV8I3N0YXR1c3wjd2VpZ2h0fCNISUVSfCNDQVQ6dHJhdmVsfCNDQVQ6bWVuc3wjQ0FUOmxhZGllc3wjQ0FUOmNoaWxkcmVuc3wjRklFTEQ6dGV4dGJveDpicmFuZHwjRklFTEQ6dGV4dGJveDpuYXRpb25hbGl0eXwjRklFTEQ6dGV4dGJveDpzb3J0aW5nfCNBVFRSSUJTCnx8fHx8fHx8fHx8fHx8fHwKUHxSZWd1bGFyIFQgU2hpcnR8cDAwMDF8UXVhbGl0eSBDb3R0b24gVCBpbiBSZWR8MTIuOTl8MXxwdWJsaXNoZWR8MC41fENsb3RoaW5nID4+IFNoaXJ0c3x8MXwxfDF8YnJhbmQxfHwxfFNtYWxsOi0xOnAwMDAxLXM6NSAtLSBNZWRpdW06LTE6cDAwMDEtbTo0IJYgTGFyZ2U6LTE6cDAwMDEtbDozClB8TG9uZyBTbGVldmUgQ290dG9ufHAwMDAyfFF1YWxpdHkgTG9uZyBTbGVldmUgVCBpbiBCbHVlfDE0Ljk5fDF8cHVibGlzaGVkfDAuNXxDbG90aGluZyA+PiBTaGlydHN8fDF8MXwxfGJyYW5kMXx8MnxTbWFsbDotMTpwMDAwMS1zOjUgLS0gTWVkaXVtOi0xOnAwMDAxLW06NCCWIExhcmdlOi0xOnAwMDAxLWw6MyCWIFhMOi0xOnAwMDAxLXhsOjAKUHxXaW50ZXIgSmFja2V0fHAwMDAzfE55bG9uIHdpdGggY290dG9uIGxpbmluZ3wzNC45OXwxfHB1Ymxpc2hlZHwxfENsb3RoaW5nID4+IE91dGVyd2Vhcnx8MXwxfHxicmFuZDJ8fDN8U21hbGw6LTE6cDAwMDEtczo1IC0tIE1lZGl1bTotMTpwMDAwMS1tOjQgliBMYXJnZTotMTpwMDAwMS1sOjMKUHxGYWxsIEJvbWJlciBKYWNrZXR8cDAwMDR8Qm9tYmVyIFN0eWxlIEphY2tldHwyOS45OXwxfHB1Ymxpc2hlZHwxfENsb3RoaW5nID4+IE91dGVyd2Vhcnx8MXwxfHxicmFuZDJ8fDR8U21hbGw6LTE6cDAwMDEtczo1IC0tIE1lZGl1bTotMTpwMDAwMS1tOjQgliBMYXJnZTotMTpwMDAwMS1sOjMKUHxIZWF2eSBXaW50ZXIgSmFja2V0fHAwMDA1fE55bG9uIGV4dGVyaW9yLCBmdXIgbGluZWQgaG9vZHw1OC45OXwxfHB1Ymxpc2hlZHwxLjV8Q2xvdGhpbmcgPj4gT3V0ZXJ3ZWFyfHwxfDF8fGJyYW5kM3x8NXxTbWFsbDotMTpwMDAwMS1zOjUgLS0gTWVkaXVtOi0xOnAwMDAxLW06NCCWIExhcmdlOi0xOnAwMDAxLWw6MwpQfFRvcXVlIDF8cDAwMDZ8Q290dG9ufDUuOTl8MXxwdWJsaXNoZWR8MC4yNXxDbG90aGluZyA+PiBPdXRlcndlYXJ8fDF8MXwxfGJyYW5kNHx8NnwKUHxUb3F1ZSAyfHAwMDA2fENvdHRvbnw2LjQ5fDF8cHVibGlzaGVkfDAuMjV8Q2xvdGhpbmcgPj4gT3V0ZXJ3ZWFyfHwxfDF8MXxicmFuZDR8fDd8ClB8SGlraW5nIEJvb3RzfHAwMDA3fEdyZWF0IGZvciB0aG9zZSBsb25nIG1vdW50YWluIGhpa2VzfDQ0Ljk5fDF8cHVibGlzaGVkfDAuNzV8Q2xvdGhpbmcgPj4gRm9vdHdlYXJ8fDF8MXwxfGJyYW5kNXx8OHwKUHxXYWxraW5nIFNob2VzfHAwMDA4fExvbmcgd2Fsa3MgZG93biB0aGUgcm9hZHwyNC45OXwxfHB1Ymxpc2hlZHwwLjc1fENsb3RoaW5nID4+IEZvb3R3ZWFyfHwxfDF8fGJyYW5kNXx8OXwKUHxTbm93IEJvb3RzfHAwMDA5fENueWxvbiBleHRlcmlvciwgZmVsdCBsaW5lciwgcmVtb3ZhYmxlfDYxLjk5fDF8cHVibGlzaGVkfDEuMjV8Q2xvdGhpbmcgPj4gRm9vdHdlYXJ8fDF8MXwxfGJyYW5kNnx8MTB8Cnx8fHx8fHx8fHx8fHx8fHwKUHxDYW5hZGlhbiBGbGFnfHAwMDEwfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwxfApwfFVTQSBGbGFnfHAwMDExfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfFVTQXwyfApQfFVLIEZsYWd8cDAwMTJ8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8VUt8M3wKUHxGcmFuY2UgRmxhZ3xwMDAxM3xOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xGcmFuY2V8NHwKUHxHZXJtYW4gRmxhZ3xwMDAxNHxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xHZXJtYW55fDV8ClB8TmV0aGVybGFuZHMgRmxhZ3xwMDAxNXxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xOZXRoZXJsYW5kc3w2fApQfFVOIEZsYWd8cDAwMTZ8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gT3JnYW5pemF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8fDd8ClB8TkFUTyBGbGFnfHAwMDE3fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE9yZ2FuaXphdGlvbnN8MXx8fHxGbGFncyBSIFVTfHw4fApQfEJlbGdpdW0gRmxhZ3xwMDAxOHxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xCZWxnaXVtfDl8ClB8TWV4aWNvIEZsYWd8cDAwMTl8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8TWV4aWNvfDEwfApQfENoaWxlIEZsYWd8cDAwMjB8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8Q2hpbGV8MTF8ClB8Q29sdW1iaWEgRmxhZ3xwMDAyMXxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xDb2x1bWJpYXwxMnwKUHxJdGFseSBGbGFnfHAwMDIyfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfEl0YWx5fDEzfApQfFNwYWluIEZsYWd8cDAwMjN8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8U3BhaW58MTR8ClB8R3JlZWNlIEZsYWd8cDAwMjR8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9uc3wxfHx8fEZsYWdzIFIgVVN8R3JlZWNlfDE1fApQfElzcmVhbCBGbGFnfHAwMDI1fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnN8MXx8fHxGbGFncyBSIFVTfElzcmVhbHwxNnwKUHxBdXN0cmFsaWEgRmxhZ3xwMDAyNnxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xBdXN0cmFsaWF8MTd8ClB8TmV3IFplYWxhbmQgRmxhZ3xwMDAyN3xOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zfDF8fHx8RmxhZ3MgUiBVU3xOZXcgWmVhbGFuZHwxOHwKUHxCcml0aXNoIENvbHVtYmlhIEZsYWd8cDAwMjh8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwxOXwKUHxBbGJlcnRhIEZsYWd8cDAwMjl8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyMHwKUHxTYXNja2F0Y2hld2FuIEZsYWd8cDAwMzB8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyMXwKUHxNYW5pdG9iYSBGbGFnfHAwMDQwfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8MjJ8ClB8T250YXJpbyBGbGFnfHAwMDQxfE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8MjN8ClB8UXVlYmVjIEZsYWd8cDAwNDJ8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyNHwKUHxOZXcgQnJ1bnN3aWNrIEZsYWd8cDAwNDN8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwyNXwKUHxOZXdmb3VuZGxhbmQgRmxhZ3xwMDA0NHxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zID4+IFByb3ZpbmNlc3wxfHx8fEZsYWdzIFIgVVN8Q2FuYWRhfDI2fApQfFBFSSBGbGFnfHAwMDQ1fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8Mjd8ClB8Tm92YSBTY290aWEgRmxhZ3xwMDA0NnxOeWxvbiBmbGFnIG1lYXN1cmVzIDM2eDI0fDkuOTV8MXxwdWJsaXNoZWR8MC4yNXxGbGFncyA+PiBOYXRpb25zID4+IFByb3ZpbmNlc3wxfHx8fEZsYWdzIFIgVVN8Q2FuYWRhfDI4fApQfFVuaXRlZCBGZWRlcmF0aW9uIG9mIFBsYW5ldHN8cDAwNDd8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTm92ZWx0eXx8fHx8fHwyOXwKUHxOdW5hdnV0IEZsYWd8cDAwNDh8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwzMHwKUHxZdWtvbiBGbGFnfHAwMDQ5fE55bG9uIGZsYWcgbWVhc3VyZXMgMzZ4MjR8OS45NXwxfHB1Ymxpc2hlZHwwLjI1fEZsYWdzID4+IE5hdGlvbnMgPj4gUHJvdmluY2VzfDF8fHx8RmxhZ3MgUiBVU3xDYW5hZGF8MzF8ClB8Tm9ydGh3ZXN0IFRlcnJpdG9yaWVzIEZsYWd8cDAwNTB8Tnlsb24gZmxhZyBtZWFzdXJlcyAzNngyNHw5Ljk1fDF8cHVibGlzaGVkfDAuMjV8RmxhZ3MgPj4gTmF0aW9ucyA+PiBQcm92aW5jZXN8MXx8fHxGbGFncyBSIFVTfENhbmFkYXwzMnwKfHx8fHx8fHx8fHx8fHx8fApQfENhbmFkYSBNdWcgTGFyZ2V8cDAwNTF8Q2VyYW1pYyBNdWcgaG9sZHMgNTAwbWx8MTEuOTV8MXxwdWJsaXNoZWR8MC41fFNvdXZlbmlycyA+PiBNdWdzICYgQ3Vwc3wxfHx8fENhbmFkYSBDZXJhbWljcyAmIFBsYXN0aWNzIEx0ZHxDYW5hZGF8MXwKUHxCcml0aXNoIENvbHVtYmlhIE11ZyBMfHAwMDUyfENlcmFtaWMgTXVnIGhvbGRzIDUwMG1sfDExLjk1fDF8cHVibGlzaGVkfDAuNXxTb3V2ZW5pcnMgPj4gTXVncyAmIEN1cHN8MXx8fHxDYW5hZGEgQ2VyYW1pY3MgJiBQbGFzdGljcyBMdGR8Q2FuYWRhfDJ8ClB8QWxiZXJ0YSBNdWcgTGFyZ2V8cDAwNTN8Q2VyYW1pYyBNdWcgaG9sZHMgNTAwbWx8MTEuOTV8MXxwdWJsaXNoZWR8MC41fFNvdXZlbmlycyA+PiBNdWdzICYgQ3Vwc3wxfHx8fENhbmFkYSBDZXJhbWljcyAmIFBsYXN0aWNzIEx0ZHxDYW5hZGF8M3wKUHxTYXNja2F0Y2hld2FuIE11ZyBMYXJnZXxwMDA1NHxDZXJhbWljIE11ZyBob2xkcyA1MDBtbHwxMS45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IE11Z3MgJiBDdXBzfDF8fHx8Q2FuYWRhIENlcmFtaWNzICYgUGxhc3RpY3MgTHRkfENhbmFkYXw0fApQfE1hbml0b2JhIE11ZyBMYXJnZXxwMDA1NXxDZXJhbWljIE11ZyBob2xkcyA1MDBtbHwxMS45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IE11Z3MgJiBDdXBzfDF8fHx8Q2FuYWRhIENlcmFtaWNzICYgUGxhc3RpY3MgTHRkfENhbmFkYXw1fApQfE9udGFyaW8gTXVnIExhcmdlfHAwMDU2fENlcmFtaWMgTXVnIGhvbGRzIDUwMG1sfDExLjk1fDF8cHVibGlzaGVkfDAuNXxTb3V2ZW5pcnMgPj4gTXVncyAmIEN1cHN8MXx8fHxDYW5hZGEgQ2VyYW1pY3MgJiBQbGFzdGljcyBMdGR8Q2FuYWRhfDZ8ClB8UXVlYmVjIE11ZyBMYXJnZXxwMDA1N3xDZXJhbWljIE11ZyBob2xkcyA1MDBtbHwxMS45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IE11Z3MgJiBDdXBzfDF8fHx8Q2FuYWRhIENlcmFtaWNzICYgUGxhc3RpY3MgTHRkfENhbmFkYXw3fApQfENhbmFkYSBQbGF0ZSBMYXJnZXxwMDA1OXxDZXJhbWljIDEyIGluY2ggcGxhdGV8MTcuOTV8MXxwdWJsaXNoZWR8MC41fFNvdXZlbmlycyA+PiBQbGF0ZXN8MXx8fHxDYW5hZGEgQ2VyYW1pY3MgJiBQbGFzdGljcyBMdGR8Q2FuYWRhfDh8ClB8UXVlYmVjIFBsYXRlIGxhcmdlfHAwMDYwfENlcmFtaWMgMTIgaW5jaCBwbGF0ZXwxNy45NXwxfHB1Ymxpc2hlZHwwLjV8U291dmVuaXJzID4+IFBsYXRlc3wxfHx8fENhbmFkYSBDZXJhbWljcyAmIFBsYXN0aWNzIEx0ZHxDYW5hZGF8OXwK]]></data>
	</file>
</module>
