<?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>FormBuilder</name>
	<version>0.2</version>
  <mincmsversion>1.0-svn</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3NhbXBsZV9mb3JtJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5CmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuCgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+Cjx1bD4KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbid0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPgo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiAmbHQ7ZGl2Jmd0OyB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4KPGxpPkN1c3RvbSBUZW1wbGF0ZS4gQmFzaWNhbGx5LCB5b3UgZ2V0IGEgc21hcnR5IHRlbXBsYXRlLCBhIGJ1bmNoIG9mIHZhcmlhYmxlcywgYW5kIHlvdSdyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPgo8L3VsPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTZXR0aW5nczwvaDQ+CjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+CjxoND5UYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9uczwvaDQ+CjxwPlRhYmxlLWxheW91dHMgaGF2ZSBnb3R0ZW4gc2ltcGxlciwgc28geW91ciBvbmx5IG9wdGlvbiBoZXJlIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbmFtZXMgcmVsYXRpdmUgdG8gdGhlIGlucHV0cy4gSWYgeW91J3JlIHVzaW5nIGEgVGFibGUvQ1NTIGxheW91dCwgeW91IGNhbiB1c2UgdGhpcyB0YWIgdG8gc2VsZWN0IHRoZSBmaWVsZCBuYW1lIHBvc2l0aW9ucy48L3A+CjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgc21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS4gVW5sZXNzIHlvdSdyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIHNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0J3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAiUmVxdWlyZWQiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPgo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+CjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSdyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgIm91dHB1dCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4KPC91bD48L2xpPjwvbGk+PC91bD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbiBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0J3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPk5vdGUgdGhhdCBvbmNlIHlvdSd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuIEZvciB0aGlzIHJlYXNvbiwgaXQncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KCjxoMz5Lbm93biBJc3N1ZXM8L2gzPgo8dWw+CjxsaT5Tb21lIGZpZWxkIHR5cGVzIGZyb20gRmVlZGJhY2tGb3JtcyBhcmUgbm90IGltcGxlbWVudGVkIGluIEZvcm1CdWlsZGVyLiBJZiB0aGVyZSBpcyBkZW1hbmQgZm9yIHRoZW0sIHRoZXkgd2lsbCBiZSBhZGRlZC48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJ3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91J3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+ICAKPC91bD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+CjxwPkNvcHlyaWdodCAmY29weTsgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNNU01haWxlciA9Jmd0OyAxLjczPC9saT48L3VsPjxoMz5QYXJhbWV0ZXJzPC9oMz48dWw+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjI8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4KCQkgICAgPHVsPgoJCSAgICA8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3J3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgoJCSAgICA8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KCQk8YnIgLz4=</about>
	<description>Add, edit and manage interactive Forms</description>
	<requires>
	  <requiredname>CMSMailer</requiredname>
	  <requiredversion>1.73</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_add_edit_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcyx0cnVlKTsKCQkkYWVmaWVsZCA9ICRhZWZvcm0tPk5ld0ZpZWxkKCRwYXJhbXMpOwoJCWlmIChpc3NldCgkcGFyYW1zWydhZWZfdXBkJ10pIHx8CgkJCShpc3NldCgkcGFyYW1zWydhZWZfYWRkJ10pICYmICRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSAhPSAnJykpCgkJCXsKCQkJLy8gc2F2ZSB0aGUgZmllbGQuCgkJCSR0aGlzLT5Eb0FjdGlvbignYWRtaW5fc3RvcmVfZmllbGQnLCAkaWQsICRwYXJhbXMpOwoJCQlyZXR1cm47CgkJCX0KCQllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ2FlZl9hZGQnXSkpCgkJCXsKCQkJLy8gc2hvdWxkIGhhdmUgZ290IGEgZmllbGQgdHlwZSBkZWZpbml0aW9uLCBzbyBnaXZlIHJlc3Qgb2YgdGhlIGZpZWxkIG9wdGlvbnMKCQkJLy8gcmVzZXJ2ZSB0aGlzIHNwYWNlIGZvciBzcGVjaWFsIG9wcyA6KQoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydhZWZfb3B0YWRkJ10pKQoJCQl7CgkJCS8vIGNhbGwgdGhlIGZpZWxkJ3Mgb3B0aW9uIGFkZCBtZXRob2QsIHdpdGggYWxsIGF2YWlsYWJsZSBwYXJhbWV0ZXJzCgkJCSRhZWZpZWxkLT5Eb09wdGlvbkFkZCgkcGFyYW1zKTsKCQkJfQoJCWVsc2VpZiAoaXNzZXQoJHBhcmFtc1snYWVmX29wdGRlbCddKSkKCQkJewoJCQkvLyBjYWxsIHRoZSBmaWVsZCdzIG9wdGlvbiBkZWxldGUgbWV0aG9kLCB3aXRoIGFsbCBhdmFpbGFibGUgcGFyYW1ldGVycwoJCQkkYWVmaWVsZC0+RG9PcHRpb25EZWxldGUoJHBhcmFtcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJLy8gbmV3IGZpZWxkLCBvciBpbXBsaWNpdCBhZWZfYWRkLgoJCQkvLyBhZ2FpbiwgcmVzZXJ2aW5nIHRoZSBzcGFjZSBmb3IgZnV0dXJlIGVuZGVhdm9ycwoJCQl9CgkJZWNobyAkYWVmb3JtLT5BZGRFZGl0RmllbGQoJGlkLCAkYWVmaWVsZCwgKGlzc2V0KCRwYXJhbXNbJ2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydkaXNwb3NlX29ubHknXTowKSwgJHJldHVybmlkLCBpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pPyRwYXJhbXNbJ21lc3NhZ2UnXTonJyk7CgkJCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHBhcmFtc1snbWVzc2FnZSddOicnKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZUZpZWxkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdmaWVsZF9kZWxldGVkJykpOwo/PgoK]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZSgpOwoKICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9kZWxldGVkJyk7CiAgICAgICAgJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMpOwogICAgICAgICRhZWZpZWxkID0gJGFlZm9ybS0+TmV3RmllbGQoJHBhcmFtcyk7CgkJJHZhbCA9ICRhZWZpZWxkLT5BZG1pblZhbGlkYXRlKCk7CiAgICAgICAgaWYgKCR2YWxbMF0pCiAgICAgICAgICAgIHsKCSAgICAgICAgJGFlZmllbGQtPlBvc3RBZG1pblN1Ym1pdENsZWFudXAoKTsKICAgICAgICAgICAgJGFlZmllbGQtPlN0b3JlKHRydWUpOwogICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ109JHBhcmFtc1snb3AnXTsKICAgICAgICAgICAgJHRoaXMtPkRvQWN0aW9uKCdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJGlkLCAkcGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgICAgICAkYWVmaWVsZC0+TG9hZEZpZWxkKCRwYXJhbXMpOwogICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdmFsWzFdOwoJCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGaWVsZCgkaWQsICRhZWZpZWxkLCAoaXNzZXQoJHBhcmFtc1snZGlzcG9zZV9vbmx5J10pPyRwYXJhbXNbJ2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHBhcmFtc1snbWVzc2FnZSddOicnKTsKICAgICAgICAJfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPlN0b3JlKCk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ3N1Ym1pdCddID09ICR0aGlzLT5MYW5nKCdzYXZlJykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ2Zvcm0nLCRwYXJhbXNbJ2Zvcm1fb3AnXSk7CiAgICAgICAgICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewoJCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmb3JtX29wJ10pKTsKCQkJfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyxpc3NldCgkcGFyYW1zWydoaWRlX2Vycm9ycyddKT8kcGFyYW1zWydoaWRlX2Vycm9ycyddOjApOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X3ZlcnNpb24nLGlzc2V0KCRwYXJhbXNbJ3Nob3dfdmVyc2lvbiddKT8kcGFyYW1zWydzaG93X3ZlcnNpb24nXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsaXNzZXQoJHBhcmFtc1sncmVsYXhlZF9lbWFpbF9yZWdleCddKT8kcGFyYW1zWydyZWxheGVkX2VtYWlsX3JlZ2V4J106MCk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJyxpc3NldCgkcGFyYW1zWydlbmFibGVfZmFzdGFkZCddKT8kcGFyYW1zWydlbmFibGVfZmFzdGFkZCddOjApOwoKCQkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnY29uZmlndXJhdGlvbl91cGRhdGVkJyk7CiAgICAgICAgJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRzcmNJbmRleCA9ICRhZWZvcm0tPkdldEZpZWxkSW5kZXhGcm9tSWQoJHBhcmFtc1snZmllbGRfaWQnXSk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2RpciddID09ICd1cCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJGRlc3RJbmRleCA9ICRzcmNJbmRleCAtIDE7CiAgICAgICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJGRlc3RJbmRleCA9ICRzcmNJbmRleCArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAkYWVmb3JtLT5Td2FwRmllbGRzQnlJbmRleCgkc3JjSW5kZXgsJGRlc3RJbmRleCk7CgovLyBmb3JjZSByZWxvYWQgb2YgZm9ybSwgdGhpcyBpcyBraW5kYSBoYWNraXNoIGJ1dCBjYW50IHRoaW5rIG9mIGFueXRoaW5nIGVsc2UgOykKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKCiAgICAgICAgZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_required.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgIAogICAgICAgICRhZWZpZWxkID0gJGFlZm9ybS0+R2V0RmllbGRCeUlkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWlmICgkYWVmaWVsZCAhPT0gZmFsc2UpCgkJCXsKCQkJJGFlZmllbGQtPlNldFJlcXVpcmVkKCRwYXJhbXNbJ2FjdGl2ZSddPT0nb24nP3RydWU6ZmFsc2UpOwoJCQkkYWVmaWVsZC0+U3RvcmUoKTsKCQkJfQoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICR0aGlzLT5MYW5nKCdmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJykpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKICAgICAgICBpZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAogICAgICAgICAgICAkcGFyYW1zWydmb3JtX2lkJ10gPSAkdGhpcy0+R2V0Rm9ybUlERnJvbUFsaWFzKCRwYXJhbXNbJ2Zvcm0nXSk7CiAgICAgICAgICAgIH0KICAgICAgICAkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywkcGFyYW1zLHRydWUpOwoKICAgICAgICBlY2hvICRhZWZvcm0tPlJlbmRlckZvcm1IZWFkZXIoKTsKICAgICAgICAkZmluaXNoZWQgPSBmYWxzZTsKICAgICAgICBpZiAoKCRhZWZvcm0tPkdldFBhZ2VDb3VudCgpID4gMSAmJiAkYWVmb3JtLT5HZXRQYWdlTnVtYmVyKCkgPiAwKSB8fAogICAgICAgIAkoaXNzZXQoJHBhcmFtc1snZG9uZSddKSYmICRwYXJhbXNbJ2RvbmUnXT09MSkpCiAgICAgICAgICAgIHsKICAgICAgICAJJHJlcyA9ICRhZWZvcm0tPlZhbGlkYXRlKCk7CgogICAgICAgICAgICBpZiAoJHJlc1swXSA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBlY2hvICRyZXNbMV0uIlxuIjsKICAgICAgICAgICAgICAgICRhZWZvcm0tPlBhZ2VCYWNrKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2RvbmUnXSkgJiYgJHBhcmFtc1snZG9uZSddPT0xKQogICAgICAgICAgICAJewogICAgICAgICAgICAJJGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgCSRyZXN1bHRzID0gJGFlZm9ybS0+RGlzcG9zZSgkcmV0dXJuaWQpOwogICAgICAgICAgICAJfQogICAgICAgICAgICB9CgoJCWlmICghICRmaW5pc2hlZCkKCQkJewoJCQkkcGFybXMgPSBhcnJheSgpOwogICAgCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgCQkkcGFybXNbJ2Zvcm1faWQnXSA9ICRhZWZvcm0tPkdldElkKCk7CiAgICAJCSR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheScsJHBhcm1zKTsKCiAgICAgICAgCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdkZWZhdWx0JywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJyk7CiAgICAgICAgCWVjaG8gJGFlZm9ybS0+UmVuZGVyRm9ybSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7CiAgICAgICAgCWVjaG8gJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKTsKICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAlpZiAoJHJlc3VsdHNbMF0gPT0gdHJ1ZSkKICAgICAgICAJCXsKCQkJCSRwYXJtcyA9IGFycmF5KCk7CiAgICAJCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgCQkJJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgCQkJJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnLCRwYXJtcyk7CgogICAgICAgIAkJJHJldCA9ICRhZWZvcm0tPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwogICAgICAgIAkJaWYgKCRyZXQgIT0gLTEpCiAgICAgICAgCQkJewogICAgICAgIAkJCSR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CiAgICAgICAgCQkJfQogICAgICAgIAkJfQogICAgICAgIAllbHNlCiAgICAgICAgCQl7CgkJCQkkcGFybXMgPSBhcnJheSgpOwoJCQkJJHBhcmFtc1snZXJyb3InXT0nJzsKICAgICAgICAJCWVjaG8gJHRoaXMtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3InKTsKICAgICAgICAJCSRzaG93ID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywwKTsKICAgICAgICAJCWZvcmVhY2ggKCRyZXN1bHRzWzFdIGFzICR0aGlzUmVzKQogICAgICAgIAkJCXsKCQkJCQlpZiAoJHNob3cpCgkJCQkJCXsKICAgICAgICAJCQkJZWNobyAkdGhpc1JlcyAuICc8YnIgLz4nOwogICAgICAJCQkJfQogICAgICAgIAkJCSRwYXJhbXNbJ2Vycm9yJ10gLj0gJHRoaXNSZXMuIlxuIjsKICAgICAgICAJCQl9CiAgICAJCQkkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgCQkJJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgCQkJJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicsJHBhcm1zKTsKICAgICAgICAJCX0KICAgICAgICAJfQogICAgICAgIGVjaG8gJGFlZm9ybS0+UmVuZGVyRm9ybUZvb3RlcigpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkvLyBhbmQgYSBsaXN0IG9mIGFsbCB0aGUgZXh0YW50IGZvcm1zLgogICAgICAgICRmb3JtcyA9ICR0aGlzLT5HZXRGb3JtcygpOwoJCSRudW1fZm9ybXMgPSBjb3VudCgkZm9ybXMpOwogICAgICAgIAogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiaGVhZGVycycsICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSAuCgkJCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zvcm1zJywkdGhpcy0+TGFuZygnZm9ybXMnKSkgLgoJCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdjb25maWcnLCR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uJykpIC4KCQkJJHRoaXMtPkVuZFRhYkhlYWRlcnMoKS4KCQkJJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm10YWInLCR0aGlzLT5TdGFydFRhYigiZm9ybXMiKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9jb25maWd0YWInLCR0aGlzLT5TdGFydFRhYigiY29uZmlnIikpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWJzJywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJHRoaXMtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fYWxpYXMnLCR0aGlzLT5MYW5nKCd0aXRsZV9mb3JtX2FsaWFzJykpOwogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlnZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJCSdhZG1pbl91cGRhdGVfY29uZmlnJywgJHJldHVybmlkKSk7CiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKT8kcGFyYW1zWydtZXNzYWdlJ106JycpOwoKCQkkZm9ybUFycmF5ID0gYXJyYXkoKTsKCQkkY3Vycm93ID0gInJvdzEiOwoJCWZvcmVhY2ggKCRmb3JtcyBhcyAkdGhpc0Zvcm0pCiAgICAJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5yb3djbGFzcyA9ICRjdXJyb3c7CgkJCWlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKSkKCQkJCXsKCQkJCSRvbmVzZXQtPm5hbWUgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsCgkJCQkgCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCiAgICAgICAgICAgIAkJJHRoaXNGb3JtWyduYW1lJ10sIGFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pKTsKCQkJCSRvbmVzZXQtPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkJJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsJ2VkaXQnLCcnLCcnLCdzeXN0ZW1pY29uJyksCgkJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pKTsKCQkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsCgkJCQkJJ2FkbWluX2RlbGV0ZV9mb3JtJywgJycsCgkJCQkJJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywnZGVsZXRlJywnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pLAoJCQkJCSR0aGlzLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nLCR0aGlzRm9ybVsnbmFtZSddKSk7CgoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkb25lc2V0LT5uYW1lPSR0aGlzRm9ybVsnbmFtZSddOwoJCQkJJG9uZXNldC0+ZWRpdGxpbmsgPSAnJzsKCQkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsKCQkJCX0KCQkJJG9uZXNldC0+dXNhZ2UgPSAkdGhpc0Zvcm1bJ2FsaWFzJ107CgkJCWFycmF5X3B1c2goJGZvcm1BcnJheSwkb25lc2V0KTsKCQkJKCRjdXJyb3cgPT0gInJvdzEiPyRjdXJyb3c9InJvdzIiOiRjdXJyb3c9InJvdzEiKTsKCQkJfQoJCWlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKSkKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX25ld19mb3JtJyksJycsCgkJCQkJJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSkpOwoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGZvcm0nLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2Zvcm0nKSwKCQkJCWFycmF5KCkpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYXlfY29uZmlnJywxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vX3Blcm1pc3Npb24nLAoJCQkJJHRoaXMtPkxhbmcoJ2xhY2twZXJtaXNzaW9uJykpOwoJCQl9CgkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2hpZGVfZXJyb3JzJywkdGhpcy0+TGFuZygndGl0bGVfaGlkZV9lcnJvcnMnKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGVfZXJyb3JzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdoaWRlX2Vycm9ycycsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9oaWRlX2Vycm9yc19sb25nJykpOwkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4JywkdGhpcy0+TGFuZygndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCcpKTsJCQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleCcsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAncmVsYXhlZF9lbWFpbF9yZWdleCcsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZycpKTsJCQoKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+TGFuZygndGl0bGVfZW5hYmxlX2Zhc3RhZGQnKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdlbmFibGVfZmFzdGFkZCcsIDEsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfZmFzdGFkZCcsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJykpOwkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zaG93X3ZlcnNpb24nLCR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X3ZlcnNpb24nKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3Nob3dfdmVyc2lvbicsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnc2hvd192ZXJzaW9uJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZycpKTsJCQkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJHRoaXMtPkxhbmcoJ3NhdmUnKSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignY29uZmlnX2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCQogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2Zvcm1zJywgJGZvcm1BcnJheSk7CQkJCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdBZG1pbk1haW4udHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.validate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgkJCmlmICghaXNzZXQoJHBhcmFtc1snZiddKSB8fCAhaXNzZXQoJHBhcmFtc1snciddKSB8fCAhaXNzZXQoJHBhcmFtc1snYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InKTsKCX0KJHBhcmFtc1sncmVzcG9uc2VfaWQnXT0kcGFyYW1zWydyJ107CiRwYXJhbXNbJ2Zvcm1faWQnXT0kcGFyYW1zWydmJ107CiRwYXJhbXNbJ3VzZXJfZm9ybV92YWxpZGF0ZSddPXRydWU7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKCmlmICghJGFlZm9ybS0+Q2hlY2tSZXNwb25zZSgkcGFyYW1zWydmJ10sICRwYXJhbXNbJ3InXSwgJHBhcmFtc1snYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InKTsKCX0KCiRmaWVsZHMgPSAkYWVmb3JtLT5HZXRGaWVsZHMoKTsKJGNvbmZpcm1hdGlvbkZpZWxkID0gLTE7CmZvcigkaT0wOyRpPGNvdW50KCRmaWVsZHMpOyRpKyspCgl7CglpZiAoJGZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJGNvbmZpcm1hdGlvbkZpZWxkID0gJGk7CgkJfQoJfQppZiAoJGNvbmZpcm1hdGlvbkZpZWxkICE9IC0xKQoJewoJJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5BcHByb3ZlVG9HbygkcGFyYW1zWydyJ10pOwoJJHJlc3VsdHMgPSAkYWVmb3JtLT5EaXNwb3NlKCRyZXR1cm5pZCk7CglpZiAoJHJlc3VsdHNbMF0gPT0gdHJ1ZSkKCQl7CgkJJHJldCA9ICRmaWVsZHNbJGNvbmZpcm1hdGlvbkZpZWxkXS0+R2V0T3B0aW9uKCdyZWRpcmVjdF9wYWdlJywnLTEnKTsKCQlpZiAoJHJldCAhPSAtMSkKCQkJewoJCQkkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXQpOwoJCQl9CgkJfQoJZWxzZQoJCXsKCQllY2hvICJFcnJvciE6ICI7CgkJZm9yZWFjaCAoJHJlc3VsdHNbMV0gYXMgJHRoaXNSZXMpCgkJCXsKCQkJZWNobyAkdGhpc1JlcyAuICc8YnIgLz4nOwoJCQl9CgkJfQoJfQplbHNlCgl7CgkJZWNobyAkdGhpcy0+TGFuZygndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvcicpOwoJfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/classes/CheckboxField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJDaGVja2JveEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdDaGVja2JveEZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX211c3RfY2hlY2snKT0+J2NoZWNrZWQnCiAgICAgICAgICAgICk7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGxhYmVsID0gJyc7CgkJaWYgKHN0cmxlbigkdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcsJycpKSA+IDApCgkJCXsKCQkJJGxhYmVsID0gJyZuYnNwOzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJyI+Jy4kdGhpcy0+R2V0T3B0aW9uKCdsYWJlbCcpLic8L2xhYmVsPic7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdfJy4kdGhpcy0+SWQsICd0JywkdGhpcy0+VmFsdWUpLiRsYWJlbDsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCd1bmNoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX3VuY2hlY2tlZCcpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbignY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfY2hlY2tlZCcpKTsKCQkJfQkKCX0KCgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGJlIGRvbmUgdmlhIHZhbGlkYXRpb24KCQkkcmVxSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG1haW5BcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkJCQl7CgkJCQkkcmVxSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkcmVxSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRyZXFJbmRleCwxKTsKCQkJfQoJfQoKCgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJcmV0dXJuIGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrYm94X2xhYmVsJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9sYWJlbCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfY2hlY2tlZCcpKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdW5jaGVja2VkX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF91bmNoZWNrZWRfdmFsdWUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3VuY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfdW5jaGVja2VkJykpLDI1LDI1NSkpLCAgICAgICAgICAgIAkJCgkJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkcmVzdWx0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICcnOwoKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdub25lJzoKCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnY2hlY2tlZCc6CgkJICAJICAgICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCSAgCSAgICAgICAgICAgewoJCSAgCSAgICAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwoJCSAgCSAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCd5b3VfbXVzdF9jaGVjaycsJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSk7CgkJICAJICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkcmVzdWx0LCAkbWVzc2FnZSk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCWZ1bmN0aW9uIGZiQ2hlY2tib3hHcm91cEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5ib3hDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdib3hlcycsJHRoaXMtPmJveENvdW50KTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2NoZWNrYm94ZXMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfY2hlY2tib3hlcycpOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCSRmaWVsZERpc3AgPSBhcnJheSgpOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCgkJCXsKCQkJJGxhYmVsID0gJyc7CgkJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJCWlmIChzdHJsZW4oJG5hbWVzWyRpXSkgPiAwKQoJCQkJewoJCQkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nW10iPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJCQkJfQoJCQkkY2hlY2tfdmFsID0gZmFsc2U7CgkJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJCQkJewoJCQkJJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSk7CgkJCQl9CgkJCSR0aGlzQm94LT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnXycuJHRoaXMtPklkLidbXScsICRpLAoJCQkJJGNoZWNrX3ZhbCAhPT0gZmFsc2U/JGk6Jy0xJyk7CgkJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCQl9CQkJCgkJcmV0dXJuICRmaWVsZERpc3A7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQkkZm9ybSA9ICYkdGhpcy0+Zm9ybV9wdHI7CgkJJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJJGNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2NoZWNrZWQnKTsKCQkkdW5jaGVja2VkID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF91bmNoZWNrZWQnKTsKCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCgkJCXsKCQkJaWYgKCR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSkgPT09IGZhbHNlKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkZmllbGRSZXQsICR1bmNoZWNrZWRbJGldKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkZmllbGRSZXQsICRjaGVja2VkWyRpXSk7CgkJCQl9CgkJCX0KCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJGZpZWxkUmV0KTsJCQkKCX0KCgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmJveEFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsNCkgPT0gJ2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF9jaGVja2VkJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2JveF91bmNoZWNrZWQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEJveGVzKCk7CgkJaWYgKCR0aGlzLT5ib3hBZGQgPiAwKQoJCQl7CgkJCSR0aGlzLT5ib3hDb3VudCArPSAkdGhpcy0+Ym94QWRkOwoJCQkkdGhpcy0+Ym94QWRkID0gMDsKCQkJfQoJCSRib3hlcyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrYm94X2xhYmVsJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfdW5jaGVja2VkX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPmJveENvdW50PjE/JHRoaXMtPmJveENvdW50OjEpOyRpKyspCgkJCXsKCQkJJGJveGVzIC49ICc8dHI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9ib3hfbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYm94X25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfYm94X2NoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF9jaGVja2VkJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2JveF91bmNoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF91bmNoZWNrZWQnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGJveGVzIC49ICc8L3RhYmxlPic7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfZGV0YWlscycpLCRib3hlcykKCQkpOwoJCSRhZHYgPSBhcnJheSgpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkLCBzaW5jZSB0aGlzIGNhbiBvbmx5IGJlIGRvbmUgdmlhIHZhbGlkYXRpb24KCQkkcmVxSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG1haW5BcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkJCQl7CgkJCQkkcmVxSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkcmVxSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRyZXFJbmRleCwxKTsKCQkJfQoJfQoKCglmdW5jdGlvbiBQb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCkKCXsKCQkkbmFtZXMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X25hbWUnKTsKCQkkY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfY2hlY2tlZCcpOwoJCSR1bmNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X3VuY2hlY2tlZCcpOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbmFtZXMpOyRpKyspCgkJCXsKCQkJaWYgKCRuYW1lc1skaV0gPT0gJycgJiYgJGNoZWNrZWRbJGldID09ICcnICkKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfbmFtZScsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfY2hlY2tlZCcsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfdW5jaGVja2VkJywgJGkpOwoJCQkJJGktLTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5jb3VudEJveGVzKCk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/CountryPickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmNsYXNzIGZiQ291bnRyeVBpY2tlckZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCXZhciAkQ291bnRyaWVzOwoJCglmdW5jdGlvbiBmYkNvdW50cnlQaWNrZXJGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdDb3VudHJ5UGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgogICAgICAgICR0aGlzLT5Db3VudHJpZXMgPSBhcnJheSgkbW9kLT5MYW5nKCdub19kZWZhdWx0Jyk9PicnLAogICAgICAgICdBZmdoYW5pc3Rhbic9PidBRicsICdBbGFuZCBJc2xhbmRzJz0+J0FYJywgCiAgICAgICAgJ0FsYmFuaWEnPT4nQUwnLCAgJ0FsZ2VyaWEnPT4nRFonLCAnQW1lcmljYW4gU2Ftb2EnPT4nQVMnLCAnQW5kb3JyYSc9PidBRCcsCiAgICAgICAgICdBbmdvbGEnPT4nQU8nLCAnQW5ndWlsbGEnPT4nQUknLCAnQW50YXJjdGljYSc9PidBUScsICAnQW50aWd1YSBhbmQgQmFyYnVkYSc9PidBRycsCiAgICAgICAgJ0FyZ2VudGluYSc9PidBUicsICdBcm1lbmlhJz0+J0FNJywgJ0FydWJhJz0+J0FXJywgJ0F1c3RyYWxpYSc9PidBVScsICdBdXN0cmlhJz0+J0FUJywgCQknQXplcmJhaWphbic9PidBWicsICdCYWhhbWFzJz0+J0JTJywgJ0JhaHJhaW4nPT4nQkgnLCAnQmFyYmFkb3MnPT4nIEJCJywKICAgICAgICAnQmFuZ2xhZGVzaCc9PidCRCcsICdCZWxhcnVzJz0+J0JZJywgJ0JlbGdpdW0nPT4nQkUnLAogICAgICAgICdCZWxpemUnPT4nQlonLCAnQmVuaW4nPT4nQkonLCAnQmVybXVkYSc9PidCTScsICdCaHV0YW4nPT4nQlQnLCAnQm90c3dhbmEnPT4nQlcnLAogICAgICAgICdCb2xpdmlhJz0+J0JPJywgJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnPT4nQkEnLCAnQm91dmV0IElzbGFuZCc9PidCVicsCiAgICAgICAgJ0JyYXppbCc9PidCUicsICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknPT4nSU8nLCAnQnJ1bmVpIERhcnVzc2FsYW0nPT4nQk4nLCAnQnVsZ2FyaWEnPT4nQkcnLAogICAgICAgICdCdXJraW5hIEZhc28nPT4nQkYnLCAnQnVydW5kaSc9PidCSScsICdDYW1ib2RpYSc9PidLSCcsCiAgICAgICAgJ0NhbWVyb29uJz0+J0NNJywgJ0NhbmFkYSc9PidDQScgLCAnQ2FwZSBWZXJkZSc9PidDVicsICdDYXltYW4gSXNsYW5kcyc9PidLWScsIAogICAgICAgICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnPT4nQ0YnLCAnQ2hhZCc9PidURCcsCiAgICAgICAgJ0NoaWxlJz0+J0NMJywgJ0NoaW5hJz0+J0NOJywgJ0NocmlzdG1hcyBJc2xhbmQnPT4nQ1gnLCAKICAgICAgICAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnPT4nQ0MnLCAnQ29sb21iaWEnPT4nQ08nLCAnQ29tb3Jvcyc9PidLTScsCiAgICAgICAgJ0NvbmdvJz0+J0NHJywgJ0NvbmdvLCAgRGVtb2NyYXRpYyBSZXB1YmxpYyc9PidDRCcsICAnQ29vayBJc2xhbmRzJz0+J0NLJywKICAgICAgICAnQ29zdGEgUmljYSc9PidDUicsICdDb3RlIERcJ0l2b2lyZSAoSXZvcnkgQ29hc3QpJz0+J0NJJywgJ0Nyb2F0aWEgKEhydmF0c2thKSc9PidIUicsICAnQ3ViYSc9PidDVScsCiAgICAgICAgJ0N5cHJ1cyc9PidDWScsICdDemVjaCBSZXB1YmxpYyc9PidDWicsICdEZW5tYXJrJz0+J0RLJywKICAgICAgICAnRGppYm91dGknPT4nREonLCAnRG9taW5pY2EnPT4nRE0gJywgICdEb21pbmljYW4gUmVwdWJsaWMnPT4nRE8nLAogICAgICAgICdFYXN0IFRpbW9yJz0+J1RQJywgJ0VjdWFkb3InPT4nRUMnLAogICAgICAgICdFZ3lwdCc9PidFRycsICdFbCBTYWx2YWRvcic9PidTVicsICdFcXVhdG9yaWFsIEd1aW5lYSc9PidHUScsCiAgICAgICAgJ0VyaXRyZWEnPT4nRVInLCAnRXN0b25pYSc9PidFRScsICdFdGhpb3BpYSc9PidFVCcsICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknPT4nRksnLAogICAgICAgICdGYXJvZSBJc2xhbmRzJz0+J0ZPJywgJ0ZpamknPT4nRkonLAogICAgICAgICdGaW5sYW5kJz0+J0ZJJywgJ0ZyYW5jZSc9PidGUicsICdGcmFuY2UsICBNZXRyb3BvbGl0YW4nPT4nRlgnLAogICAgICAgICAnRnJlbmNoIEd1aWFuYSc9PidHRicsICdGcmVuY2ggUG9seW5lc2lhJz0+J1BGJywgJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcyc9PidURicsCiAgICAgICAgICdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJz0+J01LJywKICAgICAgICAnR2Fib24nPT4nR0EnLCAnR2FtYmlhJz0+J0dNJywgJ0dlb3JnaWEnPT4nR0UnLCAnR2VybWFueSc9PidERScsCiAgICAgICAgICdHaGFuYSc9PidHSCcsICdHaWJyYWx0YXInPT4nR0knLCAnR3JlYXQgQnJpdGFpbiAoVUspJz0+J0dCJywKICAgICAgICAnR3JlZWNlJz0+J0dSJywgJ0dyZWVubGFuZCc9PidHTCcsICAnR3JlbmFkYSc9PidHRCcsCiAgICAgICAgJ0d1YWRlbG91cGUnPT4nR1AnLCAgJ0d1YW0nPT4nR1UnLCAgJ0d1YXRlbWFsYSc9PidHVCcsCiAgICAgICAgJ0d1ZXJuc2V5Jz0+J0dGJywgICdHdWluZWEnPT4nR04nLCAgJ0d1aW5lYS1CaXNzYXUnPT4nR1cnLAogICAgICAgICdHdXlhbmEnPT4nR1knLCAgJ0hhaXRpJz0+J0hUJywgICdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc9PidITScsCiAgICAgICAgJ0hvbmR1cmFzJz0+J0hOJywgICdIb25nIEtvbmcnPT4nSEsnLAogICAgICAgICdIdW5nYXJ5Jz0+J0hVJywgICdJY2VsYW5kJz0+J0lTJywgICdJbmRpYSc9PidJTicsCiAgICAgICAgJ0luZG9uZXNpYSc9PidJRCcsICAnSXJhbic9PidJUicsICAnSXJhcSc9PidJUScsIAogICAgICAgICdJcmVsYW5kJz0+J0lFJywgJ0lzcmFlbCc9PidJTCcsICAnSXNsZSBvZiBNYW4nPT4nSU0nLCAKICAgICAgICAnSXRhbHknPT4nSVQnLCAnSmVyc2V5Jz0+J0pFJywgICdKYW1haWNhJz0+J0pNJywgICdKYXBhbic9PidKUCcsCiAgICAgICAgICdKb3JkYW4nPT4nSk8nLCAnS2F6YWtoc3Rhbic9PidLWicsICAnS2VueWEnPT4nS0UnLCAKICAgICAgICAnS2lyaWJhdGknPT4nS0knLCAgJ0tvcmVhIChOb3J0aCknPT4nS1AnLCAgJ0tvcmVhIChTb3V0aCknPT4nS1InLCAKICAgICAgICAnS3V3YWl0Jz0+J0tXJywgJ0t5cmd5enN0YW4nPT4nS0cnLCAKICAgICAgICAnTGFvcyc9PidMQScsICAnTGF0dmlhJz0+J0xWJywgJ0xlYmFub24nPT4nTEInLCAKICAgICAgICAnTGllY2h0ZW5zdGVpbic9PidMSScsICAnTGliZXJpYSc9PidMUicsICdMaWJ5YSc9PidMWScsIAogICAgICAgICdMZXNvdGhvJz0+J0xTJywgICdMaXRodWFuaWEnPT4nTFQnLCAnTHV4ZW1ib3VyZyc9PidMVScsIAogICAgICAgICdNYWNhdSc9PidNTycsICAnTWFkYWdhc2Nhcic9PidNRycsICdNYWxhd2knPT4nTVcnLCAKICAgICAgICAnTWFsYXlzaWEnPT4nTVknLCAgJ01hbGRpdmVzJz0+J01WJywgJ01hbGknPT4nTUwnLCAKICAgICAgICAnTWFsdGEnPT4nTVQnLCAgJ01hcnNoYWxsIElzbGFuZHMnPT4nTUgnLCAnTWFydGluaXF1ZSc9PidNUScsIAogICAgICAgICdNYXVyaXRhbmlhJz0+J01SJywgICdNYXVyaXRpdXMnPT4nTVUnLCAnTWF5b3R0ZSc9PidZVCcsIAogICAgICAgICdNZXhpY28nPT4nTVgnLCAgJ01pY3JvbmVzaWEnPT4nRk0nLCAnTW9uYWNvJz0+J01DJywgCiAgICAgICAgJ01vbGRvdmEnPT4nTUQnLCAgJ01vcm9jY28nPT4nTUEnLCAnTW9uZ29saWEnPT4nTU4nLCAKICAgICAgICAnTW9udHNlcnJhdCc9PidNUycsICAnTW96YW1iaXF1ZSc9PidNWicsICdNeWFubWFyJz0+J01NJywgCiAgICAgICAgJ05hbWliaWEnPT4nTkEnLCAgJ05hdXJ1Jz0+J05SJywgICdOZXBhbCc9PidOUCcsCiAgICAgICAgJ05ldGhlcmxhbmRzJz0+J05MJywgICdOZXRoZXJsYW5kcyBBbnRpbGxlcyc9PidBTicsICAnTmV1dHJhbCBab25lJz0+J05UJywKICAgICAgICAnTmV3IENhbGVkb25pYSc9PidOQycsICAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSc9PidOWicsICAnTmljYXJhZ3VhJz0+J05JJywgICdOaWdlcic9PidORScsCiAgICAgICAgJ05pZ2VyaWEnPT4nTkcnLCAgJ05pdWUnPT4nTlUnLCAgJ05vcmZvbGsgSXNsYW5kJz0+J05GJywgCiAgICAgICAgJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcyc9PidNUCcsICAnTm9yd2F5Jz0+J05PJywgCiAgICAgICAgJ09tYW4nPT4nT00nLCAnUGFraXN0YW4nPT4nUEsnLCAgJ1BhbGF1Jz0+J1BXJywgICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknPT4nUFMnLAogICAgICAgICdQYW5hbWEnPT4nUEEnLCAgJ1BhcHVhIE5ldyBHdWluZWEnPT4nUEcnLCAKICAgICAgICAnUGFyYWd1YXknPT4nUFknLCAnUGVydSc9PidQRScsICAnUGhpbGlwcGluZXMnPT4nUEgnLCAKICAgICAgICAnUGl0Y2Fpcm4nPT4nUE4nLCAnUG9sYW5kJz0+J1BMJywgICdQb3J0dWdhbCc9PidQVCcsICAnUHVlcnRvIFJpY28nPT4nUFInLAogICAgICAgICdRYXRhcic9PidRQScsICAnUmV1bmlvbic9PidSRScsICAnUm9tYW5pYSc9PidSTycsIAogICAgICAgICdSdXNzaWFuIEZlZGVyYXRpb24nPT4nUlUnLCAgJ1J3YW5kYSc9PidSVycsICAnUy4gR2VvcmdpYSBhbmQgUy4gU2FuZHdpY2ggSXNscy4nPT4nR1MnLAogICAgICAgICdTYWludCBLaXR0cyBhbmQgTmV2aXMnPT4nS04nLCAgJ1NhaW50IEx1Y2lhJz0+J0xDJywgICdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJz0+J1ZDJywKICAgICAgICAnU2Ftb2EnPT4nV1MnLCAgJ1NhbiBNYXJpbm8nPT4nU00nLCAgJ1NhbyBUb21lIGFuZCBQcmluY2lwZSc9PidTVCcsCiAgICAgICAgICdTYXVkaSBBcmFiaWEnPT4nU0EnLCAgJ1NlbmVnYWwnPT4nU04nLAogICAgICAgICdTZXljaGVsbGVzJz0+J1NDJywgICdTaWVycmEgTGVvbmUnPT4nU0wnLCAgJ1NpbmdhcG9yZSc9PidTRycsCiAgICAgICAgJ1Nsb3ZlbmlhJz0+J1NJJywgICdTbG92YWsgUmVwdWJsaWMnPT4nU0snLCAgJ1NvbG9tb24gSXNsYW5kcyc9PidTQicsICAnU29tYWxpYSc9PidTTycsIAogICAgICAgICdTb3V0aCBBZnJpY2EnPT4nWkEnLAogICAgICAgICdTcGFpbic9PidFUycsICAnU3JpIExhbmthJz0+J0xLJywgICdTdC4gSGVsZW5hJz0+J1NIJywgICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAnPT4nUE0nLAogICAgICAgICdTdWRhbic9PidTRCcsICAnU3VyaW5hbWUnPT4nU1InLAogICAgICAgICdTdmFsYmFyZCAmYW1wOyBKYW4gTWF5ZW4gSXNsYW5kcyc9PidTSicsICAnU3dhemlsYW5kJz0+J1NaJywKICAgICAgICAnU3dlZGVuJz0+J1NFJywgICdTd2l0emVybGFuZCc9PidDSCcsICAnU3lyaWEnPT4nU1knLAogICAgICAgICdUYWl3YW4nPT4nVFcnLCAgJ1RhamlraXN0YW4nPT4nVEonLCAgJ1RhbnphbmlhJz0+J1RaJywKICAgICAgICAnVGhhaWxhbmQnPT4nVEgnLCAgJ1RvZ28nPT4nVEcnLCAgJ1Rva2VsYXUnPT4nVEsnLCAKICAgICAgICAnVG9uZ2EnPT4nVE8nLCAnVHJpbmlkYWQgYW5kIFRvYmFnbyc9PidUVCcsICAnVHVuaXNpYSc9PidUTicsIAogICAgICAgICdUdXJrZXknPT4nVFInLCAnVHVya21lbmlzdGFuJz0+J1RNJywgICdUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMnPT4nVEMnLAogICAgICAgICdUdXZhbHUnPT4nVFYnLCAgJ1VnYW5kYSc9PidVRycsIAogICAgICAgICdVa3JhaW5lJz0+J1VBJywgICdVbml0ZWQgQXJhYiBFbWlyYXRlcyc9PidBRScsICAnVW5pdGVkIEtpbmdkb20nPT4nVUsnLAogICAgICAgICdVbml0ZWQgU3RhdGVzJz0+J1VTJywgJ1VTIE1pbm9yIE91dGx5aW5nIElzbGFuZHMnPT4nVU0nLCAgJ1VydWd1YXknPT4nVVknLCAKICAgICAgICAnVXpiZWtpc3Rhbic9PidVWicsIAogICAgICAgICdWYW51YXR1Jz0+J1ZVJywgICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc9PidWQScsIAogICAgICAgICdWZW5lenVlbGEnPT4nVkUnLCAgJ1ZpZXQgTmFtJz0+J1ZOJywgICdWaXJnaW4gSXNsYW5kcyAoQnJpdGlzaCknPT4nVkcnLAogICAgICAgICdWaXJnaW4gSXNsYW5kcyAoVS5TLiknPT4nVkknLCAgJ1dhbGxpcyBhbmQgRnV0dW5hIElzbGFuZHMnPT4nV0YnLCAKICAgICAgICAnV2VzdGVybiBTYWhhcmEnPT4nRUgnLCAnWWVtZW4nPT4nWUUnLCAKICAgICAgICAnWXVnb3NsYXZpYSc9PidZVScsICAnWmFtYmlhJz0+J1pNJywgJ1ppbWJhYndlJz0+J1pXJyApOwoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlyZXR1cm4gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+Q291bnRyaWVzKTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJdW5zZXQoJHRoaXMtPkNvdW50cmllc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSR0aGlzLT5Db3VudHJpZXMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSwkdGhpcy0+Q291bnRyaWVzKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+Q291bnRyaWVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPkNvdW50cmllcyk7CgkJCX0KCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ18nLiR0aGlzLT5JZCwgJHRoaXMtPkNvdW50cmllcywgLTEsICR0aGlzLT5WYWx1ZSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5Db3VudHJpZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5JyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdvcHRfZGVmYXVsdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkNvdW50cmllcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJE1vbnRoczsKCQoJZnVuY3Rpb24gZmJEYXRlUGlja2VyRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGF0ZVBpY2tlckZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5Nb250aHMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9qYW51YXJ5Jyk9PjEsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfZmVicnVhcnknKT0+MiwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9tYXJjaCcpPT4zLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2FwcmlsJyk9PjQsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfbWF5Jyk9PjUsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ2RhdGVfanVuZScpPT42LAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2p1bHknKT0+NywKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9hdWd1c3QnKT0+OCwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9zZXB0ZW1iZXInKT0+OSwKICAgICAgICAgICAgJG1vZC0+TGFuZygnZGF0ZV9vY3RvYmVyJyk9PjEwLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX25vdmVtYmVyJyk9PjExLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2RlY2VtYmVyJyk9PjEyKTsKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICR0b2RheSA9IGdldGRhdGUoKTsKICAgICAgICREYXlzID0gYXJyYXkoKTsKICAgICAgIGZvciAoJGk9MTskaTwzMjskaSsrKQogICAgICAgICB7CiAgICAgICAgIAkkRGF5c1skaV09JGk7CiAgICAgICAgIH0KICAgICAgICRZZWFyID0gYXJyYXkoKTsKICAgICAgIGZvciAoJGk9JHRvZGF5Wyd5ZWFyJ10tMTA7JGk8JHRvZGF5Wyd5ZWFyJ10rMTA7JGkrKykKICAgICAgICAgewogICAgICAgICAJJFllYXJbJGldPSRpOwogICAgICAgICB9CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSR0b2RheVsnbWRheSddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCSR0b2RheVsnbW9uJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJJHRvZGF5Wyd5ZWFyJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsJCQkKCQkJfQoKCiAgICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJERheXMsIC0xLCAkdG9kYXlbJ21kYXknXSkgLgogICAgICAgCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJHRoaXMtPk1vbnRocywgLTEsICR0b2RheVsnbW9uJ10pLgogICAgICAgCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJFllYXIsIC0xLCAkdG9kYXlbJ3llYXInXSk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHRoZURhdGUgPSBta3RpbWUgKCAxLCAxLCAxLCAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKSwgICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLCAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKSApOwoJCQlyZXR1cm4gZGF0ZSgkdGhpcy0+R2V0T3B0aW9uKCdkYXRlZm9ybWF0JywnaiBGIFknKSwgJHRoZURhdGUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRlX2Zvcm1hdCcpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZGF0ZV9mb3JtYXQnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2RhdGVfZm9ybWF0JywnaiBGIFknKSwyNSwyNSksJG1vZC0+TGFuZygnaGVscF9kYXRlX2Zvcm1hdCcpKQoJCSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDatabase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRGF0YWJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25EYXRhYmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+SGlkZUxhYmVsID0gMTsKCQkkdGhpcy0+YXBwcm92ZWRCeSA9ICcnOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCQl7CgkJCXJldHVybiAnJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdfJy4kdGhpcy0+SWQsCQoJCQkkdGhpcy0+RW5jb2RlUmVxSWQoJHRoaXMtPlZhbHVlKSk7Cgl9CgoJZnVuY3Rpb24gU2V0QXBwcm92YWxOYW1lKCRuYW1lKQoJewoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJG5hbWU7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJIHJldHVybiAnJzsKCX0KCQoJZnVuY3Rpb24gRGVjb2RlUmVxSWQoJHRoZVZhbCkKCXsKCQkkdG1wID0gYmFzZTY0X2RlY29kZSgkdGhlVmFsKTsKCQkkdG1wMiA9IHN0cl9yZXBsYWNlKHNlc3Npb25faWQoKSwnJywkdG1wKTsKCQlpZiAoc3Vic3RyKCR0bXAyLDAsMSkgPT0gJ18nKQoJCQl7CgkJCXJldHVybiBzdWJzdHIoJHRtcDIsMSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIC0xOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIEVuY29kZVJlcUlkKCRyZXFfaWQpCgl7CgkJcmV0dXJuIGJhc2U2NF9lbmNvZGUoc2Vzc2lvbl9pZCgpLidfJy4kcmVxX2lkKTsKCX0KCQoJCglmdW5jdGlvbiBTZXRWYWx1ZSgkdmFsKQoJewoKCQkkZGVjdmFsID0gYmFzZTY0X2RlY29kZSgkdmFsKTsKICAgCgkJaWYgKCR2YWwgPT09IGZhbHNlKQoJCQl7CgkJCS8vIG5vIHZhbHVlIHNldCwgc28gd2UnbGwgbGVhdmUgdmFsdWUgYXMgZmFsc2UKCQkJfQoJCWVsc2VpZiAoc3RycG9zKCRkZWN2YWwsJ18nKSA9PT0gZmFsc2UpCgkJCXsKCQkJLy8gdW5lbmNyeXB0ZWQgdmFsdWUsIGNvbWluZyBpbiBmcm9tIHByZXZpb3VzIHJlc3BvbnNlCgkJCSR0aGlzLT5WYWx1ZSA9ICR2YWw7CgkJCX0KCQllbHNlCgkJCXsKCQkJLy8gZW5jcnlwdGVkIHZhbHVlIGNvbWluZyBpbiBmcm9tIGEgZm9ybSwgc28gd2UnbGwgdXBkYXRlLgoJCQkkdGhpcy0+VmFsdWUgPSAkdGhpcy0+RGVjb2RlUmVxSWQoJHZhbCk7CgkJCX0KCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCXJldHVybiBhcnJheSgpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCiAgICAvLyBXcml0ZSBUbyB0aGUgRGF0YWJhc2UKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkkZm9ybSA9ICYkdGhpcy0+Zm9ybV9wdHI7CgkJJGZvcm0tPlN0b3JlUmVzcG9uc2UoKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6LTEpLCR0aGlzLT5hcHByb3ZlZEJ5KTsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CSAgIAoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwgJycpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkRpcmVjdG9yJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwogICAgICAgCSR0aGlzLT5hZGRyZXNzQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsNCkgPT0gJ2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gY291bnRBZGRyZXNzZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnKTsKCgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykKCQkJCXsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSk7Cgl9CgoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3B0ID0gJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ2Rlc3RpbmF0aW9uX2NvdW50JywkbnVtKTsKICAgICAgICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50QWRkcmVzc2VzKCk7CgkJaWYgKCR0aGlzLT5hZGRyZXNzQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+YWRkcmVzc0NvdW50ICs9ICR0aGlzLT5hZGRyZXNzQWRkOwoJCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCcpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPmFkZHJlc3NDb3VudD4xPyR0aGlzLT5hZGRyZXNzQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gICc8dHI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2Rlc3RpbmF0aW9uX2FkZHJlc3NbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGRlc3RzIC49ICc8L3RhYmxlPic7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9CgkJLy8gcmVtb3ZlIHRoZSAiZW1haWwgc3ViamVjdCIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCS8vIHJlbW92ZSB0aGUgImhpZGUgY3NzIiBmaWVsZAoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkYWR2QXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSkKCQkJCXsKCQkJCSRoaWRlSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkaGlkZUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkYWR2QXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQlpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQoJCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSksCgkJCSR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywoJHRoaXMtPlZhbHVlIC0gMSkpKTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQlpZiAoY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkJaWYgKCEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSkpCgkJCXsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpIC4gJzxici8+JzsKCQkJfQogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvcHQpOyRpKyspCiAgICAJICAgewoJCQlpZiAoISBwcmVnX21hdGNoKCRtb2QtPmVtYWlsX3JlZ2V4LCAkb3B0WyRpXSkpCiAgICAJICAgICAgIHsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJG9wdFskaV0pLic8YnIvPic7CiAgICAJICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOwogICAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmail.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgIH0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfYWRkcmVzcycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9hZGRyZXNzJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmFkZHJlc3NBZGQgPSAxOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQoJewoJCSRkZWxjb3VudCA9IDA7CgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCgkJCXsKCQkJaWYgKHN1YnN0cigkdGhpc0tleSwwLDQpID09ICdkZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9hZGRyZXNzJywnJyk7CgkJJHJldD0gJG1vZC0+TGFuZygndG8nKS4iOiAiOwoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgIGlmIChjb3VudCgkb3B0KT4xKQoJCSAgICAgIHsKCQkgICAgICAkcmV0Lj0gY291bnQoJG9wdCk7CgkJICAgICAgJHJldC49ICIgIi4kbW9kLT5MYW5nKCdyZWNpcGllbnRzJyk7CgkJICAgICAgfQoJCSAgZWxzZQoJCSAgICAgIHsKCQkgICAgICAkcmV0Lj0gJG9wdFswXTsKCQkgICAgICB9CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRyZXQgLj0gJG9wdDsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRyZXQuPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwogICAgICAgICAgfQogICAgICAgICRyZXQuPSAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbignZGVzdGluYXRpb25fYWRkcmVzcycpLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3N1YmplY3QnKSk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkkdGhpcy0+Y291bnRBZGRyZXNzZXMoKTsKCQlpZiAoJHRoaXMtPmFkZHJlc3NBZGQgPiAwKQoJCQl7CgkJCSR0aGlzLT5hZGRyZXNzQ291bnQgKz0gJHRoaXMtPmFkZHJlc3NBZGQ7CgkJCSR0aGlzLT5hZGRyZXNzQWRkID0gMDsKCQkJfQoJCSRkZXN0cyA9ICc8dGFibGUgIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPmFkZHJlc3NDb3VudD4xPyR0aGlzLT5hZGRyZXNzQ291bnQ6MSk7JGkrKykKCQkJewoJCQkkZGVzdHMgLj0gJzx0cj48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2Rlc3RpbmF0aW9uX2FkZHJlc3NbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZGVsXycuJGksICRpLC0xKS4KICAgICAgICAgICAgIAkJJzwvdGQ+PC90cj4nOwoJCQl9CgkJJGRlc3RzIC49ICc8L3RhYmxlPic7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICAgIHsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkkb3B0ID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQlpZiAoJG9wdCA9PT0gZmFsc2UgfHwgY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkJaWYgKCEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSkpCgkJCXsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpIC4gJzxici8+JzsKCQkJfQogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvcHQpOyRpKyspCiAgICAJICAgewogICAgCSAgIGlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICRvcHRbJGldKSkKICAgIAkgICAgICAgewogICAgCSAgICAgICAJJHJldCA9IGZhbHNlOwogICAgICAgICAgICAgICAgJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbm90X3ZhbGlkX2VtYWlsJywkb3B0WyRpXSkgLiAnPGJyLz4nOwogICAgCSAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsgICAgICAgCiAgICB9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwgJycpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRW1haWxCYXNlIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICAgIHZhciAkc2FtcGxlVGVtcGxhdGVDb2RlOwogICAgdmFyICR0ZW1wbGF0ZVZhcmlhYmxlczsKCQoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwoKICAgICAgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEb3B0X2VtYWlsX3RlbXBsYXRlJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGUodGhpcy5mb3JtKVwiIC8+IjsKCgkJJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzID0gQXJyYXkoCiAgICAgICAgJ3skc3ViX2Zvcm1fbmFtZX0nPT4kbW9kLT5MYW5nKCd0aXRsZV9mb3JtX25hbWUnKSwKICAgICAgICAneyRzdWJfZGF0ZX0nPT4kbW9kLT5MYW5nKCdoZWxwX3N1Ym1pc3Npb25fZGF0ZScpLAogICAgICAgICd7JHN1Yl9ob3N0fSc9PiRtb2QtPkxhbmcoJ2hlbHBfc2VydmVyX25hbWUnKSwKICAgICAgICAneyRzdWJfc291cmNlX2lwfSc9PiRtb2QtPkxhbmcoJ2hlbHBfc3ViX3NvdXJjZV9pcCcpLAogICAgICAgICd7JHN1Yl91cmx9Jz0+JG1vZC0+TGFuZygnaGVscF9zdWJfdXJsJykKCQkpOwogICAgfQoKCS8vIG92ZXJyaWRlIG1lIQogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7Cgl9CgogICAgZnVuY3Rpb24gVGVtcGxhdGVTdGF0dXMoKQogICAgewogICAgCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpID09ICcnKQogICAgCQl7CiAgICAJCXJldHVybiAkbW9kLT5MYW5nKCdlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0Jyk7CiAgICAJCX0KICAgIH0KCgkvLyBvdmVycmlkZSBtZSEKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7Cgl9CgoJZnVuY3Rpb24gQWRkVGVtcGxhdGVWYXJpYWJsZSgkbmFtZSwkZGVmKQoJewoJCSR0aGVLZXkgPSAneyQnLiRuYW1lLid9JzsKCQkkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXNbJHRoZUtleV0gPSAkZGVmOwoJfQoKCWZ1bmN0aW9uIE1ha2VWYXIoJHN0cmluZykKCXsKCQkkbWF4dmFybGVuID0gMjQ7CgkJJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXHMrLycsJ18nLCRzdHJpbmcpKTsKCQkkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCdfJywkc3RyaW5nKSk7CgkJaWYgKHN0cmxlbigkc3RyaW5nKSA+ICRtYXh2YXJsZW4pCgkJCXsKCQkJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJG1heHZhcmxlbik7CgkJCSRwb3MgPSBzdHJycG9zKCRzdHJpbmcsJ18nKTsKCQkJaWYgKCRwb3MgIT09IGZhbHNlKQoJCQkJewoJCQkJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJHBvcyk7CgkJCQl9CgkJCX0KCQlyZXR1cm4gJHN0cmluZzsKCX0KCiAgICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVUZW1wbGF0ZSgpCiAgICB7CiAgICAJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJJHJldCA9ICRtb2QtPkxhbmcoJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnKTsKICAgIAlmb3JlYWNoKCR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAJCXsKICAgIAkJJHJldCAuPSAkdGhpc1ZhbC4nOiAnLiR0aGlzS2V5LiJcbiI7CiAgICAJCX0KICAgIAkkcmV0IC49ICJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJCQl7CiAgICAgICAgICAgICAgICAkcmV0IC49ICRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnOiB7JCcgLiAkdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0TmFtZSgpKSAuICJ9XG4iOwogICAgICAgICAgICAgICAgfQogICAgICAgIAl9CiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9CgoJLy8gb3ZlcnJpZGUgbWUgYXMgbmVjZXNzYXJ5CglmdW5jdGlvbiBTZXRGcm9tQWRkcmVzcygpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoJLy8gb3ZlcnJpZGUgbWUgYXMgbmVjZXNzYXJ5CglmdW5jdGlvbiBTZXRGcm9tTmFtZSgpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgogICAgLy8gU2VuZCBvZmYgdGhvc2UgZW1haWxzCglmdW5jdGlvbiBTZW5kRm9ybSgkZGVzdGluYXRpb25fYXJyYXksICRzdWJqZWN0KQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWVzc2FnZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3RlbXBsYXRlJywnJyk7CgkJaWYgKCRtZXNzYWdlID09ICcnKQoJCQl7CgkJCSRtZXNzYWdlID0gJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CgkJCX0KCiAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9mb3JtX25hbWUnLCR0aGlzLT5mb3JtX3B0ci0+R2V0TmFtZSgpKTsKICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CiAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9ob3N0JywkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSk7CiAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9zb3VyY2VfaXAnLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKICAgICAgICBpZiAoZW1wdHkoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkKICAgICAgICAJewogICAgICAgIAkkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJG1vZC0+TGFuZygnbm9fcmVmZXJyZXJfaW5mbycpKTsKICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAkkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3VybCcsJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKCQkJfQoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQkkdW5zcGVjID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkJCXsKCQkJCSRyZXBsVmFsID0gJG90aGVyc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJCQkJaWYgKCRyZXBsVmFsID09ICcnKQoJCQkJCXsKCQkJCQkkcmVwbFZhbCA9ICR1bnNwZWM7CgkJCQkJfQogICAgICAgICAgICAgICAgfQogICAgICAgIAkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0TmFtZSgpKSwkcmVwbFZhbCk7CiAgICAgICAgCX0KCQkkbWVzc2FnZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbWVzc2FnZSApOwoJCS8vIHNlbmQgdGhlIG1lc3NhZ2UuLi4KCQkkbWFpbCA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDTVNNYWlsZXInKTsKCQlpZiAoJG1haWwgPT0gRkFMU0UpCgkJCXsKCQkJJG1zZyA9ICcnOwoJCQlpZiAoISAkbW9kLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsMCkpCgkJCQl7CgkJCQkkbXNnID0gJzxociAvPicuJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykuICc8aHIgLz4nOwoJCQkJfSAKCQkJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCRtb2QtPkxhbmcoJ21pc3NpbmdfY21zX21haWxlcicpKTsKCQkJcmV0dXJuIGFycmF5KGZhbHNlLCRtc2cpOwoJCQl9CgkJJG1haWwtPnJlc2V0KCk7CgkJaWYgKCR0aGlzLT5TZXRGcm9tQWRkcmVzcygpKQoJCQl7CgkJCSRtYWlsLT5TZXRGcm9tKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKCQkJfQoJCWlmICgkdGhpcy0+U2V0RnJvbU5hbWUoKSkKCQkJewoJCQkkbWFpbC0+U2V0RnJvbU5hbWUoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJykpOwoJCQl9CgkJJG1haWwtPlNldFN1YmplY3QoJHN1YmplY3QpOwoJCSRtYWlsLT5TZXRCb2R5KGh0bWxfZW50aXR5X2RlY29kZSgkbWVzc2FnZSkpOwoJCSRtYWlsLT5TZXRDaGFyU2V0KCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2VuY29kaW5nJywndXRmLTgnKSk7CgoJCWlmIChjb3VudCgkX0ZJTEVTKSA+IDApCgkJCXsKCQkJZm9yZWFjaCAoJF9GSUxFUyBhcyAkdGhpc0ZpbGUpCgkJCQl7CgkJCQlpZiAoJHRoaXNGaWxlWydzaXplJ10gPCAxKQoJCQkJCXsKCQkJCQljb250aW51ZTsKCQkJCQl9CgkJCQlpZiAoISAkbWFpbC0+QWRkQXR0YWNobWVudCgkdGhpc0ZpbGVbJ3RtcF9uYW1lJ10sICR0aGlzRmlsZVsnbmFtZSddLCAiYmFzZTY0IiwgJHRoaXNGaWxlWyd0eXBlJ10pKQoJCQkJCXsKCQkJCQkvLyBmYWlsZWQgdXBsb2FkIGtpbGxzIHRoZSBzZW5kLgoJCQkJCWF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKCQkJCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1vZC0+TGFuZygndXBsb2FkX2F0dGFjaF9lcnJvcicsCgkJCQkJCWFycmF5KCR0aGlzRmlsZVsnbmFtZSddLCR0aGlzRmlsZVsndG1wX25hbWUnXSAsJHRoaXNGaWxlWyd0eXBlJ10pKSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJaWYgKCEgaXNfYXJyYXkoJGRlc3RpbmF0aW9uX2FycmF5KSkKCQkJewoJCQkkZGVzdGluYXRpb25fYXJyYXkgPSBhcnJheSgkZGVzdGluYXRpb25fYXJyYXkpOwoJCQl9CgkJZm9yZWFjaCAoJGRlc3RpbmF0aW9uX2FycmF5IGFzICR0aGlzRGVzdCkKCQkgIHsKICAgICAgICAgICRtYWlsLT5BZGRBZGRyZXNzKCR0aGlzRGVzdCk7CiAgICAgICAgICB9CgoJCSRyZXMgPSAkbWFpbC0+U2VuZCgpOwoJCWlmICgkcmVzID09PSBmYWxzZSkKCQkJewoJCQlhdWRpdCgtMSwgKGlzc2V0KCRuYW1lKT8kbmFtZToiIiksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicsJG1haWwtPkdldEVycm9ySW5mbygpKSk7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1haWwtPkdldEVycm9ySW5mbygpKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtZXNzYWdlID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKTsKICAgICAgICAkcmV0ID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX2xlZ2VuZCI+PHRyPjx0aCBjb2xzcGFuPSIyIj4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZScpLic8L3RoPjwvdHI+JzsKICAgICAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgCWZvcmVhY2goJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgIAkJewogICAgCQkkcmV0IC49ICc8dHI+PHRkPicuJHRoaXNLZXkuJzwvdGQ+PHRkPicuJHRoaXNWYWwuJzwvdGQ+PC90cj4nOwogICAgCQl9CgoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJeyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICRyZXQgLj0gJzx0cj48dGQ+eyQnLiR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpIC4nfTwvdGQ+PHRkPicgLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC90ZD48L3RyPic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgCX0KICAgICAgIAkKICAgICAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9vdGhlcl9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAgICAgCgkgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCkpOwogICAgICAgJGVzY2FwZWRTYW1wbGUgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRlc2NhcGVkU2FtcGxlKTsKCSAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSBwcmVnX3JlcGxhY2UoJy9URU1QTEFURS8nLCInIi4kZXNjYXBlZFNhbXBsZS4iJyIsJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSk7CgkgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvSUQvJywkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUpOwoJICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUuJzwvdGQ+PC90cj4nOwoJICAgJHJldCAuPSAnPC90YWJsZT4nOwoKICAgICAgIHJldHVybiBhcnJheSgKICAgICAgIAkJYXJyYXkoCiAgICAgICAgICAgICAgIAkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfc3ViamVjdCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZW1haWxfc3ViamVjdCcsJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcsJycpLDI1LDEyOCkpLAogICAgICAgICAgICAgICAJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpKSwyNSwxMjgpKSwKICAgICAgICAgICAgICAgCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywnJyksMjUsMTI4KSksCgkJCQkJKSwKCQkJYXJyYXkoCgkJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfdGVtcGxhdGUnKSwKICAgICAgIAkJCQkJYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKICAgICAgICAJCQkJCWh0bWxzcGVjaWFsY2hhcnMoJG1lc3NhZ2UpLCdvcHRfZW1haWxfdGVtcGxhdGUnLCAnbW9kdWxlX2ZiX2FyZWFfd2lkZScsICcnLCcnLDAsMCksJHJldCkpLAogICAgICAgIAkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2VuY29kaW5nJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9lbWFpbF9lbmNvZGluZycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZW5jb2RpbmcnLCd1dGYtOCcpLDI1LDEyOCkpCiAgICAgICAgICAgIAkJKQogICAgICAgICAgICApOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailConfirmation.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICR2YWxpZGF0ZWQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbic7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgICAgIAkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOwogICAgICAgCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKICAgICAgIAkkdGhpcy0+QWRkVGVtcGxhdGVWYXJpYWJsZSgnY29uZmlybV91cmwnLAogICAgICAgCQkkbW9kLT5MYW5nKCd0aXRsZV9jb25maXJtYXRpb25fdXJsJykpOwogICAgICAgCSR0aGlzLT5hcHByb3ZlZFRvR28gPSBmYWxzZTsKICAgIH0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICByZXR1cm4gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7Cgl9CgoJZnVuY3Rpb24gQXBwcm92ZVRvR28oJHJlc3BvbnNlX2lkKQoJewoJJHRoaXMtPmFwcHJvdmVkVG9HbyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQlpZiAoJHRoaXMtPmZvcm1fcHRyLT5HZXRGb3JtU3RhdGUoKSA9PSAndXBkYXRlJykKCQkJewoJCQkkdGhpcy0+YXBwcm92ZWRUb0dvID0gdHJ1ZTsKCQkJcmV0dXJuOwoJCQl9CgkJLy8gSWYgd2UgaGF2ZW4ndCBiZWVuIGFwcHJvdmVkLCBpbmhpYml0IGFsbCBvdGhlciBkaXNwb3NpdGlvbnMhCgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCWlmICgkdGhpcy0+YXBwcm92ZWRUb0dvICYmICRvdGhlcnNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25EYXRhYmFzZScpCgkJCQl7CgkJCQkkb3RoZXJzWyRpXS0+U2V0QXBwcm92YWxOYW1lKCR0aGlzLT5HZXRWYWx1ZSgpKTsKCQkJCX0KCQkJZWxzZWlmICghICR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXREaXNwb3NpdGlvblBlcm1pc3Npb24oZmFsc2UpOwoJCQkJfQoJCQl9CgkJJHRoaXMtPlNldERpc3Bvc2l0aW9uUGVybWlzc2lvbih0cnVlKTsJCQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksMjUsODApOwoJfQoKCiAgICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoISAkdGhpcy0+YXBwcm92ZWRUb0dvKQoJCQl7CgkJCS8vIGNyZWF0ZSByZXNwb25zZSBVUkwKCQkJbGlzdCgkcmlkLCRjb2RlKSA9ICR0aGlzLT5mb3JtX3B0ci0+U3RvcmVSZXNwb25zZSgpOwoJCQkJCQoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignY29uZmlybV91cmwnLCRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygnJywgJHJldHVybmlkLAoJCQkJJ3ZhbGlkYXRlJywgJycsIGFycmF5KCdmJz0+JHRoaXMtPmZvcm1fcHRyLT5HZXRJZCgpLCdyJz0+JHJpZCwnYyc9PiRjb2RlKSwgJycsCgkJCQl0cnVlLGZhbHNlLCcnLHRydWUpKTsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0VmFsdWUoKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgIAoJICBnbG9iYWwgJGdDbXM7CgkgICRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKCSAgbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCSAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCdyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCcpLAoJCQkJIEAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigncmVkaXJlY3RfcGFnZScsJzAnKSwgJGZvcm1EZXNjcmlwdG9yLidvcHRfcmVkaXJlY3RfcGFnZScpKSk7CgkgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CgkJCgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkcmVzdWx0LCAkbWVzc2FnZSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZSBleHRlbmRzICBmYkZpZWxkQmFzZSB7CgogICAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgICB2YXIgJHNhbXBsZUhlYWRlcjsKCglmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRmlsZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkZpbGUnOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGVfZmlsZShmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRG9wdF9maWxlX3RlbXBsYXRlJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGVfZmlsZSh0aGlzLmZvcm0pXCIgLz4iOwogICAgICAgICR0aGlzLT5zYW1wbGVIZWFkZXIgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGVfaGVhZGVyKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEb3B0X2ZpbGVfaGVhZGVyJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJykuIlwiIG9uQ2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlX2hlYWRlcih0aGlzLmZvcm0pXCIgLz4iOwoJfQoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoJfQoKZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkY291bnQgPSAwOwogICAgICAgIHdoaWxlICghICRtb2QtPkdldEZpbGVMb2NrKCkgJiYgJGNvdW50PDIwMCkKCQkJewogICAgICAgIAkkY291bnQrKzsKICAgICAgICAJdXNsZWVwKDUwMCk7CiAgICAgICAgCX0KICAgICAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgICAJewogICAgICAgIAlyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJykpOwogICAgICAgIAl9CgogICAgICAgICRmaWxlc3BlYyA9ICRtb2QtPmNvbmZpZ1sncm9vdF9wYXRoJ10uJy9tb2R1bGVzL0Zvcm1CdWlsZGVyL291dHB1dC8nLgogICAgICAgIAlwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSk7CgoJCSRsaW5lID0gJyc7CiAgICAgICAgaWYgKCEgZmlsZV9leGlzdHMoJGZpbGVzcGVjKSkKICAgICAgICAJewogICAgICAgIAkkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKICAgICAgICAJaWYgKCRoZWFkZXIgPT0gJycpCiAgICAgICAgCQl7CiAgICAgICAgCQkkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwogICAgICAgIAkJfSAKICAgICAgICAJJGhlYWRlciAuPSAiXG4iOwogICAgICAgIAl9CgkJJHRlbXBsYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpOwoJCWlmICgkdGVtcGxhdGUgPT0gJycpCgkJCXsKCQkJJHRlbXBsYXRlID0gJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CgkJCX0KCQkkbGluZSA9ICRoZWFkZXIuJHRlbXBsYXRlOwogICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+Zm9ybV9wdHItPkdldE5hbWUoKSk7CiAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9kYXRlJyxkYXRlKCdyJykpOwogICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfaG9zdCcsJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pOwogICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfc291cmNlX2lwJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7CiAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl91cmwnLCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSk7CgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ1RBQicsIlx0Iik7CgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSR1bnNwZWMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCQkKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCSRyZXBsVmFsID0gJyc7CgkJCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkJCQlpZiAoJHJlcGxWYWwgPT0gJycpCgkJCQkJewoJCQkJCSRyZXBsVmFsID0gJHVuc3BlYzsKCQkJCQl9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXRuYW1lKCkpLCRyZXBsVmFsKTsKICAgICAgICAJfQoKCQkkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJCWlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKCQkJewoJCQkkbmV3bGluZSAuPSAiXG4iOwoJCQl9CgkJJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CgkJZndyaXRlKCRmMiwkbmV3bGluZSk7CgkJZmNsb3NlKCRmMik7IAogICAgICAgICRtb2QtPlJldHVybkZpbGVMb2NrKCk7CiAgICAgICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCgl9CgoJZnVuY3Rpb24gTWFrZVZhcigkc3RyaW5nKQoJewoJCSRtYXh2YXJsZW4gPSAyNDsKCQkkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHN0cmluZykpOwoJCSRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKCQlpZiAoc3RybGVuKCRzdHJpbmcpID4gJG1heHZhcmxlbikKCQkJewoJCQkkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkbWF4dmFybGVuKTsKCQkJJHBvcyA9IHN0cnJwb3MoJHN0cmluZywnXycpOwoJCQlpZiAoJHBvcyAhPT0gZmFsc2UpCgkJCQl7CgkJCQkkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKCQkJCX0KCQkJfQoJCXJldHVybiAkc3RyaW5nOwoJfQoKCiAgICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVIZWFkZXIoKQogICAgewogICAgCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQkkZmllbGRzID0gYXJyYXkoKTsKCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQl7CgkJCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewogICAgICAgICAgICAgICAgYXJyYXlfcHVzaCgkZmllbGRzLCRvdGhlcnNbJGldLT5HZXROYW1lKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgIAl9CiAgICAgICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgICB9CgoKICAgIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlKCkKICAgIHsKICAgIAkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJJGZpZWxkcyA9IGFycmF5KCk7CgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQlpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkJCXsKICAgICAgICAgICAgICAgIGFycmF5X3B1c2goJGZpZWxkcywneyQnIC4gJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLiAnfScpOwogICAgICAgICAgICAgICAgfQogICAgICAgIAl9CiAgICAgICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgICB9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAkcmV0ID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX2xlZ2VuZCI+PHRyPjx0aCBjb2xzcGFuPSIyIj4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZScpLic8L3RoPjwvdHI+JzsKICAgICAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfZm9ybV9uYW1lfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykuJzwvdGQ+PC90cj4nOwogICAgICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfZGF0ZX08L3RkPjx0ZD4nLiRtb2QtPkxhbmcoJ2hlbHBfc3VibWlzc2lvbl9kYXRlJykuJzwvdGQ+PC90cj4nOwogICAgICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfaG9zdH08L3RkPjx0ZD4nLiRtb2QtPkxhbmcoJ2hlbHBfc2VydmVyX25hbWUnKS4nPC90ZD48L3RyPic7CiAgICAgICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9zb3VyY2VfaXB9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3N1Yl9zb3VyY2VfaXAnKS4nPC90ZD48L3RyPic7CiAgICAgICAgJHJldCAuPSAnPHRyPjx0ZD57JHNvdXJjZV91cmx9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3N1Yl91cmwnKS4nPC90ZD48L3RyPic7CgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJCQl7ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJHJldCAuPSAnPHRyPjx0ZD4keycuJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLid9PC90ZD48dGQ+JyAuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3RkPjwvdHI+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAJfQoKICAgICAgICRyZXQgLj0gJzx0cj48dGQ+eyRUQUJ9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3RhYl9zeW1ib2wnKS4nPC90ZD48L3RyPic7ICAgICAgIAkKICAgICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX290aGVyX2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKICAgICAgICAKCSAgICRlc2NhcGVkU2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKSk7CiAgICAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwoJICAgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL1RFTVBMQVRFLycsIiciLiRlc2NhcGVkU2FtcGxlLiInIiwkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlKTsKCSAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSBwcmVnX3JlcGxhY2UoJy9JRC8nLCRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSk7CgkgICAKCSAgICRlc2NhcGVkSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlSGVhZGVyKCkpOwogICAgICAgJGVzY2FwZWRIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRlc2NhcGVkSGVhZGVyKTsKCSAgICR0aGlzLT5zYW1wbGVIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9URU1QTEFURS8nLCInIi4kZXNjYXBlZEhlYWRlci4iJyIsJHRoaXMtPnNhbXBsZUhlYWRlcik7CgkgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvSUQvJywkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5zYW1wbGVIZWFkZXIpOwoJICAgCgkgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZUhlYWRlci4nPC90ZD48L3RyPic7CgkgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZS4nPC90ZD48L3RyPic7CgoJICAgJHJldCAuPSAnPC90YWJsZT4nOwoKCgkJJG1haW4gPSBhcnJheSgpOwoJCSRhZHYgPSBhcnJheSgpOwogICAgICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9uYW1lJyksCiAgICAgICAgCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfZmlsZXNwZWMnLAoJCQkJJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCdmb3JtX3N1Ym1pc3Npb25zLnR4dCcpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAogICAgICAgCQkJCQlhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAogICAgICAgIAkJCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdvcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHJldCkpKTsKCQlhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9oZWFkZXInKSwKICAgICAgIAkJCQkJJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKICAgICAgICAJCQkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ29wdF9maWxlX2hlYWRlcicsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCkpKTsKCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FieldBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkQmFzZSB7CgogICAgdmFyICRJZD0tMTsKICAgIHZhciAkRm9ybUlkOwogICAgdmFyICROYW1lOwogICAgdmFyICRUeXBlOwogICAgdmFyICRSZXF1aXJlZD0tMTsKICAgIHZhciAkT3JkZXJCeTsKICAgIHZhciAkSGlkZUxhYmVsPS0xOwogICAgCiAgICB2YXIgJFZhbGlkYXRpb25UeXBlczsKICAgIHZhciAkVmFsaWRhdGlvblR5cGU7CgogICAgdmFyICREaXNwbGF5SW5Gb3JtOwogICAgdmFyICREaXNwbGF5SW5TdWJtaXNzaW9uOwogICAgdmFyICREaXNwb3NpdGlvblBlcm1pdHRlZDsKICAgIHZhciAkTm9uUmVxdWlyYWJsZUZpZWxkOwogICAgdmFyICRIYXNBZGRPcDsKICAgIHZhciAkSGFzRGVsZXRlT3A7CiAgICB2YXIgJG1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgICB2YXIgJGhhc011bHRpcGxlRm9ybUNvbXBvbmVudHM7CgogICAgdmFyICRWYWx1ZT1mYWxzZTsKICAgIHZhciAkZm9ybV9wdHI7CiAgICB2YXIgJE9wdGlvbnM7CiAgICB2YXIgJGxvYWRlZDsKCglmdW5jdGlvbiBmYkZpZWxkQmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCgkgICAkdGhpcy0+Zm9ybV9wdHIgPSAmJGZvcm1fcHRyOwoJICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICAkdGhpcy0+T3B0aW9ucyA9IGFycmF5KCk7CgkgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CgkgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IGZhbHNlOwoJICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScpOwoJICAgJHRoaXMtPmxvYWRlZCA9IGZhbHNlOwoJICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwoJICAgJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CgkgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSBmYWxzZTsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7CgkgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IGZhbHNlOwoJICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gdHJ1ZTsKCgkgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkKCSAgICAgICB7CgkgICAgICAgJHRoaXMtPkZvcm1JZCA9ICRwYXJhbXNbJ2Zvcm1faWQnXTsKCSAgICAgICB9CgkgICBpZiAoaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkpCgkgICAgICAgewoJICAgICAgICR0aGlzLT5JZCA9ICRwYXJhbXNbJ2ZpZWxkX2lkJ107CgkgICAgICAgfQoJICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX25hbWUnXSkpCgkgICAgICAgewoJICAgICAgICR0aGlzLT5OYW1lID0gJHBhcmFtc1snZmllbGRfbmFtZSddOwoJICAgICAgIH0KCSAgIGlmIChpc3NldCgkcGFyYW1zWydmaWVsZF90eXBlJ10pKQoJICAgICAgIHsKCSAgICAgICAkdGhpcy0+VHlwZSA9ICRwYXJhbXNbJ2ZpZWxkX3R5cGUnXTsKCSAgICAgICB9CgkgICBlbHNlCgkgICAJICAgewoJICAgCSAgICR0aGlzLT5UeXBlID0gJyc7CgkgICAJICAgfQoJICAgaWYgKGlzc2V0KCRwYXJhbXNbJ29yZGVyX2J5J10pKQoJICAgICAgIHsKCSAgICAgICAkdGhpcy0+T3JkZXJCeSA9ICRwYXJhbXNbJ29yZGVyX2J5J107CgkgICAgICAgfQoJICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2hpZGVfbGFiZWwnXSkpCgkgICAgICAgewoJICAgICAgICR0aGlzLT5IaWRlTGFiZWwgPSAkcGFyYW1zWydoaWRlX2xhYmVsJ107CgkgICAgICAgfQoJICAgZWxzZSBpZiAoaXNzZXQoJHBhcmFtc1snc2V0X2Zyb21fZm9ybSddKSkKCSAgIAkgICB7CgkgICAJICAgJHRoaXMtPkhpZGVMYWJlbCA9IDA7CgkgICAJICAgfQoJICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3JlcXVpcmVkJ10pKQoJICAgICAgIHsKCSAgICAgICAkdGhpcy0+UmVxdWlyZWQgPSAkcGFyYW1zWydyZXF1aXJlZCddOwoJICAgICAgIH0KCSAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ3NldF9mcm9tX2Zvcm0nXSkpCgkgICAJICAgewoJICAgCSAgICR0aGlzLT5SZXF1aXJlZCA9IDA7CgkgICAJICAgfQoJICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbGlkYXRpb25fdHlwZSddKSkKCSAgICAgICB7CgkgICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHBhcmFtc1sndmFsaWRhdGlvbl90eXBlJ107CgkgICAgICAgfQoKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzUGFyYW1LZXk9PiR0aGlzUGFyYW1WYWwpCgkJewoJICAgCQlpZiAoc3Vic3RyKCR0aGlzUGFyYW1LZXksMCw0KSA9PSAnb3B0XycpCgkgICAJCQl7CgkgICAJCQkkdGhpc1BhcmFtS2V5ID0gc3Vic3RyKCR0aGlzUGFyYW1LZXksNCk7CgkgICAJCQkkdGhpcy0+T3B0aW9uc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWw7CgkgICAJCQl9CgkgICAJfQoKCSAgIGlmIChpc3NldCgkcGFyYW1zWydfJy4kdGhpcy0+SWRdKSAmJgoJICAgCQkoaXNfYXJyYXkoJHBhcmFtc1snXycuJHRoaXMtPklkXSkgfHwKCSAgIAkJc3RybGVuKCRwYXJhbXNbJ18nLiR0aGlzLT5JZF0pID4gMCkpCgkgICAJCXsKCSAgIAkJJHRoaXMtPlNldFZhbHVlKCRwYXJhbXNbJ18nLiR0aGlzLT5JZF0pOwoJICAgCQl9Cgl9CgoJZnVuY3Rpb24gSGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpCgl7CgkJcmV0dXJuICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXRJZCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJcmV0dXJuICRpZC4nXycuJHRoaXMtPklkOwoJfQoKCWZ1bmN0aW9uIE1vZGlmaWVzT3RoZXJGaWVsZHMoKQoJewoJCXJldHVybiAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkczsKCX0KCgkvLyBtZWNoYW5pc20gZm9yIGZpZWxkcy9kaXNwb3NpdGlvbnMgdG8gaW5oaWJpdCBvdGhlciBkaXNwb3NpdGlvbnMKCWZ1bmN0aW9uIERpc3Bvc2l0aW9uSXNQZXJtaXR0ZWQoKQoJewoJCXJldHVybiAkdGhpcy0+RGlzcG9zaXRpb25QZXJtaXR0ZWQ7Cgl9CgoJLy8gbWVjaGFuaXNtIGZvciBmaWVsZHMvZGlzcG9zaXRpb25zIHRvIGluaGliaXQgb3RoZXIgZGlzcG9zaXRpb25zCglmdW5jdGlvbiBTZXREaXNwb3NpdGlvblBlcm1pc3Npb24oJHBlcm1pdHRlZD10cnVlKQoJewoJCSR0aGlzLT5EaXNwb3NpdGlvblBlcm1pdHRlZCA9ICRwZXJtaXR0ZWQ7Cgl9CgoKCS8vIG92ZXJyaWRlIG1lIGlmIHlvdSdyZSBqdXN0IHR3ZWFraW5nIG90aGVyIGZpZWxkcyBiZWZvcmUgZGlzcG9zaXRpb24KCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCX0KCgkvLyBvdmVycmlkZSBtZSB3aXRoIGEgZm9ybSBpbnB1dCBzdHJpbmcgb3Igc29tZXRoaW5nCgkvLyB0aGlzIHNob3VsZCBqdXN0IGJlIHRoZSBpbnB1dCBwb3J0aW9uLiBUaGUgdGl0bGUKCS8vIGFuZCBhbnkgd3JhcHBpbmcgZGl2cyB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBmb3JtCgkvLyByZW5kZXJlci4KCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCXJldHVybiAnJzsKCX0KCQoJLy8gb3ZlcnJpZGUgbWUgd2l0aCBzb21ldGhpbmcgdG8gc2hvdyB1c2VycwoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCWZ1bmN0aW9uIERlYnVnRGlzcGxheSgpCgl7CgkJJHRtcCA9ICR0aGlzLT5mb3JtX3B0cjsKCQkkdGhpcy0+Zm9ybV9wdHIgPSAnJzsKCQlkZWJ1Z19kaXNwbGF5KCR0aGlzKTsKCQkkdGhpcy0+Zm9ybV9wdHIgPSAkdG1wOwoJfQoKCWZ1bmN0aW9uIEdldElkKCkKCXsKCQlyZXR1cm4gJHRoaXMtPklkOwoJfQoKCWZ1bmN0aW9uIEhhc0FkZE9wKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkhhc0FkZE9wOwoJfQoKCS8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJfQoKCS8vIG92ZXJyaWRlIG1lCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9vcHRpb25zJyk7Cgl9CgkKCWZ1bmN0aW9uIEhhc0RlbGV0ZU9wKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkhhc0RlbGV0ZU9wOwoJfQoKCS8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKCWZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQoJewoJfQoKCS8vIG92ZXJyaWRlIG1lCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5OYW1lOwoJfQoKCWZ1bmN0aW9uIEdldE9yZGVyKCkKCXsKCQlyZXR1cm4gJHRoaXMtPk9yZGVyQnk7Cgl9CgkKCWZ1bmN0aW9uIFNldE9yZGVyKCRvcmRlcikKCXsKCQkkdGhpcy0+T3JkZXJCeSA9ICRvcmRlcjsKCX0KCQoJZnVuY3Rpb24gR2V0RmllbGRUeXBlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlR5cGU7Cgl9CgoJZnVuY3Rpb24gU2V0RmllbGRUeXBlKCR0eXBlKQoJewoJCXJldHVybiAkdGhpcy0+VHlwZSA9ICR0eXBlOwoJfQoKCQoJZnVuY3Rpb24gSXNEaXNwb3NpdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uOwoJfQoJCglmdW5jdGlvbiBIaWRlTGFiZWwoKQoJewoJCXJldHVybiAoJHRoaXMtPkhpZGVMYWJlbD09MT90cnVlOmZhbHNlKTsKCX0KCglmdW5jdGlvbiBEaXNwbGF5SW5Gb3JtKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkRpc3BsYXlJbkZvcm07Cgl9CgoJZnVuY3Rpb24gRGlzcGxheUluU3VibWlzc2lvbigpCgl7CgkJcmV0dXJuICgkdGhpcy0+RGlzcGxheUluRm9ybSAmJiAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbik7Cgl9CgoJCglmdW5jdGlvbiBJc05vblJlcXVpcmFibGVGaWVsZCgpCgl7CgkJcmV0dXJuICR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQ7Cgl9CgoJZnVuY3Rpb24gSXNSZXF1aXJlZCgpCgl7CgkJcmV0dXJuICgkdGhpcy0+UmVxdWlyZWQgPT0gMT90cnVlOmZhbHNlKTsKCX0KCglmdW5jdGlvbiBTZXRSZXF1aXJlZCgkcmVxdWlyZWQpCgl7CgkJJHRoaXMtPlJlcXVpcmVkID0gKCRyZXF1aXJlZD8xOjApOwoJfQoJCglmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZXMoKQoJewoJCXJldHVybiAkdGhpcy0+VmFsaWRhdGlvblR5cGVzOwoJfQoJCglmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5WYWxpZGF0aW9uVHlwZTsKCX0KCgkvLyBvdmVycmlkZSBtZSB3aXRoIGEgZGlzcGxheWFibGUgdHlwZQoJZnVuY3Rpb24gR2V0RGlzcGxheVR5cGUoKQoJewoJCXJldHVybiAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkxhbmcoJ2ZpZWxkX3R5cGVfJy4kdGhpcy0+VHlwZSk7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQmFzZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IsJGRpc3Bvc2VPbmx5PTApCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlR5cGUgPT0gJycpCgkJCXsKCQkJaWYgKCRkaXNwb3NlT25seSA9PSAxKQoJCQkJewoJCQkJJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmRpc3BfZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSR0eXBlSW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZpZWxkX3R5cGUnLGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF90eXBlJyk9PicnKSwkbW9kLT5maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKSInKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkdHlwZUlucHV0ID0gJHRoaXMtPkdldERpc3BsYXlUeXBlKCkuJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmllbGRfdHlwZScsICR0aGlzLT5UeXBlKTsKCQkJfQoJCQoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX25hbWUnKSwKCQkJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmaWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdHlwZScpLCR0eXBlSW5wdXQpLAoJCSk7CgkJCgkJJGFkdiA9IGFycmF5KCk7CgoJCS8vIGlmIHdlIGtub3cgb3VyIHR5cGUsIHdlIGNhbiBsb2FkIHVwIHdpdGggYWRkaXRpb25hbCBvcHRpb25zCgkJaWYgKCR0aGlzLT5UeXBlICE9ICcnKQoJCQl7CgkJCQoJCQkvLyB2YWxpZGF0aW9uIHR5cGVzPwoJCQlpZiAoY291bnQoJHRoaXMtPkdldFZhbGlkYXRpb25UeXBlcygpKSA+IDEpCgkJCQl7CgkJCQkkdmFsaWRJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAndmFsaWRhdGlvbl90eXBlJywgJHRoaXMtPkdldFZhbGlkYXRpb25UeXBlcygpLCAtMSwgJHRoaXMtPkdldFZhbGlkYXRpb25UeXBlKCkpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkdmFsaWRJbnB1dCA9ICRtb2QtPkxhbmcoJ2F1dG9tYXRpYycpOwoJCQkJfQoJCQkJCgkJCS8vIHJlcXVpcmFibGU/CgkJCWlmICghJHRoaXMtPklzRGlzcG9zaXRpb24oKSAmJiAhJHRoaXMtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpLCRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAncmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCQkJCX0KCQkJCQoJCQlhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCgkJCWFycmF5X3B1c2goJGFkdiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaGlkZV9sYWJlbCcpLCRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnaGlkZV9sYWJlbCcsIDEsICR0aGlzLT5IaWRlTGFiZWwoKSkuJG1vZC0+TGFuZygndGl0bGVfaGlkZV9sYWJlbF9sb25nJykpKTsKCgkJCWlmICgkdGhpcy0+RGlzcGxheUluRm9ybSgpKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfY3NzX2NsYXNzJywgJHRoaXMtPkdldE9wdGlvbignY3NzX2NsYXNzJyksIDUwKSkpOwoJCQkJfQoJCQkKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyBubyBhZHZhbmNlZCBvcHRpb25zIHVudGlsIHdlIGtub3cgb3VyIHR5cGUKCQkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpLCRtb2QtPkxhbmcoJ25vdGljZV9zZWxlY3RfdHlwZScpKSk7CgkJCX0KCQkJCQoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCAnYWR2Jz0+JGFkdik7Cgl9CgkKCQogICAgLy8gb3ZlcnJpZGUgbWUuCiAgICAvLyBJIHJldHVybiBhbiB1Z2x5IGRhdGEgc3RydWN0dXJlOgogICAgLy8gSXQncyBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHR3byBpdGVtcywgJ21haW4nIGFuZCAnYWR2JyAoZm9yIHRoZQogICAgLy8gbWFpbiBhbmQgYWR2YW5jZWQgc2V0dGluZyB0YWJzKS4KICAgIC8vIEVhY2ggb2YgdGhlc2UgaXMgYW4gYXNzb2NpYXRpdmUgYXJyYXkgb2YgVGl0bGUgLyBJbnB1dCB2YWx1ZXMuCiAgICAvLyBUaGUgVGl0bGUgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgaXQgaGFzIGEgbGVuZ3RoOwogICAgLy8gdGhlICJJbnB1dCIgc2hvdWxkIGJlIGEgRm9ybSBpbnB1dCBmb3IgdGhhdCBmaWVsZCBhdHRyaWJ1dGUvb3B0aW9uCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJcmV0dXJuIGFycmF5KCk7Cgl9CgogICAgLy8gb3ZlcnJpZGUgbWUuCiAgICAvLyBUaGlzIGdpdmVzIHlvdSBhIGNoYW5jZSB0byBhbHRlciB0aGUgYXJyYXkgY29udGVudHMgYmVmb3JlCiAgICAvLyB0aGV5IGdldCByZW5kZXJlZC4gCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7Cgl9CgoKCS8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQoJZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCgl7Cgl9CgoJLy8gY2xlYXIgZmllbGRzIHVudXNlZCBieSBpbnZpc2libGUgZGlzcG9zaXRpb25zCglmdW5jdGlvbiBIaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQKCQkkcmVxSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG1haW5BcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkJCQl7CgkJCQkkcmVxSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkcmVxSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRyZXFJbmRleCwxKTsKCQkJfQoJCS8vIHJlbW92ZSB0aGUgImhpZGUgbmFtZSIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfaGlkZV9sYWJlbCcpKQoJCQkJewoJCQkJJGhpZGVJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRoaWRlSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRhZHZBcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCS8vIHJlbW92ZSB0aGUgImNzcyIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCQoKCS8vIG92ZXJyaWRlIG1lLiBSZXR1cm5zIGFuIGFycmF5OiBmaXJzdCB2YWx1ZSBpcyBhIHRydWUgb3IgZmFsc2UgKHdoZXRoZXIgb3Igbm90CiAgICAvLyB0aGUgdmFsdWUgaXMgdmFsaWQpLCB0aGUgc2Vjb25kIGlzIGEgbWVzc2FnZQoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCX0KCgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPlZhbHVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywnW3Vuc3BlY2lmaWVkXScpOwoJCQl9Cgl9CgoKCS8vIG92ZXJyaWRlIHRoaXMgaWYgeW91IGhhdmUgc29tZSB1bnVzdWFsIGZvcm1hdCBmb3IgdmFsdWVzLAoJLy8gZXNwZWNpYWxseSBpZiAiZmFsc2UiIGlzIGEgdmFsaWQgdmFsdWUhCglmdW5jdGlvbiBIYXNWYWx1ZSgpCgl7CgkJcmV0dXJuICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKTsKCX0KCQoJLy8gcHJvYmFibHkgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzCglmdW5jdGlvbiBHZXRWYWx1ZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCX0KCgkvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0aGUgKHBvc3NpYmx5IGNvbnZlcnRlZCkgdmFsdWUgb2YgdGhlIGZpZWxkLgoJZnVuY3Rpb24gR2V0QXJyYXlWYWx1ZSgkaW5kZXgpCgl7CgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCXsKCQkJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCQl7CgkJCQlpZiAoaXNzZXQoJHRoaXMtPlZhbHVlWyRpbmRleF0pKQoJCQkJCXsKCQkJCQlyZXR1cm4gJHRoaXMtPlZhbHVlWyRpbmRleF07CgkJCQkJfQoJCQkJfQoJCQllbHNlaWYgKCRpbmRleCA9PSAwKQoJCQkJewoJCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQkJCX0KCQkJfQoJCXJldHVybiBmYWxzZTsKCX0KCgkvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBjb250YWluZWQgaW4gdGhlIFZhbHVlIGFycmF5CglmdW5jdGlvbiBGaW5kQXJyYXlWYWx1ZSgkdmFsdWUpCgl7CgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkJCXsKCQkJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCQl7CgkJCQkJcmV0dXJuIGFycmF5X3NlYXJjaCgkdmFsdWUsJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJZWxzZWlmICgkdGhpcy0+VmFsdWUgPT0gJHZhbHVlKQoJCQkJewoJCQkJcmV0dXJuIHRydWU7CgkJCQl9CgkJCX0KCQlyZXR1cm4gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gUmVzZXRWYWx1ZSgpCgl7CgkJJHRoaXMtPlZhbHVlID0gZmFsc2U7Cgl9CgoJLy8gb3ZlcnJpZGUgbWUsIGlmIG5lY2Vzc2FyeSB0byBjb252ZXJ0IHR5cGUgb3Igc29tZXRoaW5nLgoJZnVuY3Rpb24gU2V0VmFsdWUoJHZhbFN0cikKCXsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwoJCQl9CgkJZWxzZQoJCQl7CgkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCQl7CgkJCQkkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJCQkJfQoJCQlhcnJheV9wdXNoKCR0aGlzLT5WYWx1ZSwkdmFsU3RyKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFJlcXVpcmVzVmFsaWRhdGlvbigpCgl7CgkJaWYgKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9PSAnbm9uZScpCgkJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiB0cnVlOwoJCQl9Cgl9CgoJZnVuY3Rpb24gRG9lc0ZpZWxkTmFtZUV4aXN0KCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQoJCS8vIGZpZWxkIG5hbWUgaW4gdXNlPz8KCQlpZiAoJHRoaXMtPmZvcm1fcHRyLT5IYXNGaWVsZE5hbWVkKCR0aGlzLT5HZXROYW1lKCkpKQoJCQl7CgkJCXJldHVybiBhcnJheShmYWxzZSwkbW9kLT5MYW5nKCdmaWVsZF9uYW1lX2luX3VzZScsJHRoaXMtPkdldE5hbWUoKSkuJzxiciAvPicpOwoJCQl9CgkJCgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoKCS8vIG92ZXJyaWRlIG1lLCBpZiBuZWVkZWQuIFJldHVybnMgYW4gYXJyYXk6IGZpcnN0IHZhbHVlIGlzIGEgdHJ1ZSBvcgogICAgLy8gZmFsc2UgKHdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSBpcyB2YWxpZCksIHRoZSBzZWNvbmQgaXMgYSBtZXNzYWdlCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJfQoKCgkvLyBvdmVycmlkZSBtZSBpZiB5b3UncmUgYSBGb3JtIERpc3Bvc2l0aW9uIHBzZXVkby1maWVsZC4KCS8vIFRoaXMgbWV0aG9kIGNhbiBkbyBqdXN0CgkvLyBhYm91dCBhbnl0aGluZyB5b3Ugd2FudCBpdCB0bywgaW4gb3JkZXIgdG8gaGFuZGxlIGZvcm0gY29udGVudHMuCgkvLyBpdCByZXR1cm5zIGFuIGFycmF5LCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVudCBpcyB0cnVlIG9uIHN1Y2Nlc3MsCgkvLyBvciBmYWxzZSBvbiBmYWlsdXJlLCBhbmQgdGhlIHNlY29uZCBlbGVtZW50IGlzIGV4cGxhbmF0b3J5CgkvLyB0ZXh0IGZvciB0aGUgZmFpbHVyZQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewoJCXJldHVybiBhcnJheSh0cnVlLCAnJyk7Cgl9CQoKCWZ1bmN0aW9uIEdldE9wdGlvbk5hbWVzKCkKCXsKCQlyZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+T3B0aW9ucyk7Cgl9CgogICAgZnVuY3Rpb24gR2V0T3B0aW9uKCRvcHRpb25OYW1lLCAkZGVmYXVsdD0nJykKCXsKCQlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwoJCQl9CgkJcmV0dXJuICRkZWZhdWx0OwoJfQoKICAgIGZ1bmN0aW9uICZHZXRPcHRpb25SZWYoJG9wdGlvbk5hbWUpCgl7CgkJaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXTsKCQkJfQoJCXJldHVybiBmYWxzZTsKCX0KCgkKCWZ1bmN0aW9uIFJlbW92ZU9wdGlvbkVsZW1lbnQoJG9wdGlvbk5hbWUsICRpbmRleCkKCXsKCQlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCQkJewoJCQlpZiAoaXNfYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCQkJCXsKCQkJCWlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV1bJGluZGV4XSkpCgkJCQkJewoJCQkJCWFycmF5X3NwbGljZSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0sJGluZGV4LDEpOwoJCQkJCX0KCQkJCX0KCQkJfQoJfQoJCglmdW5jdGlvbiBHZXRPcHRpb25FbGVtZW50KCRvcHRpb25OYW1lLCAkaW5kZXgsICRkZWZhdWx0PSIiKQoJewoJCWlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJCQl7CgkJCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJCQkJewoJCQkJaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdKSkKCQkJCQl7CgkJCQkJcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdOwoJCQkJCX0KCQkJCX0KCQkJZWxzZWlmICgkaW5kZXggPT0gMCkKCQkJCXsKCQkJCXJldHVybiAkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV07CgkJCQl9CgkJCX0KCgkJcmV0dXJuICRkZWZhdWx0OwkJCgl9CgogICAgZnVuY3Rpb24gU2V0T3B0aW9uKCRvcHRpb25OYW1lLCAkb3B0aW9uVmFsdWUpCiAgICB7CiAgICAgICAgJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdID0gJG9wdGlvblZhbHVlOwogICAgfQoKICAgIGZ1bmN0aW9uIExvYWRGaWVsZCgmJHBhcmFtcykKICAgIHsKICAgIAlpZiAoJHRoaXMtPklkID4gMCkKICAgIAkgICB7CiAgICAJICAgJHRoaXMtPkxvYWQoJHRoaXMtPklkLCAkcGFyYW1zLCB0cnVlKTsKICAgIAkgICB9CiAgICAJcmV0dXJuOwogICAgfQoKICAgIC8vIGxvYWREZWVwIGFsc28gbG9hZHMgYWxsIG9wdGlvbnMgZm9yIGEgZmllbGQuCiAgICBmdW5jdGlvbiBMb2FkKCYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCiAgICB7CgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZpZWxkX2lkPT8nOwogICAgICAgIGlmKCRyZXN1bHQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5HZXRSb3coJHNxbCwgYXJyYXkoJHRoaXMtPklkKSkpCgkJCXsKCQkJaWYgKHN0cmxlbigkdGhpcy0+TmFtZSkgPCAxKQoJCQkJewoJCQkJJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CgkJCQl9CgkJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKSA8IDEpCgkJCQl7CgkJCQkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAkcmVzdWx0Wyd2YWxpZGF0aW9uX3R5cGUnXTsKCQkJCX0KCQkJJHRoaXMtPlR5cGUgPSAkcmVzdWx0Wyd0eXBlJ107CgkJCSR0aGlzLT5PcmRlckJ5ID0gJHJlc3VsdFsnb3JkZXJfYnknXTsKCQkJaWYgKCR0aGlzLT5SZXF1aXJlZCA9PSAtMSkKCQkJCXsKCQkJCSR0aGlzLT5SZXF1aXJlZCA9ICRyZXN1bHRbJ3JlcXVpcmVkJ107CgkJCQl9CgkJCWlmICgkdGhpcy0+SGlkZUxhYmVsID09IC0xKQoJCQkJewoJCQkJJHRoaXMtPkhpZGVMYWJlbCA9ICRyZXN1bHRbJ2hpZGVfbGFiZWwnXTsKCQkJCX0KCQkJfQogICAgICAgIGVsc2UKCQkJewoJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQkkdGhpcy0+bG9hZGVkID0gdHJ1ZTsKCQlpZiAoJGxvYWREZWVwKQoJCQl7CiAgICAgICAgCSRzcWwgPSAnU0VMRUNUIG5hbWUsIHZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuCiAgICAgICAgCQknbW9kdWxlX2ZiX2ZpZWxkX29wdCBXSEVSRSBmaWVsZF9pZD0/IE9SREVSIEJZIG9wdGlvbl9pZCc7CgkJCSRycyA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCWFycmF5KCR0aGlzLT5JZCkpOwoJCQkkdG1wT3B0cyA9IGFycmF5KCk7CgkJCXdoaWxlICgkcnMgJiYgJHJlc3VsdHMgPSAkcnMtPkZldGNoUm93KCkpCiAgICAgICAgICAgIAl7CiAgICAgICAgICAgIAlpZiAoaXNzZXQoJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0pKQogICAgICAgICAgICAJCXsKICAgICAgICAgICAgCQlpZiAoISBpc19hcnJheSgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSkpCiAgICAgICAgICAgIAkJCXsKICAgICAgICAgICAgCQkJJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0gPSBhcnJheSgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSk7CiAgICAgICAgICAgIAkJCX0KICAgICAgICAgICAgCQlhcnJheV9wdXNoKCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dLCRyZXN1bHRzWyd2YWx1ZSddKTsKICAgICAgICAgICAgCQl9CiAgICAgICAgICAgIAllbHNlCiAgICAgICAgICAgIAkJewogICAgICAgICAgICAJCSR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dPSRyZXN1bHRzWyd2YWx1ZSddOwogICAgICAgICAgICAJCX0KICAgICAgICAgICAgCX0KICAgICAgICAgICAgJHRoaXMtPk9wdGlvbnMgPSBhcnJheV9tZXJnZSgkdG1wT3B0cywkdGhpcy0+T3B0aW9ucyk7CgkJCX0KCQlyZXR1cm4gdHJ1ZTsKICAgIH0KCgogICAgZnVuY3Rpb24gU3RvcmUoJHN0b3JlRGVlcD1mYWxzZSkKICAgIHsKICAgIAkkbW9kID0gICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5JZCA9ICRtb2QtPmRiSGFuZGxlLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9zZXEnKTsKIAkJCSRzcWwgPSAnSU5TRVJUIElOVE8gJyAuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZCAoZmllbGRfaWQsIGZvcm1faWQsIG5hbWUsIHR5cGUsICcgLgogICAgICAgICAgICAgICAgJ3JlcXVpcmVkLCB2YWxpZGF0aW9uX3R5cGUsIGhpZGVfbGFiZWwsIG9yZGVyX2J5KSAnLgogICAgICAgICAgICAgICAgJyBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8pJzsKCQkJJHJlcyA9ICRtb2QtPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQlhcnJheSgkdGhpcy0+SWQsICR0aGlzLT5Gb3JtSWQsICR0aGlzLT5OYW1lLAoJCQkJJHRoaXMtPlR5cGUsICgkdGhpcy0+UmVxdWlyZWQ/MTowKSwgCgkJCQkkdGhpcy0+VmFsaWRhdGlvblR5cGUsICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5PcmRlckJ5KSk7CiAgICAgICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKCQkJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkJCQknbW9kdWxlX2ZiX2ZpZWxkIHNldCBuYW1lPT8sIHR5cGU9PywnLgogICAgICAgICAgICAgICAgJ3JlcXVpcmVkPT8sIHZhbGlkYXRpb25fdHlwZT0/LCBvcmRlcl9ieT0/LCAnLgogICAgICAgICAgICAgICAgJ2hpZGVfbGFiZWw9PyB3aGVyZSBmaWVsZF9pZD0/JzsKCQkJJHJlcyA9ICRtb2QtPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQlhcnJheSgkdGhpcy0+TmFtZSwgJHRoaXMtPlR5cGUsICgkdGhpcy0+UmVxdWlyZWQ/MTowKSwKCQkJCQkkdGhpcy0+VmFsaWRhdGlvblR5cGUsCgkJCQkJJHRoaXMtPk9yZGVyQnksICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5JZCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgIGlmICgkc3RvcmVEZWVwKQogICAgICAgICAgICB7CiAgICAgICAgICAgIC8vIGRyb3Agb2xkIG9wdGlvbnMKCQkJJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4KCQkJCSdtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIGZpZWxkX2lkPT8nOwoJCQkkcmVzID0gJG1vZC0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCWFycmF5KCR0aGlzLT5JZCkpOwoKCQkJZm9yZWFjaCAoJHRoaXMtPk9wdGlvbnMgYXMgJHRoaXNPcHRLZXk9PiR0aGlzT3B0VmFsdWVMaXN0KQoJCQkJewoJCQkJaWYgKCEgaXNfYXJyYXkoJHRoaXNPcHRWYWx1ZUxpc3QpKQoJCQkJCXsKCQkJCQkkdGhpc09wdFZhbHVlTGlzdCA9IGFycmF5KCR0aGlzT3B0VmFsdWVMaXN0KTsKCQkJCQl9CgkJCQlmb3JlYWNoICgkdGhpc09wdFZhbHVlTGlzdCBhcyAkdGhpc09wdFZhbHVlKQoJCQkJCXsKICAgICAgICAgICAgCQkkb3B0SWQgPSAkbW9kLT5kYkhhbmRsZS0+R2VuSUQoCiAgICAgICAgICAgIAkJCWNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKCQkJCQkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQkJCSdtb2R1bGVfZmJfZmllbGRfb3B0IChvcHRpb25faWQsIGZpZWxkX2lkLCBmb3JtX2lkLCAnLgoJCQkJCQknbmFtZSwgdmFsdWUpIFZBTFVFUyAoPywgPywgPywgPywgPyknOwoJCQkJCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQlhcnJheSgkb3B0SWQsICR0aGlzLT5JZCwgJHRoaXMtPkZvcm1JZCwgJHRoaXNPcHRLZXksCgkJCQkJCSR0aGlzT3B0VmFsdWUpKTsKCQkJCQl9CiAgICAgICAgICAgIAl9CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICBmdW5jdGlvbiBEZWxldGUoKQogICAgewoJCWlmICgkdGhpcy0+SWQgPT0gLTEpCgkJICB7CgkJICByZXR1cm4gZmFsc2U7CgkJICB9CgkJJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9maWVsZCB3aGVyZSBmaWVsZF9pZD0/JzsKCQkkcmVzID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQlhcnJheSgkdGhpcy0+SWQpKTsKCQkkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkX29wdCB3aGVyZSBmaWVsZF9pZD0/JzsKCQkkcmVzID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQlhcnJheSgkdGhpcy0+SWQpKTsKCQlyZXR1cm4gdHJ1ZTsKICAgIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FileUpload.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZmRmlsZVVwbG9hZCBleHRlbmRzIGZmSW5wdXQgewoKCWZ1bmN0aW9uIGZmRmlsZVVwbG9hZCgmJG1vZF9nbG9iYWxzLCAkZm9ybVJlZiwgJHBhcmFtcz1hcnJheSgpKQoJewogICAgICAgICR0aGlzLT5mZklucHV0KCRtb2RfZ2xvYmFscywgJGZvcm1SZWYsICRwYXJhbXMpOwoJCSR0aGlzLT5UeXBlID0gJ0ZpbGVVcGxvYWQnOwoJCSR0aGlzLT5EaXNwbGF5VHlwZSA9ICR0aGlzLT5tb2RfZ2xvYmFscy0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnKTsKCQlpZiAoZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJHBhcmFtc1snbWF4X3NpemUnXSkpCgkJICB7CgkJICAkdGhpcy0+QWRkT3B0aW9uKCdtYXhfc2l6ZScsICdtYXhfc2l6ZScsICRwYXJhbXNbJ21heF9zaXplJ10pOwogICAgICAgICAgfQoJCWlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkcGFyYW1zWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddKSkKCQkgIHsKCQkgICR0aGlzLT5BZGRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJywgJ3Blcm1pdHRlZF9leHRlbnNpb25zJywgJHBhcmFtc1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSk7CiAgICAgICAgICB9CgkJaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRwYXJhbXNbJ3Nob3dfZGV0YWlscyddKSkKCQkgIHsKCQkgICR0aGlzLT5BZGRPcHRpb24oJ3Nob3dfZGV0YWlscycsICdzaG93X2RldGFpbHMnLCAkcGFyYW1zWydzaG93X2RldGFpbHMnXSk7CiAgICAgICAgICB9CgoJfQoKCWZ1bmN0aW9uIFdyaXRlVG9QdWJsaWNGb3JtKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5faWQpCgl7CiAgICAgICAgJHNob3cgPSAkdGhpcy0+R2V0T3B0aW9uQnlLaW5kKCdzaG93X2RldGFpbHMnKTsKICAgICAgICBpZiAoc3RybGVuKCR0aGlzLT5DU1NDbGFzcyk+MCkKICAgICAgICAJewogICAgICAgIAllY2hvICI8ZGl2IGNsYXNzPVwiIi4kdGhpcy0+Q1NTQ2xhc3MuIlwiPiI7CiAgICAgICAgCX0KCQllY2hvIENNU01vZHVsZTo6Q3JlYXRlRmlsZVVwbG9hZElucHV0KCRpZCwgJHRoaXMtPkFsaWFzLCR0aGlzLT5tb2RfZ2xvYmFscy0+VXNlSURBbmROYW1lPydpZD0iJy4kdGhpcy0+QWxpYXMuJyInOicnKTsKICAgICAgICBpZiAoZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJHNob3dbMF0tPlZhbHVlKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uQnlLaW5kKCdtYXhfc2l6ZScpOwogICAgICAgICAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAgICAgICAgIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkbXNbMF0tPlZhbHVlKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGVjaG8gJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCdtYXhpbXVtX3NpemUnKS4nOiAnLiRtc1swXS0+VmFsdWUuJ2tiJzsKICAgICAgICAgICAgICAgIH0KCSAgICAgICAgaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRleHRzWzBdLT5WYWx1ZSkpCgkgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkbXNbMF0tPlZhbHVlKSkKCSAgIAkgICAgICAgICAgIHsKCSAgIAkgICAgICAgICAgIGVjaG8gJywgJzsKCSAgIAkgICAgICAgICAgIH0KCSAgICAgICAgICAgIGVjaG8gJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCdwZXJtaXR0ZWRfZmlsZXR5cGVzJykgLiAnOiAnLiRleHRzWzBdLT5WYWx1ZTsKCQkgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIGlmIChzdHJsZW4oJHRoaXMtPkNTU0NsYXNzKT4wKQogICAgICAgIAl7CiAgICAgICAgCWVjaG8gIjwvZGl2PiI7CiAgICAgICAgCX0KCX0KCgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkgJG1zID0gJHRoaXMtPkdldE9wdGlvbkJ5S2luZCgnbWF4X3NpemUnKTsKICAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CgkgJHJldCA9ICcnOwoJIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkbXNbMF0tPlZhbHVlKSkKCSAgIHsKCSAgICAkcmV0IC49ICR0aGlzLT5tb2RfZ2xvYmFscy0+TGFuZygnbWF4aW11bV9zaXplJykuJzogJy4kbXNbMF0tPlZhbHVlLidrYic7CgkJfQoJIGlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkZXh0c1swXS0+VmFsdWUpKQoJICAgewoJICAgaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRtc1swXS0+VmFsdWUpKQoJICAgCSAgewoJICAgCSAgJHJldCAuPSAnLCAnOwoJICAgCSAgfQoJICAgICRyZXQgLj0gJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpIC4gJzogJy4kZXh0c1swXS0+VmFsdWU7CgkJfQoJfQoKCglmdW5jdGlvbiBSZW5kZXJBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJICRtcyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ21heF9zaXplJyk7CiAgICAgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uQnlLaW5kKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwogICAgICRzaG93ID0gJHRoaXMtPkdldE9wdGlvbkJ5S2luZCgnc2hvd19kZXRhaWxzJyk7CgoJIHJldHVybiBhcnJheSgkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ3RpdGxlX21heGltdW1fc2l6ZScpLic6Jz0+CiAgICAgICAgICAgIENNU01vZHVsZTo6Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ21heF9zaXplJywKICAgICAgICAgICAgCWZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRtc1swXS0+VmFsdWUpPyRtc1swXS0+VmFsdWU6KCR0aGlzLT5tb2RfZ2xvYmFscy0+TWF4VXBsb2FkU2l6ZS8xMDAwKSwyNSwyNSksCiAgICAgICAgICAgIAkkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJykuJzonPT4KICAgICAgICAgICAgQ01TTW9kdWxlOjpDcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAncGVybWl0dGVkX2V4dGVuc2lvbnMnLAogICAgICAgICAgICAJZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJGV4dHNbMF0tPlZhbHVlKT8kZXh0c1swXS0+VmFsdWU6JycsMjUsODApLic8YnIgLz4nLgogICAgICAgICAgICAJJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJyksCiAgICAgICAgICAgICR0aGlzLT5tb2RfZ2xvYmFscy0+TGFuZygndGl0bGVfc2hvd19saW1pdGF0aW9ucycpLic6Jz0+Q01TTW9kdWxlOjpDcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ3Nob3dfZGV0YWlscycsICd0cnVlJywgZmZVdGlsaXR5RnVuY3Rpb25zOjpkZWYoJHNob3dbMF0tPlZhbHVlKT8kc2hvd1swXS0+VmFsdWU6JycpLgoJCQknICcuJHRoaXMtPm1vZF9nbG9iYWxzLT5MYW5nKCd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnKQogICAgICAgICAgICAgICAgKTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkgCSRtcyA9ICR0aGlzLT5HZXRPcHRpb25CeUtpbmQoJ21heF9zaXplJyk7CiAgICAgCSRleHRzID0gJHRoaXMtPkdldE9wdGlvbkJ5S2luZCgncGVybWl0dGVkX2V4dGVuc2lvbnMnKTsKCQkkZnVsbEFsaWFzID0gJHRoaXMtPm1vZF9nbG9iYWxzLT5Nb2R1bGVJbnB1dFByZWZpeC4kdGhpcy0+QWxpYXM7CgkJaWYgKCRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA8IDEgJiYgISAkdGhpcy0+UmVxdWlyZWQpCgkJCXsKCQkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJCQl9CgkJaWYgKGZmVXRpbGl0eUZ1bmN0aW9uczo6ZGVmKCRtc1swXS0+VmFsdWUpICYmICRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA+ICgkbXNbMF0tPlZhbHVlICogMTAwMCkpCgkJCXsKCQkJJG1lc3NhZ2UgPSAkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ2ZpbGVfdG9vX2xhcmdlJykuICcgJy4oJG1zWzBdLT5WYWx1ZSAqIDEwMDApLidrYic7CgkJCSRyZXN1bHQgPSBmYWxzZTsKCQkJfQoJCWlmIChmZlV0aWxpdHlGdW5jdGlvbnM6OmRlZigkZXh0c1swXS0+VmFsdWUpKQoJCQl7CgkJCSRtYXRjaCA9IGZhbHNlOwoJCQkkbGVnYWxFeHRzID0gZXhwbG9kZSgnLCcsJGV4dHNbMF0tPlZhbHVlKTsKCQkJZm9yZWFjaCAoJGxlZ2FsRXh0cyBhcyAkdGhpc0V4dCkKCQkJCXsKCQkJCWlmIChwcmVnX21hdGNoKCcvXC4nLnRyaW0oJHRoaXNFeHQpLickL2knLCRfRklMRVNbJGZ1bGxBbGlhc11bJ25hbWUnXSkpCgkJCQkJewoJCQkJCSRtYXRjaCA9IHRydWU7CgkJCQkJfQoJCQkJZWxzZSBpZiAocHJlZ19tYXRjaCgnLycudHJpbSgkdGhpc0V4dCkuJy9pJywkX0ZJTEVTWyRmdWxsQWxpYXNdWyd0eXBlJ10pKQoJCQkJCXsKCQkJCQkkbWF0Y2ggPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJaWYgKCEgJG1hdGNoKQoJCQkJewoJCQkJJG1lc3NhZ2UgPSAkdGhpcy0+bW9kX2dsb2JhbHMtPkxhbmcoJ2lsbGVnYWxfZmlsZV90eXBlJyk7CgkJCQkkcmVzdWx0ID0gZmFsc2U7CgkJCQl9CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/Form.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZvcm0gewoKCXZhciAkbW9kdWxlX3B0ciA9IC0xOwogICAgdmFyICRJZCA9IC0xOwogICAgdmFyICROYW1lID0gJyc7CiAgICB2YXIgJEFsaWFzID0gJyc7CiAgICB2YXIgJGxvYWRlZCA9ICdub3QnOwoJdmFyICRmb3JtVG90YWxQYWdlcyA9IDA7Cgl2YXIgJFBhZ2U7CiAgICB2YXIgJEF0dHJzOwogICAgdmFyICRGaWVsZHM7CiAgICB2YXIgJGZvcm1TdGF0ZTsKCglmdW5jdGlvbiBmYkZvcm0oJiRtb2R1bGVfcHRyLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQoJewoJICAgJHRoaXMtPm1vZHVsZV9wdHIgPSYgJG1vZHVsZV9wdHI7CgkgICAkdGhpcy0+RmllbGRzID0gYXJyYXkoKTsKCSAgICR0aGlzLT5BdHRycyA9IGFycmF5KCk7CgkgICAkdGhpcy0+Zm9ybVN0YXRlID0gJ25ldyc7CgkgICBpZiAoaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSkKCSAgICAgICB7CgkgICAgICAgJHRoaXMtPklkID0gJHBhcmFtc1snZm9ybV9pZCddOwoJICAgICAgIH0KCSAgIGlmIChpc3NldCgkcGFyYW1zWydmb3JtX2FsaWFzJ10pKQoJICAgICAgIHsKCSAgICAgICAkdGhpcy0+QWxpYXMgPSAkcGFyYW1zWydmb3JtX2FsaWFzJ107CgkgICAgICAgfQoJICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2Zvcm1fbmFtZSddKSkKCSAgICAgICB7CgkgICAgICAgJHRoaXMtPk5hbWUgPSAkcGFyYW1zWydmb3JtX25hbWUnXTsKCSAgICAgICB9CgkgICBpZiAoaXNzZXQoJHBhcmFtc1snY29udGludWUnXSkpCgkgICAgICAgewoJICAgICAgICR0aGlzLT5QYWdlID0gJHBhcmFtc1snY29udGludWUnXTsKCSAgICAgICB9CgkgICBlbHNlCgkgICAJICB7CgkgICAJICAkdGhpcy0+UGFnZSA9IDE7CgkgICAJICB9CgkgICBpZiAoaXNzZXQoJHBhcmFtc1sncHJldiddKSAmJiBpc3NldCgkcGFyYW1zWydwcmV2aW91cyddKSkKCSAgIAkgIHsKCSAgIAkgICR0aGlzLT5QYWdlID0gJHBhcmFtc1sncHJldmlvdXMnXTsKCSAgIAkgICRwYXJhbXNbJ2RvbmUnXSA9IDA7CgkgICAJICB9CgkgICAkdGhpcy0+Zm9ybVRvdGFsUGFnZXMgPSAxOwoJICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2RvbmUnXSkmJiAkcGFyYW1zWydkb25lJ109PTEpCgkgICAJCXsKCSAgIAkJJHRoaXMtPmZvcm1TdGF0ZSA9ICdzdWJtaXQnOwoJICAgCQl9CgkgICBpZiAoaXNzZXQoJHBhcmFtc1sndXNlcl9mb3JtX3ZhbGlkYXRlJ10pICYmICRwYXJhbXNbJ3VzZXJfZm9ybV92YWxpZGF0ZSddPT10cnVlKQoJICAgCQl7CgkgICAJCSR0aGlzLT5mb3JtU3RhdGUgPSAnY29uZmlybSc7CgkgICAJCX0KCSAgIGlmICgkdGhpcy0+SWQgIT0gLTEpCgkgICAJCXsKCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pICYmICR0aGlzLT5mb3JtU3RhdGUgPT0gJ3N1Ym1pdCcpCgkJCQl7CgkgICAJCQkkdGhpcy0+Zm9ybVN0YXRlID0gJ3VwZGF0ZSc7CgkgICAJCQl9CgkgICAJCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgJHBhcmFtcywgJGxvYWREZWVwKTsKCSAgIAkJfQoJICAgCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbCkKCSAgIAkJewoJICAgCQlpZiAoc3Vic3RyKCR0aGlzUGFyYW1LZXksMCw2KSA9PSAnZm9ybWFfJykKCSAgIAkJCXsKCSAgIAkJCSR0aGlzUGFyYW1LZXkgPSBzdWJzdHIoJHRoaXNQYXJhbUtleSw2KTsKCSAgIAkJCSR0aGlzLT5BdHRyc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWw7CgkgICAJCQlpZiAoJHRoaXNQYXJhbUtleSA9PSAnZm9ybV90ZW1wbGF0ZScgJiYgJHRoaXMtPklkICE9IC0xKQoJICAgCQkJCXsKCSAgIAkJCQkkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0aGlzUGFyYW1WYWwpOwoJICAgCQkJCX0KCSAgIAkJCX0KCSAgIAkJfQoJfQoKCWZ1bmN0aW9uIFNldEF0dHJpYnV0ZXMoJGF0dHJBcnJheSkKCXsKCQkkdGhpcy0+QXR0cnMgPSBhcnJheV9tZXJnZSgkdGhpcy0+QXR0cnMsJGF0dHJBcnJheSk7Cgl9CgoJZnVuY3Rpb24gU2V0VGVtcGxhdGUoJHRlbXBsYXRlKQoJewoJCSR0aGlzLT5BdHRyc1snZm9ybV90ZW1wbGF0ZSddID0gJHRlbXBsYXRlOwoJCSR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRlbXBsYXRlKTsKCX0KCglmdW5jdGlvbiBHZXRJZCgpCgl7CgkJcmV0dXJuICR0aGlzLT5JZDsKCX0KCglmdW5jdGlvbiBTZXRJZCgkaWQpCgl7CgkJJHRoaXMtPklkID0gJGlkOwoJfQoKCWZ1bmN0aW9uIEdldE5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TmFtZTsKCX0KCQoJZnVuY3Rpb24gR2V0Rm9ybVN0YXRlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPmZvcm1TdGF0ZTsKCX0KCQoJZnVuY3Rpb24gR2V0UGFnZUNvdW50KCkKCXsKCQlyZXR1cm4gJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzOwoJfQoJCglmdW5jdGlvbiBHZXRQYWdlTnVtYmVyKCkKCXsKCQlyZXR1cm4gJHRoaXMtPlBhZ2U7Cgl9CgoJZnVuY3Rpb24gUGFnZUJhY2soKQoJewoJCSR0aGlzLT5QYWdlLS07Cgl9CgoKCWZ1bmN0aW9uIFNldE5hbWUoJG5hbWUpCgl7CgkJJHRoaXMtPk5hbWUgPSAkbmFtZTsKCX0KCQoJZnVuY3Rpb24gR2V0QWxpYXMoKQoJewoJCXJldHVybiAkdGhpcy0+QWxpYXM7Cgl9CgoJZnVuY3Rpb24gU2V0QWxpYXMoJGFsaWFzKQoJewoJCSR0aGlzLT5BbGlhcyA9ICRhbGlhczsKCX0KCglmdW5jdGlvbiBEZWJ1Z0Rpc3BsYXkoKQoJewoJCSR0bXAgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+bW9kdWxlX3B0ciA9ICcnOwoJCSR0ZW1wbGF0ZV90bXAgPSAkdGhpcy0+R2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJycpOwoJCSR0aGlzLT5TZXRBdHRyKCdmb3JtX3RlbXBsYXRlJyxzdHJsZW4oJHRlbXBsYXRlX3RtcCkuJyBjaGFyYWN0ZXJzJyk7CgkJJGZpZWxkX3RtcCA9ICR0aGlzLT5GaWVsZHM7CgkJJHRoaXMtPkZpZWxkcyA9ICdGaWVsZCBBcnJheTogJy5jb3VudCgkZmllbGRfdG1wKTsKCQlkZWJ1Z19kaXNwbGF5KCR0aGlzKTsKCQkkdGhpcy0+U2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRlbXBsYXRlX3RtcCk7CgkJJHRoaXMtPkZpZWxkcyA9ICRmaWVsZF90bXA7CgkJZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICRmbGQpCgkJCXsKCQkJJGZsZC0+RGVidWdEaXNwbGF5KCk7CgkJCX0KCQkkdGhpcy0+bW9kdWxlX3B0ciA9ICR0bXA7Cgl9CgoJCglmdW5jdGlvbiBTZXRBdHRyKCRhdHRybmFtZSwgJHZhbCkKCXsKCQkkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXSA9ICR2YWw7Cgl9CgkKCWZ1bmN0aW9uIEdldEF0dHIoJGF0dHJuYW1lLCAkZGVmYXVsdD0iIikKCXsKCQlpZiAoaXNzZXQoJHRoaXMtPkF0dHJzWyRhdHRybmFtZV0pKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+QXR0cnNbJGF0dHJuYW1lXTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJGRlZmF1bHQ7CgkJCX0KCX0KCQoJZnVuY3Rpb24gR2V0RmllbGRDb3VudCgpCgl7CgkJcmV0dXJuIGNvdW50KCR0aGlzLT5GaWVsZHMpOwoJfQoKCWZ1bmN0aW9uIEhhc0ZpZWxkTmFtZWQoJG5hbWUpCgl7CgkJJHJldCA9IGZhbHNlOwogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgICAgCXsKICAgICAgICAJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkgPT0gJG5hbWUpCiAgICAgICAgCQl7CiAgICAgICAgCQkkcmV0ID0gdHJ1ZTsKICAgICAgICAJCX0KICAgICAgICAJfQogICAgICAgIHJldHVybiAkcmV0OwoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CiAgICAgICAgJHZhbGlkYXRlZCA9IHRydWU7CiAgICAgICAgJG1lc3NhZ2UgPSAnJzsKICAgICAgICAkZm9ybVBhZ2VDb3VudD0xOwogICAgICAgICR2YWxQYWdlID0gJHRoaXMtPlBhZ2UgLSAxOwogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgICAgCXsKICAgICAgICAJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQogICAgICAgIAkJewogICAgICAgIAkJJGZvcm1QYWdlQ291bnQrKzsKICAgICAgICAJCX0KICAgICAgICAJaWYgKCR2YWxQYWdlICE9ICRmb3JtUGFnZUNvdW50KQogICAgICAgIAkJewogICAgICAgIAkJY29udGludWU7CiAgICAgICAgCQl9CiAgICAgICAgCWlmICghICR0aGlzLT5GaWVsZHNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYKICAgICAgICAJCSAkdGhpcy0+RmllbGRzWyRpXS0+SXNSZXF1aXJlZCgpICYmCiAgICAgICAgCQkgCSR0aGlzLT5GaWVsZHNbJGldLT5IYXNWYWx1ZSgpID09IGZhbHNlKQogICAgICAgIAkJewogICAgICAgIAkJCSRtZXNzYWdlIC49ICI8aDQ+Ii4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpLiI8L2g0PlxuIjsKICAgICAgICAJCQkkdmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgCQkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKICAgICAgICAJCX0KICAgICAgICAJZWxzZSBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldFZhbHVlKCkgIT0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3Vuc3BlY2lmaWVkJykpCiAgICAgICAgCQl7IAogICAgICAgIAkJJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5WYWxpZGF0ZSgpOwogICAgICAgIAkJaWYgKCRyZXNbMF0gIT0gdHJ1ZSkKICAgICAgICAJCQl7CiAgICAgICAgCQkJJG1lc3NhZ2UgLj0gIjxoND4iLiAkcmVzWzFdLiI8L2g0PlxuIjsKICAgICAgICAJCQkkdmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgCQkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKICAgICAgICAJCQl9CiAgICAgICAgCQllbHNlCiAgICAgICAgCQkJewogICAgICAgIAkJCSR0aGlzLT5GaWVsZHNbJGldLT5TZXRPcHRpb24oJ2lzX3ZhbGlkJyx0cnVlKTsKICAgICAgICAJCQl9CiAgICAgICAgCQl9CiAgICAgICAgCX0KCQlyZXR1cm4gYXJyYXkoJHZhbGlkYXRlZCwgJG1lc3NhZ2UpOwoJfQoKCiAgICBmdW5jdGlvbiBIYXNEaXNwb3NpdGlvbigpCiAgICB7CiAgICAJJGhhc0Rpc3AgPSBmYWxzZTsKICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICAgIAl7CiAgICAgICAgCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+SXNEaXNwb3NpdGlvbigpKQogICAgICAgIAkgICB7CiAgICAgICAgCSAgIAkkaGFzRGlzcCA9IHRydWU7CiAgICAgICAgCSAgIH0KICAgICAgICAJfQogICAgICAgIHJldHVybiAkaGFzRGlzcDsKICAgIH0KCgkvLyByZXR1cm4gYW4gYXJyYXk6IGVsZW1lbnQgMCBpcyB0cnVlIGZvciBzdWNjZXNzLCBmYWxzZSBmb3IgZmFpbHVyZQoJLy8gZWxlbWVudCAxIGlzIGFuIGFycmF5IG9mIHJlYXNvbnMsIGluIHRoZSBldmVudCBvZiBmYWlsdXJlLgoJZnVuY3Rpb24gRGlzcG9zZSgkcmV0dXJuaWQpCgl7CgkJLy8gZmlyc3QsIHdlIHJ1biBhbGwgZmllbGQgbWV0aG9kcyB0aGF0IHdpbGwgbW9kaWZ5IG90aGVyIGZpZWxkcwogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgICAgCXsKICAgICAgICAJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5Nb2RpZmllc090aGVyRmllbGRzKCkpCiAgICAgICAgCQl7CiAgICAgICAgCQkkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZ5T3RoZXJGaWVsZHMoKTsKICAgICAgICAJCX0KICAgICAgICAJfQoKCQkkcmVzQXJyYXkgPSBhcnJheSgpOwogICAgICAgICRyZXRDb2RlID0gdHJ1ZTsKICAgICAgICAvLyBmb3IgZWFjaCBmb3JtIGRpc3Bvc2l0aW9uIHBzZXVkby1maWVsZCwgZGlzcG9zZSB0aGUgZm9ybSByZXN1bHRzCiAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgICAJewogICAgICAgIAlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpKQogICAgICAgIAkJewogICAgICAgIAkJJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5EaXNwb3NlRm9ybSgkcmV0dXJuaWQpOwoJCQkJaWYgKCRyZXNbMF0gPT0gZmFsc2UpCgkJCQkJewoJCQkJCSRyZXRDb2RlID0gZmFsc2U7CgkJCQkJYXJyYXlfcHVzaCgkcmVzQXJyYXksJHJlc1sxXSk7CgkJCQkJfQogICAgICAgIAkJfQogICAgICAgIAl9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXRDb2RlLCRyZXNBcnJheSk7CQkKCX0KCiAgICBmdW5jdGlvbiBSZW5kZXJGb3JtSGVhZGVyKCkKICAgIHsKICAgIAlpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgIAkgICB7CiAgICAJICAgcmV0dXJuICJcbjwhLS0gU3RhcnQgRm9ybUJ1aWxkZXIgTW9kdWxlICgiLiR0aGlzLT5tb2R1bGVfcHRyLT5HZXRWZXJzaW9uKCkuIikgLS0+XG4iOwogICAgCSAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBSZW5kZXJGb3JtRm9vdGVyKCkKICAgIHsKICAgIAlpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgIAkgICB7CiAgICAJICAgcmV0dXJuICJcbjwhLS0gRW5kIEZvcm1CdWlsZGVyIE1vZHVsZSAtLT5cbiI7CiAgICAJICAgfQogICAgfQoKCgkvLyByZXR1cm5zIGEgc3RyaW5nLgogICAgZnVuY3Rpb24gUmVuZGVyRm9ybSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgICB7CgkJJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwogICAgCWlmICgkdGhpcy0+SWQgPT0gLTEpCgkJCXsKCQkJcmV0dXJuICI8IS0tIG5vIGZvcm0gLS0+XG4iOwoJCQl9CgkJaWYgKCR0aGlzLT5sb2FkZWQgIT0gJ2Z1bGwnKQoJCQl7CgkJCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwkcGFyYW1zLHRydWUpOwoJCQl9CgkJJHJlcVN5bWJvbCA9ICR0aGlzLT5HZXRBdHRyKCdyZXF1aXJlZF9maWVsZF9zeW1ib2wnLCcqJyk7CgkJCQkKCQkkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfcGFnZV94X29mX3knLCRtb2QtPkxhbmcoJ3RpdGxlX3BhZ2VfeF9vZl95JyxhcnJheSgkdGhpcy0+UGFnZSwkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpKSk7CgkJCgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Nzc19jbGFzcycsJHRoaXMtPkdldEF0dHIoJ2Nzc19jbGFzcycsJycpKTsKCQkkbW9kLT5zbWFydHktPmFzc2lnbigndG90YWxfcGFnZXMnLCR0aGlzLT5mb3JtVG90YWxQYWdlcyk7CgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RoaXNfcGFnZScsJHRoaXMtPlBhZ2UpOwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX25hbWUnLCR0aGlzLT5OYW1lKTsKCQkkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9pZCcsJHRoaXMtPklkKTsKCQkKCQkkaGlkZGVuID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCk7CgkgICAgJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdjb250aW51ZScsICgkdGhpcy0+UGFnZSArIDEpKTsKCQlpZiAoaXNzZXQoJHBhcmFtc1snYnJvd3Nlcl9pZCddKSkKCQkJewoJCQkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnYnJvd3Nlcl9pZCcsJHBhcmFtc1snYnJvd3Nlcl9pZCddKTsKCQkJfQoJICAgIGlmICgkdGhpcy0+UGFnZSA+IDEpCgkgICAgCXsKCSAgICAJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdwcmV2aW91cycsICgkdGhpcy0+UGFnZSAtIDEpKTsKCSAgICAJfQogICAgCWlmICgkdGhpcy0+UGFnZSA9PSAkdGhpcy0+Zm9ybVRvdGFsUGFnZXMpCgkJCXsKCQkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdkb25lJywgMSk7CgkJCX0KCQkkZmllbGRzID0gYXJyYXkoKTsKCQkkZm9ybVBhZ2VDb3VudCA9IDE7CiAgICAJZm9yICgkaT0wOyAkaSA8IGNvdW50KCR0aGlzLT5GaWVsZHMpOyAkaSsrKQoJCQl7CgkJCSR0aGlzRmllbGQgPSAmJHRoaXMtPkZpZWxkc1skaV07CgkJCWlmICgkdGhpc0ZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJCQkJewoJCQkJJGZvcm1QYWdlQ291bnQrKzsKCQkJCX0KCQkJaWYgKCRmb3JtUGFnZUNvdW50ICE9ICR0aGlzLT5QYWdlKQoJCQkJewoJCQkJJHRlc3RJbmRleCA9ICdfJy4kdGhpcy0+RmllbGRzWyRpXS0+R2V0SWQoKTsKCQkJCWlmICghaXNzZXQoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkJCQkJewoJCQkJCS8vIGRvIHdlIG5lZWQgdG8gd3JpdGUgc29tZXRoaW5nPwoJCQkJCX0KCQkJCWVsc2VpZiAoaXNfYXJyYXkoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkJCQkJewoJCQkJCWZvcmVhY2ggKCRwYXJhbXNbJHRlc3RJbmRleF0gYXMgJHZhbCkKCQkJCQkJewoJCQkJCQkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwKCQkJCQkJCSR0ZXN0SW5kZXguJ1tdJywKCQkJCQkJCWh0bWxzcGVjaWFsY2hhcnMoJHZhbCxFTlRfUVVPVEVTKSk7CgkJCQkJCX0KCQkJCQl9CgkJCQllbHNlCgkJCQkJewoJCQkJCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLAoJCQkJCQkkdGVzdEluZGV4LAoJCQkJCQlodG1sc3BlY2lhbGNoYXJzKCRwYXJhbXNbJHRlc3RJbmRleF0sRU5UX1FVT1RFUykpOwoJCQkJCX0KCQkJCWNvbnRpbnVlOwoJCQkgICAgfQoJCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRvbmVzZXQtPmRpc3BsYXkgPSAkdGhpc0ZpZWxkLT5EaXNwbGF5SW5Gb3JtKCk/MTowOwoJCQkkb25lc2V0LT5yZXF1aXJlZCA9ICR0aGlzRmllbGQtPklzUmVxdWlyZWQoKT8xOjA7CgkJCSRvbmVzZXQtPnJlcXVpcmVkX3N5bWJvbCA9ICR0aGlzRmllbGQtPklzUmVxdWlyZWQoKT8kcmVxU3ltYm9sOicnOwoJCQkkb25lc2V0LT5jc3NfY2xhc3MgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2Nzc19jbGFzcycpOwoJCQkkb25lc2V0LT52YWxpZCA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignaXNfdmFsaWQnLHRydWUpPzE6MDsKCQkJJG9uZXNldC0+aGlkZV9uYW1lID0gJHRoaXNGaWVsZC0+SGlkZUxhYmVsKCk/MTowOwoJCQkkb25lc2V0LT5uYW1lID0gJHRoaXNGaWVsZC0+R2V0TmFtZSgpOwoJCQkkb25lc2V0LT5pbnB1dCA9ICR0aGlzRmllbGQtPkdldEZpZWxkSW5wdXQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwoJCQkkb25lc2V0LT5pbnB1dF9pZCA9ICRpZC4nXycuJHRoaXNGaWVsZC0+R2V0SUQoKTsKCQkJJG9uZXNldC0+bXVsdGlwbGVfcGFydHMgPSAkdGhpc0ZpZWxkLT5IYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzKCk/MTowOwoJCQkkb25lc2V0LT50eXBlID0gJHRoaXNGaWVsZC0+R2V0RGlzcGxheVR5cGUoKTsKCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXNGaWVsZC0+R2V0TmFtZSgpLCRvbmVzZXQpOwoJCQlhcnJheV9wdXNoKCRmaWVsZHMsJG9uZXNldCk7CgkJCX0KCgkJJG1vZC0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdoaWRkZW4nLCRoaWRkZW4pOwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduX2J5X3JlZignZmllbGRzJywkZmllbGRzKTsKCgkJaWYgKCR0aGlzLT5QYWdlID4gMSkKCQkJewogICAgCSAgIAkkbW9kLT5zbWFydHktPmFzc2lnbigncHJldicsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAncHJldicsCiAgICAJICAgCQkkdGhpcy0+R2V0QXR0cigncHJldl9idXR0b25fdGV4dCcpLAogICAgCSAgIAkJJ2NsYXNzPSJmYnN1Ym1pdF9wcmV2IicpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbigncHJldicsJycpOwoJCQl9CgoJCWlmICgkdGhpcy0+UGFnZSA8ICRmb3JtUGFnZUNvdW50KQoJCQl7CiAgICAJICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsCiAgICAJICAgCQkkdGhpcy0+R2V0QXR0cignbmV4dF9idXR0b25fdGV4dCcpLAogICAgCSAgIAkJJ2NsYXNzPSJmYnN1Ym1pdF9uZXh0IicpKTsKCQkJfQoJCWVsc2UKCQkJewogICAgICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLAogICAgICAgICAgICAJJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9idXR0b25fdGV4dCcpLAogICAgICAgICAgICAJJ2NsYXNzPSJmYnN1Ym1pdCInKSk7CgkJCX0KCgkJLy8gZmlndXJlIG91dCBob3cgdG8gcmVuZGVyIHRoZSBmb3JtLCBub3cgdGhhdCBpdCdzIHNtYXJ0eS1pemVkCgkJc3dpdGNoICgkdGhpcy0+R2V0QXR0cignZm9ybV9kaXNwbGF5dHlwZScsJ3RhYicpKQoJCQl7CgkJCWNhc2UgJ3RhYic6CgkJCQl7CiAgICAJCQlpZiAoJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3Bvc2l0aW9uJywnbGVmdCcpID09ICdsZWZ0JykKICAgIAkJCQl7CiAgICAJCQkJcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnUmVuZGVyRm9ybVRhYmxlVGl0bGVMZWZ0LnRwbCcpOwogICAgCQkJCX0KICAgIAkJCWVsc2UKICAgIAkJCQl7CiAgICAJCQkJcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnUmVuZGVyRm9ybVRhYmxlVGl0bGVUb3AudHBsJyk7CiAgICAJCQkJfQoJCQkJfQoJCQljYXNlICdjc3Nvbmx5JzoKCQkJCXsKICAgIAkJCXJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ1JlbmRlckZvcm1DU1MudHBsJyk7CgkJCQl9CgkJCWNhc2UgJ3RlbXBsYXRlJzoKCQkJCXsKCQkJCXJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2ZiXycuJHRoaXMtPklkKTsKCQkJCX0KCQkJfQogICAgfQoKICAgIGZ1bmN0aW9uIExvYWRGb3JtKCRsb2FkRGVlcD1mYWxzZSkKICAgIHsKICAgIAlyZXR1cm4gJHRoaXMtPkxvYWQoJHRoaXMtPklkLCBhcnJheSgpLCAkbG9hZERlZXApOwogICAgfQoKICAgIGZ1bmN0aW9uIExvYWQoJGZvcm1JZCwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGZvcm1faWQ9Pyc7CgkgICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKICAgICAgICBpZigkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCSAgICAgICB7CgkgICAgICAgJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKTsKICAgICAgICAgICAkdGhpcy0+SWQgPSAkcmVzdWx0Wydmb3JtX2lkJ107CiAgICAgICAgICAgaWYgKCFpc3NldCgkcGFyYW1zWydmb3JtX25hbWUnXSkgfHwgZW1wdHkoJHBhcmFtc1snZm9ybV9uYW1lJ10pKQogICAgICAgICAgIAkJewogICAgICAgICAgIAkJJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CiAgICAgICAgICAgCQl9CiAgICAgICAgICAgaWYgKCFpc3NldCgkcGFyYW1zWydmb3JtX2FsaWFzJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2Zvcm1fYWxpYXMnXSkpCiAgICAgICAgICAgCQl7CgkgICAgICAgCQkkdGhpcy0+QWxpYXMgPSAkcmVzdWx0WydhbGlhcyddOwoJICAgICAgIAkJfQogICAgICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgICAgewogICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICB9CiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgbmFtZSx2YWx1ZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAknbW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8nOwoJICAgICRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CiAgICAgICAgd2hpbGUgKCRycyAmJiAkcmVzdWx0PSRycy0+RmV0Y2hSb3coKSkKCSAgICAgICB7CiAgICAgICAgICAgJHRoaXMtPkF0dHJzWyRyZXN1bHRbJ25hbWUnXV0gPSAkcmVzdWx0Wyd2YWx1ZSddOwogICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICR0aGlzLT5sb2FkZWQgPSAnc3VtbWFyeSc7CgoJCWlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkKCQkJewoJCQkkbG9hZERlZXAgPSB0cnVlOwoJCQl9CgkJCQogICAgICAgIGlmICgkbG9hZERlZXApCiAgICAgICAgICAgewoJCQkvLyBpZiBpdCdzIGEgc3RvcmVkIGZvcm0sIGxvYWQgdGhlIHJlc3VsdHMgLS0gYnV0IHdlIG5lZWQgdG8gbWFudWFsbHkgbWVyZ2UgdGhlbSwKCQkJLy8gc2luY2UgJHBhcmFtc1tdIHNob3VsZCBvdmVycmlkZSB0aGUgZGF0YWJhc2UgdmFsdWUgKHNheSB3ZSdyZSByZXN1Ym1pdHRpbmcgYSBmb3JtKQoJCQlpZiAoaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpCgkJCQl7CgkJCQkkbG9hZFBhcmFtcyA9IGFycmF5KCdyZXNwb25zZV9pZCc9PiRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pOwoJCQkJJHRoaXMtPkxvYWRSZXNwb25zZVZhbHVlcygkbG9hZFBhcmFtcyk7CgkJCQlmb3JlYWNoICgkbG9hZFBhcmFtcyBhcyAkdGhpc1BhcmFtS2V5PT4kdGhpc1BhcmFtVmFsdWUpCgkJCQkJewoJCQkJCWlmICghIGlzc2V0KCRwYXJhbXNbJHRoaXNQYXJhbUtleV0pKQoJCQkJCQl7CgkJCQkJCSRwYXJhbXNbJHRoaXNQYXJhbUtleV0gPSAkdGhpc1BhcmFtVmFsdWU7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgogICAgICAgICAgICRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAgICAgIAknbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZvcm1faWQ9PyBPUkRFUiBCWSBvcmRlcl9ieSc7CgkgICAgICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKICAgICAgICAgICAkcmVzdWx0ID0gYXJyYXkoKTsKICAgICAgICAgICBpZiAoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHJzLT5HZXRBcnJheSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkZmllbGRDb3VudCA9IDA7CiAgICAgICAgICAgIGlmIChjb3VudCgkcmVzdWx0KSA+IDApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3JlYWNoKCRyZXN1bHQgYXMgJHRoaXNSZXMpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkdGhpc1Jlc1sndHlwZSddLCAnJyk7CiAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBmaWVsZCBvYmplY3QKICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgCQkoIGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJgogICAgICAgICAgICAgICAgICAgIAkJCSgKICAgICAgICAgICAgICAgICAgICAJCQlpc3NldCgkcGFyYW1zWydfJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pIHx8CiAgICAgICAgICAgICAgICAgICAgCQkJaXNzZXQoJHBhcmFtc1snX18nLiR0aGlzUmVzWydmaWVsZF9pZCddXSkKICAgICAgICAgICAgICAgICAgICAJCQkpCiAgICAgICAgICAgICAgICAgICAgCQkpIHx8CiAgICAgICAgICAgICAgICAgICAgCQkoCiAgICAgICAgICAgICAgICAgICAgCQkJaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkgJiYgaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCiAgICAgICAgICAgICAgICAgICAgICAgIAkgCSRwYXJhbXNbJ2ZpZWxkX2lkJ10gPT0gJHRoaXNSZXNbJ2ZpZWxkX2lkJ10KICAgICAgICAgICAgICAgICAgICAgICAgCSkKICAgICAgICAgICAgICAgICAgICAgICAJKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzUmVzID0gYXJyYXlfbWVyZ2UoJHRoaXNSZXMsJHBhcmFtcyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+RmllbGRzWyRmaWVsZENvdW50XSA9ICYkdGhpcy0+TmV3RmllbGQoJHRoaXNSZXMpOwogICAgICAgICAgICAgICAgICAgICRmaWVsZENvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+bG9hZGVkID0gJ2Z1bGwnOwogICAgICAgICAgIH0KCgkJCgkJZm9yICgkaT0wOyAkaSA8IGNvdW50KCR0aGlzLT5GaWVsZHMpOyAkaSsrKQoJCQl7CgkJCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+VHlwZSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJCQkJewoJCQkJJHRoaXMtPmZvcm1Ub3RhbFBhZ2VzKys7CgkJCQl9CgkJCX0KCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLy8gc3RvcmVEZWVwIGFsc28gc3RvcmVzIGFsbCBmaWVsZHMgYW5kIG9wdGlvbnMgZm9yIGEgZm9ybQogICAgZnVuY3Rpb24gU3RvcmUoJHN0b3JlRGVlcD1mYWxzZSkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5JZCA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLgogICAgICAgICAgICAJJ21vZHVsZV9mYl9mb3JtX3NlcScpOwoJCQkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm0gKGZvcm1faWQsIG5hbWUsIGFsaWFzKSAnLgoJCQkJJ1ZBTFVFUyAoPywgPywgPyknOwoJCQkkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQlhcnJheSgkdGhpcy0+SWQsICR0aGlzLT5OYW1lLCAkdGhpcy0+QWxpYXMpKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewoJCQkkc3FsID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9mb3JtIHNldCBuYW1lPT8sIGFsaWFzPT8gd2hlcmUgZm9ybV9pZD0/JzsKCQkJJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJYXJyYXkoJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcywgJHRoaXMtPklkKSk7CiAgICAgICAgICAgIH0KICAgICAgICAvLyBzYXZlIG91dCB0aGUgYXR0cnMKCQkkc3FsID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQknbW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8nOwoJCSRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CgkJZm9yZWFjaCAoJHRoaXMtPkF0dHJzIGFzICR0aGlzQXR0cktleT0+JHRoaXNBdHRyVmFsdWUpCgkJCXsKICAgICAgICAgICAgJGZvcm1BdHRySWQgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkdlbklEKGNtc19kYl9wcmVmaXgoKS4KICAgICAgICAgICAgCSdtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwoJCQkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1fYXR0ciAoZm9ybV9hdHRyX2lkLCBmb3JtX2lkLCBuYW1lLCB2YWx1ZSkgJy4KCQkJCSdWQUxVRVMgKD8sID8sID8sID8pJzsKCQkJJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJYXJyYXkoJGZvcm1BdHRySWQsICR0aGlzLT5JZCwgJHRoaXNBdHRyS2V5LAoJCQkJJHRoaXNBdHRyVmFsdWUpKTsKCQkJaWYgKCR0aGlzQXR0cktleSA9PSAnZm9ybV90ZW1wbGF0ZScpCgkJCQl7CgkJCQkkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0aGlzQXR0clZhbHVlKTsKCQkJCX0KCQkJfQoJCQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIGZ1bmN0aW9uIERlbGV0ZSgpCiAgICB7CgkJaWYgKCR0aGlzLT5JZCA9PSAtMSkKCQkgIHsKCQkgIHJldHVybiBmYWxzZTsKCQkgIH0KCQlpZiAoJHRoaXMtPmxvYWRlZCAhPSAnZnVsbCcpCgkJCXsKCQkJJHRoaXMtPkxvYWQoJHRoaXMtPklkLGFycmF5KCksdHJ1ZSk7CgkJCX0KICAgICAgICBmb3JlYWNoICgkdGhpcy0+RmllbGRzIGFzICRmaWVsZCkKICAgICAgICAgICAgewogICAgICAgICAgICAkZmllbGQtPkRlbGV0ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgJHRoaXMtPm1vZHVsZV9wdHItPkRlbGV0ZVRlbXBsYXRlKCdmYl8nLiR0aGlzLT5JZCk7CgkJJHNxbCA9ICdERUxFVEUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9mb3JtIHdoZXJlIGZvcm1faWQ9Pyc7CgkJJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKCQkkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBmb3JtX2lkPT8nOwoJCSRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CgkJcmV0dXJuIHRydWU7CiAgICB9CgogICAgLy8gcmV0dXJucyBhIGNsYXNzIG5hbWUsIGFuZCBtYWtlcyBzdXJlIHRoZSBmaWxlIHdoZXJlIHRoZSBjbGFzcyBpcwogICAgLy8gZGVmaW5lZCBoYXMgYmVlbiBsb2FkZWQuCiAgICBmdW5jdGlvbiBNYWtlQ2xhc3NOYW1lKCR0eXBlLCAkY2xhc3NEaXJQcmVmaXgpCiAgICB7CiAgICAJLy8gcGVyZm9ybSBydWRpbWVudGFyeSBzZWN1cml0eSwgc2luY2UgVHlwZSBjb3VsZCBjb21lIGluIGZyb20gYSBmb3JtCiAgICAJJHR5cGUgPSBwcmVnX3JlcGxhY2UoIi9bXFddfFwuXC4vIiwgIl8iLCAkdHlwZSk7CgkJaWYgKCR0eXBlID09ICcnIHx8IHN0cmxlbigkdHlwZSkgPCAxKQoJCQl7CgkJCSR0eXBlID0gJ0ZpZWxkJzsKCQkJfQogICAgCWlmIChzdHJsZW4oJGNsYXNzRGlyUHJlZml4KSA+IDApCiAgICAJICAgewogICAgCSAgICRjbGFzc0ZpbGUgPSAkY2xhc3NEaXJQcmVmaXggLicvJy4kdHlwZS4nLmNsYXNzLnBocCc7CiAgICAJICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICB7CiAgICAgICAgICAgJGNsYXNzRmlsZSA9ICR0eXBlLicuY2xhc3MucGhwJzsKICAgICAgICAgICB9CiAgICAgICAgcmVxdWlyZV9vbmNlICRjbGFzc0ZpbGU7CiAgICAgICAgLy8gY2xhc3MgbmFtZXMgYXJlIHByZXBlbmRlZCB3aXRoICJmYiIgdG8gcHJldmVudCBuYW1lc3BhY2UgY2xhc2guCiAgICAgICAgcmV0dXJuICggJ2ZiJy4kdHlwZSApOwogICAgfQoKCWZ1bmN0aW9uIEFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkbWVzc2FnZT0nJykKCXsKCSAgJG1vZCA9ICYkdGhpcy0+bW9kdWxlX3B0cjsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJCSAgICAgICAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc3RvcmVfZm9ybScsICRyZXR1cm5pZCkpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybWlkJywKCQkJICAgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1faWQnLCAkdGhpcy0+SWQpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWJIZWFkZXJzKCkuCgkJCSAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ21haW50YWInLCRtb2QtPkxhbmcoJ3RhYl9tYWluJykpLgoJCQkgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdhZGRpdGlvbicsJG1vZC0+TGFuZygndGFiX2FkZGl0aW9uYWwnKSkuCgkJCSAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ3RhYmxlbGF5b3V0JywkbW9kLT5MYW5nKCd0YWJfdGFibGVsYXlvdXQnKSkuCgkJCSAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ3RlbXBsYXRlbGF5b3V0JywkbW9kLT5MYW5nKCd0YWJfdGVtcGxhdGVsYXlvdXQnKSkuCgkJCSAgICAgICAKCQkJICAgICAgICRtb2QtPkVuZFRhYkhlYWRlcnMoKSAuICRtb2QtPlN0YXJ0VGFiQ29udGVudCgpKTsKCSAgCgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21haW50YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJtYWludGFiIikpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbignYWRkaXRpb25hbHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoImFkZGl0aW9uIikpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFibGV0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJ0YWJsZWxheW91dCIpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRldGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigidGVtcGxhdGVsYXlvdXQiKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZW5kJywkbW9kLT5FbmRUYWIoKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9uYW1lJywKCQkJICAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmb3JtX25hbWUnLAoJCQkJCQkgICAgICR0aGlzLT5OYW1lLCA1MCkpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV91bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndGl0bGVfZm9ybV91bnNwZWNpZmllZCcpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fdW5zcGVjaWZpZWQnLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX3Vuc3BlY2lmaWVkJywKCQkJCQkJICAgICAkdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpLCA1MCkpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9zdGF0dXMnLAoJCQkgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9zdGF0dXMnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZXh0X3JlYWR5JywKCQkJICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50JykpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9hbGlhcycsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9hbGlhcycpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fYWxpYXMnLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1fYWxpYXMnLAoJCQkJCQkgICAgICR0aGlzLT5BbGlhcywgNTApKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJywKCQkJICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJykpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9jc3NfY2xhc3MnLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX2Nzc19jbGFzcycsCgkJCQkJCSAgICAgJHRoaXMtPkdldEF0dHIoJ2Nzc19jbGFzcycsJ2Zvcm1idWlsZGVyZm9ybScpLCA1MCw1MCkpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9maWVsZHMnLAoJCQkgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9maWVsZHMnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9uYW1lJywKCQkJICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX25hbWUnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF90eXBlJywKCQkJICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF90eXBlJywKCQkJICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3RlbXBsYXRlJywKCQkJICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9saXN0X2RlbGltaXRlcicsCgkJCSAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9saXN0X2RlbGltaXRlcicpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnLAoJCQkgICAgICAgJG1vZC0+TGFuZygndGl0bGVfcmVkaXJlY3RfcGFnZScpKTsKCSAgCgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbmZvcm1hdGlvbicsJG1vZC0+TGFuZygnaW5mb3JtYXRpb24nKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9vcmRlcicsJG1vZC0+TGFuZygnb3JkZXInKSk7ICAgIAoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9kaXNwbGF5dHlwZScsICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnLCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldicpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hhc2Rpc3Bvc2l0aW9uJywkdGhpcy0+SGFzRGlzcG9zaXRpb24oKT8xOjApOwoJICAkbWF4T3JkZXIgPSAxOwoJICBpZigkdGhpcy0+SWQgPiAwKQoJICAgIHsKCSAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYnV0dG9uJywKCQkJCSAgICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ3N1Ym1pdCcsCgkJCQkJCQkgICAkbW9kLT5MYW5nKCdzYXZlX2FuZF9jb250aW51ZScpKSk7CgkgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywKCQkJCSAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1fb3AnLCRtb2QtPkxhbmcoJ3VwZGF0ZWQnKSkpOwoJICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZGluZycsMCk7CgkgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc2F2ZV9idXR0b24nLAoJCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgJG1vZC0+TGFuZygnc2F2ZScpKSk7CgkgICAgICAkZmllbGRMaXN0ID0gYXJyYXkoKTsKCSAgICAgICRjdXJyb3cgPSAicm93MSI7CgkgICAgICAkY291bnQgPSAxOwoJICAgICAgJGxhc3QgPSAkdGhpcy0+R2V0RmllbGRDb3VudCgpOwoJICAgICAgZm9yZWFjaCAoJHRoaXMtPkZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJCXsKCQkgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkgICRvbmVzZXQtPnJvd2NsYXNzID0gJGN1cnJvdzsKCQkgICRvbmVzZXQtPm5hbWUgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJycsICR0aGlzRmllbGQtPkdldE5hbWUoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJCSAgJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7CgkJICBpZiAoJHRoaXNGaWVsZC0+SXNEaXNwb3NpdGlvbigpIHx8CgkJICAgICAgISR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKSB8fAoJCSAgICAgICR0aGlzRmllbGQtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCgkJICAgIHsKCQkgICAgICAkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICcuJzsKCQkgICAgfQoJCSAgZWxzZSBpZiAoJHRoaXNGaWVsZC0+SXNSZXF1aXJlZCgpKQoJCSAgICB7CgkJICAgICAgJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9yZXF1aXJlZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJ3RydWUnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdhY3RpdmUnPT4nb2ZmJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkJICAgIH0KCQkgIGVsc2UKCQkgICAgewoJCSAgICAgICRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnZmFsc2UnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdhY3RpdmUnPT4nb24nLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpKTsKCQkgICAgfQoJCSAgJG9uZXNldC0+ZmllbGRfc3RhdHVzID0gJHRoaXNGaWVsZC0+U3RhdHVzSW5mbygpOwoJCSAgaWYgKCRjb3VudCA+IDEpCgkJICAgIHsKCQkgICAgICAkb25lc2V0LT51cCA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX29yZGVyJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywndXAnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdkaXInPT4ndXAnLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpKTsKCQkgICAgfQoJCSAgZWxzZQoJCSAgICB7CgkJICAgICAgJG9uZXNldC0+dXAgPSAnJm5ic3A7JzsKCQkgICAgfQoJCSAgaWYgKCRjb3VudCA8ICRsYXN0KQoJCSAgICB7CgkJICAgICAgJG9uZXNldC0+ZG93bj0kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9vcmRlcicsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy1kLmdpZicsJ2Rvd24nLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdkaXInPT4nZG93bicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJCSAgICB9CgkJICBlbHNlCgkJICAgIHsKCQkgICAgICAkb25lc2V0LT5kb3duID0gJyZuYnNwOyc7CgkJICAgIH0KCQkgICRvbmVzZXQtPmVkaXRsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsJ2VkaXQnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCksJ2Zvcm1faWQnPT4kdGhpcy0+SWQpKTsKCQkgICRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2RlbGV0ZV9maWVsZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywnZGVsZXRlJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSwkbW9kLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJywkdGhpc0ZpZWxkLT5HZXROYW1lKCkpKTsKCQkgICgkY3Vycm93ID09ICJyb3cxIj8kY3Vycm93PSJyb3cyIjokY3Vycm93PSJyb3cxIik7CgkJICAkY291bnQrKzsKCQkgIGlmICgkdGhpc0ZpZWxkLT5HZXRPcmRlcigpID49ICRtYXhPcmRlcikKCQkgICAgewoJCSAgICAgICRtYXhPcmRlciA9ICR0aGlzRmllbGQtPkdldE9yZGVyKCkgKyAxOwoJCSAgICB9CgkJICBhcnJheV9wdXNoKCRmaWVsZExpc3QsICRvbmVzZXQpOwoJCX0KCSAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZExpc3QpOwoJICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZF9maWVsZF9saW5rJywKCQkJCSAgICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsJG1vZC0+TGFuZygndGl0bGVfYWRkX25ld19maWVsZCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdvcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCBmYWxzZSkgLiAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9uZXdfZmllbGQnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ29yZGVyX2J5Jz0+JG1heE9yZGVyKSwgJycsIGZhbHNlKSk7CgkgICAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2Zhc3RhZGQnLDEpID09IDEpCgkJewoJCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zhc3RhZGQnLDEpOwoJCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zhc3RhZGQnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zhc3RhZGQnKSk7CgkJICAkdHlwZUlucHV0ID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPgpmdW5jdGlvbiBmYXN0X2FkZChmaWVsZF90eXBlKQp7Cgl2YXIgdHlwZT1maWVsZF90eXBlLm9wdGlvbnNbZmllbGRfdHlwZS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKCXZhciBsaW5rID0gJyIuJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwnJyxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ29yZGVyX2J5Jz0+JG1heE9yZGVyKSwgJycsIHRydWUsdHJ1ZSkuIiYiLiRpZC4iZmllbGRfdHlwZT0nK3R5cGU7Cgl0aGlzLmxvY2F0aW9uPWxpbms7CglyZXR1cm4gdHJ1ZTsKfQo8L3NjcmlwdD4iOwoJCSAgJHR5cGVJbnB1dCA9IHN0cl9yZXBsYWNlKCcmYW1wOycsJyYnLCR0eXBlSW5wdXQpOyAKCQkgICRtb2QtPmluaXRpYWxpemUoKTsKCQkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mYXN0YWRkJywkdHlwZUlucHV0LiRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmZpZWxkX3R5cGVzKSwgLTEsJycsICdvbmNoYW5nZT0iZmFzdF9hZGQodGhpcykiJykpOwoJCX0JCQkJCQkJCgkgICAgfQoJICBlbHNlCgkgICAgewoJICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfYnV0dG9uJywnJyk7CgkgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0X2J1dHRvbicsCgkJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdzdWJtaXQnLCAkbW9kLT5MYW5nKCdhZGQnKSkpOwoJICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsCgkJCQkgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX29wJywkbW9kLT5MYW5nKCdhZGRlZCcpKSk7CgkgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYWRkaW5nJywxKTsKCSAgICB9CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdsaW5rX25vdHJlYWR5JywiPHN0cm9uZz4iLiRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeTEnKS4iPC9zdHJvbmc+ICIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MicpLiIgIi4kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeV9saW5rJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdvcmRlcl9ieSc9PiRtYXhPcmRlciwnZGlzcG9zZV9vbmx5Jz0+MSksICcnLCBmYWxzZSwgZmFsc2UsJ2NsYXNzPSJtb2R1bGVfZmJfbGluayInKS4iICIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MycpCgkJCSAgICAgICApOwoKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbicsCgkJCSAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3N1Ym1pdF9idXR0b24nLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX3N1Ym1pdF9idXR0b25fdGV4dCcsCgkJCQkJCSAgICAgJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9idXR0b25fdGV4dCcsJG1vZC0+TGFuZygnYnV0dG9uX3N1Ym1pdCcpKSwgMzUsIDM1KSk7CgoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9wcmV2X2J1dHRvbicsCgkJCSAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJykpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9wcmV2X2J1dHRvbicsCgkJCSAgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZm9ybWFfcHJldl9idXR0b25fdGV4dCcsCgkJCQkJCSAgICAgJHRoaXMtPkdldEF0dHIoJ3ByZXZfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9wcmV2aW91cycpKSwgMzUsIDM1KSk7CgoKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nLAoJCQkgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uZXh0X2J1dHRvbicpKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fbmV4dF9idXR0b24nLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX25leHRfYnV0dG9uX3RleHQnLAoJCQkJCQkgICAgICR0aGlzLT5HZXRBdHRyKCduZXh0X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fY29udGludWUnKSksIDM1LCAzNSkpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnLAoJCQkgICAgICAgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnKSk7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3JlcXVpcmVkX3N5bWJvbCcsCgkJCSAgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZm9ybWFfcmVxdWlyZWRfZmllbGRfc3ltYm9sJywKCQkJCQkJICAgICAkdGhpcy0+R2V0QXR0cigncmVxdWlyZWRfZmllbGRfc3ltYm9sJywnKicpLCA1MCkpOwoJICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbGlzdF9kZWxpbWl0ZXInLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2Zvcm1hX2xpc3RfZGVsaW1pdGVyJywKCQkJCQkJICAgICAkdGhpcy0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksIDUwKSk7CgogICAgICAgICAgZ2xvYmFsICRnQ21zOwoJICAkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3JlZGlyZWN0X3BhZ2UnLCRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0QXR0cigncmVkaXJlY3RfcGFnZScsJzAnKSwgJGlkLidmb3JtYV9yZWRpcmVjdF9wYWdlJykpOwoKCgkgICRkaXNwbGF5VHlwZXMgPSBhcnJheSgkbW9kLT5MYW5nKCdkaXNwdHlwZV90YWJsZScpPT4ndGFiJywKCQkJCSRtb2QtPkxhbmcoJ2Rpc3B0eXBlX2NzcycpPT4nY3Nzb25seScsCgkJCQkkbW9kLT5MYW5nKCdkaXNwdHlwZV90ZW1wbGF0ZScpPT4ndGVtcGxhdGUnKTsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fZGlzcGxheXR5cGUnLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJ2Zvcm1hX2Zvcm1fZGlzcGxheXR5cGUnLCAkZGlzcGxheVR5cGVzLCAkdGhpcy0+R2V0QXR0cignZm9ybV9kaXNwbGF5dHlwZScsJ3RhYicpKSk7CgkJCQkKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJywKCQkJICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJykpOwoJICAkcG9zID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnKT0+J2xlZnQnLCRtb2QtPkxhbmcoJ3RpdGxlX3RhYmxlX2xheW91dF9hYm92ZScpPT4ndG9wJyk7CQoJICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfdGl0bGVfcG9zaXRpb24nLAoJCQkgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJ2Zvcm1hX3RpdGxlX3Bvc2l0aW9uJywKCQkJCQkJCSAgICRwb3MsICR0aGlzLT5HZXRBdHRyKCd0aXRsZV9wb3NpdGlvbicsJ2xlZnQnKSkpOwkJCgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3RlbXBsYXRlJywKCQkJICAgICAgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkJCSAgICAkdGhpcy0+R2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJHRoaXMtPkRlZmF1bHRUZW1wbGF0ZSgpKSwgJ2Zvcm1hX2Zvcm1fdGVtcGxhdGUnKSk7CgkgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkZEVkaXRGb3JtLnRwbCcpOwoJfQoKCglmdW5jdGlvbiAmT2xkTmV3RmllbGQoJiRwYXJhbXMpCgl7CgkJJGFlZmllbGQgPSBuZXcgZmJGaWVsZEJhc2UoJHRoaXMsJHBhcmFtcyk7CiAgICAgICAgaWYgKCRhZWZpZWxkLT5HZXRJZCgpICE9IC0xICkKICAgICAgICAgICAgewogICAgICAgICAgICAvLyB3ZSdyZSBsb2FkaW5nIGFuIGV4dGFudCBmaWVsZAoJCQkkc3FsID0gJ1NFTEVDVCB0eXBlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZmllbGRfaWQ9Pyc7CgkgICAgCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkYWVmaWVsZC0+R2V0SWQoKSkpOwogICAgICAgIAlpZigkcnMgJiYgJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKSkKCQkJCXsKCQkJCSRhZWZpZWxkLT5TZXRGaWVsZFR5cGUoJHJlc3VsdFsndHlwZSddKTsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgfQoJCS8vIHdoYXQga2luZCBvZiBmaWVsZD8KCQkvLyBuZWVkIHRvIGtub3cgd2hhdCBraW5kIG9mIG9iamVjdCB0byBpbnN0YW50aWF0ZSEKICAgICAgICBpZiAoJGFlZmllbGQtPkdldEZpZWxkVHlwZSgpICE9ICcnKQogICAgICAgICAgICB7CiAgICAgICAgICAgIC8vIE9LLCBpbnN0YW50aWF0aW5nIGEgc3BlY2lmaWMgSW5wdXQgY2xhc3MuCiAgICAgICAgICAgICRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkYWVmaWVsZC0+R2V0RmllbGRUeXBlKCksICcnKTsKICAgICAgICAgICAgJGFlZmllbGQgPSBuZXcgJGNsYXNzTmFtZSgkdGhpcywgJHBhcmFtcyk7CiAgICAgICAgICAgIH0KICAgICAgICAkYWVmaWVsZC0+TG9hZEZpZWxkKCRwYXJhbXMpOwoJCXJldHVybiAkYWVmaWVsZDsKCX0KCglmdW5jdGlvbiAmTmV3RmllbGQoJiRwYXJhbXMpCgl7CgkJLy8kYWVmaWVsZCA9IG5ldyBmYkZpZWxkQmFzZSgkdGhpcywkcGFyYW1zKTsKCQkkYWVmaWVsZCA9IGZhbHNlOwogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmaWVsZF9pZCddKSAmJiAkcGFyYW1zWydmaWVsZF9pZCddICE9IC0xICkKICAgICAgICAgICAgewogICAgICAgICAgICAvLyB3ZSdyZSBsb2FkaW5nIGFuIGV4dGFudCBmaWVsZAoJCQkkc3FsID0gJ1NFTEVDVCB0eXBlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZmllbGRfaWQ9Pyc7CgkgICAgCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSggJHBhcmFtc1snZmllbGRfaWQnXSkpOwogICAgICAgIAlpZigkcnMgJiYgJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKSkKCQkJCXsJCQkJCgkJCQlpZiAoJHJlc3VsdFsndHlwZSddICE9ICcnKQoJCQkJCXsKICAgICAgICAgICAgCQkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHJlc3VsdFsndHlwZSddICwgJycpOwogICAgICAgICAgICAJCSRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwogICAgICAgCQkJCSRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CgkJCQkJfQogICAgICAgICAgICAJfQogICAgICAgICAgICB9CgkJaWYgKCRhZWZpZWxkID09PSBmYWxzZSkKCQkJewoJCQkvLyBuZXcgZmllbGQKCQkJaWYgKCEgaXNzZXQoJHBhcmFtc1snZmllbGRfdHlwZSddKSkKCQkJCXsKCQkJCS8vIHVua25vd24gZmllbGQgdHlwZQoJCQkJJGFlZmllbGQgPSBuZXcgZmJGaWVsZEJhc2UoJHRoaXMsJHBhcmFtcyk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCS8vIHNwZWNpZmllZCBmaWVsZCB0eXBlIHZpYSBwYXJhbXMKICAgICAgICAgICAgCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkcGFyYW1zWydmaWVsZF90eXBlJ10sICcnKTsKICAgICAgICAgICAgCSRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJCQkJfQoJCQl9CgkJcmV0dXJuICRhZWZpZWxkOwoJfQoKCgoJZnVuY3Rpb24gQWRkRWRpdEZpZWxkKCRpZCwgJiRhZWZpZWxkLCAkZGlzcG9zZV9vbmx5LCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQoJewoJCSRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKCQkKCQkkbW9kLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdiYWNrdG9mb3JtX25hdicsJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJHJldHVybmlkLCAkbW9kLT5MYW5nKCdsaW5rX2JhY2tfdG9fZm9ybScpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCkpKTsKCQkkbWFpbkxpc3QgPSBhcnJheSgpOwoJCSRhZHZMaXN0ID0gYXJyYXkoKTsKCQkkYmFzZUxpc3QgPSAkYWVmaWVsZC0+UHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRpZCwgJGRpc3Bvc2Vfb25seSk7CgkJaWYgKCRhZWZpZWxkLT5HZXRGaWVsZFR5cGUoKSA9PSAnJykKCQkJewoJCQkvLyBzdGlsbCBuZWVkIHR5cGUKCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCkpOwkJCQoJCQkkZmllbGRMaXN0ID0gYXJyYXkoJ21haW4nPT5hcnJheSgpLCdhZHYnPT5hcnJheSgpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkvLyB3ZSBoYXZlIG91ciB0eXBlCgkJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQpKTsJCgkJCSRmaWVsZExpc3QgPSAkYWVmaWVsZC0+UHJlUG9wdWxhdGVBZG1pbkZvcm0oJGlkKTsKCQkJfQoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdlbmRfZm9ybScsICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWJIZWFkZXJzKCkuCgkJCSRtb2QtPlNldFRhYkhlYWRlcignbWFpbnRhYicsJG1vZC0+TGFuZygndGFiX21haW4nKSkuCgkJCSRtb2QtPlNldFRhYkhlYWRlcignYWR2YW5jZWR0YWInLCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpKS4KCQkJJG1vZC0+RW5kVGFiSGVhZGVycygpIC4gJG1vZC0+U3RhcnRUYWJDb250ZW50KCkpOwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKCQkkbW9kLT5zbWFydHktPmFzc2lnbignbWFpbnRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoIm1haW50YWIiKSk7CgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkdmFuY2VkdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigiYWR2YW5jZWR0YWIiKSk7CgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9lbmQnLCRtb2QtPkVuZFRhYigpKTsKCQkkbW9kLT5zbWFydHktPmFzc2lnbignbm90aWNlX3NlbGVjdF90eXBlJywkbW9kLT5MYW5nKCdub3RpY2Vfc2VsZWN0X3R5cGUnKSk7CgoJCWlmKCRhZWZpZWxkLT5HZXRJZCgpICE9IC0xKQoJCQl7CgkJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcCcsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3AnLCRtb2QtPkxhbmcoJ3VwZGF0ZWQnKSkpOwoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdhZWZfdXBkJywgJG1vZC0+TGFuZygndXBkYXRlJykpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignb3AnLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ29wJywgJG1vZC0+TGFuZygnYWRkZWQnKSkpOwoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdhZWZfYWRkJywgJG1vZC0+TGFuZygnYWRkJykpKTsKCQkJfQoKCQlpZiAoJGFlZmllbGQtPkhhc0FkZE9wKCkpCgkJCXsKCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdhZWZfb3B0YWRkJywkYWVmaWVsZC0+R2V0T3B0aW9uQWRkQnV0dG9uKCkpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkJywnJyk7CgkJCX0KCQlpZiAoJGFlZmllbGQtPkhhc0RlbGV0ZU9wKCkpCgkJCXsKCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2RlbCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdhZWZfb3B0ZGVsJywkYWVmaWVsZC0+R2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignZGVsJywnJyk7CgkJCX0KCgoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX2lkJywgJHRoaXMtPklkKSAuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZpZWxkX2lkJywgJGFlZmllbGQtPkdldElkKCkpIC4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnb3JkZXJfYnknLCAkYWVmaWVsZC0+R2V0T3JkZXIoKSkuCgkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdzZXRfZnJvbV9mb3JtJywnMScpKTsKCgkJaWYgKCEkYWVmaWVsZC0+SXNEaXNwb3NpdGlvbigpICYmICEkYWVmaWVsZC0+SXNOb25SZXF1aXJhYmxlRmllbGQoKSkKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbigncmVxdWlyYWJsZScsMSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3JlcXVpcmFibGUnLDApOwoJCQl9CgkJCQoJCWlmIChpc3NldCgkYmFzZUxpc3RbJ21haW4nXSkpCgkJCXsKCQkJZm9yZWFjaCAoJGJhc2VMaXN0WydtYWluJ10gYXMgJGl0ZW0pCgkJCQl7CgkJCQkkdGl0bGVTdHI9JGl0ZW1bMF07CgkJCQkkaW5wdXRTdHI9JGl0ZW1bMV07CgkJCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJCQkkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCQkJCWlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJCQkJCXsKCQkJCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkJCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJCQkJJG9uZXNldC0+aGVscD0nJzsKCQkJCQl9CgkJCQlhcnJheV9wdXNoKCRtYWluTGlzdCwkb25lc2V0KTsKCQkJCX0KCQkJfQkKCQlpZiAoaXNzZXQoJGJhc2VMaXN0WydhZHYnXSkpCgkJCXsKCQkJZm9yZWFjaCAoJGJhc2VMaXN0WydhZHYnXSBhcyAkaXRlbSkKCQkJCXsKCQkJCSR0aXRsZVN0ciA9ICRpdGVtWzBdOwoJCQkJJGlucHV0U3RyID0gJGl0ZW1bMV07CgkJCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJCQkkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCQkJCWlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJCQkJCXsKCQkJCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkJCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJCQkJJG9uZXNldC0+aGVscD0nJzsKCQkJCQl9CgkJCQlhcnJheV9wdXNoKCRhZHZMaXN0LCRvbmVzZXQpOwoJCQkJfQoJCQl9CQoJCWlmIChpc3NldCgkZmllbGRMaXN0WydtYWluJ10pKQoJCQl7CgkJCWZvcmVhY2ggKCRmaWVsZExpc3RbJ21haW4nXSBhcyAkaXRlbSkKCQkJCXsKCQkJCSR0aXRsZVN0cj0kaXRlbVswXTsKCQkJCSRpbnB1dFN0cj0kaXRlbVsxXTsKCQkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJCSRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJCQkJaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkJCQkJewoJCQkJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCQkJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkJCQkJfQoJCQkJZWxzZQoJCQkJCXsKCQkJCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkJCQkkb25lc2V0LT5oZWxwPScnOwoJCQkJCX0KCQkJCWFycmF5X3B1c2goJG1haW5MaXN0LCRvbmVzZXQpOwoJCQkJfQoJCQl9CgkJaWYgKGlzc2V0KCRmaWVsZExpc3RbJ2FkdiddKSkKCQkJewoJCQlmb3JlYWNoICgkZmllbGRMaXN0WydhZHYnXSBhcyAkaXRlbSkKCQkJCXsKCQkJCSR0aXRsZVN0cj0kaXRlbVswXTsKCQkJCSRpbnB1dFN0cj0kaXRlbVsxXTsKCQkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJCSRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJCQkJaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkJCQkJewoJCQkJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCQkJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkJCQkJfQoJCQkJZWxzZQoJCQkJCXsKCQkJCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkJCQkkb25lc2V0LT5oZWxwPScnOwoJCQkJCX0KCQkJCWFycmF5X3B1c2goJGFkdkxpc3QsJG9uZXNldCk7CgkJCQl9CgkJCX0KCQkKCQkkYWVmaWVsZC0+UG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCRtYWluTGlzdCwgJGFkdkxpc3QpOwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWluTGlzdCcsJG1haW5MaXN0KTsKCQkkbW9kLT5zbWFydHktPmFzc2lnbignYWR2TGlzdCcsJGFkdkxpc3QpOwogICAgICAgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkZEVkaXRGaWVsZC50cGwnKTsKICAgIH0KCiAgICBmdW5jdGlvbiBNYWtlQWxpYXMoJHN0cmluZywgJGlzRm9ybT1mYWxzZSkKICAgIHsKICAgIAkkc3RyaW5nID0gdHJpbShodG1sc3BlY2lhbGNoYXJzKCRzdHJpbmcpKTsKICAgICAgICAvLyRzdHJpbmcgPSBwcmVnX3JlcGxhY2UoIi9bXy1cV10rLyIsICJfIiwgJHN0cmluZyk7CgkJLy8kc3RyaW5nID0gdHJpbSgkc3RyaW5nLCAnXycpOwoJCWlmICgkaXNGb3JtKQoJCSAgewoJCSAgcmV0dXJuIHN0cnRvbG93ZXIoJHN0cmluZyk7CgkJICB9CgkJZWxzZQoJCSAgewoJCSAgcmV0dXJuICdmYicuc3RydG9sb3dlcigkc3RyaW5nKTsKCQkgIH0KICAgIH0KICAgIAogICAgZnVuY3Rpb24gU3dhcEZpZWxkc0J5SW5kZXgoJHNyY19maWVsZF9pbmRleCwgJGRlc3RfZmllbGRfaW5kZXgpCiAgICB7CiAgICAgICAgJHNyY0ZpZWxkID0gJiR0aGlzLT5HZXRGaWVsZEJ5SW5kZXgoJHNyY19maWVsZF9pbmRleCk7CiAgICAgICAgJGRlc3RGaWVsZCA9ICYkdGhpcy0+R2V0RmllbGRCeUluZGV4KCRkZXN0X2ZpZWxkX2luZGV4KTsKICAgICAgICAkdG1wT3JkZXJCeSA9ICRkZXN0RmllbGQtPkdldE9yZGVyKCk7CiAgICAgICAgJGRlc3RGaWVsZC0+U2V0T3JkZXIoJHNyY0ZpZWxkLT5HZXRPcmRlcigpKTsKICAgICAgICAkc3JjRmllbGQtPlNldE9yZGVyKCR0bXBPcmRlckJ5KTsKLy9pdCBzZWVtcyB0aGlzIG1ha2VzIHBocDQgZ28gY3JhenkgZml4ZWQgYnkgcmVsb2FkaW5nIGZvcm0gYmVmb3JlIHNob3dpbmcgaXQgYWdhaW4KIyAgICAgICAgJHRoaXMtPkZpZWxkc1skZGVzdF9maWVsZF9pbmRleF0gPSAkc3JjRmllbGQ7CiMgICAgICAgICR0aGlzLT5GaWVsZHNbJHNyY19maWVsZF9pbmRleF0gPSAkZGVzdEZpZWxkOwogICAgICAgICRzcmNGaWVsZC0+U3RvcmUoKTsKICAgICAgICAkZGVzdEZpZWxkLT5TdG9yZSgpOwogICAgfQoKCWZ1bmN0aW9uICZHZXRGaWVsZHMoKQoJewoJCXJldHVybiAkdGhpcy0+RmllbGRzOwoJfQogICAgCiAgICBmdW5jdGlvbiAmR2V0RmllbGRCeUlkKCRmaWVsZF9pZCkKICAgIHsKICAgIAkkaW5kZXggPSAtMTsKICAgIAlmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgIAkJewogICAgCQlpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldElkKCkgPT0gJGZpZWxkX2lkKQogICAgCQkJewogICAgCQkJJGluZGV4ID0gJGk7CiAgICAJCQl9CiAgICAJCX0KICAgIAlpZiAoJGluZGV4ICE9IC0xKQogICAgCQl7CiAgICAJCXJldHVybiAkdGhpcy0+RmllbGRzWyRpbmRleF07CiAgICAJCX0KICAgIAllbHNlCiAgICAJCXsKICAgIAkJcmV0dXJuIGZhbHNlOwogICAgCQl9CiAgICB9CgogICAgZnVuY3Rpb24gJkdldEZpZWxkQnlJbmRleCgkZmllbGRfaW5kZXgpCiAgICB7CiAgICAJcmV0dXJuICR0aGlzLT5GaWVsZHNbJGZpZWxkX2luZGV4XTsKICAgIH0KCgogICAgZnVuY3Rpb24gR2V0RmllbGRJbmRleEZyb21JZCgkZmllbGRfaWQpCiAgICB7CiAgICAJJGluZGV4ID0gLTE7CiAgICAJZm9yICgkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAJCXsKICAgIAkJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpID09ICRmaWVsZF9pZCkKICAgIAkJCXsKICAgIAkJCSRpbmRleCA9ICRpOwogICAgCQkJfQogICAgCQl9CgkJcmV0dXJuICRpbmRleDsKICAgIH0KCgoJZnVuY3Rpb24gRGVmYXVsdFRlbXBsYXRlKCkKCXsKCQlyZXR1cm4gZmlsZV9nZXRfY29udGVudHMoZGlybmFtZShfX0ZJTEVfXykuJy8uLi90ZW1wbGF0ZXMvUmVuZGVyRm9ybURlZmF1bHQudHBsJyk7Cgl9CiAgICAKICAgIGZ1bmN0aW9uIERlbGV0ZUZpZWxkKCRmaWVsZF9pZCkKICAgIHsKICAgIAkkaW5kZXggPSAkdGhpcy0+R2V0RmllbGRJbmRleEZyb21JZCgkZmllbGRfaWQpOwogICAgCWlmICgkaW5kZXggIT0gLTEpCiAgICAJCXsKICAgIAkJJHRoaXMtPkZpZWxkc1skaW5kZXhdLT5EZWxldGUoKTsKICAgIAkJYXJyYXlfc3BsaWNlKCR0aGlzLT5GaWVsZHMsJGluZGV4LDEpOwogICAgCQl9CiAgICB9IAoKCWZ1bmN0aW9uIFJlc2V0RmllbGRzKCkKCXsKCQlmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQoJCQl7CgkJCSR0aGlzLT5GaWVsZHNbJGldLT5SZXNldFZhbHVlKCk7CgkJCX0KCX0KICAgIAoJLy8gdGhpcyB3aWxsIGluc3RhbnRpYXRlIHRoZSBmb3JtLCBhbmQgbG9hZCB0aGUgcmVzdWx0cwogICAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlKCRyZXNwb25zZV9pZCkKICAgIHsKICAgIAkkZGIgPSAmJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgICAgICAvLyBsb2FkaW5nIGEgcmVzcG9uc2UgLS0gYXQgdGhpcyBwb2ludCwgd2UgY2hlY2sgdGhhdCB0aGUgcmVzcG9uc2UKICAgICAgICAgLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCgkJJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgcmVzcF9pZD0/JzsKICAgICAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSkpCiAgICAgICAgCXsKICAgICAgICAJaWYgKCRyZXN1bHRbJ2Zvcm1faWQnXSAhPSAkdGhpcy0+R2V0SWQoKSkKICAgICAgICAJCXsKICAgICAgICAJCXJldHVybiBmYWxzZTsKICAgICAgICAJCX0KCQkgICAgCgkJICAgICR0aGlzLT5SZXNldEZpZWxkcygpOwoKICAgICAgICAJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcF92YWwgV0hFUkUgcmVzcF9pZD0/JzsKICAgICAgICAJICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCQkgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCSAgICAgICAgCXsKCQkgICAgICAgIAkkaW5kZXggPSAkdGhpcy0+R2V0RmllbGRJbmRleEZyb21JZCgkcm93WydmaWVsZF9pZCddKTsKCQkgICAgICAgIAkkdGhpcy0+RmllbGRzWyRpbmRleF0tPlNldFZhbHVlKCRyb3dbJ3ZhbHVlJ10pOwoJCSAgICAgICAgCX0KICAgICAgICAJfQogICAgICAgIGVsc2UKICAgICAgICAJewogICAgICAgIAlyZXR1cm4gZmFsc2U7CiAgICAgICAgCX0KICAgIH0gICAKCiAgICBmdW5jdGlvbiBMb2FkUmVzcG9uc2VWYWx1ZXMoJiRwYXJhbXMpCiAgICB7CiAgICAJJGRiID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgICAgICAvLyBsb2FkaW5nIGEgcmVzcG9uc2UgLS0gYXQgdGhpcyBwb2ludCwgd2UgY2hlY2sgdGhhdCB0aGUgcmVzcG9uc2UKICAgICAgICAgLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCgkJJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgcmVzcF9pZD0/JzsKICAgICAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpKQogICAgICAgIAl7CiAgICAgICAgCWlmICgkcmVzdWx0Wydmb3JtX2lkJ10gIT0gJHRoaXMtPkdldElkKCkpCiAgICAgICAgCQl7CiAgICAgICAgCQlyZXR1cm4gZmFsc2U7CiAgICAgICAgCQl9CiAgICAgICAgCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJCQknbW9kdWxlX2ZiX3Jlc3BfdmFsIFdIRVJFIHJlc3BfaWQ9Pyc7CiAgICAgICAgCSAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpOwoJCSAgICB3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJICAgICAgICAJeyAvLyB3YXMgJ19fJwkJICAgICAgICAJCgkJICAgICAgICAJaWYgKGlzc2V0KCRwYXJhbXNbJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSAmJgoJCSAgICAgICAgCQkhIGlzX2FycmF5KCRwYXJhbXNbJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSkKCQkgICAgICAgIAkJewoJCSAgICAgICAgCQkkcGFyYW1zWydfJy4kcm93WydmaWVsZF9pZCddXSA9IGFycmF5KCRwYXJhbXNbJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dKTsKCQkgICAgICAgIAkJYXJyYXlfcHVzaCgkcGFyYW1zWydfJy4kcm93WydmaWVsZF9pZCddXSwgJHJvd1sndmFsdWUnXSk7CgkJICAgICAgICAJCX0KCQkgICAgICAgIAllbHNlaWYgKGlzc2V0KCRwYXJhbXNbJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dKSkKCQkgICAgICAgIAkJewoJCSAgICAgICAgCQlhcnJheV9wdXNoKCRwYXJhbXNbJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dLCAkcm93Wyd2YWx1ZSddKTsKCQkgICAgICAgIAkJfQoJCSAgICAgICAgCWVsc2UKCQkgICAgICAgIAkJewoJCSAgICAgICAgCQkkcGFyYW1zWydfJy4kcm93WydmaWVsZF9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CgkJICAgICAgICAJCX0KCQkgICAgICAgIAl9CiAgICAgICAgCX0KICAgICAgICBlbHNlCiAgICAgICAgCXsKICAgICAgICAJcmV0dXJuIGZhbHNlOwogICAgICAgIAl9CiAgICB9ICAgCgoJZnVuY3Rpb24gRGVsZXRlUmVzcG9uc2UoJHJlc3BvbnNlX2lkKQoJewogICAgCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKCQkkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX3Jlc3BfdmFsIHdoZXJlIHJlc3BfaWQ9Pyc7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCQkkc3FsID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9yZXNwIHdoZXJlIHJlc3BfaWQ9Pyc7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsJCgl9CgoJZnVuY3Rpb24gQ2hlY2tSZXNwb25zZSgkZm9ybV9pZCwgJHJlc3BvbnNlX2lkLCAkY29kZSkKCXsKICAgIAkkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CgkJJHNxbCA9ICdTRUxFQ1Qgc2VjcmV0X2NvZGUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9yZXNwIHdoZXJlIGZvcm1faWQ9PyBhbmQgcmVzcF9pZD0/JzsKICAgICAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJGZvcm1faWQsJHJlc3BvbnNlX2lkKSkpCiAgICAgICAgCXsKICAgICAgICAJaWYgKCRyZXN1bHRbJ3NlY3JldF9jb2RlJ10gPT0gJGNvZGUpCiAgICAgICAgCQl7CiAgICAgICAgCQlyZXR1cm4gdHJ1ZTsKICAgICAgICAJCX0KICAgICAgICAJfQoJCXJldHVybiBmYWxzZTsKCX0KCgogICAgZnVuY3Rpb24gU3RvcmVSZXNwb25zZSgkcmVzcG9uc2VfaWQ9LTEsJGFwcHJvdmVyPScnKQogICAgewogICAgCSRkYiA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKICAgICAgJGZpZWxkcyA9ICYkdGhpcy0+R2V0RmllbGRzKCk7CgkJJHNlY3JldF9jb2RlID0gJyc7CiAgICAJJG5ld3JlYyA9IGZhbHNlOwogICAgCWlmICgkcmVzcG9uc2VfaWQgPT0gLTEpCiAgICAJCXsKICAgIAkJJG5ld3JlYyA9IHRydWU7CiAgICAJCX0KICAgICAgICBpZiAoJG5ld3JlYykKICAgICAgICAgICAgewogICAgICAgICAgICAvLyBzYXZpbmcgYSBuZXcgcmVzcG9uc2UKICAgICAgICAgICAgJHNlY3JldF9jb2RlID0gc3Vic3RyKG1kNShzZXNzaW9uX2lkKCkuJ18nLnRpbWUoKSksMCw3KTsKICAgICAgICAgICAgJHJlc3BvbnNlX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCQkJCSRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKS4KCQkJCQknbW9kdWxlX2ZiX3Jlc3AgKHJlc3BfaWQsIGZvcm1faWQsIHN1Ym1pdHRlZCwgc2VjcmV0X2NvZGUpJyAuCgkJCQkJJyBWQUxVRVMgKD8sID8sID8sID8pJzsKCQkJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwKCQkJCQlhcnJheSgkcmVzcG9uc2VfaWQsCgkJCQkgCSR0aGlzLT5HZXRJZCgpLAoJCQkJIAkkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwKCQkJCSAJJHNlY3JldF9jb2RlKSk7CgkJCX0KCQllbHNlIGlmICgkYXBwcm92ZXIgIT0gJycpCgkJCXsKCQkJCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQkJJ21vZHVsZV9mYl9yZXNwIHNldCB1c2VyX2FwcHJvdmVkPT8gd2hlcmUgcmVzcF9pZD0/JzsKCQkJCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwKCQkJCQlhcnJheSgkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwkcmVzcG9uc2VfaWQpKTsKCQkJCWF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbicsYXJyYXkoJHJlc3BvbnNlX2lkLCRhcHByb3ZlcikpKTsKCQkJfQogICAgICBpZiAoISAkbmV3cmVjKQogICAgICAgICB7CiAgICAgICAgIC8vIHVwZGF0aW5nIGFuIG9sZCByZXNwb25zZSwgc28gd2UgcHVyZ2Ugb2xkIHZhbHVlcwoJCQkkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCQkJJ21vZHVsZV9mYl9yZXNwX3ZhbCB3aGVyZSByZXNwX2lkPT8nOwoJCQkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRyZXNwb25zZV9pZCkpOwogICAgICAgICB9CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9yZXNwX3ZhbCAocmVzcF92YWxfaWQsIHJlc3BfaWQsIGZpZWxkX2lkLCB2YWx1ZSknIC4KCQkJCSdWQUxVRVMgKD8sID8sID8sID8pJzsKICAgICAgZm9yZWFjaCAoJGZpZWxkcyBhcyAkdGhpc0ZpZWxkKQogICAgICAgIAl7CgkJCS8vIHNldCB0aGUgcmVzcG9uc2VfaWQgdG8gYmUgdGhlIGF0dHJpYnV0ZSBvZiB0aGUgZGF0YWJhc2UgZGlzcG9zaXRpb24KICAgICAgICAgaWYgKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkRhdGFiYXNlJykKICAgICAgICAJCXsKICAgICAgICAJCSR0aGlzRmllbGQtPlNldFZhbHVlKCRyZXNwb25zZV9pZCk7CiAgICAgICAgCQl9CgkJCWVsc2VpZiAoISAkdGhpc0ZpZWxkLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJCQl7CgkJCQkvLyBza2lwIGlmIG5vdCBhIGRpc3BsYXlhYmxlIGZpZWxkLgoJCQkJY29udGludWU7CgkJCQl9CiAgICAgICAgCWlmICghIGlzX2FycmF5KCR0aGlzRmllbGQtPkdldFZhbHVlKCkpKQogICAgICAgIAkJewogICAgICAgIAkJJHN0b3JlID0gYXJyYXkoKTsKICAgICAgICAJCWFycmF5X3B1c2goJHN0b3JlLCR0aGlzRmllbGQtPkdldFZhbHVlKCkpOwogICAgICAgIAkJfQogICAgICAgIAllbHNlCiAgICAgICAgCQl7CiAgICAgICAgCQkkc3RvcmUgPSAkdGhpc0ZpZWxkLT5HZXRWYWx1ZSgpOwogICAgICAgIAkJfQogICAgICAgIAlmb3JlYWNoICgkc3RvcmUgYXMgJHRoaXNGaWVsZFZhbCkKICAgICAgICAJCXsKICAgICAgICAJCWlmICgkdGhpc0ZpZWxkVmFsICE9PSBmYWxzZSkKICAgICAgICAJCQl7CiAgICAgICAgCQkJJHJlc3BfdmFsX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuCiAgICAgICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcF92YWxfc2VxJyk7CiAgICAgICAgICAgIAkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcF92YWxfaWQsJHJlc3BvbnNlX2lkLAogICAgICAgICAgICAJCQkkdGhpc0ZpZWxkLT5HZXRJZCgpLCR0aGlzRmllbGRWYWwpKTsKICAgICAgICAgICAgCQl9CiAgICAgICAgICAgIAl9IAogICAgICAgIAl9CiAgICByZXR1cm4gYXJyYXkoJHJlc3BvbnNlX2lkLCRzZWNyZXRfY29kZSk7CiAgICB9ICAgCiAgICAKICAgIGZ1bmN0aW9uIGNsZWFuX2RhdGV0aW1lKCRkdCkKICAgIHsKICAgIAlyZXR1cm4gc3Vic3RyKCRkdCwxLHN0cmxlbigkZHQpLTIpOwogICAgfQogICAgCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICdlbWFpbCc7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdfJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgpOwoJfQoJCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCQoJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJJHJlcGxWYWwgPSAnJzsKCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICB9CgkJcmV0dXJuIGFycmF5KCRyZXN1bHQsICRtZXNzYWdlKTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxOYW1lRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdfJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgpOwoJfQoJCglmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCQoJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCXsKCQkJJHJlcGxWYWwgPSAnJzsKCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCXsKCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/MultiselectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYk11bHRpc2VsZWN0RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ011bHRpc2VsZWN0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsNCkgPT0gJ2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gY291bnRJdGVtcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignb3B0aW9uX25hbWUnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCSRzdWJqZWN0cyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJJHZhbCA9IGFycmF5KCk7CgkJCX0KCQllbHNlaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR2YWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR2YWwgPSAkdGhpcy0+VmFsdWU7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ18nLiR0aGlzLT5JZC4nW10nLCAkc29ydGVkLCR2YWwsICR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdvcHRpb25fbmFtZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ29wdGlvbnMnLCRudW0pOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEl0ZW1zKCk7CgkJaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQoJCQl7CgkJCSR0aGlzLT5vcHRpb25Db3VudCArPSAkdGhpcy0+b3B0aW9uQWRkOwoJCQkkdGhpcy0+b3B0aW9uQWRkID0gMDsKCQkJfQoJCSRkZXN0cyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl9uYW1lJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQoJCQl7CgkJCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X29wdGlvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fbmFtZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdkZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9saW5lc190b19zaG93JyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9saW5lcycsJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCczJyksMTAsMTApKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJyksJGRlc3RzKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSR2YWxzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl92YWx1ZScpOwoJCQoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQkJewoJCQkJJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJZm9yZWFjaCAoJHRoaXMtPlZhbHVlIGFzICR0aGlzT25lKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkZmllbGRSZXQsJHZhbHNbJHRoaXNPbmUgLSAxXSk7CgkJCQl9CgkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwkJCQoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CQoJfQoJCn0KPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/PageBreakField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhZ2VCcmVha0ZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiUGFnZUJyZWFrRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnUGFnZUJyZWFrRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJLy8kdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkKQoJewoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCQkvLyByZW1vdmUgdGhlICJoaWRlIG5hbWUiIGZpZWxkCgkJJGhpZGVJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkYWR2QXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWwnKSkKCQkJCXsKCQkJCSRhZHZBcnJheVskaV0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCQkkYWR2QXJyYXlbJGldLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJCX0KCQkJfQoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoJCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKCXsKCQlyZXR1cm4gYXJyYXkodHJ1ZSwnJyk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PulldownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlB1bGxkb3duRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiUHVsbGRvd25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1B1bGxkb3duRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsNCkgPT0gJ2RlbF8nKQoJCQkJewoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoJZnVuY3Rpb24gY291bnRJdGVtcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignb3B0aW9uX25hbWUnKTsKCQkJaWYgKGlzX2FycmF5KCR0bXApKQoJCQkJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSAwOwoJICAgICAgICAJfQoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspCgkJCQl7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdfJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfb3B0aW9uX25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X29wdGlvbl92YWx1ZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsKCR0aGlzLT5WYWx1ZS0xKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0JCgl9CgkKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJG9wdGlvbkNvdW50OwoJdmFyICRvcHRpb25BZGQ7CgkKCWZ1bmN0aW9uIGZiUmFkaW9Hcm91cEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1JhZGlvR3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPm9wdGlvbkFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPm9wdGlvbkNvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdvcHRpb25zJywkdGhpcy0+b3B0aW9uQ291bnQpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJCSByZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CgkJJGZpZWxkRGlzcCA9IGFycmF5KCk7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQkkbGFiZWwgPSAnJzsKCQkJJHRoaXNCb3ggPSBuZXcgc3RkQ2xhc3MoKTsKCQkJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkJCQl7CgkJCQkkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJCQkJfQoJCQkkY2hlY2tfdmFsID0gZmFsc2U7CgkJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJCQkJewoJCQkJJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSk7CgkJCQl9CgkJCSR0aGlzQm94LT5pbnB1dCA9ICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IicuJGlkLidfJy4kdGhpcy0+SWQuJyIgdmFsdWU9IicuJGkuJyInOwoJCQlpZiAoJGNoZWNrX3ZhbCkKCQkJCXsKCQkJCSR0aGlzQm94LT5pbnB1dCAuPSAnIGNoZWNrZWQ9ImNoZWNrZWQiJzsKCQkJCX0KCQkJJHRoaXNCb3gtPmlucHV0IC49ICcgLz4nOwoJCQlhcnJheV9wdXNoKCRmaWVsZERpc3AsICR0aGlzQm94KTsKCQkJfQkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCR0aGlzLT5WYWx1ZSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0JCgl9CgoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5vcHRpb25BZGQgPSAyOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQoJewoJCSRkZWxjb3VudCA9IDA7CgkJZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCgkJCXsKCQkJaWYgKHN1YnN0cigkdGhpc0tleSwwLDQpID09ICdkZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSRkZWxjb3VudCsrOwoJCQkJfQoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGJveGVzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQoJCQl7CgkJCSRib3hlcyAuPSAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfYnV0dG9uX25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9uYW1lJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2J1dHRvbl9jaGVja2VkW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdkZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkYm94ZXMgLj0gJzwvdGFibGU+JzsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnKSwkYm94ZXMpCgkJKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCgl7CgkJJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CgkJJGNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYnV0dG9uX2NoZWNrZWQnKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX25hbWUnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCAkaSk7CgkJCQkkaS0tOwoJCQkJfQoJCQl9CgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/StatePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiU3RhdGVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFN0YXRlczsKCQoJZnVuY3Rpb24gZmJTdGF0ZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1N0YXRlUGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgogICAgICAgICR0aGlzLT5TdGF0ZXMgPSBhcnJheSgKICAgICAgICAiTm8gRGVmYXVsdCI9PicnLCJBbGFiYW1hIj0+IkFMIiwgIkFsYXNrYSI9PiJBSyIsICJBcml6b25hIj0+IkFaIiwgIkFya2Fuc2FzIj0+IkFSIiwgCiAgICAgICAgIkNhbGlmb3JuaWEiPT4iQ0EiLCAiQ29sb3JhZG8iPT4iQ08iLCAiQ29ubmVjdGljdXQiPT4iQ1QiLCAiRGVsYXdhcmUiPT4iREUiLCAKICAgICAgICAiRmxvcmlkYSI9PiJGTCIsICJHZW9yZ2lhIj0+IkdBIiwgIkhhd2FpaSI9PiJISSIsICJJZGFobyI9PiJJRCIsIAogICAgICAgICJJbGxpbm9pcyI9PiJJTCIsICJJbmRpYW5hIj0+IklOIiwgIklvd2EiPT4iSUEiLCAKICAgICAgICAiS2Fuc2FzIj0+IktTIiwgIktlbnR1Y2t5Ij0+IktZIiwgIkxvdWlzaWFuYSI9PiJMQSIsICJNYWluZSI9PiJNRSIsCiAgICAgICAgIk1hcnlsYW5kIj0+Ik1EIiwgIk1hc3NhY2h1c2V0dHMiPT4iTUEiLCAKICAgICAgICAiTWljaGlnYW4iPT4iTUkiLCAiTWlubmVzb3RhIj0+Ik1OIiwgIk1pc3Npc3NpcHBpIj0+Ik1TIiwKICAgICAgICAiTWlzc291cmkiPT4iTU8iLCAiTW9udGFuYSI9PiJNVCIsICJOZWJyYXNrYSI9PiJORSIsIAogICAgICAgICJOZXZhZGEiPT4iTlYiLCAiTmV3IEhhbXBzaGlyZSI9PiJOSCIsICJOZXcgSmVyc2V5Ij0+Ik5KIiwKICAgICAgICAiTmV3IE1leGljbyI9PiJOTSIsICJOZXcgWW9yayI9PiJOWSIsIAogICAgICAgICJOb3J0aCBDYXJvbGluYSI9PiJOQyIsICJOb3J0aCBEYWtvdGEiPT4iTkQiLCAiT2hpbyI9PiJPSCIsCiAgICAgICAgIk9rbGFob21hIj0+Ik9LIiwgIk9yZWdvbiI9PiJPUiIsIAogICAgICAgICJQZW5uc3lsdmFuaWEiPT4iUEEiLCAiUmhvZGUgSXNsYW5kIj0+IlJJIiwgIlNvdXRoIENhcm9saW5hIj0+IlNDIiwKICAgICAgICAiU291dGggRGFrb3RhIj0+IlNEIiwgIlRlbm5lc3NlZSI9PiJUTiIsICJUZXhhcyI9PiJUWCIsICJVdGFoIj0+IlVUIiwKICAgICAgICAiVmVybW9udCI9PiJWVCIsICJWaXJnaW5pYSI9PiJWQSIsICJXYXNoaW5ndG9uIj0+IldBIiwKICAgICAgICAiRGlzdHJpY3Qgb2YgQ29sdW1iaWEiPT4iREMiLCAiV2VzdCBWaXJnaW5pYSI9PiJXViIsICJXaXNjb25zaW4iPT4iV0kiLAogICAgICAgICJXeW9taW5nIj0+IldZIik7CgoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkKCXsKCQlyZXR1cm4gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+U3RhdGVzKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCXVuc2V0KCR0aGlzLT5TdGF0ZXNbJG1vZC0+TGFuZygnbm9fZGVmYXVsdCcpXSk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkdGhpcy0+U3RhdGVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHRoaXMtPlN0YXRlcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHRoaXMtPlN0YXRlcyA9IGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCR0aGlzLT5TdGF0ZXMpOwoJCQl9CgoKCQlpZiAoISAkdGhpcy0+SGFzVmFsdWUoKSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JywnJykgIT0gJycpCgkJICB7CgkJICAkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKTsKCQkgIH0KCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnXycuJHRoaXMtPklkLCAkdGhpcy0+U3RhdGVzLCAtMSwgJHRoaXMtPlZhbHVlKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJa3NvcnQoJHRoaXMtPlN0YXRlcyk7CgoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdvcHRfZGVmYXVsdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X3NlbGVjdF9vbmUnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/StaticTextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN0YXRpY1RleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN0YXRpY1RleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdTdGF0aWNUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ3RleHQnLCcnKTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkgcmV0dXJuICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+TGFuZygndGV4dF9sZW5ndGgnLHN0cmxlbigkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJykpKTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoKQoJewoJCXJldHVybiAnW3N0YXRpYyB0ZXh0IGZpZWxkXSc7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0JyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpLCBFTlRfUVVPVEVTKSwgJ29wdF90ZXh0JywncGFnZWhlYWR0YWdzJykpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextAreaField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlndGggKGMpMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiVGV4dEFyZWFGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRBcmVhRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwoJCSRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRBcmVhRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICk7CgoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJeyAgICAgICAgICAgIAoJICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlVGV4dEFyZWEoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMSc/dHJ1ZTpmYWxzZSwKICAgICAgIAkJJGlkLCBodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksCiAgICAgICAJCSdfJy4kdGhpcy0+SWQpOyAgICAgICAgICAgIAoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkcmV0ID0gJyc7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCA9IGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJIGlmICgkdGhpcy0+R2V0T3B0aW9uKCd3eXNpd3lnJywnMCcpID09ICcxJykKCQkgCXsKCQkgCSRyZXQgLj0gJyB3eXNpd3lnJzsKCQkgCX0KCQkgZWxzZQoJCSAJewoJCSAJJHJldCAuPSAnIG5vbi13eXNpd3lnJzsKCQkgCX0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiBhcnJheSgKCQkJJ21haW4nPT4KCQkJCWFycmF5KGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VzZV93eXNpd3lnJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdvcHRfd3lzaXd5ZycsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3d5c2l3eWcnLCcwJykpKSkKICAgICAgICAgCSk7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkcmVzdWx0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksCiAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpPDI1PyR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpOjI1LAogICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSk7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJHJldCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+TGFuZygnYWJicmV2aWF0aW9uX2xlbmd0aCcsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSk7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJIHJldHVybiAkcmV0OwoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9sZW5ndGgnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnb3B0X2xlbmd0aCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSwyNSwyNSkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksCiAgICAgICAgICAgICAgIGFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdvcHRfcmVnZXgnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JyksMjUsMjU1KSwkbW9kLT5MYW5nKCd0aXRsZV9yZWdleF9oZWxwJykpKQkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ251bWVyaWMnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FfbnVtYmVyJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2ludGVnZXInOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAJISBwcmVnX21hdGNoKCIvXihbXGRdKSskL2kiLCAkdGhpcy0+VmFsdWUpIHx8CiAgICAgICAgICAgICAgICAgICAgICBpbnR2YWwoJHRoaXMtPlZhbHVlKSAhPSAkdGhpcy0+VmFsdWUpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdlbWFpbCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goJHRoaXMtPkdldE9wdGlvbigncmVnZXgnLCcvLiovJyksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICB9CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkgPiAwICYmIHN0cmxlbigkdGhpcy0+VmFsdWUpID4gJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSkKCQkJewoJCQkkcmVzdWx0ID0gZmFsc2U7CgkJCSRtZXNzYWdlID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX25vX2xvbmdlcicsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSk7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlc3VsdCwgJG1lc3NhZ2UpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/FormBuilder.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgVmVyc2lvbjogMC4yLCByZWxlYXNlZCAxNCBOb3YgMjAwNgojCiMgQ29weXJpZ2h0IChjKSAyMDA2LCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiMgRm9yIEluZm9ybWF0aW9uLCBTdXBwb3J0LCBCdWcgUmVwb3J0cywgZXRjLCBwbGVhc2UgdmlzaXQgdGhlCiMgQ01TIE1hZGUgU2ltcGxlIEZvcmdlOgojIGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIvCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KY2xhc3MgRm9ybUJ1aWxkZXIgZXh0ZW5kcyBDTVNNb2R1bGUKewoKCXZhciAkZmllbGRfdHlwZXM7Cgl2YXIgJGRpc3BfZmllbGRfdHlwZXM7Cgl2YXIgJGFsbF92YWxpZGF0aW9uX3R5cGVzOwoJdmFyICRtb2R1bGVfcHRyOwoJdmFyICRlbWFpbF9yZWdleDsKCXZhciAkZW1haWxfcmVnZXhfcmVsYXhlZDsKCXZhciAkZGJIYW5kbGU7CgkKCWZ1bmN0aW9uIEZvcm1CdWlsZGVyKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJHRoaXMtPkNNU01vZHVsZSgpOwoJCSR0aGlzLT5tb2R1bGVfcHRyID0gJiR0aGlzOwoJCSR0aGlzLT5kYkhhbmRsZSA9ICYkZ0Ntcy0+R2V0RGIoKTsKCQkkdGhpcy0+ZW1haWxfcmVnZXggPSAiL14oW1x3XGRcLlwtXF9dKStcQChbXHdcZFwuXC1cX10rKVwuKFx3KykkL2kiOwoJCSR0aGlzLT5lbWFpbF9yZWdleF9yZWxheGVkPSIvXihbXHdcZFwuXC1cX10pK1xAKFtcd1xkXC5cLVxfXSkrJC9pIjsKCQlyZXF1aXJlX29uY2UgJ2NsYXNzZXMvRm9ybS5jbGFzcy5waHAnOwoJCXJlcXVpcmVfb25jZSAnY2xhc3Nlcy9GaWVsZEJhc2UuY2xhc3MucGhwJzsKCX0KCgoJZnVuY3Rpb24gaW5pdGlhbGl6ZSgpCgl7CgkJJGRpcj1vcGVuZGlyKGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3NlcycpOwogICAJCSR0aGlzLT5maWVsZF90eXBlcyA9IGFycmF5KCk7CiAgIAkJd2hpbGUoJGZpbGVzcGVjPXJlYWRkaXIoJGRpcikpCiAgIAkJCXsKICAgICAgIAkJaWYoc3RycG9zKCRmaWxlc3BlYywnRmllbGQnKSA9PT0gZmFsc2UgJiYgc3RycG9zKCRmaWxlc3BlYywnRGlzcG9zaXRpb24nKSA9PT0gZmFsc2UpCiAgICAgICAJCQl7CiAgICAgICAJCQljb250aW51ZTsKICAgICAgIAkJCX0KICAgICAgIAkJJHNob3J0bmFtZSA9IHN1YnN0cigkZmlsZXNwZWMsMCxzdHJwb3MoJGZpbGVzcGVjLCcuJykpOwogICAgICAgCQlpZiAoc3Vic3RyKCRzaG9ydG5hbWUsLTQpID09ICdCYXNlJykKICAgICAgIAkJCXsKICAgICAgIAkJCWNvbnRpbnVlOwogICAgICAgCQkJfQogICAgICAgCQkkdGhpcy0+ZmllbGRfdHlwZXNbJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfJy4kc2hvcnRuYW1lKV0gPSAkc2hvcnRuYW1lOwoJCQl9ICAgICAgICAKCQkKICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZmllbGRfdHlwZXMgYXMgJHROYW1lPT4kdFR5cGUpCiAgICAgICAgCXsKICAgICAgICAJaWYgKHN1YnN0cigkdFR5cGUsMCwxMSkgPT0gJ0Rpc3Bvc2l0aW9uJykKICAgICAgICAJCXsKICAgICAgICAJCSR0aGlzLT5kaXNwX2ZpZWxkX3R5cGVzWyR0TmFtZV09JHRUeXBlOwogICAgICAgIAkJfQogICAgICAgIAl9CgkJJHRoaXMtPmFsbF92YWxpZGF0aW9uX3R5cGVzID0gYXJyYXkoKTsKCQlrc29ydCgkdGhpcy0+ZmllbGRfdHlwZXMpOwoJfQoKCWZ1bmN0aW9uIEdldE5hbWUoKQoJewoJCXJldHVybiAnRm9ybUJ1aWxkZXInOwoJfQoJCglmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgoJZnVuY3Rpb24gR2V0VmVyc2lvbigpCgl7CgkJcmV0dXJuICcwLjInOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdTakcnOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ3NqZ0BjbXNtb2R1bGVzLmNvbSc7Cgl9CgogICAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgICB7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2MnKTsKICAgIH0KCglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7Cgl9CgoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIEhhc0FkbWluKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCiAgICBmdW5jdGlvbiBBZG1pblN0eWxlKCkKICAgIHsKICAgICAgcmV0dXJuICJcbi5tb2R1bGVfZmJfdGFibGUge2ZvbnQtc2l6ZTogMTBweDt9XG4ubW9kdWxlX2ZiX2FyZWFfd2lkZSB7d2lkdGg6IDUwMHB4O31cbi5tb2R1bGVfZmJfbGVnZW5ke2ZvbnQtc2l6ZTogOXB4OyBtYXJnaW46IDZweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7fS5tb2R1bGVfZmJfYXJlYV9zaG9ydCB7d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4O31cbi5tb2R1bGVfZmJfbGluayB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuIjsKICAgIH0KCgoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoJ0NNU01haWxlcic9PicxLjczJyk7Cgl9CgoJLy8gbWF5IGJlIHRvbyBzdHJpbmdlbnQsIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LgoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAnMS4wLXN2bic7Cgl9CgoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RfaW5zdGFsbCcpOwoJfQoKCglmdW5jdGlvbiBDaGVja0FjY2VzcygkcGVybWlzc2lvbj0nTW9kaWZ5IEZvcm1zJykKCXsKCgkJJGFjY2VzcyA9ICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJHBlcm1pc3Npb24pOwoJCWlmICghJGFjY2VzcykgIHsKCQkJZWNobyAiPHAgY2xhc3M9XCJlcnJvclwiPiIuJHRoaXMtPkxhbmcoJ3lvdV9uZWVkX3Blcm1pc3Npb24nLCRwZXJtaXNzaW9uKS4iPC9wPiI7CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZWxzZSByZXR1cm4gdHJ1ZTsKCX0KCgkvKgoJRE8gTk9UIGFsbG93IHBhcmFtZXRlcnMgdG8gYmUgdXNlZCBmb3IgcGFzc2luZyB0aGUgb3JkZXJfYnkhIEl0IGlzIG5vdCBlc2NhcGVkIGJlZm9yZQoJZGF0YWJhc2UgYWNjZXNzLiBJZiB3ZSBsZXQgQURPREIgcXVvdGUgaXQsIHRoZSBTUUwgaXMgbm90IHZhbGlkIChub3QgdGhhdCBNeVNRTCBjYXJlcywKCWJ1dCBQb3N0Z3JlcyBkb2VzKS4KCSovCglmdW5jdGlvbiBHZXRGb3Jtcygkb3JkZXJfYnk9J25hbWUnKQoJewogICAgICAgIGdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICJTRUxFQ1QgKiBGUk9NICIuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBPUkRFUiBCWSAnLiRvcmRlcl9ieTsKCSAgICAkcmVzdWx0ID0gYXJyYXkoKTsKCSAgICAkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CgkgICAgaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkgICAgCXsKCSAgICAgICAgJHJlc3VsdCA9ICRycy0+R2V0QXJyYXkoKTsKCSAgICAJfQoJICAgIHJldHVybiAkcmVzdWx0OwoJfQkKCiAgICBmdW5jdGlvbiBHZXRGb3JtSURGcm9tQWxpYXMoJGZvcm1fYWxpYXMpCgl7CiAgICAgICAgZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkc3FsID0gJ1NFTEVDVCBmb3JtX2lkIGZyb20gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGFsaWFzID0gPyc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtX2FsaWFzKSk7CgkJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJCX0KCQlyZXR1cm4gJHJlc3VsdFsnZm9ybV9pZCddOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1OYW1lRnJvbUlEKCRmb3JtX2lkKQoJewogICAgICAgIGdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICdTRUxFQ1QgbmFtZSBmcm9tICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBmb3JtX2lkID0gPyc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtX2lkKSk7CgkJaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkJewoJCQkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJCX0KCQlyZXR1cm4gJHJlc3VsdFsnbmFtZSddOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1CeUlEKCRmb3JtX2lkLCAkbG9hZERlZXA9ZmFsc2UpCgl7CgkJCSRwYXJhbXMgPSBhcnJheSgnZm9ybV9pZCc9PiRmb3JtX2lkKTsKCQkgICAgJGZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCAkbG9hZERlZXApOwoJCSAgICByZXR1cm4gJGZvcm07Cgl9CgoJZnVuY3Rpb24gR2V0Rm9ybUJ5UGFyYW1zKCYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCgl7CgkJICAgICRmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgJGxvYWREZWVwKTsKCQkgICAgcmV0dXJuICRmb3JtOwoJfQoKCQoJZnVuY3Rpb24gR2V0SGVscCgkbGFuZyA9ICdlbl9VUycpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7Cgl9CgoKCWZ1bmN0aW9uIEdldFJlc3BvbnNlKCRmb3JtX2lkLCRyZXNwb25zZV9pZCwkZmllbGRfbGlzdD1hcnJheSgpLCAkZGF0ZUZtdD0nZCBGIHknKQoJewoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJHZhbHVlcyA9IGFycmF5KCk7CgkJZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSByZXNwX2lkPT8nLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCgkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCWlmICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQkJewkJCQoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCiAJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZCA9IChlbXB0eSgkcm93WydhZG1pbl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhZG1pbl9hcHByb3ZlZCddKSkpOyAKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snc3VibWl0dGVkJ10pKTsKCQkJJG9uZXNldC0+ZmllbGRzID0gYXJyYXkoKTsKCQkJJG9uZXNldC0+bmFtZXMgPSBhcnJheSgpOwoJCSAgICB9CgoJCSRwYXJhbVNldCA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQsICdyZXNwb25zZV9pZCc9PiRyZXNwb25zZV9pZCk7CgkJJGZtID0gJHRoaXMtPkdldEZvcm1CeVBhcmFtcygkcGFyYW1TZXQsIHRydWUpOwoJCSRmaWVsZHMgPSAmJGZtLT5HZXRGaWVsZHMoKTsKCQlmb3IoJGo9MDskajxjb3VudCgkZmllbGRzKTskaisrKQoJCQl7CgkJCWlmICgkZmllbGRzWyRqXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJaWYgKGlzc2V0KCRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSkKCQkJCQkmJiAkZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV0gPiAtMSkKCQkJCQl7CgkJCQkJCSRvbmVzZXQtPm5hbWVzWyRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXV0gPSAkZmllbGRzWyRqXS0+R2V0TmFtZSgpOwogICAgICAgICAgICAgICAgCSRvbmVzZXQtPnZhbHVlc1skZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV1dID0gJGZpZWxkc1skal0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAJfQoJCXJldHVybiAkb25lc2V0OwoJfQoKCWZ1bmN0aW9uIEdldFJlc3BvbnNlcygkZm9ybV9pZCwgJHN0YXJ0X3BvaW50LCAkbnVtYmVyLCAkYWRtaW5fYXBwcm92ZWQ9ZmFsc2UsICR1c2VyX2FwcHJvdmVkPWZhbHNlLCAkZmllbGRfbGlzdD1hcnJheSgpLCAkZGF0ZUZtdD0nZCBGIHknKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJG5hbWVzID0gYXJyYXkoKTsKCQkkdmFsdWVzID0gYXJyYXkoKTsKCQkkc3FsID0gJ0ZST00gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICAgCQkJJ21vZHVsZV9mYl9yZXNwIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAgICAgaWYgKCR1c2VyX2FwcHJvdmVkKQogICAgICAgIAl7CiAgICAgICAgCSAkc3FsIC49ICdhbmQgdXNlcl9hcHByb3ZlZCBpcyBub3QgbnVsbCc7CiAgICAgICAgCSB9CiAgICAgICAgaWYgKCRhZG1pbl9hcHByb3ZlZCkKICAgICAgICAJewogICAgICAgIAkkc3FsIC49ICcgYW5kIGFkbWluX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKICAgICAgICAJfQogICAgICAgIAogICAgICAgICRkYmNvdW50ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgQ09VTlQoKikgYXMgbnVtICcuJHNxbCxhcnJheSgkZm9ybV9pZCkpOwogICAKICAgICAgICAkcmVjb3JkcyA9IDA7CiAgICAgICAgaWYgKCRkYmNvdW50ICYmICRyb3cgPSAkZGJjb3VudC0+RmV0Y2hSb3coKSkKICAgICAgICAJeyAgIAogICAgICAgIAkkcmVjb3JkcyA9ICRyb3dbJ251bSddOwogICAgICAgIAl9CiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgnU0VMRUNUICogJy4kc3FsLCAkbnVtYmVyLCAkc3RhcnRfcG9pbnQsIGFycmF5KCRmb3JtX2lkKSk7CgoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQkJewoJCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRvbmVzZXQtPmlkID0gJHJvd1sncmVzcF9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKIAkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT5maWVsZHMgPSBhcnJheSgpOwoJCSAgICBhcnJheV9wdXNoKCR2YWx1ZXMsJG9uZXNldCk7CgkJICAgIH0KCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCSRmbSA9IC0xOwoJCWZvcigkaT0wOyRpPGNvdW50KCR2YWx1ZXMpOyRpKyspCgkJCXsKCQkJJHBhcmFtU2V0ID0gYXJyYXkoJ2Zvcm1faWQnPT4kZm9ybV9pZCwgJ3Jlc3BvbnNlX2lkJz0+JHZhbHVlc1skaV0tPmlkKTsKCQkJaWYgKCRmbSA9PSAtMSkgLy8gZml4IHRoaXMsIGZvciBiZXR0ZXIgZWZmaWNpZW5jeSEKCQkJCXsKCQkJCSRmbSA9ICR0aGlzLT5HZXRGb3JtQnlQYXJhbXMoJHBhcmFtU2V0LCB0cnVlKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJGZtLT5Mb2FkUmVzcG9uc2UoJHZhbHVlc1skaV0tPmlkKTsKCQkJCX0KCQkJJGZpZWxkcyA9ICYkZm0tPkdldEZpZWxkcygpOwoJCQlmb3IoJGo9MDskajxjb3VudCgkZmllbGRzKTskaisrKQoJCQkJewoJCQkJaWYgKCRmaWVsZHNbJGpdLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJCQkJewoJCQkJCWlmIChpc3NldCgkZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV0pCgkJCQkJCSYmICRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSA+IC0xKQoJCQkJCQl7CgkJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCQl7CgkJCQkJCQkkbmFtZXNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXROYW1lKCk7CgkJCQkJCQl9CiAgICAgICAgICAgICAgICAJCSR2YWx1ZXNbJGldLT5maWVsZHNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKICAgICAgICAgICAgICAgIAkJfQogICAgICAgICAgICAgICAgCX0KICAgICAgICAJCX0KICAgICAgICAJJHBvcHVsYXRlX25hbWVzID0gZmFsc2U7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlY29yZHMsICRuYW1lcywgJHZhbHVlcyk7Cgl9CgkKLyoJCglmdW5jdGlvbiBIYW5kbGVTdWJtaXNzaW9uKCYkcGFyYW1zLCAkdGFyZ2V0cGFnZSwgJHNpZGU9J3VzZXInLCAkaGlkZUVycm9yPXRydWUpCgl7CiAgICAgICAgaWYgKCEgaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSAmJiBpc3NldCgkcGFyYW1zWydmb3JtJ10pKQogICAgICAgICAgICB7CiAgICAgICAgICAgIC8vIGdldCB0aGUgZm9ybSBieSBuYW1lLCBub3QgSUQKICAgICAgICAgICAgJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldEZvcm1JREZyb21BbGlhcygkcGFyYW1zWydmb3JtJ10pOwogICAgICAgICAgICB9CiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsJHBhcmFtcyx0cnVlKTsKCiAgICAgICAgZWNobyAkYWVmb3JtLT5SZW5kZXJGb3JtSGVhZGVyKCk7CiAgICAgICAgJGZpbmlzaGVkID0gZmFsc2U7CiAgICAgICAgaWYgKCgkYWVmb3JtLT5HZXRQYWdlQ291bnQoKSA+IDEgJiYgJGFlZm9ybS0+R2V0UGFnZU51bWJlcigpID4gMCkgfHwKICAgICAgICAJKGlzc2V0KCRwYXJhbXNbJ2RvbmUnXSkmJiAkcGFyYW1zWydkb25lJ109PTEpKQogICAgICAgICAgICB7CiAgICAgICAgCSRyZXMgPSAkYWVmb3JtLT5WYWxpZGF0ZSgpOwoKICAgICAgICAgICAgaWYgKCRyZXNbMF0gPT09IGZhbHNlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZWNobyAkcmVzWzFdLiJcbiI7CiAgICAgICAgICAgICAgICAkYWVmb3JtLT5QYWdlQmFjaygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydkb25lJ10pICYmICRwYXJhbXNbJ2RvbmUnXT09MSkKICAgICAgICAgICAgCXsKICAgICAgICAgICAgCSRmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgIAkkcmVzdWx0cyA9ICRhZWZvcm0tPkRpc3Bvc2UoJHJldHVybmlkKTsKICAgICAgICAgICAgCX0KICAgICAgICAgICAgfQoKCQlpZiAoISAkZmluaXNoZWQpCgkJCXsKCQkJJHBhcm1zID0gYXJyYXkoKTsKICAgIAkJJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgIAkJJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgCQkkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknLCRwYXJtcyk7CgogICAgICAgIAllY2hvICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpOwogICAgICAgIAllY2hvICRhZWZvcm0tPlJlbmRlckZvcm0oJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwogICAgICAgIAllY2hvICR0aGlzLT5DcmVhdGVGb3JtRW5kKCk7CiAgICAgICAgCX0KICAgICAgICBlbHNlCiAgICAgICAgCXsKICAgICAgICAJaWYgKCRyZXN1bHRzWzBdID09IHRydWUpCiAgICAgICAgCQl7CgkJCQkkcGFybXMgPSBhcnJheSgpOwogICAgCQkJJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgIAkJCSRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgIAkJCSR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0JywkcGFybXMpOwoKICAgICAgICAJCSRyZXQgPSAkYWVmb3JtLT5HZXRBdHRyKCdyZWRpcmVjdF9wYWdlJywnLTEnKTsKICAgICAgICAJCWlmICgkcmV0ICE9IC0xKQogICAgICAgIAkJCXsKICAgICAgICAJCQkkdGhpcy0+UmVkaXJlY3RDb250ZW50KCRyZXQpOwogICAgICAgIAkJCX0KICAgICAgICAJCX0KICAgICAgICAJZWxzZQogICAgICAgIAkJewoJCQkJJHBhcm1zID0gYXJyYXkoKTsKCQkJCSRwYXJhbXNbJ2Vycm9yJ109Jyc7CiAgICAgICAgCQllY2hvICR0aGlzLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yJyk7CiAgICAgICAgCQkkc2hvdyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsMCk7CiAgICAgICAgCQlmb3JlYWNoICgkcmVzdWx0c1sxXSBhcyAkdGhpc1JlcykKICAgICAgICAJCQl7CgkJCQkJaWYgKCRzaG93KQoJCQkJCQl7CiAgICAgICAgCQkJCWVjaG8gJHRoaXNSZXMgLiAnPGJyIC8+JzsKICAgICAgCQkJCX0KICAgICAgICAJCQkkcGFyYW1zWydlcnJvciddIC49ICR0aGlzUmVzLiJcbiI7CiAgICAgICAgCQkJfQogICAgCQkJJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgIAkJCSRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgIAkJCSR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InLCRwYXJtcyk7CiAgICAgICAgCQl9CiAgICAgICAgCX0KICAgICAgICBlY2hvICRhZWZvcm0tPlJlbmRlckZvcm1Gb290ZXIoKTsKCgoKCX0KKi8KCgoJLy8gRm9yIGEgZ2l2ZW4gZm9ybSwgcmV0dXJucyBhbiBhcnJheSBvZiByZXNwb25zZSBvYmplY3RzCglmdW5jdGlvbiBMaXN0UmVzcG9uc2VzKCRmb3JtX2lkLCAkc29ydF9vcmRlcj0nc3VibWl0dGVkJykKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRyZXQgPSBhcnJheSgpOwoJCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJCQknbW9kdWxlX2ZiX3Jlc3AgV0hFUkUgZm9ybV9pZD0/IE9SREVSIEJZID8nOwogICAgICAgCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRmb3JtX2lkLCRzb3J0X29yZGVyKSk7CgkJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+aWQgPSAkcmVzdWx0WydyZXNwX2lkJ107CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWQgPSAkZGItPlVuaXhUaW1lU3RhbXAoJHJlc3VsdFsndXNlcl9hcHByb3ZlZCddKTsgCiAJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0WydhZG1pbl9hcHByb3ZlZCddKTsgCgkJCSRvbmVzZXQtPnN1Ym1pdHRlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0WydzdWJtaXR0ZWQnXSk7IAoJCSAgICBhcnJheV9wdXNoKCRyZXQsJG9uZXNldCk7CgkJICAgIH0KCQlyZXR1cm4gJHJldDsKCX0KCiAgICBmdW5jdGlvbiBkZWYoJiR2YXIpCiAgICB7CiAgICAJaWYgKCFpc3NldCgkdmFyKSkKICAgIAkgICB7CiAgICAJICAgCXJldHVybiBmYWxzZTsKICAgIAkgICB9CiAgICAJZWxzZSBpZiAoaXNfbnVsbCgkdmFyKSkKICAgIAkgICB7CiAgICAJICAgCXJldHVybiBmYWxzZTsKICAgIAkgICB9CiAgICAJZWxzZSBpZiAoIWlzX2FycmF5KCR2YXIpICYmIGVtcHR5KCR2YXIpKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAllbHNlIGlmIChpc19hcnJheSgkdmFyKSAmJiBjb3VudCgkdmFyKSA9PSAwKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAlyZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICBmdW5jdGlvbiBDbGVhckZpbGVMb2NrKCkKICAgIHsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRzcWwgPSAiREVMRVRFIGZyb20gIi5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mbG9jayc7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgfQoKCiAgICBmdW5jdGlvbiBHZXRGaWxlTG9jaygpCiAgICB7CgkJZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkc3FsID0gImluc2VydCBpbnRvICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZmxvY2sgKGZsb2NrX2lkLCBmbG9jaykgdmFsdWVzICgxLCIuJGRiLT5zeXNUaW1lU3RhbXAuIikiOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKICAgICAgICBpZiAoJHJzKQogICAgICAgIAl7CiAgICAgICAgCXJldHVybiB0cnVlOwogICAgICAgIAl9CiAgICAgICAgJHNxbCA9ICJzZWxlY3QgZmxvY2tfaWQgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJIm1vZHVsZV9mYl9mbG9jayB3aGVyZSBmbG9jayArIGludGVydmFsIDE1IHNlY29uZCA8ICIuJGRiLT5zeXNUaW1lU3RhbXA7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgIGlmICgkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKICAgICAgICAJewogICAgICAgIAkkdGhpcy0+Q2xlYXJGaWxlTG9jaygpOwogICAgICAgIAlyZXR1cm4gZmFsc2U7CiAgICAgICAgCX0gICAgICAgIAkgCgkJcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIGZ1bmN0aW9uIFJldHVybkZpbGVMb2NrKCkKICAgIHsKCQkkdGhpcy0+Q2xlYXJGaWxlTG9jaygpOwogICAgfQoKICBmdW5jdGlvbiBHZXRFdmVudERlc2NyaXB0aW9uICggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9pbmZvXycuJGV2ZW50bmFtZSApOwogIH0KCiAgZnVuY3Rpb24gR2V0RXZlbnRIZWxwICggJGV2ZW50bmFtZSApCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdldmVudF9oZWxwXycuJGV2ZW50bmFtZSApOwogIH0KCgoKCn0KCiMgdmltOnRzPTQgc3c9NCBub2V0Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAPflAP///4+IiP7+/vv7+/z8/P39/cjHx/X19fT09PLy8vr6+vn5+efm5uTj4+jn55CJidHQ0O3s7NnZ2ZWPj+Xl5d3d3dvb2/j4+NPS0vDw8PHx8e7u7vf39+vq6tra2uLi4uzs7NHR0dHOzszLy+Hf39bW1uLh4fX09M/Pz8vKyr25ucfExObl5djX18rJyfn4+Nzb2+/u7u/v7/b29sXExMC8vNLPz7y4uElJScC/v+fn5+no6NnY2NDPz2dnZ93c3JeQkOzr68vLy+Pi4pSOjvPz876+vvz7+5+ZmfDv73Z2dr29vevr6+Hh4bu6usTExH19fdfV1Z2Xl9LS0qqkpJeRkaulpeDe3o2Njbu3t46OjsPDw9TU1N7d3dXU1K6pqXV1dbeyss7Ly1tbW7q5ufHw8PPy8ri4uJWVlaKcnPj39/Lx8cLBwX9/f8HAwLq2ttPR0ff29tXT0/v6+iUlJerq6rm1tZycnKmpqdPQ0JiRkcfDw8TAwKScnD09PaehodfU1Le3t+3t7aCamtDQ0Ly8vKGcnLWxscnJyVpaWrOyst/f36OdnbKysp2dnW5uboqKip6YmCkpKcrHx9fX14GBgbOurmJiYlZWVt3b2+rp6Z+amtzc3CAgINjW1t7c3JqUlJaPj/b19cXFxd7f387OztHPz5GRkXl5eaijo769vZSNjaioqOrr67q1tb66utrZ2ebm5pmSkpmZmczMzKqqqpGKiubk5NTT09TR0baxsejo6Ojp6crKylBQUOTk5JaQkNfW1pWOjt/e3qWfn5+fn7m0tJiSks7MzG5lZZOMjOPj47+/vzY2NoODg+Hg4KKiov79/cbFxcTCwr28vLu5ud7e3sLCwunp6bW1tevs7MfGxtDNzZ6enmBgYOLj4+Dg4NjY2K2oqNXS0rezs////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAOUALAAAAAAgACAAAAj/AMsJHEiwoMGDBAEoVDiQIcKHCRdKnEgRQMKDFTNqpChwo0eNHT8qHJDBAQsGdZKcWDBDw4YNAkiIMTMxQ4VFIC4o4LCwFTUnKQyM2vKEDBk2IQwg0EUkU7mFBEqg8aGE1RJo3ipR0BYCAQATLCxI6METgBtN5AJEeaqQwIdAUJr5mYWlE44pCUagIOWhixBVigyUALeEhYoAntgCELCgCLYKFRAIuhaCg1tkhCjBIPGNQYNhP5os2BMAkOKFAjYKKHCkwEIFCRx0GBdAxOmNBTZYsFABFq4RNHLkkLbtSYMAK26PTHAgg5BeFwrw2MLpl4MNBwaMZOIkRgA7pwl4/+gGBkshR74uIQLww8sJMx2GWPACoQcELi1mBKByusAUZzhAgQckqNzhAQAN0OCCKRgEA4MJDICQhAYDLAAEEiEppIEEtCwjgw4yZAfAHDEEkcAC0Sw2wAEfWrOGIXpkqJBrGRGQAAMwYDCCAS5A0MUzKThghTAybnRACtW4EA4FGiiw2AUUcMGEJUQUudgBTRjRSDFgnJFBCzsckQAFPJRigAEotMDLCa5MICMIp/igxRh0YPLIGMzMgIEBGEAAhwQNFEGAGhEAcEENwMj4QSKSaNGGErWgUAICBMQigQkRILAAARGE0QcoAyiwQhUyImBENrskoB1u0ySzSRYKrZsQSpEKOCkSAAgIIMoQufARySpW3qrQC3lQEcCxxzYkbAExyBEGMVUc+8AxVrwxibIfDRCEGF9MgGwAE2TRgEEelWHDFw8gawsSxkSxQxwIUSTAAbfYoMIfQKQbgDJp1HDFCxDdVgY34uh7rBQ3XCFAwBFFoAIj3gbwgCyp3CACAxwszLCyn3wrxSskaLwxQg4McogIHQA8skEBAQA7]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/FormBuilderSampleData.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiRmb3JtX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX3NlcScpOwoKJHRlbXBsYXRlSW5zZXJ0ID0gJ3tsaXRlcmFsfQoKPCEtLSBiZWxvdywgeW91XCdsbCBmaW5kIHRoZSAic3RhbmRhcmQgQ1NTIHRlbXBsYXRlIiBmb3IgZGlzcGxheWluZyBGb3JtQnVpbGRlciBGb3JtcwogICBZb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3VcJ2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskaGlkZGVufSBhbmQgeyRzdWJtaXR9CiAgIHRhZ3MuCgogICBZb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSwgYXMgZGVtb25zdHJhdGVkIGJlbG93LAogICBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApCgoKICAgRWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgogICAgICAgZmllbGQtPmRpc3BsYXkgICAgICAgICA9IDEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlCiAgICAgICBmaWVsZC0+cmVxdWlyZWQgICAgICAgID0gMSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlCiAgICAgICBmaWVsZC0+cmVxdWlyZWRfc3ltYm9sID0gdGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzCiAgICAgICBmaWVsZC0+Y3NzX2NsYXNzICAgICAgID0gdGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQKICAgICAgIGZpZWxkLT52YWxpZCAgICAgICAgICAgPSAxIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZQogICAgICAgZmllbGQtPmhpZGVfbmFtZSAgICAgICA9IDEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2UKICAgICAgIGZpZWxkLT5uYW1lICAgICAgICAgICAgPSB0aGUgZmllbGRcJ3MgbmFtZQogICAgICAgZmllbGQtPmlucHV0ICAgICAgICAgICA9IHRoZSBmaWVsZFwncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKQogICAgICAgZmllbGQtPmlucHV0X2lkICAgICAgICA9IHRoZSBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0iIj4pCiAgICAgICBmaWVsZC0+dHlwZSAgICAgICAgICAgID0gdGhlIGZpZWxkXCdzIGRhdGEgdHlwZQogICAgICAgZmllbGQtPm11bHRpcGxlX3BhcnRzICA9IDEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHMKCiAgIEluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzCiAgIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdQogICBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuCiAgICAKCiAgICAgICBBZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOgogICAgICAgeyR0b3RhbF9wYWdlc30gICAgICAgLSBudW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXMKICAgICAgIHskdGhpc19wYWdlfSAgICAgICAgIC0gbnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXMKICAgICAgIHskdGl0bGVfcGFnZV94X29mX3l9IC0gZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtcwogICAgICAgeyRjc3NfY2xhc3N9ICAgICAgICAgLSBDU1MgQ2xhc3MgZm9yIHRoZSBmb3JtCiAgICAgICB7JGZvcm1fbmFtZX0gICAgICAgICAtIEZvcm0gbmFtZQogICAgICAgeyRmb3JtX2lkfSAgICAgICAgICAgLSBGb3JtIERhdGFiYXNlIElECiAgICAgICB7JHByZXZ9ICAgICAgICAgICAgICAtICJCYWNrIiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcwoKICAgICAgIER1bm5vIHdoeSB5b3VcJ2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uCi0tPgoKey9saXRlcmFsfQoKCnskaGlkZGVufXthc3NpZ24gdmFyPSJjb2xzIiB2YWx1ZT0iMyJ9CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSBcJ1wnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9Pgp7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHNwYW4+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3NwYW4+ey9pZn0Ke2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkgIHtpZiAkZW50cnktPmRpc3BsYXkgPT0gMX0KCSAgICAJe3N0cmlwfQoJICAgIAk8ZGl2CgkgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gXCdcJ30gY2xhc3M9IiAKCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkgICAgCQkJcmVxdWlyZWQKCSAgICAJCXsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9IFwnXCd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gXCdcJ30KCSAgICAJCQl7JGVudHJ5LT5jc3NfY2xhc3N9CgkgICAgCQl7L2lmfQoJICAgIAkJIgoJICAgIAl7L2lmfQoJICAgIAk+CgkgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQoJICAgIAkJPGxhYmVsIGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9Ij57JGVudHJ5LT5uYW1lfTwvbGFiZWw+CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gXCdcJ30KCSAgICAJCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CgkgICAgCQl7L2lmfQoJICAgIAl7L2lmfQoJICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQogICAgCQk8dGFibGU+CgkJCQkJPHRyPgoJCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KCSAgICAJCQk8dGQ+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvdGQ+CgkgICAgCQkJICAgICAgIHtpZiBub3QgKCRzbWFydHkuc2VjdGlvbi5udW1sb29wLnJvd251bSBtb2QgJGNvbHMpfQogICAgICAgICAgICAgICAgCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgICAgICAgICAgCQk8L3RyPjx0cj4KICAgICAgICAgICAgICAgIAkJCQl7L2lmfQogICAgICAgIAkJCQkJey9pZn0KICAgICAgIAkJCQl7aWYgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgIAkJe21hdGggZXF1YXRpb24gPSAibiAtIGEgJSBuIiBuPSRjb2xzIGE9JGVudHJ5LT5pbnB1dHxAY291bnQgYXNzaWduPSJjZWxscyJ9CiAgICAgICAgICAgICAgICAJCXtpZiAkY2VsbHMgbmUgJGNvbHN9CiAgICAgICAgICAgICAgICAJCQl7c2VjdGlvbiBuYW1lPXBhZCBsb29wPSRjZWxsc30KICAgICAgICAgICAgICAgICAgICAgICAgCQk8dGQ+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICAgIAkJCXsvc2VjdGlvbn0KICAgICAgICAgICAgICAgCQkgCXsvaWZ9CiAgICAgICAgICAgICAgICAJCTwvdHI+CiAgICAgICAgCQkJey9pZn0KCSAgICAJCXsvc2VjdGlvbn0KCSAgICAJCTwvdGFibGU+CgkgICAgCXtlbHNlfQoJICAgIAkJeyRlbnRyeS0+aW5wdXR9CgkgICAgCXsvaWZ9CgkgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0gey9pZn0KCSAgICAJPC9kaXY+CgkgICAgCXsvc3RyaXB9CgkgIHsvaWZ9CnsvZm9yZWFjaH0KPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+CjwvZGl2Pic7CgokcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV90ZW1wbGF0ZXMgVkFMVUVTICgnRm9ybUJ1aWxkZXInLCA/LD8sPyw/KSI7CgokdHMgPSAkZGItPkRCVGltZVN0YW1wKHRpbWUoKSk7CiR0cyA9IHN1YnN0cigkdHMsMSxzdHJsZW4oJHRzKS0yKTsKCiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJ2ZiXycuJGZvcm1faWQsJHRlbXBsYXRlSW5zZXJ0LCR0cywkdHMpKTsKCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm0gVkFMVUVTICg/LD8sPykiOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRmb3JtX2lkLCdTYW1wbGUgRm9ybScsICdzYW1wbGVfZm9ybScpKTsKCiRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2ZiX2Zvcm1fYXR0ciBWQUxVRVMgKD8sID8sID8sID8pIjsKCgokYXR0cl9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRhdHRyX2lkLCAkZm9ybV9pZCwgJ2Nzc19jbGFzcycsICdmb3JtYnVpbGRlcmZvcm0nKSk7CgokYXR0cl9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRhdHRyX2lkLCAkZm9ybV9pZCwgJ2Zvcm1fZGlzcGxheXR5cGUnLCAndGFiJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdyZWRpcmVjdF9wYWdlJywgJy0xJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdzdWJtaXRfYnV0dG9uX3RleHQnLCAnU2VuZCBGb3JtJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICduZXh0X2J1dHRvbl90ZXh0JywgJ0NvbnRpbnVlLi4uJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdwcmV2X2J1dHRvbl90ZXh0JywgJ0JhY2suLi4nKSk7CgokYXR0cl9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRhdHRyX2lkLCAkZm9ybV9pZCwgJ3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsICcqJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICd1bnNwZWNpZmllZCcsICdbdW5zcGVjaWZpZWRdJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdsaXN0X2RlbGltaXRlcicsICcsJykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICd0aXRsZV9wb3NpdGlvbicsICdsZWZ0JykpOwoKJGF0dHJfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSxhcnJheSgkYXR0cl9pZCwgJGZvcm1faWQsICdmb3JtX3RlbXBsYXRlJywgJHRlbXBsYXRlSW5zZXJ0KSk7CgoKJGZpZWxkUXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9maWVsZCBWQUxVRVMgKD8sID8sID8sID8sID8sID8sID8sID8pIjsKJG9wdFF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfZmJfZmllbGRfb3B0IFZBTFVFUyAoPywgPywgPywgPywgPykiOwoKCiRmaWVsZF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkZmllbGRRdWVyeSxhcnJheSgkZmllbGRfaWQsJGZvcm1faWQsJ1dlbGNvbWUhJywgJ1N0YXRpY1RleHRGaWVsZCcsICcnLCAwLCAwLCAyKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAndGV4dCcsICdUaGFua3MgZm9yIHRyeWluZyBvdXQgRm9ybUJ1aWxkZXIuIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSB0byBwcm92aWRlIG1lIHdpdGggZmVlZGJhY2sgYWJvdXQgaG93IHlvdSB3aWxsIGJlIHVzaW5nIEZvcm0gQnVpbGRlciwgc28gSSBjYW4gYmVzdCBhbGxvY2F0ZSByZXNvdXJjZXMgZm9yIGZ1dHVyZSBkZXZlbG9wbWVudC4gVGhhbmtzLCBfX19TYW11ZWxfX18nKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnY3NzX2NsYXNzJywgJycpKTsKCgokZmllbGRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJGZpZWxkUXVlcnksYXJyYXkoJGZpZWxkX2lkLCRmb3JtX2lkLCdNb2R1bGVzIHlvdVwnbGwgYmUgdXNpbmcgdG9nZXRoZXInLCAnQ2hlY2tib3hHcm91cEZpZWxkJywgJycsIDAsIDAsIDMpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfbmFtZScsICdGb3JtIEJ1aWxkZXInKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X25hbWUnLCAnRm9ybSBCcm93c2VyJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF9uYW1lJywgJ0Zyb250LWVuZCBVc2VycycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfbmFtZScsICdOZXdzbGV0dGVyIE1hZGUgU2ltcGxlIChOTVMpJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF9uYW1lJywgJ1Byb3RlY3RlZCBQYWdlcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfbmFtZScsICdPdGhlcnMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAnZm9ybWJ1aWxkZXInKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAnZm9ybWJyb3dzZXInKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAnZmV1c2VycycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfY2hlY2tlZCcsICdubXMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X2NoZWNrZWQnLCAncHJvdGVjdGVkIHBhZ2VzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF9jaGVja2VkJywgJ290aGVycycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBmb3JtYnVpbGRlcicpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBmb3JtYnJvd3NlcicpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBmZXVzZXJzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2JveF91bmNoZWNrZWQnLCAnbm90IG5tcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsICdib3hfdW5jaGVja2VkJywgJ25vdCBwcm90ZWN0ZWQgcGFnZXMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCAnYm94X3VuY2hlY2tlZCcsICdub3Qgb3RoZXJzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwgJ2Nzc19jbGFzcycsICcnKSk7CgoKCiRmaWVsZF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkZmllbGRRdWVyeSxhcnJheSgkZmllbGRfaWQsJGZvcm1faWQsJ1doZXJlIGFyZSB5b3UgZnJvbT8nLCAnQ291bnRyeVBpY2tlckZpZWxkJywgJycsIDAsIDAsIDUpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2RlZmF1bHQnLCAnJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnc2VsZWN0X29uZScsICdTZWxlY3QgT25lJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnY3NzX2NsYXNzJywgJycpKTsKCgokZmllbGRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJGZpZWxkUXVlcnksYXJyYXkoJGZpZWxkX2lkLCRmb3JtX2lkLCdEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgLyBmZWVkYmFjayBmb3IgdGhlIG1vZHVsZSBhdXRob3I/JywgJ1RleHRBcmVhRmllbGQnLCAnJywgMCwgMCwgNikpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnY3NzX2NsYXNzJywgJycpKTsKCgokZmllbGRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJGZpZWxkUXVlcnksYXJyYXkoJGZpZWxkX2lkLCRmb3JtX2lkLCdXaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT8nLCAnQ2hlY2tib3hHcm91cEZpZWxkJywgJycsIDAsIDAsIDQpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0Rlc2lnbiBIVE1ML0NTUycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ1BvcHVsYXRlL01haW50YWluIENvbnRlbnQnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfbmFtZScsICdHcmFwaGljYWwgRGVzaWduJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X25hbWUnLCAnSW5zdGFsbC9Db25maWd1cmUgbW9kdWxlcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0VkaXQgU21hcnR5IFRlbXBsYXRlcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0NyZWF0ZSBNb2R1bGVzIG9yIENvZGUgVXNlciBUYWdzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X25hbWUnLCAnQ3JlYXRlIEV2ZW50IFdvcmtmbG93cycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9uYW1lJywgJ0hhY2sgdGhlIENvcmUsIEV4dGVuZCBDTVMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfbmFtZScsICdQb3J0IENNUyBNUyB0byBSdWJ5IG9uIFJhaWxzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X2NoZWNrZWQnLCAnaHRtbCcpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9jaGVja2VkJywgJ2NvbnRlbnQnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdncmFwaGljcycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF9jaGVja2VkJywgJ21vZHVsZXMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdzbWFydHknKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdwaHAnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdldmVudHMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdoYWNrIGNvcmUnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfY2hlY2tlZCcsICdyYWlscycpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2JveF91bmNoZWNrZWQnLCAnbm90IGh0bWwnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfdW5jaGVja2VkJywgJ25vdCBjb250ZW50JykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgZ3JhcGhpY3MnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdib3hfdW5jaGVja2VkJywgJ25vdCBtb2R1bGVzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3Qgc21hcnR5JykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgcGhwJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgZXZlbnRzJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgaGFjayBjb3JlJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnYm94X3VuY2hlY2tlZCcsICdub3QgcmFpbHMnKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdjc3NfY2xhc3MnLCAnJykpOwoKJGZpZWxkX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRmaWVsZFF1ZXJ5LGFycmF5KCRmaWVsZF9pZCwkZm9ybV9pZCwnU2VuZCBJdCcsICdEaXNwb3NpdGlvbkVtYWlsJywgJycsIDAsIDAsIDEpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX3N1YmplY3QnLCAnRm9ybUJ1aWxkZXIgU2FtcGxlIEZvcm0gU3VibWlzc2lvbicpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX2Zyb21fbmFtZScsICdGb3JtIEJ1aWxkZXIgSW5zdGFsbGF0aW9uJykpOwokb3B0X2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CiRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkb3B0UXVlcnksYXJyYXkoJG9wdF9pZCwgJGZpZWxkX2lkLCAkZm9ybV9pZCwnZW1haWxfZnJvbV9hZGRyZXNzJywgJ3lvdUB5b3VyaG9zdC5jb20nKSk7CiRvcHRfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdF9zZXEnKTsKJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRvcHRRdWVyeSxhcnJheSgkb3B0X2lkLCAkZmllbGRfaWQsICRmb3JtX2lkLCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJ3NqZ0BjbXNtb2R1bGVzLmNvbScpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX3RlbXBsYXRlJywgJ0hleSEgU29tZW9uZVwncyBmaWxsZWQgb3V0IGEgRm9ybUJ1aWxkZXIgU2FtcGxlIFN1Ym1pc3Npb24hCkZvcm0gTmFtZTogeyRzdWJfZm9ybV9uYW1lfQpEYXRlIG9mIFN1Ym1pc3Npb246IHskc3ViX2RhdGV9ClN1Ym1pc3Npb24gc2VydmVyOiB7JHN1Yl9ob3N0fQpJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtOiB7JHN1Yl9zb3VyY2VfaXB9ClVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTogeyRzdWJfdXJsfQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBbmQgVGhleSBTYWlkOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk1vZHVsZXMgdGhleVwnbGwgYmUgdXNpbmc6IHskbW9kdWxlc195b3VfbGxfYmVfdXNpbmd9CgpUaGVpciBDTVMgTVMgVGFza3M6IHskd2hhdF93aWxsX3lvdX0KCldoZXJlOiB7JHdoZXJlX2FyZV95b3VfZnJvbV99CgpDb21tZW50cyBvciBGZWVkYmFjazoKeyRkb195b3VfaGF2ZV9hbnl9CgooZW5kKScpKTsKJG9wdF9pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwokZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJG9wdFF1ZXJ5LGFycmF5KCRvcHRfaWQsICRmaWVsZF9pZCwgJGZvcm1faWQsJ2VtYWlsX2VuY29kaW5nJywgJ3V0Zi04JykpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRW5nbGlzaF9VUyBMb2NhbGl6YXRpb24gRmlsZQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRm9ybSBCdWlsZGVyJzsKCi8vIGZpZWxkIHR5cGVzCiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXT0nVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXT0nVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddPSdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXT0nQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddPSdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXT0nTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ109J1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ109J0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ109J0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ109J1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXT0nKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ109JypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXT0nKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ109JypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXT0nKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddPSctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddPSdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddPSdFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddPSdFbWFpbCAiRnJvbSBOYW1lIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddPSctU3RhdGljIFRleHQnOwoKCi8vIHZhbGlkYXRpb24gdHlwZXMKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddPSdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddPSdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddPSdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddPSdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddPSdNdXN0IEJlIENoZWNrZWQnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddPSdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ109J0RvZXNuXCd0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CgovLyB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzIGFuZCBvdGhlciBhbGVydHMKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ109J1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddPSdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW50cnkgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXT0nUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ109J1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICIlcyInOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ109JyIlcyIgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddPSdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddPSdZb3UgbmVlZCB0aGUgIiVzIiBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ109J1NvcnJ5ISBZb3UgZG9uXCd0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ109J0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddPSdGb3JtIGRlbGV0ZWQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXT0nRmllbGQgZGVsZXRlZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ109J0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXT0nWW91IG11c3QgY2hlY2sgIiVzIiBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddPSdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ109J0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddPSdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcy4nOwoKLy8gYWJicmV2aWF0aW9ucywgdmVyYnMsIGFuZCBvdGhlciBnZW5lcmFsIHRlcm1zCiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ109J0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXT0nJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddPSclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ109JyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddPSdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddPSdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ109J2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXT0ndXBkYXRlZCc7CiRsYW5nWydzZWxlY3Rfb25lJ109J1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXT0nU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXT0nVG8nOwokbGFuZ1sncmVjaXBpZW50cyddPSdyZWNpcGllbnRzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXT0nU2F2ZSc7CiRsYW5nWydhZGQnXT0nQWRkJzsKJGxhbmdbJ3VwZGF0ZSddPSdVcGRhdGUnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXT0nU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddPSdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXT0nQXV0b21hdGljJzsKJGxhbmdbJ2Zvcm1zJ109J0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXT0nRm9ybSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ109J0NvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGFiX21haW4nXT0nTWFpbic7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddPSdGb3JtIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddPSdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfdGFibGVsYXlvdXQnXT0nVGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddPSdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXT0nRXh0ZW5zaW9ucyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ109J0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddPSdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddPSdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKCiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CgokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQmFjay4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWUuLi4nOwoKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CgokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CgovLyBGaWVsZCBBdHRyaWJ1dGUgVGl0bGVzCiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddPSdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddPSdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ109J1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXT0nVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddPSdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ109JyJTZWxlY3QgT25lIiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J109J1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXT0iT3B0aW9uIE5hbWUiOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ109IlZhbHVlIFN1Ym1pdHRlZCI7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ109J1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddPSdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXT0nRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXT0nIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXT0nVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXT0nVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAieEB5IiBpbnN0ZWFkIG9mIHJlcXVpcmluZyAieEB5LnRsZCIpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddPSciRnJvbSBhZGRyZXNzIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXT0nRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ109J1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXT0nRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXT0nRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddPSdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXT0nRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXT0nUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddPSdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddPSdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ109J1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddPSd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXT0nRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddPSdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddPSdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ109J0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddPSd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ109J0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXT0nU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXT0nVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXT0nQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXT0nRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddPSdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXT0nRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddPSdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXT0nQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ109J1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddPSdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ109J1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ109J0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ109J0hpZGUgdGhpcyBmaWVsZFwncyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddPSdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J109J1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXT0nTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddPSdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXT0nVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgInZhbGlkYXRpb24gdHlwZSIgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgIi9pbWFnZVwuKFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddPSdSZXFcJ2QnOwokbGFuZ1sndGl0bGVfdGl0bGVfcG9zaXRpb24nXT0nRmllbGQgVGl0bGUgUG9zaXRpb24gKG5vbi1DU1MgTGF5b3V0IG9ubHkpJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9sZWZ0J109J1RpdGxlIG9uIExlZnQnOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2Fib3ZlJ109J1RpdGxlIEFib3ZlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ109J0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ109J1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ109J0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddPSdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXT0nUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddPSdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgImpwZyxnaWYsanBlZyIpLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXT0nRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddPSdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddPSdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ109J0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ109J1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddPSdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddPSdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXT0nRmFzdCBmaWVsZCBhZGRlcic7CgokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ109J1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXT0nRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXT0nWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ109J0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ109J1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddPSdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J109J1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ109J1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddPSdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddPScmIzE3MTsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXT0nQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddPSdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXT0nYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ109J1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXT0nVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ109J05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXT0nVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CgokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXT0nRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddPSdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYT8nOwoKJGxhbmdbJ2Rpc3B0eXBlX3RhYmxlJ109J1RhYmxlL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXT0nUHVyZSBDU1MnOwokbGFuZ1snZGlzcHR5cGVfdGVtcGxhdGUnXT0nQ3VzdG9tIFRlbXBsYXRlJzsKCiRsYW5nWydhZG1pbmRlc2MnXT0nQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwoKJGxhbmdbJ2RhdGVfamFudWFyeSddPSdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXT0nRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddPSdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ109J0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J109J01heSc7CiRsYW5nWydkYXRlX2p1bmUnXT0nSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXT0nSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddPSdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXT0nU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddPSdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXT0nTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddPSdEZWNlbWJlcic7CgokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddPSdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwoKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICJGb3JtQnVpbGRlciBTdWJtaXNzaW9uXG4iOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsgICAgICAKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7ICAJCQokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ109J1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKCiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J109J0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ109J0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXT0nRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CgokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddPSc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J109JzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwoKLy8gcG9zdC1pbnN0YWxsIG1lc3NhZ2UKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddPSIKPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgXCJNb2RpZnkgRm9ybXNcIiBwZXJtaXNzaW9ucwpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UnbGwgYmUgZW1haWxpbmcgZm9ybQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUKeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUKY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQKb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4iOwoKJGxhbmdbJ2hlbHAnXSA9ICI8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0J3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPgo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZAppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+Cgo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+CjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50LgpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91J3JlCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4KCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkKQ29uZmlndXJhdGlvbi48L3A+Cgo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPgo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MKc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSdGb3JtQnVpbGRlcicgZm9ybT0nc2FtcGxlX2Zvcm0nfTwvcD4KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcKaW50byBhIHBhZ2UncyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoXCIpIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuCgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+Cjx1bD4KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbid0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPgo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiAmbHQ7ZGl2Jmd0OyB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4KPGxpPkN1c3RvbSBUZW1wbGF0ZS4gQmFzaWNhbGx5LCB5b3UgZ2V0IGEgc21hcnR5IHRlbXBsYXRlLCBhIGJ1bmNoIG9mIHZhcmlhYmxlcywgYW5kIHlvdSdyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPgo8L3VsPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgXCJmYXN0IGZpZWxkIGFkZGVyXCIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPgo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+CjxoND5Gb3JtIFNldHRpbmdzPC9oND4KPHA+Rm9ybSBTZXR0aW5ncyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBhIGxvdCBvZiB0aGUgbWVzc2FnZXMgYW5kIHRleHQgaW4gdGhlIGNvbnRyb2xzIGZvciB5b3VyIGZvcm0uIEl0IGFsc28gYWxsb3dzIHlvdSB0byBwaWNrIGEgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPGg0PlRhYmxlLWJhc2VkIExheW91dCBPcHRpb25zPC9oND4KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UncmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgaWYgeW91ciBmb3JtIHVzZXMgYSBDdXN0b20gVGVtcGxhdGUuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91J3JlIGEgc21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbid0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+CjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCdzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQncyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkIFwiUmVxdWlyZWRcIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gXCJ2aWV3IHNvdXJjZVwiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSBcIkZyb21cIiBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSBcIkZyb21cIiBmaWVsZC48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPC91bD48L2xpPgoKPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpCjx1bD48bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSBcIkRpcmVjdG9yXCIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgXCJhcHByb3ZlZCxcIiBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPgo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkKc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSBcIm91dHB1dFwiIGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuCjwvdWw+PC9saT48L2xpPjwvdWw+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCdzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlIFwiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZVwiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPk5vdGUgdGhhdCBvbmNlIHlvdSd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuIEZvciB0aGlzIHJlYXNvbiwgaXQncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KCjxoMz5Lbm93biBJc3N1ZXM8L2gzPgo8dWw+CjxsaT5Tb21lIGZpZWxkIHR5cGVzIGZyb20gRmVlZGJhY2tGb3JtcyBhcmUgbm90IGltcGxlbWVudGVkIGluIEZvcm1CdWlsZGVyLiBJZiB0aGVyZSBpcyBkZW1hbmQgZm9yIHRoZW0sIHRoZXkgd2lsbCBiZSBhZGRlZC48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+CjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJ3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPgo8L3VsPgoKPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+CjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91J3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZ1wiPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ1wiPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2Ntc1wiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIAo8L3VsPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPVwiaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMXCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4iOwoKJGxhbmdbJ2NoYW5nZWxvZyddID0gCQkiCgkJICAgIDx1bD4KCQkgICAgPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdydzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4KCQkgICAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+CgkJIjsKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQgdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmRlIHZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvIFZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1NrYWwgdiZhZWxpZztyZSB2YWxndCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnU2thbCBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTSZhcmluZzsgaWtrZSBtYXRjaGUgcmVndWwmYWVsaWc7ciB1ZHRyeWsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdBbmdpdiBlbnYmYWVsaWc7cmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdBbmdpdiBldCB0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2l2IGVuIGd5bGRpZyB2JmFlbGlnO3JkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdBbmdpdiBldCBoZWx0YWwgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0FuZ2l2IGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBlciBpa2tlIGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQW5naXYgZW4gdiZhZWxpZztyZGkgZGVyIGlra2UgZXIgbCZhZWxpZztuZ2VyZSBlbmQgJXMgdGVnbic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGaWVsZCBvcmRlciB1cGRhdGVkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtIGRlbGV0ZWQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGaWVsZCBkZWxldGVkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF0aW9uIFVwZGF0ZWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnWW91IG11c3QgY2hlY2sgJnF1b3Q7JXMmcXVvdDsgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcy4nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddID0gJ2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cGRhdGVkJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXSA9ICdUbyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnR2VtJzsKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BkYXQmZWFjdXRlO3InOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdHZW0gb2cgZm9ydHMmYWVsaWc7dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddID0gJ0Zvcm0gU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RhYmxlbGF5b3V0J10gPSAnVGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnRmllbGQgVGl0bGUgUG9zaXRpb24gKG5vbi1DU1MgTGF5b3V0IG9ubHkpJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9sZWZ0J10gPSAnVGl0bGUgb24gTGVmdCc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfYWJvdmUnXSA9ICdUaXRsZSBBYm92ZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ090aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYT8nOwokbGFuZ1snZGlzcHR5cGVfdGFibGUnXSA9ICdUYWJsZS9DU1MnOwokbGFuZ1snZGlzcHR5cGVfY3NzJ10gPSAnUHVyZSBDU1MnOwokbGFuZ1snZGlzcHR5cGVfdGVtcGxhdGUnXSA9ICdDdXN0b20gVGVtcGxhdGUnOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyeSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmNoJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01heSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5lJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bHknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24NCic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy4gWW91IGFsc28gc2VsZWN0IHRoZSBkaXNwbGF5IHR5cGUuIFlvdXIgY2hvaWNlcyBhcmU6PC9wPg0KPHVsPg0KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbiYjMDM5O3Qga25vdyB3aGF0IHRvIGNob29zZSwgdGhpcyBpcyB0aGUgZWFzaWVzdCBvcHRpb24sIGFuZCB3aWxsIHByb2JhYmx5IGRvIG1vc3Qgb2Ygd2hhdCB5b3Ugd2FudC4gWW91IGNhbiBzdGlsbCB1c2UgQ1NTIHRvIHN0eWxlIHRoZSBmb3JtIGlmIHlvdSB3YW50LjwvbGk+DQo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiA8ZGl2PiB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4NCjxsaT5DdXN0b20gVGVtcGxhdGUuIEJhc2ljYWxseSwgeW91IGdldCBhIHNtYXJ0eSB0ZW1wbGF0ZSwgYSBidW5jaCBvZiB2YXJpYWJsZXMsIGFuZCB5b3UmIzAzOTtyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFNldHRpbmdzPC9oND4NCjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPg0KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UmIzAzOTtyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIDxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KCQknOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMTgyNTcwNTQzLjExNTYzNjg2MDYuMTE2MDYxMDk2NS4xMTYxMDA2OTA3LjEyJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE1ODYxMTM1NC42LjIudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwfHV0bWNtZD1yZWZlcnJhbCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsZHR5cCB3dXJkZSBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0ZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0YmVyZWljaCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdLb250cm9sbGsmYXVtbDtzdGNoZW4nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdLb250cm9sbGsmYXVtbDtzdGNoZW4tR3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0xpc3RlbmZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTWVocmZhY2hhdXN3YWhsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVzIFUuUy4tU3RhYXRlcyc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVzIExhbmRlcyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVtc2F1c3dhaGwnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdPcHRpb25zZmVsZC1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVyZ2Vibmlzc2UgcGVyIEVtYWlsIGFuIEF1c3dhaGwgYXVzIGRlbSBMaXN0ZW5mZWxkIHNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRXJnZWJuaXNzZSBwZXIgRW1haWwgYW4gdm9yZ2VnZWJlbmUgQWRyZXNzZShuKSBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKiZVdW1sO2JlcnByJnV1bWw7ZnVuZyAmdXVtbDtiZXIgZGllIEVtYWlsLUFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXJnZWJuaXNzZSBpbiBlaW5lIERhdGVpIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqRXJnZWJuaXNzZSBpbiBkaWUgRGF0ZW5iYW5rIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNlaXRlbnVtYnJ1Y2gnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdIb2NobGFkZW4gdm9uIERhdGVpZW4nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbGZlbGQgJnF1b3Q7Vm9uIEVtYWlsJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWxmZWxkICZxdW90O1ZvbiBOYW1lJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2NoZXIgVGV4dCc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdLZWluZSAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpc2NoJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0dhbnp6YWhsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsYWRyZXNzZSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXNzICZ1dW1sO2JlcnByJnV1bWw7ZnQgd2VyZGVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdlbnRzcHJpY2h0IGRlbSB6dWwmYXVtbDtzc2lnZW4gV2VydCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdlbnRzcHJpY2h0IG5pY2h0IGRlbSB6dWwmYXVtbDtzc2lnZW4gV2VydCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lbiBXZXJ0IGVpbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZSBaYWhsIGVpbiAnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnQml0dGUgZ2ViZW4gU2llIGYmdXVtbDtyICZxdW90OyVzJnF1b3Q7IGVpbmVuIGcmdXVtbDtsdGlnZW4gV2VydCBlaW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZW4gZ2FuenphaGxpZ2VuIFdlcnQgZWluICc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZSBnJnV1bWw7bHRpZ2UgRW1haWxhZHJlc3NlIGVpbiAnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgc2NoZWludCBrZWluZSBnJnV1bWw7bHRpZ2UgRW1haWxhZHJlc3NlIHp1IHNlaW4hJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gV2VydCBlaW4sIGRlciBuaWNodCBsJmF1bWw7bmdlciBhbHMgJXMgWmVpY2hlbiBpc3QgJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnWmVpY2hlbiwgZGFzIGFscyBUcmVubmVyIHZlcndlbmRldCB3aXJkLCB3ZW5uIG1laHIgYWxzIGVpbiBXZXJ0IGFscyBFcmdlYm5pcyB6dXImdXVtbDtja2dlZ2ViZW4gd2lyZCc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnU2llIGJlbiZvdW1sO3RpZ2VuIGRpZSBCZXJlY2h0aWd1bmcgJnF1b3Q7JXMmcXVvdDssIHVtIGRpZXNlIEFrdGlvbiBhdXN6dWYmdXVtbDtocmVuLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NpZSBoYWJlbiBuaWNodCBkaWUgZXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmcsIHVtIGF1ZiBkaWVzZW4gQmVyZWljaCB6dXp1Z3JlaWZlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZlbGRyZWloZW5mb2xnZSBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFyIGdlbCZvdW1sO3NjaHQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGZWxkIGdlbCZvdW1sO3NjaHQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb25lbiBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnVW0gd2VpdGVyenVtYWNoZW4gbSZ1dW1sO3NzZW4gU2llIHp1dm9yICZxdW90OyVzJnF1b3Q7ICZ1dW1sO2JlcnByJnV1bWw7ZmVuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnU2llIG0mdXVtbDtzc2VuIGhpZXIgbWluZGVzdGVucyBlaW5lIFppZWxhZHJlc3NlIGFuZ2ViZW4hJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1dvbGxlbiBTaWUgZGFzIEZvcm11bGFyICVzIHdpcmtsaWNoIGwmb3VtbDtzY2hlbj8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ1dvbGxlbiBTaWUgZGFzIEZlbGQgJXMgd2lya2xpY2ggbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdCaXMgenVtIFNldHplbiBkZXMgRmVsZHR5cHMgc2luZCBkaWUgZXJ3ZWl0ZXJ0ZW4gT3B0aW9uZW4gbmljaHQgdmVyZiZ1dW1sO2diYXIuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRGVyIEZlbGRuYW1lICZxdW90OyVzJnF1b3Q7IHdpcmQgYmVyZWl0cyB2ZXJ3ZW5kZXQuIEJpdHRlIHZlcndlbmRlbiBTaWUgZWluZGV1dGlnZSBGZWxkbmFtZW4uJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMJmF1bWw7bmdlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgT3B0aW9uZW4nOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBaZWljaGVuLic7CiRsYW5nWydvcmRlciddID0gJ1JlaWhlbmZvbGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnKG5pY2h0IGRlZmluaWVydCknOwokbGFuZ1snYWRkZWQnXSA9ICdoaW56dWdlZiZ1dW1sO2d0JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpc2llcnQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ0JpdHRlIGVpbmVuIGF1c3cmYXVtbDtobGVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnRWluZW4gVHlwIGF1c3cmYXVtbDtobGVuJzsKJGxhbmdbJ3RvJ10gPSAnQW4nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ0VtcGYmYXVtbDtuZ2VyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgWmllbGUnOwokbGFuZ1snc2F2ZSddID0gJ1NwZWljaGVybic7CiRsYW5nWydhZGQnXSA9ICdIaW56dWYmdXVtbDtnZW4nOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXNpZXJlbic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwZWljaGVybiB1bmQgQmVhcmJlaXR1bmcgZm9ydHNldHplbic7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2NoJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsYXJlJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxhciAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhdGlvbic7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hhdXB0c2VpdGUnOwokbGFuZ1sndGFiX2FkZGl0aW9uYWwnXSA9ICdGb3JtdWxhcmVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnRXJ3ZWl0ZXJ0ZSBFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ09wdGlvbmVuIGYmdXVtbDtyIGRhcyB0YWJlbGxlbmJhc2llcnRlIExheW91dCc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdPcHRpb25lbiBmJnV1bWw7ciBkYXMgVGVtcGxhdGUtTGF5b3V0JzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWxkc3RhdHVzIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBHciZvdW1sOyZzemxpZztlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRW5kdW5nZW4nOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0VybGF1YnRlIERhdGVpdHlwZW4nOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdEaWUgaG9jaGdlbGFkZW5lIERhdGVpIGlzdCB6dSBncm8mc3psaWc7ISBEaWUgbWF4aW1hbGUgR3Imb3VtbDsmc3psaWc7ZSBpc3Q6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGllc2VyIERhdGVpdHlwIGRhcmYgbmljaHQgaG9jaGdlbGFkZW4gd2VyZGVuLiBCaXR0ZSAmdXVtbDtiZXJwciZ1dW1sO2ZlbiBTaWUsIG9iIGRpZSBEYXRlaWVuZHVuZyBrb3JyZWt0IGlzdC4nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBkZWluc3RhbGxpZXJ0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdadXImdXVtbDtjayAuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0Zvcm11bGFyIGFic2VuZGVuJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1dlaXRlciAuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0dlcHImdXVtbDtmdCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmdlcHImdXVtbDtmdCc7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1dlaXRlcmUgT3B0aW9uZW4gaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnTWFya2llcnRlIE9wdGlvbmVuIGwmb3VtbDtzY2hlbic7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1dlaXRlcmUgS29udHJvbGxrJmF1bWw7c3RjaGVuIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ01hcmtpZXJ0ZSBLb250cm9sbGsmYXVtbDtzdGNoZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnRWluZSB3ZWl0ZXJlIEFkcmVzc2UgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnTWFya2llcnRlIEFkcmVzc2VuIGwmb3VtbDtzY2hlbic7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdFaW4gd2VpdGVyZXMgWmllbCBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnTWFya2llcnRlIFppZWxlIGwmb3VtbDtzY2hlbic7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltYWxlIEwmYXVtbDtuZ2UnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdOYW1lIGRlcyBLb250cm9sbGsmYXVtbDtzdGNoZW5zJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdXZXJ0IG5hY2ggZXJmb2xndGVyIEFrdGl2aWVydW5nJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1dlcnQgb2huZSBlcmZvbGd0ZSBBa3RpdmllcnVuZyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnRGV0YWlscyB6dXIgS29udHJvbGxrJmF1bWw7c3RjaGVuLUdydXBwZSc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdMJm91bWw7c2NoZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHQgZiZ1dW1sO3IgJnF1b3Q7Qml0dGUgYXVzdyZhdW1sO2hsZW4mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBdXN3YWhsIGRlcyAmcXVvdDtCZXRyZWZmcyZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTmFtZSBkZXIgT3B0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJyZVdW1sO2Jlcm1pdHRlbHRlciBXZXJ0JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdMaXN0ZW5mZWxkLU9wdGlvbmVuJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdPcHRpb25lbiBNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1ppZWwtRW1haWxhZHJlc3NlJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O1ZvbiBOYW1lJnF1b3Q7IGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnTG9ja2VyZSBFbWFpbC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcgdmVyd2VuZGVuJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1ZlcndlbmRldCBlaW5lIGxvY2tlcmUgJlV1bWw7YmVycHImdXVtbDtmdW5nIGRlciBFbWFpbCAoZXJsYXVidCB6LiBCc3AuICZxdW90O3hAeSZxdW90OyBhbnN0YXR0IGRlcyBlcmZvcmRlcmxpY2hlbiAmcXVvdDt4QHkuZGUmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O1ZvbiBBZHJlc3NlJnF1b3Q7IGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ1plaWNoZW4tQ29kaWVydW5nIGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTGlzdGVuZmVsZGJhc2llcnRlIEVtYWlsLURldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRGF0ZWluYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdCZXRyZWZmLVplaWxlIGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWxhcm5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtdWxhcnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0VpbnNhdHpiZXJlaXQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pY2h0IGVpbnNhdHpiZXJlaXQnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NlaXRlLCBhdWYgZGllIG5hY2ggZGVtIFZlcnNhbmQgZ2VzcHJ1bmdlbiB3ZXJkZW4gc29sbCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnQml0dGUgZiZ1dW1sO2dlbiBTaWUgZWluIEZlbGQgaGluenUsIG1pdCBkZW0gZGllIEJlbnV0emVyZWluZ2FiZW4gdmVyYXJiZWl0ZXQgd2VyZGVuLiBTaWUgayZvdW1sO25uZW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdkaWVzZSBUYXN0ZW5rb21iaW5hdGlvbiB2ZXJ3ZW5kZW4sJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtdWxhci1BbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bGFyZmVsZGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGZWxkbmFtZSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdEZXRhaWxzIHp1ciBPcHRpb25zZmVsZC1HcnVwcGUnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZlbGR0eXAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3VtIGVpbiBGZWxkIHp1ciBGb3JtdWxhcnZlcmFyYmVpdHVuZyB6dSBlcnN0ZWxsZW4uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ05ldWVzIEZvcm11bGFyIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdWZXJzaW9uIGRlcyBGb3JtQnVpbGRlci1Nb2R1bHMgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnQWxzIEhpbGZlIHp1ciBGZWhsZXJiZXJzZWl0aWd1bmcgd2lyZCBkaWUgVmVyc2lvbnNudW1tZXIgZGVzIEZvcm1CdWlsZGVyLU1vZHVscyBpbiBlaW5lbSBLb21tZW50YXIgZWluZ2ViZXR0ZXQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdOZXVlcyBGZWxkIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtBYnNlbmRlbiZxdW90Oy1CdXR0b24nOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O1dlaXRlciZxdW90Oy1CdXR0b24gKGYmdXVtbDtyIG1laHJzZWl0aWdlIEZvcm11bGFyZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O1p1ciZ1dW1sO2NrJnF1b3Q7LUJ1dHRvbiAoZiZ1dW1sO3IgbWVocnNlaXRpZ2UgRm9ybXVsYXJlKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmVsZC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MtS2xhc3NlIGYmdXVtbDtyIGRpZXNlcyBGb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MtS2xhc3NlIGYmdXVtbDtyIGRpZXNlcyBGZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHp1ciBLZW5uemVpY2hudW5nIGRlciBQZmxpY2h0ZmVsZGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnRXJmb3JkZXJsaWNoJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdFcmZvcmRlcnQgZWluZSBBbnR3b3J0IGluIGRpZXNlbSBGZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0RpZXNlbiBGZWxkbmFtZW4gaW0gRm9ybXVsYXIgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdBbnp1emVpZ2VuZGVyIHN0YXRpc2NoZXIgVGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ2V4LSZVdW1sO2JlcnByJnV1bWw7ZnVuZyc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQW56YWhsIGRlciBhbmdlemVpZ3RlbiBaZWlsZW4nOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0tlaW5lIFZvcmVpbnN0ZWxsdW5nJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2VpdGUsIGF1ZiBkaWUgbmFjaCAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcgd2VpdGVyZ2VsZWl0ZXQgd2lyZCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKHouIEJzcC4gJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdFcmZvcmRlcmwuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnRmVsZCBUaXRlbHBvc2l0aW9uIChudXIgYmVpIERhcnN0ZWxsdW5nIG9obmUgQ1NTKSc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfbGVmdCddID0gJ1RpdGVsIGxpbmtzJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9hYm92ZSddID0gJ1RpdGVsIG9iZW4nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdGZWhsZXIgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdBbnplaWdldHlwIGRlcyBGb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0ZlaGxlci1NZWxkdW5nZW4gdm9yIGRlbiBCZW51dHplcm4gdmVyYmVyZ2VuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsLVRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgZiZ1dW1sO3IgaG9jaHp1bGFkZW5kZSBEYXRlaWVuIChraWxvYnl0ZSknOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdadWdlbGFzc2VuZSBEYXRlaS1FbmR1bmdlbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnQml0dGUgZ2ViZW4gU2llIGVpbmUgQXVmeiZhdW1sO2hsdW5nIGRlciB6dWdlbGFzc2VuZW4gRGF0ZWktRW5kdW5nZW4gamV3ZWlscyBnZXRyZW5udCBkdWNoIGVpbiBLb21tYSBlaW4gKG9obmUgUHVua3QgLSB6LkIuICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIExlZXJ6ZWljaGVuIHdlcmRlbiBpZ25vcmllcnQuIFdpcmQgZGFzIEZlbGQgbGVlciBnZWxhc3NlbiwgZ2VsdGVuIGtlaW5lIEJlc2NociZhdW1sO25rdW5nZW4uJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdCZXNjaHImYXVtbDtua3VuZ2VuIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdCZXNjaHImYXVtbDtua3VuZ2VuIGRlciBHciZvdW1sOyZzemxpZztlIHVuZCBkZXIgRGF0ZWktRW5kdW5nZW4gbWl0IGRlbSBVcGxvYWQtRmVsZCBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGRpZSBGb3JtdWxhcmFuemVpZ2UnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTZWl0ZSAlcyB2b24gJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0RhcyBGZWxkIGhhdCBrZWluZSBlcndlaXRlcnRlbiBPcHRpb25lbi4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQsIGRlciBiZWkgdW5nZW5hdWVuIEVpbmdhYmVuIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdBa3RpdmllcnQgZGFzIHNjaG5lbGxlIEhpbnp1ZiZ1dW1sO2dlbiB2b24gTGlzdGVuZmVsZGVybiBpbiBGb3JtdWxhcmVuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRGFzIHNjaG5lbGxlIEhpbnp1ZiZ1dW1sO2dlbiB2b24gTGlzdGVuZmVsZGVybiBha3RpdmllcmVuPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU2NobmVsbGUgRmVsZGVyc3RlbGx1bmcnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVuIGYmdXVtbDtyIGRhcyBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ1ZlcnNhbmRkYXR1bSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnSWhyIFNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUC1BZHJlc3NlIGRlcyBGb3JtdWxhcmFic2VuZGVycyc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgZGVyIEZvcm11bGFyc2VpdGUnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdXZW5uIFNpZSBkaWVzIGRlbSBGb3JtdWxhciBoaW56dWYmdXVtbDtnZW4sIHNpbmQgd2VpdGVyZSBGZWxkZXIgdmVyZiZ1dW1sO2diYXIuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdJbmZvcm1hdGlvbmVuIHp1ciBGb3JtYXRpZXJ1bmcgZmluZGVuIFNpZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+aW4gZGVyIFBIUC1CZXNjaHJlaWJ1bmc8L2E+Lic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGZWxkIHJlcHImYXVtbDtzZW50aWVydCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgWnVyJnV1bWw7Y2sgenVtIEZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdFaW4gQmVpc3BpZWwtVGVtcGxhdGUgZXJzdGVsbGVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnRWluZW4gTXVzdGVyLUhlYWRlciBlcnN0ZWxsZW4nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZWluZW4gWmVpbGVudm9yc2NodWInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGVpbmUgWmVpbGUgZGVyIGF1c2dlZ2ViZW5lbiBEYXRlaSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGRlbiBIZWFkZXIgZGVyIGF1c2dlZ2ViZW5lbiBEYXRlaSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHp1ciBCZXN0JmF1bWw7dGlndW5nIGRlcyBGb3JtdWxhcnMnOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0tlaW5lIEluZm9ybWF0aW9uZW4gJnV1bWw7YmVyIGRlbiBIVFRQX1JFRkVSRVIgdmVyZiZ1dW1sO2diYXIgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gJlV1bWw7YmVycHImdXVtbDtmZW4gZGVyIFBhcmFtZXRlci4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBVUkwgYXVzIElocmVyIEVtYWlsIGtvcnJla3Qga29waWVydCB3dXJkZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZy4gQml0dGUgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGRpZSBVUkwgYXVzIElocmVyIEVtYWlsIGtvcnJla3Qga29waWVydCB3dXJkZSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZy4gRGllc2VzIEZvcm11bGFyIGVudGgmYXVtbDtsdCBrZWluIEZlbGQgenVyICZVdW1sO2JlcnByJnV1bWw7ZnVuZyBkZXIgRW1haWwhJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0dW1zLUZvcm1hdCAoc2llaGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXR1bXNmb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1dZU0lXWUctRWRpdG9yIGYmdXVtbDtyIGRlbiBUZXh0YmVyZWljaCB2ZXJ3ZW5kZW4/JzsKJGxhbmdbJ2Rpc3B0eXBlX3RhYmxlJ10gPSAnVGFiZWxsZW4vQ1NTJzsKJGxhbmdbJ2Rpc3B0eXBlX2NzcyddID0gJ0NTUyBwdXInOwokbGFuZ1snZGlzcHR5cGVfdGVtcGxhdGUnXSA9ICdCZW51dHplci1UZW1wbGF0ZSc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdIaW56dWYmdXVtbDtnZW4sIEJlYXJiZWl0ZW4gdW5kIFZlcndhbHRlbiB2b24gaW50ZXJha3RpdmVuIEZvcm11bGFyZW4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNJmF1bWw7cnonOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV6ZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0VudHNjaHVsZGlndW5nISBCZWltIFZlcnNhbmQgZGVzIEZvcm11bGFycyBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gVmVyc2FuZDogJXMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0ZlaGxlciBiZWltIEhvY2hsYWRlbiBkZXIgRGF0ZWkgJXMgKHRlbXBvciZhdW1sO3JlciBOYW1lICVzIGRlcyBUeXBzICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaGxlci4gRGF0ZWkga29ubnRlIG5pY2h0IGdlc3BlcnJ0IHdlcmRlbi4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyLVZlcnNhbmQnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RGFzIEVtYWlsLVRlbXBsYXRlIHd1cmRlIG5vY2ggbmljaHQgZmVzdGdlbGVndCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IEtvbm50ZSBkYXMgZXJmb3JkZXJsaWNoZSBDTVNNYWlsZXItTW9kdWwgbmljaHQgZmluZGVuISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdCZW51dHplcmdlcHImdXVtbDtmdGUgJlV1bWw7YmVybWl0dGx1bmcgJXMgdm9uICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBlaW4gRm9ybXVsYXIgbWl0IEZvcm1CdWlsZGVyIHZlcnNhbmR0IHd1cmRlJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0F1c2YmdXVtbDtocmVuLCB3ZW5uIGJlaW0gVmVyc2FuZCBlaW5lcyBGb3JtQnVpbGRlci1Gb3JtdWxhcnMgZWluIEZlaGxlciBhdWZnZXRyZXRlbiBpc3QnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBlaW4gRm9ybUJ1aWxkZXItRm9ybXVsYXIgYW5nZXplaWd0IHd1cmRlJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5BdXNmJnV1bWw7aHJlbiwgd2VubiBlaW4gRm9ybXVsYXIgbWl0IEZvcm1CdWlsZGVyIHZlcnNhbmR0IHd1cmRlLjwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGludGVybmUgSUQgZGVzIEZvcm11bGFycyAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gYmVpbSBWZXJzYW5kIGVpbmVzIEZvcm1CdWlsZGVyLUZvcm11bGFycyBlaW4gRmVobGVyIGF1ZmdldHJldGVuIGlzdDwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGludGVybmUgSUQgZGVzIEZvcm11bGFycyAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBlaW5lIExpc3RlIGFsbGVyIGJla2FubnRlIEZlaGxlciAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5BdXNmJnV1bWw7aHJlbiwgd2VubiBlaW4gRm9ybUJ1aWxkZXItRm9ybXVsYXIgYW5nZXplaWd0IHd1cmRlPC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gTmFtZSBkZXMgRm9ybXVsYXJzIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gaW50ZXJuZSBJRCBkZXMgRm9ybXVsYXJzIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5TdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIEJlcmVjaHRpZ3VuZyAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgDQpmJnV1bWw7ciBkaWUgVXNlciBnZXNldHp0IGlzdCwgd2VsY2hlIGRpZSBGZWVkYmFjay1Gb3JtdWxhcmUgYmVhcmJlaXRlbiB3ZXJkZW4uIFNvbGxlbiBkaWUgV2VydGUgYXVzIGRlbSBGb3JtdWxhciBwZXIgRW1haWwgdmVyc2FuZHQgd2VyZGVuLCANCnN0ZWxsZW4gU2llIGViZW5mYWxscyBzaWNoZXIsIGRhc3MgZGllIEtvbmZpZ3VyYXRpb24gZW50c3ByZWNoZW5kIGFrdHVhbGlzaWVydCB3dXJkZS48L3A+DQo8cD5BQ0hUVU5HOiBXJmF1bWw7aHJlbmQgZGVyIEJlYXJiZWl0dW5nIGRhcmYgZGFzIGpld2VpbGlnZSBGZWVkYmFjay1Gb3JtdWxhciANCkJlYXJiZWl0dW5nIG5pY2h0IGFrdGl2IHNlaW4gKD1udXR6YmFyIGYmdXVtbDtyIGRpZSBHJmF1bWw7c3RlIElocmVyIEhvbWVwYWdlKS4gU2llIHNvbGx0ZW4gZGFoZXIgZGVuIEZlZWRiYWNrZm9ybXVsYXItVGFnIGVyc3QgZGFubiBpbiBlaW5lIGFrdGl2ZSBJbmhhbHRzc2VpdGUgZWluZiZ1dW1sO2dlbiwgd2VubiBkYXMgRm9ybXVsYXIga29tcGxldHQgZXJzdGVsbHQgaXN0LiBBbmRlcmVuZmFsbHMga2FubiBlcyB6dSBmZWhsZXJoYWZ0ZW4gRXJnZWJuaXNzZW4ga29tbWVuLjwvcD4NCjxwPkltICZ1dW1sO2JyaWdlbiB1bnRlcnN0JnV1bWw7dHp0IGRpZXNlIFZlcnNpb24ga2VpbmUgcGFyYWxsZWxlIEJlYXJiZWl0dW5nIHZvbiBGb3JtdWxhcmVuIGR1cmNoIG1laHJlcmUgQWRtaW5pc3RyYXRvcmVuLiBCaXR0ZSBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZWluIEZvcm11bGFyIGpld2VpbHMgbnVyIHZvbiBlaW5lbSBBZG1pbmlzdHJhdG9yIGJlYXJiZWl0ZXQgd2lyZC48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2FzIG1hY2h0IGRpZXNlcyBNb2R1bD88L2gzPg0KPHA+RGFzIEZvcm1CdWlsZGVyLU1vZHVsIGVybGF1YnQgSWhuZW4sIEZlZWRiYWNrLUZvcm11bGFyZSB6dSBlcnN0ZWxsZW4gKGxvZ2lzY2gsIGVzIGlzdCBkZXIgTmFjaGZvbGdlciBkZXMgRmVlZGJhY2tGb3JtLU1vZHVscyksIGVyd2VpdGVydCB1bSBkaWUgRiZhdW1sO2hpZ2tlaXQsIGVpbmdlZ2ViZW5lIERhdGVuIGF1Y2ggaW4gZWluZXIgRGF0ZW5iYW5rIGFibGVnZW4genUgayZvdW1sO25uZW4uIFp1c2FtbWVuIG1pdCBkZW0gRm9ybUJyb3dzZXItTW9kdWwgayZvdW1sO25uZW4gU2llIGVpbnNldHplbiwgdW0gZWluZmFjaGUgRGF0ZW5iYW5rLUFud2VuZHVuZ2VuIHNlbGJzdCB6dSBlcnN0ZWxsZW4uPC9wPg0KPHA+RGllIHZvbiBGb3JtQnVpbGRlciBlcnpldWd0ZW4gRm9ybXVsYXJlIGsmb3VtbDtubmVuIGluIFRlbXBsYXRlcyANCnVuZC9vZGVyIFNlaXRlbiBlaW5nZWYmdXVtbDtndCB3ZXJkZW4uIEluIGRpZSBGb3JtdWxhciBrJm91bWw7bm5lbiB2ZXJzY2hpZWRlbmUgQXJ0ZW4gdm9uIERhdGVuIGVpbmdlZ2ViZW4gd2VyZGVuLiBEaWVzZSBFaW5nYWJlbiANCjxwPkZvcm11bGFyZmVsZGVybiB3ZXJkZW4gTmFtZW4genVnZXdpZXNlbi4gRGllc2UgTmFtZW4gaWRlbnRpZml6aWVyZW4gSWhyZSBGb3JtdWxhcmZlbGRlciwgbmljaHQgbnVyIGF1ZiBkZW0gQmlsZHNjaGlybSBhbHMgQmV6ZWljaG51bmdlbiBkaWUgZGVtIEJlbnV0emVyIGRpZW5lbiwgc29uZGVybiBhdWNoIGluIGRlbiBEYXRlbiB3ZW5uIHNpZSB2ZXJzY2hpY2t0IHdlcmRlbi4gRGFtaXQgd2lyZCBzaWNoZXJnZXN0ZWxsdCBkYXNzIFNpZSBkYXMgc2VoZW4gd2FzIGRlciBOdXR6ZXIgZWluZ2VnZWJlbiBoYXQuIDxicj4NCiAgRGVuIE5hbWVuIHdpZSBlaW5lIEZyYWdlIHp1IGdlc3RhbHRlbiBpc3QgZWluZSBzZWhyIGhhbmRsaWNoZSBBcnQgdW5kIFdlaXNlIGRlbSBOdXR6ZXIgenUgdmVybWl0dGVsbiB3YXMgaGllciB2b24gaWhtIGVyd2FydGV0IHdpcmQuIDxicj4NCiAgVmllbGUgRmVsZGVyIGhhYmVuIGJlaWRlcywgTmFtZW4gdW5kIFdlcnRlLiBEaWUgTmFtZW4sIGRpZSBkZW0gTnV0emVyIGFuZ2V6ZWlndCB3ZXJkZW4gdW5kIGRpZSBXZXJ0ZSwgZGFzIHNpbmQgZGllIGRpZSBnZXNwZWljaGVydCB3ZXJkZW4gd2VubiBkZXIgTnV0emVyIGRhcyBGb3JtdWxhciBhYnNjaGlja3QuIERpZSBXZXJ0ZSBzaW5kIHdlZGVyIHZvbSBCZW51dHplciBlaW5zZWhiYXIgbm9jaCBpbSBIVE1MLCBzb21pdCBpc3QgZXMgc2ljaGVyIHNpZSBmJmFtcDt1dW1sO3IgRW1haWxhZHJlc3NlbiB1c3cuIHp1IHZlcndlbmRlbi4gPC9wPg0KPHA+RWluaWdlIEZlbGRlciBrJmFtcDtvdW1sO25uZW4gbWVocmVyZSBXZXJ0ZSBvZGVyIE5hbWVuL1dlcnRlIFBhYXJlIGhhYmVuLiBXZW5uIFNpZSB6dWVyc3QgZWluIHNvbGNoZXMgRmVsZCBlcnN0ZWxsZW4sIGthbm4gZXMgbSZhbXA7b3VtbDtnbGljaCBzZWluLCBkYXNzIG5pY2h0IGdlbiZhbXA7dXVtbDtnZW5kIEVpbmdhYmVmZWxkZXIgdm9yaGFuZGVuIHNpbmQsIHVtIGRpZSBXZXJ0ZSBlaW56dXRyYWdlbi4gVW0gbWVociBNJmFtcDtvdW1sO2dsaWNoa2VpdGVuIHp1IGVyaGFsdGVuIFdlcnRlIGVpbnp1dHJhZ2VuLCBiZW51dHplbiBTaWUgZGVuIFNjaGFsdGVyIGFtIHVudGVyZW4gRW5kZSBkZXIgU2VpdGUgZiZhbXA7dXVtbDtyIHdlaXRlcmUgT3B0aW9uZW4uIDwvcD4NCjxwPkZlbGRlcm4gayZhbXA7b3VtbDtubmVuIFZhbGlkaWVydW5nc3JlZ2VsbiB6dWdld2llc2VuIHdlcmRlbiwgd2VsY2hlIGplIG5hY2ggRmVsZHR5cCB1bnRlcnNjaGllZGxpY2ggc2VpbiBrJmFtcDtvdW1sO25uZW4uIERpZXNlIFJlZ2VsbiBoZWxmZW4gc2ljaGVyenVzdGVsbGVuIGRhc3MgZGVyIE51dHplciBnJmFtcDt1dW1sO2x0aWdlIERhdGVuIGVpbmdpYnQuIEF1JmFtcDtzemxpZztlcmRlbSBpc3QgZXMgTSZhbXA7b3VtbDtnbGljaCBGZWxkZXIgc2VwZXJhdCBtaXQgZWluZW0gJmFtcDtxdW90O3dpcmQgYmVuJmFtcDtvdW1sO3RpZ3QmYW1wO3F1b3Q7IHp1IG1hcmtpZXJlbiwgZGFtaXQgd2lyZCBkZXIgTnV0emVyIHNvenVzYWdlbiAmYW1wO3F1b3Q7Z2V6d3VuZ2VuJmFtcDtxdW90OyBFaW5nYWJlbiB6dSBtYWNoZW4uIDwvcD4NCjxwPkZlbGRlcm4gayZhbXA7b3VtbDtubmVuIGF1Y2ggQ1NTIEtsYXNzZW4genVnZXdpZXNlbiB3ZXJkZW4uIEVzIHdlcmRlbiBkaWUgRWluZ2FiZWZlbGRlciBtaXQgZWluZW0gRElWIFRhZyB1bmQgZGF6dWdlaCZhbXA7b3VtbDtyaWdlciBDU1MgS2xhc3NlIHVtZ2ViZW47IHNvbWl0IGsmYW1wO291bWw7bm5lbiBTaWUgSWhyIEZvcm11bGFyIHNlbGJzdCBnZXN0YWx0ZW4uIFVtIGRpZXMgZWZmaXppZW50IG51dHplbiB6dSBrJmFtcDtvdW1sO25uZW4gc29sbHRlbiBpbiBkZW4gUXVlbGx0ZXh0IGRlcyBGb3JtdWxhcmVzIGdlaGVuIHVuZCBkYW5uIElocmVuIENTUyAtIENvZGUgc2NocmVpYmVuLiA8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgRWluZ2FiZWZlbGRlcg0KICA8dWw+DQogICAgPGxpPlRleHQgRWluZ2FiZWZlbGQuIERpZXMgaXN0IGRhcyBTdGFuZGFyZCBFaW5nYWJlZmVsZC4gU2llIGsmYW1wO291bWw7bm5lbiBkaWUgTCZhbXA7YXVtbDtuZ2UgZGVyIGVpZ2VnZWJlbmVuIFplaWNoZW4gdyZhbXA7YXVtbDtobGVuIHVuZCB2ZXJzY2hpZWRlbmUgVmFsaWRpZXJ1bmdzZnVua3Rpb25lbiBhdWYgZGllc2UgRmVsZCBhbndlbmRlbi48L2xpPg0KICAgIDxsaT5UZXh0YmVyZWljaCAuIERpZXMgaXN0IGVpbiBncm8mYW1wO3N6bGlnO2VzIEZyZWlmcm9tIC0gVGV4dGVpbmdhYmVmZWxkLjwvbGk+DQogICAgPGxpPkNoZWNrYm94LiBEYXMgaXN0IGRpZSBTdGFuZGFyZCBDaGVja2JveC48L2xpPg0KICAgIDxsaT5DaGVja2JveCBHcnVwcGUuIERhcyBpc3QgZWluZSBTYW1tbHVuZyB2b24gQ2hlY2tib3hlbi4gRGVyIGVpbnppZ2UgVW50ZXJzY2hpZWQgYmVzdGVodCBkYXJpbiwgZGFzcyBkaWVzIGVpbmUgR3J1cHBlIHZvbiBDaGVja2JveGVuIG1pdCBlaW5lbSBOYW1lbiBpc3QuIFdlaXRlcmhpbiBrJmFtcDtvdW1sO25uZW4gU2llIGVpbmVuIG9kZXIgbWVocmVyZSBhbHMgJmFtcDtxdW90O3dpcmQgYmVuJmFtcDtvdW1sO3RpZ3QmYW1wO3F1b3Q7IG1hcmtpZXJlbi4gU29taXQgaXN0IGRlciBOdXR6ZXIgJmFtcDtxdW90O2dlend1bmdlbiZhbXA7cXVvdDsgZWluZSBvZGVyIG1laHJlcmUgQ2hlY2tib3hlbiBkaWVzZXIgR3J1cHBlIGF1c3p1dyZhbXA7YXVtbDtobGVuLjwvbGk+DQogICAgPGxpPlJhZGlvIEJ1dHRvbiBHcnVwcGUuIERhcyBpc3QgZWluZSBTYW1tbHVuZyB2b24gUmFkaW8gQnV0dG9ucy4gTnVyIGVpbiBSYWRpbyBCdXR0b24gaW4gZGVyIEdydXBwZSBrYW5uIGF1c2dldyZhbXA7YXVtbDtobHQgd2VyZGVuLjwvbGk+DQogICAgPGxpPlB1bGxkb3duLiBEYXMgaXN0IGVpbiBTdGFuZGFyZCBQdWxsZG93biBNZW4mYW1wO3V1bWw7LiBWb20gS29uemVwdCBoZXIgZ2VzZWhlbiBkYXMgZ2xlaWNoZSB3aWUgZGllIFJhZGlvIEJ1dHRvbiBHcnVwcGUsIGFiZXIgYmVzc2VyIHdlbm4gU2llIHZpZWxlIEF1c3dhaGxtJmFtcDtvdW1sO2dsaWNoa2VpdGVuIGhhYmVuLjwvbGk+DQogICAgPGxpPk1laHJmYWNoYXVzd2FobC4gRGFzIGlzdCBkYXMgTWVocmZhY2hhdXN3YWhsIEZlbGQuIFZvbSBLb256ZXB0IGhlciBnZXNlaGVuIGRhcyBnbGVpY2hlIHdpZSBkaWUgUmFkaW8gQnV0dG9uIEdydXBwZSwgYWJlciBiZXNzZXIgd2VubiBTaWUgdmllbGUgQXVzd2FobG0mYW1wO291bWw7Z2xpY2hrZWl0ZW4gaGFiZW4gdW5kIGRpZSBBdXN3YWhsIGFiZXIgYmVncmVuemVuIG0mYW1wO291bWw7Y2h0ZW4uPC9saT4NCg0KICAgIDxsaT5CdW5kZXNzdGFhdC4gRGllcyBpc3QgZWluZSBQdWxsZG93biBMaXN0ZSBtaXQgcyZhbXA7YXVtbDttdGxpY2hlbiBCdW5kZXNzdGFhdGVuIGRlciBVU0EuPC9saT4NCjxsaT5MJmFtcDthdW1sO25kZXIuIERpZXMgaXN0IGVpbmUgUHVsbGRvd24gTGlzdGUgcyZhbXA7YXVtbDttdGxpY2hlciBzaWNoIGF1ZiBkZXIgRXJkZSBiZWZpbmRsaWNoZW4gTCZhbXA7YXVtbDtuZGVyLjwvbGk+DQo8bGk+RGF0dW1zYXVzd2FobC4gRGllcyBpc3QgZWluZSBkcmVpZmFjaCBQdWxsZG93biBMaXN0ZSwgZGllIGRlbSBOdXR6ZXIgZGllIE0mYW1wO291bWw7Z2xpY2hrZWl0IGdpYnQgZWluIERhdHVtIGF1enV3JmFtcDthdW1sO2hsZW4uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsIHNwZXppZmlzY2hlIEVpbmdhYmVmZWxkZXINCiAgPHVsPg0KICAgIDxsaT5FbWFpbCBWb24gIEFkcmVzcyBGZWxkLiBIaWVyIGsmYW1wO291bWw7bm5lbiBTaWUgSWhyZSBFbWFpbGFkcmVzc2UgZWluZ2ViZW4uIERpZXNlIHdpcmQgaW4gZGVyIGdlbmVyaWVydGVuIEVtYWlsIGltIEZlbGQgVm9uIChNYWlsYWRyZXNzZSk6IGFuZ2VnZWJlbi48L2xpPg0KICAgIDxsaT5FbWFpbCBWb24gTmFtZSBGZWxkLiBIaWVyIGsmYW1wO291bWw7bm5lbiBTaWUgSWhyZW4gTmFtZW4gZWluZ2ViZW4uIERpZXNlIHdpcmQgaW4gZGVyIGdlbmVyaWVydGVuIEVtYWlsIGltIEZlbGQgTmFtZSAoQWJzZW5kZXJuYW1lKTogYW5nZWdlYmVuLjwvbGk+DQoNCjwvdWw+PC9saT4NCg0KPGxpPktvbnRyb2xsZmVsZGVyIGYmdXVtbDtyIGRpZSBBbnplaWdlPHVsPg0KPGxpPlNlaXRlbnVtYnJ1Y2ggLSBkYXMgZXJtJm91bWw7Z2xpY2h0IElobmVuIGRpZSBBdWZ0ZWlsdW5nIElocmVzIEZlZWRiYWNrLUZvcm11bGFycyBpbiBtZWhyZXJlIFNlaXRlbi4gRGllIEVpbmdhYmVuIGplZGVyIFNlaXRlIHdlcmRlbg0KdW5hYmgmYXVtbDtuZ2lnIHZvbmVpbmFuZGVyIGdlcHImdXVtbDtmdC4gRGFzIGlzdCBpbnNiZXNvbmRlcmUgYmVpIE9ubGluZS1VbWZyYWdlbiAmYXVtbDt1JnN6bGlnO2Vyc3Qgdm9ydGVpbGhhZnQuPC9saT4NCjxsaT4tU3RhdGlzY2hlciBUZXh0LiBEYW1pdCBrJm91bWw7bm5lbiBTaWUgSWhyZW0gRm9ybXVsYXIgZWluZmFjaGVuIFRleHQgaGluenVmJnV1bWw7Z2VuIG9kZXIgZXMgYmVzY2hyaWZ0ZW4uIERpZXMgaXN0IGYmdXVtbDtyIEF1c2YmdXVtbDtsbGhpbndlaXNlLCBIaWxmZW4gdXN3LiBzZWhyIG4mdXVtbDt0emxpY2gsIGluc2Jlc29uZGVyZSB3ZW5uIFNpZSBmJnV1bWw7ciBkaWUgQW56ZWlnZSBkZXMgRm9ybXVsYXJzIGtlaW4gYW5nZXBhc3N0ZXMgVGVtcGxhdGUgdmVyd2VuZGVuLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtdWxhciAmIzAzOTtIYW5kbGluZyYjMDM5Ow0KICA8dWw+DQogICAgPGxpPipFbWFpbCBFcmdlYm5pcyBiYXNpZXJlbmQgYXVmIGRlbSBQdWxsZG93bi4gRGllcyBpc3QgaGlsZnJlaWNoIGYmYW1wO3V1bWw7ciBJbnRlcm5ldHNlaXRlbiB3byBLb21tZW50YXJlICZhbXA7dXVtbDtiZXIgZGllIEFuZ2VsZWdlbmhlaXQgaW4gZGVuIEJldHJlZmYgZ2VzY2hyaWViZW4gd2VyZGVuLiB6LkIuIEJ1Z3Mgd2VyZGVuIHp1bSBFbnR3aWNrbGVyIGdlc2VuZGV0LCBNYXJrZXRpbmcgRnJhZ2VuIHp1IGVpbmVyIFBlcnNvbiwgRnJhZ2VuIHp1bSBWZXJrYXVmIHp1IGVpbmVyIGFuZGVyZW4gUGVzb24gdXN3LiBEYXMgUHVsbGRvd24gTWVuJmFtcDt1dW1sOyB3aXJkIG1pdCBCZXRyZWZmcyBoaW50ZXJsZWd0IHVuZCBqZWRlciB3aXJkIHp1IGVpbmVyIHNwZXppZmlzY2hlbiBNYWlsYWRyZXNzZSB2ZXJzYW5kdC4gU2llIGVyc3RlbGxlbiBkZW4gamV3ZWlsaWdlbiBCZXRyZWZmIHdlbm4gU2llIGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuIG9kZXIgZWRpdGllcmVuLiBXZW5uIFNpZSBlaW4gc29sY2hlcyBQdWxsZG93biBNZW4mYW1wO3V1bWw7IGJlbnV0emVuLCBtdXNzIGRlciBOdXR6ZXIgZWluZSBBdXN3YWhsIGRlcyBCZXRyZWZmcyB3JmFtcDthdW1sO2hsZW4gdW0gZGFzIEZvcm11bGFyIGFic2NoaWNrZW4genUgayZhbXA7b3VtbDtubmVuLiBEaWVzZXMgQXVzd2FobGZlbGQgaXN0IGYmYW1wO3V1bWw7ciBkZW4gTnV0emVyIHNpY2h0YmFyIGFiZXIgZGllIE1haWxhZHJlc3NlbiBkaWUgZGFoaW50ZXIgc3RlaGVuIHdlcmRlbiB3ZWRlciBJaG0gbm9jaCBpbSBIVE1MIGFuZ2V6ZWlndC48L2xpPg0KDQogICAgPGxpPipFbWFpbCBFcmdiZW5pcyBhbiBBZHJlc3NlKG4pIHNlbmRlbi4gRGllcyBzZW5kZXQgZGllIERhdGVuIGFuIGVpbmUgdm9yaGVyIGFuZ2VnZWJlbmUgTWFpbGFkcmVzc2UuIERpZSBNYWlsYWRyZXNzZShuKSBrJmFtcDtvdW1sO25uZW4gU2llIGFuZ2ViZW4gd2VubiBTaWUgZWluIHNvbGNoZXMgRmVsZCBnZW5lcmllcmVuLiBEYXMgRmVsZCB1bmQgZGVyIE5hbWUgaXN0IGYmYW1wO3V1bWw7ciBkZW4gTnV0emVyIG5pY2h0IHNpY2h0YmFyLiBBdWNoIG5pY2h0IGltIFF1ZWxsdGV4dC48L2xpPg0KICAgIDxsaT4qRGF0ZW4gaW4gRGF0ZW5iYW5rIHNwZWljaGVybi4gRGllcyBzcGVpY2hlcnQgZGllIGFiZ2VnZWJlbmVuIERhdGVuIGluIGVpbmVyIGludGVybmVuIERhdGVuYmFuay4gRGllc2UgRWluc3RlbGx1bmcgdmVyd2VuZGVuIFNpZSBtZWlzdGVuIGluIFZlcmJpbmR1bmcgbWl0IGRlbSBNb2R1bCBGb3JtQnJvd3Nlci48L2xpPg0KICAgIDxsaT4qVmFsaWRpZXJ1bmcgJmFtcDt1dW1sO2JlciBkaWUgTWFpbGFkcmVzc2UuIERpZXMgaXN0IGVpbiBzZWhyIGxlaXN0dW5nc2YmYW1wO2F1bWw7aGlnZXMgRmVsZC4gRXMgc3RlbGx0IGRlbSBCZW51dHplciBlaW4gdm9yZ2VnZWJlbmVzIEVpbmdhYmVmZWxkIGYmYW1wO3V1bWw7ciBzZWluZSBNYWlsYWRyZXNzZSB6dXIgVmVyZiZhbXA7dXVtbDtndW5nLiBXZW5uIGRpZXNlciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0IHdpcmQgZGllICZhbXA7VXVtbDtiZXJtaXR0bHVuZyBuaWNodCBkaXJla3QgYXVzZ2VmJmFtcDt1dW1sO2hydCwgc29uZGVybiBzY2hpY2t0IGRlbSBOdXR6ZXIgZWluZSBNYWlsIG1pdCBlaW5lbSBjb2RpZXJ0ZW4gTGluay4gRXJzdCB3ZW5uIGRpZXNlciBMaW5rIGdlZHImYW1wO3V1bWw7Y2t0IHdpcmQgd2lyZCBkYXMgRm9ybXVsYXIgdmFsaWRpZXJ0IHVuZCBkaWUgRWluZ2FiZW4gYWJnZXNjaGlja3QuPC9saT4NCiAgICA8bGk+KkluIERhdGVpIFNjaHJlaWJlbi4gRGllc2UgT3B0aW9uIGdyZWlmdCBkaWUgRGF0ZW4gYWIgdW5kIHNjaHJlaWJ0IHNpZSBpbiBlaW5lIFRleHRkYXRlaS4gU2llIGsmYW1wO291bWw7bm5lbiBkZW4gTmFtZW4gdW5kIGRhcyBEYXRlaWZvcm1hdCBiZXN0aW1tZW4uIERpZXNlIERhdGVpZW4gd2VyZGVuIGluIGRhcyBBdXNnYWJldmVyemVpY2huaXMgZGVzIE1vZHVsIEluc3RhbGxhdGlvbnMgVmVyemVpY2huaXNzZXMgZ2VzY2hyaWViZW4uIFZvcnJhdXNnZXNldHp0IGlzdCwgZGFzcyBkZXIgU2VydmVyIGRpZSBub3R3ZW5kaWdlbiBTY2hyZWlicmVjaHRlIHZlcmdlYmVuIGhhdC4NCiAgICA8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+VGVtcGxhdGVzIGYmdXVtbDtyIEVtYWlsIHVuZCBlaW5mYWNoZSBEYXRlaWVuIDwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gV2VubiBTaWUgc2VsYnN0IGtlaW4gVGVtcGxhdGUgZXJzdGVsbGVuIHdvbGxlbiwgd2lyZCBGb3JtQnVpbGRlciBkaWUgbmFjaCBzZWluZXIgRWluc2NoJmF1bWw7dHp1bmcgYmVzdGUgTCZvdW1sO3N1bmcgdmVyd2VuZGVuLCBkaWUgc28gZnVua3Rpb25pZXJ0LCB3aWUgU2llIHdvbGxlbiBvZGVyIGF1Y2ggbmljaHQuIFNpZSBrJm91bWw7bm5lbiBqZWRlcnplaXQgYXVmICZxdW90O0VpbiBNdXN0ZXItVGVtcGxhdGUgZXJzdGVsbGVuJnF1b3Q7IGtsaWNrZW4gdW5kIGRhbm4gZGllIEVyZ2Vibmlzc2UgYW5wYXNzZW4uPC9wPg0KPHA+QmVhY2h0ZW4gU2llLCBkYXNzIG5ldSBoaW56dWdlZiZ1dW1sO2d0ZSBGZWxkZXIgbmljaHQgbWVociBhdXRvbWF0aXNjaCBkZW0gVGVtcGxhdGUgaGluenVnZWYmdXVtbDtndCB3ZXJkZW4sIHdlbm4gZXMgZWlubWFsIGdlJmF1bWw7bmRlcnQgd3VyZGUuIEF1cyBkaWVzZW0gR3J1bmQgaXN0IGVzIGRhcyBCZXN0ZSwgd2VubiBTaWUgZXJzdCB6dW0gU2NobHVzcyBkYXMgVGVtcGxhdGUgZiZ1dW1sO3IgZGFzIEZvcm11bGFyIGVyc3RlbGxlbi48L3A+DQoNCjxoMz5CZWthbm50ZSBQcm9ibGVtZTwvaDM+DQo8dWw+DQo8bGk+RWluaWdlIEZlbGR0eXBlbiwgZGllIGltIEZlZWRiYWNrRm9ybS1Nb2R1bCBlbnRoYWx0ZW4gd2FyZW4sIHNpbmQgaW4gRm9ybUJ1aWxkZXIgbmljaHQgaW1wbGVtZW50aWVydC4gV2VubiBlaW4gQmVkYXJmIGYmdXVtbDtyIGRpZXNlIEZlbGRlciB2b3JoYW5kZW4gaXN0LCB3ZXJkZSBpY2ggc2llIGhpbnp1Z2VmJnV1bWw7Z2VuLjwvbGk+DQo8bGk+RGFzIEZvcm1CdWlsZGVyLU1vZHVsIGthbm4gZ2VnZW53JmF1bWw7cnRpZyBub2NoIG5pY2h0IGF1ZiBkaWUgRGF0ZW4gZGVzIEZyb250ZW5kVXNlcnMtTW9kdWxzIHp1Z3JlaWZlbi4gRGllcyBpc3QgYWJlciBnZXBsYW50LjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgdW50ZXJzdCZ1dW1sO3R6dCBnZWdlbncmYXVtbDtydGlnIG5vY2gga2VpbmUgUHJldHR5IFVSTHMsIGRpZXMgc29sbHRlIGplZG9jaCBrZWluIFByb2JsZW0gc2VpbiwgZGEgZGllIEF1c2dhYmVuIEJlbnV0emVyc2VpdGUgc2VociBlaW5mYWNoIGdlaGFsdGVuIGlzdC48L2xpPg0KPC91bD4NCg0KPGgzPkZlaGxlcnN1Y2hlPC9oMz4NCjxvbD48bGk+IEFscyBlcnN0ZXMgc29sbHRlbiBTaWUgcHImdXVtbDtmZW4sIG9iIFNpZSBDTVNtcyBpbiBlaW5lciBWZXJzaW9uID4gMS4wIHZlcndlbmRlbi48L2xpPg0KPGxpPiBJbSB6d2VpdGVuIFNjaHJpdHQgc29sbHRlbiBTaWUgZGllIFByb2JsZW1lIGJlaSBkZXIgVmVyd2VuZHVuZyB2b24gV1lTSVdZRy1FZGl0b3JlbiBpbSBBYnNjaG5pdHQNCiA8ZW0+RWluIEZvcm11bGFyIGVpbmVyIFNlaXRlIGhpbnp1ZiZ1dW1sO2dlbjwvZW0+IGxlc2VuIHVuZCB2ZXJzdGVoZW4uPC9saT4NCjxsaT5XZW5uIFNpZSBpbiBlaW5lciB2b24gRm9ybUJ1aWxkZXIgZ2VuZXJpZXJ0ZW4gRW1haWwgYmVzdGltbXRlIEZlbGRlciB2ZXJtaXNzZW4sICZ1dW1sO2JlcnByJnV1bWw7ZmVuIFNpZSwgb2IgZGllIEZlbGRlciBpbSBUZW1wbGF0ZSBlbnRoYWx0ZW4gc2luZCwgdW5kIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBTaWUgZGllIGZlaGxlbmRlbiBGZWxkZXIgYXVjaCB0YXRzJmF1bWw7Y2hsaWNoIGRlZmluaWVydCBoYWJlbi4gQXVjaCB3ZW5uIGVzIG5pY2h0IGtsYXIgZXJzaWNodGxpY2ggc2NoZWludCwga2FubiBlcyBkdXJjaGF1cyBudXIgZWluIGdhbnogZWluZmFjaGVyIEZlaGxlciBzZWluLjwvbGk+DQo8bGk+IFZlcnN1Y2hlbiBTaWUsIGF1ZiBMaW5rcyB1bmQgSWNvbnMgenUga2xpY2tlbiB1bmQgYmVvYmFjaHRlbiBnZW5hdSwgd2FzIHBhc3NpZXJ0LjwvbGk+DQo8bGk+IERpZSBsZXR6dGUgTSZvdW1sO2dsaWNoa2VpdCBpc3QsIG1pciBkYXMgUHJvYmxlbSBwZXIgRW1haWwgbWl0enV0ZWlsZW4gb2RlciBtaWNoIGltIElSQy1DaGF0IGFuenVzcHJlY2hlbiwgZGFtaXQgd2lyIGRhcyBQcm9ibGVtIGdlbWVpbnNhbSBiZWhlYmVuLjwvbGk+DQo8L29sPiANCjxwPkRpZXMgaXN0IGVpbmUgc2VociBmciZ1dW1sO2hlIFZlcnNpb24sIGVpbiB1bmdldGVzdGV0ZXMgQmV0YS1SZWxlYXNlLCB1bmQgc2VociB3YWhyc2NoZWlubGljaCBpc3QgZXMgZmVobGVyaGFmdC4gT2J3b2hsIGljaCBhbGxlcyBnZXRhbiBoYWJlLCB3YXMgaWNoIGtvbm50ZSwgDQp1bSBzaWNoZXJ6dXN0ZWxsZW4sIGRhc3Mgc2ljaCBrZWluZSBnciZvdW1sOyZzemxpZztlcmVuIFwmcXVvdDtXYW56ZW5cJnF1b3Q7IGVpbmdlc2NobGljaGVuIGhhYmVuLCBtdXNzdGUgaWNoIHcmYXVtbDtocmVuZCBkZXMgVGVzdGVucyBmZXN0c3RlbGxlbiwgZGFzcyBkYXMgUHJvZ3JhbW0gDQpzaWViZW4gS2FrZXJsYWtlbiwgendlaSBPaHJ3JnV1bWw7cm1lciwgZWluZSBrbGVpbmUgRmFtaWxpZSB2b24gQmxhdHRsJmF1bWw7dXNlbiB1bmQgZWluZSBXYW5kZXJzdGFiaGV1c2NocmVja2UgZW50aGllbHQuIFNpZSBmcmEmc3psaWc7ZW4gYXVjaA0KTmFjaGJhcnMgYiZvdW1sO3NlbiBrbGVpbmVuIGtsJmF1bWw7ZmZlbmRlbiBIdW5kLCB3b2YmdXVtbDtyIGljaCB1bmVuZGxpY2ggZGFua2JhciB3YXIuPC9wPg0KPHA+RGFzIGZpbmFsZSBSZWxlYXNlIHdpcmQgQnVnZml4ZXMsIGVpbmUgRG9rdW1lbnRhdGlvbiB1bmQgdW5iZWRpbmd0ZSBMaWViZSBlbnRoYWx0ZW4uPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+RGllc2VzIE1vZHVsIGJlaW5oYWx0ZXQga2VpbmVuIGtvbW1lcnppZWxsZW4gU3VwcG9ydC4gU2llIGsmb3VtbDtubmVuIGplZG9jaCAmdXVtbDtiZXIgZGllIGZvbGdlbmRlIFdlZ2UgSGlsZmUgenUgZGVtIE1vZHVsIGVyaGFsdGVuOjwvcD4NCjx1bD4NCjxsaT5GJnV1bWw7ciBkaWUgbGV0enRlIFZlcnNpb24gZGllc2VzIE1vZHVscywgRkFRcywgZGVtIFZlcnNhbmQgZWluZXMgRmVobGVycmVwb3J0cyBvZGVyIGRlbSBLYXVmIGtvbW1lcnppZWxsZW4gU3VwcG9ydCBiZXN1Y2hlbiBzaWUgYml0dGUgY2FsZ3V5cyBIb21lcGFnZSB1bnRlciA8YSBocmVmPSZxdW90O2h0dHA6Ly90ZWNoY29tLmR5bmRucy5vcmcmcXVvdDs+dGVjaGNvbS5keW5kbnMub3JnPC9hPi48L2xpPg0KPGxpPkVpbmUgd2VpdGVyZSBEaXNrdXNzaW9uIHp1IGRpZXNlbSBNb2R1bCBpc3QgYXVjaCBpbiBkZW4gRm9yZW4gdm9uIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZTwvYT4genUgZmluZGVuLjwvbGk+DQo8bGk+RGVyIEF1dG9yIGNhbGd1eTEwMDAsIGlzdCBoJmF1bWw7dWZpZyBpbSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkxldHp0bGljaCBlcnJlaWNoZW4gU2llIGRlbiBBdXRvciBhdWNoICZ1dW1sO2JlciBlaW5lIGRpcmVrdGUgRW1haWwuPC9saT4gIA0KPC91bD4NCjxwPk5hY2ggZGVyIEdQTCB3aXJkIGRpZXNlIFNvZnR3YXJlIHNvIHZlciZvdW1sO2ZmZW50bGljaHQsIHdpZSBzaWUgaXN0LiBCaXR0ZSBsZXNlbiBTaWUgZGVuIExpemVuenRleHQgZiZ1dW1sO3IgZGVuIHZvbGxlbiBIYWZ0dW5nc2F1c3NjaGx1c3MuPC9wPg0KPGgzPkNvcHlyaWdodCB1bmQgTGl6ZW56PC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGxlIFJlY2h0ZSB2b3JiZWhhbHRlbi48L3A+DQo8cD5EaWVzZXMgTW9kdWwgd3VyZGUgdW50ZXIgZGVyIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4gdmVyJm91bWw7ZmZlbnRsaWNodC4gU2llIG0mdXVtbDtzc2VuIGRpZXNlciBMaXplbnogenVzdGltbWVuLCBiZXZvciBTaWUgZGFzIE1vZHVsIHZlcndlbmRlbi48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICANCiAgICAgICAgICAgICAgICAgICA8dWw+DQoJCSAgICA8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCgkJJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE2MDQ3NzIxOC4xOS45LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My42NjQ3MzgyNDcuMTE1NjE2NTc4OS4xMTYxNzY4Mzk4LjExNjE5NTg3NDMuMjknOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/et_EE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1Zvcm1pIEVoaXRhamEnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWJmF1bWw7bGphIFQmdXVtbDsmdXVtbDtwIE0mYXVtbDsmYXVtbDtyYW1hdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGlzaXNlbmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RpdiZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0xpbm51a2UnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdMaW5udWtlc3RlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVVNBIE9zYXJpaWtpZGUgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdSaWlnaSBWYWxpayc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0t1dXAmYXVtbDtldmEgVmFsaWsnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWFkaW9udXBwdWRlIEdydXBwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypTYWFkYSB0dWxlbXVzZWQgRS1tYWlsaWdhIFZhbGlrbWVuJnV1bWw7JnV1bWw7IHAmb3RpbGRlO2hqYWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNhYWRhIHR1bGVtdXNlZCBFLW1haWxpZ2EgQWFkcmVzc2koZGUpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkZWVyaSBFLW1haWxpIHRlZWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2FsdmVzdGEgdHVsZW11c2VkIEZhaWxpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTYWx2ZXN0YSB0dWxlbXVzZWQgQW5kbWViYWFzaSc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUomYXVtbDtyZ21pbmUgbGVodCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZhaWxpICZVdW1sO2xlc2xhYWRpbWluZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyBWJmF1bWw7bGknOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFLW1haWxpICZxdW90O0tlbGxlbHQmcXVvdDsgViZhdW1sO2xpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YWF0aWxpbmUgdGVrc3QnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnRWkgdmFsaWRlZXJpdGEnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnQXJ2JzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ1QmYXVtbDtpc2Fydic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxpIEFhZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTGlubnVrZSBOJm90aWxkZTt1dHVkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BhbHVuIHQmYXVtbDtpZGEgbGFodGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IGFydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQYWx1biB0JmF1bWw7aWRhIGxhaHRlciAmcXVvdDslcyZxdW90OyBrb3JyZWt0c2VsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BhbHVuIHNpc2VzdGEgbGFodHJpc3NlICZxdW90OyVzJnF1b3Q7IHQmYXVtbDtpc2Fydic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQYWx1biBzaXNlc3RhIGxhaHRyaXNzZSAmcXVvdDslcyZxdW90OyBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVpIG9sZSBrb3JyZWt0bmUgZS1tYWlsaSBhYWRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUGFsdW4gc2lzZXN0YSB2JmF1bWw7JmF1bWw7cnR1cywgbWlzIGVpIG9sZSBwaWtlbSBrdWkgJXMgdCZhdW1sO2hlbSZhdW1sO3JraSc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1QmYXVtbDtoZW0mYXVtbDtyaywgbWlkYSBrYXN1dGFqYSBlcmFsZGFqYW5hIHR1bGVtdXN0ZXMsIG1pbGxlcyBvbiByb2hrZW0ga3VpICZ1dW1sO2tzIHYmYXVtbDsmYXVtbDtydHVzJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTZWxsZSBmdW5rdHNpb29uaSBqYW9rcyBvbiBzdWwgdmFqYSAmcXVvdDslcyZxdW90OyAmb3RpbGRlO2lndXNpJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVmFiYW5kdXN0ISBTZWxsZWxlIHNla3RzaW9vbmlsZSBsaWdpIHAmYXVtbDsmYXVtbDtzZW1pc2VrcyBlaSBvbGUgc3VsIHBpaXNhdmFsdCAmb3RpbGRlO2lndXNpLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnViZhdW1sO2xqYWRlIGomYXVtbDtyamVrb3JkIHV1ZW5kYXR1ZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnVm9ybSBrdXN0dXRhdHVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnViZhdW1sO2xpIGt1c3R1dGF0dWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRzaW9vbiBVdWVuZGF0dWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnSiZhdW1sO3RrYW1pc2VrcyBwZWFkIHRlZ2VtYSBsaW5udWtlc2UgJnF1b3Q7JXMmcXVvdDsga2FzdGkuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTYSBwZWFkIHNpc2VzdGFtYSB2JmF1bWw7aGVtYWx0ICZ1dW1sO2hlIHNpaHRhYWRyZXNzaSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnT2xlZCBraW5kZWwsIGV0IHNvb3ZpZCBrdXN0dXRhZGEgJXMgdm9ybWk/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdPbGVkIGtpbmRlbCwgZXQgc29vdmlkIGt1c3R1dGFkYSAlcyB2JmF1bWw7bGphPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMYWllbmRhdHVkIHNlYWRlZCBlaSBvbGUgc2FhZGF2YWwgbmlpa2F1YSwga3VuaSBwb2xlIG0mYXVtbDsmYXVtbDtyYXR1ZCB2JmF1bWw7bGphIHQmdXVtbDsmdXVtbDtwaS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdWJmF1bWw7bGphIG5pbWkgJnF1b3Q7JXMmcXVvdDsgb24ganViYSBrYXN1dHVzZWwuIFBhbHVuIGthc3V0YSB1bmlrYWFsc2VpZCB2JmF1bWw7bGphIG5pbWVzaWQuJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdQaWtrdXM6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMga2FzdGknOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbGlrdXQnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB0JmF1bWw7aGVtJmF1bWw7cmtpLic7CiRsYW5nWydvcmRlciddID0gJ0omYXVtbDtyamVrb3JkJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW20mYXVtbDsmYXVtbDtyYW1hdGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnbGlzYXR1ZCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAndXVlbmRhdHVkJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWYWxpICZVdW1sO2tzJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmFsaSBUJnV1bWw7JnV1bWw7cCc7CiRsYW5nWyd0byddID0gJ0tlbGxlbGUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3NhYWphZCc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIHNpaHRhYWRyZXNzaSc7CiRsYW5nWydzYXZlJ10gPSAnU2FsdmVzdGEnOwokbGFuZ1snYWRkJ10gPSAnTGlzYSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVdWVuZGEnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYWx2ZXN0YSBqYSBKJmF1bWw7dGthIFRvaW1ldGFtaXN0JzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRzaW9vbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWFhdG5lJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnVm9ybWlkJzsKJGxhbmdbJ2Zvcm0nXSA9ICclcyBWb3JtJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0c2lvb24nOwokbGFuZ1sndGFiX21haW4nXSA9ICdQZWFtaW5lJzsKJGxhbmdbJ3RhYl9hZGRpdGlvbmFsJ10gPSAnVm9ybWkgU2VhZGVkJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xhaWVuZGF0dWQgU2VhZGVkJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmVsaXAmb3RpbGRlO2hpc2UgSyZ1dW1sO2xqZW5kdXNlIFZhbGlrdWQnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTWFsbGlwJm90aWxkZTtoaXNlIEsmdXVtbDtsamVuZHVzZSBWYWxpa3VkJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWJmF1bWw7bGphICYjMDM5O2tvaHVzdHVzbGlrJiMwMzk7IHN0YWF0dXMgdXVlbmRhdHVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFN1dXJ1cyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0xhaWVuZHVzZWQnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0x1YmF0dWQgZmFpbGl0JnV1bWw7JnV1bWw7YmlkJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnJlV1bWw7bGVzIGxhZXR1ZCBmYWlsIG9uIGxpaWdhIHN1dXIhIE1ha3NpbWFhbG5lIHN1dXJ1cyBvbjonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdTZWRhIHQmdXVtbDsmdXVtbDtwaSBmYWlsaSBlaSBvbGUgbHViYXR1ZCAmdXVtbDtsZXMgbGFhZGlkYS4gUGFsdW4ga29udHJvbGxpLCBldCBmYWlsaSBsYWllbmQgb24ga29ycmVrdG5lLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vb2R1bCBlZW1hbGRhdHVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb29kdWxpIHZlcnNpb29uICVzIGluc3RhbGxlZXJpdHVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vb2R1bCB1dWVuZGF0dWQgdmVyc2lvb25pbGUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RhZ2FzaS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2FhZGEgVm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKJmF1bWw7dGthLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdNJmF1bWw7cmdpdHVkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ00mYXVtbDtya2ltYXRhJzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTGlzYSBWZWVsIFZhbGlrdWlkJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIFZhbGlrdWQnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMaXNhIFZlZWwgTGlubnVrZXNpJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnS3VzdHV0YSBNJmF1bWw7cmdpdHVkIExpbm51a2VzZWQnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMaXNhIFZlZWwgJlV1bWw7a3MgQWFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0t1c3R1dGEgTSZhdW1sO3JnaXR1ZCBBYWRyZXNzaWQnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGlzYSBTaWh0YWFkcmVzcyc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdLdXN0dXRhIE0mYXVtbDtyZ2l0dWQgU2lodGFhZHJlc3NpZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbWFhbG5lIFBpa2t1cyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ1ZhbGlrdSBwZWFsa2lyaSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JnaXR1bmEnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMgbSZhdW1sO3JraW1hdGEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0xpbm51a2VzdGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnS3VzdHV0YT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmFsaSAmVXVtbDtrcyZxdW90OyBUZWtzdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1ZhbGlrdSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdBbGduZSBWYWxpayc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0FsZ25lIFZhbGlrJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsaWt1IE5pbWknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnViZhdW1sOyZhdW1sO3J0dXMnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1ZhbGlrbWVuJnV1bWw7JnV1bWw7IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpdmFsaWt1IFZhbGlrdWQnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ1NpaHRhYWRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ0UtbWFpbGkgJnF1b3Q7S2VsbGVsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0thc3V0YSBsJm90aWxkZTt0dmEgZS1tYWlsaSB2YWxpZGVlcmltaXN0IChudC4sIGx1YmEgJnF1b3Q7eEB5JnF1b3Q7IHNlbGxlIGFzZW1lbCwgZXQgbiZvdGlsZGU7dWRhICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJ0UtbWFpbGkgJnF1b3Q7QWFkcmVzc2lsdCZxdW90OyB2JmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLW1haWxpIGtvZGVlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnVmFsaWttZW4mdXVtbDsmdXVtbDsgcCZvdGlsZGU7aGlzZSBFLW1haWxlcmkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmFpbGluaW1pJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFLW1haWxpIFRlZW1hJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ1Zvcm1pIE5pbWknOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdWb3JtaSBTdGFhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnVmFsbWlzIGF2YWxkYW1pc2Vrcyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnRWkgb2xlIHZhbG1pcyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnTGVodCwga3VodSBzdXVuYXRhIHBlYWxlIHZvcm1pIHNhYXRtaXN0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQYWx1biBsaXNhIHZvcm1pbGUgdiZhdW1sO2xpLCBldCBrYXN1dGFqYSBzaXNlc3R1c2kgayZhdW1sO3NpdGxldGFrcy4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdrYXN1dGEgc2VkYSBvdHNldGVlZCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnVm9ybWkgQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdWb3JtaSBWJmF1bWw7bGphZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnViZhdW1sO2xqYSBOaW1pJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhYWRpb251cHB1ZGUgR3J1cGkgRGV0YWlsaWQnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1YmYXVtbDtsamEgVCZ1dW1sOyZ1dW1sO3AnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2xvb21ha3Mgdm9ybWkgayZhdW1sO3NpdGxlbWlzZSB2JmF1bWw7bGkuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xpc2EgVXVzIFZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnTiZhdW1sO2l0YSBWb3JtaSBFaGl0YWphIFZlcnNpb29uaT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdTZWUgc2lzYWxkYWIgc2ludSBWb3JtaSBFaGl0YWphIGluc3RhbGxlZXJpdHVkIHZlcnNpb29uaSBrb21tZW50YWFyaWRlcywgZXQgYWlkYXRhIHZpZ2FkZSBvdHNpbWlzZWwuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMaXNhIFV1cyBWJmF1bWw7bGknOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVm9ybWkgU2FhdG1pc251cHUgVGVrc3QnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0omYXVtbDtyZ21pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1Zvcm1pICZxdW90O0VlbG1pbmUmcXVvdDsgLSBudXB1IHRla3N0IChrYXN1dGF0YWtzZSBtaXRtZWxlaGVrJnV1bWw7bGplbGlzZSB2b3JtaSBwdWh1bCknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1YmYXVtbDtsamEgVmFsaWRlZXJtaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnVm9ybWkgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ1YmYXVtbDtsamEgQ1NTIGtsYXNzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnUyZ1dW1sO21ib2wsIG1pbGxlZ2EgbSZhdW1sO3JraWRhIGtvaHVzdHVzbGlrdWQgdiZhdW1sO2xqYWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdLb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVCZhdW1sO2l0bWluZSBrb2h1c3R1c2xpayc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnUGVpZGEgUGVhbGtpcmknOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnUGVpZGEgdiZhdW1sO2xqYSBuaW1pIHZvcm1pbCc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnS3V2YXRhdiBzdGFhdGlsaW5lIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRlZXJpbWlzZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnS3V2YXRhdiByaWRhZGUgYXJ2JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdQdXVkdWInOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdMZWhrdCwgbWlsbGVsZSBzdXVuYXRhIHAmYXVtbDtyYXN0IG4mb3RpbGRlO3Vzb2xla3Uga2lubml0YW1pc3QuJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdLb2h1c3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnViZhdW1sO2xqYSBUaWl0bGkgQXN1a29odCAobWl0dGUtQ1NTIGsmdXVtbDtsamVuZHVzZSBwdWh1bCknOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnXSA9ICdUaWl0ZWwgVmFzYWt1bCc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfYWJvdmUnXSA9ICdUaWl0ZWwgJlV1bWw7bGV2YWwnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdQZWlkYSBWZWFkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdWb3JtaSBLdXZhbWlzZSBWaWlzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICcmQXVtbDtyYSBuJmF1bWw7aXRhIGthc3V0YWphdGVsZSB2ZWF0ZWF0ZWlkJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1tYWlsaSBNYWxsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3NpbWFhbG5lICZ1dW1sO2xlc2xhZXRhdmEgZmFpbGkgc3V1cnVzIChraWxvYmFpdGlkZXMpJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnTHViYXR1ZCBMYWllbmR1c2VkJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTaXNlc3RhIGtvbWFkZWdhIGVyYWxkYXR1ZCBuaW1la2lyaSwgaiZhdW1sO3RhIHYmYXVtbDtsamEgcHVua3RpZCAobi50LiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gVCZ1dW1sO2hpa3VpZCBpZ25vcmVlcml0YWtzZS4gSiZhdW1sO3R0ZXMgc2VsbGUgdiZhdW1sO2xqYSB0JnV1bWw7aGpha3MgZWkga2VodGkgJnV1bWw7aHRlZ2kgcGlpcmFuZ3V0Lic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnTiZhdW1sO2l0YSBwaWlyYW5ndWlkPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1Zvcm1pIFZhYXRlIGphb2tzIGthc3V0YXRhdiBNYWxsJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnTGVodDogJXMga29ra3UgbGVodGk6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWJmF1bWw7bGphbCBlaSBvbGUgbGFpZW5kYXR1ZCBzZWFkZWlkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUJmF1bWw7aXRtYXRhIHYmYXVtbDtsamFkZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1ZCB2b3JtaWRlIGVoaXRhbWlzZWw/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTHViYSBrYXN1dGFkYSBLaWlydmFsaWt1aWQ/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdLaWlydmFsaWsnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnTWFsbGkgTXV1dHVqYWQnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdTYWFkZXR1ZCc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU2ludSBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnTXV1dHVqYSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdWYXN0YXYgViZhdW1sO2xpJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0xvbyBOJmF1bWw7aWRpc21hbGwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMb28gTiZhdW1sO2lkaXNwJmF1bWw7aXMnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdLYXN1dGEgdGVrc3RpdiZhdW1sO2xqYWwgV1lTSVdZRy10b2ltZXRhamF0Pyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmVsL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdBaW51bHQgQ1NTJzsKJGxhbmdbJ2Rpc3B0eXBlX3RlbXBsYXRlJ10gPSAnTWFsbCc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYWFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdWZWVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTSZhdW1sO3J0cyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWxsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1dW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1dWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9vYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV0c2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24NCic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy4gWW91IGFsc28gc2VsZWN0IHRoZSBkaXNwbGF5IHR5cGUuIFlvdXIgY2hvaWNlcyBhcmU6PC9wPg0KPHVsPg0KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbiYjMDM5O3Qga25vdyB3aGF0IHRvIGNob29zZSwgdGhpcyBpcyB0aGUgZWFzaWVzdCBvcHRpb24sIGFuZCB3aWxsIHByb2JhYmx5IGRvIG1vc3Qgb2Ygd2hhdCB5b3Ugd2FudC4gWW91IGNhbiBzdGlsbCB1c2UgQ1NTIHRvIHN0eWxlIHRoZSBmb3JtIGlmIHlvdSB3YW50LjwvbGk+DQo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiA8ZGl2PiB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4NCjxsaT5DdXN0b20gVGVtcGxhdGUuIEJhc2ljYWxseSwgeW91IGdldCBhIHNtYXJ0eSB0ZW1wbGF0ZSwgYSBidW5jaCBvZiB2YXJpYWJsZXMsIGFuZCB5b3UmIzAzOTtyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFNldHRpbmdzPC9oND4NCjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPg0KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UmIzAzOTtyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIDxsaT5WZXJzaW9vbiAwLjEgLSA4IEp1bHkgMjAwNi4gRXNtYW5lIHYmYXVtbDtsamFsYXNlPC9saT4NCgkJJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTUyNjMzMjA1My4xMTU3MTIxNjE4LjExNTc4OTY3NjMuMTE1ODE2MzIxMS43JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE1NzEyMTYxOC4xLjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYSBCeWdnZXInOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWx0IHR5cGUgaWtrZSBzYXR0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3QgaW5uc2tyaXZpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RvbXImYXJpbmc7ZGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQXZrcnlzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQXZrcnlzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ05lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdBbWVyaWthbnNrIHN0YXQgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZCB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvIHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlva25hcHAgZ3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCByZXN1bHRhdGVyIGJhc2VydCBwJmFyaW5nOyBuZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgcmVzdWx0YXRlciBmb3IgJmFyaW5nOyBzZXR0ZSBhZHJlc3NlKHIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGVyaW5nLW1lZC1lbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0ZXIgdGlsIGZsYXQgZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypMYWdyZSByZXN1bHRhdGVyIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkZXNraWZ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsIG9wcGxhc3RpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJhIG5hdm4mcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aXNrIHRla3N0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZhbGlkZXJpbmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlciAnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWwgYWRyZXNzZSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nOyBzamVra2VzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTYW1zdmFyZXIgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnU2Ftc3ZhcmVyIGlra2UgbWVkIHZhbmxpZyB1dHRyeWtrJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBldCB0YWxsIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWZW5ubGdpc3Qgc2tyaXYgaW5uIGVuIGludGVnZXIgdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gZ3lsZGlnIGVtYWlsIGFkcmVzc3cgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IHNlciBpa2tlIHV0IHRpbCAmYXJpbmc7IHYmYWVsaWc7cmUgZW4gZ3lsZGlnIGVtYWlsYWRyZXNzZSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1Zlbm5saWdzdCBvcHBnaSBlbiB2ZXJkaSBzb20gaWtrZSBlciBsZW5ncmUgZW5uICVzIGJva3N0YXZlcic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gJmFyaW5nOyBicnVrZSBzb20gYXZkZWxlciBpIHJlc3VsdGF0ZXIgc29tIGhhciBmbGVyZSB2ZWRpZXInOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0R1IHRyZW5nZXIgJnF1b3Q7JXMmcXVvdDsgcmV0dGlnaGV0ZW4gZm9yIGt1bm5lIHV0ZiZvc2xhc2g7cmUgZGVuIGhhbmRsaW5nZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnQmVrbGFnZXIhIER1IGhhciBpa2tlIG5vayByZXR0aWdoZXRlciBmb3IgJmFyaW5nOyBmJmFyaW5nOyBhZGdhbmcgdGlsIGRlbiBhdmRlbGluZ2VuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdCByZWtrZWYmb3NsYXNoO2xnZSBvcHBkYXRlcnQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ1NramVtYSBzbGV0dGV0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsdCBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXNqb24gb3BwZGF0ZXJ0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IG0mYXJpbmc7IGtyeXNzZSBhdiAmcXVvdDslcyZxdW90OyBmb3IgJmFyaW5nOyBmb3J0c2V0dGUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nOyBvcHBnaSBpIGRldCBtaW5zdGUgZW4gbSZhcmluZztsLWFkcmVzc2UhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIHNramVtYWV0ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuc2VydGUgdmFsZyBlciBpa2tlIHRpbGdqZW5nZWxpZyBmJm9zbGFzaDtyIGZlbHQtdHlwZSBoYXIgYmxpdHQgc2F0dC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGZWx0IG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWsuIFZlbm5saWdzdCBicnVrIHVuaWtlIGZlbHRuYXZuLic7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuZ2RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJva3Nlcic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGJva3N0YXZlcic7CiRsYW5nWydvcmRlciddID0gJ1Jla2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3VzcGVzaWZpc2VydF0nOwokbGFuZ1snYWRkZWQnXSA9ICdMYWd0IHRpbCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnT3BwZGF0ZXJ0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWZWxnIGVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmVsZyB0eXBlJzsKJGxhbmdbJ3RvJ10gPSAnVGlsJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWtlcmUnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBtJmFyaW5nO2wnOwokbGFuZ1snc2F2ZSddID0gJ0xhZ3JlJzsKJGxhbmdbJ2FkZCddID0gJ0xhZ2cgdGlsJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ09wcGRhdGVyJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnTGFncmUgb2cgZm9ydHNldHQgcmVkaWdlcmluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFzam9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2snOwokbGFuZ1snZm9ybXMnXSA9ICdTa2plbWEnOwokbGFuZ1snZm9ybSddID0gJ1NramVtYSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnSW5uc3RpbGxpbmcnOwokbGFuZ1sndGFiX21haW4nXSA9ICdIb3ZlZCc7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddID0gJ1NramVtYSB2ZXJkaWVyJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0F2YW5zZXJ0ZSB2ZXJkaWVyJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmVsbC1iYXNlcnQgbGF5b3V0IHZhbGcnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTWFsIGxheW91dCB2YWxnJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0IG4mb3NsYXNoO2R2ZW5kaWctc3RhdHVzIG9wcGRhdGVydCc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzLiBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRmlsZW5kZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0xvdmxpZ2UgZmlsdHlwZXInOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdPcHBsYXN0ZXQgZmlsIGVyIGZvciBzdG9yISBNYWtzaW11bSBzdCZvc2xhc2g7cnJlbHNlIGVyOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIHZpbCBpa2tlIGJsaSBvcHBsYXN0ZXQuIFZlbm5saWdzdCBzamVrayBhdCBmaWxlbmRlbHNlbiBlciBrb3JyZWt0Lic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2pvbiAlcyBpbnN0YWxsZXJ0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIG9wcGdyYWRlcnQgdGlsIHZlcnNqb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RpbGJha2UuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1NlbmQgc2tqZW1hJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0ZvcnRzZXR0Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdBdmtyeXNzZXQvc2pla2tldCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdJa2tlIGF2a3J5c3NldC91c2tqZWtrZXQnOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdMZWdnIHRpbCBmbGVyZSB2YWxnJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldHQgbWFya2VydGUgdmFsZyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0xlZ2cgdGlsIGZsZXJlIGF2a3J5c2luZ3Nib2tzZXInOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTbGV0dCBtYXJrZXJ0ZSBhdmtyeXNpbmdzYm9rc2VyJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnTGVnZyB0aWwgYW5uZW4gYWRyZXNzZSc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NsZXR0IG1hcmtlcnQgYWRyZXNzZSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdMZWdnIHRpbCBhbm5ldCBtJmFyaW5nO2wnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2xldHQgbWFya2VydGUgbSZhcmluZztsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWFrc2ltdW0gbGVuZ2RlJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQXZrcnlzaW5nc2Jva3MgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmVyZGkgbiZhcmluZztyIGF2a3J5c3NldCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWZXJkaSBuJmFyaW5nO3IgaWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnU2xldHQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1V0dmFsZyBlbW5lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFyZCB1dHZhbGcnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFyZCB1dHZhbGcnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdWYWxnIG5hdm4nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmVyZGkgc2VuZHQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ05lZHRyZWtrcyB2YWxnJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdGbGVydmFsZyB2YWxnJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdNJmFyaW5nO2wgZW1haWwgYWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcmEgbmF2biZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0JydWsgZW5rZWwgZW1haWwgdmVyaWZpc2VyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0JydWsgZW5rZWwgZW1haWwgYWRyZXNzZSB2ZXJpZmlzZXJpbmcgKGYuZWtzLiB0aWxsYXQgJnF1b3Q7eEB5JnF1b3Q7IGlzdGVkZXQgZm9yICZhcmluZzsga3JldmUgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJhIGFkcmVzc2UmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgdGVnbmtvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnTmVkdHJla2stYmFzZXJ0ZSBlbWFpbCBkZXRhbGplcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxuYXZuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBlbW5lIGxpbmplJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0ZyYSBuYXZuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU2tqZW1hIHN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0ZlcmRpZyBmb3IgYW52ZW5kZWxzZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnSWtrZSBmZXJkaWcnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpZGUgJmFyaW5nOyB2aWRlcmVzZW5kZSB0aWwgZXR0ZXIgc2tqZW1hIHNlbmR0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWZW5ubGlncyBsZWdnIHRpbCBldCBmZWx0IHRpbCBza2plbWFldCBzJmFyaW5nOyBicnVrZXJlbnMgaW5uc2tyaXZpbmcgYmxpciBiZWhhbmRsZXQuIER1IGthbiAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdicnVrIGRlbm5lIHNuYXJ2ZWllbic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnU2tqZW1hIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnU2tqZW1hIGZlbHRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmVsdCBuYXZuJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlva25hcHAgZ3J1cHBlIGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGZWx0IHR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2ZvciAmYXJpbmc7IGxhZ2UgZXQgc2tqZW1hIGhhbmRsaW5ncyBmZWx0JzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xlZ2cgdGlsIG55dHQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZpcyBza2plbWEgYnlnZ2VyIHZlcnNqb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGlubmthcHNsZSBkaXR0IHZlcnNqb25zbnVtbWVyIGZvciBTa2plbWEgYnlnZ2VyIG1vZHVsZW4gaSBlbiBrb21tZW50YXIsIGZvciAmYXJpbmc7IGhqZWxwZSBpIGZlaWxzJm9zbGFzaDtraW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMZWdnIHRpbCBueXR0IGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O1NlbmQmcXVvdDsgdGVrc3QgZm9yIGtuYXBwJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdTa2plbWEgJnF1b3Q7TmVzdGUmcXVvdDsgdGVrc3QgZm9yIGtuYXBwIChicnVrdCBwJmFyaW5nOyBmbGVyc2lkZXJzIHNramVtYWVyKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O0ZvcnJpZ2UmcXVvdDsgdGVza3QgZm9yIGtuYXBwIChicnVrdCBwJmFyaW5nOyBmbGVyc2lkZXJzIHNramVtYWVyKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmVsdCBzamVrayc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2UgZm9yIGRldHRlIHNramVtYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIGZvciAmYXJpbmc7IG1lcmtlIG4mb3NsYXNoO2R2ZW5kaWdlIGZlbHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdOJm9zbGFzaDtkdmVuZGlnJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdLcmV2IGVuIHJlc3BvbnMgZm9yIGRldHRlIGZlbHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1NranVsIGV0aWtldHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnU2tqdWwgZGV0dGUgZmVsdGV0cyBuYXZuIHAmYXJpbmc7IHNramVtYWV0JzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNrIHRla3N0ICZhcmluZzsgdmlzZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJyhSZWdleCkgc2pla2snOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FudGFsbCBsaW5qZXIgJmFyaW5nOyB2aXNlJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdJbmdlbiBzdGFuZGFyZCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NpZGUgJmFyaW5nOyB2aWRlcmVzZW5kZSB0aWwgZXR0ZXIgZ29ka2plbm5pbmcnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRlIHZhbmxpZ2UgdXR0cnlra2V0IHZpbCBiYXJlIGJsaSBicnVrdCBvbSAmcXVvdDt2YWxpZGVyaW5ncyB0eXBlJnF1b3Q7IGVyIHNhdHQgdGlsIHJlZ2V4LXJlbGF0ZXJ0IHZhbGcuIElua2x1ZGVyIGZ1bGwgUGVybC1zdGlsIHJlZ2V4LCBpbmtsdWRlcnQgc3RhcnQvc3RvcCBzbGFzaGVyIGdvIGZsYWdnIChmLmVrcy4gJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3Bvc2l0aW9uJ10gPSAnVGl0dGVsLWZlbHQgcG9zaXNqb24gKGt1biBmb3IgaWtrZS1DU1MgbGF5b3V0KSc7CiRsYW5nWyd0aXRsZV90YWJsZV9sYXlvdXRfbGVmdCddID0gJ1RpbCB2ZW5zdHJlIGZvciB0aXR0ZWwnOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2Fib3ZlJ10gPSAnT3ZlciBUaXR0ZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdTa2p1bCBmZWlsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdTa2plbWEgdmlzbmluZ3MgdHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnSGluZHJlIGZlaWxzJm9zbGFzaDtraW5nIC8gZmVpbC1tZWxkaW5nZXIgZnJhICZhcmluZzsgdmlzZXMgdGlsIGJydWtlcmVuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIG1hbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYWtzaW11bSBvcHBsYXN0aW5nIGZpbHN0Jm9zbGFzaDtycmVsc2UgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdHb2RramVudGUgZmlsZW5kZWxzZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1Nrcml2IGVuIGtvbW1hLXNlcGFyZXJ0IGxpc3RlLCB1dGVsYXR0IHB1bmt0dW1tZXQgKGYuZWtzLiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBNZWxsb21yb20gdmlsIGJsaSBpZ25vcmVydC4gTGEgZGV0dGUgdiZhZWxpZztyZSB0b210IHZpbCBzaSBpbmdlbiByZXN0cmlrc2pvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzIHJlc3RyaWtzam9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1ZpcyBzdCZvc2xhc2g7cnJlbHNlIGVsbGVyIGZpbGVuZGVsc2UtcmVzdHJpa3Nqb25lciBwJmFyaW5nOyBvcHBsYXN0aW5nc2ZlbHRldD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ01hbCAmYXJpbmc7IGJydWtlIGZvciAmYXJpbmc7IHZpc2Ugc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmVsdGV0IGhhciBpbmdlbiBhdmFuc2VydGUgdmFsZy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1Rla3N0ICZhcmluZzsgdmlzZSBmb3IgdXNwZXNpZmlzZXJ0ZSBmZWx0IHZlcmRpZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ011bGlnZ2omb3NsYXNoO3IgcmFzayBmZWx0LXRpbGxlZ2dpbmcgbWVkIG5lZHRyZWtrIGZvciBza2plbWFlcj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdNdWxpZ2dqJm9zbGFzaDtyIHJhc2sgZmVsdCB0aWxsZWdnaW5nPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnUmFzayBmZWx0IHRpbGxlZ2dlcic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXIgZm9yIG1hbCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGlubmxldmVyaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkcmVzc2UgdGlsIHBlcnNvbmVuIHNvbSBicnVrZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnTGluayB0aWwgc2lkZW4gc29tIGlubmVob2xkZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbmRyZSBmZWx0IHZpbCBibGkgdGlsZ2plbmxpZ2UgbiZhcmluZztyIGR1IGxlZ2dlciBkZW0gdGlsIHNramVtYWV0Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2UgPGEgaHJlZj0mIzAzOTtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJiMwMzk7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGVyaW5ncyBoamVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiZWwnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsdCByZXByZXNlbnRlcnQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFRpbGJha2UgdGlsIHNramVtYSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnTGFnIGVrc2VtcGVsIG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0xhZyBla3NlbXBlbCBvdmVyc2tyaWZ0JzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2V0IHRhYnVsYXRvciB0ZWduJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdNYWwgZm9yIGVuIGxpbmplIHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ01hbCBmb3Igb3ZlcnNrcmlmdGVuIHAmYXJpbmc7IHV0ZGF0YSBmaWxlbic7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnTGluayAmYXJpbmc7IGtsaWtrZSBmb3Igc2tqZW1hIGJla3JlZnRlbHNlJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdJbmdlbiBIVFRQX1JFRkVSRVIgaW5mb3JtYXNqb24gdGlsZ2plbmdlbGlnJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUGFyYW1ldGVyIGZlaWwuIFZlbm5saWdzdCBzamVrayBhdCBkdSBrb3BpZXJ0ZSBsaW5rZW4gZnJhIGRpbiBlbWFpbCBrb3JyZWt0ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFJlc3BvbnMgZmVpbC4gVmVubmxpZ3N0IHNqZWtrIGF0IGR1IGtvcGllcnRlIGxpbmtlbiBmcmEgZGluIGVtYWlsIGtvcnJla3QhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUmVzcG9ucyBmZWlsLiBJbmdlbiBlbWFpbC1zamVrayBmZWx0IGkgZGV0dGUgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0byBmb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdCcnVrZSBXWVNJV1lHIHJlZGlnZXJlciBmb3IgdGVrc3Qgb21yJmFyaW5nO2RldD8nOwokbGFuZ1snZGlzcHR5cGVfdGFibGUnXSA9ICdUYWJlbGwvQ1NTKHN0aWxzZXR0KSc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdSZW4gQ1NTKHN0aWxzZXR0KSc7CiRsYW5nWydkaXNwdHlwZV90ZW1wbGF0ZSddID0gJ1RpbHBhc3NldCBtYWwnOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnTGVnZyB0aWwsIHJlZGlnZXIgb2cgaCZhcmluZztuZHRlciBpbnRlcmFrdGl2ZSBza2plbWFlcic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnMnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsICc7CiRsYW5nWydkYXRlX21heSddID0gJ01haSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QgJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyICc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlciAnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0Rlc2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdCZWtsYWdlciEgRGV0IHNramVkZSBlbiBmZWlsIHVuZGVyIGJlaGFuZGxpbmcgYXYgZGluIHNramVtYSBpbm5zZW5kaW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdTa2plbWFCeWdnZXIgU2VuZCBmZWlsOiAlcyc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnT3BwbGFzdGluZy9WZWRsZWdnIGZlaWwgcCZhcmluZzsgZmlsICVzICh0ZW1wX25hdm46ICVzLCBhdiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaWwuIFVtdWxpZyAmYXJpbmc7IGVydmVydmUgbCZhcmluZztzIGZvciBmaWxlbi4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1NramVtYUJ5Z2dlciBzZW5kaW5nJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIG1hbCBlbm4mYXJpbmc7ICZhcmluZztpa2tlIHNhdHQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ1NramVtYUJ5Z2dlcjogS2FuIGlra2UgZmlubmUgbiZvc2xhc2g7ZHZlbmRpZyBtb2R1bCBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JydWtlciBnb2RramVudCBzZW5kaW5nICVzIGZyYSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3QnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFfQnlnZ2VyIHNramVtYSBibGlyIGlubmxldmVydC48L3A+DQo8aDQ+SVBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFNramVtYSBuYXZuZXQgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBEZW4gaW50ZXJuZSBTa2plbWEgaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG9tIGRldCBza2plciBlbiBmZWlsIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJsaXIgaW5ubGV2ZXJ0PC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFNramVtYSBuYXZuZXQgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBEZW4gaW50ZXJuZSBza2plbWEgaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gRW4gbGlzdGUgbWVkIGFsbGUga2plbnRlIGZlaWwgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+SGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxyaSB2aXN0PC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFNramVtYSBuYXZuZXQgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBEZW4gaW50ZXJuZSBza2plbWEgaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPkh1c2sgJmFyaW5nOyBzZXR0ZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcmV0dGlnaGV0ZXIgdGlsIGJydWtlcmUgc29tIHNrYWwgYWRtaW5pc3RyZXJlIHRpbGJha2VtZWxkaW5ncy1za2plbWFlci4gT2cgb20gZHUgdmlsIGVtYWlsZSBza2plbWEgcmVzdWx0YXRlciwgaHVzayAmYXJpbmc7IG9wcGRhdGVyIGlubnN0aWxsaW5nZW5lIHRpbHN0cmVra2VsaWcuPC9wPg0KPHA+ViZhZWxpZztyIG9wcG1lcmtzb20gcCZhcmluZzsgYXQgdGlsYmFrZW1lbGRpbmdzIHNramVtYWV0IGlra2Ugc2thbCB2JmFlbGlnO3JlIGFrdGl2dCAoZi5la3MuIHRpbGdqZW5nZWxpZyBmb3IgcHVibGlrdW0pIG4mYXJpbmc7ciBkdSBmb3J0c2F0dCByZWRpZ2VyZXIgc2tqZW1hZXQuIER1IGImb3NsYXNoO3IgbGFnZSBza2plbWFldCwgb2cgcGxhc3NlcmUgdGFnZ2VuIGkgZW4gYWt0aXYgaW5uaG9sZHNpZGUgYmFyZSBuJmFyaW5nO3IgZHUgZXIgZmVyZGlnIG1lZCAmYXJpbmc7IHJlZGlnZXJlLiBFbGxlcnMsIGthbiBmZWlsYWt0aWdlIHJlc3VsdGF0ZXIgYmxpIHJldHVybmVydC48L3A+DQo8cD5PYnMhIERlbm5lIHZlcnNqb25lbiBzdCZvc2xhc2g7dHRlciBpa2tlIHBhcmFsZWxsIHJlZGlnZXJpbmcgYXYgc2tqZW1hZXIuIFYmYWVsaWc7ciBzaWtrZXIgcCZhcmluZzsgYXQga3VuIGVuIGFkbWluICByZWRpZ2VyZXIgZXQgZ2l0dCBza2plbWEgcCZhcmluZzsgc2FtbWUgdGlkLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuDQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+DQo8dWw+DQo8bGk+VGFibGUvQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkIHVzaW5nIEhUTUwgdGFibGVzLiBJZiB5b3UgZG9uJiMwMzk7dCBrbm93IHdoYXQgdG8gY2hvb3NlLCB0aGlzIGlzIHRoZSBlYXNpZXN0IG9wdGlvbiwgYW5kIHdpbGwgcHJvYmFibHkgZG8gbW9zdCBvZiB3aGF0IHlvdSB3YW50LiBZb3UgY2FuIHN0aWxsIHVzZSBDU1MgdG8gc3R5bGUgdGhlIGZvcm0gaWYgeW91IHdhbnQuPC9saT4NCjxsaT5QdXJlIENTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCwgd2l0aCBhbGwgdGhlIGZpZWxkcyB3cmFwcGVkIGluIDxkaXY+IHRhZ3MuIFlvdSBjYW4gdGhlbiBzdHlsZSB0aGUgZm9ybSBhcyB5b3Ugc2VlIGZpdC48L2xpPg0KPGxpPkN1c3RvbSBUZW1wbGF0ZS4gQmFzaWNhbGx5LCB5b3UgZ2V0IGEgc21hcnR5IHRlbXBsYXRlLCBhIGJ1bmNoIG9mIHZhcmlhYmxlcywgYW5kIHlvdSYjMDM5O3JlIG9uIHlvdXIgb3duLiBZb3UgaGF2ZSB0aGUgcG93ZXIgdG8gY3JlYXRlIHdoYXRldmVyIHlvdSB3YW50LjwvbGk+DQo8L3VsPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU2V0dGluZ3M8L2g0Pg0KPHA+Rm9ybSBTZXR0aW5ncyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBhIGxvdCBvZiB0aGUgbWVzc2FnZXMgYW5kIHRleHQgaW4gdGhlIGNvbnRyb2xzIGZvciB5b3VyIGZvcm0uIEl0IGFsc28gYWxsb3dzIHlvdSB0byBwaWNrIGEgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxoND5UYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UYWJsZS1sYXlvdXRzIGhhdmUgZ290dGVuIHNpbXBsZXIsIHNvIHlvdXIgb25seSBvcHRpb24gaGVyZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG5hbWVzIHJlbGF0aXZlIHRvIHRoZSBpbnB1dHMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIGEgVGFibGUvQ1NTIGxheW91dCwgeW91IGNhbiB1c2UgdGhpcyB0YWIgdG8gc2VsZWN0IHRoZSBmaWVsZCBuYW1lIHBvc2l0aW9ucy48L3A+DQo8aDQ+VGVtcGxhdGUgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgaWYgeW91ciBmb3JtIHVzZXMgYSBDdXN0b20gVGVtcGxhdGUuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgc21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS4gVW5sZXNzIHlvdSYjMDM5O3JlIGEgc21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBzbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbiBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuIEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KDQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Tb21lIGZpZWxkIHR5cGVzIGZyb20gRmVlZGJhY2tGb3JtcyBhcmUgbm90IGltcGxlbWVudGVkIGluIEZvcm1CdWlsZGVyLiBJZiB0aGVyZSBpcyBkZW1hbmQgZm9yIHRoZW0sIHRoZXkgd2lsbCBiZSBhZGRlZC48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMC4xMy54IG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBhIGZhaXJseSBlYXJseSB2ZXJzaW9uLCBpZiBub3QgYSByYW5rIGJldGEgcmVsZWFzZSwgYW5kIGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+ICANCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcJCSAgICA8dWw+DQoJCSAgICA8bGk+VmVyc2pvbiAwLjEgLSAgMjAwNi4gT3BwcmlubmVsaWcgdmVyc2pvbjwvbGk+DQoJCSc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjQ2OTM0MjgwMi4xMTQ4MDc2NzUyLjExNTQ0NTY5MzIuMTE1NDU0NjA2MC4yMyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExNTIyMjE0NDYuMTguMTAudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1ZlbGQgVHlwZSBOaWV0IEluZ2VzdGVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1Rla3N0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1Rla3N0IHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1VpdGtsYXBtZW51JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhYXQgS2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZGVuIEtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVtIEtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRS1tYWlsIFJlc3VsdGF0ZW4gZ2ViYXNlZXJkIG9wIHVpdGtsYXBtZW51JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFLW1haWwgUmVzdWx0YXRlbiBuYWFyIGluZ2VzdGVsZGUgYWRyZXMoc2VuKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlZXItdmlhLUVtYWlsIEFkcmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNjaHJpamYgcmVzdWx0YXRlbiB3ZWcgbmFhciBiZXN0YW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypSZXN1bHRhdGVuIG9wc2xhYW4gaW4gZGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdpbmEgc2NoZWlkaW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnQmVzdGFuZCBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFLW1haWwgJnF1b3Q7VmFuIEFkcmVzJnF1b3Q7IFZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFLW1haWwgJnF1b3Q7VmFuIE5hYW0mcXVvdDsgVmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aXNjaGUgVGVrc3QnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnR2VlbiB2YWxpZGF0aWUnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpZWsnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWwgQWRyZXMnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTW9ldCBBYW5nZXZpbmt0IFdvcmRlbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdWb2VyIGEudS5iLiBlZW4gd2FhcmRlIGluIHZvb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVm9lciBhLnUuYi4gZWVuIG51bW1lciBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVm9lciBhLnUuYi4gZWVuIGdlbGRpZ2Ugd2FhcmRlIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1ZvZXIgYS51LmIuIGVlbiBnZXRhbCBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnVm9lciBhLnUuYi4gZWVuIGdlbGRpZyBFLW1haWwgYWRyZXMgaW4gYmlqICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGlzIGdlZW4gZ2VsZGlnIEUtbWFpbCBhZHJlcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiBkaWUgbmlldCBsYW5nZXIgaXMgZGFuICVzIHRla2Vucyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1Rla2VuIG9tIHRlIGdlYnJ1aWtlbiBhbHMgc2NoZWlkaW5nIGJpaiByZXN1bHRhdGVuIGRpZSBtZWVyIGRhbiAxIHdhYXJkZSB0ZXJ1Z2dldmVuJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaWUgaXMgdmVyZWlzdCB2b29yIGRpZSBiZXdlcmtpbmcuJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFUgaGVlZnQgb252b2xkb2VuZGUgcHJpdmlsZWdlcyBvbSBkZXplIHNlY3RpZSB0ZSBiZW5hZGVyZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdWZWxkIHZvbGdvcmRlIGJpamdld2Vya3QuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGllciB2ZXJ3aWpkZXJkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnVmVsZCB2ZXJ3aWpkZXJkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF0aWUgYmlqZ2V3ZXJrdC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICcmcXVvdDslcyZxdW90OyBtb2V0IGFhbmdldmlua3QgemlqbiBvbSBkb29yIHRlIGt1bm5lbiBnYWFuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRXIgbW9ldCB0ZW5taW5zdGUgZWVuIGJlc3RlbW1pbmdzIGFkcmVzIHdvcmRlbiBnZXNwZWNpZmllZXJkISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIZXQgZm9ybXVsaWVyICVzIHZlcndpamRlcmVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGV0IHZlbGQgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0dlYXZhbmNlZXJkZSBvcHRpZXMgemlqbiBuaWV0IGJlc2NoaWtiYWFyIHZvb3JkYXQgaGV0IHZlbGQgdHlwZSBpbmdlc3RlbGQgaXMuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRGUgdmVsZG5hYW0gJnF1b3Q7JXMmcXVvdDsgaXMgYWwgaW4gZ2VicnVpay4gR2VicnVpayB1bmlla2UgdmVsZG5hbWVuLic7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuZ3RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIHZha2tlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aWVzJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgdGVrZW5zLic7CiRsYW5nWydvcmRlciddID0gJ1ZvbGdvcmRlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25pZXQgb3BnZWdldmVuXSc7CiRsYW5nWydhZGRlZCddID0gJ3RvZWdldm9lZ2QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2Jpamdld2Vya3QnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdGVlciAxJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0ZWVyIFR5cGUnOwokbGFuZ1sndG8nXSA9ICdBYW4nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ29udHZhbmdlcnMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBiZXN0ZW1taW5nZW4nOwokbGFuZ1snc2F2ZSddID0gJ09wc2xhYW4nOwokbGFuZ1snYWRkJ10gPSAnVG9ldm9lZ2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ09wc2xhYW4gZW4gZG9vcmdhYW4gbWV0IHdpanppZ2VuJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNjaCc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGllcmVuJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxpZXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpZSc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ1N0YXJ0JzsKJGxhbmdbJ3RhYl9hZGRpdGlvbmFsJ10gPSAnRm9ybXVsaWVyIEluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdHZWF2YW5jZWVyZGUgSW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl90YWJsZWxheW91dCddID0gJ1RhYmVsLWdlYmFzZWVyZGUgTGF5b3V0IE9wdGllcyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdTamFibG9vbiBMYXlvdXQgT3B0aWVzJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWZWxkIHZlcnBsaWNodCBzdGF0dXMgYmlqZ2V3ZXJrdC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBncm9vdHRlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVWl0YnJlaWRpbmdlbic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVG9lZ2VzdGFuZSBiZXN0YW5kc3R5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnR2V1cGxvYWQgYmVzdGFuZCBpcyB0ZSBncm9vdCEgTWF4aW11bSBncm9vdHRlIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpdCB0eXBlIGJlc3RhbmQgbWFnIG5pZXQgd29yZGVuIGdldXBsb2FkLiBDb250cm9sZWVyIGRlIGJlc3RhbmRzZXh0ZW5zaWUuJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlLWRlaW5zdGFsZWVyZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpZSAlcyBnZSZpdW1sO25zdGFsbGVlcmQgLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUZXJ1Zyc7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnVmVyc3R1dXInOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnVmVyZGVyJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ05pZXQgYWFuZ2V2aW5rdCc7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ01lZXIgT3B0aWVzIFRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1ZlcndpamRlcmVuIEdlbWFya2VlcmRlIE9wdGllcyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ1ZvZWcgTWVlciBBYW52aW5rdmVsZGVuIFRvZSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1ZlcndpamRlciBHZW1hcmtlZXJkZXIgQWFudmlua3ZlbGRlbic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkcmVzIFRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1ZlcndpamRlciBHZW1hcmtlZXJkZSBBZHJlc3Nlbic7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdCZXN0ZW1taW5nIFRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdWZXJ3aWpkZXIgR2VtYXJrZWVyZGUgQmVzdGVtbWluZ2VuJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdMYWJlbCBBYW52aW5rdmVsZCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnV2FhcmRlIHdhbm5lZXIgYWFuZ2V2aW5rdCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdXYWFyZGUgd2FubmVlciBuaWV0IGFhbmdldmlua3QnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0FhbnZpbmt2ZWxkIEdyb2VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBFZW4mcXVvdDsgVGVrc3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3RpZSBPbmRlcndlcnAnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYWFyZCBTZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYWFyZCBTZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGllIE5hYW0nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmVyc3R1dXJkZSBXYWFyZGUnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGllcyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGlzZWxlY3QgT3B0aWVzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdCZXN0ZW1taW5ncyBFLW1haWwgQWRyZXMnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7VmFuIE5hYW0mcXVvdDsgdm9vciBFLW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0dlYnJ1aWsgZ2VtYWtrZWxpamtlIEUtbWFpbCB2YWxpZGF0aWUnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnR2VicnVpayBnZW1ha2tlbGlqa2UgRS1tYWlsIHZhbGlkYXRpZSAoc3RhIGJpanZvb3JiZWxlZCAmcXVvdDt4QHkmcXVvdDsgdG9lIGkucC52LiAmcXVvdDt4QHkudGxkJnF1b3Q7IHRlIHZlcmVpc2VuKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtWYW4gYWRyZXMmcXVvdDsgdm9vciBFLW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFLW1haWwgdGVrZW5zZXQgZW5jb2RlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tZ2ViYXNlZXJkZSBFLW1haWwgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdCZXN0YW5kc25hYW0nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIE9uZGVyd2VycCBSZWdlbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWxpZXIgTmFhbSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGllciBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdLbGFhciB2b29yIEdlYnJ1aWsnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZXQgS2xhYXInOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2luYSBvbSBuYWFyIHRlIHJlZGlyZWN0ZW4gbmEgdmVyemVuZGluZyB2YW4gaGV0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnVm9lZyBlZW4gdmVsZCB0b2Ugem9kYXQgZGUgaW5wdXQgdmFuIGRlIGdlYnJ1aWtlciB2ZXJ3ZXJrdCBrYW4gd29yZGVuLiBVIGt1bnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdkZXplIHNuZWxrb3BwZWxpbmcgZ2VicnVpa2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtdWxpZXIgQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWxpZXIgVmVsZGVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdWZWxkIE5hYW0nOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb2VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1ZlbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnb20gZWVuIGZvbXVsaWVyIHZlcndlcmtpbmdzIHZlbGQgdGUgbWFrZW4uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ05pZXV3IEZvcm11bGllciBUb2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnRm9ybSBCdWlsZGVyIFZlcnNpZSBUb25lbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdEaXQgdmVyd2Vya3QgZGUgZ2VpbnN0YWxsZWVyZGUgdmVyc2llIHZhbiBkZSBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGVlbiBvcG1lcmtpbmcsIG9tIHRlIGhlbHBlbiBiaWogZGVidWdnZW4uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdOaWV1dyBWZWxkIFRvZXZvZWdlbic7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtdWxpZXIgVmVyemVuZCBLbm9wIFRla3N0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtdWxpZXIgJnF1b3Q7Vm9sZ2VuZGUmcXVvdDsgS25vcCBUZWtzdCAoZ2VicnVpa3QgYmlqIGZvcm11bGllcmVuIHZhbiBtZWVyZGVyZSBwYWdpbmEmIzAzOTtzKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybXVsaWVyICZxdW90O1ZvcmlnZSZxdW90OyBLbm9wIFRla3N0IChnZWJydWlrdCBiaWogZm9ybXVsaWVyZW4gdmFuIG1lZXJkZXJlIHBhZ2luYSYjMDM5O3MpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdWZWxkIFZhbGlkYXRpZSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2Ugdm9vciBkaXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2Ugdm9vciBkaXQgdmVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvb2wgb20gdmVyZWlzdGUgdmVsZGVuIHRlIG1hcmtlcmVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnVmVyZWlzdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVmVyZWlzIGVlbiByZXNwb25zIHZvb3IgZGl0IHZlbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1ZlcmJlcmcgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnVmVyYmVyZyB2ZWxkIG5hYW0gb3AgRm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNjaGUgdGVrc3Qgb20gd2VlciB0ZSBnZXZlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpZSByZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQWFudGFsIHdlZXJnZWdldmVuIFJlZ2Vscyc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnR2VlbiBTdGFuZGFhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTdHV1ciBuYWFyIGRlemUgUGFnaW5hIG5hIGdvZWRrZXVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdWZXJwbGljaHQnOwokbGFuZ1sndGl0bGVfdGl0bGVfcG9zaXRpb24nXSA9ICdWZWxkIFRpdGVsIFBvc2l0aWUgKGFsbGVlbiBiaWogbm9uLUNTUyBMYXlvdXQpJzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9sZWZ0J10gPSAnVGl0ZWwgTGlua3MnOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2Fib3ZlJ10gPSAnVGl0ZWwgQm92ZW4nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdWZXJiZXJnIEZvdXRlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybXVsaWVyIFdlZXJnYXZlIFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1Zvb3Jrb20gZGVidWcgLyBmb3V0IG1lbGRpbmdlbiB2b29yIGdlYnJ1aWtlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1tYWlsIFNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIHVwbG9hZCBiZXN0YW5kc2dyb290dGUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdUb2VnZXN0YW5lIEV4dGVuc2llcyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1Jlc3RyaWN0aWVzIHdlZXJnZXZlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnR3Jvb3R0ZSBlbiBleHRzdGVuc2llIGJlcGVya2luZ2VuIHRvbmVuIGJpaiBoZXQgdXBsb2FkIHZlbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdTamFibG9vbiB2b29yIFdlZXJnYXZlIEZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2luYSAlcyB2YW4gJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ1ZlbGQgaGVlZnQgZ2VlbiBnZWF2YW5jZWVyZGUgb3B0aWVzLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnR2V0b29uZGUgdGVrc3QgYmlqIG9uZ2VzcGVjaWZpY2VlcmRlIHZlbGQgd2FhcmRlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnU25lbCB2ZWxkIHRvZXZvZWdlbiB1aXRrbGFwbWVudSBpbnNjaGFrZWxlbiB2b29yIGZvcm11bGllcmVuPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ1NuZWwgdmVsZCB0b2V2b2VnZW4gdWl0a2xhcG1lbnUgaW5zY2hha2VsZW4/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTbmVsIHZlbGQgdG9ldm9lZ2VuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmVsZW4gdm9vciBTamFibG9vbic7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdHVtIHZhbiBWZXJ6ZW5kaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHZhbiBkZSBwYWdpbmEnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbmRlcmUgdmVsZGVuIHppam4gYmVzY2hpa2JhYXIgbmFkYXQgemUgemlqbiB0b2VnZXZvZWdkJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJlbGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnR2VyZXByZXNlbnRlZXJkIFZlbGQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFRlcnVnIG5hYXIgaGV0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnVm9vcmJlZWxkIFNqYWJsb29uIEdlbmVyZXJlbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ1Zvb3JiZWVsZCBIZWFkZXIgR2VuZXJlcmVuJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2VlbiB0YWIgdGVrZW4nOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1NqYWJsb29uIHZvb3IgZW5rZWxlIHJlZ2VsIG9mIG91dHB1dCBiZXN0YW5kJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnU2phYmxvb24gdm9vciBkZSBoZWFkZXIgdmFuIGhldCBvdXRwdXQgYmVzdGFuZCc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIG9tIHRlICBrbGlra2VuIHZvb3IgZm9ybXVsaWVyIHZhbGlkYXRpZSc7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnR2VlbiBIVFRQX1JFRkVSRVIgaW5mb3JtYXRpZSBiZXNjaGlrYmFhciAod2FhcnNjaGlqbmlqayBkb29yIGhldCBnZWJydWlrIHZhbiBFLW1haWwgR2VicnVpa2VyIFZhbGlkYXRpZSknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpZSBQYXJhbWV0ZXIgRm91dC4gWm9yZyBlcnZvb3IgZGF0IGRlIFVSTCB2YW4gdXcgRS1tYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpZSBSZWFjdGllIEZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IEUtbWFpbCBjb3JyZWN0IGdla29waWVlcmQgd29yZHQhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlYWN0aWUgRm91dC4gR2VlbiBFLW1haWwgdmFsaWRhdGllIHZlbGRlbiBpbiBkaXQgZm9ybXVsaWVyISc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnR2VicnVpayBXWVNJV1lHIGVkaXRvciB2b29yIHRla3N0dmVsZD8nOwokbGFuZ1snZGlzcHR5cGVfdGFibGUnXSA9ICdUYWJlbC9DU1MnOwokbGFuZ1snZGlzcHR5cGVfY3NzJ10gPSAnUHV1ciBDU1MnOwokbGFuZ1snZGlzcHR5cGVfdGVtcGxhdGUnXSA9ICdBYW5nZXBhc3QgU2phYmxvb24nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQmVoZWVyIHZhbiBpbnRlcmFjdGlldmUgRm9ybXVsaWVyZW4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnamFudWFyaSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnZmVicnVhcmknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ21hYXJ0JzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdhcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ21laSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdqdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ2p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdhdWd1c3R1cyc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ3NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdva3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdub3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnZGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBFciBpcyBlZW4gZm91dCBvcGdldHJlZGVuIHRpamRlbnMgZGUgZm9ybXVsaWVydmVyd2Vya2luZy4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgdmVyemVuZGluZ3MgZm91dDogJXMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGZvdXQgYmlqIGJlc3RhbmQgJXMgKHRtcF9uYW1lOiAlcywgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGb3V0LiBLYW4gZ2VlbiBsb2NrIHZvb3IgYmVzdGFuZCBrcmlqZ2VuLic7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgVmVyemVuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBTamFibG9vbiBub2cgbmlldCBpbmdlc3RlbGQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBLYW4gdmVyZWlzdGUgbW9kdWxlIENNU01haWxlciBuaWV0IHZpbmRlbiEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnR2VicnVpa2VyIGdvZWRnZWtldXJkZSBzdWJtaXNzaWUgJXMgdmFuICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdHZWJldXJ0ZW5pcyB2ZXJzdHV1cmQgYWxzIGVlbiBGb3JtQnVpbGRlciBmb3JtdWxpZXIgdmVyem9uZGVuIHdvcmR0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0dlYmV1cnRlbmlzIHZlcnN0dXVyZCBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtQnVpbGRlciBmb3JtdWxpZXInOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdHZWJldXJ0ZW5pcyB2ZXJzdHV1cmQgYWxzIGVlbiBGb3JtQnVpbGRlciBmb3JtdWxpZXIgd29yZHQgZ2V0b29uZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+R2ViZXVydGVuaXMgdmVyc3R1dXJkIGFscyBlZW4gRm9ybUJ1aWxkZXIgZm9ybXVsaWVyIHZlcnpvbmRlbiB3b3JkdC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVyIG5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5HZWJldXJ0ZW5pcyB2ZXJzdHV1cmQgYWxzIGVlbiBmb3V0IG9wdHJlZWR0IGJpaiBoZXQgdmVyemVuZGVuIHZhbiBlZW4gRm9ybUJ1aWxkZXIgZm9ybXVsaWVyPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllciBuYWFtIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gSW50ZXJuIGZvcm11bGllciBJRCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBFZW4gbGlqc3QgdmFuIGFsbGUgYmVrZW5kZSBmb3V0ZW4gKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+R2ViZXVydGVuaXMgdmVyc3R1dXJkIGFscyBlZW4gRm9ybUJ1aWxkZXIgZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVyIG5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy4gWW91IGFsc28gc2VsZWN0IHRoZSBkaXNwbGF5IHR5cGUuIFlvdXIgY2hvaWNlcyBhcmU6PC9wPg0KPHVsPg0KPGxpPlRhYmxlL0NTUy4gVGhlIGZvcm0gaXMgY3JlYXRlZCB1c2luZyBIVE1MIHRhYmxlcy4gSWYgeW91IGRvbiYjMDM5O3Qga25vdyB3aGF0IHRvIGNob29zZSwgdGhpcyBpcyB0aGUgZWFzaWVzdCBvcHRpb24sIGFuZCB3aWxsIHByb2JhYmx5IGRvIG1vc3Qgb2Ygd2hhdCB5b3Ugd2FudC4gWW91IGNhbiBzdGlsbCB1c2UgQ1NTIHRvIHN0eWxlIHRoZSBmb3JtIGlmIHlvdSB3YW50LjwvbGk+DQo8bGk+UHVyZSBDU1MuIFRoZSBmb3JtIGlzIGNyZWF0ZWQsIHdpdGggYWxsIHRoZSBmaWVsZHMgd3JhcHBlZCBpbiA8ZGl2PiB0YWdzLiBZb3UgY2FuIHRoZW4gc3R5bGUgdGhlIGZvcm0gYXMgeW91IHNlZSBmaXQuPC9saT4NCjxsaT5DdXN0b20gVGVtcGxhdGUuIEJhc2ljYWxseSwgeW91IGdldCBhIHNtYXJ0eSB0ZW1wbGF0ZSwgYSBidW5jaCBvZiB2YXJpYWJsZXMsIGFuZCB5b3UmIzAzOTtyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFNldHRpbmdzPC9oND4NCjxwPkZvcm0gU2V0dGluZ3MgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgYSBsb3Qgb2YgdGhlIG1lc3NhZ2VzIGFuZCB0ZXh0IGluIHRoZSBjb250cm9scyBmb3IgeW91ciBmb3JtLiBJdCBhbHNvIGFsbG93cyB5b3UgdG8gcGljayBhIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8aDQ+VGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnM8L2g0Pg0KPHA+VGFibGUtbGF5b3V0cyBoYXZlIGdvdHRlbiBzaW1wbGVyLCBzbyB5b3VyIG9ubHkgb3B0aW9uIGhlcmUgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBuYW1lcyByZWxhdGl2ZSB0byB0aGUgaW5wdXRzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyBhIFRhYmxlL0NTUyBsYXlvdXQsIHlvdSBjYW4gdXNlIHRoaXMgdGFiIHRvIHNlbGVjdCB0aGUgZmllbGQgbmFtZSBwb3NpdGlvbnMuPC9wPg0KPGg0PlRlbXBsYXRlIExheW91dCBPcHRpb25zPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIGlmIHlvdXIgZm9ybSB1c2VzIGEgQ3VzdG9tIFRlbXBsYXRlLjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIHNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuIFVubGVzcyB5b3UmIzAzOTtyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgc21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW4gZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMC1zdm4gb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDYsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIDxsaT5WZXJzaWUgMC4xIC0gOCBqdWxpIDIwMDYuIEVlcnN0ZSByZWxlYXNlPC9saT4NCgkJJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE1ODQ5ODgyMy4xNzYuMzAudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDY5MDMuMC90b3BpY3NlZW4uaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My41OTY2MDU5NjguMTE0NzIxNTkzNC4xMTU4NDI3Nzc4LjExNTg0OTg4MjMuMTc2JzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkZmxkcyA9ICIKCQkJZm9ybV9pZCBJIEtFWSwKCQkJbmFtZSBDKDI1NSksCgkJCWFsaWFzIEMoMjU1KQoJCSI7CgkJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX3NlcScpOwovLwkJJGRiLT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2lkeCcsIGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0nLCAnYWxpYXMnKTsKCQkKCQkkZmxkcyA9ICIKCQkJZm9ybV9hdHRyX2lkIEkgS0VZLAoJCQlmb3JtX2lkIEksCgkJCW5hbWUgQygzNSksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHInLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwovLwkJJGRiLT5DcmVhdGVJbmRleFNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfaWR4JywgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJywgJ2Zvcm1faWQnKTsKCgkJJGZsZHMgPSAiCgkJCWZpZWxkX2lkIEkgS0VZLAoJCQlmb3JtX2lkIEksCgkJCW5hbWUgQygyNTUpLAoJCQl0eXBlIEMoNTApLAoJCQl2YWxpZGF0aW9uX3R5cGUgQyg1MCksCgkJCXJlcXVpcmVkIEkxLAoJCQloaWRlX2xhYmVsIEkxLAoJCQlvcmRlcl9ieSBJCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlvcHRpb25faWQgSSBLRVksCgkJCWZpZWxkX2lkIEksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDI1NSksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHQnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwoKCQkkZmxkcyA9ICIKCQkJZmxvY2tfaWQgSSBLRVksCgkJCWZsb2NrIFQKCQkiOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmxvY2snLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX2lkIEkgS0VZLAoJCQlmb3JtX2lkIEksCgkJCWZldXNlcl9pZCBJLAoJCQl1c2VyX2FwcHJvdmVkIERULAoJCQlzZWNyZXRfY29kZSBDKDM1KSwKCQkJYWRtaW5fYXBwcm92ZWQgRFQsCgkJCXN1Ym1pdHRlZCBEVAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3AnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX2F0dHJfaWQgSSBLRVksCgkJCXJlc3BfaWQgSSwKCQkJbmFtZSBDKDM1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX2F0dHJfc2VxJyk7CgoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3Bfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX3ZhbF9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQlmaWVsZF9pZCBJLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWwnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWxfc2VxJyk7CgoKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJywgJ01vZGlmeSBGb3JtcycpOwoKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcgKTsKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknICk7CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicgKTsKCQkKCQlpbmNsdWRlICdpbmNsdWRlcy9Gb3JtQnVpbGRlclNhbXBsZURhdGEuaW5jJzsJCQoKCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0nKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zsb2NrJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfdmFsJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cicpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbF9zZXEnKTsKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX2F0dHJfc2VxJyk7CgoJCSR0aGlzLT5SZW1vdmVQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKTsKCQkKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcgKTsKCQkkdGhpcy0+UmVtb3ZlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknICk7CgkJJHRoaXMtPlJlbW92ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicgKTsKCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1bmluc3RhbGxlZCcpKTsKCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCXN3aXRjaCgkY3VycmVudF92ZXJzaW9uKQoJCXsKCQkJY2FzZSAiMC4xIjoKCQl9CgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/output/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/output/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/AddEditField.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxoND57JG1lc3NhZ2V9PC9oND57L2lmfQp7JGJhY2t0b2Zvcm1fbmF2fTxiciAvPgp7JHN0YXJ0X2Zvcm19eyRoaWRkZW59eyRvcH17JHRhYl9zdGFydH0KeyRtYWludGFiX3N0YXJ0fQoJe2ZvcmVhY2ggZnJvbT0kbWFpbkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyRhZHZhbmNlZHRhYl9zdGFydH0KCXtmb3JlYWNoIGZyb209JGFkdkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyR0YWJzX2VuZH0Ke2lmICRhZGQgIT0gJycgb3IgJGRlbCAhPSAnJ30KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhZGR9eyRkZWx9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZF9mb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfTxoND57JG1lc3NhZ2V9PC9oND57L2lmfQ0KeyRmb3Jtc3RhcnR9eyRmb3JtaWR9eyRoaWRkZW59eyR0YWJfc3RhcnR9eyRtYWludGFiX3N0YXJ0fQoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fbmFtZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uYW1lfTwvcD4KCTwvZGl2PgoKe2lmICRhZGRpbmcgPT0gMH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3RhdHVzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+e2lmICRoYXNkaXNwb3NpdGlvbiA9PSAxfXskdGV4dF9yZWFkeX17ZWxzZX17JGxpbmtfbm90cmVhZHl9ey9pZn08L3A+Cgk8L2Rpdj4Key9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fYWxpYXN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fYWxpYXN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2Nzc19jbGFzc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9jc3NfY2xhc3N9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX2Rpc3BsYXl0eXBlfTwvcD4KCTwvZGl2Pgp7aWYgJGFkZGluZz09MH0KCXtpZiAkZmFzdGFkZD09MX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZmFzdGFkZH08L3A+CgkJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+DQoJCQkJeyRpbnB1dF9mYXN0YWRkfQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2ZpZWxkc308L3A+CgkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4NCgkJCTx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj4NCiAgICAgICAgICAgICAgICA8dGhlYWQ+PHRyPjx0aD57JHRpdGxlX2ZpZWxkX25hbWV9PC90aD4NCiAgICAgICAgICAgICAgICAJPHRoPnskdGl0bGVfZmllbGRfdHlwZX08L3RoPg0KICAgICAgICAgICAgICAgIAk8dGg+eyR0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXZ9PC90aD4NCiAgICAgICAgICAgICAgICAJPHRoPnskdGl0bGVfaW5mb3JtYXRpb259PC90aD4NCiAgICAgICAgICAgICAgICAgICAgPHRoIGNvbHNwYW49IjIiPnskdGl0bGVfb3JkZXJ9PC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+Jm5ic3A7PC90aD48dGg+Jm5ic3A7PC90aD48L3RyPgoJCQkJPC90aGVhZD4NCgkJCQk8dGJvZHk+CgkJCQl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQkJCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPgoJCQkJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CgkJCQkJPHRkPnskZW50cnktPnR5cGV9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGlzcG9zaXRpb259PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZmllbGRfc3RhdHVzfTwvdGQ+CgkJCQkJPHRkPnskZW50cnktPnVwfTwvdGQ+CgkJCQkJPHRkPnskZW50cnktPmRvd259PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJCQkJCTwvdHI+CgkJCQl7L2ZvcmVhY2h9CiAgICAgICAgICAgICAgIAk8dHI+PHRkIGNvbHNwYW49IjgiIGNsYXNzPSJyb3cyIj4mbmJzcDs8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAJPHRyPjx0ZCBjb2xzcGFuPSI4IiBjbGFzcz0icm93MSI+eyRhZGRfZmllbGRfbGlua308L3RkPjwvdHI+DQoJCQkJPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4Key9pZn0KDQp7JHRhYl9lbmR9eyRhZGRpdGlvbmFsdGFiX3N0YXJ0fQoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlZGlyZWN0X3BhZ2V9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlZGlyZWN0X3BhZ2V9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fc3VibWl0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fbmV4dF9idXR0b259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fbmV4dF9idXR0b259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZXZfYnV0dG9ufTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3ByZXZfYnV0dG9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2x9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcmVxdWlyZWRfc3ltYm9sfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV91bnNwZWNpZmllZH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV91bnNwZWNpZmllZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2xpc3RfZGVsaW1pdGVyfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9saXN0X2RlbGltaXRlcn08L3A+Cgk8L2Rpdj4KeyR0YWJfZW5kfQp7JHRhYmxldGFiX3N0YXJ0fQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdGl0bGVfcG9zaXRpb259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RpdGxlX3Bvc2l0aW9ufTwvcD4KCTwvZGl2PgoKeyR0YWJfZW5kfQp7JHRlbXBsYXRldGFiX3N0YXJ0fQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV90ZW1wbGF0ZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV90ZW1wbGF0ZX08L3A+Cgk8L2Rpdj4KeyR0YWJfZW5kfQ0KeyR0YWJzX2VuZH0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc2F2ZV9idXR0b259eyRzdWJtaXRfYnV0dG9ufTwvcD4KCTwvZGl2Pgp7JGZvcm1fZW5kfQ0K]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfSA8aDQ+eyRtZXNzYWdlfTwvaDQ+IHsvaWZ9Cgp7JHRhYmhlYWRlcnN9Cnskc3RhcnRfZm9ybXRhYn0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIiB3aWR0aD0iODAlIj4KPHRoZWFkPjx0cj4KICAgIDx0aD57JHRpdGxlX2Zvcm1fbmFtZX08L3RoPgogICAgPHRoPnskdGl0bGVfZm9ybV9hbGlhc308L3RoPgogICAgPHRoPiZuYnNwOzwvdGg+PHRoPiZuYnNwOzwvdGg+CjwvdHI+CjwvdGhlYWQ+Cgp7Zm9yZWFjaCBmcm9tPSRmb3JtcyBpdGVtPWVudHJ5fQoJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCTx0ZD4mIzEyMztjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3skZW50cnktPnVzYWdlfScmIzEyNTs8L3RkPgoJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+Cgk8L3RyPgp7L2ZvcmVhY2h9Cgo8dHIgY2xhc3M9InJvdzIiPjx0ZCBjb2xzcGFuPSI0Ij4mbmJzcDs8L3RkPjwvdHI+Cjx0ciBjbGFzcz0icm93MSI+PHRkIGNvbHNwYW49IjQiPgoKe2lmICRhZGRsaW5rICE9ICcnfXskYWRkbGlua317JGFkZGZvcm19ey9pZn0KPC90ZD48L3RyPgo8L3RhYmxlPgp7JGVuZF90YWJ9Cnskc3RhcnRfY29uZmlndGFifQp7aWYgJG1heV9jb25maWcgPT0gMX0KeyRzdGFydF9jb25maWdmb3JtfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2Zhc3RhZGR9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2VuYWJsZV9mYXN0YWRkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfaGlkZV9lcnJvcnN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2hpZGVfZXJyb3JzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfdmVyc2lvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd192ZXJzaW9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+Cgk8L2Rpdj4KCXskY29uZmlnX2Zvcm1lbmR9Cgp7ZWxzZX0KCTxwPnskbm9fcGVybWlzc2lvbn08L3A+CnsvaWZ9CnskZW5kX3RhYn0KeyRlbmRfdGFic30KCg==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRoaWRkZW59CjxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4Ke2lmICR0b3RhbF9wYWdlcyBndCAxfTxkaXYgY2xhc3M9InN0YXR1cyI+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L2Rpdj57L2lmfQp7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCSAge2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQoJICAgIAl7c3RyaXB9CgkgICAgCTxkaXYKCSAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IiAKCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CgkgICAgCQkJcmVxdWlyZWQKCSAgICAJCXsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQoJICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQoJICAgIAkJCXskZW50cnktPmNzc19jbGFzc30KCSAgICAJCXsvaWZ9CgkgICAgCQkiCgkgICAgCXsvaWZ9CgkgICAgCT4KCSAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CgkgICAgCQk8bGFiZWwgZm9yPSJ7JGVudHJ5LT5pbnB1dF9pZH0iPnskZW50cnktPm5hbWV9PC9sYWJlbD4KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KCSAgICAJCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CgkgICAgCQl7L2lmfQoJICAgIAl7L2lmfQoJICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQoJICAgIAkJe2ZvcmVhY2ggZnJvbT0kZW50cnktPmlucHV0IGl0ZW09cGFydH0KCSAgICAJCQl7JHBhcnQtPmlucHV0fSZuYnNwO3skcGFydC0+bmFtZX0KCSAgICAJCXsvZm9yZWFjaH0KCSAgICAJe2Vsc2V9CgkgICAgCQl7JGVudHJ5LT5pbnB1dH0KCSAgICAJey9pZn0KCSAgICAJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7L2lmfQoJICAgIAk8L2Rpdj4KCSAgICAJey9zdHJpcH0KCSAgey9pZn0Key9mb3JlYWNofQo8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjwhLS0gYmVsb3csIHlvdSdsbCBmaW5kIHRoZSAic3RhbmRhcmQgQ1NTIHRlbXBsYXRlIiBmb3IgZGlzcGxheWluZyBGb3JtQnVpbGRlciBGb3JtcwogICAgICAgWW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91J2QgbGlrZS4KICAgICAgIAogICAgICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRoaWRkZW59IGFuZCB7JHN1Ym1pdH0KICAgICAgIHRhZ3MuCiAgICAgICAKICAgICAgIFlvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5LCBhcyBkZW1vbnN0cmF0ZWQgYmVsb3csCiAgICAgICBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApCiAgICAgICAKICAgICAgIEVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKCQkJZmllbGQtPmRpc3BsYXkgICAgICAgICAgICAgICAgPSAxIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZQoJCQlmaWVsZC0+cmVxdWlyZWQgICAgICAgICAgICAgID0gMSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlCgkJCWZpZWxkLT5yZXF1aXJlZF9zeW1ib2wgPSB0aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHMKCQkJZmllbGQtPmNzc19jbGFzcyAgICAgICAgICAgID0gdGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQKCQkJZmllbGQtPnZhbGlkICAgICAgICAgICAgICAgICAgID0gMSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2UKCQkJZmllbGQtPmhpZGVfbmFtZSAgICAgICAgID0gMSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZQoJCQlmaWVsZC0+bmFtZSAgICAgICAgICAgICAgICAgPSB0aGUgZmllbGQncyBuYW1lCgkJCWZpZWxkLT5pbnB1dCAgICAgICAgICAgICAgICAgID0gdGhlIGZpZWxkJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZikKCQkJZmllbGQtPmlucHV0X2lkICAgICAgICAgICAgICA9IHRoZSBpZCBvZiB0aGUgZmllbGQncyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSIiPikKCQkJZmllbGQtPnR5cGUgICAgICAgICAgICAgICAgICAgPSB0aGUgZmllbGQncyBkYXRhIHR5cGUKCQkJZmllbGQtPm11bHRpcGxlX3BhcnRzCSAgID0gMSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9scwoJCQkKCSAgIEluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzCgkgICBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UKCSAgIGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy4KICAgICAgIAogICAgICAgQWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZToKICAgICAgIHskdG90YWxfcGFnZXN9ICAgICAgICAgICAtIG51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtcwogICAgICAgeyR0aGlzX3BhZ2V9ICAgICAgICAgICAgICAtIG51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zCiAgICAgICB7JHRpdGxlX3BhZ2VfeF9vZl95fSAtIGRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXMKICAgICAgIHskY3NzX2NsYXNzfSAgICAgICAgICAgICAgIC0gQ1NTIENsYXNzIGZvciB0aGUgZm9ybQogICAgICAgeyRuYW1lX2FzX2lkfSAgCQkgIC0gMSBpZiB0aGUgdXNlciBvcHRlZCB0byBoYXZlIGZpZWxkIElEcyBzZXQgdG8gdGhlIGZpZWxkIG5hbWUgY2xhc3MsIDAgb3RoZXJ3aXNlCiAgICAgICB7JGZvcm1fbmFtZX0gICAgICAgICAgIC0gRm9ybSBuYW1lCiAgICAgICB7JGZvcm1faWR9ICAgICAgICAgICAgICAgICAtIEZvcm0gRGF0YWJhc2UgSUQKICAgICAgIHskcHJldn0gICAgICAgICAgICAgICAgICAgICAgLSAiQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMKICAgICAgIER1bm5vIHdoeSB5b3UnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi4KCi0tPgp7L2xpdGVyYWx9Cgp7JGhpZGRlbn17YXNzaWduIHZhcj0iY29scyIgdmFsdWU9IjMifQo8ZGl2e2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+CntpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJICB7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkgICAgCXtzdHJpcH0KCSAgICAJPGRpdgoJICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iIAoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KCSAgICAJCQlyZXF1aXJlZAoJICAgIAkJey9pZn0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+Y3NzX2NsYXNzfQoJICAgIAkJey9pZn0KCSAgICAJCSIKCSAgICAJey9pZn0KCSAgICAJPgoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KCSAgICAJCTxsYWJlbCBmb3I9InskZW50cnktPmlucHV0X2lkfSI+eyRlbnRyeS0+bmFtZX08L2xhYmVsPgoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQoJICAgIAkJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KCSAgICAJCXsvaWZ9CgkgICAgCXsvaWZ9CgkgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAJCTx0YWJsZT4KCQkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJICAgIAkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC90ZD4KCSAgICAJCQkgICAgICAge2lmIG5vdCAoJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3Aucm93bnVtIG1vZCAkY29scyl9CiAgICAgICAgICAgICAgICAJCQkJe2lmIG5vdCAkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5sYXN0fQogICAgICAgICAgICAgICAgICAgICAgICAJCTwvdHI+PHRyPgogICAgICAgICAgICAgICAgCQkJCXsvaWZ9CiAgICAgICAgCQkJCQl7L2lmfQogICAgICAgCQkJCXtpZiAkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5sYXN0fQogICAgICAgICAgICAgICAgCQl7bWF0aCBlcXVhdGlvbiA9ICJuIC0gYSAlIG4iIG49JGNvbHMgYT0kZW50cnktPmlucHV0fEBjb3VudCBhc3NpZ249ImNlbGxzIn0KICAgICAgICAgICAgICAgIAkJe2lmICRjZWxscyBuZSAkY29sc30KICAgICAgICAgICAgICAgIAkJCXtzZWN0aW9uIG5hbWU9cGFkIGxvb3A9JGNlbGxzfQogICAgICAgICAgICAgICAgICAgICAgICAJCTx0ZD4mbmJzcDs8L3RkPgogICAgICAgICAgICAgICAgCQkJey9zZWN0aW9ufQogICAgICAgICAgICAgICAJCSAJey9pZn0KICAgICAgICAgICAgICAgIAkJPC90cj4KICAgICAgICAJCQl7L2lmfQoJICAgIAkJey9zZWN0aW9ufQoJICAgIAkJPC90YWJsZT4KCSAgICAJe2Vsc2V9CgkgICAgCQl7JGVudHJ5LT5pbnB1dH0KCSAgICAJey9pZn0KCSAgICAJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7L2lmfQoJICAgIAk8L2Rpdj4KCSAgICAJey9zdHJpcH0KCSAgey9pZn0Key9mb3JlYWNofQo8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KPC9kaXY+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleLeft.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRoaWRkZW59e2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0KPHRhYmxle2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+CntpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJICB7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkgICAgPHRyPgoJICAgIAl7c3RyaXB9CgkgICAgCTx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIgoJICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iIAoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KCSAgICAJCQlyZXF1aXJlZAoJICAgIAkJey9pZn0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+Y3NzX2NsYXNzfQoJICAgIAkJey9pZn0KCSAgICAJCSIKCSAgICAJey9pZn0KCSAgICAJPgoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KCSAgICAJCXskZW50cnktPm5hbWV9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQoJICAgIAkJey9pZn0KCSAgICAJey9pZn0KCSAgICAJPC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4KCSAgICAJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KICAgIAkJPHRhYmxlPg0JCQkJCTx0cj4NCQkJCXtzZWN0aW9uIG5hbWU9bnVtbG9vcCBsb29wPSRlbnRyeS0+aW5wdXR9DQkgICAgCQkJPHRkPnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L3RkPg0JICAgIAkJCSAgICAgICB7aWYgbm90ICgkc21hcnR5LnNlY3Rpb24ubnVtbG9vcC5yb3dudW0gbW9kICRjb2xzKX0NICAgICAgICAgICAgICAgIAkJCQl7aWYgbm90ICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9DSAgICAgICAgICAgICAgICAgICAgICAgIAkJPC90cj48dHI+DSAgICAgICAgICAgICAgICAJCQkJey9pZn0NICAgICAgICAJCQkJCXsvaWZ9DSAgICAgICAJCQkJe2lmICRzbWFydHkuc2VjdGlvbi5udW1sb29wLmxhc3R9DSAgICAgICAgICAgICAgICAJCXttYXRoIGVxdWF0aW9uID0gIm4gLSBhICUgbiIgbj0kY29scyBhPSRlbnRyeS0+aW5wdXR8QGNvdW50IGFzc2lnbj0iY2VsbHMifQ0gICAgICAgICAgICAgICAgCQl7aWYgJGNlbGxzIG5lICRjb2xzfQ0gICAgICAgICAgICAgICAgCQkJe3NlY3Rpb24gbmFtZT1wYWQgbG9vcD0kY2VsbHN9DSAgICAgICAgICAgICAgICAgICAgICAgIAkJPHRkPiZuYnNwOzwvdGQ+DSAgICAgICAgICAgICAgICAJCQl7L3NlY3Rpb259DSAgICAgICAgICAgICAgIAkJIAl7L2lmfQ0gICAgICAgICAgICAgICAgCQk8L3RyPg0gICAgICAgIAkJCXsvaWZ9DQkgICAgCQl7L3NlY3Rpb259DQkgICAgCQk8L3RhYmxlPg0JICAgIAl7ZWxzZX0KCSAgICAJCXskZW50cnktPmlucHV0fQoJICAgIAl7L2lmfQoJICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHsvaWZ9CgkgICAgCTwvdGQ+PC90cj4KCSAgICAJey9zdHJpcH0KCSAgey9pZn0Key9mb3JlYWNofQo8dHI+PHRkPnskcHJldn08L3RkPjx0ZD57JHN1Ym1pdH08L3RkPjwvdHI+CjwvdGFibGU+]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleTop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRoaWRkZW59e2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0KPHRhYmxle2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+CntpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJICB7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CgkgICAgPHRyPgoJICAgIAl7c3RyaXB9CgkgICAgCTx0ZAoJICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iIAoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KCSAgICAJCQlyZXF1aXJlZAoJICAgIAkJey9pZn0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+Y3NzX2NsYXNzfQoJICAgIAkJey9pZn0KCSAgICAJCSIKCSAgICAJey9pZn0KCSAgICAJPgoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KCSAgICAJCXskZW50cnktPm5hbWV9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQoJICAgIAkJey9pZn0KCSAgICAJey9pZn0KCSAgICAJPC90ZD48L3RyPgoJICAgIAk8dHI+PHRkPgoJICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQogICAgCQk8dGFibGU+DQkJCQkJPHRyPg0JCQkJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0NCSAgICAJCQk8dGQ+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvdGQ+DQkgICAgCQkJICAgICAgIHtpZiBub3QgKCRzbWFydHkuc2VjdGlvbi5udW1sb29wLnJvd251bSBtb2QgJGNvbHMpfQ0gICAgICAgICAgICAgICAgCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0NICAgICAgICAgICAgICAgICAgICAgICAgCQk8L3RyPjx0cj4NICAgICAgICAgICAgICAgIAkJCQl7L2lmfQ0gICAgICAgIAkJCQkJey9pZn0NICAgICAgIAkJCQl7aWYgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0NICAgICAgICAgICAgICAgIAkJe21hdGggZXF1YXRpb24gPSAibiAtIGEgJSBuIiBuPSRjb2xzIGE9JGVudHJ5LT5pbnB1dHxAY291bnQgYXNzaWduPSJjZWxscyJ9DSAgICAgICAgICAgICAgICAJCXtpZiAkY2VsbHMgbmUgJGNvbHN9DSAgICAgICAgICAgICAgICAJCQl7c2VjdGlvbiBuYW1lPXBhZCBsb29wPSRjZWxsc30NICAgICAgICAgICAgICAgICAgICAgICAgCQk8dGQ+Jm5ic3A7PC90ZD4NICAgICAgICAgICAgICAgIAkJCXsvc2VjdGlvbn0NICAgICAgICAgICAgICAgCQkgCXsvaWZ9DSAgICAgICAgICAgICAgICAJCTwvdHI+DSAgICAgICAgCQkJey9pZn0NCSAgICAJCXsvc2VjdGlvbn0NCSAgICAJCTwvdGFibGU+DQkgICAgCXtlbHNlfQoJICAgIAkJeyRlbnRyeS0+aW5wdXR9CgkgICAgCXsvaWZ9CgkgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0gey9pZn0KCSAgICAJPC90ZD48L3RyPgoJICAgIAl7L3N0cmlwfQoJICB7L2lmfQp7L2ZvcmVhY2h9Cjx0cj48dGQ+eyRwcmV2fXskc3VibWl0fTwvdGQ+PC90cj4KPC90YWJsZT4=]]></data>
	</file>
</module>
