<?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.5</version>
  <mincmsversion>1.1</mincmsversion>
	<help>PGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3NhbXBsZV9mb3JtJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgiKSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZwpzaW5nbGUgcXVvdGVzICgnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4KCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPgo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0ncyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4KPGg0Pk1haW48L2g0Pgo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSdsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPgo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgImZhc3QgZmllbGQgYWRkZXIiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlcidzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCJQcmV2aW91cyIsICJuZXh0IiwgInN1Ym1pdCIpLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSdzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91J3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91J3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+Cgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0J3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCAiUmVxdWlyZWQiLCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPgo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93CmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAiU3ViamVjdCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjwvdWw+PC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsnZmllbGRfbmFtZSddLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICJEaXJlY3RvciIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICJhcHByb3ZlZCwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICJvdXRwdXQiIGRpcmVjdG9yeSB1bmRlciB0aGUKbW9kdWxlJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+CjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+CjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPgoKPC91bD48L2xpPjwvbGk+PC91bD4KCgo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+CjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUKdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J215X2Zvcm0nIHZhbHVlXzxpPkZJRUxETkFNRTwvaT49J2RlZmF1bHRfdmFsdWUnfTwvcD4KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICdkZWZhdWx0X3ZhbHVlJy48L3A+CjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbid0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSdGb3JtQnVpbGRlcicgZm9ybT0nbXlfZm9ybScgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLAphbmQgY2hlY2sgIlNob3cgRmllbGQgSURzIjwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCdzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICJDcmVhdGUgU2FtcGxlIFRlbXBsYXRlIiBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAiQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlIiBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4KCjxoMz5Db25maWd1cmF0aW9uPC9oMz4KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPgo8dWw+CjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPgo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+CjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPgo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91J3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+CjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+CjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4KPC91bD4KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+CjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+CjxwcmU+CgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8KCWZvcm0ge21hcmdpbi10b3A6MH0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9Cglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQoJZmllbGRzZXQgZGl2IHsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbTsKCX0KCWZpZWxkc2V0IGRpdiBkaXYgewoJCW1hcmdpbi10b3A6MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtCgl9CglmaWVsZHNldCB7CgkJbWFyZ2luLWJvdHRvbToxZW07CgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOwoJCXBhZGRpbmc6MC41ZW0KCX0KCWZpZWxkc2V0IGxhYmVsIHsKCQl3aWR0aDphdXRvOwoJfQoJbGVnZW5kIHsKCQljb2xvcjojRkZGOwoJCWJhY2tncm91bmQ6I0Y2MDsKCQlmb250LXN0eWxlOml0YWxpYzsKCQlmb250LXNpemU6MS4yZW07CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQlwYWRkaW5nOjAuMmVtOwoJCXdpZHRoOmF1dG87CgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDCgl9Cgl0ZXh0YXJlYSB7CgkJbWFyZ2luOiAwLjVlbSAwOwoJCXdpZHRoOjk4JTsKCQloZWlnaHQ6IDZlbQoJfQoKCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMKCQl0byBoZWxwIGFsaWdubWVudCAqLwoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwKCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQoKCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovCgkuY2FwdGNoYSB7CgkJbWFyZ2luOjAuNWVtIDA7CgkJd2lkdGg6MjAwcHg7CgkJdGV4dC1hbGlnbjpjZW50ZXIKCX0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQoKCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLwoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0KPC9wcmU+Cgo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91J2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJiMxMjM7JGZiX2hpZGRlbn0gYW5kICYjMTIzOyRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPgoKCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQncyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQncyBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0iIj4pPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJ3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPgo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+IkNvbnRpbnVlIiBvciAiU3VibWl0IiBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPgo8L3RhYmxlPgo8cD5EdW5ubyB3aHkgeW91J2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPgoKCjxoMz5Lbm93biBJc3N1ZXM8L2gzPgo8dWw+CjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSdyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlICJIaWRlIEVycm9ycyIgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJ3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPgo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPgo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igd3JpdGUgeW91ciBxdWVzdGlvbnMgb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2FzaCkuPC9wPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q01TTWFpbGVyID0mZ3Q7IDEuNzM8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiByZXNwb25zZV9pZD0ibnVsbCIgLSBSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3NlcjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gdmFsdWVfKj0ibnVsbCIgLSBEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmaWVsZF9pZD0ibnVsbCIgLSBGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9uczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9ybT0ibnVsbCIgLSBGb3JtIE5hbWU8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGZvcm1faWQ9Im51bGwiIC0gRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9uczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmJycF8qPSJudWxsIiAtIEdlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9uczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gbGFuZz0iZW5fVVMiIC0gUGFyYW1ldGVyIGlzIHVzZWQgdG8gc3BlY2lmeSB3aGF0IGxhbmd1YWdlIHRvIHVzZSBmb3IgZGlzcGxheSBvbiB0aGUgZnJvbnRlbmQuIE5vdCBhbGwgbW9kdWxlcyBzdXBwb3J0IG9yIG5lZWQgdGhpcy48L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjU8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4KPHVsPgo8bGk+VmVyc2lvbiAwLjUuIDE5IEFwcmlsIDA4LiBCdWdmaXhlcywgc3VwcG9ydCBmb3IgRm9ybUJyb3dzZXIgZml4ZXMgYW5kIGZlYXR1cmVzLCBkaXNwb3NpdGlvbiB0eXBlIGZvciB1cGNvbWluZyBGb3JtQnJvd3NlciB2ZXJzaW9uLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMi4gMTQgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIFhNTCBleHBvcnQsIFJhZGlvQnV0dG9uIEdyb3VwIHN1Ym1pc3Npb24sIGFuZCBIVE1MIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4KPGxpPlZlcnNpb24gMC40Cgk8dWw+CgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+CgkJPGxpPk1hc3NpdmUgcmVqaWdnZXJpbmcgb2YgY29kZSB0byB3b3JrIHdpdGggQ01TIE1TIDEuMSBwYXJhbWV0ZXIgc2FuaXRpemluZyByZWdpbWU8L2xpPgoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogIlRleHRGaWVsZCAoTXVsdGlwbGUpIiBhbmQgIkNvbXB1dGVkIEZpZWxkIjwvbGk+CgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogIlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duIiBhbmQgIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMiKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+CgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9InZhbHVlIiBzeW50YXggKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4zCiAgIDx1bD4KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUncyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPgogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4KICAgICAgPGxpPkFkZGVkIERyYWcnbidEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+CiAgICAgIDxsaT48L2xpPgogICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3CiAgIDxwPkJpZyByZWxlYXNlOjx1bD4KICAgPGxpPkFkZGVkICJFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyIgZGlzcG9zaXRpb24uPC9saT4KICAgPGxpPkFkZGVkICJUaW1lUGlja2VyIiBmaWVsZCB0eXBlLiBTcGxpdCAiTGluayIgZmllbGQgaW50byBhICJVc2VyLXN1cHBsaWVkIExpbmsiIGZpZWxkIGFuZCBhICJTdGF0aWMgTGluayIgZmllbGQuPC9saT4KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPgogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPgogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjMKICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4yCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOgogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMKICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQKICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuCiAgICAgIDwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4KICAgICAgPC9saT4KICAgPC91bD4KICAgPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3J3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4KPGJyIC8+</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+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkKCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcyx0cnVlKTsKCQkkYWVmaWVsZCA9ICRhZWZvcm0tPk5ld0ZpZWxkKCRwYXJhbXMpOwoJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl91cGQnXSkgfHwKCQkJKGlzc2V0KCRwYXJhbXNbJ2ZicnBfYWVmX2FkZCddKSAmJiAkYWVmaWVsZC0+R2V0RmllbGRUeXBlKCkgIT0gJycpKQoJCQl7CgkJCS8vIHNhdmUgdGhlIGZpZWxkLgoJCQkkdGhpcy0+RG9BY3Rpb24oJ2FkbWluX3N0b3JlX2ZpZWxkJywgJGlkLCAkcGFyYW1zKTsKCQkJcmV0dXJuOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9hZGQnXSkpCgkJCXsKCQkJLy8gc2hvdWxkIGhhdmUgZ290IGEgZmllbGQgdHlwZSBkZWZpbml0aW9uLCBzbyBnaXZlIHJlc3Qgb2YgdGhlIGZpZWxkIG9wdGlvbnMKCQkJLy8gcmVzZXJ2ZSB0aGlzIHNwYWNlIGZvciBzcGVjaWFsIG9wcyA6KQoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9vcHRhZGQnXSkpCgkJCXsKCQkJLy8gY2FsbCB0aGUgZmllbGQncyBvcHRpb24gYWRkIG1ldGhvZCwgd2l0aCBhbGwgYXZhaWxhYmxlIHBhcmFtZXRlcnMKCQkJJGFlZmllbGQtPkRvT3B0aW9uQWRkKCRwYXJhbXMpOwoJCQl9CgkJZWxzZWlmIChpc3NldCgkcGFyYW1zWydmYnJwX2FlZl9vcHRkZWwnXSkpCgkJCXsKCQkJLy8gY2FsbCB0aGUgZmllbGQncyBvcHRpb24gZGVsZXRlIG1ldGhvZCwgd2l0aCBhbGwgYXZhaWxhYmxlIHBhcmFtZXRlcnMKCQkJJGFlZmllbGQtPkRvT3B0aW9uRGVsZXRlKCRwYXJhbXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vIG5ldyBmaWVsZCwgb3IgaW1wbGljaXQgYWVmX2FkZC4KCQkJLy8gYWdhaW4sIHJlc2VydmluZyB0aGUgc3BhY2UgZm9yIGZ1dHVyZSBlbmRlYXZvcnMKCQkJfQoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CgkJCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_edit_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoJCWVjaG8gJGFlZm9ybS0+QWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kdGhpcy0+U2hvd01lc3NhZ2UoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pOicnKTsKCj8+]]></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+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPkRlbGV0ZSgpOwoKICAgICAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtX2RlbGV0ZWQnKTsKICAgICAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHRhZG1pbicsICRpZCwgJHBhcmFtcyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_get_template.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAocHJlZ19tYXRjaCgnL1wudHBsJC8nLCRwYXJhbXNbJ2ZicnBfdGlkJ10pKQogICAgewogICAgJHRwbHN0ciA9IGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzLycuJHBhcmFtc1snZmJycF90aWQnXSk7CiAgICB9CmVsc2UKICAgIHsKICAgICRkYiA9ICYkZ0Ntcy0+R2V0RGIoKTsKICAgICRxdWVyeSA9ICJTRUxFQ1QgdmFsdWUgRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4KCQkibW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8gYW5kIG5hbWU9J2Zvcm1fdGVtcGxhdGUnIjsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJHBhcmFtc1snZmJycF90aWQnXSkpOwoJaWYgKCRkYnJlc3VsdCAhPT0gZmFsc2UgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQl7CgkJJHRwbHN0ciA9ICRyb3dbJ3ZhbHVlJ107CgkJfQogICAgfQoKICAgIEBvYl9jbGVhbigpOwogICAgQG9iX2NsZWFuKCk7CiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIHN0cmxlbigkdHBsc3RyKSk7CiAgICBlY2hvICR0cGxzdHI7CiAgICBleGl0Owo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgokYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgokZmllbGRzID0gYXJyYXkoKTsKZm9yZWFjaCAoJGFlZm9ybS0+R2V0RmllbGRzKCkgYXMgJHRoaXNGaWVsZCkKICAgewogICAkZmxkID0gbmV3IFN0ZENsYXNzKCk7CiAgICRmbGQtPmlkID0gJHRoaXNGaWVsZC0+R2V0SWQoKTsKICAgJGZsZC0+bmFtZSA9ICR0aGlzRmllbGQtPkdldE5hbWUoKTsKICAgJGZsZC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpOwogICBhcnJheV9wdXNoKCRmaWVsZHMsICRmbGQpOwogICB9CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLAoJCQknYWRtaW5fcmVvcmRlcl9zdG9yZScsICRyZXR1cm5pZCwgJ3Bvc3QnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfc3VibWl0JywgJHRoaXMtPkxhbmcoJ3Jlb3JkZXInKSwnb25jbGljaz0icmV0dXJuIHNlbmRfb3JkZXJfdmFyKCkiJykpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpZCcsJGlkKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLCR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2Zvcm1faWQnLCRwYXJhbXNbJ2Zvcm1faWQnXSkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdmaWVsZHMnLCRmaWVsZHMpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NjcmlwdGFjdWxvdXMnLAogICAnPHNjcmlwdCBzcmM9IicuZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKSkuCiAgICcvbGliL3NjcmlwdGFjdWxvdXMvc2NyaXB0YWN1bG91cy5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4nKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnUmVvcmRlckZvcm0udHBsJyk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_store.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRvcmRlcl9saXN0ID0gZXhwbG9kZSgnLCcsJHBhcmFtc1snZmJycF9vcmRlciddKTsKJGNvdW50ID0gMTsKCmlmICghIGlzX2FycmF5KCRvcmRlcl9saXN0KSkKCXsKCSRvcmRlcl9saXN0ID0gYXJyYXkoJG9yZGVyX2xpc3QpOwoJfQoKJGRiID0mICRnQ21zLT5HZXREYigpOwokc3FsID0gJ3VwZGF0ZSAnLmNtc19kYl9wcmVmaXgoKS4KCSdtb2R1bGVfZmJfZmllbGQgc2V0IG9yZGVyX2J5PT8gd2hlcmUgZmllbGRfaWQ9Pyc7CgkKZm9yZWFjaCAoJG9yZGVyX2xpc3QgYXMgJHRoaXNGaWVsZCkKCXsKCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkY291bnQsICR0aGlzRmllbGQpKTsKCSRjb3VudCsrOwoJfQoKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnKSk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_field.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJGFlZmllbGQgPSAkYWVmb3JtLT5OZXdGaWVsZCgkcGFyYW1zKTsKJHZhbCA9ICRhZWZpZWxkLT5BZG1pblZhbGlkYXRlKCk7CmlmICgkdmFsWzBdKQogIHsKICAgICRhZWZpZWxkLT5Qb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCk7CiAgICAkYWVmaWVsZC0+U3RvcmUodHJ1ZSk7CiAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXT0kcGFyYW1zWydmYnJwX29wJ107CiAgICAkdGhpcy0+RG9BY3Rpb24oJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkaWQsICRwYXJhbXMpOwogIH0KIGVsc2UKICAgewogICAgICRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CiAgICAgJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdmFsWzFdOwogICAgIGVjaG8gJGFlZm9ybS0+QWRkRWRpdEZpZWxkKCRpZCwgJGFlZmllbGQsIChpc3NldCgkcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddKT8kcGFyYW1zWydmYnJwX2Rpc3Bvc2Vfb25seSddOjApLCAkcmV0dXJuaWQsIGlzc2V0KCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKT8kcGFyYW1zWydmYnJwX21lc3NhZ2UnXTonJyk7CiAgIH0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_store_form.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRhZWZvcm0tPlN0b3JlKCk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2ZicnBfc3VibWl0J10gPT0gJHRoaXMtPkxhbmcoJ3NhdmUnKSkKICAgICAgICAgICAgewogICAgICAgICAgICAkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmYnJwX2Zvcm1fb3AnXSk7CiAgICAgICAgICAgICR0aGlzLT5Eb0FjdGlvbignZGVmYXVsdGFkbWluJywgJGlkLCAkcGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAJewoJCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCR0aGlzLT5MYW5nKCdmb3JtJywkcGFyYW1zWydmYnJwX2Zvcm1fb3AnXSkpOwoJCQl9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_config.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJyxpc3NldCgkcGFyYW1zWydmYnJwX2hpZGVfZXJyb3JzJ10pPyRwYXJhbXNbJ2ZicnBfaGlkZV9lcnJvcnMnXTowKTsKCQkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJyxpc3NldCgkcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddKT8kcGFyYW1zWydmYnJwX3Nob3dfdmVyc2lvbiddOjApOwoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4Jyxpc3NldCgkcGFyYW1zWydmYnJwX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSk/JHBhcmFtc1snZmJycF9yZWxheGVkX2VtYWlsX3JlZ2V4J106MCk7CgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnLGlzc2V0KCRwYXJhbXNbJ2ZicnBfcmVxdWlyZV9maWVsZG5hbWVzJ10pPyRwYXJhbXNbJ2ZicnBfcmVxdWlyZV9maWVsZG5hbWVzJ106MCk7CgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCd1bmlxdWVfZmllbGRuYW1lcycsaXNzZXQoJHBhcmFtc1snZmJycF91bmlxdWVfZmllbGRuYW1lcyddKT8kcGFyYW1zWydmYnJwX3VuaXF1ZV9maWVsZG5hbWVzJ106MCk7CgoJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdlbmFibGVfZmFzdGFkZCcsaXNzZXQoJHBhcmFtc1snZmJycF9lbmFibGVfZmFzdGFkZCddKT8kcGFyYW1zWydmYnJwX2VuYWJsZV9mYXN0YWRkJ106MCk7CgkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2VuYWJsZV9hbnRpc3BhbScsaXNzZXQoJHBhcmFtc1snZmJycF9lbmFibGVfYW50aXNwYW0nXSk/JHBhcmFtc1snZmJycF9lbmFibGVfYW50aXNwYW0nXTowKTsKCiAgICAgICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2hvd19maWVsZGlkcyddKT8kcGFyYW1zWydmYnJwX3Nob3dfZmllbGRpZHMnXTowKTsKICAgICAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGFsaWFzZXMnLGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2hvd19maWVsZGFsaWFzZXMnXSk/JHBhcmFtc1snZmJycF9zaG93X2ZpZWxkYWxpYXNlcyddOjApOwoKCQkkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uX3VwZGF0ZWQnKTsKICAgICAgICAkdGhpcy0+RG9BY3Rpb24oJ2RlZmF1bHRhZG1pbicsICRpZCwgJHBhcmFtcyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_order.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgICRzcmNJbmRleCA9ICRhZWZvcm0tPkdldEZpZWxkSW5kZXhGcm9tSWQoJHBhcmFtc1snZmllbGRfaWQnXSk7CiAgICAgICAgaWYgKCRwYXJhbXNbJ2ZicnBfZGlyJ10gPT0gJ3VwJykKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4IC0gMTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkZGVzdEluZGV4ID0gJHNyY0luZGV4ICsgMTsKICAgICAgICAgICAgfQogICAgICAgICRhZWZvcm0tPlN3YXBGaWVsZHNCeUluZGV4KCRzcmNJbmRleCwkZGVzdEluZGV4KTsKCi8vIGZvcmNlIHJlbG9hZCBvZiBmb3JtLCB0aGlzIGlzIGtpbmRhIGhhY2tpc2ggYnV0IGNhbnQgdGhpbmsgb2YgYW55dGhpbmcgZWxzZSA7KQokYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgoKICAgICAgICBlY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnKSkpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_update_field_required.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiAgICAgICAgJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwogICAgICAgIAogICAgICAgICRhZWZpZWxkID0gJGFlZm9ybS0+R2V0RmllbGRCeUlkKCRwYXJhbXNbJ2ZpZWxkX2lkJ10pOwoJCWlmICgkYWVmaWVsZCAhPT0gZmFsc2UpCgkJCXsKCQkJLy8kYWVmaWVsZC0+U2V0UmVxdWlyZWQoJHBhcmFtc1snZmJycF9hY3RpdmUnXT09J29uJz90cnVlOmZhbHNlKTsKCQkJJGFlZmllbGQtPlRvZ2dsZVJlcXVpcmVkKCk7CgkJCSRhZWZpZWxkLT5TdG9yZSgpOwogICAgICAgICAkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCX0KCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCAkdGhpcy0+TGFuZygnZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCcpKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKLy9kZWJ1Z19kaXNwbGF5KCRwYXJhbXMpOwoKaWYgKCEgaXNzZXQoJHBhcmFtc1snZm9ybV9pZCddKSAmJiBpc3NldCgkcGFyYW1zWydmb3JtJ10pKQogIHsKICAgIC8vIGdldCB0aGUgZm9ybSBieSBuYW1lLCBub3QgSUQKICAgICRwYXJhbXNbJ2Zvcm1faWQnXSA9ICR0aGlzLT5HZXRGb3JtSURGcm9tQWxpYXMoJHBhcmFtc1snZm9ybSddKTsKICB9CgovL2RlYnVnX2Rpc3BsYXkoJHBhcmFtcyk7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7CgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1faGVhZGVyJywgJGFlZm9ybS0+UmVuZGVyRm9ybUhlYWRlcigpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2Zvb3RlcicsJGFlZm9ybS0+UmVuZGVyRm9ybUZvb3RlcigpKTsKCiRmaW5pc2hlZCA9IGZhbHNlOwokZmllbGRFeHBhbmRPcCA9IGZhbHNlOwoKZm9yZWFjaCgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkKICAgewogICBpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVYXycgfHwgc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpCiAgICAgIHsKICAgICAgLy8gZXhwYW5kaW5nIG9yIHNocmlua2luZyBhIGZpZWxkCiAgICAgICRmaWVsZEV4cGFuZE9wID0gdHJ1ZTsKICAgICAgfQogICB9CgppZiAoICEkZmllbGRFeHBhbmRPcCAmJgogICAgKCgkYWVmb3JtLT5HZXRQYWdlQ291bnQoKSA+IDEgJiYgJGFlZm9ybS0+R2V0UGFnZU51bWJlcigpID4gMCkgfHwKICAgICAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpKSkKICAgIHsKICAgICRyZXMgPSAkYWVmb3JtLT5WYWxpZGF0ZSgpOwogICAgCiAgICBpZiAoJHJlc1swXSA9PT0gZmFsc2UpCiAgICAgIHsKCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzJywkcmVzWzFdKTsKCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycycsMSk7CgkgIAoJICAkYWVmb3JtLT5QYWdlQmFjaygpOwogICAgICB9CiAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2RvbmUnXSkgJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpCiAgICAgIHsKICAgICAgJG9rID0gdHJ1ZTsKICAgICAgJGNhcHRjaGEgPSAmJHRoaXMtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICAgIGlmICgkYWVmb3JtLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKT09ICcxJyAmJiAkY2FwdGNoYSAhPSBudWxsKQogICAgICAgICB7CiAgCSAgICAgIGlmICghICRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoJHBhcmFtc1snZmJycF9jYXB0Y2hhX3BocmFzZSddKSkKICAJICAgICAgICAgewogIAkgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGFfZXJyb3InLCRhZWZvcm0tPkdldEF0dHIoJ2NhcHRjaGFfd3JvbmcnLCR0aGlzLT5MYW5nKCd3cm9uZ19jYXB0Y2hhJykpKTsKICAJICAgICAgICAgCiAgCSAgICAgICAgICRhZWZvcm0tPlBhZ2VCYWNrKCk7CiAgICAgICAgICAgICRvayA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgaWYgKCRvaykKICAgICAgICAgewogICAgICAgICAkZmluaXNoZWQgPSB0cnVlOwoJICAgICAgJHJlc3VsdHMgPSAkYWVmb3JtLT5EaXNwb3NlKCRyZXR1cm5pZCk7CgkgICAgICB9CiAgICAgIH0KICB9CgppZiAoISAkZmluaXNoZWQpCiAgIHsKICAgJHBhcm1zID0gYXJyYXkoKTsKICAgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknLCRwYXJtcyk7CgogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsICgkYWVmb3JtLT5HZXRBdHRyKCdpbmxpbmUnLCcwJyk9PSAnMScpLCAnJykpOwoKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2VuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9kb25lJywwKTsKICAgfQplbHNlCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2RvbmUnLDEpOwogICBpZiAoJHJlc3VsdHNbMF0gPT0gdHJ1ZSkKICAgICAgewogICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgICAkcGFybXNbJ2Zvcm1faWQnXSA9ICRhZWZvcm0tPkdldElkKCk7CiAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0JywkcGFybXMpOwoKICAgICAgJGFjdCA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9hY3Rpb24nLCd0ZXh0Jyk7CiAgICAgIGlmICgkYWN0ID09ICd0ZXh0JykKICAgICAgICAgewogICAgICAgICAkbWVzc2FnZSA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9yZXNwb25zZScsJycpOwovKiAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3ViX2Zvcm1fbmFtZScsJGFlZm9ybS0+R2V0TmFtZSgpKTsKICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZGF0ZScsZGF0ZSgncicpKTsKICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJfaG9zdCcsJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pOwogICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9zb3VyY2VfaXAnLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKICAgICAgICAgaWYgKGVtcHR5KCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJfdXJsJywkdGhpcy0+TGFuZygnbm9fcmVmZXJyZXJfaW5mbycpKTsKICAgICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJfdXJsJywkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pOwogICAgICAgICAgICB9CiAgICAgICAgICRvdGhlcnMgPSAmJGFlZm9ybS0+R2V0RmllbGRzKCk7CiAgICAgICAgICR1bnNwZWMgPSAkYWVmb3JtLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJHRoaXMtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoKICAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAkZmllbGQgPSYgJG90aGVyc1skaV07CiAgICAgICAgICAgICRyZXBsVmFsID0gJyc7CiAgICAgICAgICAgICRyZXBsVmFscyA9IGFycmF5KCk7CiAgICAgICAgICAgIGlmICgkZmllbGQtPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKICAgICAgICAgICAgICAgewogCQkJCQkkcmVwbFZhbCA9IHByZWdfcmVwbGFjZSgnLzxicihccykqKFwvKSo+L2knLCd8QlJ8JywkZmllbGQtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpKTsKICAgICAgICAgIAkJCSRyZXBsVmFsID0gaHRtbHNwZWNpYWxjaGFycygkcmVwbFZhbCk7CgkJCQkJJHJlcGxWYWwgPSBwcmVnX3JlcGxhY2UoJy9cfEJSXHwvJywnPGJyIC8+JywkcmVwbFZhbCk7CiAgICAgICAgICAgICAvLyAkcmVwbFZhbCA9IGh0bWxzcGVjaWFsY2hhcnMoJGZpZWxkLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSk7CiAgICAgICAgICAgICAgIGlmICgkcmVwbFZhbCA9PSAnJykKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAkcmVwbFZhbCA9ICR1bnNwZWM7CgkgICAgICAJCQl9CgkgICAgCQlpZiAoJGZpZWxkLT5IYXNNdWx0aXBsZVZhbHVlcygpKQoJICAgICAgICAJCXsKCSAgICAgICAgCQkkcmVwbFZhbHMgPSAkZmllbGQtPkdldFZhbHVlKCk7CgkgICAgICAgIAkJfQogICAgICAgICAgICAgICB9CgkJCWlmKCBpc3NldCggJF9GSUxFU1skcmVwbFZhbF0gKSAmJiAkX0ZJTEVTWyRyZXBsVmFsXVsnc2l6ZSddID4gMCApCgkJCQkgICAgICAgIHsKCQkJCSAgICAJJHRoaXNGaWxlID0mICRfRklMRVNbJHJlcGxWYWxdOyAKCQkJCQkgICRyZXBsVmFsID0gJHRoaXNGaWxlWyduYW1lJ107CgkJCQkJfQogICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigkYWVmb3JtLT5NYWtlVmFyKCRmaWVsZC0+R2V0TmFtZSgpKSwKICAgICAgICAgICAgICAgICAgJHJlcGxWYWwpOwogICAgICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmxkXycuJGZpZWxkLT5HZXRJZCgpLCRyZXBsVmFsKTsKICAgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJGFlZm9ybS0+TWFrZVZhcigkZmllbGQtPkdldE5hbWUoKSkuJ19hcnJheScsCiAgICAgICAgICAgICAgICAgICRyZXBsVmFscyk7CiAgICAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kZmllbGQtPkdldElkKCkuJ19hcnJheScsJHJlcGxWYWxzKTsKICAgICAgICAgICAgfQoqLwoJCSAkYWVmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRtZXNzYWdlICk7CiAgICAgICAgIH0KICAgICAgZWxzZSBpZiAoJGFjdCA9PSAncmVkaXInKQogICAgICAgICB7CiAgICAgICAgICRyZXQgPSAkYWVmb3JtLT5HZXRBdHRyKCdyZWRpcmVjdF9wYWdlJywnLTEnKTsKICAgICAgICAgaWYgKCRyZXQgIT0gLTEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPlJlZGlyZWN0Q29udGVudCgkcmV0KTsKCSAgIAkJfQogICAgICAgICB9CiAgICAgIH0KICAgZWxzZQogICAgICB7CiAgICAgICRwYXJtcyA9IGFycmF5KCk7CiAgICAgICRwYXJhbXNbJ2ZicnBfZXJyb3InXT0nJzsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9zdWJtaXNzaW9uX2Vycm9yJywKCSAJJHRoaXMtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3InKSk7CgogICAgICAkc2hvdyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsMCk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0JywkcmVzdWx0c1sxXSk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycycsJHNob3cpOwoKICAgICAgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgICAgJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAgICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJywkcGFybXMpOwogICAgICB9CiAgIH0KCmVjaG8gJGFlZm9ybS0+UmVuZGVyRm9ybSgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkvLyBhbmQgYSBsaXN0IG9mIGFsbCB0aGUgZXh0YW50IGZvcm1zLgogICAgICAgICRmb3JtcyA9ICR0aGlzLT5HZXRGb3JtcygpOwoJCSRudW1fZm9ybXMgPSBjb3VudCgkZm9ybXMpOwogICAgICAgIAogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGFiaGVhZGVycycsICR0aGlzLT5TdGFydFRhYkhlYWRlcnMoKSAuCgkJCSR0aGlzLT5TZXRUYWJIZWFkZXIoJ2Zvcm1zJywkdGhpcy0+TGFuZygnZm9ybXMnKSkgLgoJCQkkdGhpcy0+U2V0VGFiSGVhZGVyKCdjb25maWcnLCR0aGlzLT5MYW5nKCdjb25maWd1cmF0aW9uJykpIC4KCQkJJHRoaXMtPkVuZFRhYkhlYWRlcnMoKS4KCQkJJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm10YWInLCR0aGlzLT5TdGFydFRhYigiZm9ybXMiKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9jb25maWd0YWInLCR0aGlzLT5TdGFydFRhYigiY29uZmlnIikpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3RhYicsJHRoaXMtPkVuZFRhYigpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF90YWJzJywkdGhpcy0+RW5kVGFiQ29udGVudCgpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJHRoaXMtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpKTsKICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fYWxpYXMnLCR0aGlzLT5MYW5nKCd0aXRsZV9mb3JtX2FsaWFzJykpOwogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfY29uZmlnZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJCSdhZG1pbl91cGRhdGVfY29uZmlnJywgJHJldHVybmlkKSk7CiAgICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgaXNzZXQoJHBhcmFtc1snZmJycF9tZXNzYWdlJ10pPyRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddOicnKTsKCgkJJGZvcm1BcnJheSA9IGFycmF5KCk7CgkJJGN1cnJvdyA9ICJyb3cxIjsKCQlmb3JlYWNoICgkZm9ybXMgYXMgJHRoaXNGb3JtKQogICAgCQl7CgkJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQkJJG9uZXNldC0+cm93Y2xhc3MgPSAkY3Vycm93OwoJCQlpZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJykpCgkJCQl7CgkJCQkkb25lc2V0LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLAoJCQkJIAknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLAogICAgICAgICAgICAJCSR0aGlzRm9ybVsnbmFtZSddLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzRm9ybVsnZm9ybV9pZCddKSk7CgkJCQkkb25lc2V0LT54bWwgPSAkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ2V4cG9ydHhtbCcsJycsIjxpbWcgc3JjPVwiIi4kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiIvaW1hZ2VzL2Ntcy94bWxfcnNzLmdpZlwiIGNsYXNzPVwic3lzdGVtaWNvblwiIGFsdD1cIkV4cG9ydCBGb3JtIGFzIFhNTFwiIC8+IixhcnJheSgnZm9ybV9pZCc9PiR0aGlzRm9ybVsnZm9ybV9pZCddKSk7CgkJCQkkb25lc2V0LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCQknYWRtaW5fYWRkX2VkaXRfZm9ybScsICcnLAoJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCR0aGlzLT5MYW5nKCdlZGl0JyksJycsJycsJ3N5c3RlbWljb24nKSwKCQkJCQkJYXJyYXkoJ2Zvcm1faWQnPT4kdGhpc0Zvcm1bJ2Zvcm1faWQnXSkpOwoJCQkJJG9uZXNldC0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCQknYWRtaW5fZGVsZXRlX2Zvcm0nLCAnJywKCQkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCR0aGlzLT5MYW5nKCdkZWxldGUnKSwnJywnJywnc3lzdGVtaWNvbicpLAoJCQkJCWFycmF5KCdmb3JtX2lkJz0+JHRoaXNGb3JtWydmb3JtX2lkJ10pLAoJCQkJCSR0aGlzLT5MYW5nKCdhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nLCR0aGlzRm9ybVsnbmFtZSddKSk7CgoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkb25lc2V0LT5uYW1lPSR0aGlzRm9ybVsnbmFtZSddOwoJCQkJJG9uZXNldC0+ZWRpdGxpbmsgPSAnJzsKCQkJCSRvbmVzZXQtPmRlbGV0ZWxpbmsgPSAnJzsKCQkJCX0KCQkJJG9uZXNldC0+dXNhZ2UgPSAkdGhpc0Zvcm1bJ2FsaWFzJ107CgkJCWFycmF5X3B1c2goJGZvcm1BcnJheSwkb25lc2V0KTsKCQkJKCRjdXJyb3cgPT0gInJvdzEiPyRjdXJyb3c9InJvdzIiOiRjdXJyb3c9InJvdzEiKTsKCQkJfQoJCWlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKSkKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGxpbmsnLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsCgkJCQkkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCAkdGhpcy0+TGFuZygndGl0bGVfYWRkX25ld19mb3JtJyksJycsCgkJCQkJJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoKSkpOwoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZGZvcm0nLCR0aGlzLT5DcmVhdGVMaW5rKCRpZCwKCQkJCSdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJycsICR0aGlzLT5MYW5nKCd0aXRsZV9hZGRfbmV3X2Zvcm0nKSwKCQkJCWFycmF5KCkpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtYXlfY29uZmlnJywxKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vX3Blcm1pc3Npb24nLAoJCQkJJHRoaXMtPkxhbmcoJ2xhY2twZXJtaXNzaW9uJykpOwoJCQl9CgkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2hpZGVfZXJyb3JzJywkdGhpcy0+TGFuZygndGl0bGVfaGlkZV9lcnJvcnMnKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2hpZGVfZXJyb3JzJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2hpZGVfZXJyb3JzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hpZGVfZXJyb3JzJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnKSk7CQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnLCR0aGlzLT5MYW5nKCd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4JykpOwkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWxheGVkX2VtYWlsX3JlZ2V4JywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX3JlbGF4ZWRfZW1haWxfcmVnZXgnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnKSk7CgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZW5hYmxlX2Zhc3RhZGQnLCR0aGlzLT5MYW5nKCd0aXRsZV9lbmFibGVfZmFzdGFkZCcpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9mYXN0YWRkJywkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX2VuYWJsZV9mYXN0YWRkJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2VuYWJsZV9mYXN0YWRkJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnKSk7CQkKCgoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJywkdGhpcy0+TGFuZygndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJykpOwkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZXF1aXJlX2ZpZWxkbmFtZXMnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfcmVxdWlyZV9maWVsZG5hbWVzJywgMSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JlcXVpcmVfZmllbGRuYW1lcycsJzEnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZycpKTsJCQoKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV91bmlxdWVfZmllbGRuYW1lcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW5wdXRfdW5pcXVlX2ZpZWxkbmFtZXMnLCR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfdW5pcXVlX2ZpZWxkbmFtZXMnLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgndW5pcXVlX2ZpZWxkbmFtZXMnLCcxJykpLiAkdGhpcy0+TGFuZygndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZycpKTsJCQoKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbScsJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbScpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2VuYWJsZV9hbnRpc3BhbScsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9lbmFibGVfYW50aXNwYW0nLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJykpOwoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zaG93X2ZpZWxkaWRzJywkdGhpcy0+TGFuZygndGl0bGVfc2hvd19maWVsZGlkcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X2ZpZWxkaWRzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRjaGVja2JveCgkaWQsJ2ZicnBfc2hvd19maWVsZGlkcycsMSwKCQkJCQkgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGlkcycsJzAnKSkuICR0aGlzLT5MYW5nKCd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnKSk7CgoJJHNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJykpOwoJJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zaG93X2ZpZWxkYWxpYXNlcycsCgkJCSR0aGlzLT5DcmVhdGVJbnB1dGNoZWNrYm94KCRpZCwnZmJycF9zaG93X2ZpZWxkYWxpYXNlcycsMSwKCQkJCQkJICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRhbGlhc2VzJywnMCcpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnKSk7CgoKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3Nob3dfdmVyc2lvbicsJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfdmVyc2lvbicpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3Nob3dfdmVyc2lvbicsJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9zaG93X3ZlcnNpb24nLCAxLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2hvd192ZXJzaW9uJywnMScpKS4gJHRoaXMtPkxhbmcoJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJykpOwkJCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdzYXZlJykpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2VuZF9jb25maWdmb3JtJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfeG1sZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJCSdpbXBvcnR4bWwnLCAkcmV0dXJuaWQsICdwb3N0JywnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHhtbCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCd1cGxvYWQnKSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX3htbGZvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF90b191cGxvYWQnLCR0aGlzLT5DcmVhdGVJbnB1dEZpbGUoJGlkLCAnZmJycF94bWxmaWxlJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbF90b191cGxvYWQnLCR0aGlzLT5MYW5nKCd0aXRsZV94bWxfdG9fdXBsb2FkJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnLCR0aGlzLT5MYW5nKCd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF91cGxvYWRfZm9ybW5hbWUnLAoJCSAgICAgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdmYnJwX2ltcG9ydF9mb3JtbmFtZScsJycsMjUpKTsKICAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcycsJHRoaXMtPkxhbmcoJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJykpOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3htbF91cGxvYWRfZm9ybWFsaWFzJywKCQkgICAgICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnZmJycF9pbXBvcnRfZm9ybWFsaWFzJywnJywyNSkpOwogICAgICAkc21hcnR5LT5hc3NpZ24oJ2luZm9fbGVhdmVlbXB0eScsJHRoaXMtPkxhbmcoJ2hlbHBfbGVhdmVlbXB0eScpKTsKICAgICAgJHNtYXJ0eS0+YXNzaWduKCdsZWdlbmRfeG1sX2ltcG9ydCcsJHRoaXMtPkxhbmcoJ3RpdGxlX2ltcG9ydF9sZWdlbmQnKSk7CgogICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2Zvcm1zJywgJGZvcm1BcnJheSk7CQkJCiAgICAgICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdBZG1pbk1haW4udHBsJyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.exportxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISBpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pICYmIGlzc2V0KCRwYXJhbXNbJ2Zvcm0nXSkpCiAgewogICAgLy8gZ2V0IHRoZSBmb3JtIGJ5IG5hbWUsIG5vdCBJRAogICAgJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldEZvcm1JREZyb21BbGlhcygkcGFyYW1zWydmb3JtJ10pOwogIH0KCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCRwYXJhbXMsdHJ1ZSk7Cgokc3BlYyA9ICRhZWZvcm0tPkdldE5hbWUoKS4iLnhtbCI7CiRzcGVjID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXC5cLVxfXS8nLCdfJywkc3BlYyk7CiR4bWxzdHIgPSAkYWVmb3JtLT5FeHBvcnRYTUwoaXNzZXQoJHBhcmFtc1snZmJycF9leHBvcnRfdmFsdWVzJ10pP3RydWU6ZmFsc2UpOwoKICAgIEBvYl9jbGVhbigpOwogICAgQG9iX2NsZWFuKCk7CiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7CiAgICBoZWFkZXIoJ0V4cGlyZXM6IDAnKTsKICAgIGhlYWRlcignQ2FjaGUtQ29udHJvbDogbXVzdC1yZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wJyk7CiAgICBoZWFkZXIoJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUnLGZhbHNlKTsKICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2ZvcmNlLWRvd25sb2FkOyBjaGFyc2V0PXV0Zi04Jyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAnIC4gc3RybGVuKCR4bWxzdHIpKTsKICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9JyAuICRzcGVjKTsKICAgIGVjaG8gJHhtbHN0cjsKICAgIGV4aXQ7Cj8+]]></data>
	</file>
	<file>
	  <filename>/action.importxml.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSA9ICRfRklMRVNbJGlkLidmYnJwX3htbGZpbGUnXVsndG1wX25hbWUnXTsKCiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKJHJlcyA9ICRhZWZvcm0tPkltcG9ydFhNTCgkcGFyYW1zKTsKCmlmICgkcmVzKQoJewoJJHBhcmFtc1snZmJycF9tZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygnZm9ybV9pbXBvcnRlZCcpOwoJfQplbHNlCgl7CgkkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdmb3JtX2ltcG9ydF9mYWlsZWQnKTsKCX0KJHRoaXMtPkRvQWN0aW9uKCdkZWZhdWx0YWRtaW4nLCAkaWQsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.validate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgkJCmlmICghaXNzZXQoJHBhcmFtc1snZmJycF9mJ10pIHx8ICFpc3NldCgkcGFyYW1zWydmYnJwX3InXSkgfHwgIWlzc2V0KCRwYXJhbXNbJ2ZicnBfYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InKTsKCX0KJHBhcmFtc1sncmVzcG9uc2VfaWQnXT0kcGFyYW1zWydmYnJwX3InXTsKJHBhcmFtc1snZm9ybV9pZCddPSRwYXJhbXNbJ2ZicnBfZiddOwokcGFyYW1zWydmYnJwX3VzZXJfZm9ybV92YWxpZGF0ZSddPXRydWU7CiRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKCmlmICghJGFlZm9ybS0+Q2hlY2tSZXNwb25zZSgkcGFyYW1zWydmYnJwX2YnXSwgJHBhcmFtc1snZmJycF9yJ10sICRwYXJhbXNbJ2ZicnBfYyddKSkKCXsKCWVjaG8gJHRoaXMtPkxhbmcoJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InKTsKCX0KCiRmaWVsZHMgPSAkYWVmb3JtLT5HZXRGaWVsZHMoKTsKJGNvbmZpcm1hdGlvbkZpZWxkID0gLTE7CmZvcigkaT0wOyRpPGNvdW50KCRmaWVsZHMpOyRpKyspCgl7CglpZiAoJGZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJykKCQl7CgkJJGNvbmZpcm1hdGlvbkZpZWxkID0gJGk7CgkJfQoJfQppZiAoJGNvbmZpcm1hdGlvbkZpZWxkICE9IC0xKQoJewoJJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5BcHByb3ZlVG9HbygkcGFyYW1zWydmYnJwX3InXSk7CgkkcmVzdWx0cyA9ICRhZWZvcm0tPkRpc3Bvc2UoJHJldHVybmlkKTsKCWlmICgkcmVzdWx0c1swXSA9PSB0cnVlKQoJCXsKCQkkcmV0ID0gJGZpZWxkc1skY29uZmlybWF0aW9uRmllbGRdLT5HZXRPcHRpb24oJ3JlZGlyZWN0X3BhZ2UnLCctMScpOwoJCWlmICgkcmV0ICE9IC0xKQoJCQl7CgkJCSR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CgkJCX0KCQl9CgllbHNlCgkJewoJCWVjaG8gIkVycm9yITogIjsKCQlmb3JlYWNoICgkcmVzdWx0c1sxXSBhcyAkdGhpc1JlcykKCQkJewoJCQllY2hvICR0aGlzUmVzIC4gJzxiciAvPic7CgkJCX0KCQl9Cgl9CmVsc2UKCXsKCQllY2hvICR0aGlzLT5MYW5nKCd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJyk7Cgl9Cj8+Cg==]]></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+J2NoZWNrZWQnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRsYWJlbCA9ICcnOwoJCWlmIChzdHJsZW4oJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSkgPiAwKQoJCQl7CgkJCSRsYWJlbCA9ICcmbmJzcDs8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLiciPicuJHRoaXMtPkdldE9wdGlvbignbGFiZWwnKS4nPC9sYWJlbD4nOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UgJiYgJHRoaXMtPkdldE9wdGlvbignaXNfY2hlY2tlZCcsJzAnKT09JzEnKQoJCQl7CgkJCSR0aGlzLT5WYWx1ZSA9ICd0JzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAndCcsJHRoaXMtPlZhbHVlLCcgaWQ9IicuJGlkLidfJy4kdGhpcy0+SWQuJyInKS4kbGFiZWw7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRyZXQgPSAgKCR0aGlzLT5HZXRPcHRpb24oJ2lzX2NoZWNrZWQnLCcwJyk9PScxJz8kbW9kLT5MYW5nKCdjaGVja2VkX2J5X2RlZmF1bHQnKTokbW9kLT5MYW5nKCd1bmNoZWNrZWRfYnlfZGVmYXVsdCcpKTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGFiZWwnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJyksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfY2hlY2tlZCcpKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdW5jaGVja2VkX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3VuY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSksMjUsMjU1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2lzX2NoZWNrZWQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9pc19jaGVja2VkJywgJzEnLCAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpKSkKCQkJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkcmVzdWx0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICcnOwoKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdub25lJzoKCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnY2hlY2tlZCc6CgkJICAJICAgICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCSAgCSAgICAgICAgICAgewoJCSAgCSAgICAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwoJCSAgCSAgICAgICAgICAgJG1lc3NhZ2UgPSAkbW9kLT5MYW5nKCd5b3VfbXVzdF9jaGVjaycsJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSk7CgkJICAJICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkcmVzdWx0LCAkbWVzc2FnZSk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCWZ1bmN0aW9uIGZiQ2hlY2tib3hHcm91cEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5ib3hDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdib3hlcycsJHRoaXMtPmJveENvdW50KTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2NoZWNrYm94ZXMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfY2hlY2tib3hlcycpOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCSRpc19zZXQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpCgkJCXsKCQkJJG5hbWVzID0gYXJyYXkoJG5hbWVzKTsKCQkJfQkKCQlpZiAoISBpc19hcnJheSgkaXNfc2V0KSkKCQkJewoJCQkkaXNfc2V0ID0gYXJyYXkoJGlzX3NldCk7CgkJCX0KCQkkZmllbGREaXNwID0gYXJyYXkoKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCSRsYWJlbCA9ICcnOwoJCQkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJCQlpZiAoc3RybGVuKCRuYW1lc1skaV0pID4gMCkKCQkJCXsKCQkJCSR0aGlzQm94LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nXycuJGkuJyI+Jy4kbmFtZXNbJGldLic8L2xhYmVsPic7CgkJCQkkdGhpc0JveC0+dGl0bGUgPSAkbmFtZXNbJGldOwoJCQkJfQoJCQkkY2hlY2tfdmFsID0gZmFsc2U7CgkJCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJCQkJewoJCQkJJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaS0xKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJaWYgKGlzc2V0KCRpc19zZXRbJGldKSAmJiAkaXNfc2V0WyRpXSA9PSAneScpCgkJCQkJewoJCQkJCSRjaGVja192YWwgPSB0cnVlOwoJCQkJCX0KCQkJCX0KCQkJJHRoaXNCb3gtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAoJGkrMSksCgkJCQkkY2hlY2tfdmFsICE9PSBmYWxzZT8oJGkrMSk6Jy0xJywnIGlkPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJ18nLiRpLiciJyk7CgoJCQlhcnJheV9wdXNoKCRmaWVsZERpc3AsICR0aGlzQm94KTsKCQkJfQkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpCgkJCXsKCQkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJCX0JCQoJCSRjaGVja2VkID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9jaGVja2VkJyk7CgkJaWYgKCEgaXNfYXJyYXkoJGNoZWNrZWQpKQoJCQl7CgkJCQkkY2hlY2tlZCA9IGFycmF5KCRjaGVja2VkKTsKCQkJfQoJCSR1bmNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X3VuY2hlY2tlZCcpOwoJCWlmICghIGlzX2FycmF5KCR1bmNoZWNrZWQpKQoJCQl7CgkJCQkkdW5jaGVja2VkID0gYXJyYXkoJHVuY2hlY2tlZCk7CgkJCX0KCQkkZmllbGRSZXQgPSBhcnJheSgpOwoJCWZvciAoJGk9MTskaTw9Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCQlpZiAoJHRoaXMtPkZpbmRBcnJheVZhbHVlKCRpKSA9PT0gZmFsc2UpCgkJCQkJewoJCQkJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignbm9fZW1wdHknLCcwJykgIT0gJzEnICYmIGlzc2V0KCR1bmNoZWNrZWRbJGktMV0pICYmIHRyaW0oJHVuY2hlY2tlZFskaS0xXSkgIT0gJycgKQoJCQkJCQkJewoJCQkJCQkJJGZpZWxkUmV0W10gPSAkdW5jaGVja2VkWyRpLTFdOwoJCQkJCQkJfQoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWlmKCBpc3NldCgkY2hlY2tlZFskaS0xXSkgJiYgdHJpbSgkY2hlY2tlZFskaS0xXSkgIT0gJycgKQoJCQkJCQkJJGZpZWxkUmV0W10gPSAkY2hlY2tlZFskaS0xXTsKCQkJCQl9CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJGZpZWxkUmV0KTsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gJGZpZWxkUmV0OwoJCQl9Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmJveEFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X2NoZWNrZWQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X3VuY2hlY2tlZCcsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfaXNfc2V0JywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR5ZXNObyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PiduJywkbW9kLT5MYW5nKCd5ZXMnKT0+J3knKTsKCgkJJHRoaXMtPmNvdW50Qm94ZXMoKTsKCQlpZiAoJHRoaXMtPmJveEFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmJveENvdW50ICs9ICR0aGlzLT5ib3hBZGQ7CgkJCSR0aGlzLT5ib3hBZGQgPSAwOwoJCQl9CgkJJGJveGVzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV91bmNoZWNrZWRfdmFsdWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9zZXQnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKCgkJZm9yICgkaT0wOyRpPCgkdGhpcy0+Ym94Q291bnQ+MT8kdGhpcy0+Ym94Q291bnQ6MSk7JGkrKykKCQkJewoJCQkkYm94ZXMgLj0gJzx0cj48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYm94X25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF9uYW1lJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYm94X2NoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2JveF9jaGVja2VkJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYm94X3VuY2hlY2tlZFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYm94X3VuY2hlY2tlZCcsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuICAgICAgICAgICAgCQkgICAgCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9ib3hfaXNfc2V0W10nLCAkeWVzTm8sIC0xLCAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYm94X2lzX3NldCcsJGkpKS4KICAgICAgICAgICAgCQkKICAgICAgICAgICAgCQkKICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KLy9DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJHNlbGVjdGVkdmFsdWU9JycsCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRib3hlcyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9ub19lbXB0eScsJzAnKS4KCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X25vX2VtcHR5JywnMScsJHRoaXMtPkdldE9wdGlvbignbm9fZW1wdHknLCcwJykpLgoJCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJyksCgkgICAgICAgICAgICksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnKSwkYm94ZXMpCgkJKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCgl7CgkJJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJJGNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2NoZWNrZWQnKTsKCQkkdW5jaGVja2VkID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF91bmNoZWNrZWQnKTsKCQkkaXNfc2V0ID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9pc19zZXQnKTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQoJCQl7CgkJCWlmICgkbmFtZXNbJGldID09ICcnICYmICRjaGVja2VkWyRpXSA9PSAnJyApCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X25hbWUnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X2NoZWNrZWQnLCAkaSk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X3VuY2hlY2tlZCcsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfaXNfc2V0JywgJGkpOwoJCQkJJGktLTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5jb3VudEJveGVzKCk7Cgl9CgkKCWZ1bmN0aW9uIE9wdGlvbnNBc1hNTCgpCgl7CgkJJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJaWYgKCEgaXNfYXJyYXkoJG5hbWVzKSkKCQkJewoJCQkJJG5hbWVzID0gYXJyYXkoJG5hbWVzKTsKCQkJfQkJCgkJJGNoZWNrZWQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2NoZWNrZWQnKTsKCQlpZiAoISBpc19hcnJheSgkY2hlY2tlZCkpCgkJCXsKCQkJCSRjaGVja2VkID0gYXJyYXkoJGNoZWNrZWQpOwoJCQl9CgkJJHVuY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfdW5jaGVja2VkJyk7CgkJaWYgKCEgaXNfYXJyYXkoJHVuY2hlY2tlZCkpCgkJCXsKCQkJCSR1bmNoZWNrZWQgPSBhcnJheSgkdW5jaGVja2VkKTsKCQkJfQoJCSR4bWxzdHIgPSAiIjsKCQlmb3IgKCRpPTE7JGk8PWNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQkkeG1sc3RyIC49ICJcdFx0XHQ8b3B0aW9uPlxuIjsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0XHQ8bmFtZT48IVtDREFUQVsiLiRuYW1lc1skaS0xXS4iXV0+PC9uYW1lPlxuIjsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0XHQ8Y2hlY2tlZF92YWx1ZT48IVtDREFUQVsiLiRjaGVja2VkWyRpLTFdLiJdXT48L2NoZWNrZWRfdmFsdWU+XG4iOwoJCQkkeG1sc3RyIC49ICJcdFx0XHRcdDx1bmNoZWNrZWRfdmFsdWU+PCFbQ0RBVEFbIi4kdW5jaGVja2VkWyRpLTFdLiJdXT48L3VuY2hlY2tlZF92YWx1ZT5cbiI7CgkJCSRpc2NoZWNrZWQgPSAiZmFsc2UiOwoJCQlpZiAoJHRoaXMtPkZpbmRBcnJheVZhbHVlKCRpKSAhPT0gZmFsc2UpCgkJCQl7CgkJCQkkaXNjaGVja2VkID0gInRydWUiOwoJCQkJfQoJCQkKCQkJJHhtbHN0ciAuPSAiXHRcdFx0XHQ8Y2hlY2tlZD4kaXNjaGVja2VkPC9jaGVja2VkPlxuIjsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0PC9vcHRpb24+XG4iOwoJCQl9CgoJCXJldHVybiAkeG1sc3RyOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/ComputedField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKICAgCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNyBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiQ29tcHV0ZWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiQ29tcHV0ZWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnQ29tcHV0ZWRGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDE7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgICAkdGhpcy0+SXNDb21wdXRlZE9uU3VibWlzc2lvbiA9IHRydWU7CiAgfQoKICAgIGZ1bmN0aW9uIENvbXB1dGVPcmRlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ29yZGVyJywnMScpOyAgICAKICAgIH0KCiAgICBmdW5jdGlvbiBDb21wdXRlKCkKICAgIHsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgogICAgICAgICRtYXBJZCA9IGFycmF5KCk7CgogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKCSAgICAgICAgJG1hcElkWyRvdGhlcnNbJGldLT5HZXRJZCgpXSA9ICRpOwogICAgICAgICAgICB9CgogICAgICAgICRmbGRzID0gYXJyYXkoKTsKICAgICAgICAkcHJvY3N0ciA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CiAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cJGZsZF8oXGQrKS8nLCAkcHJvY3N0ciwgJGZsZHMpOwogICAgICAgIAogICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykgPT0gJ251bWVyaWMnKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbnVtZXJpYygkb3RoZXJzWyRyZWZdLT5HZXRWYWx1ZSgpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkcHJvY3N0ciA9IHN0cl9yZXBsYWNlKCckZmxkXycuJHRGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG90aGVyc1skcmVmXS0+R2V0VmFsdWUoKSwkcHJvY3N0cik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb2NzdHIgPSBzdHJfcmVwbGFjZSgnJGZsZF8nLiR0RiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwJywkcHJvY3N0cik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAkc3RyVG9FdmFsID0gIlwkdGhpcy0+VmFsdWU9JHByb2NzdHI7IjsKICAgICAgICAgICAgLy8gc2VlIGlmIHdlIGNhbiB0cmFwIGFuIGVycm9yCiAgICAgICAgICAgIC8vIHRoaXMgaXMgYWxsIHZ1bG5lcmFibGUgdG8gYW4gZXZpbCBmb3JtIGRlc2lnbmVyLCBidXQKICAgICAgICAgICAgLy8gbm90IGFuIGV2aWwgZm9ybSB1c2VyLiAKICAgICAgICAgICAgb2Jfc3RhcnQoKTsKCQkJaWYgKGV2YWwoJ2Z1bmN0aW9uIHRlc3RjZmllbGQnLnJhbmQoKS4KCQkJICAgICcoKSB7Jy4kc3RyVG9FdmFsLid9JykgPT09IEZBTFNFKQoJCQkgICAgewoJCQkgICAgJHRoaXMtPlZhbHVlID0gJG1vZC0+TGFuZygndGl0bGVfYmFkX2Z1bmN0aW9uJywkcHJvY3N0cik7CgkJCSAgICB9CgkJCWVsc2UKCQkJICAgIHsKCQkJICAgIGV2YWwoJHN0clRvRXZhbCk7CgkJCSAgICB9IAoJCQlvYl9lbmRfY2xlYW4oKTsKICAgICAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAkdGhpc1ZhbHVlID0gJyc7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+VmFsdWUgLj0gJG90aGVyc1skcmVmXS0+R2V0VmFsdWUoKS4nICc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgIH0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRwcm9jZXNzVHlwZSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX251bWVyaWMnKT0+J251bWVyaWMnLAoJCSAgICAkbW9kLT5MYW5nKCd0aXRsZV9zdHJpbmcnKT0+J3N0cmluZycpOwoJCQoJCSRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJykuJzwvdGg+PC90cj4nOwogICAgICAgICRyZXQgLj0gJzx0cj48dGg+Jy4kbW9kLT5MYW5nKCdoZWxwX3BocF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgICAgICRvZGQgPSBmYWxzZTsKCiAgICAgICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgaWYgKCEgJG90aGVyc1skaV0tPkhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMoKSkKICAgICAgICAgICAgICAgIHsKCSAgICAgICAgICAgICRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAgICAgICAgICAgICAnIj4kZmxkXycuJG90aGVyc1skaV0tPkdldElkKCkuCgkgICAgICAgICAgICAgICAgJzwvdGQ+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuCgkgICAgICAgICAgICAgICAgJyI+JyAuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3RkPjwvdHI+JzsKCSAgICAgICAgICAgIH0KCSAgCSAgICAkb2RkID0gISAkb2RkOwoJICAgICAgICB9CgkgICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiRtb2QtPkxhbmcoJ29wZXJhdG9yc19oZWxwJykgLgoJICAgICAgICAnPC90ZD48L3RyPjwvdGFibGU+JzsKCQkKCQkkbWFpbiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY29tcHV0ZV92YWx1ZScpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF92YWx1ZScsJHRoaXMtPkdldE9wdGlvbigndmFsdWUnLCcnKSwzNSwxMDI0KSwkcmV0KSksCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnLAoJCQkJICAgICRwcm9jZXNzVHlwZSwKCQkJCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX29yZGVyJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJICAgICdmYnJwX29wdF9vcmRlcicsJHRoaXMtPkdldE9wdGlvbignb3JkZXInLCcxJyksNSwxMCkuCgkJCQkgICAgJG1vZC0+TGFuZygndGl0bGVfb3JkZXJfaGVscCcpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCn0KCj8+Cg==]]></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+J1pXJyApOwoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+Q291bnRyaWVzKTsKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJdW5zZXQoJHRoaXMtPkNvdW50cmllc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSR0aGlzLT5Db3VudHJpZXMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSwkdGhpcy0+Q291bnRyaWVzKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+Q291bnRyaWVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPkNvdW50cmllcyk7CgkJCX0KCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+Q291bnRyaWVzLCAtMSwgJHRoaXMtPlZhbHVlLCAnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLiciJyk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5Db3VudHJpZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5JyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0JywKICAgICAgICAgICAgCQkkdGhpcy0+Q291bnRyaWVzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKCn0KCj8+Cg==]]></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+TGFuZygnZGF0ZV9vY3RvYmVyJyk9PjEwLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX25vdmVtYmVyJyk9PjExLAogICAgICAgICAgICAkbW9kLT5MYW5nKCdkYXRlX2RlY2VtYmVyJyk9PjEyKTsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKICAgICR0aGlzLT5sYWJlbFN1YkNvbXBvbmVudHMgPSBmYWxzZTsKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CgkJcmV0dXJuICRtb2QtPkxhbmcoImRhdGVfcmFuZ2UiLGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpICwKICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignZW5kX3llYXInLCgkdG9kYXlbJ3llYXInXSsxMCkpKSkuCiAgICAgICAgICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpIT09Jy0xJz8nICgnLiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJykuJyknOicnKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAkdG9kYXkgPSBnZXRkYXRlKCk7CiAgICAgICAkRGF5cyA9IGFycmF5KCk7CiAgICAgICBmb3IgKCRpPTE7JGk8MzI7JGkrKykKICAgICAgICAgewogICAgICAgICAJJERheXNbJGldPSRpOwogICAgICAgICB9CiAgICAgICAkWWVhciA9IGFycmF5KCk7CiAgICAgICBmb3IgKCRpPSR0aGlzLT5HZXRPcHRpb24oJ3N0YXJ0X3llYXInLCgkdG9kYXlbJ3llYXInXS0xMCkpOyRpPCR0aGlzLT5HZXRPcHRpb24oJ2VuZF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10rMTApKSsxOyRpKyspCiAgICAgICAgIHsKICAgICAgICAgCSRZZWFyWyRpXT0kaTsKICAgICAgICAgfQoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdG9kYXlbJ21kYXknXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApOwoJCQkkdG9kYXlbJ21vbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCSR0b2RheVsneWVhciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMik7CQkJCgkJCX0KCQllbHNlIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpICE9ICctMScpCgkJICAgewogICAgICAgICAkdG9kYXlbJ3llYXInXSA9ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJyk7CiAgICAgICAgIH0KCiAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAkZGF5ID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICRkYXktPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkRGF5cywgLTEsICR0b2RheVsnbWRheSddLCAnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLidfMSInKTsKIAkJJGRheS0+dGl0bGUgPSAkbW9kLT5MYW5nKCdkYXknKTsKIAkJJGRheS0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdkYXknKS4nPC9sYWJlbD4nOwogCQlhcnJheV9wdXNoKCRyZXQsICRkYXkpOwoKICAgICAgJG1vbiA9IG5ldyBzdGRDbGFzcygpOwogICAgICAkbW9uLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHRoaXMtPk1vbnRocywgLTEsICR0b2RheVsnbW9uJ10sICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJ18yIicpOwogCQkkbW9uLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21vbicpOwogCQkkbW9uLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18yIj4nLiRtb2QtPkxhbmcoJ21vbicpLic8L2xhYmVsPic7CiAJCWFycmF5X3B1c2goJHJldCwgJG1vbik7CgogICAgICAkeXIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgJHlyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJFllYXIsIC0xLCAkdG9kYXlbJ3llYXInXSwnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLidfMyInKTsKICAgICAgJHlyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18zIj4nLiRtb2QtPkxhbmcoJ3llYXInKS4nPC9sYWJlbD4nOwogICAgICAkeXItPnRpdGxlID0gJG1vZC0+TGFuZygneWVhcicpOwogICAgICBhcnJheV9wdXNoKCRyZXQsJHlyKTsKICAgICAgcmV0dXJuICRyZXQ7Cgl9CgogICBmdW5jdGlvbiBDb21wYXJlVG8oJHZhbCkKICAgewogICAgICAkdGQgPSAwOwogICAgICAkb2QgPSAwOwogICAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHRkID0gbWt0aW1lICggMSwgMSwgMSwgJHRoaXMtPkdldEFycmF5VmFsdWUoMSksICAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKSwgJHRoaXMtPkdldEFycmF5VmFsdWUoMikgKTsKCQkJfQoJCSRvID0gJHZhbC0+R2V0VmFsdWUoKTsKICAgICAgaWYgKCRvLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRvZCA9IG1rdGltZSAoIDEsIDEsIDEsICRvLT5HZXRBcnJheVZhbHVlKDEpLCAgJG8tPkdldEFycmF5VmFsdWUoMCksICRvLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCX0KICAgICAgaWYgKCR0ZCA9PSAkb2QpCiAgICAgICAgIHsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICAgcmV0dXJuICgkdGQgPCAkb2QpID8gLTEgOiAxOwogICB9CgoKCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkdGhlRGF0ZSA9IG1rdGltZSAoIDEsIDEsIDEsICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLCAgJHRoaXMtPkdldEFycmF5VmFsdWUoMCksICR0aGlzLT5HZXRBcnJheVZhbHVlKDIpICk7CgkJCSRyZXQgPSBkYXRlKCR0aGlzLT5HZXRPcHRpb24oJ2RhdGVmb3JtYXQnLCdqIEYgWScpLCAkdGhlRGF0ZSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICR0b2RheSA9IGdldGRhdGUoKTsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kYXRlX2Zvcm1hdCcpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kYXRlX2Zvcm1hdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignZGF0ZV9mb3JtYXQnLCdqIEYgWScpLDI1LDI1KSwkbW9kLT5MYW5nKCdoZWxwX2RhdGVfZm9ybWF0JykpCgkJICAgICksCgkJICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc3RhcnRfeWVhcicpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zdGFydF95ZWFyJywKICAgICAgICAgICAgCQkgICAgJHRoaXMtPkdldE9wdGlvbignc3RhcnRfeWVhcicsKCR0b2RheVsneWVhciddLTEwKSksMTAsMTApKSwKCQkgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbmRfeWVhcicpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbmRfeWVhcicsCiAgICAgICAgICAgIAkJICAgICR0aGlzLT5HZXRPcHRpb24oJ2VuZF95ZWFyJywoJHRvZGF5Wyd5ZWFyJ10rMTApKSwxMCwxMCkpLAoJCSAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfeWVhcicpLAogICAgICAgICAgICAJCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X3llYXInLAogICAgICAgICAgICAJCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpLDEwLDEwKSwkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCcpKQogICAgICAgICApCiAgICAgICk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sYXJyYXkoKSk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDatabase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRGF0YWJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25EYXRhYmFzZSgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+SGlkZUxhYmVsID0gMTsKCQkkdGhpcy0+TmVlZHNEaXYgPSAwOwoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJyc7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJcmV0dXJuICcnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAkKCQkJJHRoaXMtPkVuY29kZVJlcUlkKCR0aGlzLT5WYWx1ZSkpOwoJfQoKCWZ1bmN0aW9uIFNldEFwcHJvdmFsTmFtZSgkbmFtZSkKCXsKCQkkdGhpcy0+YXBwcm92ZWRCeSA9ICRuYW1lOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSByZXR1cm4gJyc7Cgl9CgkKCWZ1bmN0aW9uIERlY29kZVJlcUlkKCR0aGVWYWwpCgl7CgkJJHRtcCA9IGJhc2U2NF9kZWNvZGUoJHRoZVZhbCk7CgkJJHRtcDIgPSBzdHJfcmVwbGFjZShzZXNzaW9uX2lkKCksJycsJHRtcCk7CgkJaWYgKHN1YnN0cigkdG1wMiwwLDEpID09ICdfJykKCQkJewoJCQlyZXR1cm4gc3Vic3RyKCR0bXAyLDEpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAtMTsKCQkJfQoJfQoJCglmdW5jdGlvbiBFbmNvZGVSZXFJZCgkcmVxX2lkKQoJewoJCXJldHVybiBiYXNlNjRfZW5jb2RlKHNlc3Npb25faWQoKS4nXycuJHJlcV9pZCk7Cgl9CgkKCQoJZnVuY3Rpb24gU2V0VmFsdWUoJHZhbCkKCXsKCgkJJGRlY3ZhbCA9IGJhc2U2NF9kZWNvZGUoJHZhbCk7CiAgIAoJCWlmICgkdmFsID09PSBmYWxzZSkKCQkJewoJCQkvLyBubyB2YWx1ZSBzZXQsIHNvIHdlJ2xsIGxlYXZlIHZhbHVlIGFzIGZhbHNlCgkJCX0KCQllbHNlaWYgKHN0cnBvcygkZGVjdmFsLCdfJykgPT09IGZhbHNlKQoJCQl7CgkJCS8vIHVuZW5jcnlwdGVkIHZhbHVlLCBjb21pbmcgaW4gZnJvbSBwcmV2aW91cyByZXNwb25zZQoJCQkkdGhpcy0+VmFsdWUgPSAkdmFsOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vIGVuY3J5cHRlZCB2YWx1ZSBjb21pbmcgaW4gZnJvbSBhIGZvcm0sIHNvIHdlJ2xsIHVwZGF0ZS4KCQkJJHRoaXMtPlZhbHVlID0gJHRoaXMtPkRlY29kZVJlcUlkKCR2YWwpOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgogICAgLy8gV3JpdGUgVG8gdGhlIERhdGFiYXNlCglmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCgl7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSRmb3JtLT5TdG9yZVJlc3BvbnNlKCgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOi0xKSwkdGhpcy0+YXBwcm92ZWRCeSk7CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwkgICAKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDeliverToEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRlbGl2ZXJUb0FkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCc7CiAgICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnKT0+J2VtYWlsJywKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJ2VtYWlsJzsKCSAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7CgkgICAkdGhpcy0+UmVxdWlyZWQgPSAxOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgpOwoJfQoKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCkKCXsKICAgICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpICE9IGZhbHNlKQogICAgICAgICB7CgkJICAgcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+VmFsdWUsJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcpKTsKCQkgICB9CgkJZWxzZQoJCSAgIHsKICAgICAgICAgcmV0dXJuIGFycmF5KHRydWUsJycpOwogICAgICAgICB9Cgl9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkvLyR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXksIGZhbHNlKTsKCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgogIAkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgewogICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgIH0KCgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkRpcmVjdG9yJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICAgICAJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIGNvdW50QWRkcmVzc2VzKCkKCXsKCQkJJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCSRzdWJqZWN0cyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9zdWJqZWN0Jyk7CgoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspCgkJCQl7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSwgJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIicpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCcnKTsKCQkKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICAgICAgJG51bSA9IGNvdW50KCRvcHQpOwoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkbnVtID0gMTsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgfQogICAgICAgICAkcmV0PSAkbW9kLT5MYW5nKCdkZXN0aW5hdGlvbl9jb3VudCcsJG51bSk7CiAgICAgICAgJHJldC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgImVtYWlsIHN1YmplY3QiIGZpZWxkCgkJJGhpZGVJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZW1haWxfc3ViamVjdCcpKQoJCQkJewoJCQkJJGhpZGVJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRoaWRlSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQkvLyByZW1vdmUgdGhlICJoaWRlIGNzcyIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0JCgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQlyZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywoJHRoaXMtPlZhbHVlIC0gMSkpLAoJCQkkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQogICAgewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CiAgCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGRIYXZlTmFtZSgpOwoJCWlmICgkcmV0KQoJCQl7CgkJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZE5hbWVFeGlzdCgpOwoJCQl9CQkKCgkJaWYgKGNvdW50KCRvcHQpID09IDApCgkJCXsKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJykuJzwvYnI+JzsKCQkJfQoJCWlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpKQoJCQl7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKSAuICc8YnIvPic7CgkJCX0KICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkb3B0KTskaSsrKQogICAgCSAgIHsKCQkJaWYgKCEgcHJlZ19tYXRjaCgkbW9kLT5lbWFpbF9yZWdleCwgJG9wdFskaV0pKQogICAgCSAgICAgICB7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCRvcHRbJGldKS4nPGJyLz4nOwogICAgCSAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBhcnJheSgkcmV0LCRtZXNzYWdlKTsKICAgIH0KICAgIAogICAgZnVuY3Rpb24gVmFsaWRhdGUoKQogICAgewogICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAgJHJlc3VsdCA9IHRydWU7CiAgICAgICAgICRtZXNzYWdlID0gJyc7CgogICAgICAgICBpZiAoJHRoaXMtPlZhbHVlID09IGZhbHNlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICRyZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgJG1lc3NhZ2UgLj0KJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CiAgICAgICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJlc3VsdCwkbWVzc2FnZSk7CiAgICB9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmail.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuJy9EaXNwb3NpdGlvbkVtYWlsQmFzZS5jbGFzcy5waHAnKTsKCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCXZhciAkYWRkcmVzc0NvdW50OwoJdmFyICRhZGRyZXNzQWRkOwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRW1haWwnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICB9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2FkZHJlc3MnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfYWRkcmVzcycpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdkZXN0aW5hdGlvbl9hZGRyZXNzJywnJyk7CgkJJHJldD0gJG1vZC0+TGFuZygndG8nKS4iOiAiOwoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgIGlmIChjb3VudCgkb3B0KT4xKQoJCSAgICAgIHsKCQkgICAgICAkcmV0Lj0gY291bnQoJG9wdCk7CgkJICAgICAgJHJldC49ICIgIi4kbW9kLT5MYW5nKCdyZWNpcGllbnRzJyk7CgkJICAgICAgfQoJCSAgZWxzZQoJCSAgICAgIHsKCQkgICAgICAkcmV0Lj0gJG9wdFswXTsKCQkgICAgICB9CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRyZXQgLj0gJG9wdDsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRyZXQuPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwogICAgICAgICAgfQogICAgICAgICRyZXQuPSAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKICAgICAgICByZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoKICAgIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewoJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRtcCwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50QWRkcmVzc2VzKCk7CgkJaWYgKCR0aGlzLT5hZGRyZXNzQWRkID4gMCkKCQkJewoJCQkkdGhpcy0+YWRkcmVzc0NvdW50ICs9ICR0aGlzLT5hZGRyZXNzQWRkOwoJCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDA7CgkJCX0KCQkkZGVzdHMgPSAnPHRhYmxlICBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICc8dHI+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2FkZHJlc3NbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQlsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7Cgl9CgoKCWZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQogICAgewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCSRvcHQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fYWRkcmVzcycpOwogIAkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCQlpZiAoJHJldCkKCQkJewoJCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQkJfQkJCgkJaWYgKCRvcHQgPT09IGZhbHNlIHx8IGNvdW50KCRvcHQpID09IDApCgkJCXsKCQkJJHJldCA9IGZhbHNlOwoJCQkkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJykuJzwvYnI+JzsKCQkJfQoJCWlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpKQoJCQl7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKSAuICc8YnIvPic7CgkJCX0KICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkb3B0KTskaSsrKQogICAgCSAgIHsKICAgIAkgICBpZiAoISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkb3B0WyRpXSkpCiAgICAJICAgICAgIHsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJG9wdFskaV0pIC4gJzxici8+JzsKICAgIAkgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7ICAgICAgIAogICAgfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgZXh0ZW5kcyBmYkZpZWxkQmFzZQp7CgogIGZ1bmN0aW9uIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgpOwoKICB9CgogIC8vIG92ZXJyaWRlIG1lIQogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICB9CgogIGZ1bmN0aW9uIFRlbXBsYXRlU3RhdHVzKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF90ZW1wbGF0ZScsJycpID09ICcnKQogICAgICB7CiAgcmV0dXJuICRtb2QtPkxhbmcoJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnKTsKICAgICAgfQogIH0KCiAgLy8gb3ZlcnJpZGUgbWUhCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldEZyb21BZGRyZXNzKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFNldEZyb21OYW1lKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgogIC8vIFNlbmQgb2ZmIHRob3NlIGVtYWlscwogIGZ1bmN0aW9uIFNlbmRGb3JtKCRkZXN0aW5hdGlvbl9hcnJheSwgJHN1YmplY3QpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybSA9ICYkdGhpcy0+Zm9ybV9wdHI7CgogICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywxKSkKICAgICB7CiAgICAkZGIgPSYgJGdDbXMtPkdldERiKCk7CiAgICAkcXVlcnkgPSAnc2VsZWN0IGNvdW50KHNyY19pcCkgYXMgc2VudCBmcm9tICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2lwX2xvZyB3aGVyZSBzcmNfaXA9PyBBTkQgc2VudF90aW1lID4gPyc7CgogICAgJGRicmVzdWx0ID0gJGRiLT5HZXRPbmUoJHF1ZXJ5LCBhcnJheSgkX1NFUlZFUlsnUkVNT1RFX0FERFInXSwKICAgICAgICAgICAgICAgdHJpbSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSAtIDM2MDApLCInIikpKTsKCiAgICBpZiAoJGRicmVzdWx0ICYmICRkYnJlc3VsdFsnc2VudCddID4gOSkKICAgICAgewogICAgICAvLyB0b28gbWFueSBmcm9tIHRoaXMgSVAgYWRkcmVzcy4gS2lsbCBpdC4KICAgICAgICAkbXNnID0gJzxociAvPicuJG1vZC0+TGFuZygnc3VzcGVjdGVkX3NwYW0nKS4gJzxociAvPic7CiAgICAgIGF1ZGl0KC0xLCAkbW9kLT5HZXROYW1lKCksJG1vZC0+TGFuZygnbG9nX3N1c3BlY3RlZF9zcGFtJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkpOwogICAgICByZXR1cm4gYXJyYXkoZmFsc2UsJG1zZyk7CiAgICAgIH0KICAgIH0KCiAgICAkbWFpbCA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDTVNNYWlsZXInKTsKICAgIGlmICgkbWFpbCA9PSBGQUxTRSkKICAgICAgewogICRtc2cgPSAnJzsKICBpZiAoISAkbW9kLT5HZXRQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycsMCkpCiAgICB7CiAgICAgICRtc2cgPSAnPGhyIC8+Jy4kbW9kLT5MYW5nKCdtaXNzaW5nX2Ntc19tYWlsZXInKS4gJzxociAvPic7CiAgICB9CiAgYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwkbW9kLT5MYW5nKCdtaXNzaW5nX2Ntc19tYWlsZXInKSk7CiAgcmV0dXJuIGFycmF5KGZhbHNlLCRtc2cpOwogICAgICB9CiAgICAkbWFpbC0+cmVzZXQoKTsKICAgIGlmICgkdGhpcy0+U2V0RnJvbUFkZHJlc3MoKSkKICAgICAgewogICRtYWlsLT5TZXRGcm9tKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKICAgICAgJG1haWwtPkFkZFJlcGx5VG8oJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJyksJHRoaXMtPlNldEZyb21OYW1lKCk/JHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJyk6JycpOwogICAgICB9CiAgICBpZiAoJHRoaXMtPlNldEZyb21OYW1lKCkpCiAgICAgIHsKICAkbWFpbC0+U2V0RnJvbU5hbWUoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJykpOwogICAgICB9CiAgICAkbWFpbC0+U2V0Q2hhclNldCgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9lbmNvZGluZycsJ3V0Zi04JykpOwoKICAgICRtZXNzYWdlID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKTsKICAgICRodG1sZW1haWwgPSAoJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSA9PSAnMScpOwogICAgaWYgKCRodG1sZW1haWwpCiAgICAgewogICAgJG1haWwtPklzSFRNTCh0cnVlKTsKICAgIH0KICAgaWYgKHN0cmxlbigkbWVzc2FnZSkgPCAxKQogICAgICB7CiAgICAkbWVzc2FnZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSk7CiAgICAgIGlmICgkaHRtbGVtYWlsKQogICAgICAgewogICAgICAkbWVzc2FnZTIgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUodHJ1ZSk7CiAgICAgIH0KICAgICAgfQogICAgZWxzZWlmICgkaHRtbGVtYWlsKQogICAgICB7CiAgICAkbWVzc2FnZTIgPSAkbWVzc2FnZTsKICAgIH0KICAgICRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICRvdGhlcnMgPSAmJGZvcm0tPkdldEZpZWxkcygpOwoKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKICBpZiAoc3RydG9sb3dlcihnZXRfY2xhc3MoJG90aGVyc1skaV0pKSA9PSAnZmJmaWxldXBsb2FkZmllbGQnICkKICAgIHsKICAgICAgLy8KICAgICAgLy8gSGFuZGxlIGZpbGUgdXBsb2FkcwogICAgICAvLyBpZiB0aGUgdXBsb2FkcyBtb2R1bGUgaXMgZm91bmQsIGFuZCB0aGUgb3B0aW9uIGlzIGNoZWNrZWQgaW4KICAgICAgLy8gdGhlIGZpZWxkLCB0aGVuIHRoZSBmaWxlIGlzIGFkZGVkIHRvIHRoZSB1cGxvYWRzIG1vZHVsZQogICAgICAvLyBhbmQgYSBsaW5rIGlzIGFkZGVkIHRvIHRoZSByZXN1bHRzCiAgICAgIC8vIGlmIHRoZSBvcHRpb24gaXMgbm90IGNoZWNrZWQsIHRoZW4gdGhlIGZpbGUgaXMgYWRkZWQgYXMKICAgICAgLy8gYW4gYXR0YWNobWVudAogICAgICAvLwogICAgICAkX2lkID0gJGZpZWxkLT5HZXRWYWx1ZSgpOwogICAgICBpZiggaXNzZXQoICRfRklMRVNbJF9pZF0gKSAmJiAkX0ZJTEVTWyRfaWRdWydzaXplJ10gPiAwICkKICAgICAgICB7CiAgICAkdGhpc0ZpbGUgPSYgJF9GSUxFU1skX2lkXTsKICAgIGlmKCAkZmllbGQtPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnKSApCiAgICAgIHsKICAgICAgICAvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gc2VuZCB0byB0aGUgdXBsb2FkcwogICAgICAgICR1cGxvYWRzID0gJG1vZC0+R2V0TW9kdWxlSW5zdGFuY2UoJ1VwbG9hZHMnKTsKICAgICAgICBpZiggISR1cGxvYWRzICkKICAgICAgICAgIHsKICAgICAgLy8gbm8gdXBsb2FkcyBtb2R1bGUKICAgICAgYXVkaXQoLTEsICRtb2QtPkdldE5hbWUoKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJyksJG1haWwtPkdldEVycm9ySW5mbygpKTsKICAgICAgZWNobyAiREVCVUc6IGNvdWxkIG5vdCBnZXQgdXBsb2FkcyBtb2R1bGU8YnIvPiI7CiAgICAgICAgICAgIHJldHVybiBhcnJheSgkcmVzLCAkbW9kLT5MYW5nKCdub3VwbG9hZHNfZXJyb3InKSk7CgogICAgICAgICAgfQoKICAgICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAgICRwYXJtc1snaW5wdXRfYXV0aG9yJ10gPSAkbW9kLT5MYW5nKCdhbm9ueW1vdXMnKTsKICAgICAgICAkcGFybXNbJ2lucHV0X3N1bW1hcnknXSA9ICRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5Jyk7CiAgICAgICAgJHBhcm1zWydjYXRlZ29yeV9pZCddID0gJGZpZWxkLT5HZXRPcHRpb24oJ3VwbG9hZHNfY2F0ZWdvcnknKTsKICAgICAgICAkcGFybXNbJ2ZpZWxkX25hbWUnXSA9ICRfaWQ7CiAgICAgICAgJHJlcyA9ICR1cGxvYWRzLT5BdHRlbXB0VXBsb2FkKC0xLCRwYXJtcywtMSk7CiAgICAgICAgaWYoICRyZXNbMF0gPT0gZmFsc2UgKQogICAgICAgICAgewogICAgICAvLyBmYWlsZWQgdXBsb2FkIGtpbGxzIHRoZSBzZW5kLgogICAgICBhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCRtYWlsLT5HZXRFcnJvckluZm8oKSkpOwogICAgICByZXR1cm4gYXJyYXkoJHJlc1swXSwgJG1vZC0+TGFuZygndXBsb2Fkc19lcnJvcicsJHJlc1sxXSkpOwogICAgICAgICAgfQoKICAgICAgICAkdXBsb2Fkc19kZXN0cGFnZSA9ICRmaWVsZC0+R2V0T3B0aW9uKCd1cGxvYWRzX2Rlc3RwYWdlJyk7CiAgICAgICAgJHVybCA9ICR1cGxvYWRzLT5DcmVhdGVMaW5rICgtMSwgJ2dldGZpbGUnLCAkdXBsb2Fkc19kZXN0cGFnZSwgJycsCiAgICAgICAgICAgICBhcnJheSAoJ3VwbG9hZF9pZCcgPT4gJHJvd1sndXBsb2FkX2lkJ10pLCAnJywgdHJ1ZSk7CiAgICAgICAgJHJlcGxWYWwgPSAkdXJsOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAgICAvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gYXR0YWNoCiAgICAgICAgaWYgKCEgJG1haWwtPkFkZEF0dGFjaG1lbnQoJHRoaXNGaWxlWyd0bXBfbmFtZSddLCAkdGhpc0ZpbGVbJ25hbWUnXSwgImJhc2U2NCIsICR0aGlzRmlsZVsndHlwZSddKSkKICAgICAgICAgIHsKICAgICAgLy8gZmFpbGVkIHVwbG9hZCBraWxscyB0aGUgc2VuZC4KICAgICAgYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCRtYWlsLT5HZXRFcnJvckluZm8oKSkpOwogICAgICByZXR1cm4gYXJyYXkoJHJlcywgJG1vZC0+TGFuZygndXBsb2FkX2F0dGFjaF9lcnJvcicsCiAgICAgICAgICAgICAgICAgIGFycmF5KCR0aGlzRmlsZVsnbmFtZSddLCR0aGlzRmlsZVsndG1wX25hbWUnXSAsJHRoaXNGaWxlWyd0eXBlJ10pKSk7CiAgICAgICAgICB9CgogICAgICAgICRyZXBsVmFsID0gJHRoaXNGaWxlWyduYW1lJ107CiAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgICB9CgogICAgJG1lc3NhZ2UgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJG1lc3NhZ2UgKTsKICAgICRzdWJqZWN0ID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRzdWJqZWN0ICk7CiAgICAkbWFpbC0+U2V0U3ViamVjdCgkc3ViamVjdCk7CiAgICAgaWYgKCRodG1sZW1haWwpCiAgICAgewogICAgJG1lc3NhZ2UyID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG1lc3NhZ2UyKTsKICAgICRtYWlsLT5TZXRBbHRCb2R5KHN0cmlwX3RhZ3MoaHRtbF9lbnRpdHlfZGVjb2RlKCRtZXNzYWdlKSkpOwogICAgJG1haWwtPlNldEJvZHkoJG1lc3NhZ2UyKTsKICAgIH0KICAgZWxzZQogICAgIHsKICAgICAkbWFpbC0+U2V0Qm9keShodG1sX2VudGl0eV9kZWNvZGUoJG1lc3NhZ2UpKTsKICAgIH0KICAgIC8vIHNlbmQgdGhlIG1lc3NhZ2UuLi4KICAgIGlmICghIGlzX2FycmF5KCRkZXN0aW5hdGlvbl9hcnJheSkpCiAgICAgIHsKICAkZGVzdGluYXRpb25fYXJyYXkgPSBhcnJheSgkZGVzdGluYXRpb25fYXJyYXkpOwogICAgICB9CiAgICBmb3JlYWNoICgkZGVzdGluYXRpb25fYXJyYXkgYXMgJHRoaXNEZXN0KQogICAgICB7CiAgJG1haWwtPkFkZEFkZHJlc3MoJHRoaXNEZXN0KTsKICAgICAgfQoKICAgICRyZXMgPSAkbWFpbC0+U2VuZCgpOwogICAgaWYgKCRyZXMgPT09IGZhbHNlKQogICAgICB7CiAgYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCRtYWlsLT5HZXRFcnJvckluZm8oKSkpOwogICAgICB9CiAgICBlbHNlIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nLDEpKQogICAgIHsKICAgICRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCiAgICAkcmVjX2lkID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2dfc2VxJyk7CiAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfaXBfbG9nIChzZW50X2lkLCBzcmNfaXAsIHNlbnRfdGltZSkgVkFMVUVTICg/LCA/LCA/KSc7CgogICAgJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJHJlY19pZCwgJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10sCiAgICAgICAgICAgICAgIHRyaW0oJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLCInIikpKTsKICAgIH0KICAgIHJldHVybiBhcnJheSgkcmVzLCAkbWFpbC0+R2V0RXJyb3JJbmZvKCkpOwogIH0KCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtZXNzYWdlID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKTsKCiAgICByZXR1cm4gYXJyYXkoCiAgICAgYXJyYXkoCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfc3ViamVjdCcpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9zdWJqZWN0JywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywnJyksNTApLic8YnIvPicuJG1vZC0+TGFuZygnY2FudXNlX3NtYXJ0eScpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX25hbWUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX25hbWUnLCRtb2QtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpKSwyNSwxMjgpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfZnJvbV9hZGRyZXNzJywkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnLCcnKSwyNSwxMjgpKSwKICAgICAgICAgICApLAogICAgIGFycmF5KAogICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfaHRtbF9lbWFpbCcpLAogICAgICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2h0bWxfZW1haWwnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9odG1sX2VtYWlsJywKICAgICAgICAgICAgICAgICcxJywkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpKSksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfdGVtcGxhdGUnKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAogICAgICAgICAgICAgICgkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpPT0nMSc/JG1lc3NhZ2U6aHRtbHNwZWNpYWxjaGFycygkbWVzc2FnZSkpLCdmYnJwX29wdF9lbWFpbF90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV93aWRlJywgJycsJycsMCwwKSwKICAgICAgICAgICAgICAkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvcikpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9lbmNvZGluZycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9lbmNvZGluZycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZW5jb2RpbmcnLCd1dGYtOCcpLDI1LDEyOCkpCiAgICAgICAgICAgKQogICAgICk7CiAgfQoKfQoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailConfirmation.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICR2YWxpZGF0ZWQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbic7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSBmYWxzZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKICAgICAgIAkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAnZW1haWwnOwogICAgICAgCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gdHJ1ZTsKICAgICAgIAkkdGhpcy0+Zm9ybV9wdHItPkFkZFRlbXBsYXRlVmFyaWFibGUoJ2NvbmZpcm1fdXJsJywKICAgICAgIAkJJG1vZC0+TGFuZygndGl0bGVfY29uZmlybWF0aW9uX3VybCcpKTsKICAgICAgIAkkdGhpcy0+YXBwcm92ZWRUb0dvID0gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CiAgICAgICAgcmV0dXJuICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJfQoKCWZ1bmN0aW9uIEFwcHJvdmVUb0dvKCRyZXNwb25zZV9pZCkKCXsKCSR0aGlzLT5hcHByb3ZlZFRvR28gPSB0cnVlOwoJfQoKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5mb3JtX3B0ci0+R2V0Rm9ybVN0YXRlKCkgPT0gJ3VwZGF0ZScpCgkJCXsKCQkJJHRoaXMtPmFwcHJvdmVkVG9HbyA9IHRydWU7CgkJCXJldHVybjsKCQkJfQoJCS8vIElmIHdlIGhhdmVuJ3QgYmVlbiBhcHByb3ZlZCwgaW5oaWJpdCBhbGwgb3RoZXIgZGlzcG9zaXRpb25zIQoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQlpZiAoKCR0aGlzLT5hcHByb3ZlZFRvR28gJiYgJG90aGVyc1skaV0tPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkRhdGFiYXNlJykgfHwKCQkJCSgkdGhpcy0+YXBwcm92ZWRUb0dvICYmICRvdGhlcnNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnRGlzcG9zaXRpb25Gb3JtQnJvd3NlcicpKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldEFwcHJvdmFsTmFtZSgkdGhpcy0+R2V0VmFsdWUoKSk7CgkJCQl9CgkJCWVsc2VpZiAoISAkdGhpcy0+YXBwcm92ZWRUb0dvICYmICRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkpCgkJCQl7CgkJCQkkb3RoZXJzWyRpXS0+U2V0RGlzcG9zaXRpb25QZXJtaXNzaW9uKGZhbHNlKTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5TZXREaXNwb3NpdGlvblBlcm1pc3Npb24odHJ1ZSk7CQkKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksMjUsODApOwoJfQoKCiAgICAvLyBTZW5kIG9mZiB0aG9zZSBlbWFpbHMKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoISAkdGhpcy0+YXBwcm92ZWRUb0dvKQoJCQl7CgkJCS8vIGNyZWF0ZSByZXNwb25zZSBVUkwKCQkJbGlzdCgkcmlkLCRjb2RlKSA9ICR0aGlzLT5mb3JtX3B0ci0+U3RvcmVSZXNwb25zZSgpOwoJCQkJCQoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignY29uZmlybV91cmwnLCRtb2QtPkNyZWF0ZUZyb250ZW5kTGluaygnJywgJHJldHVybmlkLAoJCQkJJ3ZhbGlkYXRlJywgJycsIGFycmF5KCdmYnJwX2YnPT4kdGhpcy0+Zm9ybV9wdHItPkdldElkKCksJ2ZicnBfcic9PiRyaWQsJ2ZicnBfYyc9PiRjb2RlKSwgJycsCgkJCQl0cnVlLGZhbHNlLCcnLHRydWUpKTsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0VmFsdWUoKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSh0cnVlLCcnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgIAoJICBnbG9iYWwgJGdDbXM7CgkgICRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwoKCSAgbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCSAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCdyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCcpLAoJCQkJIEAkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldE9wdGlvbigncmVkaXJlY3RfcGFnZScsJzAnKSwgJGZvcm1EZXNjcmlwdG9yLidmYnJwX29wdF9yZWRpcmVjdF9wYWdlJykpKTsKCSAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkvLyR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwkJCgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewogIAkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionEmailSiteAdmin.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IGZhbHNlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IGZhbHNlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkgICAgZ2xvYmFsICRnQ21zOwoJICAgICR1c2Vyb3BzID0mICRnQ21zLT5HZXRVc2VyT3BlcmF0aW9ucygpOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJCQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKT09JzEnKQoJCQl7CgkJCSR1c2VybGlzdCA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnNJbkdyb3VwKCR0aGlzLT5HZXRPcHRpb24oJ2dyb3VwJykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR1c2VybGlzdCA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnMoKTsKCQkJfQoJCWZvcigkaT0wOyRpPGNvdW50KCR1c2VybGlzdCk7JGkrKykKCQkJewoJCQkkbmFtZSA9IGFycmF5KCk7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJmaXJzdG5hbWUnLCcwJyk9PScxJykKCQkJCXsKCQkJCWFycmF5X3B1c2goJG5hbWUsJHVzZXJsaXN0WyRpXS0+Zmlyc3RuYW1lKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcmxhc3RuYW1lJywnMCcpPT0nMScpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRuYW1lLCR1c2VybGlzdFskaV0tPmxhc3RuYW1lKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcm5hbWUnLCcwJyk9PScxJykKCQkJCXsKCQkJCWFycmF5X3B1c2goJG5hbWUsJyAoJy4kdXNlcmxpc3RbJGldLT51c2VybmFtZS4nKScpOwoJCQkJfQoJCQkkc25hbWUgPSBpbXBsb2RlKCcgJywkbmFtZSk7CgkJCSRzb3J0ZWRbJHNuYW1lXT0oJGkrMSk7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSwgJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIicpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkgICAgZ2xvYmFsICRnQ21zOwoJICAgICRncm91cG9wcyA9JiAkZ0Ntcy0+R2V0R3JvdXBPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgJHJldCA9ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKT09JzEnKQoJCQl7CgkJCSRncm91cCA9ICRncm91cG9wcy0+TG9hZEdyb3VwQnlJRCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJaWYgKCRncm91cCAmJiBpc3NldCgkZ3JvdXAtPm5hbWUpKQoJCQkJewoJCQkJJHJldCAuPSAnLCAnLiRtb2QtPkxhbmcoJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnLCRncm91cC0+bmFtZSk7CgkJCQl9CgkJCX0KICAgICAgICByZXR1cm4gJHJldDsKCX0KCQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJICAgIGdsb2JhbCAkZ0NtczsKCSAgICAkZ3JvdXBvcHMgPSYgJGdDbXMtPkdldEdyb3VwT3BlcmF0aW9ucygpOwoJICAgICRncm91cHMgPSAkZ3JvdXBvcHMtPkxvYWRHcm91cHMoKTsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3Nob3dfdXNlcmZpcnN0bmFtZScsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd191c2VyZmlyc3RuYW1lJywgJzEnLAoJCQkJJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VyZmlyc3RuYW1lJywnMScpKSkpOwoJCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJyksCgkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3VzZXJsYXN0bmFtZScsJzAnKS4KCQkJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3Nob3dfdXNlcmxhc3RuYW1lJywgJzEnLAoJCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfdXNlcmxhc3RuYW1lJywnMScpKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd191c2VybmFtZScpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zaG93X3VzZXJuYW1lJywnMCcpLgoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zaG93X3VzZXJuYW1lJywgJzEnLAoJCQkJJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VybmFtZScsJzAnKSkpKTsKCQkJCQoKCQkkaXRlbXMgPSBhcnJheSgpOwoJCWZvcmVhY2ggKCRncm91cHMgYXMgJHRoaXNHcm91cCkKCQkJewoJCQkkaXRlbXNbJHRoaXNHcm91cC0+bmFtZV09JHRoaXNHcm91cC0+aWQ7CgkJCX0KCQkKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpLgoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9yZXN0cmljdF90b19ncm91cCcsICcxJywKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpKS4KCQkJCSRtb2QtPiBDcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2dyb3VwJywgJGl0ZW1zLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnLCcnKSkKCQkJCSkpOwoJCQkJCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJoaWRlIGNzcyIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJICAgIGdsb2JhbCAkZ0NtczsKCSAgICAkdXNlcm9wcyA9JiAkZ0Ntcy0+R2V0VXNlck9wZXJhdGlvbnMoKTsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Jlc3RyaWN0X3RvX2dyb3VwJywnMCcpPT0nMScpCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2Vyc0luR3JvdXAoJHRoaXMtPkdldE9wdGlvbignZ3JvdXAnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHVzZXJsaXN0ID0gJHVzZXJvcHMtPkxvYWRVc2VycygpOwoJCQl9CgkJaWYgKGlzc2V0KCR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXSkpCgkJCXsKCQkJJHJldCA9ICR1c2VybGlzdFskdGhpcy0+VmFsdWUgLSAxXS0+Zmlyc3RuYW1lIC4gJyAnLiAkdXNlcmxpc3RbJHRoaXMtPlZhbHVlIC0gMV0tPmxhc3RuYW1lOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9CgkJCgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCSAgICBnbG9iYWwgJGdDbXM7CgkgICAgJHVzZXJvcHMgPSYgJGdDbXMtPkdldFVzZXJPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdyZXN0cmljdF90b19ncm91cCcsJzAnKT09JzEnKQoJCQl7CgkJCSR1c2VybGlzdCA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnNJbkdyb3VwKCR0aGlzLT5HZXRPcHRpb24oJ2dyb3VwJykpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR1c2VybGlzdCA9ICR1c2Vyb3BzLT5Mb2FkVXNlcnMoKTsKCQkJfQoJCSRkZXN0ID0gYXJyYXkoJHVzZXJsaXN0WyR0aGlzLT5WYWx1ZSAtIDFdLT5lbWFpbCk7CgkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkZGVzdCwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJfQoKCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICAgIHsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkcmV0ID0gdHJ1ZTsKCQkkbWVzc2FnZSA9ICIiOwoJCWlmICghIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpKQoJCQl7CiAgICAJICAgICAgIAkkcmV0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkbW9kLT5MYW5nKCdub3RfdmFsaWRfZW1haWwnLCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKSAuICc8YnIvPic7CgkJCX0KICAgICAgICByZXR1cm4gYXJyYXkoJHJldCwkbWVzc2FnZSk7CiAgICB9CiAgICAKICAgIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICAgIHsKICAgICAgICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAgICAgICRyZXN1bHQgPSB0cnVlOwogICAgICAgICAkbWVzc2FnZSA9ICcnOwoKICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSA9PSBmYWxzZSkKICAgICAgICAgICAgewogICAgICAgICAgICAkcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICRtZXNzYWdlIC49CiRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwogICAgICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXN1bHQsJG1lc3NhZ2UpOwogICAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFile.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZSBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKICB2YXIgJHNhbXBsZVRlbXBsYXRlQ29kZTsKICB2YXIgJHNhbXBsZUhlYWRlcjsKCiAgZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkZpbGUoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRmlsZSc7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGVfZmlsZShmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnOwogICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpLiJcIiBvbkNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9maWxlKHRoaXMuZm9ybSlcIiAvPiI7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlX2hlYWRlcihmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfaGVhZGVyJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJykuIlwiIG9uQ2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlX2hlYWRlcih0aGlzLmZvcm0pXCIgLz4iOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKICAgICRmaWxlc3BlYyA9ICRtb2QtPmNvbmZpZ1sncm9vdF9wYXRoJ10uJy9tb2R1bGVzL0Zvcm1CdWlsZGVyL291dHB1dC8nLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVzcGVjJywnZm9ybV9zdWJtaXNzaW9ucy50eHQnKSk7CgogICAgJGxpbmUgPSAnJzsKICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCiAgICAgIHsKCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoJaWYgKCRoZWFkZXIgPT0gJycpCgkgIHsKCSAgICAkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwoJICB9IAoJJGhlYWRlciAuPSAiXG4iOwogICAgICB9CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKTsKICAgICAgfQogICAgJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKCiAgICAkdGhpcy0+Zm9ybV9wdHItPnNldEZpbmlzaGVkRm9ybVNtYXJ0eSgpOwogICAgJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJGxpbmUgKTsKICAgIGlmIChzdWJzdHIoJG5ld2xpbmUsLTEsMSkgIT0gIlxuIikKICAgICAgewoJJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmd3JpdGUoJGYyLCRuZXdsaW5lKTsKICAgIGZjbG9zZSgkZjIpOyAKICAgICRtb2QtPlJldHVybkZpbGVMb2NrKCk7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIE1ha2VWYXIoJHN0cmluZykKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHN0cmluZykpOwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXFcvJywnXycsJHN0cmluZykpOwogICAgaWYgKHN0cmxlbigkc3RyaW5nKSA+ICRtYXh2YXJsZW4pCiAgICAgIHsKCSRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwoJJHBvcyA9IHN0cnJwb3MoJHN0cmluZywnXycpOwoJaWYgKCRwb3MgIT09IGZhbHNlKQoJICB7CgkgICAgJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJHBvcyk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRzdHJpbmc7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlSGVhZGVyKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywneyQnIC4gJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLiAnfScpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBpbXBsb2RlKCd7JFRBQn0nLCRmaWVsZHMpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJykuJzwvdGg+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVfbmFtZScpLic8L3RoPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfZm9ybV9maWVsZCcpLic8L3RoPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfZm9ybV9uYW1lfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9kYXRlfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygnaGVscF9zdWJtaXNzaW9uX2RhdGUnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkPnskc3ViX2hvc3R9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3NlcnZlcl9uYW1lJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9zb3VyY2VfaXB9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3N1Yl9zb3VyY2VfaXAnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkPnskc291cmNlX3VybH08L3RkPjx0ZD4nLiRtb2QtPkxhbmcoJ2hlbHBfc3ViX3VybCcpLic8L3RkPjwvdHI+JzsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7ICAgICAgICAgICAgICAgIAoJICAgICRyZXQgLj0gJzx0cj48dGQ+JHsnLiR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpIC4nfTwvdGQ+PHRkPicgLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC90ZD48L3RyPic7CgkgIH0KICAgICAgfQoKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRUQUJ9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3RhYl9zeW1ib2wnKS4nPC90ZD48L3RyPic7ICAgICAgIAkKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX290aGVyX2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKICAgICAgICAKICAgICRlc2NhcGVkU2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKSk7CiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwogICAgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL1RFTVBMQVRFLycsIiciLiRlc2NhcGVkU2FtcGxlLiInIiwkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlKTsKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSBwcmVnX3JlcGxhY2UoJy9JRC8nLCRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSk7CgkgICAKICAgICRlc2NhcGVkSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlSGVhZGVyKCkpOwogICAgJGVzY2FwZWRIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRlc2NhcGVkSGVhZGVyKTsKICAgICR0aGlzLT5zYW1wbGVIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9URU1QTEFURS8nLCInIi4kZXNjYXBlZEhlYWRlci4iJyIsJHRoaXMtPnNhbXBsZUhlYWRlcik7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvSUQvJywkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5zYW1wbGVIZWFkZXIpOwoJICAgCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZUhlYWRlci4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZS4nPC90ZD48L3RyPic7CgogICAgJHJldCAuPSAnPC90YWJsZT4nOwoKCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9uYW1lJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWxlc3BlYycsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJ2Zvcm1fc3VibWlzc2lvbnMudHh0JyksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnKSwKCQkJICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHJldCkpKTsKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2hlYWRlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkZpbGVEaXJlY3Rvcic7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5maWxlQWRkID0gMDsKCiAgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlX2ZpbGUoZm9ybW5hbWUpCiAgICB7CiAgICB2YXIgZm5hbWUgPSAnSURmYnJwX29wdF9maWxlX3RlbXBsYXRlJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT1URU1QTEFURTsKICAgIH0KPC9zY3JpcHQ+CjxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiLiRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGVfZmlsZSh0aGlzLmZvcm0pXCIgLz4iOwogICAgJHRoaXMtPnNhbXBsZUhlYWRlciA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbgpmdW5jdGlvbiBwb3B1bGF0ZV9oZWFkZXIoZm9ybW5hbWUpCiAgICB7CiAgICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfaGVhZGVyJzsKICAgICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGVfaGVhZGVyKHRoaXMuZm9ybSlcIiAvPiI7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbmZpZyA9JiAkZ0Ntcy0+Z2V0Q29uZmlnKCk7CiAgICAkdGhpcy0+ZGZsdF9maWxlcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogIH0KCgogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5maWxlQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKICBmdW5jdGlvbiBjb3VudEZpbGVzKCkKICB7CiAgICAkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgPSBjb3VudCgkdG1wKTsKICAgICAgfQogICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCiAgICAvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKICAgIC8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgogICAgJHNvcnRlZCA9YXJyYXkoKTsKICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCiAgICAgIHsKCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKICAgICAgfQogICAgJGRpc3BsYXluYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScpOwogICAgCiAgICBpZiAoY291bnQoJGRpc3BsYXluYW1lcykgPiAxKQogICAgICB7Cglmb3IoJGk9MDskaTxjb3VudCgkZGlzcGxheW5hbWVzKTskaSsrKQoJICB7CgkgICAgJHNvcnRlZFskZGlzcGxheW5hbWVzWyRpXV09KCRpKzEpOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNvcnRlZFskZGlzcGxheW5hbWVzXSA9ICcxJzsKICAgICAgfQogICAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyInKTsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgICR0aGlzLT5jb3VudEZpbGVzKCk7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkcmV0PSAkbW9kLT5MYW5nKCdmaWxlX2NvdW50JywkdGhpcy0+ZmlsZUNvdW50KTsKICAgIHJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKICAgICRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRjb3VudCA9IDA7CiAgICB3aGlsZSAoISAkbW9kLT5HZXRGaWxlTG9jaygpICYmICRjb3VudDwyMDApCiAgICAgIHsKCSRjb3VudCsrOwoJdXNsZWVwKDUwMCk7CiAgICAgIH0KICAgIGlmICgkY291bnQgPT0gMjAwKQogICAgICB7CglyZXR1cm4gYXJyYXkoZmFsc2UsICRtb2QtPkxhbmcoJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJykpOwogICAgICB9CgoKICAgICRkaXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKS4nLyc7CiAgICAkZmlsZXNwZWMgPSAkZGlyLgogICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsIAoJCSAgICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsCgkJCQkJICAgKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CgogICAgJGxpbmUgPSAnJzsKICAgIGlmICghIGZpbGVfZXhpc3RzKCRmaWxlc3BlYykpCiAgICAgIHsKCSRoZWFkZXIgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpOwoJaWYgKCRoZWFkZXIgPT0gJycpCgkgIHsKCSAgICAkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwoJICB9IAoJJGhlYWRlciAuPSAiXG4iOwogICAgICB9CiAgICAkdGVtcGxhdGUgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJyk7CiAgICBpZiAoJHRlbXBsYXRlID09ICcnKQogICAgICB7CgkkdGVtcGxhdGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKTsKICAgICAgfQogICAgJGxpbmUgPSAkaGVhZGVyLiR0ZW1wbGF0ZTsKCgkkdGhpcy0+Zm9ybV9wdHItPnNldEZpbmlzaGVkRm9ybVNtYXJ0eSgpOwoKICAgICRuZXdsaW5lID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRsaW5lICk7CiAgICBpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCiAgICAgIHsKCSRuZXdsaW5lIC49ICJcbiI7CiAgICAgIH0KCiAgICAkZjIgPSBmb3BlbigkZmlsZXNwZWMsImEiKTsKICAgIGZ3cml0ZSgkZjIsJG5ld2xpbmUpOwogICAgZmNsb3NlKCRmMik7IAogICAgJG1vZC0+UmV0dXJuRmlsZUxvY2soKTsKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsgICAgICAgIAogIH0KCiAgZnVuY3Rpb24gTWFrZVZhcigkc3RyaW5nKQogIHsKICAgICRtYXh2YXJsZW4gPSAyNDsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xzKy8nLCdfJywkc3RyaW5nKSk7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCdfJywkc3RyaW5nKSk7CiAgICBpZiAoc3RybGVuKCRzdHJpbmcpID4gJG1heHZhcmxlbikKICAgICAgewoJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJG1heHZhcmxlbik7CgkkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CglpZiAoJHBvcyAhPT0gZmFsc2UpCgkgIHsKCSAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHN0cmluZzsKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZUhlYWRlcigpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CiAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkZmllbGRzLCRvdGhlcnNbJGldLT5HZXROYW1lKCkpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBpbXBsb2RlKCd7JFRBQn0nLCRmaWVsZHMpOwogIH0KCgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJ3skJyAuICR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpIC4gJ30nKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gaW1wbG9kZSgneyRUQUJ9JywkZmllbGRzKTsKICB9CgoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICAgJHRoaXMtPmNvdW50RmlsZXMoKTsKICAgIGlmKCAkdGhpcy0+ZmlsZUFkZCA+IDAgKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ICs9ICR0aGlzLT5maWxlQWRkOwoJJHRoaXMtPmZpbGVBZGQgPSAwOwogICAgICB9CgogICAgJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5maWxlQ291bnQ+MT8kdGhpcy0+ZmlsZUNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fZmlsZW5hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgoJICAnPC90ZD48L3RyPic7CiAgICAgIH0KICAgICRkZXN0cyAuPSAnPC90YWJsZT4nOwoKCiAgICAkcmV0ID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX2xlZ2VuZCI+PHRyPjx0aCBjb2xzcGFuPSIyIj4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZScpLic8L3RoPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGg+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlX25hbWUnKS4nPC90aD48dGg+Jy4kbW9kLT5MYW5nKCdoZWxwX2Zvcm1fZmllbGQnKS4nPC90aD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkPnskc3ViX2Zvcm1fbmFtZX08L3RkPjx0ZD4nLiRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbmFtZScpLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfZGF0ZX08L3RkPjx0ZD4nLiRtb2QtPkxhbmcoJ2hlbHBfc3VibWlzc2lvbl9kYXRlJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9ob3N0fTwvdGQ+PHRkPicuJG1vZC0+TGFuZygnaGVscF9zZXJ2ZXJfbmFtZScpLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfc291cmNlX2lwfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygnaGVscF9zdWJfc291cmNlX2lwJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHNvdXJjZV91cmx9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3N1Yl91cmwnKS4nPC90ZD48L3RyPic7CiAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgeyAgICAgICAgICAgICAgICAKCSAgICAkcmV0IC49ICc8dHI+PHRkPiR7Jy4kdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0TmFtZSgpKSAuJ308L3RkPjx0ZD4nIC4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvdGQ+PC90cj4nOwoJICB9CiAgICAgIH0KCiAgICAkcmV0IC49ICc8dHI+PHRkPnskVEFCfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygnaGVscF90YWJfc3ltYm9sJykuJzwvdGQ+PC90cj4nOyAgICAgICAJCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9vdGhlcl9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAgICAgCiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCkpOwogICAgJGVzY2FwZWRTYW1wbGUgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRlc2NhcGVkU2FtcGxlKTsKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSBwcmVnX3JlcGxhY2UoJy9URU1QTEFURS8nLCInIi4kZXNjYXBlZFNhbXBsZS4iJyIsJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSk7CiAgICAkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvSUQvJywkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUpOwoJICAgCiAgICAkZXNjYXBlZEhlYWRlciA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpKTsKICAgICRlc2NhcGVkSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvXG4vJywiXFxuJytcbiciLCAkZXNjYXBlZEhlYWRlcik7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvVEVNUExBVEUvJywiJyIuJGVzY2FwZWRIZWFkZXIuIiciLCR0aGlzLT5zYW1wbGVIZWFkZXIpOwogICAgJHRoaXMtPnNhbXBsZUhlYWRlciA9IHByZWdfcmVwbGFjZSgnL0lELycsJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+c2FtcGxlSGVhZGVyKTsKCSAgIAogICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiR0aGlzLT5zYW1wbGVIZWFkZXIuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUuJzwvdGQ+PC90cj4nOwoKICAgICRyZXQgLj0gJzwvdGFibGU+JzsKCgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICdmYnJwX29wdF9zZWxlY3Rfb25lJywKCSAgICAkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3BhdGgnKSwKCQkJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQknZmJycF9vcHRfZmlsZV9wYXRoJywKCQkJCQkJJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCksNDAsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnKSwKCQkJICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHJldCkpKTsKICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX2hlYWRlcicpLAoJCQkgICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKSksJ2ZicnBfb3B0X2ZpbGVfaGVhZGVyJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAvLyR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwogIH0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFormBrowser.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRm9ybUJyb3dzZXIgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhcHByb3ZlZEJ5OwoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gb3JtQnJvd3NlcigmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKCQkkdGhpcy0+SGlkZUxhYmVsID0gMTsKCQkkdGhpcy0+TmVlZHNEaXYgPSAwOwoJCSR0aGlzLT5hcHByb3ZlZEJ5ID0gJyc7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJcmV0dXJuICcnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAkKCQkJJHRoaXMtPkVuY29kZVJlcUlkKCR0aGlzLT5WYWx1ZSkpOwoJfQoKCWZ1bmN0aW9uIFNldEFwcHJvdmFsTmFtZSgkbmFtZSkKCXsKCQkkdGhpcy0+YXBwcm92ZWRCeSA9ICRuYW1lOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSByZXR1cm4gJyc7Cgl9CgkKCWZ1bmN0aW9uIERlY29kZVJlcUlkKCR0aGVWYWwpCgl7CgkJJHRtcCA9IGJhc2U2NF9kZWNvZGUoJHRoZVZhbCk7CgkJJHRtcDIgPSBzdHJfcmVwbGFjZShzZXNzaW9uX2lkKCksJycsJHRtcCk7CgkJaWYgKHN1YnN0cigkdG1wMiwwLDEpID09ICdfJykKCQkJewoJCQlyZXR1cm4gc3Vic3RyKCR0bXAyLDEpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiAtMTsKCQkJfQoJfQoJCglmdW5jdGlvbiBFbmNvZGVSZXFJZCgkcmVxX2lkKQoJewoJCXJldHVybiBiYXNlNjRfZW5jb2RlKHNlc3Npb25faWQoKS4nXycuJHJlcV9pZCk7Cgl9CgkKCQoJZnVuY3Rpb24gU2V0VmFsdWUoJHZhbCkKCXsKCgkJJGRlY3ZhbCA9IGJhc2U2NF9kZWNvZGUoJHZhbCk7CiAgIAoJCWlmICgkdmFsID09PSBmYWxzZSkKCQkJewoJCQkvLyBubyB2YWx1ZSBzZXQsIHNvIHdlJ2xsIGxlYXZlIHZhbHVlIGFzIGZhbHNlCgkJCX0KCQllbHNlaWYgKHN0cnBvcygkZGVjdmFsLCdfJykgPT09IGZhbHNlKQoJCQl7CgkJCS8vIHVuZW5jcnlwdGVkIHZhbHVlLCBjb21pbmcgaW4gZnJvbSBwcmV2aW91cyByZXNwb25zZQoJCQkkdGhpcy0+VmFsdWUgPSAkdmFsOwoJCQl9CgkJZWxzZQoJCQl7CgkJCS8vIGVuY3J5cHRlZCB2YWx1ZSBjb21pbmcgaW4gZnJvbSBhIGZvcm0sIHNvIHdlJ2xsIHVwZGF0ZS4KCQkJJHRoaXMtPlZhbHVlID0gJHRoaXMtPkRlY29kZVJlcUlkKCR2YWwpOwoJCQl9Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZm9ybSA9ICYkdGhpcy0+Zm9ybV9wdHI7CgkJJGZpZWxkcyA9ICYkZm9ybS0+R2V0RmllbGRzKCk7CgkJJGZpZWxkbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vbmUnKT0+Jy0xJyk7CgkJJG1haW4gPSBhcnJheSgpOwoJCSRhZHYgPSBhcnJheSgpOwoJCWZvciAoJGk9MDskaTxjb3VudCgkZmllbGRzKTskaSsrKQoJCQl7CgkJCWlmICgkZmllbGRzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJJGZpZWxkbGlzdFskZmllbGRzWyRpXS0+R2V0TmFtZSgpXSA9ICRmaWVsZHNbJGldLT5HZXRJZCgpOwoJCQkJfQoJCQl9CgkJZm9yICgkaT0xOyRpPDY7JGkrKykKCQkJewoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSwnLTEnKSA9PSAnLTEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbWFpbiwKCQkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zb3J0YWJsZV9maWVsZCcsYXJyYXkoJGkpKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zb3J0ZmllbGQnLiRpLCAkZmllbGRsaXN0LCAtMSwKCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdzb3J0ZmllbGQnLiRpLC0xKSkKCQkJCQkpKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJGZuYW1lID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJGkpLCRmaWVsZGxpc3QpOwoJCQkJYXJyYXlfcHVzaCgkbWFpbiwKCQkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zb3J0YWJsZV9maWVsZCcsYXJyYXkoJGkpKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc29ydGZpZWxkJy4kaSwgJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kaSkpLgoJCQkJCQkkbW9kLT5MYW5nKCd2YWx1ZV9zZXQnLGFycmF5KCRmbmFtZSkpCgkJCQkJKSk7CgkJCQl9CgkJCX0KCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSR0aGlzLT5IaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygkbWFpbkFycmF5LCAkYWR2QXJyYXkpOwoJfQoKICAgIC8vIFdyaXRlIFRvIHRoZSBEYXRhYmFzZQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCSRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKCQkkZm9ybS0+U3RvcmVSZXNwb25zZVhNTCgoJHRoaXMtPlZhbHVlPyR0aGlzLT5WYWx1ZTotMSksCgkJCSR0aGlzLT5hcHByb3ZlZEJ5LAoJCQkkdGhpcy0+Z2V0U29ydEZpZWxkVmFsKDEpLAoJCQkkdGhpcy0+Z2V0U29ydEZpZWxkVmFsKDIpLAoJCQkkdGhpcy0+Z2V0U29ydEZpZWxkVmFsKDMpLAoJCQkkdGhpcy0+Z2V0U29ydEZpZWxkVmFsKDQpLAoJCQkkdGhpcy0+Z2V0U29ydEZpZWxkVmFsKDUpCgkJCSk7CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwkgICAKCX0KCQoJZnVuY3Rpb24gZ2V0U29ydEZpZWxkVmFsKCRzb3J0RmllbGROdW1iZXIpCgl7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSR2YWwgPSAiIjsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc29ydGZpZWxkJy4kc29ydEZpZWxkTnVtYmVyLCctMScpICE9ICctMScpCgkJCXsKCQkJJGFmaWVsZCA9ICYkZm9ybS0+R2V0RmllbGRCeUlkKCR0aGlzLT5HZXRPcHRpb24oJ3NvcnRmaWVsZCcuJHNvcnRGaWVsZE51bWJlcikpOwoJCQkkdmFsID0gJGFmaWVsZC0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkJCX0KCQlpZiAoc3RybGVuKCR2YWwpID4gODApCgkJCXsKCQkJJHZhbCA9IHN1YnN0cigkdmFsLDAsODApOwoJCQl9CgkJcmV0dXJuICR2YWw7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionMultiselectFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgZXh0ZW5kcyAgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwogICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgICAkdGhpcy0+ZmlsZUFkZCA9IDA7CgoKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KZnVuY3Rpb24gcG9wdWxhdGVfZmlsZShmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnOwogICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQo8L3NjcmlwdD4KPGlucHV0IHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIiIuJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpLiJcIiBvbkNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9maWxlKHRoaXMuZm9ybSlcIiAvPiI7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPlxuCmZ1bmN0aW9uIHBvcHVsYXRlX2hlYWRlcihmb3JtbmFtZSkKICAgIHsKICAgICAgdmFyIGZuYW1lID0gJ0lEZmJycF9vcHRfZmlsZV9oZWFkZXInOwogICAgICBmb3JtbmFtZVtmbmFtZV0udmFsdWU9VEVNUExBVEU7CiAgICB9Cjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4kbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcicpLiJcIiBvbkNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9oZWFkZXIodGhpcy5mb3JtKVwiIC8+IjsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5nZXRDb25maWcoKTsKICAgICR0aGlzLT5kZmx0X2ZpbGVwYXRoID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ107CiAgfQoKCiAgZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZpbGVBZGQgPSAxOwogIH0KCiAgZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCiAgewogICAgJGRlbGNvdW50ID0gMDsKICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICRkZWxjb3VudCsrOwoJICB9CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIGNvdW50RmlsZXMoKQogIHsKICAgICR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZmlsZW5hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAKICAgIC8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQogICAgLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCiAgICAkZGlzcGxheW5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJyk7CiAgICAkZGlzcGxheWZpbGVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CgogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkZGlzcGxheW5hbWVzKTsgJGkrKyApCiAgICAgIHsKCSRsYWJlbCA9ICcnOwoJJGN0cmwgPSBuZXcgc3RkQ2xhc3MoKTsKCSRjdHJsLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18nLiRpLiciPicuJGRpc3BsYXluYW1lc1skaV0uJzwvbGFiZWw+JzsKCSRjdHJsLT50aXRsZSA9ICRkaXNwbGF5bmFtZXNbJGldOwoJJGN0cmwtPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsCgkJCQkJCSAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgCgkJCQkJCSAkaSsxLCctMScsCgkJCQkJCSBzcHJpbnRmKCcgaWQ9IiVzXyVzXyVzIicsCgkJCQkJCQkgJGlkLCAkdGhpcy0+SWQsJGkpKTsKCSRmaWVsZHNbXSA9ICRjdHJsOwogICAgICB9CiAgICByZXR1cm4gJGZpZWxkczsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nKQogIHsKICAgICRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKICAgICR0bXAgPSBhcnJheSgpOwogICAgaWYoIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkgKQogICAgICB7Cglmb3JlYWNoKCAkdGhpcy0+VmFsdWUgYXMgJGlkeCApCgkgIHsKCSAgICBpZiggZW1wdHkoJGlkeCkgKSBjb250aW51ZTsKCSAgICAKCSAgICAkaWR4LS07CgkgICAgCgkgICAgJHN0ciA9ICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl92YWx1ZScsJGlkeCk7CgkgICAgaWYoIGVtcHR5KCRzdHIpICkKCSAgICAgIHsKCQkkc3RyID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywkaWR4KTsKCSAgICAgIH0KCSAgICAkdG1wW10gPSAkc3RyOwoJICB9IC8vIGZvcmVhY2gKICAgICAgfSAvLyBpZgoKCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRtcCk7CgkJfQoJZWxzZQoJCXsKICAgIAlyZXR1cm4gJHRtcDsKCQl9CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHJldD0gJG1vZC0+TGFuZygnZmlsZV9jb3VudCcsJHRoaXMtPmZpbGVDb3VudCk7CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CgogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGNvdW50ID0gMDsKICAgIHdoaWxlICghICRtb2QtPkdldEZpbGVMb2NrKCkgJiYgJGNvdW50PDIwMCkKICAgICAgewoJJGNvdW50Kys7Cgl1c2xlZXAoNTAwKTsKICAgICAgfQogICAgaWYgKCRjb3VudCA9PSAyMDApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snKSk7CiAgICAgIH0KCgogICAgJGRpciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfcGF0aCcsJHRoaXMtPmRmbHRfZmlsZXBhdGgpLicvJzsKLyoKICAgIC8vIHNldHVwIHNvbWUgc21hcnR5CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2Zvcm1fbmFtZScsJHRoaXMtPmZvcm1fcHRyLT5HZXROYW1lKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9kYXRlJyxkYXRlKCdyJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9ob3N0JywkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3NvdXJjZV9pcCcsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl91cmwnLCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignVEFCJywiXHQiKTsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICR1bnNwZWMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCSRyZXBsVmFsID0gJyc7CgkkcmVwbFZhbHMgPSBhcnJheSgpOwoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICAkcmVwbFZhbCA9ICRvdGhlcnNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKCSAgICBpZiAoJHJlcGxWYWwgPT0gJycpCgkgICAgICB7CgkJJHJlcGxWYWwgPSAkdW5zcGVjOwoJICAgICAgfQoJICAgIGlmICgkb3RoZXJzWyRpXS0+SGFzTXVsdGlwbGVWYWx1ZXMoKSkKCSAgICAgIHsKCQkkcmVwbFZhbHMgPSAkb3RoZXJzWyRpXS0+R2V0VmFsdWUoKTsKCSAgICAgIH0KCSAgfQoKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXRuYW1lKCkpLCRyZXBsVmFsKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kb3RoZXJzWyRpXS0+R2V0SWQoKSwkcmVwbFZhbCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+TWFrZVZhcigkb3RoZXJzWyRpXS0+R2V0bmFtZSgpKS4nX2FycmF5JywkcmVwbFZhbHMpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiRvdGhlcnNbJGldLT5HZXRJZCgpLidfYXJyYXknLCRyZXBsVmFscyk7CiAgICAgIH0KKi8KCSR0aGlzLT5mb3JtX3B0ci0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CiAgICAkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKICAgIGlmICgkaGVhZGVyID09ICcnKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwogICAgICB9IAogICAgJGhlYWRlciAuPSAiXG4iOwoKICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKTsKICAgIGlmICgkdGVtcGxhdGUgPT0gJycpCiAgICAgIHsKCSR0ZW1wbGF0ZSA9ICR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwogICAgICB9CgogICAgLy8gQmVnaW4gb3V0cHV0IHRvIGZpbGVzCiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSApCiAgICAgIHsKCWZvcmVhY2goICR0aGlzLT5WYWx1ZSBhcyAkaWR4ICkKCSAgewoJICAgIC8vIEkgZHVubm8gd2h5IGl0J3MgZW1wdHkgc29tZXRpbWVzLCBidXQuLi4KCSAgICBpZiggZW1wdHkoJGlkeCkgKSBjb250aW51ZTsKCSAgICAKCSAgICAkaWR4LS07CgkgICAgCgkgICAgLy8gZ2V0IHRoZSBmaWxlbmFtZQoJICAgICRmaWxlc3BlYyA9ICRkaXIuCgkgICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsIAoJCQkgICAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCRpZHgpKTsKCSAgICAKCSAgICAkbGluZSA9ICR0ZW1wbGF0ZTsKCSAgICBpZiAoISBmaWxlX2V4aXN0cygkZmlsZXNwZWMpKQoJICAgICAgewoJCSRsaW5lID0gJGhlYWRlci4kdGVtcGxhdGU7CgkgICAgICB9CgkgICAgCgkgICAgJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJGxpbmUgKTsKCSAgICBpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCgkgICAgICB7CgkJJG5ld2xpbmUgLj0gIlxuIjsKCSAgICAgIH0JCgkgICAgCgkgICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CgkgICAgZndyaXRlKCRmMiwkbmV3bGluZSk7CgkgICAgZmNsb3NlKCRmMik7IAoJICAgIAoJICB9IC8vIGZvcmVhY2gKICAgICAgfSAvLyBpZgogICAgJG1vZC0+UmV0dXJuRmlsZUxvY2soKTsKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsgICAgICAgIAogIH0KCiAgZnVuY3Rpb24gTWFrZVZhcigkc3RyaW5nKQogIHsKICAgICRtYXh2YXJsZW4gPSAyNDsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xzKy8nLCdfJywkc3RyaW5nKSk7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCdfJywkc3RyaW5nKSk7CiAgICBpZiAoc3RybGVuKCRzdHJpbmcpID4gJG1heHZhcmxlbikKICAgICAgewoJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJG1heHZhcmxlbik7CgkkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CglpZiAoJHBvcyAhPT0gZmFsc2UpCgkgIHsKCSAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHN0cmluZzsKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZUhlYWRlcigpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CiAgICAkZmllbGRzID0gYXJyYXkoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkZmllbGRzLCRvdGhlcnNbJGldLT5HZXROYW1lKCkpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBpbXBsb2RlKCd7JFRBQn0nLCRmaWVsZHMpOwogIH0KCgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJ3skJyAuICR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpIC4gJ30nKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gaW1wbG9kZSgneyRUQUJ9JywkZmllbGRzKTsKICB9CgoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICAgJHRoaXMtPmNvdW50RmlsZXMoKTsKICAgIGlmKCAkdGhpcy0+ZmlsZUFkZCA+IDAgKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ICs9ICR0aGlzLT5maWxlQWRkOwoJJHRoaXMtPmZpbGVBZGQgPSAwOwogICAgICB9CgogICAgJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZScpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZScpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgogICAgZm9yICgkaT0wOyRpPCgkdGhpcy0+ZmlsZUNvdW50PjE/JHRoaXMtPmZpbGVDb3VudDoxKTskaSsrKQogICAgICB7CgkkZGVzdHMgLj0gICc8dHI+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9kaXNwbGF5bmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZGlzcGxheW5hbWUnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX3ZhbHVlW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9maWxlbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCgkgICc8L3RkPjwvdHI+JzsKICAgICAgfQogICAgJGRlc3RzIC49ICc8L3RhYmxlPic7CgoKICAgICRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJykuJzwvdGg+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVfbmFtZScpLic8L3RoPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfZm9ybV9maWVsZCcpLic8L3RoPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRzdWJfZm9ybV9uYW1lfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9kYXRlfTwvdGQ+PHRkPicuJG1vZC0+TGFuZygnaGVscF9zdWJtaXNzaW9uX2RhdGUnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkPnskc3ViX2hvc3R9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3NlcnZlcl9uYW1lJykuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0ZD57JHN1Yl9zb3VyY2VfaXB9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3N1Yl9zb3VyY2VfaXAnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkPnskc291cmNlX3VybH08L3RkPjx0ZD4nLiRtb2QtPkxhbmcoJ2hlbHBfc3ViX3VybCcpLic8L3RkPjwvdHI+JzsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7ICAgICAgICAgICAgICAgIAoJICAgICRyZXQgLj0gJzx0cj48dGQ+JHsnLiR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpIC4nfTwvdGQ+PHRkPicgLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC90ZD48L3RyPic7CgkgIH0KICAgICAgfQoKICAgICRyZXQgLj0gJzx0cj48dGQ+eyRUQUJ9PC90ZD48dGQ+Jy4kbW9kLT5MYW5nKCdoZWxwX3RhYl9zeW1ib2wnKS4nPC90ZD48L3RyPic7ICAgICAgIAkKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX290aGVyX2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKICAgICAgICAKICAgICRlc2NhcGVkU2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoKSk7CiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwogICAgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL1RFTVBMQVRFLycsIiciLiRlc2NhcGVkU2FtcGxlLiInIiwkdGhpcy0+c2FtcGxlVGVtcGxhdGVDb2RlKTsKICAgICR0aGlzLT5zYW1wbGVUZW1wbGF0ZUNvZGUgPSBwcmVnX3JlcGxhY2UoJy9JRC8nLCRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZSk7CgkgICAKICAgICRlc2NhcGVkSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlSGVhZGVyKCkpOwogICAgJGVzY2FwZWRIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9cbi8nLCJcXG4nK1xuJyIsICRlc2NhcGVkSGVhZGVyKTsKICAgICR0aGlzLT5zYW1wbGVIZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9URU1QTEFURS8nLCInIi4kZXNjYXBlZEhlYWRlci4iJyIsJHRoaXMtPnNhbXBsZUhlYWRlcik7CiAgICAkdGhpcy0+c2FtcGxlSGVhZGVyID0gcHJlZ19yZXBsYWNlKCcvSUQvJywkZm9ybURlc2NyaXB0b3IsICR0aGlzLT5zYW1wbGVIZWFkZXIpOwoJICAgCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZUhlYWRlci4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJHRoaXMtPnNhbXBsZVRlbXBsYXRlQ29kZS4nPC90ZD48L3RyPic7CgogICAgJHJldCAuPSAnPC90YWJsZT4nOwoKCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkcmV0KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgIC8vJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CiAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionPageRedirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3IgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgCS8vJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKIAkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwoJCSR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKCQkkdGhpcy0+SGFzQWRkT3AgPSB0cnVlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgCQkpOwogICAgICAgCSR0aGlzLT5hZGRyZXNzQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfZGVzdGluYXRpb24nKTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKCXsKCQkkdGhpcy0+YWRkcmVzc0FkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEFkZHJlc3NlcygpCgl7CgkJCSR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fcGFnZScpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gY291bnQoJHRtcCk7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2VpZiAoJHRtcCAhPT0gZmFsc2UpCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmFkZHJlc3NDb3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CgkJCX0KCQkkc3ViamVjdHMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fc3ViamVjdCcpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX3BhZ2UnLCcnKTsKCQkKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICAgICAgJG51bSA9IGNvdW50KCRvcHQpOwoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkbnVtID0gMTsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgfQogICAgICAgICAkcmV0PSAkbW9kLT5MYW5nKCdkZXN0aW5hdGlvbl9jb3VudCcsJG51bSk7CiAgICAgIC8vICAkcmV0Lj0gJHRoaXMtPlRlbXBsYXRlU3RhdHVzKCk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKICAgCQlnbG9iYWwgJGdDbXM7CgkJZ2xvYmFsICRpZDsKICAgIAkJJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fcGFnZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nOwogICAgICAgICAgICAJCSRkZXN0cyAuPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fc3ViamVjdFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsJGkpLDI1LDEyOCk7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICc8L3RkPjx0ZD4nOwoJCQkkZGVzdHMgLj0gICAgIAkJCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsJGkpLCAkaWQuJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX3BhZ2VbXScpOwoJCQkkZGVzdHMgLj0gJzwvdGQ+PHRkPic7CiAgICAgICAgICAgIAkJJGRlc3RzIC49ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpOwogICAgICAgICAgICAgCQkkZGVzdHMgLj0gJzwvdGQ+PC90cj4nOwogICAgICAgICAgICAJCS8vJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ29wdF9kZXN0aW5hdGlvbl9wYWdlW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9wYWdlJywkaSksMjUsMTI4KS4KCgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkvLyBsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCSRhZHYgPSBhcnJheSgpOwoJCSRtYWluID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwoKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZAoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9CgkJLy8gcmVtb3ZlIHRoZSAiZW1haWwgc3ViamVjdCIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCS8vIHJlbW92ZSB0aGUgImhpZGUgY3NzIiBmaWVsZAoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkYWR2QXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSkKCQkJCXsKCQkJCSRoaWRlSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkaGlkZUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkYWR2QXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQlpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQoJCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJyk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCgl9CgkKCWZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKCXsKCQkvLyBJZiBuZWVkZWQsIG1ha2Ugc3VyZSBvdGhlciBkaXNwb3NpdGlvbnMgZ2V0IHJ1biAxc3QuU2VlICBEaXNwb3NlKCRyZXR1cm5pZCkgaW4gRm9ybSBjbGFzcy4KCQkvLyBOb3QgcmVhbGx5IG5lZWRlZCwgdGhlICdGcm9tRW1haWxBZGRyZXNzRmllbGQnIGFscmVhZHkgY2FsbHMgbW9kaWZ5IG90aGVyIGZpZWxkcywgSnVzdCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgdGhlIGVtYWlsIHJlc3VsdHMgdGhpbmdzIGFyZSBsaXN0ZWQgYmVmb3JlIHRoaXMgb25lIGFuZCBldmVyeXRoaW5nIHNob3VsZCBiZSBmaW5lLgoJCS8vIHByaW50X3IoJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSkpOwogICAgCQlnbG9iYWwgJGdDbXM7CiAgICAJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgCQkkbW9kLT5SZWRpcmVjdENvbnRlbnQoJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3BhZ2UnLCgkdGhpcy0+VmFsdWUgLSAxKSkpOwoJCS8vcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fcGFnZScsKCR0aGlzLT5WYWx1ZSAtIDEpKSwKCQkvLwkkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKSk7CgkJcmV0dXJuIGFycmF5KHRydWUsICdldmVyeXRoaW5nIHdvcmtlZCcpOwoJfQoKCglmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX3BhZ2UnKTsKICAJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CgkJaWYgKCRyZXQpCgkJCXsKCQkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJCX0JCQoJCWlmIChjb3VudCgkb3B0KSA9PSAwKQoJCQl7CgkJCSRyZXQgPSBmYWxzZTsKCQkJJG1lc3NhZ2UgLj0gJG1vZC0+TGFuZygnbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbicpLic8L2JyPic7CgkJCX0KCSAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOwogICAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionUserTag.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uVXNlclRhZyBleHRlbmRzICBmYkZpZWxkQmFzZSAKewoKLyoKICB2YXIgJHNhbXBsZVRlbXBsYXRlQ29kZTsKICB2YXIgJHNhbXBsZUhlYWRlcjsKKi8KICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uVXNlclRhZygmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRGlzcG9zaXRpb25Vc2VyVGFnJzsKICAgICR0aGlzLT5Jc0Rpc3Bvc2l0aW9uID0gdHJ1ZTsKICAgICR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSBmYWxzZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKICAgICRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICR1bnNwZWMgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJJHJlcGxWYWwgPSAnJzsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgJHJlcGxWYWwgPSAkb3RoZXJzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkgICAgaWYgKCRyZXBsVmFsID09ICcnKQoJICAgICAgewoJCSRyZXBsVmFsID0gJHVuc3BlYzsKCSAgICAgIH0KCSAgfQoJJHBhcmFtc1skb3RoZXJzWyRpXS0+R2V0TmFtZSgpXSA9ICRyZXBsVmFsOwogICAgICB9CgogICAgZ2xvYmFsICRnQ21zOwogICAgJHVzZXJ0YWdvcHMgPSYgJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgICAkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKSwgJHBhcmFtcyk7CgogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBNYWtlVmFyKCRzdHJpbmcpCiAgewogICAgJG1heHZhcmxlbiA9IDI0OwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXHMrLycsJ18nLCRzdHJpbmcpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7Cgkkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkbWF4dmFybGVuKTsKCSRwb3MgPSBzdHJycG9zKCRzdHJpbmcsJ18nKTsKCWlmICgkcG9zICE9PSBmYWxzZSkKCSAgewoJICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRwb3MpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkc3RyaW5nOwogIH0KCi8qCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlSGVhZGVyKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoqLwoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkdXNlcnRhZ29wcyA9JiAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKICAgICR1c2VydGFncyA9ICR1c2VydGFnb3BzLT5MaXN0VXNlclRhZ3MoKTsKICAgICR1c2VydGFnbGlzdCA9IGFycmF5KCk7CiAgICBmb3JlYWNoKCAkdXNlcnRhZ3MgYXMgJGtleSA9PiAkdmFsdWUgKQogICAgICB7CgkkdXNlcnRhZ2xpc3RbJHZhbHVlXSA9ICRrZXk7CiAgICAgIH0KICAgICRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91ZHRfbmFtZScpLAoJCSAgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAnZmJycF9vcHRfdWR0bmFtZScsJHVzZXJ0YWdsaXN0LC0xLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ3VkdG5hbWUnKSkpOwoKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkdGhpcy0+SGlkZGVuRGlzcG9zaXRpb25GaWVsZHMoJG1haW5BcnJheSwgJGFkdkFycmF5KTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FieldBase.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkSWQ9LTE7CiAgdmFyICRGb3JtSWQ7CiAgdmFyICROYW1lOwogIHZhciAkVHlwZTsKICB2YXIgJFJlcXVpcmVkPS0xOwogIHZhciAkT3JkZXJCeTsKICB2YXIgJEhpZGVMYWJlbD0tMTsKICB2YXIgJEhhc0xhYmVsPTE7CiAgdmFyICROZWVkc0Rpdj0xOwogIHZhciAkU21hcnR5RXZhbDsKCiAgdmFyICRWYWxpZGF0aW9uVHlwZXM7CiAgdmFyICRWYWxpZGF0aW9uVHlwZTsKICB2YXIgJHZhbGlkYXRlZCA9IHRydWU7CiAgdmFyICR2YWxpZGF0aW9uRXJyb3JUZXh0OwoKICB2YXIgJERpc3BsYXlJbkZvcm07CiAgdmFyICREaXNwbGF5SW5TdWJtaXNzaW9uOwogIHZhciAkRGlzcG9zaXRpb25QZXJtaXR0ZWQ7CiAgdmFyICRJc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIHZhciAkTm9uUmVxdWlyYWJsZUZpZWxkOwogIHZhciAkSGFzQWRkT3A7CiAgdmFyICRIYXNEZWxldGVPcDsKICB2YXIgJEhhc1VzZXJBZGRPcDsKICB2YXIgJEhhc1VzZXJEZWxldGVPcDsKICB2YXIgJG1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgdmFyICRoYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzOwogIHZhciAkbGFiZWxTdWJDb21wb25lbnRzOwoKICB2YXIgJFZhbHVlPWZhbHNlOwogIHZhciAkZm9ybV9wdHI7CiAgdmFyICRPcHRpb25zOwogIHZhciAkbG9hZGVkOwogIHZhciAkc29ydGFibGU7CgogIGZ1bmN0aW9uIGZiRmllbGRCYXNlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKCiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAmJGZvcm1fcHRyOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+T3B0aW9ucyA9IGFycmF5KCk7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IHRydWU7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScpOwogICAgJHRoaXMtPmxvYWRlZCA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNVc2VyQWRkT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNVc2VyRGVsZXRlT3AgPSBmYWxzZTsKICAgICR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkID0gdHJ1ZTsKICAgICR0aGlzLT5TbWFydHlFdmFsID0gZmFsc2U7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gdHJ1ZTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IHRydWU7CiAgICAkdGhpcy0+SXNDb21wdXRlZE9uU3VibWlzc2lvbiA9IGZhbHNlOwoKICAgIGlmIChpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pKQogICAgICB7CgkkdGhpcy0+Rm9ybUlkID0gJHBhcmFtc1snZm9ybV9pZCddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkpCiAgICAgIHsKCSR0aGlzLT5JZCA9ICRwYXJhbXNbJ2ZpZWxkX2lkJ107CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2ZpZWxkX25hbWUnXSkpCiAgICAgIHsKCSR0aGlzLT5OYW1lID0gJHBhcmFtc1snZmJycF9maWVsZF9uYW1lJ107CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2ZpZWxkX3R5cGUnXSkpCiAgICAgIHsKCSR0aGlzLT5UeXBlID0gJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ107CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPlR5cGUgPSAnJzsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfb3JkZXJfYnknXSkpCiAgICAgIHsKCSR0aGlzLT5PcmRlckJ5ID0gJHBhcmFtc1snZmJycF9vcmRlcl9ieSddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9oaWRlX2xhYmVsJ10pKQogICAgICB7CgkkdGhpcy0+SGlkZUxhYmVsID0gJHBhcmFtc1snZmJycF9oaWRlX2xhYmVsJ107CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2V0X2Zyb21fZm9ybSddKSkKICAgICAgewoJJHRoaXMtPkhpZGVMYWJlbCA9IDA7CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX3JlcXVpcmVkJ10pKQogICAgICB7CgkkdGhpcy0+UmVxdWlyZWQgPSAkcGFyYW1zWydmYnJwX3JlcXVpcmVkJ107CiAgICAgIH0KICAgIGVsc2UgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2V0X2Zyb21fZm9ybSddKSkKICAgICAgewoJJHRoaXMtPlJlcXVpcmVkID0gMDsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfdmFsaWRhdGlvbl90eXBlJ10pKQogICAgICB7CgkkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAkcGFyYW1zWydmYnJwX3ZhbGlkYXRpb25fdHlwZSddOwogICAgICB9CgogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc1BhcmFtS2V5PT4kdGhpc1BhcmFtVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzUGFyYW1LZXksMCw5KSA9PSAnZmJycF9vcHRfJykKCSAgewoJICAgICR0aGlzUGFyYW1LZXkgPSBzdWJzdHIoJHRoaXNQYXJhbUtleSw5KTsKCSAgICAkdGhpcy0+T3B0aW9uc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWw7CgkgIH0KICAgICAgfQoKICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pICYmCgkoaXNfYXJyYXkoJHBhcmFtc1snZmJycF9fJy4kdGhpcy0+SWRdKSB8fAoJIHN0cmxlbigkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pID4gMCkpCiAgICAgIHsKCSAgICR0aGlzLT5TZXRWYWx1ZSgkcGFyYW1zWydmYnJwX18nLiR0aGlzLT5JZF0pOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBIYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHM7CiAgfQoKICBmdW5jdGlvbiBMYWJlbFN1YkNvbXBvbmVudHMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzOwogIH0KCiAgZnVuY3Rpb24gQ29tcHV0ZU9uU3VibWlzc2lvbigpCiAgewogICAgcmV0dXJuICR0aGlzLT5Jc0NvbXB1dGVkT25TdWJtaXNzaW9uOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIAogIGZ1bmN0aW9uIENvbXB1dGVPcmRlcigpCiAgewogIAlyZXR1cm4gMDsKICB9CgogIGZ1bmN0aW9uIEhhc011bHRpcGxlVmFsdWVzKCkKICB7CiAgCWlmICgkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyB8fCAkdGhpcy0+SGFzVXNlckFkZE9wKQogIAkJewogIAkJcmV0dXJuIHRydWU7CiAgCQl9CiAgCWVsc2UKICAJCXsKICAJCXJldHVybiBmYWxzZTsKICAJCX0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXRJZCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICRpZC4nZmJycF9fJy4kdGhpcy0+SWQ7CiAgfQoKICBmdW5jdGlvbiBNb2RpZmllc090aGVyRmllbGRzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPm1vZGlmaWVzT3RoZXJGaWVsZHM7CiAgfQoKICAvLyBtZWNoYW5pc20gZm9yIGZpZWxkcy9kaXNwb3NpdGlvbnMgdG8gaW5oaWJpdCBvdGhlciBkaXNwb3NpdGlvbnMKICBmdW5jdGlvbiBEaXNwb3NpdGlvbklzUGVybWl0dGVkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkRpc3Bvc2l0aW9uUGVybWl0dGVkOwogIH0KCiAgLy8gbWVjaGFuaXNtIGZvciBmaWVsZHMvZGlzcG9zaXRpb25zIHRvIGluaGliaXQgb3RoZXIgZGlzcG9zaXRpb25zCiAgZnVuY3Rpb24gU2V0RGlzcG9zaXRpb25QZXJtaXNzaW9uKCRwZXJtaXR0ZWQ9dHJ1ZSkKICB7CiAgICAkdGhpcy0+RGlzcG9zaXRpb25QZXJtaXR0ZWQgPSAkcGVybWl0dGVkOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIGlmIHlvdSdyZSBqdXN0IHR3ZWFraW5nIG90aGVyIGZpZWxkcyBiZWZvcmUgZGlzcG9zaXRpb24KICBmdW5jdGlvbiBNb2RpZnlPdGhlckZpZWxkcygpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBhIGZvcm0gaW5wdXQgc3RyaW5nIG9yIHNvbWV0aGluZwogIC8vIHRoaXMgc2hvdWxkIGp1c3QgYmUgdGhlIGlucHV0IHBvcnRpb24uIFRoZSB0aXRsZQogIC8vIGFuZCBhbnkgd3JhcHBpbmcgZGl2cyB3aWxsIGJlIHByb3ZpZGVkIGJ5IHRoZSBmb3JtCiAgLy8gcmVuZGVyZXIuCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICcnOwogIH0KCQogIC8vIG92ZXJyaWRlIG1lIHdpdGggc29tZXRoaW5nIHRvIHNob3cgdXNlcnMKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICByZXR1cm4gJyc7CiAgfQoKICBmdW5jdGlvbiBEZWJ1Z0Rpc3BsYXkoKQogIHsKICAgICR0bXAgPSAkdGhpcy0+Zm9ybV9wdHI7CiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAnW2ZybXB0cjogJy4kdG1wLT5HZXRJZCgpLiddJzsKICAgIGRlYnVnX2Rpc3BsYXkoJHRoaXMpOwogICAgJHRoaXMtPmZvcm1fcHRyID0gJHRtcDsKICB9CgogIGZ1bmN0aW9uIEdldElkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gSGFzQWRkT3AoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SGFzQWRkT3A7CiAgfQoKICAvLyBvdmVycmlkZSBtZSwgd2hlbiBuZWNlc3Nhcnkgb3IgdXNlZnVsCiAgZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCiAgewogIH0KCiAgLy8gb3ZlcnJpZGUgbWUKICBmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQogIHsKICAgICRtb2QgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKICB9CgkKICBmdW5jdGlvbiBIYXNEZWxldGVPcCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNEZWxldGVPcDsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKICBmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZQogIGZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfb3B0aW9ucycpOwogIH0KCiAgZnVuY3Rpb24gU2V0TmFtZSgkbmFtZSkKICB7CiAgCSR0aGlzLT5OYW1lID0gJG5hbWU7CiAgfQogIAogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TmFtZTsKICB9CgogIGZ1bmN0aW9uIEdldEFsaWFzKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkdldE9wdGlvbignZmllbGRfYWxpYXMnLCcnKTsKICB9CgogIGZ1bmN0aW9uIFNldFNtYXJ0eUV2YWwoJGJvb2wpCiAgewogIAkkdGhpcy0+U21hcnR5RXZhbCA9ICRib29sOwogIH0KICAKICBmdW5jdGlvbiBHZXRTbWFydHlFdmFsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlNtYXJ0eUV2YWw7CiAgfQoKICBmdW5jdGlvbiBHZXRPcmRlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5PcmRlckJ5OwogIH0KCiAgZnVuY3Rpb24gU2V0T3JkZXIoJG9yZGVyKQogIHsKICAgICR0aGlzLT5PcmRlckJ5ID0gJG9yZGVyOwogIH0KCQogIGZ1bmN0aW9uIEdldEZpZWxkVHlwZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0RmllbGRUeXBlKCR0eXBlKQogIHsKICAgIHJldHVybiAkdGhpcy0+VHlwZSA9ICR0eXBlOwogIH0KCgkKICBmdW5jdGlvbiBJc0Rpc3Bvc2l0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPklzRGlzcG9zaXRpb247CiAgfQoKICBmdW5jdGlvbiBIYXNMYWJlbCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNMYWJlbDsKICB9CgogIGZ1bmN0aW9uIE5lZWRzRGl2KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5lZWRzRGl2OwogIH0KCgogIGZ1bmN0aW9uIFNldEhpZGVMYWJlbCgkaGlkZSkKICB7CiAgCSR0aGlzLT5IaWRlTGFiZWwgPSAkaGlkZT8xOjA7CiAgfQogIAkKICBmdW5jdGlvbiBIaWRlTGFiZWwoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPkhpZGVMYWJlbD09MT90cnVlOmZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJbkZvcm0oKQogIHsKICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUluRm9ybTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJblN1Ym1pc3Npb24oKQogIHsKICAgIC8vcmV0dXJuICgkdGhpcy0+RGlzcGxheUluRm9ybSAmJiAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbik7CiAgICByZXR1cm4gJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb247CiAgfQoKCQogIGZ1bmN0aW9uIElzTm9uUmVxdWlyYWJsZUZpZWxkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZDsKICB9CgogIGZ1bmN0aW9uIElzUmVxdWlyZWQoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlJlcXVpcmVkID09IDE/dHJ1ZTpmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBTZXRSZXF1aXJlZCgkcmVxdWlyZWQpCiAgewogICAgJHRoaXMtPlJlcXVpcmVkID0gKCRyZXF1aXJlZD8xOjApOwogIH0KCiAgZnVuY3Rpb24gVG9nZ2xlUmVxdWlyZWQoKQogIHsKICAgICR0aGlzLT5SZXF1aXJlZCA9ICgkdGhpcy0+UmVxdWlyZWQ/MDoxKTsKICB9CgoKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsaWRhdGlvblR5cGVzOwogIH0KCQogIGZ1bmN0aW9uIEdldFZhbGlkYXRpb25UeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbGlkYXRpb25UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0VmFsaWRhdGlvblR5cGUoJHRoZVR5cGUpCiAgewogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHRoZVR5cGU7CiAgfQoKICBmdW5jdGlvbiBJc1ZhbGlkKCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGVkOwogIH0KICAKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uRXJyb3JUZXh0KCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSB3aXRoIGEgZGlzcGxheWFibGUgdHlwZQogIGZ1bmN0aW9uIEdldERpc3BsYXlUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCdmaWVsZF90eXBlXycuJHRoaXMtPlR5cGUpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQmFzZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IsJGRpc3Bvc2VPbmx5PTApCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+VHlwZSA9PSAnJykKICAgICAgewoJaWYgKCRkaXNwb3NlT25seSA9PSAxKQoJICB7CgkgICAgJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZGlzcF9maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKSInKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdHlwZUlucHV0ID0gJHRoaXMtPkdldERpc3BsYXlUeXBlKCkuJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJywgJHRoaXMtPlR5cGUpOwogICAgICB9CgkJCiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbmFtZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSwkdHlwZUlucHV0KSwKCQkgICk7CgkJCiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAvLyBpZiB3ZSBrbm93IG91ciB0eXBlLCB3ZSBjYW4gbG9hZCB1cCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucwogICAgaWYgKCR0aGlzLT5UeXBlICE9ICcnKQogICAgICB7CgkJCQoJLy8gdmFsaWRhdGlvbiB0eXBlcz8KCWlmIChjb3VudCgkdGhpcy0+R2V0VmFsaWRhdGlvblR5cGVzKCkpID4gMSkKCSAgewoJICAgICR2YWxpZElucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX3ZhbGlkYXRpb25fdHlwZScsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSwgLTEsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZSgpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHZhbGlkSW5wdXQgPSAkbW9kLT5MYW5nKCdhdXRvbWF0aWMnKTsKCSAgfQoJCQkJCglpZiAoISR0aGlzLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSwkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfcmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCSAgfQoJCQkJCglhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCglpZiggJHRoaXMtPkhhc0xhYmVsID09IDEgKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2hpZGVfbGFiZWwnLCAxLCAkdGhpcy0+SGlkZUxhYmVsKCkpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZycpKSk7CgkgIH0KCglpZiAoJHRoaXMtPkRpc3BsYXlJbkZvcm0oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGFkdixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY3NzX2NsYXNzJywgJHRoaXMtPkdldE9wdGlvbignY3NzX2NsYXNzJyksIDUwKSkpOwoJICB9CgkKCSRhbGlhcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX2FsaWFzJywnJyk7CglpZiAoJGFsaWFzID09ICcnKQoJCXsKCQkkYWxpYXMgPSAnZmxkJy4kdGhpcy0+R2V0SWQoKTsKCQl9CglhcnJheV9wdXNoKCRhZHYsIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2FsaWFzJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpZWxkX2FsaWFzJywgJHRoaXMtPkdldE9wdGlvbignZmllbGRfYWxpYXMnKSwgNTApKSk7CQkJCiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gbm8gYWR2YW5jZWQgb3B0aW9ucyB1bnRpbCB3ZSBrbm93IG91ciB0eXBlCglhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyksJG1vZC0+TGFuZygnbm90aWNlX3NlbGVjdF90eXBlJykpKTsKICAgICAgfQoJCQkJCiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwgJ2Fkdic9PiRhZHYpOwogIH0KCQoJCiAgLy8gb3ZlcnJpZGUgbWUuCiAgLy8gSSByZXR1cm4gYW4gdWdseSBkYXRhIHN0cnVjdHVyZToKICAvLyBJdCdzIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdHdvIGl0ZW1zLCAnbWFpbicgYW5kICdhZHYnIChmb3IgdGhlCiAgLy8gbWFpbiBhbmQgYWR2YW5jZWQgc2V0dGluZyB0YWJzKS4KICAvLyBFYWNoIG9mIHRoZXNlIGlzIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIFRpdGxlIC8gSW5wdXQgdmFsdWVzLgogIC8vIFRoZSBUaXRsZSB3aWxsIGJlIGRpc3BsYXllZCBpZiBpdCBoYXMgYSBsZW5ndGg7CiAgLy8gdGhlICJJbnB1dCIgc2hvdWxkIGJlIGEgRm9ybSBpbnB1dCBmb3IgdGhhdCBmaWVsZCBhdHRyaWJ1dGUvb3B0aW9uCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKICAgIHJldHVybiBhcnJheSgpOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUuCiAgLy8gVGhpcyBnaXZlcyB5b3UgYSBjaGFuY2UgdG8gYWx0ZXIgdGhlIGFycmF5IGNvbnRlbnRzIGJlZm9yZQogIC8vIHRoZXkgZ2V0IHJlbmRlcmVkLiAKICBmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCiAgewogIH0KCgogIC8vIG92ZXJyaWRlIG1lIGFzIG5lY2Vzc2FyeQogIGZ1bmN0aW9uIFBvc3RBZG1pblN1Ym1pdENsZWFudXAoKQogIHsKICB9CgogIC8vIGNsZWFyIGZpZWxkcyB1bnVzZWQgYnkgaW52aXNpYmxlIGRpc3Bvc2l0aW9ucwogIGZ1bmN0aW9uIEhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5LCAkaGlkZVJlcT10cnVlKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgaWYgKCRoaWRlUmVxKQogICAgCXsKICAgIAkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQKICAgIAkkcmVxSW5kZXggPSAtMTsKICAgIAlmb3IgKCRpPTA7JGk8Y291bnQoJG1haW5BcnJheSk7JGkrKykKICAgICAgCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCSAgCQkJewoJICAgIAkJJHJlcUluZGV4ID0gJGk7CgkgIAkJCX0KICAgICAgCQl9CiAgICAJaWYgKCRyZXFJbmRleCAhPSAtMSkKICAgICAgCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CiAgICAgIAkJfQogICAgIAl9CiAgICAvLyByZW1vdmUgdGhlICJoaWRlIG5hbWUiIGZpZWxkCiAgICAkaGlkZUluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQogICAgICB7CglpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfaGlkZV9sYWJlbCcpKQoJICB7CgkgICAgJGhpZGVJbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIGlmICgkaGlkZUluZGV4ICE9IC0xKQogICAgICB7CglhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwogICAgICB9CiAgICAvLyByZW1vdmUgdGhlICJjc3MiIGZpZWxkCiAgICAkaGlkZUluZGV4ID0gLTE7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQogICAgICB7CglpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJykpCgkgIHsKCSAgICAkaGlkZUluZGV4ID0gJGk7CgkgIH0KICAgICAgfQogICAgaWYgKCRoaWRlSW5kZXggIT0gLTEpCiAgICAgIHsKCWFycmF5X3NwbGljZSgkYWR2QXJyYXksICRoaWRlSW5kZXgsMSk7CiAgICAgIH0KICAgIGlmIChjb3VudCgkYWR2QXJyYXkpID09IDApCiAgICAgIHsKCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CiAgICAgIH0KICB9CgkKCiAgLy8gb3ZlcnJpZGUgbWUuIFJldHVybnMgYW4gYXJyYXk6IGZpcnN0IHZhbHVlIGlzIGEgdHJ1ZSBvciBmYWxzZSAod2hldGhlciBvciBub3QKICAvLyB0aGUgdmFsdWUgaXMgdmFsaWQpLCB0aGUgc2Vjb25kIGlzIGEgbWVzc2FnZQogIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICB7CiAgCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwogIAkkdGhpcy0+dmFsaWRhdGVkRXJyb3JUZXh0ID0gJyc7CiAgICByZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRlZEVycm9yVGV4dCk7CiAgfQoKCiAgLy8gb3ZlcnJpZGUgbWUhCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CgkJJHJldCA9ICR0aGlzLT5WYWx1ZTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkgICRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCSAgfQoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgoKICAvLyBvdmVycmlkZSB0aGlzIGlmIHlvdSBoYXZlIHNvbWUgdW51c3VhbCBmb3JtYXQgZm9yIHZhbHVlcywKICAvLyBlc3BlY2lhbGx5IGlmICJmYWxzZSIgaXMgYSB2YWxpZCB2YWx1ZSEKICBmdW5jdGlvbiBIYXNWYWx1ZSgpCiAgewogICAgcmV0dXJuICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKTsKICB9CgkKICAvLyBwcm9iYWJseSBkb24ndCBuZWVkIHRvIG92ZXJyaWRlIHRoaXMKICBmdW5jdGlvbiBHZXRWYWx1ZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5WYWx1ZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lPyBSZXR1cm5zIHRoZSAocG9zc2libHkgY29udmVydGVkKSB2YWx1ZSBvZiB0aGUgZmllbGQuCiAgZnVuY3Rpb24gR2V0QXJyYXlWYWx1ZSgkaW5kZXgpCiAgewogICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCiAgICAgIHsKCWlmIChpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0aGlzLT5WYWx1ZVskaW5kZXhdKSkKCSAgICAgIHsKCQlyZXR1cm4gJHRoaXMtPlZhbHVlWyRpbmRleF07CgkgICAgICB9CgkgIH0KCWVsc2VpZiAoJGluZGV4ID09IDApCgkgIHsKCSAgICByZXR1cm4gJHRoaXMtPlZhbHVlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgogIC8vIG92ZXJyaWRlIG1lPyBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlzIGNvbnRhaW5lZCBpbiB0aGUgVmFsdWUgYXJyYXkKICBmdW5jdGlvbiBGaW5kQXJyYXlWYWx1ZSgkdmFsdWUpCiAgewogICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCiAgICAgIHsKCWlmIChpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJICB7CgkgICAgcmV0dXJuIGFycmF5X3NlYXJjaCgkdmFsdWUsJHRoaXMtPlZhbHVlKTsKCSAgfQoJZWxzZWlmICgkdGhpcy0+VmFsdWUgPT0gJHZhbHVlKQoJICB7CgkgICAgcmV0dXJuIHRydWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gUmVzZXRWYWx1ZSgpCiAgewogICAgJHRoaXMtPlZhbHVlID0gZmFsc2U7CiAgfQoKICAvLyBvdmVycmlkZSBtZSwgaWYgbmVjZXNzYXJ5IHRvIGNvbnZlcnQgdHlwZSBvciBzb21ldGhpbmcuCiAgZnVuY3Rpb24gU2V0VmFsdWUoJHZhbFN0cikKICB7CiAgICAkZm0gPSAmJHRoaXMtPmZvcm1fcHRyOwogICAgaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCiAgICAgIHsKICAgICAgaWYgKGlzX2FycmF5KCR2YWxTdHIpKQogICAgICAgICB7CiAgICAgICAgICR0aGlzLT5WYWx1ZSA9ICR2YWxTdHI7CiAgICAgICAgIGZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+VmFsdWUpOyRpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgd2hpbGUgKCAkdGhpcy0+VmFsdWVbJGldICE9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHRoaXMtPlZhbHVlWyRpXSkpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgJHRoaXMtPlZhbHVlWyRpXSA9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHRoaXMtPlZhbHVlWyRpXSk7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICB3aGlsZSAoJHRoaXMtPlZhbHVlICE9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cikpCiAgICAgICAgICAgIHsKCSAgICAgICAgICR0aGlzLT5WYWx1ZSA9ICRmbS0+dW5teV9odG1sZW50aXRpZXMoJHZhbFN0cik7CgkgICAgICAgICB9CgkgICAgICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewogICAgICB3aGlsZSAoJHZhbFN0ciAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpKQogICAgICAgICB7CiAgICAgICAgICR2YWxTdHIgPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpOwogICAgICAgICB9CglpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJICB7CgkgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCSAgfQoJYXJyYXlfcHVzaCgkdGhpcy0+VmFsdWUsJHZhbFN0cik7CiAgICAgIH0KICB9CgogIC8vIG92ZXJyaWRlIG1lLCBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBDb21wYXJlVG8oJHZhbCkKICB7CiAgICByZXR1cm4gc3RyY21wKCR2YWwtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLCAkdGhpcy0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCkpOwogIH0KCiAgZnVuY3Rpb24gUmVxdWlyZXNWYWxpZGF0aW9uKCkKICB7CiAgICBpZiAoJHRoaXMtPlZhbGlkYXRpb25UeXBlID09ICdub25lJykKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiB0cnVlOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBEb2VzRmllbGROYW1lRXhpc3QoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCQogICAgLy8gZmllbGQgbmFtZSBpbiB1c2U/PwogICAgaWYgKCRtb2QtPkdldFByZWZlcmVuY2UoJ3VuaXF1ZV9maWVsZG5hbWVzJywnMScpID09ICcxJyAmJgogICAgCSR0aGlzLT5mb3JtX3B0ci0+SGFzRmllbGROYW1lZCgkdGhpcy0+R2V0TmFtZSgpKSAhPSAkdGhpcy0+SWQpCiAgICAgIHsKCQlyZXR1cm4gYXJyYXkoZmFsc2UsJG1vZC0+TGFuZygnZmllbGRfbmFtZV9pbl91c2UnLCR0aGlzLT5HZXROYW1lKCkpLgoJCSc8YnIgLz4nKTsKICAgICAgfQkJCiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgfQoKCiAgIGZ1bmN0aW9uIERvZXNGaWVsZEhhdmVOYW1lKCkKICAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgCWlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZXF1aXJlX2ZpZWxkbmFtZXMnLCcxJykgPT0gJzEnICYmCiAgCQlzdHJsZW4oJHRoaXMtPkdldE5hbWUoKSkgPCAxKQogIAkJewogIAkJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdmaWVsZF9ub19uYW1lJykuJzxiciAvPicpOwogIAkJfQoJcmV0dXJuIGFycmF5KHRydWUsJycpOyAgIAogICB9CgogIC8vIG92ZXJyaWRlIG1lLCBpZiBuZWVkZWQuIFJldHVybnMgYW4gYXJyYXk6IGZpcnN0IHZhbHVlIGlzIGEgdHJ1ZSBvcgogIC8vIGZhbHNlICh3aGV0aGVyIG9yIG5vdCB0aGUgdmFsdWUgaXMgdmFsaWQpLCB0aGUgc2Vjb25kIGlzIGEgbWVzc2FnZQogIGZ1bmN0aW9uIEFkbWluVmFsaWRhdGUoKQogIHsKICAJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkSGF2ZU5hbWUoKTsKCWlmICgkcmV0KQoJCXsKCQlsaXN0KCRyZXQsICRtZXNzYWdlKSA9ICR0aGlzLT5Eb2VzRmllbGROYW1lRXhpc3QoKTsKCQl9CglyZXR1cm4gYXJyYXkoJHJldCwgJG1lc3NhZ2UpOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIGlmIHlvdSdyZSBhIEZvcm0gRGlzcG9zaXRpb24gcHNldWRvLWZpZWxkLgogIC8vIFRoaXMgbWV0aG9kIGNhbiBkbyBqdXN0CiAgLy8gYWJvdXQgYW55dGhpbmcgeW91IHdhbnQgaXQgdG8sIGluIG9yZGVyIHRvIGhhbmRsZSBmb3JtIGNvbnRlbnRzLgogIC8vIGl0IHJldHVybnMgYW4gYXJyYXksIHdoZXJlIHRoZSBmaXJzdCBlbGVtZW50IGlzIHRydWUgb24gc3VjY2VzcywKICAvLyBvciBmYWxzZSBvbiBmYWlsdXJlLCBhbmQgdGhlIHNlY29uZCBlbGVtZW50IGlzIGV4cGxhbmF0b3J5CiAgLy8gdGV4dCBmb3IgdGhlIGZhaWx1cmUKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgpCiAgewogICAgcmV0dXJuIGFycmF5KHRydWUsICcnKTsKICB9CQoKICBmdW5jdGlvbiBFeHBvcnRYTUwoJGV4cG9ydFZhbHVlcyA9IGZhbHNlKQogIHsKCSR4bWxzdHIgPSAiXHQ8ZmllbGQgaWQ9XCIiLiR0aGlzLT5JZC4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0dHlwZT1cIiIuJHRoaXMtPlR5cGUuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdG5hbWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPk5hbWUpLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHR2YWxpZGF0aW9uX3R5cGU9XCIiLiR0aGlzLT5WYWxpZGF0aW9uVHlwZS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0b3JkZXJfYnk9XCIiLiR0aGlzLT5PcmRlckJ5LiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRyZXF1aXJlZD1cIiIuJHRoaXMtPlJlcXVpcmVkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRoaWRlX2xhYmVsPVwiIi4kdGhpcy0+SGlkZUxhYmVsLiJcIj5cbiI7CgkkeG1sc3RyIC49ICR0aGlzLT5PcHRpb25zQXNYTUwoKTsKCWlmICgkZXhwb3J0VmFsdWVzKQoJCXsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0PHZhbHVlPjwhW0NEQVRBWyIuJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLiJdXT48L3ZhbHVlPlxuIjsKCQl9CgoJJHhtbHN0ciAuPSAiPC9maWVsZD5cbiI7CglyZXR1cm4gJHhtbHN0cjsKICB9CgoKICAgLy8gb3ZlcnJpZGUgYXMgbmVjZXNzYXJ5CiAgIGZ1bmN0aW9uIE9wdGlvbnNBc1hNTCgpCgl7CgkJJHhtbHN0ciA9ICIiOwoJCWZvcmVhY2goJHRoaXMtPk9wdGlvbnMgYXMgJG5hbWU9PiR2YWx1ZSkKCQkJewoJCQlpZiAoaXNfYXJyYXkoJHZhbHVlKSkKCQkJCXsKCQkJCWZvcmVhY2ggKCR2YWx1ZSBhcyAkdGhpc1ZhbCkKCQkJCQl7CgkJCQkJJHhtbHN0ciAuPSAiXHRcdFx0PG9wdGlvbiBuYW1lPVwiJG5hbWVcIj48IVtDREFUQVskdGhpc1ZhbF1dPjwvb3B0aW9uPlxuIjsKCQkJCQl9CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb24gbmFtZT1cIiRuYW1lXCI+PCFbQ0RBVEFbJHZhbHVlXV0+PC9vcHRpb24+XG4iOwoJCQkJfQoJCQl9CgkJcmV0dXJuICAkeG1sc3RyOwoJfQoKCiAgZnVuY3Rpb24gRXhwb3J0T2JqZWN0KCkKICB7Cgkkb2JqID0gbmV3IHN0ZENsYXNzKCk7Cgkkb2JqLT5uYW1lID0gJHRoaXMtPk5hbWU7Cgkkb2JqLT50eXBlID0gJHRoaXMtPlR5cGU7Cgkkb2JqLT5pZCA9ICR0aGlzLT5JZDsKCSRvYmotPnZhbHVlID0gJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSh0cnVlKTsKCSRvYmotPnZhbHVlQXJyYXkgPSAkdGhpcy0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKGZhbHNlKTsKCXJldHVybiAkb2JqOwogIH0KCgogIGZ1bmN0aW9uIEdldE9wdGlvbk5hbWVzKCkKICB7CiAgICByZXR1cm4gYXJyYXlfa2V5cygkdGhpcy0+T3B0aW9ucyk7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb24oJG9wdGlvbk5hbWUsICRkZWZhdWx0PScnKQogIHsKICAgIGlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogICAgICB7CglyZXR1cm4gJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdOwogICAgICB9CiAgICByZXR1cm4gJGRlZmF1bHQ7CiAgfQoKICBmdW5jdGlvbiAmR2V0T3B0aW9uUmVmKCRvcHRpb25OYW1lKQogICAgewogICAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKCXsKCSAgcmV0dXJuICR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXTsKCX0KICAgICAgJHRtcCA9IGZhbHNlOwogICAgICByZXR1cm4gJHRtcDsKICAgIH0KCgkKICBmdW5jdGlvbiBSZW1vdmVPcHRpb25FbGVtZW50KCRvcHRpb25OYW1lLCAkaW5kZXgpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCiAgICAgIHsKCWlmIChpc19hcnJheSgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXVskaW5kZXhdKSkKCSAgICAgIHsKCQlhcnJheV9zcGxpY2UoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdLCRpbmRleCwxKTsKCSAgICAgIH0KCSAgfQogICAgICB9CiAgfQoJCiAgZnVuY3Rpb24gR2V0T3B0aW9uRWxlbWVudCgkb3B0aW9uTmFtZSwgJGluZGV4LCAkZGVmYXVsdD0iIikKICB7CiAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdKSkKICAgICAgewoJaWYgKGlzX2FycmF5KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCgkgIHsKCSAgICBpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdWyRpbmRleF0pKQoJICAgICAgewoJCXJldHVybiAkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV1bJGluZGV4XTsKCSAgICAgIH0KCSAgfQoJZWxzZWlmICgkaW5kZXggPT0gMCkKCSAgewoJICAgIHJldHVybiAkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV07CgkgIH0KICAgICAgfQoKICAgIHJldHVybiAkZGVmYXVsdDsJCQogIH0KCiAgZnVuY3Rpb24gU2V0T3B0aW9uKCRvcHRpb25OYW1lLCAkb3B0aW9uVmFsdWUpCiAgewogICAgJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdID0gJG9wdGlvblZhbHVlOwogIH0KICAKICBmdW5jdGlvbiBQdXNoT3B0aW9uRWxlbWVudCgkb3B0aW9uTmFtZSwgJHZhbCkKICB7CiAgCWlmIChpc3NldCgkdGhpcy0+T3B0aW9uc1skb3B0aW9uTmFtZV0pKQogIAkJewogIAkJaWYgKGlzX2FycmF5KCR0aGlzLT5PcHRpb25zWyRvcHRpb25OYW1lXSkpCiAgCQkJewogIAkJCWFycmF5X3B1c2goJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdLCR2YWwpOwogIAkJCX0KICAJCWVsc2UKICAJCQl7CiAgCQkJJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdID0gYXJyYXkoJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdLCR2YWwpOwogIAkJCX0KICAJCX0KICAJZWxzZQogIAkJewogIAkJJHRoaXMtPk9wdGlvbnNbJG9wdGlvbk5hbWVdID0gJHZhbDsKICAJCX0KICB9CgogIGZ1bmN0aW9uIExvYWRGaWVsZCgmJHBhcmFtcykKICB7CiAgICBpZiAoJHRoaXMtPklkID4gMCkKICAgICAgewoJJHRoaXMtPkxvYWQoJHRoaXMtPklkLCAkcGFyYW1zLCB0cnVlKTsKICAgICAgfQogICAgcmV0dXJuOwogIH0KCiAgLy8gY3VzdG9taXplZCB2ZXJzaW9uIG9mIEFQSSBmdW5jdGlvbiBDcmVhdGVUZXh0SW5wdXQuIFRoaXMgZG9lc24ndCB0aHJvdyBpbiBhbiBJRCB0aGF0J3MgdGhlIHNhbWUgYXMgdGhlIGZpZWxkIG5hbWUuCiAgZnVuY3Rpb24gVGV4dEZpZWxkKCRpZCwgJG5hbWUsICR2YWx1ZT0nJywgJHNpemU9JzEwJywgJG1heGxlbmd0aD0nMjU1JywgJGFkZHR0ZXh0PScnKQp7CiAgJHZhbHVlID0gY21zX2h0bWxlbnRpdGllcyhodG1sX2VudGl0eV9kZWNvZGUoJHZhbHVlKSk7CiAgJGlkID0gY21zX2h0bWxlbnRpdGllcyhodG1sX2VudGl0eV9kZWNvZGUoJGlkKSk7CiAgJG5hbWUgPSBjbXNfaHRtbGVudGl0aWVzKGh0bWxfZW50aXR5X2RlY29kZSgkbmFtZSkpOwogICRzaXplID0gKCRzaXplIT0nJz9jbXNfaHRtbGVudGl0aWVzKCRzaXplKToxMCk7CiAgJG1heGxlbmd0aCA9ICgkbWF4bGVuZ3RoIT0nJz9jbXNfaHRtbGVudGl0aWVzKCRtYXhsZW5ndGgpOjI1NSk7CgogICR2YWx1ZSA9IHN0cl9yZXBsYWNlKCciJywgJyZxdW90OycsICR2YWx1ZSk7CiAgCiAgJHRleHQgPSAnPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicuJGlkLiRuYW1lLiciIHZhbHVlPSInLiR2YWx1ZS4nIiBzaXplPSInLiRzaXplLiciIG1heGxlbmd0aD0iJy4kbWF4bGVuZ3RoLiciJzsKICBpZiAoJGFkZHR0ZXh0ICE9ICcnKQogICAgewogICAgICAkdGV4dCAuPSAnICcgLiAkYWRkdHRleHQ7CiAgICB9CiAgJHRleHQgLj0gIiAvPlxuIjsKICByZXR1cm4gJHRleHQ7Cn0KCgogIC8vIGxvYWREZWVwIGFsc28gbG9hZHMgYWxsIG9wdGlvbnMgZm9yIGEgZmllbGQuCiAgZnVuY3Rpb24gTG9hZCgkaWQsICYkcGFyYW1zLCAkbG9hZERlZXA9ZmFsc2UpCiAgewogICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZpZWxkX2lkPT8nOwogICAgaWYoJHJlc3VsdCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkdldFJvdygkc3FsLCBhcnJheSgkdGhpcy0+SWQpKSkKICAgICAgewoJaWYgKHN0cmxlbigkdGhpcy0+TmFtZSkgPCAxKQoJICB7CgkgICAgJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CgkgIH0KCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKSA8IDEpCgkgIHsKCSAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGUgPSAkcmVzdWx0Wyd2YWxpZGF0aW9uX3R5cGUnXTsKCSAgfQoJJHRoaXMtPlR5cGUgPSAkcmVzdWx0Wyd0eXBlJ107CgkkdGhpcy0+T3JkZXJCeSA9ICRyZXN1bHRbJ29yZGVyX2J5J107CglpZiAoJHRoaXMtPlJlcXVpcmVkID09IC0xKQoJICB7CgkgICAgJHRoaXMtPlJlcXVpcmVkID0gJHJlc3VsdFsncmVxdWlyZWQnXTsKCSAgfQoJaWYgKCR0aGlzLT5IaWRlTGFiZWwgPT0gLTEpCgkgIHsKCSAgICAkdGhpcy0+SGlkZUxhYmVsID0gJHJlc3VsdFsnaGlkZV9sYWJlbCddOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAkdGhpcy0+bG9hZGVkID0gdHJ1ZTsKICAgIGlmICgkbG9hZERlZXApCiAgICAgIHsKCSRzcWwgPSAnU0VMRUNUIG5hbWUsIHZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGRfb3B0IFdIRVJFIGZpZWxkX2lkPT8gT1JERVIgQlkgb3B0aW9uX2lkJzsKCSRycyA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJCSAgICAgYXJyYXkoJHRoaXMtPklkKSk7CgkkdG1wT3B0cyA9IGFycmF5KCk7Cgl3aGlsZSAoJHJzICYmICRyZXN1bHRzID0gJHJzLT5GZXRjaFJvdygpKQoJICB7CgkgICAgaWYgKGlzc2V0KCR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dKSkKCSAgICAgIHsKCQlpZiAoISBpc19hcnJheSgkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXSkpCgkJICB7CgkJICAgICR0bXBPcHRzWyRyZXN1bHRzWyduYW1lJ11dID0gYXJyYXkoJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0pOwoJCSAgfQoJCWFycmF5X3B1c2goJHRtcE9wdHNbJHJlc3VsdHNbJ25hbWUnXV0sJHJlc3VsdHNbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkdG1wT3B0c1skcmVzdWx0c1snbmFtZSddXT0kcmVzdWx0c1sndmFsdWUnXTsKCSAgICAgIH0KCSAgfQoJJHRoaXMtPk9wdGlvbnMgPSBhcnJheV9tZXJnZSgkdG1wT3B0cywkdGhpcy0+T3B0aW9ucyk7CgoJaWYgKGlzc2V0KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXMtPk5hbWVdKSAmJgoJICAgIChpc19hcnJheSgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzLT5OYW1lXSkgfHwKCSAgICAgc3RybGVuKCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXMtPk5hbWVdKSA+IDApKQoJICB7CgkgICAgJHRoaXMtPlNldFZhbHVlKCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXMtPk5hbWVdKTsKCSAgfQoJCglpZiAoaXNzZXQoJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKSAmJgoJICAgIChpc19hcnJheSgkcGFyYW1zWyd2YWx1ZV9mbGQnLiR0aGlzLT5JZF0pIHx8CgkgICAgIHN0cmxlbigkcGFyYW1zWyd2YWx1ZV9mbGQnLiR0aGlzLT5JZF0pID4gMCkpCgkgIHsKCSAgICAkdGhpcy0+U2V0VmFsdWUoJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpcy0+SWRdKTsKCSAgfQogICAgICB9CgoKICAgIHJldHVybiB0cnVlOwogIH0KCgogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogICAgJG1vZCA9ICAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CgkkdGhpcy0+SWQgPSAkbW9kLT5kYkhhbmRsZS0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfc2VxJyk7Cgkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLmNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9maWVsZCAoZmllbGRfaWQsIGZvcm1faWQsIG5hbWUsIHR5cGUsICcgLgoJICAncmVxdWlyZWQsIHZhbGlkYXRpb25fdHlwZSwgaGlkZV9sYWJlbCwgb3JkZXJfYnkpICcuCgkgICcgVkFMVUVTICg/LCA/LCA/LCA/LCA/LCA/LCA/LCA/KSc7CgkkcmVzID0gJG1vZC0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCSAgICAgICBhcnJheSgkdGhpcy0+SWQsICR0aGlzLT5Gb3JtSWQsICR0aGlzLT5OYW1lLAoJCQkJCSAgICAgJHRoaXMtPlR5cGUsICgkdGhpcy0+UmVxdWlyZWQ/MTowKSwgCgkJCQkJICAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGUsICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5PcmRlckJ5KSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGQgc2V0IG5hbWU9PywgdHlwZT0/LCcuCgkgICdyZXF1aXJlZD0/LCB2YWxpZGF0aW9uX3R5cGU9Pywgb3JkZXJfYnk9PywgJy4KCSAgJ2hpZGVfbGFiZWw9PyB3aGVyZSBmaWVsZF9pZD0/JzsKCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJICAgICAgIGFycmF5KCR0aGlzLT5OYW1lLCAkdGhpcy0+VHlwZSwgKCR0aGlzLT5SZXF1aXJlZD8xOjApLAoJCQkJCSAgICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlLAoJCQkJCSAgICAgJHRoaXMtPk9yZGVyQnksICR0aGlzLT5IaWRlTGFiZWwsICR0aGlzLT5JZCkpOwogICAgICB9CiAgICAgICAgICAgIAogICAgaWYgKCRzdG9yZURlZXApCiAgICAgIHsKCS8vIGRyb3Agb2xkIG9wdGlvbnMKCSRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuCgkgICdtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIGZpZWxkX2lkPT8nOwoJJHJlcyA9ICRtb2QtPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkgICAgICAgYXJyYXkoJHRoaXMtPklkKSk7CgoJZm9yZWFjaCAoJHRoaXMtPk9wdGlvbnMgYXMgJHRoaXNPcHRLZXk9PiR0aGlzT3B0VmFsdWVMaXN0KQoJICB7CgkgICAgaWYgKCEgaXNfYXJyYXkoJHRoaXNPcHRWYWx1ZUxpc3QpKQoJICAgICAgewoJCSR0aGlzT3B0VmFsdWVMaXN0ID0gYXJyYXkoJHRoaXNPcHRWYWx1ZUxpc3QpOwoJICAgICAgfQoJICAgIGZvcmVhY2ggKCR0aGlzT3B0VmFsdWVMaXN0IGFzICR0aGlzT3B0VmFsdWUpCgkgICAgICB7CgkJJG9wdElkID0gJG1vZC0+ZGJIYW5kbGUtPkdlbklEKAoJCQkJCSAgICAgICBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgkJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJCSAgJ21vZHVsZV9mYl9maWVsZF9vcHQgKG9wdGlvbl9pZCwgZmllbGRfaWQsIGZvcm1faWQsICcuCgkJICAnbmFtZSwgdmFsdWUpIFZBTFVFUyAoPywgPywgPywgPywgPyknOwoJCSRyZXMgPSAkbW9kLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCSAgICAgICBhcnJheSgkb3B0SWQsICR0aGlzLT5JZCwgJHRoaXMtPkZvcm1JZCwgJHRoaXNPcHRLZXksCgkJCQkJCSAgICAgJHRoaXNPcHRWYWx1ZSkpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiAkcmVzOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlKCkKICB7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgd2hlcmUgZmllbGRfaWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkJICBhcnJheSgkdGhpcy0+SWQpKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGRfb3B0IHdoZXJlIGZpZWxkX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJCSAgYXJyYXkoJHRoaXMtPklkKSk7CiAgICByZXR1cm4gdHJ1ZTsKICB9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetEnd.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0RW5kIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpZWxkc2V0RW5kKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdGaWVsZHNldEVuZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsgICAgCiAgICAkdGhpcy0+SGFzTGFiZWwgPSAwOwogICAgJHRoaXMtPk5lZWRzRGl2ID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgcmV0dXJuICc8L2ZpZWxkc2V0Pic7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICByZXR1cm4gJyc7CiAgfQoKICBmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQogIHsKICAgIC8vIHRoZXJlJ3Mgbm90aGluZyBodW1hbiByZWFkYWJsZSBhYm91dCBhIGZpZWxkc2V0LgogICAgJHJldCA9ICdbRW5kIEZpZWxkc2V0OiAnLiR0aGlzLT5WYWx1ZS4nXSc7CglpZiAoJGFzX3N0cmluZykKCQl7CgkJcmV0dXJuICRyZXQ7CgkJfQoJZWxzZQoJCXsKCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJfQogIH0KCQogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtYWluID0gYXJyYXkoKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetStart.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0U3RhcnQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIGZ1bmN0aW9uIGZiRmllbGRzZXRTdGFydCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRmllbGRzZXRTdGFydCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsgICAgCiAgICAkdGhpcy0+SGFzTGFiZWwgPSAwOwogICAgJHRoaXMtPk5lZWRzRGl2ID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJHN0ciA9ICc8ZmllbGRzZXQnOwogICAgJGNsYXNzID0gJHRoaXMtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7CiAgICAkbGVnZW5kID0gJHRoaXMtPkdldE9wdGlvbignbGVnZW5kJyk7CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICAkc3RyIC49ICc+JzsKICAgIGlmKCAkbGVnZW5kICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAnPGxlZ2VuZD4nLiRsZWdlbmQuJzwvbGVnZW5kPic7CiAgICAgIH0KICAgIHJldHVybiAkc3RyOwogIH0KCiAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCiAgewogICAgcmV0dXJuICcnOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAvLyB0aGVyZSdzIG5vdGhpbmcgaHVtYW4gcmVhZGFibGUgYWJvdXQgYSBmaWVsZHNldC4KICAgICRyZXQgPSAnW0JlZ2luIEZpZWxkc2V0OiAnLiR0aGlzLT5WYWx1ZS4nXSc7CglpZiAoJGFzX3N0cmluZykKCQl7CgkJcmV0dXJuICRyZXQ7CgkJfQoJZWxzZQoJCXsKCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJfQogIH0KCQogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9sZWdlbmQnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9sZWdlbmQnLAoJCQkJCSAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlZ2VuZCcsJycpLCA1MCkpKTsKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FileUploadField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiRmlsZVVwbG9hZEZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpbGVVcGxvYWQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0ZpbGVVcGxvYWQnOwogICAgLy8gICAgJHRoaXMtPkRpc3BsYXlUeXBlID0gJG1vZC0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAoJCQkJICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0eHQgPSAkbW9kLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdmYnJwX18nLiR0aGlzLT5JZCk7CiAgICByZXR1cm4gJHR4dDsKICB9CgogIGZ1bmN0aW9uIExvYWQoJGlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcGFyZW50OjpMb2FkKCRpZCwkcGFyYW1zLCRsb2FkRGVlcCk7CiAgICBpZiggaXNzZXQoICRfRklMRVMgKSAmJiBpc3NldCggJF9GSUxFU1skbW9kLT5tb2R1bGVfaWQuJ2ZicnBfXycuJHRoaXMtPklkXSApICkKICAgICAgewoJLy8gT2theSwgYSBmaWxlIHdhcyB1cGxvYWRlZAoJJHRoaXMtPlNldFZhbHVlKCRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWQpOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkcmV0ID0gJyc7CiAgICAkcmV0IC49ICRtb2QtPkxhbmcoJ21heGltdW1fc2l6ZScpLic6ICcuJG1zLidrYic7CiAgICAkcmV0IC49ICcsICc7CiAgICAkcmV0IC49ICRtb2QtPkxhbmcoJ3Blcm1pdHRlZF9leHRlbnNpb25zJykgLiAnOiAnLiRleHRzOwogICAgcmV0dXJuICRyZXQ7CiAgfQogIAogIAogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkc2hvdyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfZGV0YWlscycpOwogICAgJHNlbmR0b191cGxvYWRzID0gJHRoaXMtPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnLCdmYWxzZScpOwogICAgJHVwbG9hZHNfY2F0ZWdvcnkgPSAkdGhpcy0+R2V0T3B0aW9uKCd1cGxvYWRzX2NhdGVnb3J5Jyk7CiAgICAkdXBsb2Fkc19kZXN0cGFnZSA9ICR0aGlzLT5HZXRPcHRpb24oJ3VwbG9hZHNfZGVzdHBhZ2UnKTsKCiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9zaXplJykuJzonLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICAgICAnZmJycF9vcHRfbWF4X3NpemUnLCAkbXMsIDUsIDUpLgoJCQknICcuJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnKSksCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucycpLic6JywKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJICAgICAgJ2ZicnBfb3B0X3Blcm1pdHRlZF9leHRlbnNpb25zJywKCQkJCQkgICAgICAkZXh0cywyNSw4MCkuJzxici8+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZycpKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnKS4nOicsCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICAnZmJycF9vcHRfc2hvd19kZXRhaWxzJywgJ3RydWUnLCAKCQkJCQkJICAkc2hvdykuCgkJCScgJy4kbW9kLT5MYW5nKCd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnKSkKCQkgKTsKCiAgICAkdXBsb2FkcyA9ICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdVcGxvYWRzJyk7CiAgICAkc2VuZHRvX3VwbG9hZHNfbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PjAsCgkJCQkgJG1vZC0+TGFuZygneWVzJyk9PjEpOwogICAgaWYoICR1cGxvYWRzICkKICAgICAgewoJCSRjYXRlZ29yeWxpc3QgPSAkdXBsb2Fkcy0+Z2V0Q2F0ZWdvcnlMaXN0KCk7CgkJJGFkdiA9IGFycmF5KAoJCSAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VuZHRvX3VwbG9hZHMnKS4nOicsCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgICdmYnJwX29wdF9zZW5kdG9fdXBsb2FkcycsJHNlbmR0b191cGxvYWRzX2xpc3QsCgkJCQkJCSAgICAgJHNlbmR0b191cGxvYWRzKSksCgkJICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV91cGxvYWRzX2NhdGVnb3J5JykuJzonLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICAnZmJycF9vcHRfdXBsb2Fkc19jYXRlZ29yeScsJGNhdGVnb3J5bGlzdCwKCQkJCQkJICAgICAkdXBsb2Fkc19jYXRlZ29yeSkpLAoJCSAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdXBsb2Fkc19kZXN0cGFnZScpLic6JywKCQkJICAgJG1vZC0+Q3JlYXRlUGFnZURyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF91cGxvYWRzX2Rlc3RwYWdlJywkdXBsb2Fkc19kZXN0cGFnZSkpCgkJCQkJCSAgCgkJICAgICApOwogICAgICB9CgllbHNlCgkJewoJCSRhZHYgPSBhcnJheSgpOwoJCX0KCiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CiAgICAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOwogICAgJGV4dHMgPSAkdGhpcy0+R2V0T3B0aW9uKCdwZXJtaXR0ZWRfZXh0ZW5zaW9ucycpOwogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZnVsbEFsaWFzID0gJHRoaXMtPkdldFZhbHVlKCk7CiAgICBpZiAoJF9GSUxFU1skZnVsbEFsaWFzXVsnc2l6ZSddIDwgMSAmJiAhICR0aGlzLT5SZXF1aXJlZCkKICAgICAgewoJcmV0dXJuIGFycmF5KHRydWUsJycpOwogICAgICB9CiAgICBpZiAoJF9GSUxFU1skZnVsbEFsaWFzXVsnc2l6ZSddIDwgMSAmJiAkdGhpcy0+UmVxdWlyZWQgKQogICAgICB7CiAJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncmVxdWlyZWRfZmllbGRfbWlzc2luZycpOwogICAgICB9CiAgICBlbHNlIGlmICgkbXMgIT0gJycgJiYgJF9GSUxFU1skZnVsbEFsaWFzXVsnc2l6ZSddID4gKCRtcyAqIDEwMDApKQogICAgICB7CgkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ2ZpbGVfdG9vX2xhcmdlJykuICcgJy4oJG1zICogMTAwMCkuJ2tiJzsKCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgfQogICAgZWxzZSBpZiAoJGV4dHMpCiAgICAgIHsKCSRtYXRjaCA9IGZhbHNlOwoJJGxlZ2FsRXh0cyA9IGV4cGxvZGUoJywnLCRleHRzKTsKCWZvcmVhY2ggKCRsZWdhbEV4dHMgYXMgJHRoaXNFeHQpCgkgIHsKCSAgICBpZiAocHJlZ19tYXRjaCgnL1wuJy50cmltKCR0aGlzRXh0KS4nJC9pJywkX0ZJTEVTWyRmdWxsQWxpYXNdWyduYW1lJ10pKQoJICAgICAgewoJCSRtYXRjaCA9IHRydWU7CgkgICAgICB9CgkgICAgZWxzZSBpZiAocHJlZ19tYXRjaCgnLycudHJpbSgkdGhpc0V4dCkuJy9pJywkX0ZJTEVTWyRmdWxsQWxpYXNdWyd0eXBlJ10pKQoJICAgICAgewoJCSRtYXRjaCA9IHRydWU7CgkgICAgICB9CgkgIH0KCWlmICghICRtYXRjaCkKCSAgewoJICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygnaWxsZWdhbF9maWxlX3R5cGUnKTsKCSAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKICB9CiAgCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/Form.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZvcm0gewoKICB2YXIgJG1vZHVsZV9wdHIgPSAtMTsKICB2YXIgJElkID0gLTE7CiAgdmFyICROYW1lID0gJyc7CiAgdmFyICRBbGlhcyA9ICcnOwogIHZhciAkbG9hZGVkID0gJ25vdCc7CiAgdmFyICRmb3JtVG90YWxQYWdlcyA9IDA7CiAgdmFyICRQYWdlOwogIHZhciAkQXR0cnM7CiAgdmFyICRGaWVsZHM7CiAgdmFyICRmb3JtU3RhdGU7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICR0ZW1wbGF0ZVZhcmlhYmxlczsKCiAgZnVuY3Rpb24gZmJGb3JtKCYkbW9kdWxlX3B0ciwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9JiAkbW9kdWxlX3B0cjsKICAgICR0aGlzLT5GaWVsZHMgPSBhcnJheSgpOwogICAgJHRoaXMtPkF0dHJzID0gYXJyYXkoKTsKICAgICR0aGlzLT5mb3JtU3RhdGUgPSAnbmV3JzsKICAgIGlmIChpc3NldCgkcGFyYW1zWydmb3JtX2lkJ10pKQogICAgICB7CgkkdGhpcy0+SWQgPSAkcGFyYW1zWydmb3JtX2lkJ107CiAgICAgIH0KICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fYWxpYXMnXSkpCiAgICAgIHsKCSR0aGlzLT5BbGlhcyA9ICRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddOwogICAgICB9CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9mb3JtX25hbWUnXSkpCiAgICAgIHsKCSR0aGlzLT5OYW1lID0gJHBhcmFtc1snZmJycF9mb3JtX25hbWUnXTsKICAgICAgfQoKICAgJGZpZWxkRXhwYW5kT3AgPSBmYWxzZTsKCiAgIGZvcmVhY2goJHBhcmFtcyBhcyAkcEtleT0+JHBWYWwpCiAgICAgIHsKICAgICAgaWYgKHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlWF8nIHx8IHN1YnN0cigkcEtleSwwLDkpID09ICdmYnJwX0ZlRF8nKQogICAgICAgICB7CiAgICAgICAgIC8vIGV4cGFuZGluZyBvciBzaHJpbmtpbmcgYSBmaWVsZAogICAgICAgICAkZmllbGRFeHBhbmRPcCA9IHRydWU7CiAgICAgICAgIH0KICAgICAgfQoKICAgIGlmICgkZmllbGRFeHBhbmRPcCkKICAgICAgewogICAgICAkcGFyYW1zWydmYnJwX2RvbmUnXSA9IDA7CiAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2NvbnRpbnVlJ10pKQogICAgICAgICB7CgkgICAgICAkdGhpcy0+UGFnZSA9ICRwYXJhbXNbJ2ZicnBfY29udGludWUnXSAtIDE7CiAgICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CgkgICAgICAkdGhpcy0+UGFnZSA9IDE7CiAgICAgICAgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2NvbnRpbnVlJ10pKQogICAgICAgICB7CgkgICAgICAkdGhpcy0+UGFnZSA9ICRwYXJhbXNbJ2ZicnBfY29udGludWUnXTsKICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gMTsKICAgICAgICAgfQogICAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9wcmV2J10pICYmIGlzc2V0KCRwYXJhbXNbJ2ZicnBfcHJldmlvdXMnXSkpCiAgICAgICAgIHsKCSAgICAgICR0aGlzLT5QYWdlID0gJHBhcmFtc1snZmJycF9wcmV2aW91cyddOwoJICAgICAgJHBhcmFtc1snZmJycF9kb25lJ10gPSAwOwogICAgICAgICB9CiAgICAgIH0KICAgICR0aGlzLT5mb3JtVG90YWxQYWdlcyA9IDE7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpCiAgICAgIHsKCSR0aGlzLT5mb3JtU3RhdGUgPSAnc3VibWl0JzsKICAgICAgfQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ10pICYmICRwYXJhbXNbJ2ZicnBfdXNlcl9mb3JtX3ZhbGlkYXRlJ109PXRydWUpCiAgICAgIHsKCSR0aGlzLT5mb3JtU3RhdGUgPSAnY29uZmlybSc7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+SWQgIT0gLTEpCiAgICAgIHsKCWlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSAmJiAkdGhpcy0+Zm9ybVN0YXRlID09ICdzdWJtaXQnKQoJICB7CgkgICAgJHRoaXMtPmZvcm1TdGF0ZSA9ICd1cGRhdGUnOwoJICB9CgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsICRwYXJhbXMsICRsb2FkRGVlcCk7CiAgICAgIH0KICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc1BhcmFtS2V5LDAsMTEpID09ICdmYnJwX2Zvcm1hXycpCgkgIHsKCSAgICAkdGhpc1BhcmFtS2V5ID0gc3Vic3RyKCR0aGlzUGFyYW1LZXksMTEpOwoJICAgICR0aGlzLT5BdHRyc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWw7CgkgIH0KCWVsc2UgaWYgKCR0aGlzUGFyYW1LZXkgPT0gJ2ZicnBfZm9ybV90ZW1wbGF0ZScgJiYgJHRoaXMtPklkICE9IC0xKQoJICB7CgkgICAgJHRoaXMtPm1vZHVsZV9wdHItPlNldFRlbXBsYXRlKCdmYl8nLiR0aGlzLT5JZCwkdGhpc1BhcmFtVmFsKTsKCSAgfQogICAgICB9CgogICAgJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzID0gQXJyYXkoCgkJJ3skc3ViX2Zvcm1fbmFtZX0nPT4kdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndGl0bGVfZm9ybV9uYW1lJyksCgkJJ3skc3ViX2RhdGV9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfc3VibWlzc2lvbl9kYXRlJyksCgkJJ3skc3ViX2hvc3R9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfc2VydmVyX25hbWUnKSwKCQkneyRzdWJfc291cmNlX2lwfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Yl9zb3VyY2VfaXAnKSwKCQkneyRzdWJfdXJsfSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX3N1Yl91cmwnKSwKCQkneyRmYl92ZXJzaW9ufSc9PiR0aGlzLT5tb2R1bGVfcHRyLT5MYW5nKCdoZWxwX2ZiX3ZlcnNpb24nKSwKCQkneyRUQUJ9Jz0+JHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ2hlbHBfdGFiJyksCgkpOwogIH0KCiAgZnVuY3Rpb24gU2V0QXR0cmlidXRlcygkYXR0ckFycmF5KQogIHsKICAgICR0aGlzLT5BdHRycyA9IGFycmF5X21lcmdlKCR0aGlzLT5BdHRycywkYXR0ckFycmF5KTsKICB9CgogIGZ1bmN0aW9uIFNldFRlbXBsYXRlKCR0ZW1wbGF0ZSkKICB7CiAgICAkdGhpcy0+QXR0cnNbJ2Zvcm1fdGVtcGxhdGUnXSA9ICR0ZW1wbGF0ZTsKICAgICR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRlbXBsYXRlKTsKICB9CgogIGZ1bmN0aW9uIEdldElkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPklkOwogIH0KCiAgZnVuY3Rpb24gU2V0SWQoJGlkKQogIHsKICAgICR0aGlzLT5JZCA9ICRpZDsKICB9CgogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TmFtZTsKICB9CgkKICBmdW5jdGlvbiBHZXRGb3JtU3RhdGUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Zm9ybVN0YXRlOwogIH0KCQogIGZ1bmN0aW9uIEdldFBhZ2VDb3VudCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5mb3JtVG90YWxQYWdlczsKICB9CgkKICBmdW5jdGlvbiBHZXRQYWdlTnVtYmVyKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlBhZ2U7CiAgfQoKICBmdW5jdGlvbiBQYWdlQmFjaygpCiAgewogICAgJHRoaXMtPlBhZ2UtLTsKICB9CgoKICBmdW5jdGlvbiBTZXROYW1lKCRuYW1lKQogIHsKICAgICR0aGlzLT5OYW1lID0gJG5hbWU7CiAgfQoJCiAgZnVuY3Rpb24gR2V0QWxpYXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+QWxpYXM7CiAgfQoKICBmdW5jdGlvbiBTZXRBbGlhcygkYWxpYXMpCiAgewogICAgJHRoaXMtPkFsaWFzID0gJGFsaWFzOwogIH0KCiAgZnVuY3Rpb24gRGVidWdEaXNwbGF5KCkKICB7CiAgICAkdG1wID0gJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9ICdbbWRwdHJdJzsKICAgICR0ZW1wbGF0ZV90bXAgPSAkdGhpcy0+R2V0QXR0cignZm9ybV90ZW1wbGF0ZScsJycpOwogICAgJHRoaXMtPlNldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLHN0cmxlbigkdGVtcGxhdGVfdG1wKS4nIGNoYXJhY3RlcnMnKTsKICAgICRmaWVsZF90bXAgPSAkdGhpcy0+RmllbGRzOwogICAgJHRoaXMtPkZpZWxkcyA9ICdGaWVsZCBBcnJheTogJy5jb3VudCgkZmllbGRfdG1wKTsKICAgIGRlYnVnX2Rpc3BsYXkoJHRoaXMpOwogICAgJHRoaXMtPlNldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCR0ZW1wbGF0ZV90bXApOwogICAgJHRoaXMtPkZpZWxkcyA9ICRmaWVsZF90bXA7CiAgICBmb3JlYWNoKCR0aGlzLT5GaWVsZHMgYXMgJGZsZCkKICAgICAgewoJCSRmbGQtPkRlYnVnRGlzcGxheSgpOwogICAgICB9CiAgICAkdGhpcy0+bW9kdWxlX3B0ciA9ICR0bXA7CiAgfQoKCQogIGZ1bmN0aW9uIFNldEF0dHIoJGF0dHJuYW1lLCAkdmFsKQogIHsKICAgICR0aGlzLT5BdHRyc1skYXR0cm5hbWVdID0gJHZhbDsKICB9CgkKICBmdW5jdGlvbiBHZXRBdHRyKCRhdHRybmFtZSwgJGRlZmF1bHQ9IiIpCiAgewogICAgaWYgKGlzc2V0KCR0aGlzLT5BdHRyc1skYXR0cm5hbWVdKSkKICAgICAgewoJcmV0dXJuICR0aGlzLT5BdHRyc1skYXR0cm5hbWVdOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiAkZGVmYXVsdDsKICAgICAgfQogIH0KCQogIGZ1bmN0aW9uIEdldEZpZWxkQ291bnQoKQogIHsKICAgIHJldHVybiBjb3VudCgkdGhpcy0+RmllbGRzKTsKICB9CgogIGZ1bmN0aW9uIEhhc0ZpZWxkTmFtZWQoJG5hbWUpCiAgewogICAgJHJldCA9IC0xOwogICAgZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICRmbGQpCgkJewoJCWlmICgkZmxkLT5HZXROYW1lKCkgPT0gJG5hbWUpCgkJCXsKCQkJJHJldCA9ICRmbGQtPkdldElkKCk7CgkJCX0KCQl9CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIEFkZFRlbXBsYXRlVmFyaWFibGUoJG5hbWUsJGRlZikKICB7CiAgICAkdGhlS2V5ID0gJ3skJy4kbmFtZS4nfSc7CiAgICAkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXNbJHRoZUtleV0gPSAkZGVmOwogIH0KCiAgZnVuY3Rpb24gTWFrZVZhcigkc3RyaW5nKQogIHsKICAgICRtYXh2YXJsZW4gPSAyNDsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xzKy8nLCdfJywkc3RyaW5nKSk7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCdfJywkc3RyaW5nKSk7CiAgICBpZiAoc3RybGVuKCRzdHJpbmcpID4gJG1heHZhcmxlbikKICAgICAgewoJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJG1heHZhcmxlbik7CgkkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CglpZiAoJHBvcyAhPT0gZmFsc2UpCgkgIHsKCSAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHN0cmluZzsKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgkZmllbGROYW1lPSdvcHRfZW1haWxfdGVtcGxhdGUnLCAkaW5jbHVkZUhUTUw9dHJ1ZSwgJGluY2x1ZGVUZXh0PXRydWUpCiAgewogICAgJGpzQ29kZSA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbgpmdW5jdGlvbiBwb3B1bGF0ZShmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfIi4kZmllbGROYW1lLiInOwogICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPXxURU1QTEFURXw7CiAgICB9CmZ1bmN0aW9uIHBvcHVsYXRlX2h0bWwoZm9ybW5hbWUpCiAgICB7CiAgICB2YXIgZm5hbWUgPSAnSURmYnJwXyIuJGZpZWxkTmFtZS4iJzsKICAgIGZvcm1uYW1lW2ZuYW1lXS52YWx1ZT18SFRNTFRFTVBMQVRFfDsKCSB9Cjwvc2NyaXB0PiI7CglpZiAoJGluY2x1ZGVUZXh0KQoJCXsKCQkkanNDb2RlIC49ICI8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4KJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnKS4iXCIgb25DbGljaz1cImphdmFzY3JpcHQ6cG9wdWxhdGUodGhpcy5mb3JtKVwiIC8+IjsKCQl9CglpZiAoJGluY2x1ZGVIVE1MKQoJCXsKCQkkanNDb2RlIC49ICI8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4KJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZScpLiJcIiBvbkNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9odG1sKHRoaXMuZm9ybSlcIiAvPiI7CgkJfQogIHJldHVybiAkanNDb2RlOwogIH0KCgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlKCRodG1saXNoPWZhbHNlLCRlbWFpbD10cnVlKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkcmV0ID0gIiI7CglpZiAoJGVtYWlsKQoJCXsKICAgIAlpZiAoJGh0bWxpc2gpCiAgICAJCXsKCQkJJHJldCAuPSAiPGgxPiIuJG1vZC0+TGFuZygnZW1haWxfZGVmYXVsdF90ZW1wbGF0ZScpLiI8L2gxPlxuIjsKCQkJfQoJIAllbHNlCgkgCQl7CgkJCSRyZXQgLj0gJG1vZC0+TGFuZygnZW1haWxfZGVmYXVsdF90ZW1wbGF0ZScpLiJcbiI7CgkJCX0KICAgIAlmb3JlYWNoKCR0aGlzLT50ZW1wbGF0ZVZhcmlhYmxlcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIAkJewoJCQlpZiAoJGh0bWxpc2gpCgkJCQl7CgkJCQkkcmV0IC49ICc8c3Ryb25nPicuJHRoaXNWYWwuJzwvc3Ryb25nPjogJy4kdGhpc0tleS4iPGJyIC8+XG4iOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkcmV0IC49ICR0aGlzVmFsLic6ICcuJHRoaXNLZXkuIlxuIjsKCQkJCX0KICAgICAgCQl9CiAgICAgCWlmICgkaHRtbGlzaCkKICAgICAJICAJewoJCSAgCSRyZXQgLj0gIlxuPGhyIC8+XG4iOwoJICAJICAJfQoJICAJZWxzZQoJICAJICAJewogICAgCSAgCSRyZXQgLj0gIlxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKICAgIAkgIAl9CiAgICAJICB9CgllbHNlCgkJewoJCWlmICgkaHRtbGlzaCkKCQkJewoJCQkkcmV0IC49ICc8aDI+JzsKCQkJfQoJCSRyZXQgLj0gJG1vZC0+TGFuZygndGhhbmtzJyk7CgkJaWYgKCRodG1saXNoKQoJCQl7CgkJCSRyZXQgLj0gJzwvaDI+JzsKCQkJfQoJCX0KICAgICRvdGhlcnMgPSAmJHRoaXMtPkdldEZpZWxkcygpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgaWYgKCRvdGhlcnNbJGldLT5HZXRBbGlhcygpICE9ICcnKQoJCXsKCQkkZmxkcmVmID0gJ3skJy4gJG90aGVyc1skaV0tPkdldEFsaWFzKCkuICd9JzsKCQl9CgkgIGVsc2UKCQl7CgkJJGZsZHJlZiA9ICd7JGZsZF8nLiAkb3RoZXJzWyRpXS0+R2V0SWQoKS4gJ30nOwoJCX0KCSAgaWYgKCRodG1saXNoKQogICAgIAkgIHsKICAJCSAgJHJldCAuPSAnPHN0cm9uZz4nLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC9zdHJvbmc+OiAnIC4gJGZsZHJlZi4gIjxiciAvPlxuIjsKICAJCSAgfQogIAkgIGVsc2UKICAJICAJICB7CgkgICAgICAkcmV0IC49ICRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnOiAnIC4kZmxkcmVmLiAiXG4iOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiAkcmV0OwogIH0KCgogIGZ1bmN0aW9uIEFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkZmllbGROYW1lPSdvcHRfZW1haWxfdGVtcGxhdGUnLAogIAkkaW5jbHVkZUhUTUw9dHJ1ZSwgJGluY2x1ZGVUZXh0PXRydWUpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+bW9kdWxlX3B0cjsKICAgICRyZXQgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfbGVnZW5kIj48dHI+PHRoIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJykuJzwvdGg+PC90cj4nOwogICAgJHJldCAuPSAnPHRyPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfdmFyaWFibGVfbmFtZScpLic8L3RoPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfZm9ybV9maWVsZCcpLic8L3RoPjwvdHI+JzsKICAgICRvZGQgPSBmYWxzZTsKICAgIGZvcmVhY2goJHRoaXMtPnRlbXBsYXRlVmFyaWFibGVzIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJCSRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCQknIj4nLiR0aGlzS2V5Lic8L3RkPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJCSciPicuJHRoaXNWYWwuJzwvdGQ+PC90cj4nOwogICAgICAkb2RkID0gISAkb2RkOwogICAgICB9CgogICAgJG90aGVycyA9ICYkdGhpcy0+R2V0RmllbGRzKCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgeyAgICAgICAgICAgICAgICAKCSAgICAkcmV0IC49ICc8dHI+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuCgkgICAgJyI+eyQnLiR0aGlzLT5NYWtlVmFyKCRvdGhlcnNbJGldLT5HZXROYW1lKCkpLgoJICAgICd9IC8geyRmbGRfJy4KCSAgICAkb3RoZXJzWyRpXS0+R2V0SWQoKS4nfSc7CgkJaWYgKCRvdGhlcnNbJGldLT5HZXRBbGlhcygpICE9ICcnKQoJCQl7CgkJCSRyZXQgLj0gJyAvIHskJy4kb3RoZXJzWyRpXS0+R2V0QWxpYXMoKS4nfSc7CQoJCQl9CgkgICAgJHJldCAuPSAnPC90ZD48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAnIj4nIC4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvdGQ+PC90cj4nOwoJICAJJG9kZCA9ICEgJG9kZDsKCSAgfQogICAgICB9CiAgICAgICAJCiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9hcnJheV9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnaGVscF9vdGhlcl9maWVsZHMnKS4nPC90ZD48L3RyPic7CiAgICAgICAgCiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1wnLycsIlxcJyIsJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKGZhbHNlKSk7CiAgICAkZXNjYXBlZFNhbXBsZUhUTUwgPSBwcmVnX3JlcGxhY2UoJy9cJy8nLCJcXCciLCR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSh0cnVlKSk7CiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwogICAgJGVzY2FwZWRTYW1wbGVIVE1MID0gcHJlZ19yZXBsYWNlKCcvXG4vJywiXFxuJytcbiciLCAkZXNjYXBlZFNhbXBsZUhUTUwpOwogICAgCiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvXHxURU1QTEFURVx8LycsIiciLiRlc2NhcGVkU2FtcGxlLiInIiwKICAgIAkkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGVKYXZhc2NyaXB0KCRmaWVsZE5hbWUsICRpbmNsdWRlSFRNTCwgJGluY2x1ZGVUZXh0KSk7CiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvXHxIVE1MVEVNUExBVEVcfC8nLCInIi4kZXNjYXBlZFNhbXBsZUhUTUwuIiciLAogICAgCSRzYW1wbGVUZW1wbGF0ZUNvZGUpOwogICAgJHNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL0lELycsJGZvcm1EZXNjcmlwdG9yLAogICAgCSRzYW1wbGVUZW1wbGF0ZUNvZGUpOwogICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiRzYW1wbGVUZW1wbGF0ZUNvZGUuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPC90YWJsZT4nOwogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAgICR2YWxpZGF0ZWQgPSB0cnVlOwogICAgJG1lc3NhZ2UgPSBhcnJheSgpOwogICAgJGZvcm1QYWdlQ291bnQ9MTsKICAgICR2YWxQYWdlID0gJHRoaXMtPlBhZ2UgLSAxOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJGZvcm1QYWdlQ291bnQrKzsKCSAgfQoJaWYgKCR2YWxQYWdlICE9ICRmb3JtUGFnZUNvdW50KQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCWlmICgvKiEgJHRoaXMtPkZpZWxkc1skaV0tPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkgJiYgKi8KCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+SXNSZXF1aXJlZCgpICYmCgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPkhhc1ZhbHVlKCkgPT0gZmFsc2UpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRtZXNzYWdlLAoJICAgIAkkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpKTsKCSAgICAkdmFsaWRhdGVkID0gZmFsc2U7CgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+dmFsaWRhdGlvbkVycm9yVGV4dCA9IAkkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpOwoJICAgICR0aGlzLT5GaWVsZHNbJGldLT52YWxpZGF0ZWQgPSBmYWxzZTsKCSAgfQoJZWxzZSBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldFZhbHVlKCkgIT0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3Vuc3BlY2lmaWVkJykpCgkgIHsgCgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5WYWxpZGF0ZSgpOwoJICAgIGlmICgkcmVzWzBdICE9IHRydWUpCgkgICAgICB7CgkJYXJyYXlfcHVzaCgkbWVzc2FnZSwkcmVzWzFdKTsKCQkkdmFsaWRhdGVkID0gZmFsc2U7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLHRydWUpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiBhcnJheSgkdmFsaWRhdGVkLCAkbWVzc2FnZSk7CiAgfQoKCiAgZnVuY3Rpb24gSGFzRGlzcG9zaXRpb24oKQogIHsKICAgICRoYXNEaXNwID0gZmFsc2U7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCSAgewoJICAgICRoYXNEaXNwID0gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGhhc0Rpc3A7CiAgfQoKICAvLyByZXR1cm4gYW4gYXJyYXk6IGVsZW1lbnQgMCBpcyB0cnVlIGZvciBzdWNjZXNzLCBmYWxzZSBmb3IgZmFpbHVyZQogIC8vIGVsZW1lbnQgMSBpcyBhbiBhcnJheSBvZiByZWFzb25zLCBpbiB0aGUgZXZlbnQgb2YgZmFpbHVyZS4KICBmdW5jdGlvbiBEaXNwb3NlKCRyZXR1cm5pZCkKICB7CiAgICAvLyBmaXJzdCwgd2UgcnVuIGFsbCBmaWVsZCBtZXRob2RzIHRoYXQgd2lsbCBtb2RpZnkgb3RoZXIgZmllbGRzCiAgICAkY29tcHV0ZXMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZpZXNPdGhlckZpZWxkcygpKQoJICAJewoJICAgIAkkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZ5T3RoZXJGaWVsZHMoKTsKCSAgCX0KCSAgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT25TdWJtaXNzaW9uKCkpCgkgIAl7CgkgIAkJJGNvbXB1dGVzWyRpXSA9ICR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT3JkZXIoKTsKCSAgCX0KICAgICAgfQogICAgICAKICAgIGFzb3J0KCRjb21wdXRlcyk7CiAgICBmb3JlYWNoKCRjb21wdXRlcyBhcyAkY0tleT0+JGNWYWwpCiAgICAJewogICAgCSR0aGlzLT5GaWVsZHNbJGNLZXldLT5Db21wdXRlKCk7CiAgICAJfQoKICAgICRyZXNBcnJheSA9IGFycmF5KCk7CiAgICAkcmV0Q29kZSA9IHRydWU7CiAgICAvLyBmb3IgZWFjaCBmb3JtIGRpc3Bvc2l0aW9uIHBzZXVkby1maWVsZCwgZGlzcG9zZSB0aGUgZm9ybSByZXN1bHRzCiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpKQoJICB7CgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5EaXNwb3NlRm9ybSgkcmV0dXJuaWQpOwoJICAgIGlmICgkcmVzWzBdID09IGZhbHNlKQoJICAgICAgewoJCSRyZXRDb2RlID0gZmFsc2U7CgkJYXJyYXlfcHVzaCgkcmVzQXJyYXksJHJlc1sxXSk7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXRDb2RlLCRyZXNBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtSGVhZGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gU3RhcnQgRm9ybUJ1aWxkZXIgTW9kdWxlICgiLiR0aGlzLT5tb2R1bGVfcHRyLT5HZXRWZXJzaW9uKCkuIikgLS0+XG4iOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtRm9vdGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gRW5kIEZvcm1CdWlsZGVyIE1vZHVsZSAtLT5cbiI7CiAgICAgIH0KICB9CgoKICAvLyByZXR1cm5zIGEgc3RyaW5nLgogIGZ1bmN0aW9uIFJlbmRlckZvcm0oJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCXJldHVybiAiPCEtLSBubyBmb3JtIC0tPlxuIjsKICAgICAgfQogICAgaWYgKCR0aGlzLT5sb2FkZWQgIT0gJ2Z1bGwnKQogICAgICB7CgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsJHBhcmFtcyx0cnVlKTsKICAgICAgfQoKICAgICRyZXFTeW1ib2wgPSAkdGhpcy0+R2V0QXR0cigncmVxdWlyZWRfZmllbGRfc3ltYm9sJywnKicpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9wYWdlX3hfb2ZfeScsJG1vZC0+TGFuZygndGl0bGVfcGFnZV94X29mX3knLGFycmF5KCR0aGlzLT5QYWdlLCR0aGlzLT5mb3JtVG90YWxQYWdlcykpKTsKCQkKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjc3NfY2xhc3MnLCR0aGlzLT5HZXRBdHRyKCdjc3NfY2xhc3MnLCcnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndG90YWxfcGFnZXMnLCR0aGlzLT5mb3JtVG90YWxQYWdlcyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGhpc19wYWdlJywkdGhpcy0+UGFnZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9uYW1lJywkdGhpcy0+TmFtZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9pZCcsJHRoaXMtPklkKTsKCiAgICAkaGlkZGVuID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCk7CiAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfY29udGludWUnLCAoJHRoaXMtPlBhZ2UgKyAxKSk7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9icm93c2VyX2lkJ10pKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9icm93c2VyX2lkJywkcGFyYW1zWydmYnJwX2Jyb3dzZXJfaWQnXSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+UGFnZSA+IDEpCiAgICAgIHsKCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9wcmV2aW91cycsICgkdGhpcy0+UGFnZSAtIDEpKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5QYWdlID09ICR0aGlzLT5mb3JtVG90YWxQYWdlcykKICAgICAgewoJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX2RvbmUnLCAxKTsKICAgICAgfQogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICAkZm9ybVBhZ2VDb3VudCA9IDE7CiAgICBmb3IgKCRpPTA7ICRpIDwgY291bnQoJHRoaXMtPkZpZWxkcyk7ICRpKyspCiAgICAgIHsKCSR0aGlzRmllbGQgPSAmJHRoaXMtPkZpZWxkc1skaV07CglpZiAoJHRoaXNGaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJ1BhZ2VCcmVha0ZpZWxkJykKCSAgewoJICAgICRmb3JtUGFnZUNvdW50Kys7CgkgIH0KCWlmICgkZm9ybVBhZ2VDb3VudCAhPSAkdGhpcy0+UGFnZSkKCSAgewoJICAgICR0ZXN0SW5kZXggPSAnZmJycF9fJy4kdGhpcy0+RmllbGRzWyRpXS0+R2V0SWQoKTsKCSAgICBpZiAoIWlzc2V0KCRwYXJhbXNbJHRlc3RJbmRleF0pKQoJICAgICAgewoJCS8vIGRvIHdlIG5lZWQgdG8gd3JpdGUgc29tZXRoaW5nPwoJICAgICAgfQoJICAgIGVsc2VpZiAoaXNfYXJyYXkoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkgICAgICB7CgkJZm9yZWFjaCAoJHBhcmFtc1skdGVzdEluZGV4XSBhcyAkdmFsKQoJCSAgewoJCSAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwKCQkJCQkJICAgICAgICR0ZXN0SW5kZXguJ1tdJywKCQkJCQkJICAgICAgIC8qaHRtbHNwZWNpYWxjaGFycygkdmFsLEVOVF9RVU9URVMpKi8gJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCR2YWwpKTsKCQkgIH0KCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsCgkJCQkJCSAgICR0ZXN0SW5kZXgsCgkJCQkJCSAgIC8qaHRtbHNwZWNpYWxjaGFycygkcGFyYW1zWyR0ZXN0SW5kZXhdLEVOVF9RVU9URVMpKi8gJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCRwYXJhbXNbJHRlc3RJbmRleF0pKTsKCSAgICAgIH0KCSAgICBjb250aW51ZTsKCSAgfQoJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJJG9uZXNldC0+ZGlzcGxheSA9ICR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZCA9ICR0aGlzRmllbGQtPklzUmVxdWlyZWQoKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZF9zeW1ib2wgPSAkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCk/JHJlcVN5bWJvbDonJzsKCSRvbmVzZXQtPmNzc19jbGFzcyA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7Ci8vCSRvbmVzZXQtPnZhbGlkID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdpc192YWxpZCcsdHJ1ZSk/MTowOwoJJG9uZXNldC0+dmFsaWQgPSAkdGhpc0ZpZWxkLT52YWxpZGF0ZWQ/MTowOwoJJG9uZXNldC0+ZXJyb3IgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2lzX3ZhbGlkJyx0cnVlKT8nJzokdGhpc0ZpZWxkLT52YWxpZGF0aW9uRXJyb3JUZXh0OwoJJG9uZXNldC0+aGlkZV9uYW1lID0gMDsKCWlmKCAoISR0aGlzRmllbGQtPkhhc0xhYmVsKCkpIHx8ICR0aGlzRmllbGQtPkhpZGVMYWJlbCgpICkKCSAgewoJICAgICRvbmVzZXQtPmhpZGVfbmFtZSA9IDE7CgkgIH0KCSRvbmVzZXQtPmhhc19sYWJlbCA9ICR0aGlzRmllbGQtPkhhc0xhYmVsKCk7Cgkkb25lc2V0LT5uZWVkc19kaXYgPSAkdGhpc0ZpZWxkLT5OZWVkc0RpdigpOwoJJG9uZXNldC0+bmFtZSA9ICR0aGlzRmllbGQtPkdldE5hbWUoKTsKCSRvbmVzZXQtPmlucHV0ID0gJHRoaXNGaWVsZC0+R2V0RmllbGRJbnB1dCgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7Cgkkb25lc2V0LT5zbWFydHlfZXZhbCA9ICR0aGlzRmllbGQtPkdldFNtYXJ0eUV2YWwoKT8xOjA7CgoJJG9uZXNldC0+aW5wdXRfaWQgPSAkaWQuJ2ZicnBfXycuJHRoaXNGaWVsZC0+R2V0SUQoKTsKCSRvbmVzZXQtPm11bHRpcGxlX3BhcnRzID0gJHRoaXNGaWVsZC0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpPzE6MDsKCSRvbmVzZXQtPmxhYmVsX3BhcnRzID0gJHRoaXNGaWVsZC0+TGFiZWxTdWJDb21wb25lbnRzKCk/MTowOwoJJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpc0ZpZWxkLT5HZXROYW1lKCksJG9uZXNldCk7CglhcnJheV9wdXNoKCRmaWVsZHMsJG9uZXNldCk7CiAgICAgIH0KCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZiX2hpZGRlbicsJGhpZGRlbik7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZpZWxkcycsJGZpZWxkcyk7CgogICAgJGpzU3RyID0gJyc7CiAgICAkanNUcmlnZ2VyID0gJyc7CiAgICBpZiAoJHRoaXMtPkdldEF0dHIoJ2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykgPT0gJzEnKQogICAgICB7CgkkanNTdHIgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgdmFyIHN1Ym1pdHRlZCA9IDA7CiAgICBmdW5jdGlvbiBMb2NrQnV0dG9uICgpCiAgICAgICB7CiAgICAgICB2YXIgcmV0ID0gZmFsc2U7CiAgICAgICBpZiAoICEgc3VibWl0dGVkICkKICAgICAgICAgIHsKICAgICAgICAgICB2YXIgaXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmYnN1Ym1pdCIpOwogICAgICAgICAgIGlmIChpdGVtICE9IG51bGwpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2l0ZW0uZGlzYWJsZWQgPSB0cnVlfSwgMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgc3VibWl0dGVkID0gMTsKICAgICAgICAgICByZXQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQo8L3NjcmlwdD4nOwogICAgICAkanNUcmlnZ2VyID0gIiBvbmNsaWNrPSdyZXR1cm4gTG9ja0J1dHRvbigpJyI7CiAgICAgIH0KCiAgICBpZiAoJHRoaXMtPlBhZ2UgPiAxKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncHJldicsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9wcmV2JywKCQkJCQkJCSAgICAkdGhpcy0+R2V0QXR0cigncHJldl9idXR0b25fdGV4dCcpLAoJCQkJCQkJICAgICdjbGFzcz0iZmJzdWJtaXRfcHJldiInKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCcnKTsKICAgICAgfQoKICAgIGlmICgkdGhpcy0+UGFnZSA8ICRmb3JtUGFnZUNvdW50KQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsCgkJCQkJCQkgICAgICAkdGhpcy0+R2V0QXR0cignbmV4dF9idXR0b25fdGV4dCcpLAoJCQkJCQkJICAgICAgJ2NsYXNzPSJmYnN1Ym1pdF9uZXh0IicpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CiAgICAgICRjYXB0Y2hhID0gJiRtb2QtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICAgIGlmICgkdGhpcy0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJyk9PSAnMScgJiYgJGNhcHRjaGEgIT0gbnVsbCkKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZ3JhcGhpY19jYXB0Y2hhJywkY2FwdGNoYS0+Z2V0Q2FwdGNoYSgpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2NhcHRjaGEnLCR0aGlzLT5HZXRBdHRyKCd0aXRsZV91c2VyX2NhcHRjaGEnLCRtb2QtPkxhbmcoJ3RpdGxlX3VzZXJfY2FwdGNoYScpKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jYXB0Y2hhJywkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9jYXB0Y2hhX3BocmFzZScsJycpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hhc19jYXB0Y2hhJywnMScpOwogICAgICAgICB9CiAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzX2NhcHRjaGEnLCcwJyk7CiAgICAgICAgIH0KCSAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRqc1N0ciAuICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfc3VibWl0JywKCQkJCSR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfYnV0dG9uX3RleHQnKSwKCQkJCSdjbGFzcz0iZmJzdWJtaXQiIGlkPSJmYnN1Ym1pdCInLiRqc1RyaWdnZXIpKTsKICAgICAgfQoJICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGFiYXNlKCdmYl8nLiR0aGlzLT5JZCk7CiAgfQoKICBmdW5jdGlvbiBMb2FkRm9ybSgkbG9hZERlZXA9ZmFsc2UpCiAgewogICAgcmV0dXJuICR0aGlzLT5Mb2FkKCR0aGlzLT5JZCwgYXJyYXkoKSwgJGxvYWREZWVwKTsKICB9CgpmdW5jdGlvbiB1bm15X2h0bWxlbnRpdGllcygkdmFsKQp7CglpZiAoJHZhbCA9PSAiIikKCXsKCQlyZXR1cm4gIiI7Cgl9CgkkdmFsID0gaHRtbF9lbnRpdHlfZGVjb2RlKCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImYW1wOyIsIiYiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImIzYwOyYjMzM7LS0iLCI8IS0tIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiLS0mIzYyOyIsIi0tPiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZndDsiLCI+IiwgJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZsdDsiLCI8IiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJnF1b3Q7IiwiXCIiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImIzAzNjsiLCJcJCIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjMzM7IiwiISIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjMzk7IiwiJyIsJHZhbCk7CgoJLy8gVW5jb21tZW50IGlmIHlvdSBuZWVkIHRvIGNvbnZlcnQgdW5pY29kZSBjaGFycwoJcmV0dXJuICR2YWw7Cn0KCgoKCgogIGZ1bmN0aW9uIExvYWQoJGZvcm1JZCwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKICB7CgovL2Vycm9yX2xvZygiZW50ZXJpbmcgRm9ybSBMb2FkIHdpdGggdXNhZ2UgIi5tZW1vcnlfZ2V0X3VzYWdlKCkpOwogICAgJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBmb3JtX2lkPT8nOwogICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRmb3JtSWQpKTsKICAgIGlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQogICAgICB7CgkkcmVzdWx0ID0gJHJzLT5GZXRjaFJvdygpOwoJJHRoaXMtPklkID0gJHJlc3VsdFsnZm9ybV9pZCddOwoJaWYgKCFpc3NldCgkcGFyYW1zWydmYnJwX2Zvcm1fbmFtZSddKSB8fCBlbXB0eSgkcGFyYW1zWydmYnJwX2Zvcm1fbmFtZSddKSkKCSAgewoJICAgICR0aGlzLT5OYW1lID0gJHJlc3VsdFsnbmFtZSddOwoJICB9CglpZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddKSB8fCBlbXB0eSgkcGFyYW1zWydmYnJwX2Zvcm1fYWxpYXMnXSkpCgkgIHsKCSAgICAkdGhpcy0+QWxpYXMgPSAkcmVzdWx0WydhbGlhcyddOwoJICB9CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAkc3FsID0gJ1NFTEVDVCBuYW1lLHZhbHVlIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1JZCkpOwogICAgd2hpbGUgKCRycyAmJiAkcmVzdWx0PSRycy0+RmV0Y2hSb3coKSkKICAgICAgewoJJHRoaXMtPkF0dHJzWyRyZXN1bHRbJ25hbWUnXV0gPSAkcmVzdWx0Wyd2YWx1ZSddOwogICAgICB9CiAgICAgICAgICAKICAgICR0aGlzLT5sb2FkZWQgPSAnc3VtbWFyeSc7CgogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKQogICAgICB7CgkkbG9hZERlZXAgPSB0cnVlOwogICAgICB9CgkJCQogICAgaWYgKCRsb2FkRGVlcCkKICAgICAgewoJLy8gaWYgaXQncyBhIHN0b3JlZCBmb3JtLCBsb2FkIHRoZSByZXN1bHRzIC0tIGJ1dCB3ZSBuZWVkIHRvIG1hbnVhbGx5IG1lcmdlIHRoZW0sCgkvLyBzaW5jZSAkcGFyYW1zW10gc2hvdWxkIG92ZXJyaWRlIHRoZSBkYXRhYmFzZSB2YWx1ZSAoc2F5IHdlJ3JlIHJlc3VibWl0dGluZyBhIGZvcm0pCglpZiAoaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpCgkgIHsKCSAgICAkbG9hZFBhcmFtcyA9IGFycmF5KCdyZXNwb25zZV9pZCc9PiRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pOwoJICAgICR0aGlzLT5Mb2FkUmVzcG9uc2VWYWx1ZXMoJGxvYWRQYXJhbXMpOwoJICAgIGZvcmVhY2ggKCRsb2FkUGFyYW1zIGFzICR0aGlzUGFyYW1LZXk9PiR0aGlzUGFyYW1WYWx1ZSkKCSAgICAgIHsKCQlpZiAoISBpc3NldCgkcGFyYW1zWyR0aGlzUGFyYW1LZXldKSkKCQkgIHsKCQkgICAgJHBhcmFtc1skdGhpc1BhcmFtS2V5XSA9ICR0aGlzUGFyYW1WYWx1ZTsKCQkgIH0KCSAgICAgIH0KCSAgfQoKCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2ZpZWxkIFdIRVJFIGZvcm1faWQ9PyBPUkRFUiBCWSBvcmRlcl9ieSc7CgkkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1JZCkpOwoJJHJlc3VsdCA9IGFycmF5KCk7CglpZiAoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCgkgIHsKCSAgICAkcmVzdWx0ID0gJHJzLT5HZXRBcnJheSgpOwoJICB9CgkkZmllbGRDb3VudCA9IDA7CglpZiAoY291bnQoJHJlc3VsdCkgPiAwKQoJICB7CgkgICAgZm9yZWFjaCgkcmVzdWx0IGFzICR0aGlzUmVzKQoJICAgICAgewovL2Vycm9yX2xvZygiSW5zdGFudGlhdGluZyBGaWVsZC4gdXNhZ2UgIi5tZW1vcnlfZ2V0X3VzYWdlKCkpOwoKCQkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHRoaXNSZXNbJ3R5cGUnXSwgJycpOwoJCS8vIGNyZWF0ZSB0aGUgZmllbGQgb2JqZWN0CgkJaWYgKAoJCSAgICAoIAoJCSAgICAgaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCgkJICAgICAgKAoJCSAgICAgICBpc3NldCgkcGFyYW1zWydmYnJwX18nLiR0aGlzUmVzWydmaWVsZF9pZCddXSkgfHwKCQkgICAgICAgaXNzZXQoJHBhcmFtc1snZmJycF9fXycuJHRoaXNSZXNbJ2ZpZWxkX2lkJ11dKQoJCSAgICAgICApCgkJICAgICAgKSB8fAoJCSAgICAoaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCgkJICAgICBpc3NldCgkcGFyYW1zWyd2YWx1ZV8nLiR0aGlzUmVzWyduYW1lJ11dKSkgfHwKCQkgICAgKGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJgoJCSAgICAgaXNzZXQoJHBhcmFtc1sndmFsdWVfZmxkJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pKSB8fAoJCSAgICAoCgkJICAgICBpc3NldCgkcGFyYW1zWydmaWVsZF9pZCddKSAmJiBpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgICRwYXJhbXNbJ2ZpZWxkX2lkJ10gPT0gJHRoaXNSZXNbJ2ZpZWxkX2lkJ10KCQkgICAgICkKCQkgICAgKQoJCSAgewoJCSAgICAkdGhpc1JlcyA9IGFycmF5X21lcmdlKCR0aGlzUmVzLCRwYXJhbXMpOwoJCSAgfQoJCSR0aGlzLT5GaWVsZHNbJGZpZWxkQ291bnRdID0gJiR0aGlzLT5OZXdGaWVsZCgkdGhpc1Jlcyk7CgkJJGZpZWxkQ291bnQrKzsKCSAgICAgIH0KCSAgfQoJJHRoaXMtPmxvYWRlZCA9ICdmdWxsJzsKICAgICAgfQoKCQkKICAgIGZvciAoJGk9MDsgJGkgPCBjb3VudCgkdGhpcy0+RmllbGRzKTsgJGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5UeXBlID09ICdQYWdlQnJlYWtGaWVsZCcpCgkgIHsKCSAgICAkdGhpcy0+Zm9ybVRvdGFsUGFnZXMrKzsKCSAgfQogICAgICB9CgogICAgcmV0dXJuIHRydWU7CiAgfQoKICBmdW5jdGlvbiBJbXBvcnRYTUwoJiRwYXJhbXMpCiAgewogIAkvLyB4bWxfcGFyc2VyX2NyZWF0ZSwgeG1sX3BhcnNlX2ludG9fc3RydWN0CiAgCSRwYXJzZXIgPSB4bWxfcGFyc2VyX2NyZWF0ZSgnJyk7CiAgIHhtbF9wYXJzZXJfc2V0X29wdGlvbiggJHBhcnNlciwgWE1MX09QVElPTl9DQVNFX0ZPTERJTkcsIDAgKTsKICAgeG1sX3BhcnNlcl9zZXRfb3B0aW9uKCAkcGFyc2VyLCBYTUxfT1BUSU9OX1NLSVBfV0hJVEUsIDAgKTsgLy8gd2FzIDEKCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcGFyc2VyLCBmaWxlX2dldF9jb250ZW50cygkcGFyYW1zWydmYnJwX3htbF9maWxlJ10pLCAkdmFscyk7Cgl4bWxfcGFyc2VyX2ZyZWUoJHBhcnNlcik7CgkkZWxlbWVudHMgPSBhcnJheSgpOwoJJHN0YWNrID0gYXJyYXkoKTsKCWZvcmVhY2ggKCAkdmFscyBhcyAkdGFnICkKCQl7CgkJJGluZGV4ID0gY291bnQoICRlbGVtZW50cyApOwoJCWlmICggJHRhZ1sndHlwZSddID09ICJjb21wbGV0ZSIgfHwgJHRhZ1sndHlwZSddID09ICJvcGVuIiApCgkJCXsKCQkJJGVsZW1lbnRzWyRpbmRleF0gPSBhcnJheSgpOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnbmFtZSddID0gJHRhZ1sndGFnJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydhdHRyaWJ1dGVzJ10gPSBlbXB0eSgkdGFnWydhdHRyaWJ1dGVzJ10pID8gIiIgOiAkdGFnWydhdHRyaWJ1dGVzJ107CgkJCSRlbGVtZW50c1skaW5kZXhdWydjb250ZW50J10gICAgPSBlbXB0eSgkdGFnWyd2YWx1ZSddKSA/ICIiIDogJHRhZ1sndmFsdWUnXTsKCQkJaWYgKCAkdGFnWyd0eXBlJ10gPT0gIm9wZW4iICkKCQkJCXsgICAgIyBwdXNoCgkJCQkkZWxlbWVudHNbJGluZGV4XVsnY2hpbGRyZW4nXSA9IGFycmF5KCk7CgkJCQkkc3RhY2tbY291bnQoJHN0YWNrKV0gPSAmJGVsZW1lbnRzOwoJCQkJJGVsZW1lbnRzID0gJiRlbGVtZW50c1skaW5kZXhdWydjaGlsZHJlbiddOwoJCQkJfQogICAgICAgIH0KCQlpZiAoICR0YWdbJ3R5cGUnXSA9PSAiY2xvc2UiICkKCQkJeyAgICAjIHBvcAoJCQkkZWxlbWVudHMgPSAmJHN0YWNrW2NvdW50KCRzdGFjaykgLSAxXTsKCQkJdW5zZXQoJHN0YWNrW2NvdW50KCRzdGFjaykgLSAxXSk7CgkJCX0KCQl9CgoJaWYgKCFpc3NldCgkZWxlbWVudHNbMF0pIHx8ICFpc3NldCgkZWxlbWVudHNbMF0pIHx8ICFpc3NldCgkZWxlbWVudHNbMF1bJ2F0dHJpYnV0ZXMnXSkpCgkJewoJCS8vcGFyc2luZyBmYWlsZWQsIG9yIGludmFsaWQgZmlsZS4KCQlyZXR1cm4gZmFsc2U7CgkJfQoJJHBhcmFtc1snZm9ybV9pZCddID0gLTE7IC8vIG92ZXJyaWRlIGFueSBmb3JtX2lkIHZhbHVlcyB0aGF0IG1heSBiZSBhcm91bmQKCSRmb3JtQXR0cnMgPSAmJGVsZW1lbnRzWzBdWydhdHRyaWJ1dGVzJ107CglpZiAoJHRoaXMtPmluWE1MKCRmb3JtQXR0cnNbJ25hbWUnXSkpCgkJewoJCSR0aGlzLT5TZXROYW1lKCRmb3JtQXR0cnNbJ25hbWUnXSk7CgkJfQoJaWYgKCR0aGlzLT5pblhNTCgkZm9ybUF0dHJzWydhbGlhcyddKSkKCQl7CgkJJHRoaXMtPlNldEFsaWFzKCRmb3JtQXR0cnNbJ2FsaWFzJ10pOwoJCX0KCS8vIHBvcHVsYXRlIHRoZSBhdHRyaWJ1dGVzIGZpcnN0LCBzbyB3ZSBjYW4gc2F2ZSB0aGUgZm9ybSBhbmQgdGhlbiBzdGFydCBhZGRpbmcgZmllbGRzIHRvIGl0LgoJZm9yZWFjaCAoJGVsZW1lbnRzWzBdWydjaGlsZHJlbiddIGFzICR0aGlzQ2hpbGQpCgkJewoJCWlmICgkdGhpc0NoaWxkWyduYW1lJ10gPT0gJ2F0dHJpYnV0ZScpCgkJCXsKCQkJJHRoaXMtPlNldEF0dHIoJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddWydrZXknXSwgJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJfQoJCX0KCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAmJiAKCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJICB7CgkgICAgJHRoaXMtPlNldE5hbWUodHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSk7CgkgIH0KCWlmKCBpc3NldCgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtYWxpYXMnXSkgJiYKCSAgICB0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1uYW1lJ10pICE9ICcnKQoJICB7CgkgICAgJHRoaXMtPlNldEFsaWFzKHRyaW0oJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pKTsKCSAgfQoJJHRoaXMtPlN0b3JlKCk7CgkkcGFyYW1zWydmb3JtX2lkJ10gPSAkdGhpcy0+R2V0SWQoKTsKCWZvcmVhY2ggKCRlbGVtZW50c1swXVsnY2hpbGRyZW4nXSBhcyAkdGhpc0NoaWxkKQoJCXsKCQlpZiAoJHRoaXNDaGlsZFsnbmFtZSddID09ICdmaWVsZCcpCgkJCXsKCQkJJG5ld0ZpZWxkID0gbmV3IGZiRmllbGRCYXNlKCR0aGlzLCAkcGFyYW1zKTsKCQkJJGZpZWxkQXR0cnMgPSAmJHRoaXNDaGlsZFsnYXR0cmlidXRlcyddOwoJCQlpZiAoJHRoaXMtPmluWE1MKCRmaWVsZEF0dHJzWyduYW1lJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXROYW1lKCRmaWVsZEF0dHJzWyduYW1lJ10pOwoJCQkJfQoJCQlpZiAoJHRoaXMtPmluWE1MKCRmaWVsZEF0dHJzWyd0eXBlJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRGaWVsZFR5cGUoJGZpZWxkQXR0cnNbJ3R5cGUnXSk7CgkJCQl9CgkJCSRuZXdGaWVsZC0+U2V0VmFsaWRhdGlvblR5cGUoJGZpZWxkQXR0cnNbJ3ZhbGlkYXRpb25fdHlwZSddKTsKCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1snb3JkZXJfYnknXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldE9yZGVyKCRmaWVsZEF0dHJzWydvcmRlcl9ieSddKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1sncmVxdWlyZWQnXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldFJlcXVpcmVkKCRmaWVsZEF0dHJzWydyZXF1aXJlZCddKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1snaGlkZV9sYWJlbCddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0SGlkZUxhYmVsKCRmaWVsZEF0dHJzWydoaWRlX2xhYmVsJ10pOwoJCQkJfQoJCQlmb3JlYWNoICgkdGhpc0NoaWxkWydjaGlsZHJlbiddIGFzICR0aGlzT3B0KQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5QdXNoT3B0aW9uRWxlbWVudCgkdGhpc09wdFsnYXR0cmlidXRlcyddWyduYW1lJ10sCgkJCQkJJHRoaXNPcHRbJ2NvbnRlbnQnXSk7CgkJCQl9CgkJCSRuZXdGaWVsZC0+U3RvcmUodHJ1ZSk7CgkJCX0KCQl9CglyZXR1cm4gdHJ1ZTsJCiAgfQoKICBmdW5jdGlvbiBpblhNTCgmJHZhcikKICB7CiAgCQlpZiAoaXNzZXQoJHZhcikgJiYgc3RybGVuKCR2YXIpID4gMCkKICAJCQl7CgkJCXJldHVybiB0cnVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBmYWxzZTsKCQkJfQogIH0KCiAgLy8gc3RvcmVEZWVwIGFsc28gc3RvcmVzIGFsbCBmaWVsZHMgYW5kIG9wdGlvbnMgZm9yIGEgZm9ybQogIGZ1bmN0aW9uIFN0b3JlKCRzdG9yZURlZXA9ZmFsc2UpCiAgewogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJJHRoaXMtPklkID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuCgkJCQkJCSAgICAgICAnbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7Cgkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZm9ybSAoZm9ybV9pZCwgbmFtZSwgYWxpYXMpICcuCgkgICdWQUxVRVMgKD8sID8sID8pJzsKCSRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJICAgIGFycmF5KCR0aGlzLT5JZCwgJHRoaXMtPk5hbWUsICR0aGlzLT5BbGlhcykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZm9ybSBzZXQgbmFtZT0/LCBhbGlhcz0/IHdoZXJlIGZvcm1faWQ9Pyc7CgkkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCSAgICBhcnJheSgkdGhpcy0+TmFtZSwgJHRoaXMtPkFsaWFzLCAkdGhpcy0+SWQpKTsKICAgICAgfQogICAgLy8gc2F2ZSBvdXQgdGhlIGF0dHJzCiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciBXSEVSRSBmb3JtX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKICAgIGZvcmVhY2ggKCR0aGlzLT5BdHRycyBhcyAkdGhpc0F0dHJLZXk9PiR0aGlzQXR0clZhbHVlKQogICAgICB7CgkkZm9ybUF0dHJJZCA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLgoJCQkJCQkJICdtb2R1bGVfZmJfZm9ybV9hdHRyX3NlcScpOwoJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciAoZm9ybV9hdHRyX2lkLCBmb3JtX2lkLCBuYW1lLCB2YWx1ZSkgJy4KCSAgJ1ZBTFVFUyAoPywgPywgPywgPyknOwoJJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkgICAgYXJyYXkoJGZvcm1BdHRySWQsICR0aGlzLT5JZCwgJHRoaXNBdHRyS2V5LAoJCQkJCQkJICAkdGhpc0F0dHJWYWx1ZSkpOwoJaWYgKCR0aGlzQXR0cktleSA9PSAnZm9ybV90ZW1wbGF0ZScpCgkgIHsKCSAgICAkdGhpcy0+bW9kdWxlX3B0ci0+U2V0VGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkLCR0aGlzQXR0clZhbHVlKTsKCSAgfQogICAgICB9CgkJCiAgICByZXR1cm4gJHJlczsKICB9CgogIGZ1bmN0aW9uIERlbGV0ZSgpCiAgewogICAgaWYgKCR0aGlzLT5JZCA9PSAtMSkKICAgICAgewoJcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICBpZiAoJHRoaXMtPmxvYWRlZCAhPSAnZnVsbCcpCiAgICAgIHsKCSR0aGlzLT5Mb2FkKCR0aGlzLT5JZCxhcnJheSgpLHRydWUpOwogICAgICB9CiAgICBmb3JlYWNoICgkdGhpcy0+RmllbGRzIGFzICRmaWVsZCkKICAgICAgewoJJGZpZWxkLT5EZWxldGUoKTsKICAgICAgfQogICAgJHRoaXMtPm1vZHVsZV9wdHItPkRlbGV0ZVRlbXBsYXRlKCdmYl8nLiR0aGlzLT5JZCk7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2Zvcm0gd2hlcmUgZm9ybV9pZD0/JzsKICAgICRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHRoaXMtPklkKSk7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkgLiAnbW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBmb3JtX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKICAgIHJldHVybiB0cnVlOwogIH0KCiAgLy8gcmV0dXJucyBhIGNsYXNzIG5hbWUsIGFuZCBtYWtlcyBzdXJlIHRoZSBmaWxlIHdoZXJlIHRoZSBjbGFzcyBpcwogIC8vIGRlZmluZWQgaGFzIGJlZW4gbG9hZGVkLgogIGZ1bmN0aW9uIE1ha2VDbGFzc05hbWUoJHR5cGUsICRjbGFzc0RpclByZWZpeCkKICB7CiAgICAvLyBwZXJmb3JtIHJ1ZGltZW50YXJ5IHNlY3VyaXR5LCBzaW5jZSBUeXBlIGNvdWxkIGNvbWUgaW4gZnJvbSBhIGZvcm0KICAgICR0eXBlID0gcHJlZ19yZXBsYWNlKCIvW1xXXXxcLlwuLyIsICJfIiwgJHR5cGUpOwogICAgaWYgKCR0eXBlID09ICcnIHx8IHN0cmxlbigkdHlwZSkgPCAxKQogICAgICB7CgkkdHlwZSA9ICdGaWVsZCc7CiAgICAgIH0KICAgICRjbGFzc0ZpbGU9Jyc7CiAgICBpZiAoc3RybGVuKCRjbGFzc0RpclByZWZpeCkgPiAwKQogICAgICB7CgkkY2xhc3NGaWxlID0gJGNsYXNzRGlyUHJlZml4IC4nLycuJHR5cGUuJy5jbGFzcy5waHAnOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRjbGFzc0ZpbGUgPSAkdHlwZS4nLmNsYXNzLnBocCc7CiAgICAgIH0KICAgIHJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKS4nLycuJGNsYXNzRmlsZTsKICAgIC8vIGNsYXNzIG5hbWVzIGFyZSBwcmVwZW5kZWQgd2l0aCAiZmIiIHRvIHByZXZlbnQgbmFtZXNwYWNlIGNsYXNoLgogICAgcmV0dXJuICggJ2ZiJy4kdHlwZSApOwogIH0KCiAgZnVuY3Rpb24gQWRkRWRpdEZvcm0oJGlkLCAkcmV0dXJuaWQsICRtZXNzYWdlPScnKQogIHsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRtb2QgPSAmJHRoaXMtPm1vZHVsZV9wdHI7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJCSAkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc3RvcmVfZm9ybScsICRyZXR1cm5pZCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1pZCcsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX2lkJywgJHRoaXMtPklkKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYkhlYWRlcnMoKS4KICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdtYWludGFiJywkbW9kLT5MYW5nKCd0YWJfbWFpbicpKS4KICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdzdWJtaXR0YWInLCRtb2QtPkxhbmcoJ3RhYl9zdWJtaXQnKSkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcignc3ltYm9sdGFiJywkbW9kLT5MYW5nKCd0YWJfc3ltYm9sJykpLgogICAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ2NhcHRjaGF0YWInLCRtb2QtPkxhbmcoJ3RhYl9jYXB0Y2hhJykpLgogICAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ3RlbXBsYXRlbGF5b3V0JywkbW9kLT5MYW5nKCd0YWJfdGVtcGxhdGVsYXlvdXQnKSkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcignc3VibWl0dGVtcGxhdGUnLCRtb2QtPkxhbmcoJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnKSkuCgkJCSRtb2QtPkVuZFRhYkhlYWRlcnMoKSAuICRtb2QtPlN0YXJ0VGFiQ29udGVudCgpKTsKCSAgCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFic19lbmQnLCRtb2QtPkVuZFRhYkNvbnRlbnQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWFpbnRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoIm1haW50YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0dGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigic3VibWl0dGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N5bWJvbHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInN5bWJvbHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoInRlbXBsYXRlbGF5b3V0IikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdHRlbXBsYXRldGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigic3VibWl0dGVtcGxhdGUiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY2FwdGNoYXRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoImNhcHRjaGF0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX2VuZCcsJG1vZC0+RW5kVGFiKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywkbW9kLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fbmFtZScsJG1vZC0+TGFuZygndGl0bGVfZm9ybV9uYW1lJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fbmFtZScsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtX25hbWUnLAoJCQkJCSAgICAgICAkdGhpcy0+TmFtZSwgNTApKTsKCQoJCgkkbW9kLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVfYXJlX3lvdV9zdXJlJywkbW9kLT5MYW5nKCd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfbG9hZF90ZW1wbGF0ZScsJG1vZC0+TGFuZygndGl0bGVfbG9hZF90ZW1wbGF0ZScpKTsKCSRtb2RMaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9nZXRfdGVtcGxhdGUnLCAkcmV0dXJuaWQsICcnLCBhcnJheSgpLCAnJywgdHJ1ZSk7CglsaXN0KCRtb2RfcGF0aCwgJG1vZF9wYXJhbSkgPSBleHBsb2RlKCc/JywkbW9kTGluayk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignbW9kX3BhdGgnLCRtb2RfcGF0aCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignbW9kX3BhcmFtJywkbW9kX3BhcmFtKTsKCQoJJHRlbXBsYXRlTGlzdCA9IGFycmF5KCcnPT4nJywkbW9kLT5MYW5nKCdkZWZhdWx0X3RlbXBsYXRlJyk9PidSZW5kZXJGb3JtRGVmYXVsdC50cGwnLAoJCSRtb2QtPkxhbmcoJ3RhYmxlX2xlZnRfdGVtcGxhdGUnKT0+J1JlbmRlckZvcm1UYWJsZVRpdGxlTGVmdC50cGwnLAoJCSRtb2QtPkxhbmcoJ3RhYmxlX3RvcF90ZW1wbGF0ZScpPT4nUmVuZGVyRm9ybVRhYmxlVGl0bGVUb3AudHBsJyk7CgkJCgkkYWxsRm9ybXMgPSAkbW9kLT5HZXRGb3JtcygpOwoJZm9yZWFjaCAoJGFsbEZvcm1zIGFzICR0aGlzRm9ybSkKCQl7CgkJaWYgKCR0aGlzRm9ybVsnZm9ybV9pZCddICE9ICR0aGlzLT5JZCkKCQkJewoJCQkkdGVtcGxhdGVMaXN0WyRtb2QtPkxhbmcoJ2Zvcm1fdGVtcGxhdGVfbmFtZScsJHRoaXNGb3JtWyduYW1lJ10pXSA9CgkJCQkkdGhpc0Zvcm1bJ2Zvcm1faWQnXTsKCQkJfQoJCX0KCQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2xvYWRfdGVtcGxhdGUnLCRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLAoJCSdmYnJwX2ZiX3RlbXBsYXRlX2xvYWQnLCAkdGVtcGxhdGVMaXN0LCAtMSwgJycsICdpZD0iZmJfdGVtcGxhdGVfbG9hZCIgb25jaGFuZ2U9ImdldFRlbXBsYXRlKCkiJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hlbHBfdGVtcGxhdGVfdmFyaWFibGVzJywkbW9kLT5MYW5nKCd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV91bnNwZWNpZmllZCcsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV91bnNwZWNpZmllZCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSksIDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9zdGF0dXMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9zdGF0dXMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGV4dF9yZWFkeScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2FsaWFzJywkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX2FsaWFzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fYWxpYXMnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybV9hbGlhcycsCgkJCQkJICAgICAgICR0aGlzLT5BbGlhcywgNTApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2Nzc19jbGFzcycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX2Nzc19jbGFzcycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX2Nzc19jbGFzcycsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9jc3NfY2xhc3MnLAoJCQkJCSAgICAgICAkdGhpcy0+R2V0QXR0cignY3NzX2NsYXNzJywnZm9ybWJ1aWxkZXJmb3JtJyksIDUwLDUwKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9maWVsZHMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9maWVsZHMnKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9tYWluJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbWFpbicpKTsKICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkaWRzJywwKSAhPSAwICkKICAgICAgewoJICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfaWQnLAoJCQkgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2lkJykpOwogICAgICB9CiAgICBpZiggJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZGFsaWFzZXMnLDApICE9IDAgKQogICAgICB7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9hbGlhcycsCgkJCSAgICAgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfYWxpYXMnKSk7CiAgICAgIH0KCgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX25hbWUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbmFtZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF90eXBlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfdHlwZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF90eXBlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV90ZW1wbGF0ZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9saXN0X2RlbGltaXRlcicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9saXN0X2RlbGltaXRlcicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9yZWRpcmVjdF9wYWdlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnKSk7CgkJCSAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfYWN0aW9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X3Jlc3BvbnNlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZScpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5saW5lX2Zvcm0nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfaW5saW5lX2Zvcm0nKSk7CgogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2xhYmVscycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfaGVscCcsCiRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2luZm8uZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKS4KCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9oZWxwJykpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJywKJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vaW5mby5naWYnLCd0cnVlJywnJywnJywnc3lzdGVtaWNvbicpLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCcpKTsKCiAgICAkc3VibWl0QWN0aW9ucyA9IGFycmF5KCRtb2QtPkxhbmcoJ2Rpc3BsYXlfdGV4dCcpPT4ndGV4dCcsCiAgICAgICAgICRtb2QtPkxhbmcoJ3JlZGlyZWN0X3RvX3BhZ2UnKT0+J3JlZGlyJyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfc3VibWl0X2FjdGlvbicsCiAgICAgICAgICAkbW9kLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAoJGlkLCAnZmJycF9mb3JtYV9zdWJtaXRfYWN0aW9uJywgJHN1Ym1pdEFjdGlvbnMsICR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfYWN0aW9uJywndGV4dCcpKSk7CgogICAgJGNhcHRjaGEgPSAmJG1vZC0+Z2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKICAgIGlmICgkY2FwdGNoYSA9PSBudWxsKQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbnN0YWxsX2NhcHRjaGEnLAoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX2luc3RhbGxlZCcsMCk7CiAgICAgICAgIH0KICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfdXNlX2NhcHRjaGEnLAoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV91c2VfY2FwdGNoYScpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGFfaW5zdGFsbGVkJywxKTsKCiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF91c2VfY2FwdGNoYScsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmYnJwX2Zvcm1hX3VzZV9jYXB0Y2hhJywnMCcpLgoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnZmJycF9mb3JtYV91c2VfY2FwdGNoYScsJzEnLCR0aGlzLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKSkuCgkJCSAgICRtb2QtPkxhbmcoJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnKSk7CgkJCX0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbmZvcm1hdGlvbicsJG1vZC0+TGFuZygnaW5mb3JtYXRpb24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfb3JkZXInLCRtb2QtPkxhbmcoJ29yZGVyJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldicsJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2JykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2hhc2Rpc3Bvc2l0aW9uJywkdGhpcy0+SGFzRGlzcG9zaXRpb24oKT8xOjApOwogICAgJG1heE9yZGVyID0gMTsKICAgIGlmKCR0aGlzLT5JZCA+IDApCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXRfYnV0dG9uJywKCQkJICAgICAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsCgkJCQkJCSAgICAgJG1vZC0+TGFuZygnc2F2ZV9hbmRfY29udGludWUnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX2hpZGRlbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9mb3JtX29wJywkbW9kLT5MYW5nKCd1cGRhdGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGRpbmcnLDApOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3NhdmVfYnV0dG9uJywKCQkJICAgICAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsICRtb2QtPkxhbmcoJ3NhdmUnKSkpOwoJJGZpZWxkTGlzdCA9IGFycmF5KCk7CgkkY3Vycm93ID0gInJvdzEiOwoJJGNvdW50ID0gMTsKCSRsYXN0ID0gJHRoaXMtPkdldEZpZWxkQ291bnQoKTsKCWZvcmVhY2ggKCR0aGlzLT5GaWVsZHMgYXMgJHRoaXNGaWVsZCkKCSAgewoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT5yb3djbGFzcyA9ICRjdXJyb3c7CgkgICAgJG9uZXNldC0+bmFtZSA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJHRoaXNGaWVsZC0+R2V0TmFtZSgpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSk7CgkgICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLDApICE9IDAgKQoJICAgICAgewoJCSRvbmVzZXQtPmlkID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICcnLCAkdGhpc0ZpZWxkLT5HZXRJZCgpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSk7CgkgICAgICB9CgkgICAgJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7CgkgICAgJG9uZXNldC0+YWxpYXMgPSAkdGhpc0ZpZWxkLT5HZXRBbGlhcygpOwoJICAgIGlmICgvKiR0aGlzRmllbGQtPklzRGlzcG9zaXRpb24oKSB8fCovCgkJISR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKSB8fAoJCSR0aGlzRmllbGQtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCgkgICAgICB7CgkJJG9uZXNldC0+ZGlzcG9zaXRpb24gPSAnLic7CgkgICAgICB9CgkgICAgZWxzZSBpZiAoJHRoaXNGaWVsZC0+SXNSZXF1aXJlZCgpKQoJICAgICAgewoJCSRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCd0cnVlJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9hY3RpdmUnPT4nb2ZmJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl91cGRhdGVfZmllbGRfcmVxdWlyZWQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnZmFsc2UnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2FjdGl2ZSc9PidvbicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJICAgICAgfQoJICAgICRvbmVzZXQtPmZpZWxkX3N0YXR1cyA9ICR0aGlzRmllbGQtPlN0YXR1c0luZm8oKTsKCSAgICBpZiAoJGNvdW50ID4gMSkKCSAgICAgIHsKCQkkb25lc2V0LT51cCA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX29yZGVyJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LXUuZ2lmJywndXAnLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2Rpcic9Pid1cCcsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT51cCA9ICcmbmJzcDsnOwoJICAgICAgfQoJICAgIGlmICgkY291bnQgPCAkbGFzdCkKCSAgICAgIHsKCQkkb25lc2V0LT5kb3duPSRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX29yZGVyJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2Fycm93LWQuZ2lmJywnZG93bicsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2ZicnBfZGlyJz0+J2Rvd24nLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+ZG93biA9ICcmbmJzcDsnOwoJICAgICAgfQoJICAgICRvbmVzZXQtPmVkaXRsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsJG1vZC0+TGFuZygnZWRpdCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCksJ2Zvcm1faWQnPT4kdGhpcy0+SWQpKTsKCSAgICAkb25lc2V0LT5kZWxldGVsaW5rID0gJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9kZWxldGVfZmllbGQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsJG1vZC0+TGFuZygnZGVsZXRlJyksJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCksJG1vZC0+TGFuZygnYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCcsaHRtbHNwZWNpYWxjaGFycygkdGhpc0ZpZWxkLT5HZXROYW1lKCkpKSk7CgkgICAgKCRjdXJyb3cgPT0gInJvdzEiPyRjdXJyb3c9InJvdzIiOiRjdXJyb3c9InJvdzEiKTsKCSAgICAkY291bnQrKzsKCSAgICBpZiAoJHRoaXNGaWVsZC0+R2V0T3JkZXIoKSA+PSAkbWF4T3JkZXIpCgkgICAgICB7CgkJJG1heE9yZGVyID0gJHRoaXNGaWVsZC0+R2V0T3JkZXIoKSArIDE7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkZmllbGRMaXN0LCAkb25lc2V0KTsKCSAgfQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZpZWxkcycsJGZpZWxkTGlzdCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkX2ZpZWxkX2xpbmsnLAoJCQkgICAgICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicsJG1vZC0+TGFuZygndGl0bGVfYWRkX25ld19maWVsZCcpLCcnLCcnLCdzeXN0ZW1pY29uJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX29yZGVyX2J5Jz0+JG1heE9yZGVyKSwgJycsIGZhbHNlKSAuICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfYWRkX25ld19maWVsZCcpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCBmYWxzZSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ29yZGVyX2ZpZWxkX2xpbmsnLAoJCQkgICAgICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fcmVvcmRlcl9mb3JtJywgJHJldHVybmlkLCRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3Jlb3JkZXIuZ2lmJywkbW9kLT5MYW5nKCd0aXRsZV9yZW9yZGVyX2Zvcm0nKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkKSwgJycsIGZhbHNlKSAuICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fcmVvcmRlcl9mb3JtJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX3Jlb3JkZXJfZm9ybScpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkKSwgJycsIGZhbHNlKSk7CgkJCSAgICAgCQkJICAgICAKCWlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCdlbmFibGVfZmFzdGFkZCcsMSkgPT0gMSkKCSAgewoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYXN0YWRkJywxKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmFzdGFkZCcsJG1vZC0+TGFuZygndGl0bGVfZmFzdGFkZCcpKTsKCSAgICAkdHlwZUlucHV0ID0gIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPgpmdW5jdGlvbiBmYXN0X2FkZChmaWVsZF90eXBlKQp7Cgl2YXIgdHlwZT1maWVsZF90eXBlLm9wdGlvbnNbZmllbGRfdHlwZS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKCXZhciBsaW5rID0gJyIuJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCwnJyxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgdHJ1ZSx0cnVlKS4iJiIuJGlkLiJmYnJwX2ZpZWxkX3R5cGU9Jyt0eXBlOwoJdGhpcy5sb2NhdGlvbj1saW5rOwoJcmV0dXJuIHRydWU7Cn0KPC9zY3JpcHQ+IjsKCSAgICAkdHlwZUlucHV0ID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJHR5cGVJbnB1dCk7IAoJICAgICRtb2QtPmluaXRpYWxpemUoKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZmFzdGFkZCcsJHR5cGVJbnB1dC4kbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmZpZWxkX3R5cGVzKSwgLTEsJycsICdvbmNoYW5nZT0iZmFzdF9hZGQodGhpcykiJykpOwoJICB9CQkJCQkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2J1dHRvbicsJycpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdF9idXR0b24nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfc3VibWl0JywgJG1vZC0+TGFuZygnYWRkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfZm9ybV9vcCcsJG1vZC0+TGFuZygnYWRkZWQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZGluZycsMSk7CiAgICAgIH0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdsaW5rX25vdHJlYWR5JywiPHN0cm9uZz4iLiRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeTEnKS4iPC9zdHJvbmc+ICIuJG1vZC0+TGFuZygndGl0bGVfbm90X3JlYWR5MicpLiIgIi4kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeV9saW5rJyksYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsICdmYnJwX29yZGVyX2J5Jz0+JG1heE9yZGVyLCdmYnJwX2Rpc3Bvc2Vfb25seSc9PjEpLCAnJywgZmFsc2UsIGZhbHNlLCdjbGFzcz0ibW9kdWxlX2ZiX2xpbmsiJykuIiAiLiRtb2QtPkxhbmcoJ3RpdGxlX25vdF9yZWFkeTMnKQoJCQkgKTsKCiAgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2lubGluZV9mb3JtJywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2ZicnBfZm9ybWFfaW5saW5lJywnMCcpLgoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnZmJycF9mb3JtYV9pbmxpbmUnLCcxJywkdGhpcy0+R2V0QXR0cignaW5saW5lJywnMCcpKS4KCQkJICAgJG1vZC0+TGFuZygndGl0bGVfaW5saW5lX2Zvcm1faGVscCcpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3N1Ym1pdF9idXR0b24nLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfc3VibWl0X2J1dHRvbl90ZXh0JywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9idXR0b25fdGV4dCcsJG1vZC0+TGFuZygnYnV0dG9uX3N1Ym1pdCcpKSwgMzUsIDM1KSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdWJtaXRfYnV0dG9uX3NhZmV0eScsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCdmYnJwX2Zvcm1hX2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykuCgkJCSAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnZmJycF9mb3JtYV9pbnB1dF9idXR0b25fc2FmZXR5JywnMScsJHRoaXMtPkdldEF0dHIoJ2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykpLgoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9wcmV2X2J1dHRvbicsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fcHJldl9idXR0b24nLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfcHJldl9idXR0b25fdGV4dCcsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdwcmV2X2J1dHRvbl90ZXh0JywkbW9kLT5MYW5nKCdidXR0b25fcHJldmlvdXMnKSksIDM1LCAzNSkpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF90aXRsZV91c2VyX2NhcHRjaGEnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfdGl0bGVfdXNlcl9jYXB0Y2hhJywKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5HZXRBdHRyKCd0aXRsZV91c2VyX2NhcHRjaGEnLCRtb2QtPkxhbmcoJ3RpdGxlX3VzZXJfY2FwdGNoYScpKSwzNSw4MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF90aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfY2FwdGNoYV93cm9uZycsCiAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+R2V0QXR0cignY2FwdGNoYV93cm9uZycsJG1vZC0+TGFuZygnd3JvbmdfY2FwdGNoYScpKSwzNSw4MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvcicsJG1vZC0+TGFuZygndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX25leHRfYnV0dG9uJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9uZXh0X2J1dHRvbicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9uZXh0X2J1dHRvbl90ZXh0JywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ25leHRfYnV0dG9uX3RleHQnLCRtb2QtPkxhbmcoJ2J1dHRvbl9jb250aW51ZScpKSwgMzUsIDM1KSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9yZXF1aXJlZF9zeW1ib2wnLAoJCQkgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfZm9ybWFfcmVxdWlyZWRfZmllbGRfc3ltYm9sJywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ3JlcXVpcmVkX2ZpZWxkX3N5bWJvbCcsJyonKSwgNTApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9saXN0X2RlbGltaXRlcicsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtYV9saXN0X2RlbGltaXRlcicsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwgNTApKTsKCiAgICAkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9yZWRpcmVjdF9wYWdlJywkY29udGVudG9wcy0+Q3JlYXRlSGllcmFyY2h5RHJvcGRvd24oJycsJHRoaXMtPkdldEF0dHIoJ3JlZGlyZWN0X3BhZ2UnLCcwJyksICRpZC4nZmJycF9mb3JtYV9yZWRpcmVjdF9wYWdlJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3RlbXBsYXRlJywKCQkJICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkJICAgICAgJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCR0aGlzLT5EZWZhdWx0VGVtcGxhdGUoKSksICdmYnJwX2Zvcm1hX2Zvcm1fdGVtcGxhdGUnLCcnLCdmYl9mb3JtX3RlbXBsYXRlJykpOwoJCQkJCSAgICAgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9yZXNwb25zZScsCgkJCSAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLAoJCQkJCSAgICAgICR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfcmVzcG9uc2UnLCcnKSwgJ2ZicnBfZm9ybWFfc3VibWl0X3Jlc3BvbnNlJywnbW9kdWxlX2ZiX2FyZWFfd2lkZScpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoZWxwX3N1Ym1pdF9yZXNwb25zZScsCgkJJHRoaXMtPkFkbWluVGVtcGxhdGVIZWxwKCRpZCwnZm9ybWFfc3VibWl0X3Jlc3BvbnNlJyx0cnVlLGZhbHNlKSk7CiAgICByZXR1cm4gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlKCdBZGRFZGl0Rm9ybS50cGwnKTsKICB9CgogICAgZnVuY3Rpb24gJk5ld0ZpZWxkKCYkcGFyYW1zKQogICAgICB7CgkvLyRhZWZpZWxkID0gbmV3IGZiRmllbGRCYXNlKCR0aGlzLCRwYXJhbXMpOwoJJGFlZmllbGQgPSBmYWxzZTsKICAgICAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmllbGRfaWQnXSkgJiYgJHBhcmFtc1snZmllbGRfaWQnXSAhPSAtMSApCgkgIHsKICAgICAgICAgICAgLy8gd2UncmUgbG9hZGluZyBhbiBleHRhbnQgZmllbGQKCSAgICAkc3FsID0gJ1NFTEVDVCB0eXBlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZmllbGRfaWQ9Pyc7CgkgICAgJHJzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCAkcGFyYW1zWydmaWVsZF9pZCddKSk7CgkgICAgaWYoJHJzICYmICRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCkpCgkgICAgICB7CQkJCQoJCWlmICgkcmVzdWx0Wyd0eXBlJ10gIT0gJycpCgkJICB7CgkJICAgICRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkcmVzdWx0Wyd0eXBlJ10gLCAnJyk7CgkJICAgICRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJCSAgICAkYWVmaWVsZC0+TG9hZEZpZWxkKCRwYXJhbXMpOwoJCSAgfQoJICAgICAgfQoJICB9CglpZiAoJGFlZmllbGQgPT09IGZhbHNlKQoJICB7CgkgICAgLy8gbmV3IGZpZWxkCgkgICAgaWYgKCEgaXNzZXQoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10pKQoJICAgICAgewoJCS8vIHVua25vd24gZmllbGQgdHlwZQoJCSRhZWZpZWxkID0gbmV3IGZiRmllbGRCYXNlKCR0aGlzLCRwYXJhbXMpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkvLyBzcGVjaWZpZWQgZmllbGQgdHlwZSB2aWEgcGFyYW1zCiAgICAgICAgICAgIAkkY2xhc3NOYW1lID0gJHRoaXMtPk1ha2VDbGFzc05hbWUoJHBhcmFtc1snZmJycF9maWVsZF90eXBlJ10sICcnKTsKICAgICAgICAgICAgCSRhZWZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJICAgICAgfQoJICB9CglyZXR1cm4gJGFlZmllbGQ7CiAgICAgIH0KCgoKICBmdW5jdGlvbiBBZGRFZGl0RmllbGQoJGlkLCAmJGFlZmllbGQsICRkaXNwb3NlX29ubHksICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgewogICAgJG1vZCA9ICR0aGlzLT5tb2R1bGVfcHRyOwoJCQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCRtZXNzYWdlKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdiYWNrdG9mb3JtX25hdicsJG1vZC0+Q3JlYXRlTGluaygkaWQsICdhZG1pbl9hZGRfZWRpdF9mb3JtJywgJHJldHVybmlkLCAkbW9kLT5MYW5nKCdsaW5rX2JhY2tfdG9fZm9ybScpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCkpKTsKICAgICRtYWluTGlzdCA9IGFycmF5KCk7CiAgICAkYWR2TGlzdCA9IGFycmF5KCk7CiAgICAkYmFzZUxpc3QgPSAkYWVmaWVsZC0+UHJlUG9wdWxhdGVCYXNlQWRtaW5Gb3JtKCRpZCwgJGRpc3Bvc2Vfb25seSk7CiAgICBpZiAoJGFlZmllbGQtPkdldEZpZWxkVHlwZSgpID09ICcnKQogICAgICB7CgkvLyBzdGlsbCBuZWVkIHR5cGUKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQpKTsJCQkKCSRmaWVsZExpc3QgPSBhcnJheSgnbWFpbic9PmFycmF5KCksJ2Fkdic9PmFycmF5KCkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIHdlIGhhdmUgb3VyIHR5cGUKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdGFydF9mb3JtJywkbW9kLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAkcmV0dXJuaWQpKTsJCgkkZmllbGRMaXN0ID0gJGFlZmllbGQtPlByZVBvcHVsYXRlQWRtaW5Gb3JtKCRpZCk7CiAgICAgIH0KICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdlbmRfZm9ybScsICRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYkhlYWRlcnMoKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcignbWFpbnRhYicsJG1vZC0+TGFuZygndGFiX21haW4nKSkuCgkJCSAkbW9kLT5TZXRUYWJIZWFkZXIoJ2FkdmFuY2VkdGFiJywkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKSkuCgkJCSAkbW9kLT5FbmRUYWJIZWFkZXJzKCkgLiAkbW9kLT5TdGFydFRhYkNvbnRlbnQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGFic19lbmQnLCRtb2QtPkVuZFRhYkNvbnRlbnQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWFpbnRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoIm1haW50YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYWR2YW5jZWR0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJhZHZhbmNlZHRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZW5kJywkbW9kLT5FbmRUYWIoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbm90aWNlX3NlbGVjdF90eXBlJywkbW9kLT5MYW5nKCdub3RpY2Vfc2VsZWN0X3R5cGUnKSk7CgogICAgaWYoJGFlZmllbGQtPkdldElkKCkgIT0gLTEpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcCcsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9vcCcsJG1vZC0+TGFuZygndXBkYXRlZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX2FlZl91cGQnLCAkbW9kLT5MYW5nKCd1cGRhdGUnKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcCcsJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9vcCcsICRtb2QtPkxhbmcoJ2FkZGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfYWVmX2FkZCcsICRtb2QtPkxhbmcoJ2FkZCcpKSk7CiAgICAgIH0KCiAgICBpZiAoJGFlZmllbGQtPkhhc0FkZE9wKCkpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnZmJycF9hZWZfb3B0YWRkJywkYWVmaWVsZC0+R2V0T3B0aW9uQWRkQnV0dG9uKCkpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkJywnJyk7CiAgICAgIH0KICAgIGlmICgkYWVmaWVsZC0+SGFzRGVsZXRlT3AoKSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2RlbCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdmYnJwX2FlZl9vcHRkZWwnLCRhZWZpZWxkLT5HZXRPcHRpb25EZWxldGVCdXR0b24oKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdkZWwnLCcnKTsKICAgICAgfQoKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZmJfaGlkZGVuJywgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCkgLiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmaWVsZF9pZCcsICRhZWZpZWxkLT5HZXRJZCgpKSAuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfb3JkZXJfYnknLCAkYWVmaWVsZC0+R2V0T3JkZXIoKSkuCgkJCSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ2ZicnBfc2V0X2Zyb21fZm9ybScsJzEnKSk7CgogICAgaWYgKC8qISRhZWZpZWxkLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgKi8gISRhZWZpZWxkLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncmVxdWlyYWJsZScsMSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3JlcXVpcmFibGUnLDApOwogICAgICB9CgkJCQogICAgaWYgKGlzc2V0KCRiYXNlTGlzdFsnbWFpbiddKSkKICAgICAgewoJZm9yZWFjaCAoJGJhc2VMaXN0WydtYWluJ10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHI9JGl0ZW1bMF07CgkgICAgJGlucHV0U3RyPSRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJG1haW5MaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0JCiAgICBpZiAoaXNzZXQoJGJhc2VMaXN0WydhZHYnXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRiYXNlTGlzdFsnYWR2J10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHIgPSAkaXRlbVswXTsKCSAgICAkaW5wdXRTdHIgPSAkaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRhZHZMaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0JCiAgICBpZiAoaXNzZXQoJGZpZWxkTGlzdFsnbWFpbiddKSkKICAgICAgewoJZm9yZWFjaCAoJGZpZWxkTGlzdFsnbWFpbiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyPSRpdGVtWzBdOwoJICAgICRpbnB1dFN0cj0kaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRtYWluTGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CiAgICBpZiAoaXNzZXQoJGZpZWxkTGlzdFsnYWR2J10pKQogICAgICB7Cglmb3JlYWNoICgkZmllbGRMaXN0WydhZHYnXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0cj0kaXRlbVswXTsKCSAgICAkaW5wdXRTdHI9JGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkYWR2TGlzdCwkb25lc2V0KTsKCSAgfQogICAgICB9CgkJCiAgICAkYWVmaWVsZC0+UG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCRtYWluTGlzdCwgJGFkdkxpc3QpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ21haW5MaXN0JywkbWFpbkxpc3QpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2Fkdkxpc3QnLCRhZHZMaXN0KTsKICAgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkZEVkaXRGaWVsZC50cGwnKTsKICB9CgogIGZ1bmN0aW9uIE1ha2VBbGlhcygkc3RyaW5nLCAkaXNGb3JtPWZhbHNlKQogIHsKICAgICRzdHJpbmcgPSB0cmltKGh0bWxzcGVjaWFsY2hhcnMoJHN0cmluZykpOwogICAgLy8kc3RyaW5nID0gcHJlZ19yZXBsYWNlKCIvW18tXFddKy8iLCAiXyIsICRzdHJpbmcpOwogICAgLy8kc3RyaW5nID0gdHJpbSgkc3RyaW5nLCAnXycpOwogICAgaWYgKCRpc0Zvcm0pCiAgICAgIHsKCXJldHVybiBzdHJ0b2xvd2VyKCRzdHJpbmcpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCXJldHVybiAnZmInLnN0cnRvbG93ZXIoJHN0cmluZyk7CiAgICAgIH0KICB9CiAgICAKICBmdW5jdGlvbiBTd2FwRmllbGRzQnlJbmRleCgkc3JjX2ZpZWxkX2luZGV4LCAkZGVzdF9maWVsZF9pbmRleCkKICB7CiAgICAkc3JjRmllbGQgPSAmJHRoaXMtPkdldEZpZWxkQnlJbmRleCgkc3JjX2ZpZWxkX2luZGV4KTsKICAgICRkZXN0RmllbGQgPSAmJHRoaXMtPkdldEZpZWxkQnlJbmRleCgkZGVzdF9maWVsZF9pbmRleCk7CiAgICAkdG1wT3JkZXJCeSA9ICRkZXN0RmllbGQtPkdldE9yZGVyKCk7CiAgICAkZGVzdEZpZWxkLT5TZXRPcmRlcigkc3JjRmllbGQtPkdldE9yZGVyKCkpOwogICAgJHNyY0ZpZWxkLT5TZXRPcmRlcigkdG1wT3JkZXJCeSk7CiAgICAvL2l0IHNlZW1zIHRoaXMgbWFrZXMgcGhwNCBnbyBjcmF6eSBmaXhlZCBieSByZWxvYWRpbmcgZm9ybSBiZWZvcmUgc2hvd2luZyBpdCBhZ2FpbgogICAgIyAgICAgICAgJHRoaXMtPkZpZWxkc1skZGVzdF9maWVsZF9pbmRleF0gPSAkc3JjRmllbGQ7CiAgICAjICAgICAgICAkdGhpcy0+RmllbGRzWyRzcmNfZmllbGRfaW5kZXhdID0gJGRlc3RGaWVsZDsKICAgICRzcmNGaWVsZC0+U3RvcmUoKTsKICAgICRkZXN0RmllbGQtPlN0b3JlKCk7CiAgfQoKICBmdW5jdGlvbiAmR2V0RmllbGRzKCkKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5GaWVsZHM7CiAgICB9CgogIGZ1bmN0aW9uICZHZXRGaWVsZEJ5SWQoJGZpZWxkX2lkKQogICAgewogICAgICAkaW5kZXggPSAtMTsKICAgICAgZm9yICgkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCgl7CgkgIGlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0SWQoKSA9PSAkZmllbGRfaWQpCgkgICAgewoJICAgICAgJGluZGV4ID0gJGk7CgkgICAgfQoJfQogICAgICBpZiAoJGluZGV4ICE9IC0xKQoJewoJICByZXR1cm4gJHRoaXMtPkZpZWxkc1skaW5kZXhdOwoJfQogICAgICBlbHNlCgl7CgkgIHJldHVybiBmYWxzZTsKCX0KICAgIH0KCiAgZnVuY3Rpb24gJkdldEZpZWxkQnlJbmRleCgkZmllbGRfaW5kZXgpCiAgICB7CiAgICAgIHJldHVybiAkdGhpcy0+RmllbGRzWyRmaWVsZF9pbmRleF07CiAgICB9CgoKICBmdW5jdGlvbiBHZXRGaWVsZEluZGV4RnJvbUlkKCRmaWVsZF9pZCkKICB7CiAgICAkaW5kZXggPSAtMTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldElkKCkgPT0gJGZpZWxkX2lkKQoJICB7CgkgICAgJGluZGV4ID0gJGk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRpbmRleDsKICB9CgoKICBmdW5jdGlvbiBEZWZhdWx0VGVtcGxhdGUoKQogIHsKICAgIHJldHVybiBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4nLy4uL3RlbXBsYXRlcy9SZW5kZXJGb3JtRGVmYXVsdC50cGwnKTsKICB9CgogIGZ1bmN0aW9uIERlbGV0ZUZpZWxkKCRmaWVsZF9pZCkKICB7CiAgICAkaW5kZXggPSAkdGhpcy0+R2V0RmllbGRJbmRleEZyb21JZCgkZmllbGRfaWQpOwogICAgaWYgKCRpbmRleCAhPSAtMSkKICAgICAgewoJJHRoaXMtPkZpZWxkc1skaW5kZXhdLT5EZWxldGUoKTsKCWFycmF5X3NwbGljZSgkdGhpcy0+RmllbGRzLCRpbmRleCwxKTsKICAgICAgfQogIH0gCgogIGZ1bmN0aW9uIFJlc2V0RmllbGRzKCkKICB7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CgkkdGhpcy0+RmllbGRzWyRpXS0+UmVzZXRWYWx1ZSgpOwogICAgICB9CiAgfQogICAgCiAgLy8gdGhpcyB3aWxsIGluc3RhbnRpYXRlIHRoZSBmb3JtLCBhbmQgbG9hZCB0aGUgcmVzdWx0cwogIGZ1bmN0aW9uIExvYWRSZXNwb25zZSgkcmVzcG9uc2VfaWQpCiAgewogICAgJGRiID0gJiR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKICAgIC8vIGxvYWRpbmcgYSByZXNwb25zZSAtLSBhdCB0aGlzIHBvaW50LCB3ZSBjaGVjayB0aGF0IHRoZSByZXNwb25zZQogICAgLy8gaXMgZm9yIHRoZSBjb3JyZWN0IGZvcm1faWQhCiAgICAkc3FsID0gJ1NFTEVDVCBmb3JtX2lkIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9yZXNwIHdoZXJlIHJlc3BfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0Wydmb3JtX2lkJ10gIT0gJHRoaXMtPkdldElkKCkpCgkgIHsKCSAgICByZXR1cm4gZmFsc2U7CgkgIH0KCQkgICAgCgkkdGhpcy0+UmVzZXRGaWVsZHMoKTsKCgkkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfcmVzcF92YWwgV0hFUkUgcmVzcF9pZD0/IG9yZGVyIGJ5IHJlc3BfdmFsX2lkJzsKCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCSAgewoJICAgICRpbmRleCA9ICR0aGlzLT5HZXRGaWVsZEluZGV4RnJvbUlkKCRyb3dbJ2ZpZWxkX2lkJ10pOwogICAgICAgICAgICBpZiggaXNfb2JqZWN0KCR0aGlzLT5GaWVsZHNbJGluZGV4XSkgKQogICAgICAgICAgICAgewoJICAgICAgICR0aGlzLT5GaWVsZHNbJGluZGV4XS0+U2V0VmFsdWUoJHJvd1sndmFsdWUnXSk7CiAgICAgICAgICAgICB9CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICB9ICAgCgogIGZ1bmN0aW9uIExvYWRSZXNwb25zZVZhbHVlcygmJHBhcmFtcykKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAvLyBsb2FkaW5nIGEgcmVzcG9uc2UgLS0gYXQgdGhpcyBwb2ludCwgd2UgY2hlY2sgdGhhdCB0aGUgcmVzcG9uc2UKICAgIC8vIGlzIGZvciB0aGUgY29ycmVjdCBmb3JtX2lkIQogICAgJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfcmVzcCB3aGVyZSByZXNwX2lkPT8nOwogICAgaWYoJHJlc3VsdCA9ICRkYi0+R2V0Um93KCRzcWwsIGFycmF5KCRwYXJhbXNbJ3Jlc3BvbnNlX2lkJ10pKSkKICAgICAgewoJaWYgKCRyZXN1bHRbJ2Zvcm1faWQnXSAhPSAkdGhpcy0+R2V0SWQoKSkKCSAgewoJICAgIHJldHVybiBmYWxzZTsKCSAgfQoJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX3Jlc3BfdmFsIFdIRVJFIHJlc3BfaWQ9PyBvcmRlciBieSByZXNwX3ZhbF9pZCc7CgkkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpOwoJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJICB7IC8vIHdhcyAnX18nCQkgICAgICAgIAkKCSAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSkgJiYKCQkhIGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0pKQoJICAgICAgewoJCSRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0gPSBhcnJheSgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dKTsKCQlhcnJheV9wdXNoKCRwYXJhbXNbJ2ZicnBfXycuJHJvd1snZmllbGRfaWQnXV0sICRyb3dbJ3ZhbHVlJ10pOwoJICAgICAgfQoJICAgIGVsc2VpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSkpCgkgICAgICB7CgkJYXJyYXlfcHVzaCgkcGFyYW1zWydmYnJwX18nLiRyb3dbJ2ZpZWxkX2lkJ11dLCAkcm93Wyd2YWx1ZSddKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHBhcmFtc1snZmJycF9fJy4kcm93WydmaWVsZF9pZCddXSA9ICRyb3dbJ3ZhbHVlJ107CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICB9ICAgCgogIGZ1bmN0aW9uIERlbGV0ZVJlc3BvbnNlKCRyZXNwb25zZV9pZCkKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfcmVzcF92YWwgd2hlcmUgcmVzcF9pZD0/JzsKICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CiAgICAkc3FsID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgcmVzcF9pZD0/JzsKICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CQogIH0KCiAgZnVuY3Rpb24gQ2hlY2tSZXNwb25zZSgkZm9ybV9pZCwgJHJlc3BvbnNlX2lkLCAkY29kZSkKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkc3FsID0gJ1NFTEVDVCBzZWNyZXRfY29kZSBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfcmVzcCB3aGVyZSBmb3JtX2lkPT8gYW5kIHJlc3BfaWQ9Pyc7CiAgICBpZigkcmVzdWx0ID0gJGRiLT5HZXRSb3coJHNxbCwgYXJyYXkoJGZvcm1faWQsJHJlc3BvbnNlX2lkKSkpCiAgICAgIHsKCWlmICgkcmVzdWx0WydzZWNyZXRfY29kZSddID09ICRjb2RlKQoJICB7CgkgICAgcmV0dXJuIHRydWU7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIFN0b3JlUmVzcG9uc2UoJHJlc3BvbnNlX2lkPS0xLCRhcHByb3Zlcj0nJykKICB7CiAgICAkZGIgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGU7CiAgICAkZmllbGRzID0gJiR0aGlzLT5HZXRGaWVsZHMoKTsKICAgICRzZWNyZXRfY29kZSA9ICcnOwogICAgJG5ld3JlYyA9IGZhbHNlOwogICAgaWYgKCRyZXNwb25zZV9pZCA9PSAtMSkKICAgICAgewoJJG5ld3JlYyA9IHRydWU7CiAgICAgIH0KICAgIGlmICgkbmV3cmVjKQogICAgICB7CgkvLyBzYXZpbmcgYSBuZXcgcmVzcG9uc2UKCSRzZWNyZXRfY29kZSA9IHN1YnN0cihtZDUoc2Vzc2lvbl9pZCgpLidfJy50aW1lKCkpLDAsNyk7CgkkcmVzcG9uc2VfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4gJ21vZHVsZV9mYl9yZXNwX3NlcScpOwoJJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAnbW9kdWxlX2ZiX3Jlc3AgKHJlc3BfaWQsIGZvcm1faWQsIHN1Ym1pdHRlZCwgc2VjcmV0X2NvZGUpJyAuCgkgICcgVkFMVUVTICg/LCA/LCA/LCA/KSc7CgkkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkcmVzcG9uc2VfaWQsCgkJCQkgICR0aGlzLT5HZXRJZCgpLAoJCQkJICAkdGhpcy0+Y2xlYW5fZGF0ZXRpbWUoJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpKSwKCQkJCSAgJHNlY3JldF9jb2RlKSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRhcHByb3ZlciAhPSAnJykKICAgICAgewoJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwIHNldCB1c2VyX2FwcHJvdmVkPT8gd2hlcmUgcmVzcF9pZD0/JzsKCSRyZXMgPSAkZGItPkV4ZWN1dGUoJHNxbCwKCQkJICAgIGFycmF5KCR0aGlzLT5jbGVhbl9kYXRldGltZSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkpLCRyZXNwb25zZV9pZCkpOwoJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJyxhcnJheSgkcmVzcG9uc2VfaWQsJGFwcHJvdmVyKSkpOwogICAgICB9CiAgICBpZiAoISAkbmV3cmVjKQogICAgICB7CgkvLyB1cGRhdGluZyBhbiBvbGQgcmVzcG9uc2UsIHNvIHdlIHB1cmdlIG9sZCB2YWx1ZXMKCSRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwX3ZhbCB3aGVyZSByZXNwX2lkPT8nOwoJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKTsKICAgICAgfQogICAgJHNxbCA9ICdJTlNFUlQgSU5UTyAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3BfdmFsIChyZXNwX3ZhbF9pZCwgcmVzcF9pZCwgZmllbGRfaWQsIHZhbHVlKScgLgogICAgICAnVkFMVUVTICg/LCA/LCA/LCA/KSc7CiAgICBmb3JlYWNoICgkZmllbGRzIGFzICR0aGlzRmllbGQpCiAgICAgIHsKCS8vIHNldCB0aGUgcmVzcG9uc2VfaWQgdG8gYmUgdGhlIGF0dHJpYnV0ZSBvZiB0aGUgZGF0YWJhc2UgZGlzcG9zaXRpb24KCWlmICgoJHRoaXNGaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJ0Rpc3Bvc2l0aW9uRGF0YWJhc2UnKXx8CgkJKCR0aGlzRmllbGQtPkdldEZpZWxkVHlwZSgpID09ICdEaXNwb3NpdGlvbkZvcm1Ccm93c2VyJykpCgkgIHsKCSAgICAkdGhpc0ZpZWxkLT5TZXRWYWx1ZSgkcmVzcG9uc2VfaWQpOwoJICB9CgllbHNlaWYgKCEgJHRoaXNGaWVsZC0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7CgkgICAgLy8gc2tpcCBpZiBub3QgYSBkaXNwbGF5YWJsZSBmaWVsZC4KCSAgICBjb250aW51ZTsKCSAgfQoJaWYgKCEgaXNfYXJyYXkoJHRoaXNGaWVsZC0+R2V0VmFsdWUoKSkpCgkgIHsKCSAgICAkc3RvcmUgPSBhcnJheSgpOwoJICAgIGFycmF5X3B1c2goJHN0b3JlLCR0aGlzRmllbGQtPkdldFZhbHVlKCkpOwoJICB9CgllbHNlCgkgIHsKCSAgICAkc3RvcmUgPSAkdGhpc0ZpZWxkLT5HZXRWYWx1ZSgpOwoJICB9Cglmb3JlYWNoICgkc3RvcmUgYXMgJHRoaXNGaWVsZFZhbCkKCSAgewoJICAgIGlmICgkdGhpc0ZpZWxkVmFsICE9PSBmYWxzZSkKCSAgICAgIHsKCQkkcmVzcF92YWxfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4KCQkJCQkgICdtb2R1bGVfZmJfcmVzcF92YWxfc2VxJyk7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkcmVzcF92YWxfaWQsJHJlc3BvbnNlX2lkLAoJCQkJCQkkdGhpc0ZpZWxkLT5HZXRJZCgpLCR0aGlzRmllbGRWYWwpKTsKCSAgICAgIH0KCSAgfSAKICAgICAgfQogICAgcmV0dXJuIGFycmF5KCRyZXNwb25zZV9pZCwkc2VjcmV0X2NvZGUpOwogIH0gICAKICAgIAoKICBmdW5jdGlvbiBTdG9yZVJlc3BvbnNlWE1MKCRyZXNwb25zZV9pZD0tMSwkYXBwcm92ZXI9JycsJHNvcnRmaWVsZDEsJHNvcnRmaWVsZDIsJHNvcnRmaWVsZDMsJHNvcnRmaWVsZDQsJHNvcnRmaWVsZDUpCiAgewogICAgJGRiID0gJiR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZTsKICAgICRzZWNyZXRfY29kZSA9ICcnOwogICAgJG5ld3JlYyA9IGZhbHNlOwoJJHhtbCA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sIC49ICI8cmVzcG9uc2UgZm9ybV9pZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCWZvcmVhY2goJHRoaXMtPkZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJCXsKCQkJJHhtbCAuPSAkdGhpc0ZpZWxkLT5FeHBvcnRYTUwodHJ1ZSk7CgkJfQoJJHhtbCAuPSAiPC9yZXNwb25zZT5cbiI7CgogICAgaWYgKCRyZXNwb25zZV9pZCA9PSAtMSkKICAgICAgewoJICAkbmV3cmVjID0gdHJ1ZTsKICAgICAgfQoKICAgIGlmICgkbmV3cmVjKQogICAgICB7CgkJLy8gc2F2aW5nIGEgbmV3IHJlc3BvbnNlCgkJJHNlY3JldF9jb2RlID0gc3Vic3RyKG1kNShzZXNzaW9uX2lkKCkuJ18nLnRpbWUoKSksMCw3KTsKCQkkcmVzcG9uc2VfaWQgPSAkZGItPkdlbklEKGNtc19kYl9wcmVmaXgoKS4gJ21vZHVsZV9mYl9mb3JtYnJvd3Nlcl9zZXEnKTsKCQkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgKGZicl9pZCwgZm9ybV9pZCwgc3VibWl0dGVkLCBzZWNyZXRfY29kZSwgaW5kZXhfa2V5XzEsIGluZGV4X2tleV8yLCBpbmRleF9rZXlfMywgaW5kZXhfa2V5XzQsIGluZGV4X2tleV81LCByZXNwb25zZSkgVkFMVUVTICg/LD8sPyw/LD8sPyw/LD8sPyw/KSc7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLAoJCQlhcnJheSgkcmVzcG9uc2VfaWQsCgkJCQkkdGhpcy0+R2V0SWQoKSwKCQkJCSR0aGlzLT5jbGVhbl9kYXRldGltZSgkZGItPkRCVGltZVN0YW1wKHRpbWUoKSkpLAoJCQkJJHNlY3JldF9jb2RlLAoJCQkJJHNvcnRmaWVsZDEsJHNvcnRmaWVsZDIsJHNvcnRmaWVsZDMsJHNvcnRmaWVsZDQsJHNvcnRmaWVsZDUsCgkJCQkkeG1sCgkJCSkpOwogICAgICB9CiAgICBlbHNlIGlmICgkYXBwcm92ZXIgIT0gJycpCiAgICAgIHsKCQkkc3FsID0gJ1VQREFURSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJCQknbW9kdWxlX2ZiX2Zvcm1yb3dzZXIgc2V0IHVzZXJfYXBwcm92ZWQ9PyB3aGVyZSBmYnJfaWQ9Pyc7CgkJJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLAoJCQkgICAgYXJyYXkoJHRoaXMtPmNsZWFuX2RhdGV0aW1lKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSksJHJlc3BvbnNlX2lkKSk7CgkJYXVkaXQoLTEsIChpc3NldCgkbmFtZSk/JG5hbWU6IiIpLCAkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJyxhcnJheSgkcmVzcG9uc2VfaWQsJGFwcHJvdmVyKSkpOwogICAgICB9CiAgICBpZiAoISAkbmV3cmVjKQogICAgICB7CgkgICRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IGluZGV4X2tleV8xPT8sIGluZGV4X2tleV8yPT8sIGluZGV4X2tleV8zPT8sIGluZGV4X2tleV80PT8sIGluZGV4X2tleV81PT8sIHJlc3BvbnNlPT8gd2hlcmUgZmJyX2lkPT8nOwoJICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkc29ydGZpZWxkMSwkc29ydGZpZWxkMiwkc29ydGZpZWxkMywkc29ydGZpZWxkNCwkc29ydGZpZWxkNSwkeG1sLCRyZXNwb25zZV9pZCkpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlc3BvbnNlX2lkLCRzZWNyZXRfY29kZSk7CiAgfSAgIAoKCiAgZnVuY3Rpb24gY2xlYW5fZGF0ZXRpbWUoJGR0KQogIHsKICAgIHJldHVybiBzdWJzdHIoJGR0LDEsc3RybGVuKCRkdCktMik7CiAgfQogIAogIGZ1bmN0aW9uIEV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzID0gZmFsc2UpCiAgewoJJHhtbHN0ciA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sc3RyIC49ICI8Zm9ybSBpZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0bmFtZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+TmFtZSkuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRhbGlhcz1cIiIuJHRoaXMtPkFsaWFzLiJcIj5cbiI7CiAgIGZvcmVhY2ggKCR0aGlzLT5BdHRycyBhcyAkdGhpc0F0dHJLZXk9PiR0aGlzQXR0clZhbHVlKQogICAgICB7CgkJJHhtbHN0ciAuPSAiXHRcdDxhdHRyaWJ1dGUga2V5PVwiJHRoaXNBdHRyS2V5XCI+PCFbQ0RBVEFbJHRoaXNBdHRyVmFsdWVdXT48L2F0dHJpYnV0ZT5cbiI7CgkJfQoJZm9yZWFjaCgkdGhpcy0+RmllbGRzIGFzICR0aGlzRmllbGQpCgkJewoJCQkkeG1sc3RyIC49ICR0aGlzRmllbGQtPkV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzKTsKCQl9CgkkeG1sc3RyIC49ICI8L2Zvcm0+XG4iOwoJcmV0dXJuICR4bWxzdHI7CiAgfQogIAogIGZ1bmN0aW9uIHNldEZpbmlzaGVkRm9ybVNtYXJ0eSgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+bW9kdWxlX3B0cjsKCSAgIAoJICAgICR0aGVGaWVsZHMgPSAmJHRoaXMtPkdldEZpZWxkcygpOwoJICAgICR1bnNwZWMgPSAkdGhpcy0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwoKCQkkZm9ybUluZm8gPSBhcnJheSgpOwoJCQoJICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGVGaWVsZHMpOyRpKyspCgkgICAgICB7CgkJCSRyZXBsVmFsID0gJHVuc3BlYzsKCQkJJHJlcGxWYWxzID0gYXJyYXkoKTsKCQkJaWYgKCR0aGVGaWVsZHNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJICAJCXsKCQkgICAgCQkkcmVwbFZhbCA9ICR0aGVGaWVsZHNbJGldLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKCQkgICAgCQlpZiAoJGh0bWxlbWFpbCkKCQkgICAgICAgIAkJewoJCQkJCQkvLyBhbGxvdyA8QlI+IGFzIGRlbGltaXRlciBvciBpbiBjb250ZW50CgkJCQkJCSRyZXBsVmFsID0gcHJlZ19yZXBsYWNlKCcvPGJyKFxzKSooXC8pKj4vaScsJ3xCUnwnLCRyZXBsVmFsKTsKCSAgICAgICAgICAgIAkJJHJlcGxWYWwgPSBodG1sc3BlY2lhbGNoYXJzKCRyZXBsVmFsKTsKCQkJCQkJJHJlcGxWYWwgPSBwcmVnX3JlcGxhY2UoJy9cfEJSXHwvJywnPGJyIC8+JywkcmVwbFZhbCk7CgkgICAgICAgICAgICAJCX0KCQkgICAgCQlpZiAoJHJlcGxWYWwgPT0gJycpCgkJICAgICAgCQkJewoJCQkJCQkkcmVwbFZhbCA9ICR1bnNwZWM7CgkJICAgICAgCQkJfQoJCSAgCQl9CgkJCgkJIAkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpcy0+TWFrZVZhcigkdGhlRmllbGRzWyRpXS0+R2V0TmFtZSgpKSwkcmVwbFZhbCk7CgkJIAkkbW9kLT5zbWFydHktPmFzc2lnbignZmxkXycuJHRoZUZpZWxkc1skaV0tPkdldElkKCksJHJlcGxWYWwpOwoJCQkkZmxkb2JqID0gJHRoZUZpZWxkc1skaV0tPkV4cG9ydE9iamVjdCgpOwoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPk1ha2VWYXIoJHRoZUZpZWxkc1skaV0tPkdldE5hbWUoKSkuJ19vYmonLCRmbGRvYmopOwoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLidfb2JqJywkZmxkb2JqKTsKCQkJaWYgKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpICE9ICcnKQoJCQkJewoJCSAgICAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCksJHJlcGxWYWwpOwoJCSAgICAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCkuJ19vYmonLCRmbGRvYmopOwoJCQkJfQoJICAgICAgfQoJCS8vIGdlbmVyYWwgZm9ybSBkZXRhaWxzCgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9mb3JtX25hbWUnLCR0aGlzLT5HZXROYW1lKCkpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZGF0ZScsZGF0ZSgncicpKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2hvc3QnLCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX3NvdXJjZV9pcCcsJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOwoJICAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl91cmwnLChlbXB0eSgkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pPyRtb2QtPkxhbmcoJ25vX3JlZmVycmVyX2luZm8nKTokX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZmJfdmVyc2lvbicsJG1vZC0+R2V0VmVyc2lvbigpKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignVEFCJywiXHQiKTsKCX0KICAgIAp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICdlbWFpbCc7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+VmFsdWUsIEVOVF9RVU9URVMpLAogICAgICAgICAgIDI1LDEyOCk7Cgl9CgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywkdGhpcy0+VmFsdWUpOwoJCQkJfQoJCQl9CgkJCgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXN3aXRjaCAoJHRoaXMtPlZhbGlkYXRpb25UeXBlKQoJCSAgewoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIH0KCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxOYW1lRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+VmFsdWUsIEVOVF9RVU9URVMpLAogICAgICAgICAgIDI1LDEyOCk7Cgl9CgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+VmFsdWUpOwoJCQkJfQoJCQl9CgkJCgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailSubjectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxTdWJqZWN0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+VmFsdWUsIEVOVF9RVU9URVMpLAogICAgICAgICAgIDI1LDEyOCk7Cgl9CgkKCWZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgkJCgkJZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKCQkJewoJCQkkcmVwbFZhbCA9ICcnOwoJCQlpZiAoJG90aGVyc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiBpc19zdWJjbGFzc19vZigkb3RoZXJzWyRpXSwnZmJEaXNwb3NpdGlvbkVtYWlsQmFzZScpKQoJCQkJewoJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfc3ViamVjdCcsJHRoaXMtPlZhbHVlKTsKCQkJCX0KCQkJfQoJCQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/HiddenField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkhpZGRlbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKCiAgZnVuY3Rpb24gZmJIaWRkZW5GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnSGlkZGVuRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDA7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignc21hcnR5X2V2YWwnLCcwJykgPT0gJzEnKQogICAgICB7CiAgICAgICR0aGlzLT5TZXRTbWFydHlFdmFsKHRydWUpOwogICAgICB9CiAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CiAgICAgIHJldHVybiAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJCSAgICR0aGlzLT5WYWx1ZSk7CgkJfQoJZWxzZQoJICAgewogICAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpKTsKICAgICAgfQogIH0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3ZhbHVlJywkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpLDI1LDEyOCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zbWFydHlfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zbWFydHlfZXZhbCcsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/LinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICAnTGlua0ZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJiBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR2YWwgPSAmJHRoaXMtPlZhbHVlOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR2YWwgPSBhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmsnLCcnKSwkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmtfdGl0bGUnLCcnKSk7CgkJCX0gCgkJJGZpZWxkRGlzcCA9IGFycmF5KCk7CgkJJHRoaXNCb3ggPSBuZXcgc3RkQ2xhc3MoKTsKCQkkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJykuJzwvbGFiZWw+JzsKCQkkdGhpc0JveC0+dGl0bGUgPSAkbW9kLT5MYW5nKCdsaW5rX2Rlc3RpbmF0aW9uJyk7CgkJJHRoaXNCb3gtPmlucHV0ID0gJHRoaXMtPlRleHRGaWVsZCgkaWQsICdfJy4kdGhpcy0+SWQuJ1tdJywgJHZhbFswXSwnJywnJywnaWQ9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18xIicpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiPicuJG1vZC0+TGFuZygnbGlua19sYWJlbCcpLic8L2xhYmVsPic7CgkJJHRoaXNCb3gtPnRpdGxlID0gJG1vZC0+TGFuZygnbGlua19sYWJlbCcpOwoJCSR0aGlzQm94LT5pbnB1dCA9ICR0aGlzLT5UZXh0RmllbGQoJGlkLCAnXycuJHRoaXMtPklkLidbXScsICR2YWxbMV0sJycsJycsJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiInKTsKCQlhcnJheV9wdXNoKCRmaWVsZERpc3AsICR0aGlzQm94KTsJCQkKCQlyZXR1cm4gJGZpZWxkRGlzcDsKCQkKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSB8fCAhIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJHJldCA9ICcnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAnPGEgaHJlZj0iJy4kdGhpcy0+VmFsdWVbMF0uJyI+Jy4kdGhpcy0+VmFsdWVbMV0uJzwvYT4nOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9CgoJfQoKCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAogICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVmYXVsdF9saW5rJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2RlZmF1bHRfbGluaycsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rJywnJyksMjUsMTI4KSksCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9saW5rX3RpdGxlJywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmtfdGl0bGUnLCcnKSwyNSwxMjgpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKfQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/classes/MultiselectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYk11bHRpc2VsZWN0RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKCWZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ011bHRpc2VsZWN0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDI7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspCgkJCQl7CgkJCQkkc29ydGVkWyRzdWJqZWN0c1skaV1dPSgkaSsxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWyRzdWJqZWN0c10gPSAnMSc7CgkJCX0KCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkdmFsID0gYXJyYXkoKTsKCQkJfQoJCWVsc2VpZiAoIWlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJHZhbCA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHZhbCA9ICR0aGlzLT5WYWx1ZTsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFNlbGVjdExpc3QoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHNvcnRlZCwkdmFsLCAkdGhpcy0+R2V0T3B0aW9uKCdsaW5lcycsJzMnKSwKICAgICAgICAgJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIicpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmVzX3RvX3Nob3cnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGluZXMnLCR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpLDEwLDEwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKCQkkdmFscyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fdmFsdWUnKTsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJCXsKCQkJCSR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc09uZSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCR2YWxzWyR0aGlzT25lIC0gMV0pOwoJCQkJfQoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJGZpZWxkUmV0KTsKCQkJCX0JCQkKCQkJfQoJCWVsc2UKCQkJewoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCQl9CgkJCX0KCQoJfQoKCWZ1bmN0aW9uIE9wdGlvbnNBc1hNTCgpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSR2YWxzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl92YWx1ZScpOwoJCSR4bWxzdHIgPSAiIjsKCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR0ZXN0ID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGVzdCA9ICR0aGlzLT5WYWx1ZTsKCQkJfQoJCWZvciAoJGk9MTskaTw9Y291bnQoJHZhbHMpOyRpKyspCgkJCXsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0PG9wdGlvbj5cbiI7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdFx0PG5hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpLTEpLiJdXT48L25hbWU+XG4iOwoJCQkkeG1sc3RyIC49ICJcdFx0XHRcdDxzZWxlY3RlZF92YWx1ZT48IVtDREFUQVsiLiR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fdmFsdWUnLCRpLTEpLiJdXT48L3NlbGVjdGVkX3ZhbHVlPlxuIjsKCQkJJGlzc2VsZWN0ZWQgPSAiZmFsc2UiOwoJCQlpZiAoaW5fYXJyYXkoJGktMSwkdGVzdCkpCgkJCQl7CgkJCQkkaXNzZWxlY3RlZCA9ICJ0cnVlIjsKCQkJCX0KCQkJJHhtbHN0ciAuPSAiXHRcdFx0XHQ8c2VsZWN0ZWQ+JGlzc2VsZWN0ZWQ8L3NlbGVjdGVkPlxuIjsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0PC9vcHRpb24+XG4iOwkKCQkJfQoJCXJldHVybiAkeG1sc3RyOwoJfQoKCQp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PageBreakField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlBhZ2VCcmVha0ZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiUGFnZUJyZWFrRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnUGFnZUJyZWFrRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gZmFsc2U7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJLy8kdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuX2lkKQoJewoJfQoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCQkvLyByZW1vdmUgdGhlICJoaWRlIG5hbWUiIGZpZWxkCgkJJGhpZGVJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkYWR2QXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWwnKSkKCQkJCXsKCQkJCSRhZHZBcnJheVskaV0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCQkkYWR2QXJyYXlbJGldLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJCX0KCQkJfQoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoJCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/ProvincePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiUHJvdmluY2VQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJFByb3ZpbmNlczsKCQoJZnVuY3Rpb24gZmJQcm92aW5jZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1Byb3ZpbmNlUGlja2VyRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgogICAgICAgICR0aGlzLT5Qcm92aW5jZXMgPSBhcnJheSgKICAgICAgICAiTm8gRGVmYXVsdCI9PicnLCJBbGJlcnRhIj0+IkFCIiwgIkJyaXRpc2ggQ29sdW1iaWEiPT4iQkMiLCAiTWFuaXRvYmEiPT4iTUIiLCAiTmV3IEJydW5zd2ljayI9PiJOQiIsIAogICAgICAgICJOZXdmb3VuZGxhbmQgYW5kIExhYnJhZG9yIj0+Ik5MIiwgIk5vcnRod2VzdCBUZXJyaXRvcmllcyI9PiJOVCIsICJOb3ZhIFNjb3RpYSI9PiJOUyIsICJOdW5hdnV0Ij0+Ik5VIiwgCiAgICAgICAgIk9udGFyaW8iPT4iT04iLCAiUHJpbmNlIEVkd2FyZCBJc2xhbmQiPT4iUEUiLCAiUXVlYmVjIj0+IlFDIiwgIlNhc2thdGNoZXdhbiI9PiJTSyIsICJZdWtvbiI9PiJZVCIpOwoKCX0KCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICcnOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJHJldCA9IGFycmF5X3NlYXJjaCgkdGhpcy0+VmFsdWUsJHRoaXMtPlByb3ZpbmNlcyk7CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoKCQl1bnNldCgkdGhpcy0+UHJvdmluY2VzWyRtb2QtPkxhbmcoJ25vX2RlZmF1bHQnKV0pOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHRoaXMtPlByb3ZpbmNlcyA9IGFycmF5X21lcmdlKGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpLCR0aGlzLT5Qcm92aW5jZXMpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR0aGlzLT5Qcm92aW5jZXMgPSBhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSwkdGhpcy0+UHJvdmluY2VzKTsKCQkJfQoKCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpICE9ICcnKQoJCSAgewoJCSAgJHRoaXMtPlNldFZhbHVlKCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSk7CgkJICB9CgoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkdGhpcy0+UHJvdmluY2VzLCAtMSwgJHRoaXMtPlZhbHVlLCdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyInKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJa3NvcnQoJHRoaXMtPlByb3ZpbmNlcyk7CgoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0JywKICAgICAgICAgICAgCQkkdGhpcy0+UHJvdmluY2VzLCAtMSwgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKICAgICAgICAgICAgCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/PulldownField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlB1bGxkb3duRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJdmFyICRvcHRpb25Db3VudDsKCXZhciAkb3B0aW9uQWRkOwoKICAgIGZ1bmN0aW9uIGFycmF5X3NvcnRfYnlfa2V5KCRpbnB1dCkKCXsKCQlpZiggIWlzX2FycmF5KCRpbnB1dCkgKSByZXR1cm47CgkJJGExID0gYXJyYXkoKTsKCQlmb3JlYWNoKCAkaW5wdXQgYXMgJGsgPT4gJHYgKSB7CgkJCSRhMVskdl0gPSAkazsKCQl9CgkJYXNvcnQoJGExKTsKCQkkYTIgPSBhcnJheSgpOwoJCWZvcmVhY2goICRhMSBhcyAkayA9PiAkdiApIHsKCQkJJGEyWyR2XSA9ICRrOwoJCX0KCQlyZXR1cm4gJGEyOwoJfQoKCWZ1bmN0aW9uIGZiUHVsbGRvd25GaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKCQkkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdQdWxsZG93bkZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgKTsKICAgICAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCgl7CgkJJHRoaXMtPm9wdGlvbkFkZCA9IDE7Cgl9CgoJZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCgl7CgkJJGRlbGNvdW50ID0gMDsKCQlmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKCQkJewoJCQlpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkJCQl7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJGRlbGNvdW50Kys7CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBjb3VudEl0ZW1zKCkKCXsKCQkJJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoJCQlpZiAoaXNfYXJyYXkoJHRtcCkpCgkJCQl7CgkgICAgICAgIAkkdGhpcy0+b3B0aW9uQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDE7CgkgICAgICAgIAl9CgkgICAgICAgIGVsc2UKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5vcHRpb25Db3VudCA9IDA7CgkgICAgICAgIAl9Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ29wdGlvbl9uYW1lJyk7CgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKSB7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykgewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCX0KCQkJaWYoICR0aGlzLT5HZXRPcHRpb24oJ3NvcnQnKSA9PSAnMScgKSB7CgkJCQlrc29ydCgkc29ydGVkKTsKCQkJfQoJCX0KCQllbHNlIHsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCX0KCgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykgewoJCQkvLyRzb3J0ZWQgPSBhcnJheV9tZXJnZShhcnJheSgnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHNvcnRlZCk7CgkJCSRzb3J0ZWQgPSBhcnJheSgnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJykgKyAkc29ydGVkOwoJCX0KCQllbHNlIHsKCQkJLy8kc29ydGVkID0gYXJyYXlfbWVyZ2UoYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCRzb3J0ZWQpOwoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyInKTsKCX0KCgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvcHQgPSAkdGhpcy0+R2V0T3B0aW9uKCdvcHRpb25fbmFtZScsJycpOwoJCQoJCWlmIChpc19hcnJheSgkb3B0KSkKCQkgIHsKCQkgICAgICAkbnVtID0gY291bnQoJG9wdCk7CgkJICB9CgkJZWxzZWlmICgkb3B0ICE9ICcnKQoJCQl7CgkJCSRudW0gPSAxOwoJCQl9CgkJZWxzZQoJCSAgewogICAgICAgICAgJG51bSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICRyZXQ9ICRtb2QtPkxhbmcoJ29wdGlvbnMnLCRudW0pOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEl0ZW1zKCk7CgkJaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQoJCQl7CgkJCSR0aGlzLT5vcHRpb25Db3VudCArPSAkdGhpcy0+b3B0aW9uQWRkOwoJCQkkdGhpcy0+b3B0aW9uQWRkID0gMDsKCQkJfQoJCSRkZXN0cyA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl90YWJsZSI+PHRyPjx0aD4nLiRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl9uYW1lJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX29wdGlvbl92YWx1ZScpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQoJCQl7CgkJCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfb3B0aW9uX25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl9uYW1lJywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfb3B0aW9uX3ZhbHVlW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fdmFsdWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgogICAgICAgICAgICAgCQknPC90ZD48L3RyPic7CgkJCX0KCQkkZGVzdHMgLj0gJzwvdGFibGU+JzsKCQkkbWFpbiA9IGFycmF5KCk7CgkJJGFkdiA9IGFycmF5KCk7CgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCgkJCQkJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpOwoJCSRtYWluW10gPSBhcnJheSgkbW9kLT5MYW5nKCdzb3J0X29wdGlvbnMnKSwKCQkJCQkJJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3NvcnQnLAoJCQkJCQkJCQkJCQkgIGFycmF5KCdZZXMnPT4xLCdObyc9PjApLC0xLAoJCQkJCQkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3NvcnQnLDApKSk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJyksJGRlc3RzKSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQoJCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX3ZhbHVlJywoJHRoaXMtPlZhbHVlLTEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIE9wdGlvbnNBc1hNTCgpCgl7CgkJJHZhbHMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignb3B0aW9uX3ZhbHVlJyk7CgkJJHhtbHN0ciA9ICIiOwoJCWZvciAoJGk9MTskaTw9Y291bnQoJHZhbHMpOyRpKyspCgkJCXsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0PG9wdGlvbj5cbiI7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdFx0PG5hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpLTEpLiJdXT48L25hbWU+XG4iOwoJCQkkeG1sc3RyIC49ICJcdFx0XHRcdDxzZWxlY3RlZF92YWx1ZT48IVtDREFUQVsiLiR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fdmFsdWUnLCRpLTEpLiJdXT48L3NlbGVjdGVkX3ZhbHVlPlxuIjsKCQkJJGlzc2VsZWN0ZWQgPSAiZmFsc2UiOwoJCQlpZiAoJHRoaXMtPlZhbHVlID09ICRpKQoJCQkJewoJCQkJJGlzc2VsZWN0ZWQgPSAidHJ1ZSI7CgkJCQl9CgkJCSR4bWxzdHIgLj0gIlx0XHRcdFx0PHNlbGVjdGVkPiRpc3NlbGVjdGVkPC9zZWxlY3RlZD5cbiI7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdDwvb3B0aW9uPlxuIjsJCgkJCX0KCQlyZXR1cm4gJHhtbHN0cjsKCX0KCQp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgkKICBmdW5jdGlvbiBmYlJhZGlvR3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnUmFkaW9Hcm91cEZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICR0aGlzLT5oYXNNdWx0aXBsZUZvcm1Db21wb25lbnRzID0gdHJ1ZTsKCiAgfQoKICBmdW5jdGlvbiBjb3VudEJveGVzKCkKICB7CiAgICAkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+b3B0aW9uQ291bnQgPSAxOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSR0aGlzLT5vcHRpb25Db3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICAgICRyZXQgPSAkbW9kLT5MYW5nKCdvcHRpb25zJywkdGhpcy0+b3B0aW9uQ291bnQpOwogICAgaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCiAgICAgIHsKCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwogICAgICB9CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnYWRkX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICByZXR1cm4gJG1vZC0+TGFuZygnZGVsZXRlX29wdGlvbnMnKTsKICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkaXNfc2V0ID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9pc19zZXQnKTsKICAgICRmaWVsZERpc3AgPSBhcnJheSgpOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKICAgICAgewoJJGxhYmVsID0gJyc7CgkkdGhpc0JveCA9IG5ldyBzdGRDbGFzcygpOwoJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkgIHsKCSAgICAkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJ18nLiRpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJICAgICR0aGlzQm94LT50aXRsZSA9ICRuYW1lc1skaV07CgkgIH0KCSRjaGVja192YWwgPSBmYWxzZTsKCWlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQoJICB7CgkgICAgJGNoZWNrX3ZhbCA9ICR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSsxKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgaWYgKGlzc2V0KCRpc19zZXRbJGldKSAmJiAkaXNfc2V0WyRpXSA9PSAneScpCgkgICAgICB7CgkJJGNoZWNrX3ZhbCA9IHRydWU7CgkgICAgICB9CQkJCQoJICB9CgkkdGhpc0JveC0+aW5wdXQgPSAnPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJyIgdmFsdWU9IicuKCRpKzEpLiciJzsKCWlmICgkY2hlY2tfdmFsKQoJICB7CgkgICAgJHRoaXNCb3gtPmlucHV0IC49ICcgY2hlY2tlZD0iY2hlY2tlZCInOwoJICB9CgkkdGhpc0JveC0+aW5wdXQgLj0gJyBpZD0iJy4kaWQuICdmYnJwX18nLiR0aGlzLT5JZC4nXycuJGkuJyIgLz4nOwoJYXJyYXlfcHVzaCgkZmllbGREaXNwLCAkdGhpc0JveCk7CiAgICAgIH0KICAgIHJldHVybiAkZmllbGREaXNwOwogIH0KCiAgZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSkKICAgICAgewoJICAgJHJldCA9ICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fY2hlY2tlZCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkgICAkcmV0ID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgICAgIH0KCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gJHJldDsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9CiAgfQoKCiAgZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPm9wdGlvbkFkZCA9IDE7CiAgfQoKICBmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKICB7CiAgICAkZGVsY291bnQgPSAwOwogICAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkdGhpc0tleT0+JHRoaXNWYWwpCiAgICAgIHsKCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJGRlbGNvdW50Kys7CgkgIH0KICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR5ZXNObyA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PiduJywkbW9kLT5MYW5nKCd5ZXMnKT0+J3knKTsKCiAgICAkdGhpcy0+Y291bnRCb3hlcygpOwogICAgaWYgKCR0aGlzLT5vcHRpb25BZGQgPiAwKQogICAgICB7CgkkdGhpcy0+b3B0aW9uQ291bnQgKz0gJHRoaXMtPm9wdGlvbkFkZDsKCSR0aGlzLT5vcHRpb25BZGQgPSAwOwogICAgICB9CiAgICAkYm94ZXMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9yYWRpb19sYWJlbCcpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9jaGVja2VkX3ZhbHVlJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLgogICAgICAnPC90aD48L3RyPic7CgoKICAgIGZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRib3hlcyAuPSAnPHRyPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX25hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9uYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9idXR0b25fY2hlY2tlZFtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9idXR0b25faXNfc2V0W10nLCAkeWVzTm8sIC0xLCAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYnV0dG9uX2lzX3NldCcsJGkpKS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9kZWxfJy4kaSwgJGksLTEpLgoJICAnPC90ZD48L3RyPic7CiAgICAgIH0KICAgICRib3hlcyAuPSAnPC90YWJsZT4nOwogICAgJG1haW4gPSBhcnJheSgKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscycpLCRib3hlcykKCQkgICk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9CgogIGZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIC8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCiAgICAkcmVxSW5kZXggPSAtMTsKICAgIGZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQogICAgICB7CglpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkgIHsKCSAgICAkcmVxSW5kZXggPSAkaTsKCSAgfQogICAgICB9CiAgICBpZiAoJHJlcUluZGV4ICE9IC0xKQogICAgICB7CglhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwogICAgICB9CiAgfQoKCiAgZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCiAgewogICAgJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25fY2hlY2tlZCcpOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKICAgICAgewoJaWYgKCRuYW1lc1skaV0gPT0gJycgJiYgJGNoZWNrZWRbJGldID09ICcnICkKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsICRpKTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCAkaSk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCAkaSk7CgkgICAgJGktLTsKCSAgfQogICAgICB9CiAgICAkdGhpcy0+Y291bnRCb3hlcygpOwogIH0KCglmdW5jdGlvbiBPcHRpb25zQXNYTUwoKQoJewoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25fbmFtZScpOwoJCWlmICghIGlzX2FycmF5KCRuYW1lcykpCgkJCXsKCQkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJCX0JCQoJCSRjaGVja2VkID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9jaGVja2VkJyk7CgkJaWYgKCEgaXNfYXJyYXkoJGNoZWNrZWQpKQoJCQl7CgkJCQkkY2hlY2tlZCA9IGFycmF5KCRjaGVja2VkKTsKCQkJfQoJCSR4bWxzdHIgPSAiIjsKCQlmb3IgKCRpPTE7JGk8PWNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQkkeG1sc3RyIC49ICJcdFx0XHQ8b3B0aW9uPlxuIjsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0XHQ8bmFtZT48IVtDREFUQVsiLiRuYW1lc1skaS0xXS4iXV0+PC9uYW1lPlxuIjsKCQkJJHhtbHN0ciAuPSAiXHRcdFx0XHQ8Y2hlY2tlZF92YWx1ZT48IVtDREFUQVsiLiRjaGVja2VkWyRpLTFdLiJdXT48L2NoZWNrZWRfdmFsdWU+XG4iOwoJCQkkaXNjaGVja2VkID0gImZhbHNlIjsKCQkJaWYgKCR0aGlzLT5GaW5kQXJyYXlWYWx1ZSgkaSkgIT09IGZhbHNlKQoJCQkJewoJCQkJJGlzY2hlY2tlZCA9ICJ0cnVlIjsKCQkJCX0KCQkJCgkJCSR4bWxzdHIgLj0gIlx0XHRcdFx0PGNoZWNrZWQ+JGlzY2hlY2tlZDwvY2hlY2tlZD5cbiI7CgkJCSR4bWxzdHIgLj0gIlx0XHRcdDwvb3B0aW9uPlxuIjsKCQkJfQoKCQlyZXR1cm4gJHhtbHN0cjsKCX0KCgp9Cgo/Pgo=]]></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+IldZIik7CgoJfQoKCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkcmV0ID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+U3RhdGVzKTsKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0JCQoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJdW5zZXQoJHRoaXMtPlN0YXRlc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSR0aGlzLT5TdGF0ZXMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSwkdGhpcy0+U3RhdGVzKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+U3RhdGVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPlN0YXRlcyk7CgkJCX0KCgoJCWlmICghICR0aGlzLT5IYXNWYWx1ZSgpICYmICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSAhPSAnJykKCQkgIHsKCQkgICR0aGlzLT5TZXRWYWx1ZSgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JywnJykpOwoJCSAgfQoKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5WYWx1ZSwnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLiciJyk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5TdGF0ZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+TGFuZygnc2VsZWN0X29uZScpKSkpCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/StaticTextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN0YXRpY1RleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN0YXRpY1RleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdTdGF0aWNUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwoJCSR0aGlzLT5Ob25SZXF1aXJhYmxlRmllbGQgPSB0cnVlOwoJCSR0aGlzLT5IYXNMYWJlbCA9IDA7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KCk7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CiAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzbWFydHlfZXZhbCcsJzAnKSA9PSAnMScpCiAgICAgICAgIHsKICAgICAgICAgJHRoaXMtPlNldFNtYXJ0eUV2YWwodHJ1ZSk7CiAgICAgICAgIH0KCQlyZXR1cm4gJHRoaXMtPkdldE9wdGlvbigndGV4dCcsJycpOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCd0ZXh0X2xlbmd0aCcsc3RybGVuKCR0aGlzLT5HZXRPcHRpb24oJ3RleHQnLCcnKSkpOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJHJldCA9ICdbc3RhdGljIHRleHQgZmllbGRdJzsKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0JCQoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3RleHQnKSwKCQkJCSRtb2QtPkNyZWF0ZVRleHRBcmVhKChnZXRfcHJlZmVyZW5jZShnZXRfdXNlcmlkKCksICd1c2Vfd3lzaXd5ZycpPT0nMScpLCAkZm9ybURlc2NyaXB0b3IsICAkdGhpcy0+R2V0T3B0aW9uKCd0ZXh0JywnJyksICdmYnJwX29wdF90ZXh0JywncGFnZWhlYWR0YWdzJykpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zbWFydHlfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zbWFydHlfZXZhbCcsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/SystemLinkField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlN5c3RlbUxpbmtGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlN5c3RlbUxpbmtGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICAnU3lzdGVtTGlua0ZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSR0aGlzTGluayA9IG5ldyBzdGRDbGFzcygpOwoJCWdsb2JhbCAkZ0NtczsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignYXV0b19saW5rJywnMCcpID09ICcxJykKCQkJewoJCQkkcGFnZWluZm8gPSAkZ0Ntcy0+dmFyaWFibGVzWydwYWdlaW5mbyddOwoJCQkkdGhpc0xpbmstPmlucHV0ID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5DcmVhdGVDb250ZW50TGluaygkcGFnZWluZm8tPmNvbnRlbnRfaWQsICRwYWdlaW5mby0+Y29udGVudF90aXRsZSk7CgkJCSR0aGlzTGluay0+bmFtZSA9ICRwYWdlaW5mby0+Y29udGVudF90aXRsZTsKCQkJJHRoaXNMaW5rLT50aXRsZSA9ICRwYWdlaW5mby0+Y29udGVudF90aXRsZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKICAgIAkJJGNvYmogPSAkY29udGVudG9wcy0+TG9hZENvbnRlbnRGcm9tSWQoJHRoaXMtPkdldE9wdGlvbigndGFyZ2V0X3BhZ2UnLCcwJykpOwoJCQkkdGhpc0xpbmstPmlucHV0ID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5DcmVhdGVDb250ZW50TGluaygkY29iai0+SWQoKSwgJGNvYmotPk5hbWUoKSk7CgkJCSR0aGlzTGluay0+bmFtZSA9ICRjb2JqLT5OYW1lKCk7CgkJCSR0aGlzTGluay0+dGl0bGUgPSAkY29iai0+TmFtZSgpOwoJCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzTGluayk7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2F1dG9fbGluaycsJzAnKSA9PSAnMScpCgkJCXsKCQkJJHBhZ2VpbmZvID0gJGdDbXMtPnZhcmlhYmxlc1sncGFnZWluZm8nXTsKCQkJJHJldCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0ci0+Q3JlYXRlQ29udGVudExpbmsoJHBhZ2VpbmZvLT5jb250ZW50X2lkLCAkcGFnZWluZm8tPmNvbnRlbnRfdGl0bGUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRjb250ZW50b3BzID0mICRnQ21zLT5HZXRDb250ZW50T3BlcmF0aW9ucygpOwogICAgCQkkY29iaiA9ICRjb250ZW50b3BzLT5Mb2FkQ29udGVudEZyb21JZCgkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJzAnKSk7CgkJCSRyZXQgPSAkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHItPkNyZWF0ZUNvbnRlbnRMaW5rKCRjb2JqLT5JZCgpLCAkY29iai0+TmFtZSgpKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIAlnbG9iYWwgJGdDbXM7CiAgICAJJGNvbnRlbnRvcHMgPSYgJGdDbXMtPkdldENvbnRlbnRPcGVyYXRpb25zKCk7CgoJCSRtYWluID0gYXJyYXkoCgkJIAkJIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9hdXRvX2xpbmsnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdhdXRvX2xpbmsnLCcwJykpLiRtb2QtPkxhbmcoJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnKSksCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJyksCgkJCQkgCSRjb250ZW50b3BzLT5DcmVhdGVIaWVyYXJjaHlEcm9wZG93bignJywkdGhpcy0+R2V0T3B0aW9uKCd0YXJnZXRfcGFnZScsJycpLCAkZm9ybURlc2NyaXB0b3IuJ2ZicnBfb3B0X3RhcmdldF9wYWdlJykpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextAreaField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlndGggKGMpMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiVGV4dEFyZWFGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRBcmVhRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwoJCSRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRBcmVhRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICk7CgoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJeyAgICAgICAgICAgIAoJICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CQogICAgICAgJHJldCA9ICRtb2QtPkNyZWF0ZVRleHRBcmVhKCR0aGlzLT5HZXRPcHRpb24oJ3d5c2l3eWcnLCcwJykgPT0gJzEnP3RydWU6ZmFsc2UsCgkJCQkgICAkaWQsICAoJHRoaXMtPlZhbHVlPyR0aGlzLT5WYWx1ZTokdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JykpLAoJCQkJICAgJ2ZicnBfXycuJHRoaXMtPklkLCcnLCRpZC4nZmJycF9fJy4kdGhpcy0+SWQsCiAgICAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpLCR0aGlzLT5HZXRPcHRpb24oJ3Jvd3MnLCcxNScpKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKT09MSkKCQkJewoJCQkkcmV0IC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCQkJJHJldCAuPSAiXG52YXIgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciLiRpZC4iZmJycF9fIi4kdGhpcy0+SWQuIicpO1xuIjsKCQkJJHJldCAuPSAiaWYgKGYpXG57XG5mLm9uY2xpY2s9ZnVuY3Rpb24oKXtcbmlmICh0aGlzLnZhbHVlPT0nIjsKCQkJJHJldCAuPSBwcmVnX3JlcGxhY2UoJy8oXHIpP1xuLycsJ1xcbicsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpKS4iJykge3RoaXMudmFsdWU9Jyc7fVxufVxuIjsKCQkJJHJldCAuPSAifVxuOyI7CgkJCSRyZXQgLj0gIjwvc2NyaXB0PlxuIjsKCQkJfQoKCQlyZXR1cm4gJHJldDsKCS8vQ3JlYXRlVGV4dEFyZWEoJGVuYWJsZXd5c2l3eWcsICRpZCwgJHRleHQsICRuYW1lLCAkY2xhc3NuYW1lPScnLCAkaHRtbGlkPScnLCAkZW5jb2Rpbmc9JycsICRzdHlsZXNoZWV0PScnLCAkd2lkdGg9JzgwJywgJGNvbHM9JzE1JywkZm9yY2V3eXNpd3lnPSIiLCR3YW50ZWRzeW50YXg9IiIpCgogICB9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICcnOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgPSBhcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJCSBpZiAoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMScpCgkJIAl7CgkJIAkkcmV0IC49ICcgd3lzaXd5Zyc7CgkJIAl9CgkJIGVsc2UKCQkgCXsKCQkgCSRyZXQgLj0gJyBub24td3lzaXd5Zyc7CgkJIAl9CgkJICRyZXQgLj0gICcsICcuJG1vZC0+TGFuZygncm93cycsJHRoaXMtPkdldE9wdGlvbigncm93cycsJzE1JykpOwoJCSAkcmV0IC49ICAnLCAnLiRtb2QtPkxhbmcoJ2NvbHMnLCR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpKTsKCQkgcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJICAgJG1haW4gPSBhcnJheSgKICAgICAgICAgCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VzZV93eXNpd3lnJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF93eXNpd3lnJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0YXJlYV9yb3dzJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3Jvd3MnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3Jvd3MnLCcxNScpLDUsNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0YXJlYV9jb2xzJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NvbHMnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpLDUsNSkpCiAgICAgICAgICAgICApOwoJICAgJGFkdiA9IGFycmF5KGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnKSwKCQkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsCgkJCQkJCQkJICAgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksCgkJCQkJCQkJICAgJ2ZicnBfb3B0X2RlZmF1bHQnCgkJCQkgICAgICAgICAgICAgICApKSwKCQkJCQkKCQkJCQkKCQkJCQkKICAgICAgCQkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0JyksCgkJIAkJIAlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSkuJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykKCQkJCQkpKSk7CgogICAgICAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fdXNwaG9uZScpPT4ndXNwaG9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwKCQkJCSAgICAoJHRoaXMtPlZhbHVlPyR0aGlzLT5WYWx1ZTokdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JykpLAogICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKTwyNT8kdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKToyNSwKICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyksCiAgICAgICAgICAgICgkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpPT0xPygnb25jbGljaz0iaWYgKHRoaXMudmFsdWU9PVwnJy4kdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JykuJ1wnKSB7dGhpcy52YWx1ZT1cJ1wnO30iJyk6JycpKTsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCSAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICRyZXQgPSAkbW9kLT5MYW5nKCdhYmJyZXZpYXRpb25fbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpKTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9tYXhpbXVtX2xlbmd0aCcpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJICAgICdmYnJwX29wdF9sZW5ndGgnLAoJCQkgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpLDI1LDI1KSkKCQkpOwoJCSRhZHYgPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVnZXgnKSwKCQkJICAgICAgYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJCQkgICdmYnJwX29wdF9yZWdleCcsCgkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JyksMjUsMjU1KSwkbW9kLT5MYW5nKCd0aXRsZV9yZWdleF9oZWxwJykpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZScpLAoJCQkgICAgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJCSAgJ2ZicnBfb3B0X2RlZmF1bHQnLAoJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksMjUsMjU1KSksCiAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHQnKSwKCQkgCQkgCWFycmF5KCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfY2xlYXJfZGVmYXVsdCcsJzAnKS4kbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCdjbGVhcl9kZWZhdWx0JywnMCcpKSwKICAgICAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCcpKSkJCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnbm9uZSc6CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ251bWVyaWMnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZHRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgIAkhIHByZWdfbWF0Y2goIi9eKFtcZF0pKyQvaSIsICR0aGlzLT5WYWx1ZSkgfHwKICAgICAgICAgICAgICAgICAgICAgIGludHZhbCgkdGhpcy0+VmFsdWUpICE9ICR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZHRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAndXNwaG9uZSc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goJ14oWzAtOV1bXHNcLi1dPyk/KFwoP1swLTldezN9XCk/fFswLTldezN9KVtcc1wuLV0/KFswLTldezN9W1xzXC4tXT9bMC05XXs0fXxbYS16QS1aMC05XXs3fSkoXHM/KHh8ZXh0fGV4dC4pXHM/W2EtekEtWjAtOV0rKT8kJywKICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX3Bob25lJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goJHRoaXMtPkdldE9wdGlvbigncmVnZXgnLCcvLiovJyksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9ub21hdGNoJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICB9CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkgPiAwICYmIHN0cmxlbigkdGhpcy0+VmFsdWUpID4gJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSkKCQkJewoJCQkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJCSR0aGlzLT52YWxpZHRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKTsKCQkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TextFieldExpandable.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZEV4cGFuZGFibGUgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0RmllbGRFeHBhbmRhYmxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRGaWVsZEV4cGFuZGFibGUnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SGFzVXNlckFkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzVXNlckRlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJIC8vZGVidWdfZGlzcGxheSgkdGhpcy0+VmFsdWUpOwoKICAgICBpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJICAgICAgewoJICAgICAgJHZhbHMgPSAxOwoJICAgICAgfQoJICBlbHNlCgkgICAgICB7CgkgICAgICAkdmFscyA9IGNvdW50KCR0aGlzLT5WYWx1ZSk7CgkgICAgICB9CiAgICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHBLZXk9PiRwVmFsKQogICAgICAgICB7CiAgICAgICAgIGlmIChzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZVhfJykKICAgICAgICAgICAgewogICAgICAgICAgICAkcHRzID0gZXhwbG9kZSgnXycsJHBLZXkpOwogICAgICAgICAgICBpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLy8gZXhwYW5kCiAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZVskdmFsc109Jyc7CiAgICAgICAgICAgICAgICR2YWxzKys7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChzdWJzdHIoJHBLZXksMCw5KSA9PSAnZmJycF9GZURfJykKICAgICAgICAgICAgewogICAgICAgICAgICAkcHRzID0gZXhwbG9kZSgnXycsJHBLZXkpOwogICAgICAgICAgICBpZiAoJHB0c1syXSA9PSAkdGhpcy0+SWQpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgLy8gZGVsZXRlIHJvdwogICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPlZhbHVlWyRwdHNbMl1dKSkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBhcnJheV9zcGxpY2UoJHRoaXMtPlZhbHVlLCAkcHRzWzJdLCAxKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAkdmFscy0tOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQoKCSAgJHJldCA9IGFycmF5KCk7CgkgIGZvciAoJGk9MDskaTwkdmFsczskaSsrKQoJICAgIHsKCSAgICAkdGhpc1JvdyA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICR0aGlzUm93LT5uYW1lID0gJyc7CiAgICAgICAgJHRoaXNSb3ctPnRpdGxlID0gJyc7CgkgICAgJHRoaXNSb3ctPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCgkJCQkgICAgICAgJHRoaXMtPlZhbHVlWyRpXSwKICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk8MjU/JHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk6MjUsCiAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpKTsKICAgICAgICAkdGhpc1Jvdy0+b3AgPSAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX0ZlRF8nLiR0aGlzLT5JZC4nXycuJGksICR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJykpOwogICAgICAgIGFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwogICAgICAgIH0KICAgICAgJHRoaXNSb3cgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgJHRoaXNSb3ctPm5hbWUgPSAnJzsKICAgICAgJHRoaXNSb3ctPnRpdGxlID0gJyc7CiAgICAgICR0aGlzUm93LT5pbnB1dCA9ICcnOwogICAgICAkdGhpc1Jvdy0+b3AgPSAkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX0ZlWF8nLiR0aGlzLT5JZCwgJHRoaXMtPkdldE9wdGlvbignYWRkX2J1dHRvbicsJysnKSk7CiAgICAgIGFycmF5X3B1c2goJHJldCwgJHRoaXNSb3cpOwogICAgICByZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCSAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkgICRyZXQgPSAkbW9kLT5MYW5nKCdhYmJyZXZpYXRpb25fbGVuZ3RoJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLCc4MCcpKTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQkgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmcgPSB0cnVlKQoJewoJCSRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKICAgICAgaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgICAgIHsKCSAgICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgICAgICB9CglpZiAoJGFzX3N0cmluZykKCQl7CgkJcmV0dXJuIGpvaW4oJGZvcm0tPkdldEF0dHIoJ2xpc3RfZGVsaW1pdGVyJywnLCcpLCR0aGlzLT5WYWx1ZSk7CgkJfQoJZWxzZQoJCXsKCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJfQoJfQoKCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fbGVuZ3RoJyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgICAgJ2ZicnBfb3B0X2xlbmd0aCcsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJyksMjUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfYWRkX2J1dHRvbl90ZXh0JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfYWRkX2J1dHRvbicsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2FkZF9idXR0b24nLCcrJyksMTUsMjUpKSwKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGVsX2J1dHRvbl90ZXh0JyksCgkJCSAgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAnZmJycF9vcHRfZGVsX2J1dHRvbicsCgkJCSAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2RlbF9idXR0b24nLCdYJyksMTUsMjUpKQoJCSk7CgkJJGFkdiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZWdleCcpLAoJCQkgICAgICBhcnJheSgkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkJCSAgJ2ZicnBfb3B0X3JlZ2V4JywKCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbigncmVnZXgnKSwyNSwyNTUpLCRtb2QtPkxhbmcoJ3RpdGxlX3JlZ2V4X2hlbHAnKSkpCQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJICAgIHsKCQkgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkgICAgfQoJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc1ZhbCkKCQkgICAgewoJCSAgICBzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgICAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX251bWJlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdpbnRlZ2VyJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAJISBwcmVnX21hdGNoKCIvXihbXGRdKSskL2kiLCAkdGhpc1ZhbCkgfHwKICAgICAgICAgICAgICAgICAgICAgIGludHZhbCgkdGhpc1ZhbCkgIT0gJHRoaXNWYWwpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2ludGVnZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpc1ZhbCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbm9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX21hdGNoKCR0aGlzLT5HZXRPcHRpb24oJ3JlZ2V4JywnLy4qLycpLCAkdGhpc1ZhbCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIH0KCQlpZiAoJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSA+IDAgJiYgc3RybGVuKCR0aGlzVmFsKSA+ICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsMCkpCgkJCXsKCQkJJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCQkkdGhpcy0+dmFsaWR0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX25vX2xvbmdlcicsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSk7CgkJCX0KCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZHRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TimePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRpbWVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGZsYWcxMmhvdXI7CgkKCWZ1bmN0aW9uIGZiVGltZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RpbWVQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmZsYWcxMmhvdXIgPSBhcnJheSgKCQkgIAkkbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpPT4kbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpLAogICAgICAgIAkkbW9kLT5MYW5nKCd0aXRsZV9hZnRlcl9ub29uJyk9PiRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKSk7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gZmFsc2U7Cgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnPyRtb2QtPkxhbmcoJzEyX2hvdXInKTokbW9kLT5MYW5nKCcyNF9ob3VyJykpOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICRub3cgPSBsb2NhbHRpbWUodGltZSgpLHRydWUpOwogICAgICAgJE1pbnMgPSBhcnJheSgpOwogICAgICAgJEhvdXJzID0gYXJyYXkoKTsKICAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAgZm9yICgkaT0wOyRpPDYwOyRpKyspCiAgICAgICAJewoJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCSRNaW5zWyRtb109JG1vOwoJCQl9CiAgICAgICBpZiAoJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSA9PSAnMCcpCiAgICAgICAJCXsKICAgICAgIAkJZm9yICgkaT0xOyRpPDEzOyRpKyspCiAgICAgICAJCXsKCQkJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCQkJJEhvdXJzWyRtb109JG1vOwoJCQkJfQoJCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCQl7CgkJCQkkbm93Wyd0bV9ob3VyJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKTsKCQkJCSRub3dbJ21lcmlkJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsKCQkJCSRub3dbJ3RtX21pbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSRub3dbJ21lcmlkJ10gPSAkbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpOwoJCQkJaWYgKCRub3dbJ3RtX2hvdXInXSA+IDEyKQoJCQkJCXsKCQkJCQkkbm93Wyd0bV9ob3VyJ10gLT0gMTI7CgkJCQkJJG5vd1snbWVyaWQnXSA9ICRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKTsKCQkJCQl9CgkJCQllbHNlaWYgKCRub3dbJ3RtX2hvdXInXSA9PSAwKQoJCQkJCXsKCQkJCQkkbm93Wyd0bV9ob3VyJ10gPSAxMjsKCQkJCQl9CgkJCQl9CgogICAgICAgICAgICAkaHIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJGhyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRIb3VycywgLTEsICRub3dbJ3RtX2hvdXInXSwnaWQ9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18xIicpOwogICAgICAgCQkkaHItPnRpdGxlID0gJG1vZC0+TGFuZygnaG91cicpOwogICAgICAgCQkkaHItPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzEiPicuJG1vZC0+TGFuZygnaG91cicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJGhyKTsKICAgICAgIAkJCiAgICAgICAgICAgICRtaW4gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG1pbi0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkTWlucywgLTEsICRub3dbJ3RtX21pbiddLCdpZD0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiJyk7CiAgICAgICAJCSRtaW4tPnRpdGxlID0gJG1vZC0+TGFuZygnbWluJyk7CiAgICAgICAJCSRtaW4tPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiPicuJG1vZC0+TGFuZygnbWluJykuJzwvbGFiZWw+JzsKICAgICAgIAkJYXJyYXlfcHVzaCgkcmV0LCAkbWluKTsKCiAgICAgICAgICAgICRtZXIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG1lci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkdGhpcy0+ZmxhZzEyaG91ciwgLTEsICRub3dbJ21lcmlkJ10sICdpZD0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzMiJyk7CiAgICAgICAgICAgICRtZXItPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzMiPicuJG1vZC0+TGFuZygnbWVyaWQnKS4nPC9sYWJlbD4nOwogICAgICAgICAgICAkbWVyLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21lcmlkJyk7CiAgICAgICAgICAgIGFycmF5X3B1c2goJHJldCwkbWVyKTsKICAgICAgICAgICAgcmV0dXJuICRyZXQ7CiAgICAgICAJCX0KICAgICAgIGVsc2UKICAgICAgIAkJewogICAgICAgCQlmb3IgKCRpPTA7JGk8MjQ7JGkrKykKICAgICAgIAkJewoJCQkJCSRtbyA9IHNwcmludGYoIiUwMmQiLCRpKTsKCQkJCQkkSG91cnNbJG1vXT0kbW87CgkJCQl9CgoJCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCQl7CgkJCQkkbm93Wyd0bV9ob3VyJ10gPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKTsKCQkJCSRub3dbJ3RtX21pbiddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMSk7CgkJCQl9CiAgICAgICAgICAgICRociA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkaHItPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAogICAgICAgCQkJJEhvdXJzLCAtMSwgJG5vd1sndG1faG91ciddLCdpZD0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzEiJyk7CiAgICAgICAJCSRoci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdob3VyJyk7CiAgICAgICAJCSRoci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdob3VyJykuJzwvbGFiZWw+JzsKICAgICAgIAkJYXJyYXlfcHVzaCgkcmV0LCAkaHIpOwogICAgICAgCQkKICAgICAgICAgICAgJG1pbiA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkbWluLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRNaW5zLCAtMSwgJG5vd1sndG1fbWluJ10sJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiInKTsKICAgICAgIAkJJG1pbi0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtaW4nKTsKICAgICAgIAkJJG1pbi0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiI+Jy4kbW9kLT5MYW5nKCdtaW4nKS4nPC9sYWJlbD4nOwogICAgICAgCQlhcnJheV9wdXNoKCRyZXQsICRtaW4pOwoKICAgICAgICAgICAgcmV0dXJuICRyZXQ7CiAgICAgICAJCX0KCgoJfQoKICAgZnVuY3Rpb24gQ29tcGFyZVRvKCR2YWwpCiAgIHsKICAgICAgJHR0ID0gMDsKICAgICAgJG90ID0gMDsKICAgICAgaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSR0dCA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApICogNjAgKyAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJfQoJCSRvID0gJHZhbC0+R2V0VmFsdWUoKTsKICAgICAgaWYgKCRvLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRvdCA9ICRvLT5HZXRBcnJheVZhbHVlKDApICogNjAgKyAkby0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJfQogICAgICBpZiAoJHR0ID09ICRvdCkKICAgICAgICAgewogICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICByZXR1cm4gKCR0dCA8ICRvdCkgPyAtMSA6IDE7CiAgIH0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICgkdGhpcy0+SGFzVmFsdWUoKSkKCQkJewoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSA9PSAnMCcpCgkJCQl7CgkJCQkkcmV0ID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkuJzonLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDEpLicgJy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgyKTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHJldCA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDApLic6Jy4KCQkJCQkkdGhpcy0+R2V0QXJyYXlWYWx1ZSgxKTsKCQkJCX0KCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQoJCWlmICgkYXNfc3RyaW5nKQoJCQl7CgkJCXJldHVybiAkcmV0OwoJCQl9CgkJZWxzZQoJCQl7CgkJCXJldHVybiBhcnJheSgkcmV0KTsKCQkJfQoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV8yNF9ob3VyJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF8yNF9ob3VyJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignMjRfaG91cicsJzAnKSkpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/UniqueIntegerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwOCBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDggYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlVuaXF1ZUludGVnZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiVW5pcXVlSW50ZWdlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdVbmlxdWVJbnRlZ2VyRmllbGQnOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewogICAgICAkcmV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCQkgICAkdGhpcy0+VmFsdWUpOwoJICBpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd190b191c2VyJywnMCcpID09ICcxJykKCQkgewoJCSAkcmV0IC49ICR0aGlzLT5WYWx1ZTsKCQkgfQoJICB9CgllbHNlCgkgICB7CgkgICAkZGIgPSAmJG1vZC0+ZGJIYW5kbGU7CgkgICAkc2VxID0gJGRiLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuICdtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CiAgICAgICAkcmV0ID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsJHNlcSk7CgkgICBpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd190b191c2VyJywnMCcpID09ICcxJykKCQkgewoJCSAkcmV0IC49ICRzZXE7CgkJIH0KICAgICAgfQoJcmV0dXJuICRyZXQ7CiAgfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkbWFpbiA9IGFycmF5KAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd190b191c2VyJyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3Nob3dfdG9fdXNlcicsJzAnKS4KCQkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2hvd190b191c2VyJywgJzEnLAoJCQkJJHRoaXMtPkdldE9wdGlvbignc2hvd190b191c2VyJywnMCcpKSkKCQkJCSk7CgkJJGFkdiA9IGFycmF5KCk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/FormBuilder.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgVmVyc2lvbjogMC4zLCByZWxlYXNlZCAyMDA3CiMKIyBDb3B5cmlnaHQgKGMpIDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KIyBGb3IgSW5mb3JtYXRpb24sIFN1cHBvcnQsIEJ1ZyBSZXBvcnRzLCBldGMsIHBsZWFzZSB2aXNpdCB0aGUKIyBDTVMgTWFkZSBTaW1wbGUgRm9yZ2U6CiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlci8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRmaWVsZF90eXBlczsKCXZhciAkZGlzcF9maWVsZF90eXBlczsKCXZhciAkYWxsX3ZhbGlkYXRpb25fdHlwZXM7Cgl2YXIgJG1vZHVsZV9wdHI7Cgl2YXIgJG1vZHVsZV9pZDsKCXZhciAkZW1haWxfcmVnZXg7Cgl2YXIgJGVtYWlsX3JlZ2V4X3JlbGF4ZWQ7Cgl2YXIgJGRiSGFuZGxlOwoKCWZ1bmN0aW9uIEZvcm1CdWlsZGVyKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJHRoaXMtPkNNU01vZHVsZSgpOwovL2Vycm9yX2xvZygiTW9kdWxlIExvYWQ6ICIubWVtb3J5X2dldF91c2FnZSgpKTsKCQkKCQkkdGhpcy0+bW9kdWxlX3B0ciA9ICYkdGhpczsKCQkkdGhpcy0+ZGJIYW5kbGUgPSAmJGdDbXMtPkdldERiKCk7CgkJJHRoaXMtPm1vZHVsZV9pZCA9ICcnOwoJCSR0aGlzLT5lbWFpbF9yZWdleCA9ICIvXihbXHdcZFwuXC1cX10pK1xAKFtcd1xkXC5cLVxfXSspXC4oXHcrKSQvaSI7CgkJJHRoaXMtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQ9Ii9eKFtcd1xkXC5cLVxfXSkrXEAoW1x3XGRcLlwtXF9dKSskL2kiOwoJCXJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKS4nL2NsYXNzZXMvRm9ybS5jbGFzcy5waHAnOwoJCXJlcXVpcmVfb25jZSBkaXJuYW1lKF9fRklMRV9fKS4nL2NsYXNzZXMvRmllbGRCYXNlLmNsYXNzLnBocCc7CgkJLy8kdGhpcy0+UmVnaXN0ZXJNb2R1bGVQbHVnaW4oKTsKLy9lcnJvcl9sb2coImxlYXZpbmcgbW9kdWxlIGluc3RhbnRpYXRpb24gd2l0aDogIi5tZW1vcnlfZ2V0X3VzYWdlKCkpOwoJCQoJfQoKCglmdW5jdGlvbiBpbml0aWFsaXplKCkKCXsKLy9lcnJvcl9sb2coImVudGVyaW5nIGluaXRpYWxpemUgd2l0aCAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CgkJJGRpcj1vcGVuZGlyKGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3NlcycpOwogICAJCSR0aGlzLT5maWVsZF90eXBlcyA9IGFycmF5KCk7CiAgIAkJd2hpbGUoJGZpbGVzcGVjPXJlYWRkaXIoJGRpcikpCiAgIAkJCXsKICAgICAgIAkJaWYoc3RycG9zKCRmaWxlc3BlYywnRmllbGQnKSA9PT0gZmFsc2UgJiYgc3RycG9zKCRmaWxlc3BlYywnRGlzcG9zaXRpb24nKSA9PT0gZmFsc2UpCiAgICAgICAJCQl7CiAgICAgICAJCQljb250aW51ZTsKICAgICAgIAkJCX0KICAgICAgIAkJJHNob3J0bmFtZSA9IHN1YnN0cigkZmlsZXNwZWMsMCxzdHJwb3MoJGZpbGVzcGVjLCcuJykpOwogICAgICAgCQlpZiAoc3Vic3RyKCRzaG9ydG5hbWUsLTQpID09ICdCYXNlJykKICAgICAgIAkJCXsKICAgICAgIAkJCWNvbnRpbnVlOwogICAgICAgCQkJfQogICAgICAgCQkkdGhpcy0+ZmllbGRfdHlwZXNbJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfJy4kc2hvcnRuYW1lKV0gPSAkc2hvcnRuYW1lOwoJCQl9ICAgICAgICAKCQkKICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZmllbGRfdHlwZXMgYXMgJHROYW1lPT4kdFR5cGUpCiAgICAgICAgCXsKICAgICAgICAJaWYgKHN1YnN0cigkdFR5cGUsMCwxMSkgPT0gJ0Rpc3Bvc2l0aW9uJykKICAgICAgICAJCXsKICAgICAgICAJCSR0aGlzLT5kaXNwX2ZpZWxkX3R5cGVzWyR0TmFtZV09JHRUeXBlOwogICAgICAgIAkJfQogICAgICAgIAl9CgkJJHRoaXMtPmFsbF92YWxpZGF0aW9uX3R5cGVzID0gYXJyYXkoKTsKCQlrc29ydCgkdGhpcy0+ZmllbGRfdHlwZXMpOwovL2Vycm9yX2xvZygibGVhdmluZyBpbml0aWFsaXplIHdpdGggIi5tZW1vcnlfZ2V0X3VzYWdlKCkpOwoKCX0KCglmdW5jdGlvbiBBbGxvd0F1dG9JbnN0YWxsKCkKCXsKCSAgcmV0dXJuIEZBTFNFOwoJfQoKCWZ1bmN0aW9uIEFsbG93QXV0b1VwZ3JhZGUoKQoJewoJICByZXR1cm4gRkFMU0U7Cgl9CgoJZnVuY3Rpb24gR2V0TmFtZSgpCgl7CgkJcmV0dXJuICdGb3JtQnVpbGRlcic7Cgl9CgkKCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKTsKCX0KCglmdW5jdGlvbiBHZXRWZXJzaW9uKCkKCXsKCQlyZXR1cm4gJzAuNSc7Cgl9CgoJZnVuY3Rpb24gR2V0QXV0aG9yKCkKCXsKCQlyZXR1cm4gJ1NqRyc7Cgl9CgoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQoJewoJCXJldHVybiAnc2pnQGNtc21vZHVsZXMuY29tJzsKCX0KCiAgICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgIHsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2FkbWluZGVzYycpOwogICAgfQoKCWZ1bmN0aW9uIEdldENoYW5nZUxvZygpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKCX0KCglmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgoJZnVuY3Rpb24gSGFzQWRtaW4oKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCgl7CgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBGb3JtcycpOwoJfQoKCiAgICBmdW5jdGlvbiBBZG1pblN0eWxlKCkKICAgIHsKICAgICAgcmV0dXJuICJcbi5tb2R1bGVfZmJfdGFibGUge2ZvbnQtc2l6ZTogMTBweDt9XG4ubW9kdWxlX2ZiX2FyZWFfd2lkZSB7d2lkdGg6IDUwMHB4O31cbi5tb2R1bGVfZmJfbGVnZW5ke2ZvbnQtc2l6ZTogOXB4OyBtYXJnaW46IDZweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7fS5tb2R1bGVfZmJfYXJlYV9zaG9ydCB7d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4O31cbi5tb2R1bGVfZmJfbGluayB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuLm1vZHVsZV9mYl9maWVsZHNldCB7bWFyZ2luLWJvdHRvbToyZW07fVxuLm9kZCB7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ25tZW50OiB0b3A7fVxuLmV2ZW4ge2JhY2tncm91bmQtY29sb3I6ICNkZGQ7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWdubWVudDogdG9wO31cbiI7CiAgICB9CgoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CiAgICAJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZicnBfKicsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCcpKTsKCQkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZShDTEVBTl9SRUdFWFAuJy9mYnJwXy4qLycsQ0xFQU5fU1RSSU5HKTsKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmb3JtX2lkJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJykpOwogICAgCSR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdmb3JtX2lkJyxDTEVBTl9JTlQpOwoJCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2Zvcm0nLCdudWxsJywkdGhpcy0+TGFuZygnZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZScpKTsKICAgIAkkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnZm9ybScsQ0xFQU5fU1RSSU5HKTsKICAgIAkKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdmaWVsZF9pZCcsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnKSk7CiAgICAJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2ZpZWxkX2lkJyxDTEVBTl9JTlQpOwoKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCd2YWx1ZV8qJywnbnVsbCcsJHRoaXMtPkxhbmcoJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnKSk7CgkJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoQ0xFQU5fUkVHRVhQLicvdmFsdWVfLiovJyxDTEVBTl9TVFJJTkcpOwoKCQkkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdyZXNwb25zZV9pZCcsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnKSk7CiAgICAJJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3Jlc3BvbnNlX2lkJyxDTEVBTl9JTlQpOwogIAl9CgogICAgZnVuY3Rpb24gRG9BY3Rpb24oJG5hbWUsJGlkLCRwYXJhbXMsJHJldHVybmlkPScnKQogICAgewogICAgICAkdGhpcy0+bW9kdWxlX2lkID0gJGlkOwogICAgICBwYXJlbnQ6OkRvQWN0aW9uKCRuYW1lLCRpZCwkcGFyYW1zLCRyZXR1cm5pZCk7CiAgICB9CgoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQlyZXR1cm4gYXJyYXkoJ0NNU01haWxlcic9PicxLjczJyk7Cgl9CgoJLy8gbWF5IGJlIHRvbyBzdHJpbmdlbnQsIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LgoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQoJewoJCXJldHVybiAnMS4xJzsKCX0KCglmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdF9pbnN0YWxsJyk7Cgl9CgoKCWZ1bmN0aW9uIENoZWNrQWNjZXNzKCRwZXJtaXNzaW9uPSdNb2RpZnkgRm9ybXMnKQoJewoJCSRhY2Nlc3MgPSAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCRwZXJtaXNzaW9uKTsKCQlpZiAoISRhY2Nlc3MpICB7CgkJCWVjaG8gIjxwIGNsYXNzPVwiZXJyb3JcIj4iLiR0aGlzLT5MYW5nKCd5b3VfbmVlZF9wZXJtaXNzaW9uJywkcGVybWlzc2lvbikuIjwvcD4iOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWVsc2UgcmV0dXJuIHRydWU7Cgl9CgoJLyoKCURPIE5PVCBhbGxvdyBwYXJhbWV0ZXJzIHRvIGJlIHVzZWQgZm9yIHBhc3NpbmcgdGhlIG9yZGVyX2J5ISBJdCBpcyBub3QgZXNjYXBlZCBiZWZvcmUKCWRhdGFiYXNlIGFjY2Vzcy4gSWYgd2UgbGV0IEFET0RCIHF1b3RlIGl0LCB0aGUgU1FMIGlzIG5vdCB2YWxpZCAobm90IHRoYXQgTXlTUUwgY2FyZXMsCglidXQgUG9zdGdyZXMgZG9lcykuCgkqLwoJZnVuY3Rpb24gR2V0Rm9ybXMoJG9yZGVyX2J5PSduYW1lJykKCXsKICAgICAgICBnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRzcWwgPSAiU0VMRUNUICogRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gT1JERVIgQlkgJy4kb3JkZXJfYnk7CgkgICAgJHJlc3VsdCA9IGFycmF5KCk7CgkgICAgJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwoJICAgIGlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJICAgIAl7CgkgICAgICAgICRyZXN1bHQgPSAkcnMtPkdldEFycmF5KCk7CgkgICAgCX0KCSAgICByZXR1cm4gJHJlc3VsdDsKCX0JCgogICAgZnVuY3Rpb24gR2V0Rm9ybUlERnJvbUFsaWFzKCRmb3JtX2FsaWFzKQoJewogICAgICAgIGdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCBmcm9tICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybSBXSEVSRSBhbGlhcyA9ID8nOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybV9hbGlhcykpOwoJCWlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJCXsKCQkJJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKTsKCQl9CgkJcmV0dXJuICRyZXN1bHRbJ2Zvcm1faWQnXTsKCX0KCglmdW5jdGlvbiBHZXRGb3JtTmFtZUZyb21JRCgkZm9ybV9pZCkKCXsKICAgICAgICBnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRzcWwgPSAnU0VMRUNUIG5hbWUgZnJvbSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gV0hFUkUgZm9ybV9pZCA9ID8nOwoJCSRycyA9ICRkYi0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybV9pZCkpOwoJCWlmKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQoJCXsKCQkJJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKTsKCQl9CgkJcmV0dXJuICRyZXN1bHRbJ25hbWUnXTsKCX0KCglmdW5jdGlvbiBHZXRGb3JtQnlJRCgkZm9ybV9pZCwgJGxvYWREZWVwPWZhbHNlKQoJewoJCQkkcGFyYW1zID0gYXJyYXkoJ2Zvcm1faWQnPT4kZm9ybV9pZCk7CgkJICAgICRmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgJGxvYWREZWVwKTsKCQkgICAgcmV0dXJuICRmb3JtOwoJfQoKCWZ1bmN0aW9uIEdldEZvcm1CeVBhcmFtcygmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQoJewoJCSAgICAkZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsICRsb2FkRGVlcCk7CgkJICAgIHJldHVybiAkZm9ybTsKCX0KCgkKCWZ1bmN0aW9uIEdldEhlbHAoJGxhbmcgPSAnZW5fVVMnKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwoJfQoKCglmdW5jdGlvbiBHZXRSZXNwb25zZSgkZm9ybV9pZCwkcmVzcG9uc2VfaWQsJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JykKCXsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSR2YWx1ZXMgPSBhcnJheSgpOwoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgogICAgICAgCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJCQknbW9kdWxlX2ZiX3Jlc3AgV0hFUkUgcmVzcF9pZD0/JywgYXJyYXkoJHJlc3BvbnNlX2lkKSk7CgoJCSRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCQlpZiAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJCXsJCQkKCQkJJG9uZXNldC0+aWQgPSAkcm93WydyZXNwX2lkJ107CgkJCSRvbmVzZXQtPnVzZXJfYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1sndXNlcl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pKSk7IAogCQkJJG9uZXNldC0+YWRtaW5fYXBwcm92ZWQgPSAoZW1wdHkoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snYWRtaW5fYXBwcm92ZWQnXSkpKTsKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snc3VibWl0dGVkJ10pKTsKCQkJJG9uZXNldC0+ZmllbGRzID0gYXJyYXkoKTsKCQkJJG9uZXNldC0+bmFtZXMgPSBhcnJheSgpOwoJCSAgICB9CgoJCSRwYXJhbVNldCA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQsICdyZXNwb25zZV9pZCc9PiRyZXNwb25zZV9pZCk7CgkJJGZtID0gJHRoaXMtPkdldEZvcm1CeVBhcmFtcygkcGFyYW1TZXQsIHRydWUpOwoJCSRmaWVsZHMgPSAmJGZtLT5HZXRGaWVsZHMoKTsKCQlmb3IoJGo9MDskajxjb3VudCgkZmllbGRzKTskaisrKQoJCQl7CgkJCWlmICgkZmllbGRzWyRqXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCQkJewoJCQkJaWYgKGlzc2V0KCRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSkKCQkJCQkmJiAkZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV0gPiAtMSkKCQkJCQl7CgkJCQkJCSRvbmVzZXQtPm5hbWVzWyRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXV0gPSAkZmllbGRzWyRqXS0+R2V0TmFtZSgpOwogICAgICAgICAgICAgICAgCSRvbmVzZXQtPnZhbHVlc1skZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV1dID0gJGZpZWxkc1skal0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAJfQogICAgICAgIAkKCQlyZXR1cm4gJG9uZXNldDsKCX0KCglmdW5jdGlvbiBHZXRSZXNwb25zZXMoJGZvcm1faWQsICRzdGFydF9wb2ludCwgJG51bWJlciwgJGFkbWluX2FwcHJvdmVkPWZhbHNlLCAkdXNlcl9hcHByb3ZlZD1mYWxzZSwgJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JykKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJHZhbHVlcyA9IGFycmF5KCk7CgkJJHNxbCA9ICdGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSBmb3JtX2lkPT8nOwogICAgICAgIGlmICgkdXNlcl9hcHByb3ZlZCkKICAgICAgICAJewogICAgICAgIAkgJHNxbCAuPSAnYW5kIHVzZXJfYXBwcm92ZWQgaXMgbm90IG51bGwnOwogICAgICAgIAkgfQogICAgICAgIGlmICgkYWRtaW5fYXBwcm92ZWQpCiAgICAgICAgCXsKICAgICAgICAJJHNxbCAuPSAnIGFuZCBhZG1pbl9hcHByb3ZlZCBpcyBub3QgbnVsbCc7CiAgICAgICAgCX0KICAgICAgICAkc3FsIC49ICcgb3JkZXIgYnkgc3VibWl0dGVkJzsKICAgICAgICAkZGJjb3VudCA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIENPVU5UKCopIGFzIG51bSAnLiRzcWwsYXJyYXkoJGZvcm1faWQpKTsKICAgCiAgICAgICAgJHJlY29yZHMgPSAwOwogICAgICAgIGlmICgkZGJjb3VudCAmJiAkcm93ID0gJGRiY291bnQtPkZldGNoUm93KCkpCiAgICAgICAgCXsgICAKICAgICAgICAJJHJlY29yZHMgPSAkcm93WydudW0nXTsKICAgICAgICAJfQogICAgICAgCSRkYnJlc3VsdCA9ICRkYi0+U2VsZWN0TGltaXQoJ1NFTEVDVCAqICcuJHNxbCwgJG51bWJlciwgJHN0YXJ0X3BvaW50LCBhcnJheSgkZm9ybV9pZCkpOwoKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCiAJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZCA9IChlbXB0eSgkcm93WydhZG1pbl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhZG1pbl9hcHByb3ZlZCddKSkpOyAKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snc3VibWl0dGVkJ10pKTsKCQkJJG9uZXNldC0+ZmllbGRzID0gYXJyYXkoKTsKCQkgICAgYXJyYXlfcHVzaCgkdmFsdWVzLCRvbmVzZXQpOwoJCSAgICB9CgkJJHBvcHVsYXRlX25hbWVzID0gdHJ1ZTsKCQkkZm0gPSAtMTsKCQkkYWxsX2ZpZWxkcyA9IGZhbHNlOwoJCWlmIChjb3VudCgkZmllbGRfbGlzdCkgPT0gMCkKCQkJewoJCQkkYWxsX2ZpZWxkcyA9IHRydWU7CgkJCX0KCQlmb3IoJGk9MDskaTxjb3VudCgkdmFsdWVzKTskaSsrKQoJCQl7CgkJCSRwYXJhbVNldCA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQsICdyZXNwb25zZV9pZCc9PiR2YWx1ZXNbJGldLT5pZCk7CgkJCWlmIChnZXR0eXBlKCRmbSkgPT0gImludGVnZXIiKSAvLyBmaXggdGhpcywgZm9yIGJldHRlciBlZmZpY2llbmN5IQoJCQkJewoJCQkJJGZtID0gJHRoaXMtPkdldEZvcm1CeVBhcmFtcygkcGFyYW1TZXQsIHRydWUpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkZm0tPkxvYWRSZXNwb25zZSgkdmFsdWVzWyRpXS0+aWQpOwoJCQkJfQoJCQkkZmllbGRzID0gJiRmbS0+R2V0RmllbGRzKCk7CgkJCSRpbmQgPSAwOwoJCQlmb3IoJGo9MDskajxjb3VudCgkZmllbGRzKTskaisrKQoJCQkJewoJCQkJaWYgKCRmaWVsZHNbJGpdLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkJCQkJewoJCQkJCWlmIChpc3NldCgkZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV0pCgkJCQkJCSYmICRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSA+IC0xKQoJCQkJCQl7CgkJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCQl7CgkJCQkJCQkkbmFtZXNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXROYW1lKCk7CgkJCQkJCQl9CiAgICAgICAgICAgICAgICAJCSR2YWx1ZXNbJGldLT5maWVsZHNbJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldXSA9ICRmaWVsZHNbJGpdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKTsKICAgICAgICAgICAgICAgIAkJfQoJCQkJCWVsc2UgaWYgKCRhbGxfZmllbGRzKQoJCQkJCQl7CgkJCQkJCWlmICgkcG9wdWxhdGVfbmFtZXMpCgkJCQkJCQl7CgkJCQkJCQkkbmFtZXNbJGluZF0gPSAkZmllbGRzWyRqXS0+R2V0TmFtZSgpOwoJCQkJCQkJfQoJCQkJCQkkdmFsdWVzWyRpXS0+ZmllbGRzWyRpbmRdID0gJGZpZWxkc1skal0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwoJCQkJCQkkaW5kKys7CgkJCQkJCX0KICAgICAgICAgICAgICAgIAl9CiAgICAgICAgCQl9CiAgICAgICAgCSRwb3B1bGF0ZV9uYW1lcyA9IGZhbHNlOwoJCQl9CgkJcmV0dXJuIGFycmF5KCRyZWNvcmRzLCAkbmFtZXMsICR2YWx1ZXMpOwoJfQoKCglmdW5jdGlvbiBHZXRTb3J0ZWRSZXNwb25zZXMoJGZvcm1faWQsICRzdGFydF9wb2ludCwgJG51bWJlciwgJGFkbWluX2FwcHJvdmVkPWZhbHNlLCAkdXNlcl9hcHByb3ZlZD1mYWxzZSwgJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JywgJiRwYXJhbXMpCgl7CgkJZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSR2YWx1ZXMgPSBhcnJheSgpOwoJCSRzcWwgPSAnRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJCQknbW9kdWxlX2ZiX3Jlc3AgV0hFUkUgZm9ybV9pZD0/JzsKICAgICAgICBpZiAoJHVzZXJfYXBwcm92ZWQpCiAgICAgICAgCXsKICAgICAgICAJICRzcWwgLj0gJ2FuZCB1c2VyX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKICAgICAgICAJIH0KICAgICAgICBpZiAoJGFkbWluX2FwcHJvdmVkKQogICAgICAgIAl7CiAgICAgICAgCSRzcWwgLj0gJyBhbmQgYWRtaW5fYXBwcm92ZWQgaXMgbm90IG51bGwnOwogICAgICAgIAl9CiAgICAgICAgCgkJaWYgKCEgaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ10pIHx8ICRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddPT0nc3VibWl0ZGF0ZScpCgkJCXsKCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSkgJiYgJHBhcmFtc1snZmJycF9zb3J0X2RpciddID09ICdkJykKCQkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgZGVzYyc7CQoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkc3FsIC49ICcgb3JkZXIgYnkgc3VibWl0dGVkIGFzYyc7CgkJCQl9CgkJCX0KICAgICAgICAkZGJjb3VudCA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUIENPVU5UKCopIGFzIG51bSAnLiRzcWwsYXJyYXkoJGZvcm1faWQpKTsKICAgCiAgICAgICAgJHJlY29yZHMgPSAwOwogICAgICAgIGlmICgkZGJjb3VudCAmJiAkcm93ID0gJGRiY291bnQtPkZldGNoUm93KCkpCiAgICAgICAgCXsgICAKICAgICAgICAJJHJlY29yZHMgPSAkcm93WydudW0nXTsKICAgICAgICAJfQogICAgICAgCSRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgnU0VMRUNUICogJy4kc3FsLCBhcnJheSgkZm9ybV9pZCkpOwoKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyb3dbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9IChlbXB0eSgkcm93Wyd1c2VyX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSkpKTsgCiAJCQkkb25lc2V0LT5hZG1pbl9hcHByb3ZlZCA9IChlbXB0eSgkcm93WydhZG1pbl9hcHByb3ZlZCddKT8nJzpkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydhZG1pbl9hcHByb3ZlZCddKSkpOyAKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1snc3VibWl0dGVkJ10pKTsKCQkJJG9uZXNldC0+ZmllbGRzID0gYXJyYXkoKTsKCQkgICAgYXJyYXlfcHVzaCgkdmFsdWVzLCRvbmVzZXQpOwoJCSAgICB9CgkJJHBvcHVsYXRlX25hbWVzID0gdHJ1ZTsKCQkkZm0gPSAtMTsKCQlmb3IoJGk9MDskaTxjb3VudCgkdmFsdWVzKTskaSsrKQoJCQl7CgkJCSRwYXJhbVNldCA9IGFycmF5KCdmb3JtX2lkJz0+JGZvcm1faWQsICdyZXNwb25zZV9pZCc9PiR2YWx1ZXNbJGldLT5pZCk7CgkJCWlmIChnZXR0eXBlKCRmbSkgPT0gImludGVnZXIiKSAvLyBmaXggdGhpcywgZm9yIGJldHRlciBlZmZpY2llbmN5IQoJCQkJewoJCQkJJGZtID0gJHRoaXMtPkdldEZvcm1CeVBhcmFtcygkcGFyYW1TZXQsIHRydWUpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkZm0tPkxvYWRSZXNwb25zZSgkdmFsdWVzWyRpXS0+aWQpOwoJCQkJfQoJCQkkZmllbGRzID0gJiRmbS0+R2V0RmllbGRzKCk7CgkJCWZvcigkaj0wOyRqPGNvdW50KCRmaWVsZHMpOyRqKyspCgkJCQl7CgkJCQlpZiAoJGZpZWxkc1skal0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkJCQl7CgkJCQkJaWYgKGlzc2V0KCRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSkKCQkJCQkJJiYgJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldID4gLTEpCgkJCQkJCXsKCQkJCQkJaWYgKCRwb3B1bGF0ZV9uYW1lcykKCQkJCQkJCXsKCQkJCQkJCSRuYW1lc1skZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV1dID0gJGZpZWxkc1skal0tPkdldE5hbWUoKTsKCQkJCQkJCX0KICAgICAgICAgICAgICAgIAkJJHZhbHVlc1skaV0tPmZpZWxkc1skZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV1dID0gJGZpZWxkc1skal0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwogICAgICAgICAgICAgICAgCQl9CiAgICAgICAgICAgICAgICAJfQogICAgICAgIAkJfQogICAgICAgIAkkcG9wdWxhdGVfbmFtZXMgPSBmYWxzZTsKCQkJfQoJCQkKCQlpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ10pIHx8IGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZF9pZCddKSkKCQkJewoJCQkkc2YgPSAtMTsKCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZF9pZCddKSkKCQkJCXsKCQkJCSRzZiA9ICRmaWVsZF9saXN0WyRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZF9pZCddXTsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJZm9yKCRqPTA7JGo8Y291bnQoJGZpZWxkcyk7JGorKykKCQkJCQl7CgkJCQkJaWYgKCFzdHJjYXNlY21wKCRmaWVsZHNbJGpdLT5HZXROYW1lKCksJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ10pKQoJCQkJCQl7CgkJCQkJCSRzZiA9ICRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJaWYgKCRzZiAhPSAtMSkKCQkJCXsKCQkJCS8vIGtsdWRnZSwgYmVjYXVzZSBzb3J0IGluc3RhbnRpYXRpb24gYnJlYWtzIHVuZGVyIFBIUCA0LCBhbmQgSSBjYW4ndCBwYXNzIGV4dHJhIHBhcmFtcyB0byB0aGUgc29ydAoJCQkJZm9yKCRqPTA7JGo8Y291bnQoJHZhbHVlcyk7JGorKykKCQkJCQl7CgkJCQkJJHZhbHVlc1skal0tPnNmID0gJHNmOwoJCQkJCX0KCQkJCWlmIChpc3NldCgkcGFyYW1zWydmYnJwX3NvcnRfZGlyJ10pICYmICRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSA9PSAnYScpCgkJCQkJewoJCQkJCXVzb3J0KCR2YWx1ZXMsIGFycmF5KCJGb3JtQnVpbGRlciIsImZpZWxkX3NvcnRlcl9hc2MiKSk7CgkJCQkJfQoJCQkJZWxzZQoJCQkJCXsKCQkJCQl1c29ydCgkdmFsdWVzLCBhcnJheSgiRm9ybUJ1aWxkZXIiLCJmaWVsZF9zb3J0ZXJfZGVzYyIpKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQlpZiAoJHJlY29yZHMgPiAkbnVtYmVyKQoJCQl7CgkJCSR2YWx1ZXMgPSBhcnJheV9zbGljZSggJHZhbHVlcywgJHN0YXJ0X3BvaW50LCAkbnVtYmVyKTsKCQkJfQoJCXJldHVybiBhcnJheSgkcmVjb3JkcywgJG5hbWVzLCAkdmFsdWVzKTsKCX0KCgoJZnVuY3Rpb24gZmllbGRfc29ydGVyX2FzYygkYSwgJGIpCgl7CiAgICAJcmV0dXJuIHN0cmNhc2VjbXAoJGEtPmZpZWxkc1skYS0+c2ZdLCAkYi0+ZmllbGRzWyRiLT5zZl0pOwoJfQoKCWZ1bmN0aW9uIGZpZWxkX3NvcnRlcl9kZXNjKCRhLCAkYikKCXsKICAgIAlyZXR1cm4gc3RyY2FzZWNtcCgkYi0+ZmllbGRzWyRiLT5zZl0sICRhLT5maWVsZHNbJGEtPnNmXSk7Cgl9CgoJCgkvLyBGb3IgYSBnaXZlbiBmb3JtLCByZXR1cm5zIGFuIGFycmF5IG9mIHJlc3BvbnNlIG9iamVjdHMKCWZ1bmN0aW9uIExpc3RSZXNwb25zZXMoJGZvcm1faWQsICRzb3J0X29yZGVyPSdzdWJtaXR0ZWQnKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHJldCA9IGFycmF5KCk7CgkJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSBmb3JtX2lkPT8gT1JERVIgQlkgPyc7CiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRxdWVyeSwgYXJyYXkoJGZvcm1faWQsJHNvcnRfb3JkZXIpKTsKCQl3aGlsZSAoJGRicmVzdWx0ICYmICRyb3cgPSAkZGJyZXN1bHQtPkZldGNoUm93KCkpCgkJCXsKCQkJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJCQkkb25lc2V0LT5pZCA9ICRyZXN1bHRbJ3Jlc3BfaWQnXTsKCQkJJG9uZXNldC0+dXNlcl9hcHByb3ZlZCA9ICRkYi0+VW5peFRpbWVTdGFtcCgkcmVzdWx0Wyd1c2VyX2FwcHJvdmVkJ10pOyAKIAkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ2FkbWluX2FwcHJvdmVkJ10pOyAKCQkJJG9uZXNldC0+c3VibWl0dGVkID0gJGRiLT5Vbml4VGltZVN0YW1wKCRyZXN1bHRbJ3N1Ym1pdHRlZCddKTsgCgkJICAgIGFycmF5X3B1c2goJHJldCwkb25lc2V0KTsKCQkgICAgfQoJCXJldHVybiAkcmV0OwoJfQoKICAgIGZ1bmN0aW9uIGRlZigmJHZhcikKICAgIHsKICAgIAlpZiAoIWlzc2V0KCR2YXIpKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAllbHNlIGlmIChpc19udWxsKCR2YXIpKQogICAgCSAgIHsKICAgIAkgICAJcmV0dXJuIGZhbHNlOwogICAgCSAgIH0KICAgIAllbHNlIGlmICghaXNfYXJyYXkoJHZhcikgJiYgZW1wdHkoJHZhcikpCiAgICAJICAgewogICAgCSAgIAlyZXR1cm4gZmFsc2U7CiAgICAJICAgfQogICAgCWVsc2UgaWYgKGlzX2FycmF5KCR2YXIpICYmIGNvdW50KCR2YXIpID09IDApCiAgICAJICAgewogICAgCSAgIAlyZXR1cm4gZmFsc2U7CiAgICAJICAgfQogICAgCXJldHVybiB0cnVlOwogICAgfQoKICAgIGZ1bmN0aW9uIENsZWFyRmlsZUxvY2soKQogICAgewoJCWdsb2JhbCAkZ0NtczsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJHNxbCA9ICJERUxFVEUgZnJvbSAiLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zsb2NrJzsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICB9CgoKICAgIGZ1bmN0aW9uIEdldEZpbGVMb2NrKCkKICAgIHsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRzcWwgPSAiaW5zZXJ0IGludG8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9mYl9mbG9jayAoZmxvY2tfaWQsIGZsb2NrKSB2YWx1ZXMgKDEsIi4kZGItPnN5c1RpbWVTdGFtcC4iKSI7CgkJJHJzID0gJGRiLT5FeGVjdXRlKCRzcWwpOwogICAgICAgIGlmICgkcnMpCiAgICAgICAgCXsKICAgICAgICAJcmV0dXJuIHRydWU7CiAgICAgICAgCX0KICAgICAgICAkc3FsID0gIlNFTEVDVCBmbG9ja19pZCBGUk9NICIuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkibW9kdWxlX2ZiX2Zsb2NrIHdoZXJlIGZsb2NrICsgaW50ZXJ2YWwgMTUgc2Vjb25kIDwgIi4kZGItPnN5c1RpbWVTdGFtcDsKCQkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCk7CiAgICAgICAgaWYgKCRycyAmJiAkcnMtPlJlY29yZENvdW50KCkgPiAwKQogICAgICAgIAl7CiAgICAgICAgCSR0aGlzLT5DbGVhckZpbGVMb2NrKCk7CiAgICAgICAgCXJldHVybiBmYWxzZTsKICAgICAgICAJfSAgICAgICAgCSAKCQlyZXR1cm4gZmFsc2U7CiAgICB9CgogICAgZnVuY3Rpb24gUmV0dXJuRmlsZUxvY2soKQogICAgewoJCSR0aGlzLT5DbGVhckZpbGVMb2NrKCk7CiAgICB9CgogIGZ1bmN0aW9uIEdldEV2ZW50RGVzY3JpcHRpb24gKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2luZm9fJy4kZXZlbnRuYW1lICk7CiAgfQoKICBmdW5jdGlvbiBHZXRFdmVudEhlbHAgKCAkZXZlbnRuYW1lICkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2V2ZW50X2hlbHBfJy4kZXZlbnRuYW1lICk7CiAgfQoKCiAgZnVuY3Rpb24gQ3JlYXRlUGFnZURyb3Bkb3duKCRpZCwkbmFtZSwkY3VycmVudD0nJywKCQkJICAgICAgJGFkZHRleHQ9JycsJG1hcmtkZWZhdWx0ID10cnVlKQogIHsKICAgIC8vIHdlIGdldCBoZXJlIChob3BlZnVsbHkpIHdoZW4gdGhlIHRlbXBsYXRlIGlzIGNoYW5nZWQKICAgIC8vIGluIHRoZSBkcm9wZG93bi4KICAgICRkYiA9JiAkdGhpcy0+R2V0RGIoKTsKICAgIGdsb2JhbCAkZ0NtczsKICAgICRkZWZhdWx0aWQgPSAnJzsKICAgIGlmKCAkbWFya2RlZmF1bHQgKQogICAgICB7CgkkY29udGVudG9wcyA9JiAkZ0Ntcy0+R2V0Q29udGVudE9wZXJhdGlvbnMoKTsKCSRkZWZhdWx0aWQgPSAkY29udGVudG9wcy0+R2V0RGVmYXVsdFBhZ2VJRCgpOwogICAgICB9CiAgICAKICAgIC8vIGdldCBhIGxpc3Qgb2YgdGhlIHBhZ2VzIHVzZWQgYnkgdGhpcyB0ZW1wbGF0ZQogICAgJG15cGFnZXMgPSBhcnJheSgpOwogICAgJHBhcm1zID0gYXJyYXkoJ2NvbnRlbnQnKTsKICAgICRxID0gIlNFTEVDVCBjb250ZW50X2lkLGNvbnRlbnRfbmFtZSAKICAgICAgICAgICAgICAgIEZST00gIi5jbXNfZGJfcHJlZml4KCkuImNvbnRlbnQKICAgICAgICAgICAgICAgV0hFUkUgdHlwZSA9ID8KICAgICAgICAgICAgICAgICBBTkQgYWN0aXZlID0gMSI7CiAgICAkZGJyZXN1bHQgPSAkZGItPkV4ZWN1dGUoICRxLCAkcGFybXMgKTsKICAgIHdoaWxlKCAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpICkKICAgICAgewoJaWYoICRkZWZhdWx0aWQgIT0gJycgJiYgJHJvd1snY29udGVudF9pZCddID09ICRkZWZhdWx0aWQgKQoJICB7CgkgICAgLy8gdXNlIGEgc3RhciBpbnN0ZWFkIG9mIGEgd29yZCBoZXJlIHNvIEkgZG9uJ3QgaGF2ZSB0bwoJICAgIC8vIHdvcnJ5IGFib3V0IHRyYW5zbGF0aW9uIHN0dWZmCgkgICAgJG15cGFnZXNbJHJvd1snY29udGVudF9uYW1lJ10uJyAoKiknXSA9ICRyb3dbJ2NvbnRlbnRfaWQnXTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJG15cGFnZXNbJHJvd1snY29udGVudF9uYW1lJ11dID0gJHJvd1snY29udGVudF9pZCddOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdmYnJwXycuJG5hbWUsJG15cGFnZXMsLTEsJGN1cnJlbnQsJGFkZHRleHQpOwogIH0KCglmdW5jdGlvbiBTdXBwcmVzc0FkbWluT3V0cHV0KCYkcmVxdWVzdCkKICAgewogICAgICBpZiAoc3RycG9zKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSwnZXhwb3J0eG1sJykgIT09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgIGVsc2VpZiAoc3RycG9zKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSwnYWRtaW5fZ2V0X3RlbXBsYXRlJykgIT09IGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgfQoKCn0gLy8gRW5kIG9mIENsYXNzCgojIHZpbTp0cz00IHN3PTQgbm9ldAo/Pgo=]]></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/Contact_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjEiCgluYW1lPSJDb250YWN0IEZvcm0iCglhbGlhcz0iY29udGFjdCI+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbY29udGFjdGZvcm1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iY2FwdGNoYV93cm9uZyI+PCFbQ0RBVEFbQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImZvcm1fdGVtcGxhdGUiPjwhW0NEQVRBW3sqIERFRkFVTFQgRk9STSBMQVlPVVQgLyBwdXJlIENTUyAqfQp7JGZiX2Zvcm1faGVhZGVyfQp7aWYgJGZiX2Zvcm1fZG9uZSA9PSAxfQoJeyogVGhpcyBmaXJzdCBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHN1Ym1pc3Npb24gZXJyb3JzICp9Cgl7aWYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiAkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9yc30KCQkJPGRpdiBjbGFzcz0iZXJyb3IiPgoJCQk8dWw+CgkJCXtmb3JlYWNoIGZyb209JGZiX3N1Ym1pc3Npb25fZXJyb3JfbGlzdCBpdGVtPXRoaXNFcnJ9CgkJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJCXsvZm9yZWFjaH0KCQkJPC91bD4KCQk8L2Rpdj4KCQl7L2lmfQoJey9pZn0Ke2Vsc2V9Cgl7KiB0aGlzIHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgdGhlIGZvcm0gKn0KCXsqIHdlIHN0YXJ0IHdpdGggdmFsaWRhdGlvbiBlcnJvcnMgKn0KCXtpZiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmICRjYXB0Y2hhX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskY2FwdGNoYV9lcnJvcn08L2Rpdj4KCXsvaWZ9CgoJeyogYW5kIG5vdyB0aGUgZm9ybSBpdHNlbGYgKn0KCXskZmJfZm9ybV9zdGFydH0KCTxkaXY+eyRmYl9oaWRkZW59PC9kaXY+Cgk8ZGl2e2lmICRjc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSJ7JGNzc19jbGFzc30iey9pZn0+Cgl7aWYgJHRvdGFsX3BhZ2VzIGd0IDF9PHNwYW4+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3NwYW4+ey9pZn0KCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCXtpZiAkZW50cnktPmRpc3BsYXkgPT0gMX0KICAgICAgICAJe3N0cmlwfQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CiAgICAgICAgICAgIAk8ZGl2CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQogICAgICAgICAgICAgICAgCQlyZXF1aXJlZAogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CiAgICAgICAgICAgICAgICAJCXskZW50cnktPmNzc19jbGFzc30KICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgCQkiCiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPmhpZGVfbmFtZSA9PSAwfQogICAgICAgICAgICAJPGxhYmVse2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgIT0gMX0gZm9yPSJ7JGVudHJ5LT5pbnB1dF9pZH0iey9pZn0+eyRlbnRyeS0+bmFtZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkX3N5bWJvbCAhPSAnJ30KICAgICAgICAgICAgICAgCQl7JGVudHJ5LT5yZXF1aXJlZF9zeW1ib2x9CiAgICAgICAgICAgIAl7L2lmfQogICAgICAgICAgICAJPC9sYWJlbD4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyA9PSAxfQogICAgICAgICAgICAJe3NlY3Rpb24gbmFtZT1udW1sb29wIGxvb3A9JGVudHJ5LT5pbnB1dH0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5sYWJlbF9wYXJ0cyA9PSAxfQogICAgICAgICAgICAgICAJCQk8ZGl2PnskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0mbmJzcDt7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+bmFtZX08L2Rpdj4KICAgICAgICAgICAgICAgCQl7ZWxzZX0KICAgICAgICAgICAgICAgCQkJeyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fQogICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQogICAgICAgICAgICAJey9zZWN0aW9ufQogICAgICAgICAJe2Vsc2V9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTwvZGl2PgogICAgICAgICAJey9pZn0KICAgICAgICAgCXsvc3RyaXB9CiAgICAgCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9CgkJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KCTwvZGl2PgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ0aXRsZV91c2VyX2NhcHRjaGEiPjwhW0NEQVRBW1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Im5leHRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0NvbnRpbnVlLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InByZXZfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0JhY2suLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icmVxdWlyZWRfZmllbGRfc3ltYm9sIj48IVtDREFUQVsqXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVuc3BlY2lmaWVkIj48IVtDREFUQVtbdW5zcGVjaWZpZWRdXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9idXR0b25fdGV4dCI+PCFbQ0RBVEFbU3VibWl0IEZvcm1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iaW5wdXRfYnV0dG9uX3NhZmV0eSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZWRpcmVjdF9wYWdlIj48IVtDREFUQVstMV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfcmVzcG9uc2UiPjwhW0NEQVRBWzxwPlRoYW5rIHlvdSwgPHN0cm9uZz57JHlvdXJfbmFtZX08L3N0cm9uZz4uPC9wPgo8cD5Zb3VyIHN1Ym1pc3Npb24gaGFzIGJlZW4gc3VjY2Vzc2Z1bC4gWW91IG1heSB3aXNoIHRvIHByaW50IHRoaXMgcGFnZSBhcyBhIHJlZmVyZW5jZS48L3A+CjxoMz5Db250YWN0IERldGFpbHM8L2gzPgo8cD4KPHN0cm9uZz5OYW1lPC9zdHJvbmc+OiB7JHlvdXJfbmFtZX08YnIgLz4KPHN0cm9uZz5FbWFpbDwvc3Ryb25nPjogPGEgaHJlZj0ibWFpbHRvOnskeW91cl9lbWFpbF9hZGRyZXNzfSI+eyR5b3VyX2VtYWlsX2FkZHJlc3N9PC9hPjxiciAvPgo8L3A+CjxoMz5GZWVkYmFjayBEZXRhaWxzPC9oMz4KPHA+CjxzdHJvbmc+U3ViamVjdDwvc3Ryb25nPjogeyRzdWJqZWN0fTxiciAvPgo8c3Ryb25nPkNvbW1lbnRzPC9zdHJvbmc+OjxiciAvPgp7JG1lc3NhZ2V9CjwvcD4gCjxoND5PdGhlciBpbmZvcm1hdGlvbjwvaDQ+CjxwPgo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4KPHN0cm9uZz5Gb3JtIE5hbWU8L3N0cm9uZz46IHskc3ViX2Zvcm1fbmFtZX08YnIgLz4KPHN0cm9uZz5VUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm08L3N0cm9uZz46IHskc3ViX3VybH08YnIgLz4KPHN0cm9uZz5Eb21haW48L3N0cm9uZz46IHskc3ViX2hvc3R9PGJyIC8+CjxzdHJvbmc+WW91ciBJUCBhZGRyZXNzPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9CjwvcD4gXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVssXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVzZV9jcGF0Y2hhIj48IVtDREFUQVtdXT48L2F0dHJpYnV0ZT4KCTxmaWVsZCBpZD0iMSIKCQl0eXBlPSJEaXNwb3NpdGlvbkVtYWlsIgoJCW5hbWU9IlVQREFURSBUSElTIEZJRUxEIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW05vIFN1YmplY3QgU2V0XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9uYW1lIj48IVtDREFUQVtObyBOYW1lIEdpdmVuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iZW1haWxfZnJvbV9hZGRyZXNzIj48IVtDREFUQVtub2JvZHlAc2FtcGxlLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImRlc3RpbmF0aW9uX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyZG9tYWluLmNvbV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3RlbXBsYXRlIj48IVtDREFUQVs8aHRtbD4KPGhlYWQ+CntsaXRlcmFsfQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgo8IS0tCmJvZHkge2ZvbnQ6ODUlLzEuMyBWZXJkYW5hLEFyaWFsLHNhbnN9CmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYgeyBtYXJnaW46IDBweCB9CmgxIHsgZm9udC1zaXplOiAyLjJlbTsgcGFkZGluZzogMHB4OyB9CmgyIHsgZm9udC1zaXplOiAxLjhlbTsgZm9udC13ZWlnaHQ6IG5vcm1hbCB9CmgyLCBoMywgaDQsIGg1IHsgZm9udC1mYW1pbHk6IEFyaWFsLCBHZW5ldmE7IG1hcmdpbi10b3A6IDFlbTsgfQpoMyB7CiAgIGZvbnQtc2l6ZTogMS42NWVtOwogICBmb250LXdlaWdodDogbm9ybWFsOwogICBmb250LXN0eWxlOml0YWxpYzsKICAgY29sb3I6ICNGNjA7CiAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMDAwOwp9Cmg0IHsKICAgZm9udC1zaXplOiAxLjI1ZW07CiAgIHBhZGRpbmc6IDBlbSAwLjJlbTsKICAgY29sb3I6IzAwNUNBQjsKICAgYm9yZGVyLXRvcDoxcHggc29saWQgIzAwMDsKICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgIzAwMDsKICAgbWFyZ2luLXRvcDogMAp9Cmg1IHsgZm9udC1zaXplOiAxLjJlbTsgZm9udC1zdHlsZTppdGFsaWM7IGNvbG9yOiMwMDVDQUJ9Cmg2IHsgZm9udC1zaXplOiAwLjllbTsgY29sb3I6IzY2NjsgZm9udC12YXJpYW50OnNtYWxsLWNhcHN9CnAgeyBtYXJnaW46IDAuNWVtIDAgMWVtOyBsaW5lLWhlaWdodDogMS40OyB9CmhyIHsgYm9yZGVyOjA7IGJvcmRlci10b3A6MXB4IHNvbGlkICNGNjA7IGhlaWdodDoxcHg7ICBmb250LXNpemU6MXB4OyBiYWNrZ3JvdW5kOiAjRjYwOyBjb2xvcjogI2ZmZn0KLmRvdHRlZC1ib3JkZXIge2JvcmRlcjogMXB4IGRvdHRlZCAjRjYwOyBwYWRkaW5nOiAwLjVlbX0KLS0+Cjwvc3R5bGU+CnsvbGl0ZXJhbH0KPGJhc2Vmb250IGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiIGNvbG9yPSIjMDAwMDAwIiBzaXplPSIzIiAvPgo8L2hlYWQ+Cjxib2R5Pgo8aDE+RmVlZGJhY2sgZnJvbSB7JHN1Yl9ob3N0fS17JHN1Yl9mb3JtX25hbWV9PC9oMT4KPGgyPkNvbnRhY3QgRGV0YWlsczwvaDI+CjxkaXYgY2xhc3M9ImRvdHRlZC1ib3JkZXIiPgo8c3Ryb25nPk5hbWU8L3N0cm9uZz46IHskeW91cl9uYW1lfTxiciAvPgo8c3Ryb25nPkVtYWlsPC9zdHJvbmc+OiB7JHlvdXJfZW1haWxfYWRkcmVzc308YnIgLz4KPC9kaXY+CjxoMj5GZWVkYmFjayBEZXRhaWxzPC9oMj4KPGRpdiBjbGFzcz0iZG90dGVkLWJvcmRlciI+CjxzdHJvbmc+U3ViamVjdDwvc3Ryb25nPjogeyRzdWJqZWN0fTxiciAvPgo8c3Ryb25nPkNvbW1lbnRzPC9zdHJvbmc+OjxiciAvPgp7JG1lc3NhZ2V9CjwvZGl2Pgo8aDM+T3RoZXIgaW5mb3JtYXRpb248L2gzPgo8cD4KPHN0cm9uZz5EYXRlIG9mIFN1Ym1pc3Npb248L3N0cm9uZz46IHskc3ViX2RhdGV9PGJyIC8+CjxzdHJvbmc+Rm9ybSBOYW1lPC9zdHJvbmc+OiB7JHN1Yl9mb3JtX25hbWV9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+CjxzdHJvbmc+RG9tYWluOjwvc3Ryb25nPiB7JHN1Yl9ob3N0fTxiciAvPgo8c3Ryb25nPlNlbmRlcidzIElQPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9CjwvcD4KPC9ib2R5Pgo8L2h0bWw+IF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMiIKCQl0eXBlPSJTdGF0aWNUZXh0RmllbGQiCgkJbmFtZT0iQ1NTIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9InRleHQiPjwhW0NEQVRBWzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci5jb250YWN0Zm9ybSBmaWVsZHNldCB7cGFkZGluZzogMWVtOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO30KLmNvbnRhY3Rmb3JtIGZpZWxkc2V0IGxlZ2VuZCB7Zm9udC13ZWlnaHQ6IGJvbGQ7fQouY29udGFjdGZvcm0gZGl2IHt3aWR0aDogMTAwJTsgcGFkZGluZzogMC4yNWVtIDAgMC4yNWVtIDA7fQouY29udGFjdGZvcm0gZGl2IGxhYmVsIHtkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwZW07IH0KLmNvbnRhY3Rmb3JtIGRpdi5yZXF1aXJlZCB7Y29sb3I6ICNmMDA7fQo8L3N0eWxlPl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjMiCgkJdHlwZT0iRmllbGRzZXRTdGFydCIKCQluYW1lPSJDb250YWN0IEZpZWxkc2V0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIzIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImxlZ2VuZCI+PCFbQ0RBVEFbQ29udGFjdF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjQiCgkJdHlwZT0iRnJvbUVtYWlsTmFtZUZpZWxkIgoJCW5hbWU9IllvdXIgTmFtZSIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNCIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI1IgoJCXR5cGU9IkZyb21FbWFpbEFkZHJlc3NGaWVsZCIKCQluYW1lPSJZb3VyIEVtYWlsIEFkZHJlc3MiCgkJdmFsaWRhdGlvbl90eXBlPSJlbWFpbCIKCQlvcmRlcl9ieT0iNSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI2IgoJCXR5cGU9IkZyb21FbWFpbFN1YmplY3RGaWVsZCIKCQluYW1lPSJTdWJqZWN0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI2IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjciCgkJdHlwZT0iVGV4dEFyZWFGaWVsZCIKCQluYW1lPSJNZXNzYWdlIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI3IgoJCXJlcXVpcmVkPSIxIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9InJvd3MiPjwhW0NEQVRBWzVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjb2xzIj48IVtDREFUQVs2MF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjgiCgkJdHlwZT0iRmllbGRzZXRFbmQiCgkJbmFtZT0iQ29udGFjdCBGaWVsZHNldCBFbmQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjgiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KPC9mb3JtPgo=]]></data>
	</file>
	<file>
	  <filename>/includes/new_form_footer.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CXskZmJfZm9ybV9lbmR9CnsvaWZ9CnskZmJfZm9ybV9mb290ZXJ9]]></data>
	</file>
	<file>
	  <filename>/includes/new_form_header.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmYl9mb3JtX2hlYWRlcn0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/includes/Sample_Form.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjIiCgluYW1lPSJTYW1wbGUgRm9ybSIKCWFsaWFzPSJzYW1wbGVfZm9ybSI+CgkJPGF0dHJpYnV0ZSBrZXk9InByZXZfYnV0dG9uX3RleHQiPjwhW0NEQVRBW0JhY2suLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icmVxdWlyZWRfZmllbGRfc3ltYm9sIj48IVtDREFUQVsqXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVuc3BlY2lmaWVkIj48IVtDREFUQVtbdW5zcGVjaWZpZWRdXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9Imxpc3RfZGVsaW1pdGVyIj48IVtDREFUQVsgLSBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idGl0bGVfcG9zaXRpb24iPjwhW0NEQVRBW2xlZnRdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+CgkJCTx1bD4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQkJey9mb3JlYWNofQoJCQk8L3VsPgoJCTwvZGl2PgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQogICAgICAgIAl7c3RyaXB9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTxkaXYKICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CiAgICAgICAgICAgICAgICAJCXJlcXVpcmVkCiAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KICAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+Y3NzX2NsYXNzfQogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9CiAgICAgICAgICAgIAl7L3NlY3Rpb259CiAgICAgICAgIAl7ZWxzZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPC9kaXY+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJey9zdHJpcH0KICAgICAJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+Cgl7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYWN0aW9uIj48IVtDREFUQVt0ZXh0XV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImlucHV0X2J1dHRvbl9zYWZldHkiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NwYXRjaGEiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idGl0bGVfdXNlcl9jYXB0Y2hhIj48IVtDREFUQVtQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJuZXh0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtDb250aW51ZS4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW1NlbmQgRmVlZGJhY2tdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV9kaXNwbGF5dHlwZSI+PCFbQ0RBVEFbdGFiXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbZm9ybWJ1aWxkZXJmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNhcHRjaGFfd3JvbmciPjwhW0NEQVRBW0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Ll1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfcmVzcG9uc2UiPjwhW0NEQVRBWzxoMT5UaGFua3MhPC9oMT4KCjxwPllvdXIgZmVlZGJhY2sgaGVscHMgbWUgbWFrZSB0aGlzIGEgYmV0dGVyIG1vZHVsZS48L3A+XV0+PC9hdHRyaWJ1dGU+Cgk8ZmllbGQgaWQ9IjkiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCW5hbWU9ImNzcyIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVs8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgouZm9ybWJ1aWxkZXJmb3JtIGZpZWxkc2V0IHtwYWRkaW5nOiAxZW07IGJhY2tncm91bmQtY29sb3I6ICNlZWU7fQouZm9ybWJ1aWxkZXJmb3JtIGZpZWxkc2V0IGxlZ2VuZCB7Zm9udC13ZWlnaHQ6IGJvbGQ7fQouZm9ybWJ1aWxkZXJmb3JtIGRpdiB7cGFkZGluZzogMC4yNWVtIDAgMC4yNWVtIDA7fQo8L3N0eWxlPl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEwIgoJCXR5cGU9IkZpZWxkc2V0U3RhcnQiCgkJbmFtZT0iRmllbGRzZXQgU3RhcnQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjIiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0ibGVnZW5kIj48IVtDREFUQVtIZWxwIEltcHJvdmUgRm9ybSBCdWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTEiCgkJdHlwZT0iRGlzcG9zaXRpb25FbWFpbCIKCQluYW1lPSJTZW5kIEl0IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIzIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFNhbXBsZSBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlciBJbnN0YWxsYXRpb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyaG9zdC5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVtzamdAY21zbW9kdWxlcy5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGgxPlNvbWVvbmUncyBUZXN0aW5nIGEgRm9ybUJ1aWxkZXIgU3VibWlzc2lvbiE8L2gxPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4KPHN0cm9uZz5Zb3VyIHNlcnZlcjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5JUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+Cgo8aHIgLz4KPHN0cm9uZz5Nb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcjwvc3Ryb25nPjogeyRtb2R1bGVzX3lvdV9sbF9iZV91c2luZ308YnIgLz4KPHN0cm9uZz5XaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT88L3N0cm9uZz46IHskd2hhdF93aWxsX3lvdX08YnIgLz4KPHN0cm9uZz5XaGVyZSBhcmUgeW91IGZyb20/PC9zdHJvbmc+OiB7JHdoZXJlX2FyZV95b3VfZnJvbV99PGJyIC8+CjxzdHJvbmc+RG8geW91IGhhdmUgYW55IGNvbW1lbnRzIC8gZmVlZGJhY2sgZm9yIG1lPzwvc3Ryb25nPjogeyRkb195b3VfaGF2ZV9hbnl9PGJyIC8+Cl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTIiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCW5hbWU9IldlbGNvbWUhIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI0IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9InRleHQiPjwhW0NEQVRBW1RoYW5rcyBmb3IgdHJ5aW5nIG91dCBGb3JtQnVpbGRlci4gWW91IGNhbiB1c2UgdGhpcyBmb3JtIHRvIHByb3ZpZGUgbWUgd2l0aCBmZWVkYmFjayBhYm91dCBob3cgeW91IHdpbGwgYmUgdXNpbmcgRm9ybSBCdWlsZGVyLCBzbyBJIGNhbiBiZXN0IGFsbG9jYXRlIHJlc291cmNlcyBmb3IgZnV0dXJlIGRldmVsb3BtZW50LiBUaGFua3MsIF9fX1NhbXVlbF9fX11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEzIgoJCXR5cGU9IkNoZWNrYm94R3JvdXBGaWVsZCIKCQluYW1lPSJNb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlciIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbRm9ybSBCdWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0Zvcm0gQnJvd3Nlcl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGcm9udC1lbmQgVXNlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbTmV3c2xldHRlciBNYWRlIFNpbXBsZSAoTk1TKV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtQcm90ZWN0ZWQgUGFnZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbT3RoZXJzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW2Zvcm1idWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW2Zvcm1icm93c2VyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW2ZldXNlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbbm1zXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW3Byb3RlY3RlZCBwYWdlc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtvdGhlcnNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgZm9ybWJ1aWxkZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgZm9ybWJyb3dzZXJdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgZmV1c2Vyc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBubXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgcHJvdGVjdGVkIHBhZ2VzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IG90aGVyc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbeV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfaXNfc2V0Ij48IVtDREFUQVtuXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjE0IgoJCXR5cGU9IkNoZWNrYm94R3JvdXBGaWVsZCIKCQluYW1lPSJXaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT8iCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjYiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0Rlc2lnbiBIVE1ML0NTU11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtQb3B1bGF0ZS9NYWludGFpbiBDb250ZW50XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0dyYXBoaWNhbCBEZXNpZ25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbSW5zdGFsbC9Db25maWd1cmUgbW9kdWxlc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtFZGl0IFNtYXJ0eSBUZW1wbGF0ZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbQ3JlYXRlIE1vZHVsZXMgb3IgQ29kZSBVc2VyIFRhZ3NdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbQ3JlYXRlIEV2ZW50IFdvcmtmbG93c11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtIYWNrIHRoZSBDb3JlLCBFeHRlbmQgQ01TXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW1BvcnQgQ01TIE1TIHRvIFJ1Ynkgb24gUmFpbHNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbaHRtbF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtjb250ZW50XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW2dyYXBoaWNzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW21vZHVsZXNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbc21hcnR5XV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW3BocF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtldmVudHNdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbaGFjayBjb3JlXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW3JhaWxzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IGh0bWxdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgY29udGVudF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBncmFwaGljc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBtb2R1bGVzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IHNtYXJ0eV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCBwaHBdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtub3QgZXZlbnRzXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbbm90IGhhY2sgY29yZV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW25vdCByYWlsc11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjE1IgoJCXR5cGU9IkNvdW50cnlQaWNrZXJGaWVsZCIKCQluYW1lPSJXaGVyZSBhcmUgeW91IGZyb20/IgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI3IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCQk8b3B0aW9uIG5hbWU9ImRlZmF1bHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InNlbGVjdF9vbmUiPjwhW0NEQVRBW1NlbGVjdCBPbmVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNiIKCQl0eXBlPSJUZXh0QXJlYUZpZWxkIgoJCW5hbWU9IkRvIHlvdSBoYXZlIGFueSBjb21tZW50cyAvIGZlZWRiYWNrIGZvciBtZT8iCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjgiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJyb3dzIj48IVtDREFUQVsxMF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNvbHMiPjwhW0NEQVRBWzYwXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjE3IgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCW5hbWU9IkZpZWxkc2V0IEVuZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iOSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgo8L2Zvcm0+Cg==]]></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[PD9waHAKLy8gRW5nbGlzaF9VUyBMb2NhbGl6YXRpb24gRmlsZQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRm9ybSBCdWlsZGVyJzsKCi8vIGZpZWxkIHR5cGVzCiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J109Jy1GaWVsZHNldCBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddPSdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddPSdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ109J1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXT0nQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ109J0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXT0nUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ109J011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddPSdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXT0nQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ109J0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ109J0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ109J1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ109J1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXT0nKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXT0nKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ109JypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXT0nKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ109JypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXT0nKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ109JypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ109JypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ109JypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ109JypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ109Jy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ109J0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ109J0VtYWlsICJGcm9tIEFkZHJlc3MiIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ109J0VtYWlsICJGcm9tIE5hbWUiIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ109J0VtYWlsICJTdWJqZWN0IiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddPSctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXT0nLVN0YXRpYyBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ109J0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ109Jy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CgoKLy8gdmFsaWRhdGlvbiB0eXBlcwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ109J05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ109J051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ109J0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ109J0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ109J1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddPSdNdXN0IEJlIENoZWNrZWQnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddPSdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ109J0RvZXNuXCd0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CgovLyB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzIGFuZCBvdGhlciBhbGVydHMKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXT0nUGxlYXNlIGVudGVyIGEgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ109J1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddPSdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXT0nUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcyBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddPSdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ109JyIlcyIgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddPSdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddPSdZb3UgbmVlZCB0aGUgIiVzIiBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ109J1NvcnJ5ISBZb3UgZG9uXCd0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ109J0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddPSdGb3JtIGRlbGV0ZWQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXT0nRmllbGQgZGVsZXRlZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ109J0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXT0nWW91IG11c3QgY2hlY2sgIiVzIiBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddPSdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ109J0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddPSdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwoKLy8gYWJicmV2aWF0aW9ucywgdmVyYnMsIGFuZCBvdGhlciBnZW5lcmFsIHRlcm1zCiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1vdXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddPSdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ109JyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXT0nJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddPSclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXT0nT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXT0nW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddPSdhZGRlZCc7CiRsYW5nWyd1cGRhdGVkJ109J3VwZGF0ZWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ109J1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXT0nU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXT0nVG8nOwokbGFuZ1sneWVzJ109J1llcyc7CiRsYW5nWydubyddPSdObyc7CiRsYW5nWydyZWNpcGllbnRzJ109J3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXT0nU2F2ZSc7CiRsYW5nWydhZGQnXT0nQWRkJzsKJGxhbmdbJ3VwZGF0ZSddPSdVcGRhdGUnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXT0nU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddPSdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXT0nQXV0b21hdGljJzsKJGxhbmdbJ2Zvcm1zJ109J0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXT0nRm9ybSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ109J0NvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddPSdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXT0nRXh0ZW5zaW9ucyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ109J0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddPSdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddPSdUaGlzIHR5cGUgb2YgZmlsZSBtYXkgbm90IGJlIHVwbG9hZGVkLiBQbGVhc2UgY2hlY2sgdGhhdCB0aGUgZXh0ZW5zaW9uIGlzIGNvcnJlY3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybSBJbXBvcnRlZC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybSBpbXBvcnQgZmFpbGVkISBUaGVyZSB3YXMgYSBwcm9ibGVtIHdpdGggdGhlIGZvcm1hdCBvZiB0aGUgWE1MIGZpbGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByb3dzJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xzJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiBIb3VyIENsb2NrJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCBIb3VyIENsb2NrJzsKJGxhbmdbJ2hvdXInXSA9ICdIb3VyJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0ZSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdSYW5nZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUaGFua3MhIFlvdXIgc3VibWlzc2lvbnMgaGF2ZSBiZWVuIHJlY2VpdmVkLic7CiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwokbGFuZ1snZGF5J10gPSAnRGF5JzsKJGxhbmdbJ21vbiddID0gJ01vbnRoJzsKJGxhbmdbJ3llYXInXSA9ICdZZWFyJzsKJGxhbmdbJ25vbmUnXSA9ICcobm9uZSknOwoKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKCiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CgokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZWNrZWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnVW5jaGVja2VkJzsKCiRsYW5nWyd0YWJfbWFpbiddPSdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXT0nRm9ybSBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXT0nRm9ybSBTdWJtaXNzaW9uJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ109J0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ109J0FkdmFuY2VkIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0Zvcm0gVGVtcGxhdGUnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwoKCiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKCi8vIEZpZWxkIEF0dHJpYnV0ZSBUaXRsZXMKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXT0nTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXT0nQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXT0nUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXT0nVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddPSdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ109J0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXT0nIlNlbGVjdCBPbmUiIFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXT0nU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddPSdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddPSJPcHRpb24gTmFtZSI7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXT0iVmFsdWUgU3VibWl0dGVkIjsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXT0nUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ109J011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddPSdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddPSciRnJvbSBuYW1lIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddPSdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddPSdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICJ4QHkiIGluc3RlYWQgb2YgcmVxdWlyaW5nICJ4QHkudGxkIiknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ109JyJGcm9tIGFkZHJlc3MiIGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddPSdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXT0nUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddPSdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddPSdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ109J0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddPSdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddPSdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ109J05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ109J1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXT0nUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXJcJ3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ109J3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXT0nRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddPSdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddPSdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddPSdTaG93IEZpZWxkIEFsaWFzZXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddPSdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXT0nRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddPSdGaWVsZCBBbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXT0nUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddPSdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXT0ndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddPSdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddPSdBZGQgTmV3IEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ109J1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ109J1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ109J0FkZCBOZXcgRmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ109J0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J109J0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddPSdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ109J0Zvcm0gIk5leHQiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICJQcmV2aW91cyIgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddPSdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ109J0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddPSdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXT0nU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ109J1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXT0nUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXT0nSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXT0nSGlkZSB0aGlzIGZpZWxkXCdzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J109J1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXT0nVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddPSdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ109J1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddPSdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAidmFsaWRhdGlvbiB0eXBlIiBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAiL2ltYWdlXC4oXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J109J1JlcVwnZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddPSdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddPSdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddPSdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXT0nTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ109J1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXT0nRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICJqcGcsZ2lmLGpwZWciKS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ109J0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXT0nRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXT0nVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddPSdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddPSdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ109J0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXT0nQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXT0nRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddPSdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddPSdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddPSdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ109J0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddPSdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddPSdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ109J0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ109J0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uXCd0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXT0nTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ109J0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J109J0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddPSdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddPSdEaXNwbGF5IFVzZXJcJ3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ109J0Rpc3BsYXkgVXNlclwncyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddPSdEaXNwbGF5IFVzZXJcJ3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddPSdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXT0nVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXT0nVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ109J0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ109J1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddPSdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddPSdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ109J0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXT0nVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddPSdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXT0nWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9Im9kZCI+bmFtZTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgInskZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddPSdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddPSdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXT0nRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXT0nJiMxNzE7IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddPSdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXT0nYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ109J1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXT0nVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J109J0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXT0nVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJ3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAiRGlzcG9zaXRpb24iIGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgIlN1Ym1pc3Npb24gVGVtcGxhdGUiJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAiYWR2YW5jZWQiIHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddPSdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ109J0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwoKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddPSdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAiJXMiLic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ109J05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXT0nVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ109J1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdVwncmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICJkZWZhdWx0IiB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddPSdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CgokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsgCgokbGFuZ1snZGF0ZV9qYW51YXJ5J109J0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddPSdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ109J01hcmNoJzsKJGxhbmdbJ2RhdGVfYXByaWwnXT0nQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXT0nTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddPSdKdW5lJzsKJGxhbmdbJ2RhdGVfanVseSddPSdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J109J0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddPSdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ109J09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddPSdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ109J0RlY2VtYmVyJzsKCiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ109J0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J109J0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXT0nRGVmYXVsdDogY2hlY2tlZCc7CgokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gIkZvcm1CdWlsZGVyIFN1Ym1pc3Npb24iOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsgICAgICAKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7ICAJCQokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ109J1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKCiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J109J0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ109J0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXT0nRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CgokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddPSc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+dmFsdWVfJmx0O25hbWUmZ3Q7PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddPSc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPgo8aDQ+UGFyYW1ldGVyczwvaDQ+Cjx1bD4KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPgo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPgo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjwvdWw+ICc7CgokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwoKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICIKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91J2QgbGlrZS4KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UnbGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJiMxMjM7XCRmYl9oaWRkZW59IGFuZCAmIzEyMztcJHN1Ym1pdH0KICAgdGFncy48L3A+Cgo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgXCRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJiMxMjM7XCRteWZpZWxkLT5pbnB1dH0gKTwvcD4KCgo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgo8dGFibGU+Cjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0J3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJ3MgbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQncyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCdzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9XCJcIj4pPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJ3MgZGF0YSB0eXBlPC90ZD48L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+CjwvdGFibGU+Cgo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4KICAgIAo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4KPHRhYmxlPgo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyBcInBhZ2UgeCBvZiB5XCIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+Cjx0cj48dGQ+cHJldjwvdGQ+PHRkPlwiQmFja1wiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPlwiQ29udGludWVcIiBvciBcIlN1Ym1pdFwiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+CjwvdGFibGU+CjxwPkR1bm5vIHdoeSB5b3UnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+CiI7CgovLyBwb3N0LWluc3RhbGwgbWVzc2FnZQokbGFuZ1sncG9zdF9pbnN0YWxsJ109Igo8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSBcIk1vZGlmeSBGb3Jtc1wiIHBlcm1pc3Npb25zCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSdsbCBiZSBlbWFpbGluZyBmb3JtCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPgo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPgo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPiI7CgokbGFuZ1snaGVscCddID0gIjxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPgo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQncyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+CjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4KCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UncmUKcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPgoKPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPgo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQpDb25maWd1cmF0aW9uLjwvcD4KCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+CjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcwpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9J0Zvcm1CdWlsZGVyJyBmb3JtPSdzYW1wbGVfZm9ybSd9PC9wPgo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZwppbnRvIGEgcGFnZSdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkKY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoXCIpIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nCnNpbmdsZSBxdW90ZXMgKCcpIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPgoKPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+CjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSdzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPgo8aDQ+TWFpbjwvaDQ+CjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91J2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+CjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSBcImZhc3QgZmllbGQgYWRkZXJcIiBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+CjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+CjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXIncyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zIChcIlByZXZpb3VzXCIsIFwibmV4dFwiLCBcInN1Ym1pdFwiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPgo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pgo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPgo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+CjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pgo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0ncyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPgo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+CjxwPlVubGVzcyB5b3UncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pgo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAnRGlzcGxheSBcIlN1Ym1pc3Npb24gVGVtcGxhdGVcIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4KPHA+SWYgeW91J3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91J3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lgo8L3A+Cgo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPgo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPgo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4KPC91bD4KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwKYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cwp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0J3Mgc2FmZSB0byB1c2UgZm9yCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+CjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwKdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcKdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPgo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscAplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQpzZXBhcmF0ZWx5IG1hcmtlZCBcIlJlcXVpcmVkXCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+CjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cKY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvIFwidmlldyBzb3VyY2VcIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuCndyaXRlIHlvdXIgQ1NTLjwvcD4KPHVsPgo8bGk+U3RhbmRhcmQgSW5wdXRzCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbgpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+CjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+CjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPgo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+CjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0J3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbgpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+CjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPgo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPgo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPgo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+CjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+CjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPgo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSBcIkZyb21cIiBmaWVsZC48L2xpPgo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSBcIkZyb21cIiBmaWVsZC48L2xpPgo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlIFwiU3ViamVjdFwiIGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4KPC91bD48L2xpPgoKPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+CjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMKaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+CjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91J3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+CjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91J3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+CjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+CjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykKPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyBcJHBhcmFtWydmaWVsZF9uYW1lJ10uPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgXCJEaXJlY3RvclwiIHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUKZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+CjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+CjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCBcImFwcHJvdmVkLFwiIGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+CjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIFwib3V0cHV0XCIgZGlyZWN0b3J5IHVuZGVyIHRoZQptb2R1bGUncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+Cgo8L3VsPjwvbGk+PC9saT48L3VsPgoKCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUKYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSdGb3JtQnVpbGRlcicgZm9ybT0nbXlfZm9ybScgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0nZGVmYXVsdF92YWx1ZSd9PC9wPgo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJ2RlZmF1bHRfdmFsdWUnLjwvcD4KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbgphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9J0Zvcm1CdWlsZGVyJyBmb3JtPSdteV9mb3JtJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSdkZWZhdWx0X3ZhbHVlJ308L3A+CjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsCmFuZCBjaGVjayBcIlNob3cgRmllbGQgSURzXCI8L3A+Cgo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPgo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQncyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSBcIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGVcIiBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPgo8cD5UbyB0aGUgcmlnaHQsIHlvdSdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPgo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSd2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSBcIkNyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZVwiIGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPgoKPGgzPkNvbmZpZ3VyYXRpb248L2gzPgo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+Cjx1bD4KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+CjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPgo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+CjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UncmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPgo8L3VsPgo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4KPHByZT4KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLwoJZm9ybSB7bWFyZ2luLXRvcDowfQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9CglmaWVsZHNldCBkaXYgewoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJbWFyZ2luLWxlZnQ6MWVtOwoJfQoJZmllbGRzZXQgZGl2IGRpdiB7CgkJbWFyZ2luLXRvcDowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW0KCX0KCWZpZWxkc2V0IHsKCQltYXJnaW4tYm90dG9tOjFlbTsKCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7CgkJcGFkZGluZzowLjVlbQoJfQoJZmllbGRzZXQgbGFiZWwgewoJCXdpZHRoOmF1dG87Cgl9CglsZWdlbmQgewoJCWNvbG9yOiNGRkY7CgkJYmFja2dyb3VuZDojRjYwOwoJCWZvbnQtc3R5bGU6aXRhbGljOwoJCWZvbnQtc2l6ZToxLjJlbTsKCQltYXJnaW4tYm90dG9tOjAuNWVtOwoJCXBhZGRpbmc6MC4yZW07CgkJd2lkdGg6YXV0bzsKCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MKCX0KCXRleHRhcmVhIHsKCQltYXJnaW46IDAuNWVtIDA7CgkJd2lkdGg6OTglOwoJCWhlaWdodDogNmVtCgl9CgoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscwoJCXRvIGhlbHAgYWxpZ25tZW50ICovCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19Cgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LAoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19CgoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8KCS5jYXB0Y2hhIHsKCQltYXJnaW46MC41ZW0gMDsKCQl3aWR0aDoyMDBweDsKCQl0ZXh0LWFsaWduOmNlbnRlcgoJfQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19CgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19CgoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQo8L3ByZT4KCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CiIuJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXS4iCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UncmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+CjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UncmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSBcIkhpZGUgRXJyb3JzXCIgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPgo8L29sPiAKPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJ3ZlIGRvbmUgYWxsIEkgY2FuCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbwphdGUgdGhlIG5laWdoYm9yJ3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPgo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4KPGgzPlN1cHBvcnQ8L2gzPgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj1cImh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmdcIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+CjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmdcIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPgo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXNcIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+CjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+CjwvdWw+CjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciB3cml0ZSB5b3VyIHF1ZXN0aW9ucyBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjYXNoKS48L3A+CjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dApvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+CjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPgo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9XCJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUExcIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPiI7CgokbGFuZ1snY2hhbmdlbG9nJ10gPSAiCjx1bD4KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPgo8bGk+VmVyc2lvbiAwLjQuNC4gMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC40LjEuIEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNAoJPHVsPgoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+CgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPgoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6IFwiVGV4dEZpZWxkIChNdWx0aXBsZSlcIiBhbmQgXCJDb21wdXRlZCBGaWVsZFwiPC9saT4KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiBcIlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duXCIgYW5kIFwiU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9uc1wiKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+CgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9XCJ2YWx1ZVwiIHN5bnRheCAoQ2FsZ3V5KTwvbGk+CgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+Cgk8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjMKICAgPHVsPgogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPgogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPgogICAgICA8bGk+QWRkZWQgUGF1bCBOb29uZSdzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+CiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPgogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPgogICAgICA8bGk+QWRkZWQgRHJhZyduJ0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPgogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPgogICAgICA8bGk+SW1wbGVtZW50ZWQgdGVtcGxhdGVkIGRpc3BsYXkgb2YgZm9ybSByZXN1bHRzIHVwb24gc3VibWlzc2lvbiBpbiBhZGRpdGlvbiB0byBwYWdlIHJlZGlyZWN0aW5nPC9saT4KICAgICAgPGxpPjwvbGk+CiAgIDwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcKICAgPHA+QmlnIHJlbGVhc2U6PHVsPgogICA8bGk+QWRkZWQgXCJFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzc1wiIGRpc3Bvc2l0aW9uLjwvbGk+CiAgIDxsaT5BZGRlZCBcIlRpbWVQaWNrZXJcIiBmaWVsZCB0eXBlLiBTcGxpdCBcIkxpbmtcIiBmaWVsZCBpbnRvIGEgXCJVc2VyLXN1cHBsaWVkIExpbmtcIiBmaWVsZCBhbmQgYSBcIlN0YXRpYyBMaW5rXCIgZmllbGQuPC9saT4KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPgogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPgogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjMKICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4yCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOgogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMKICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UKICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQKICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuCiAgICAgIDwvcD4KICAgICAgPC9saT4KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4KICAgICAgPC9saT4KICAgPC91bD4KICAgPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3J3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPgo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4KPC91bD4KIjsKCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R2xa9yY2UgZm9ybXVsJmFhY3V0ZTvFmcWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVHlwIHBvbGUgbmVieWwgbmFzdGF2ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dG92JmVhY3V0ZTsgdnN0dXBuJmlhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0b3YmZWFjdXRlOyB2c3R1cG4maWFjdXRlOyBwb2xlICh2JmlhY3V0ZTtjZW4mYWFjdXRlO3NvYm4mZWFjdXRlOyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dG92JnlhY3V0ZTsgciZhYWN1dGU7bWXEjWVrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1phJnNjYXJvbjtrcnQmYWFjdXRlO3ZhYyZpYWN1dGU7IHBvbCZpYWN1dGU7xI1rbyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ1NrdXBpbmEgemEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjJmlhY3V0ZTtjaCBwb2wmaWFjdXRlO8SNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUm96YmFsb3ZhYyZpYWN1dGU7IG5hYiZpYWN1dGU7ZGthJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1YmeWFjdXRlO2LEm3IgdiZpYWN1dGU7Y2UgbW/Fvm5vc3QmaWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdWJnlhY3V0ZTtixJtyIHN0JmFhY3V0ZTt0xa8gVVNBJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBzdCZhYWN1dGU7dMWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBkYXRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciDEjWFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NrdXBpbmEgcMWZZXAmaWFjdXRlO25hxI3Fryc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnTmFociZhYWN1dGU7biZpYWN1dGU7IHNvdWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIE5hbWUmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpY2smeWFjdXRlOyB0ZXh0IChTdGF0aWMgVGV4dCknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGljayZ5YWN1dGU7IG9ka2F6IChTdGF0aWMgTGluayknOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdPZGtheiAodmxvxb5lbiZ5YWN1dGU7IHXFvml2YXRlbGVtKSBbTGluayAoVXNlci1lbnRlcmVkKV0nOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1TY2hvdmFuJmVhY3V0ZTsgcG9sZSAoSGlkZGVuIEZpZWxkKSc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctVnlwb8SNJmlhY3V0ZTt0YW4mZWFjdXRlOyBwb2xlIChDb21wdXRlZCBGaWVsZCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnQmV6IG92ZcWZZW4maWFjdXRlOyBwbGF0bm9zdGknOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnxIwmaWFjdXRlO3NlbG4mYWFjdXRlOyBob2Rub3RhIChOdW1lcmljKSc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdDZWxvxI0maWFjdXRlO3NlbG4mYWFjdXRlOyBob2Rub3RhIChJbnRlZ2VyKSc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbG92JmFhY3V0ZTsgYWRyZXNhIChFbWFpbCBBZGRyZXNzKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXMmaWFjdXRlOyBiJnlhY3V0ZTt0IHphJnNjYXJvbjtrcnRudXRvIChNdXN0IEJlIENoZWNrZWQpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnVmUgdnnFvmFkb3ZhbiZlYWN1dGU7bSBwb2xpIG5lYnlsYSB2bG/FvmVuYSBob2Rub3RhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSBwb2xlICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgxI0maWFjdXRlO3NlbG5vdSBob2Rub3R1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBsYXRuJnlhY3V0ZTsgJnVhY3V0ZTtkYWogdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSBjZWxvxI0maWFjdXRlO3NlbG5vdSBob2Rub3R1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBsYXRub3UgZW1haWxvdm91IGFkcmVzdSB2IHBvbGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmV2eXBhZCZhYWN1dGU7IGpha28gcGxhdG4mYWFjdXRlOyBlbWFpbG92JmFhY3V0ZTsgYWRyZXNhISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2bG/FvnRlIGhvZG5vdHUga3JhdCZzY2Fyb247JmlhY3V0ZTsgbmXFviAlcyB6bmFrxa8nOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrLCBrdGVyJnlhY3V0ZTsgYnVkZSBwb3XFvml0IGpha28gb2RkxJtsb3ZhxI0gdmUgdiZ5YWN1dGU7c2xlZGMmaWFjdXRlO2NoLCBrdGVyJmVhY3V0ZTsgdnJhY2VqJmlhY3V0ZTsgdiZpYWN1dGU7Y2UgbmXFviAxIGhvZG5vdHUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnUG/FmWFkJmlhY3V0ZTsgcG9sJmlhY3V0ZTsgYWt0dWFsaXpvdiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bCZhYWN1dGU7xZkgc21heiZhYWN1dGU7bi4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1BvbGUgc21heiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYWNlIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1BybyBwb2tyYcSNb3YmYWFjdXRlO24maWFjdXRlOyBtdXMmaWFjdXRlO3RlIHphJnNjYXJvbjtrcnRub3V0ICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnSnN0ZSBzaSBqaXN0IHZ5bWF6JmFhY3V0ZTtuJmlhY3V0ZTttIGZvcm11bCZhYWN1dGU7xZllICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSnN0ZSBzaSBqaXN0IHNtYXomYWFjdXRlO24maWFjdXRlO20gcG9sZSAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnUG9rcm/EjWlsJmVhY3V0ZTsgbW/Fvm5vc3RpIG5lanNvdSBkb3N0dXBuJmVhY3V0ZTssIGRva3VkIG5lbiZpYWN1dGU7IG5hc3RhdmVuIHR5cCBwb2xlLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnUG9sZSBtdXNlaiZpYWN1dGU7IGImeWFjdXRlO3QgcG9qbWVub3YmYWFjdXRlO25hLCBwb2t1ZCB0b3RvIG5ldnlwbmV0ZSB2IG5hc3RhdmVuJmlhY3V0ZTsgVHbFr3JjZSBmb3JtdWwmYWFjdXRlO8WZxa8uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW4maWFjdXRlOyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnUG/FmWFkJmlhY3V0ZTsnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAncMWZaWQmYWFjdXRlO25vJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpem92JmFhY3V0ZTtubyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdUxZkmaWFjdXRlO2RpdCB2bGFzdG5vc3RpIG5hIHYmeWFjdXRlO3N0dXB1JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3QgT25lJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0IFR5cGUnOwokbGFuZ1sndG8nXSA9ICdUbyc7CiRsYW5nWyd5ZXMnXSA9ICdBbm8nOwokbGFuZ1snbm8nXSA9ICdOZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncMWZJmlhY3V0ZTtqZW1jxa8nOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdVbG/Fvml0JzsKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmF0JzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVWxvxb5pdCBhIHBva3JhxI1vdmF0IHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWNrJmVhY3V0ZTsnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmllbGQgcmVxdWlyZWQgc3RhdGUgdXBkYXRlZC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBTaXplJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUm96JnNjYXJvbjsmaWFjdXRlO8WZZW4maWFjdXRlOyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnUG92b2xlbiZlYWN1dGU7IHR5cHkgc291Ym9yxa8nOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdOYWhyYW4meWFjdXRlOyBzb3Vib3IgamUgcMWZJmlhY3V0ZTtsaSZzY2Fyb247IHZlbGlrJnlhY3V0ZTsuIFBvdm9sZW4mYWFjdXRlOyB2ZWxpa29zdCBqZTonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdUZW50byB0eXAgc291Ym9ydSBuZW3Fr8W+ZSBiJnlhY3V0ZTt0IG5haHImYWFjdXRlO24uIFByb3MmaWFjdXRlO20gemtvbnRyb2x1anRlLCDFvmUgc291Ym9yIG0mYWFjdXRlOyBzcHImYWFjdXRlO3Zub3UgcMWZJmlhY3V0ZTtwb251Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdOYWhyJmFhY3V0ZTt0JzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIMWZJmFhY3V0ZTtka8WvJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBzbG91cGPFryc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0YSc7CiRsYW5nWydtZXJpZCddID0gJ1BvbGVkbiZpYWN1dGU7ayc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWydtb24nXSA9ICdNb250aCc7CiRsYW5nWyd5ZWFyJ10gPSAnWWVhcic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPGVtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FkZCBBbm90aGVyIERlc3RpbmF0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0RlbGV0ZSBNYXJrZWQgRGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3QgT25lJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZGQgTmV3IEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FkZCBOZXcgRmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxJiMwMzk7ZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8mcXVvdDs+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnT3BpJnNjYXJvbjt0ZSBzcHImYWFjdXRlO3ZuxJsgem5ha3kgeiBvYnImYWFjdXRlO3prdS4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ2xlZG5hJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICcmdWFjdXRlO25vcmEnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ2LFmWV6bmEnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ2R1Ym5hJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAna3bEm3RuYSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICfEjWVydm5hJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ8SNZXJ2ZW5jZSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ3NycG5hJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAneiZhYWN1dGU7xZkmaWFjdXRlOyc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICfFmSZpYWN1dGU7am5hJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdsaXN0b3BhZHUnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ3Byb3NpbmNlJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgVGhlcmUgd2FzIGFuIGVycm9yIGhhbmRsaW5nIHlvdXIgZm9ybSBzdWJtaXNzaW9uLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAmcXVvdDtUZXh0RmllbGQgKE11bHRpcGxlKSZxdW90OyBhbmQgJnF1b3Q7Q29tcHV0ZWQgRmllbGQmcXVvdDs8L2xpPg0KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biZxdW90OyBhbmQgJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyZxdW90OyhDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG5lYXQtbyBBSkFYLXkgdGVtcGxhdGUtY29weWluZyBmb3IgRm9ybSBUZW1wbGF0ZXMsIGdhdmUgdmVyc2lvbnMgb2Ygb2xkIHRhYmxlLWJhc2VkIHRlbXBsYXRlcyB0byBzb290aGUgdGhlIHJhZ2luZyBtYXNzZXMuPC9saT4NCgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9JnF1b3Q7dmFsdWUmcXVvdDsgc3ludGF4IChDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjMNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+DQogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUmIzAzOTtzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWcmIzAzOTtuJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+DQogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+DQogICAgICA8bGk+PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNw0KICAgPHA+QmlnIHJlbGVhc2U6PHVsPg0KICAgPGxpPkFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgJnF1b3Q7VGltZVBpY2tlciZxdW90OyBmaWVsZCB0eXBlLiBTcGxpdCAmcXVvdDtMaW5rJnF1b3Q7IGZpZWxkIGludG8gYSAmcXVvdDtVc2VyLXN1cHBsaWVkIExpbmsmcXVvdDsgZmllbGQgYW5kIGEgJnF1b3Q7U3RhdGljIExpbmsmcXVvdDsgZmllbGQuPC9saT4NCiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4NCiAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLjwvbGk+DQogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4zDQogICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMg0KICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICA8bGk+QWRkIFBhZ2VTZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcw0KICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZA0KICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZA0KICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICA8L3A+DQogICAgICA8L2xpPg0KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsDQogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICA8L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3JiMwMzk7cyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNjA4ODU1MjEwLjExNjc5MDgxMDkuMTE5MDc4Njk1Mi4xMTkwNzkyNTE0LjEyOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTA3OTM2NTAuMTI5LjEwLnV0bWNjbj0ob3JnYW5pYyl8dXRtY3NyPWdvb2dsZXx1dG1jdHI9Y21zbWFkZXNpbXBsZSB0cmFuc2xhdGlvbnN8dXRtY21kPW9yZ2FuaWMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQgdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZlbHRzJmFlbGlnO3Qgc2x1dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmVsdHMmYWVsaWc7dCBiZWd5bmQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1Rla3N0ZmVsdCwgZmxlcmUgbGluaWUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQWZrcnlkc25pbmdzYm9rcyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0dydXBwZSBhZiBhZmtyeWRzbmluZ3Nib2tzZSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdMYW5kZSB2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0byBWYWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlkc3ZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBrbmFwIGdydXBwZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgcmVzdWx0YXRldCBiYXNlcmV0IHAmYXJpbmc7IHB1bGxkb3duLXZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqVmlkZXJlc3RpbCB0aWwgc2lkZSBiYXNlcmV0IHAmYXJpbmc7IHB1bGxkb3duLXZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIHJlc3VsdGF0ZXQgdGlsIGFuZ2l2bmUgYWRyZXNzZShyKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWQmZWFjdXRlO3IgdmlhIGVtYWlsIGFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2tyaXYgcmVzdWx0YXRlciB0aWwgYWxtLiB0ZWtzdC1maWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKkdlbSByZXN1bHRhdGVyIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkthbGQgZW4gYnJ1Z2VyZGVmaW5lcmV0IHRhZyBpbmRlIGkgZm9ybXVsYXJlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdGlsIGJydWdlci1hbmdpdmVuIGVtYWlsIGFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkZXNraWZ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsLXVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsIFwmcXVvdDtGcmEgYWRyZXNzZVwmcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsIFwmcXVvdDtGcm9tIE5hbWVcJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbCBcJnF1b3Q7U3ViamVjdFwmcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aXNrIHRla3N0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctU2tqdWx0IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZhbGlkZXJpbmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSGVsdGFsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIGFkcmVzc2UnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnU2thbCB2JmFlbGlnO3JlIHZhbGd0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTa2FsIG1hdGNoZSByZWd1bCZhZWxpZztyIHVkdHJ5ayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdNJmFyaW5nOyBpa2tlIG1hdGNoZSByZWd1bCZhZWxpZztyIHVkdHJ5ayc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRW4gdiZhZWxpZztyZGkgYmxldiBpa2tlIGFuZ2l2ZXQgaSBldCBwJmFyaW5nO2tyJmFlbGlnO3ZldCBmZWx0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQW5naXYgZW4gdiZhZWxpZztyZGkgZm9yIFwmcXVvdDslc1wmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnQW5naXYgZXQgdGFsIGZvciBcJnF1b3Q7JXNcJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0FuZ2l2IGVuIGd5bGRpZyB2JmFlbGlnO3JkaSBmb3IgXCZxdW90OyVzXCZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0FuZ2l2IGV0IGhlbHRhbCBmb3IgXCZxdW90OyVzXCZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdBbmdpdiBlbiBneWxkaWcgZW1haWwgYWRyZXNzZSBmb3IgXCZxdW90OyVzXCZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnXCZxdW90OyVzXCZxdW90OyBlciBpa2tlIGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQW5naXYgZW4gdiZhZWxpZztyZGkgZGVyIGlra2UgZXIgbCZhZWxpZztuZ2VyZSBlbmQgJXMgdGVnbic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gZGVyIGthbiBiZW55dHRlcyB0aWwgYXQgYWRza2lsbGUgZmxlcmUgdiZhZWxpZztyZGllcic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlIFwmcXVvdDslc1wmcXVvdDsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgb3BlcmF0aW9uLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBZb3UgZG9uXCYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGZWx0LXImYWVsaWc7a2tlZiZvc2xhc2g7bGdlbiBibGV2IG9wZGF0ZXJldC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXJlbSBibGV2IHNsZXR0ZXQnOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZlbHRldCBibGV2IHNsZXR0ZXQnOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnS29uZmlndXJhdGlvbmVuIGJsZXYgb3BkYXRlcmV0JzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRHUgc2thbCBzJmFlbGlnO3R0ZSBrcnlkcyBpIFwmcXVvdDslc1wmcXVvdDsgZm9yIGF0IGZvcnRzJmFlbGlnO3R0ZSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRHUgc2thbCBhbmdpdmUgbWluZHN0IGVuIG1vZHRhZ2VyLWFkcmVzc2UnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZm9ybXVsYXJlbiAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIGZlbHRldCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnVWR2aWRlZGUgaW5kc3RpbGxpbmdlciBrYW4gZiZvc2xhc2g7cnN0IHNlcywgbiZhcmluZztyIGRlciBlciB2YWxndCBmZWx0dHlwZSc7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0ZlbHRuYXZuZXQgXCZxdW90OyVzXCZxdW90OyBlciBhbGxlcmVkZSBpIGJydWcuIEJlbnl0IHZlbmxpZ3N0IHVuaWtrZSBmZWx0bmF2bmUnOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZlbHRlciBza2FsIG5hdm5naXZlcyBtZWQgbWluZHJlIGR1IHNsJmFyaW5nOyBkZXR0ZSBmcmEgaSBGb3JtdWxhciBHZW5lcmF0b3JlbnMgaW5kc3RpbGxpbmdlcic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYWVsaWc7bmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZ211bGlnaGVkZXInOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycyc7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW2lra2UgYW5naXZldF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxmJm9zbGFzaDtqZXQnOwokbGFuZ1sndXBkYXRlZCddID0gJ29wZGF0ZXJldCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0JmVhY3V0ZTtyIHZhbGdtdWxpZ2hlZGVyIHZlZCBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYWVsaWc7bGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWJmFlbGlnO2xnZXR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vZHRhZ2VyZSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbXVsaWdlIGZpbGVyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdHZW0nOwokbGFuZ1snYWRkJ10gPSAnVGlsZiZvc2xhc2g7aic7CiRsYW5nWyd1cGRhdGUnXSA9ICdPcGRhdCZlYWN1dGU7cic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0dlbSBvZyBmb3J0cyZhZWxpZzt0IHJlZGlnZXJpbmcnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNrJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsYXJlcic7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbHRldHMgcCZhcmluZztrciZhZWxpZzt2ZXQtc3RhdHVzIG9wZGF0ZXJldCc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzLiBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVWR2aWRlbHNlcic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlsbGFkdGUgZmlsdHlwZXInOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdEZW4gdXBsb2FkXCYjMDM5O2VkZSBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbWFsIHN0Jm9zbGFzaDtycmVsc2UgZXI6ICc7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIG0mYXJpbmc7IGlra2UgdXBsb2FkZXMuIEtvbnRyb2xsJmVhY3V0ZTtyIHZlbmxpZ3N0IGF0IGZpbHR5cGVuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0ZXJldCc7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgYWYgZm9ybXVsYXIgZmVqbGVkZS4gRGVyIHZhciBldCBwcm9ibGVtIG1lZCBmb3JtYXRldCBhZiBYTUwtZmlsZW4nOwokbGFuZ1sncm93cyddID0gJyVzIHImYWVsaWc7a2tlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyB0aWQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyB0aWQnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGFrISBEaW4gYWZzZW5kZWxzZSBlciBtb2R0YWdldC4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnJmVhY3V0ZTtyJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXQnOwokbGFuZ1snZGF5J10gPSAnRGFnJzsKJGxhbmdbJ21vbiddID0gJ00mYXJpbmc7bmVkJzsKJGxhbmdbJ3llYXInXSA9ICcmQXJpbmc7cic7CiRsYW5nWydub25lJ10gPSAnKGluZ2VuKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZXQgYmxldiBhZmluc3RhbGxlcmV0JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZSB2ZXJzaW9uICVzIGluc3RhbGxlZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgdXBncmFkZWQgdG8gdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVGlsYmFnZS4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU2VuZCBmb3JtdWxhcic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdWaWRlcmUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1ZhbGd0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgdmFsZ3QnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtdWxhciBmcmVtdmlzbmluZ3MgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybXVsYXIgYWZzZW5kZWxzZSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBdmFuY2VyZWRlIGluZHN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0Fmc2VuZGVsc2VzIHNrYWJlbG9uJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ1RpbGYmb3NsYXNoO2ogZmxlcmUgdmFsZ211bGlnaGVkZXInOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdTbGV0IG1hcmtlcmVkZSB2YWxnbXVsaWdoZWRlcic7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FkZCBNb3JlIENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdEZWxldGUgTWFya2VkIENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZGQgQW5vdGhlciBBZGRyZXNzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRGVsZXRlIE1hcmtlZCBBZGRyZXNzZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWRkIEFub3RoZXIgRGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRGVsZXRlIE1hcmtlZCBEZXN0aW5hdGlvbnMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUb28gbWFueSBlbWFpbHMgZ2VuZXJhdGVkIGZyb20geW91ciBJUCBhZGRyZXNzLiBBbnRpLVNwYW0gY29kZSBoYXMgcHJldmVudGVkIGRlbGl2ZXJ5Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdPbWFycmFuZyZlYWN1dGU7ciBmZWx0ZXInOwokbGFuZ1snY2FuY2VsJ10gPSAnRm9ydHJ5ZCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdcJnF1b3Q7U2VsZWN0IE9uZVwmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnXCZxdW90O0ZyYSBuYXZuXCZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQmVueXQgYWZzbGFwcGV0IGVtYWlsLXZhbGlkZXJpbmcgKGYuZWtzLiwgdGlsbGFkIFwmcXVvdDt4QHlcJnF1b3Q7IGkgc3RlZGV0IGZvciBhdCBrciZhZWxpZzt2ZSBcJnF1b3Q7eEB5LnRsZFwmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJ1wmcXVvdDtGcm9tIGFkZHJlc3NcJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtdWxhciBuYXZuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsYXIgc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnS2xhciB0aWwgYnJ1Zyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnSWtrZSBrbGFyJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTaWRlIGRlciBza2FsIHZpZGVyZXN0aWxsZXMgdGlsIGVmdGVyIGFmc2VuZGVsc2UgYWYgZm9ybXVsYXInOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnYmVueXQgZGVubmUgZ2VudmVqJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gXCZxdW90O05leHRcJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtIFwmcXVvdDtQcmV2aW91c1wmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZFwmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgXCZxdW90O3ZhbGlkYXRpb24gdHlwZVwmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgXCZxdW90Oy9pbWFnZVwuKFxkKykvaVwmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcVwmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgXCZxdW90O2pwZyxnaWYsanBlZ1wmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGFcJnF1b3Q7IHRhcmdldD1cJnF1b3Q7X25ld1wmcXVvdDs+XCZxdW90O0NhcHRjaGFcJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj1cJnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhL1wmcXVvdDs+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj1cJnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYVwmcXVvdDsgdGFyZ2V0PVwmcXVvdDtfbmV3XCZxdW90Oz5cJnF1b3Q7Q2FwdGNoYVwmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGFmc2VuZGVsc2UnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0ZpZWxkcyB0aGF0IGhhdmUgbXVsdGlwbGUgdmFsdWVzIG1heSBhbHNvIGJlIGFjY2Vzc2VkIHZpYSB0aGUgc21hcnR5IHZhbHVlIG9mICRmaWVsZG5hbWVfYXJyYXkgb3IgJGZsZF8jX2FycmF5Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHBcJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPVwmcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwXCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzblwmIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgXCZxdW90O0Rpc3Bvc2l0aW9uXCZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5IFwmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlXCZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgXCZxdW90O2FkdmFuY2VkXCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgQWZzZW5kZWxzZSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdVwmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0XCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkXCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj1cJnF1b3Q7XCZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzIFwmcXVvdDtwYWdlIHggb2YgeVwmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD5cJnF1b3Q7QmFja1wmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPlwmcXVvdDtDb250aW51ZVwmcXVvdDsgb3IgXCZxdW90O1N1Ym1pdFwmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91XCYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlIFwmcXVvdDtNb2RpZnkgRm9ybXNcJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3VcJiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJ2gzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXRcJiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91XCYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT1cJiMwMzk7Rm9ybUJ1aWxkZXJcJiMwMzk7IGZvcm09XCYjMDM5O3NhbXBsZV9mb3JtXCYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlXCYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoXCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO2FtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzIChcJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybVwmIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3VcJiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSBcJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlclwmcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyXCYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKFwmcXVvdDtQcmV2aW91c1wmcXVvdDssIFwmcXVvdDtuZXh0XCZxdW90OywgXCZxdW90O3N1Ym1pdFwmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybVwmIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91XCYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvblwmIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCBcJiMwMzk7RGlzcGxheSBcJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZVwmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3VcJiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3VcJiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuDQo8L3A+DQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXRcJiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCBcJnF1b3Q7UmVxdWlyZWRcJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvIFwmcXVvdDt2aWV3IHNvdXJjZVwmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0XCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdFwmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlIFwmcXVvdDtGcm9tXCZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgXCZxdW90O0Zyb21cJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlIFwmcXVvdDtTdWJqZWN0XCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdVwmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlIFwmcXVvdDtEaXJlY3RvclwmcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkIFwmcXVvdDthcHByb3ZlZCxcJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgXCZxdW90O291dHB1dFwmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlXCYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRcJiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSBcJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZVwmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91XCYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdVwmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXRcJiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgXCZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZVwmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3VcJiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPg0KPHByZT4NCgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8NCglmb3JtIHttYXJnaW4tdG9wOjB9DQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0NCglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQ0KCWZpZWxkc2V0IGRpdiB7DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbTsNCgl9DQoJZmllbGRzZXQgZGl2IGRpdiB7DQoJCW1hcmdpbi10b3A6MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbQ0KCX0NCglmaWVsZHNldCB7DQoJCW1hcmdpbi1ib3R0b206MWVtOw0KCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7DQoJCXBhZGRpbmc6MC41ZW0NCgl9DQoJZmllbGRzZXQgbGFiZWwgew0KCQl3aWR0aDphdXRvOw0KCX0NCglsZWdlbmQgew0KCQljb2xvcjojRkZGOw0KCQliYWNrZ3JvdW5kOiNGNjA7DQoJCWZvbnQtc3R5bGU6aXRhbGljOw0KCQlmb250LXNpemU6MS4yZW07DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCXBhZGRpbmc6MC4yZW07DQoJCXdpZHRoOmF1dG87DQoJCWJvcmRlcjoxcHggc29saWQgI0NDQw0KCX0NCgl0ZXh0YXJlYSB7DQoJCW1hcmdpbjogMC41ZW0gMDsNCgkJd2lkdGg6OTglOw0KCQloZWlnaHQ6IDZlbQ0KCX0NCg0KCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMNCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8NCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19DQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwgDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3VcJiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdFwmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9XCZxdW90O1wmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGRcJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyBcJnF1b3Q7cGFnZSB4IG9mIHlcJnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+XCZxdW90O0JhY2tcJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD5cJnF1b3Q7Q29udGludWVcJnF1b3Q7IG9yIFwmcXVvdDtTdWJtaXRcJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdVwmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCg0KDQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkblwmIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3VcJiMwMzk7cmUgcnVubmluZyBDTVMgMS4wLXN2biBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3VcJiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkXCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91XCYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXRcJiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlIFwmcXVvdDtIaWRlIEVycm9yc1wmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSVwmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvclwmIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj1cJnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZ1wmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj1cJnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbVwmcXVvdDs+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9XCZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ1wmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cJnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zXCZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9XCZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb21cJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj1cJnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMXCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjMNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+DQogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmVcJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnXCYjMDM5O25cJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+DQogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+DQogICAgICA8bGk+PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNw0KICAgPHA+QmlnIHJlbGVhc2U6PHVsPg0KICAgPGxpPkFkZGVkIFwmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzc1wmcXVvdDsgZGlzcG9zaXRpb24uPC9saT4NCiAgIDxsaT5BZGRlZCBcJnF1b3Q7VGltZVBpY2tlclwmcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgXCZxdW90O0xpbmtcJnF1b3Q7IGZpZWxkIGludG8gYSBcJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rXCZxdW90OyBmaWVsZCBhbmQgYSBcJnF1b3Q7U3RhdGljIExpbmtcJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3dcJiMwMzk7cyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4yOTI0OTc2NzYuMTIwNTgwNTA3My4xMjA4ODk1NzY1LjEyMDg5MDA2MDAuMTknOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA4MzM3MzIyLjExLjUudXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS90cmFja2VyL2luZGV4LnBocCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsZHR5cCB3dXJkZSBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy0gRmVsZGVpbnN0ZWxsdW5nZW4gRW5kZSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctIEZlbGRlaW5zdGVsbHVuZ2VuIFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dGZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dGZlbGQgKE1laHJmYWNoKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0YmVyZWljaCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdLb250cm9sbGsmYXVtbDtzdGNoZW4nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdLb250cm9sbGsmYXVtbDtzdGNoZW4tR3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0xpc3RlbmZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTWVocmZhY2hhdXN3YWhsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVzIFUuUy4tU3RhYXRlcyc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVzIExhbmRlcyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVzIERhdHVtcyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVyIFplaXQnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdPcHRpb25zZmVsZC1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVyZ2Vibmlzc2UgcGVyIEVtYWlsIGFuIEF1c3dhaGwgYXVzIGRlbSBMaXN0ZW5mZWxkIHNlbmRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKkVyZ2Vibmlzc2UgaW4gZWluZSBEYXRlaSBhdXMgZGVyIExpc3RlbmZlbGRhdXN3YWhsIHNwZWljaGVybic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqRGllIEVyZ2Vibmlzc2UgaW4gRGF0ZWkoZW4pIGF1cyBkZXIgTWVocmZhY2hsaXN0ZW4tQXVzd2FobCBzcGVpY2hlcm4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKkF1ZiBkaWUgU2VpdGUgYXVzIGRlbSBMaXN0ZW5mZWxkIHdlaXRlcmxlaXRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRXJnZWJuaXNzZSBwZXIgRW1haWwgYW4gdm9yZ2VnZWJlbmUgQWRyZXNzZShuKSBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKiZVdW1sO2JlcnByJnV1bWw7ZnVuZyAmdXVtbDtiZXIgZGllIEVtYWlsLUFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXJnZWJuaXNzZSBpbiBlaW5lIERhdGVpIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqRXJnZWJuaXNzZSBpbiBkaWUgRGF0ZW5iYW5rIHNjaHJlaWJlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypFaW5lbiBiZW51dHplcmRlZmluaWVydGVuIFRhZyBtaXQgZGVuIEVyZ2Vibmlzc2VuIGFscyBQYXJhbWV0ZXIgYXVmcnVmZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVyZ2Vibmlzc2UgcGVyIEVtYWlsIGFuIGVpbmUgYmVudXR6ZXJkZWZpbmllcnRlIEVtYWlsLUFkcmVzc2UgdmVyc2VuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCBhbiBDTVMgQWRtaW4gQmVudXR6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy0gU2VpdGVudW1icnVjaCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0hvY2hsYWRlbiB2b24gRGF0ZWllbic7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsZmVsZCAmcXVvdDtWb24gKEVtYWlsKSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsZmVsZCAmcXVvdDtWb24gKE5hbWUpJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWxmZWxkICZxdW90O0JldHJlZmYmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctIFN0YXRpc2NoZXIgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy0gU3RhdGlzY2hlciBMaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGluayAodm9tIEJlbnV0emVyIGVpbmdlZ2ViZW4pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctIFZlcmJvcmdlbmVzIEZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLSBCZXJlY2huZXRlcyBGZWxkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0tlaW5lICZVdW1sO2JlcnByJnV1bWw7ZnVuZyc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1tZXJpc2NoJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0dhbnp6YWhsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsLUFkcmVzc2UnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbm51bW1lciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3MgJnV1bWw7YmVycHImdXVtbDtmdCB3ZXJkZW4nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0VudHNwcmljaHQgZGVtIHp1bCZhdW1sO3NzaWdlbiBXZXJ0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0VudHNwcmljaHQgbmljaHQgZGVtIHp1bCZhdW1sO3NzaWdlbiBXZXJ0JzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdGJnV1bWw7ciBlaW4gUGZsaWNodGZlbGQgd3VyZGUga2VpbiBXZXJ0IGVpbmdlZ2ViZW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZW4gV2VydCBlaW4nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnQml0dGUgZ2ViZW4gU2llIGYmdXVtbDtyICZxdW90OyVzJnF1b3Q7IGVpbmUgWmFobCBlaW4gJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lbiBnJnV1bWw7bHRpZ2VuIFdlcnQgZWluJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnQml0dGUgZ2ViZW4gU2llIGYmdXVtbDtyICZxdW90OyVzJnF1b3Q7IGVpbmVuIGdhbnp6YWhsaWdlbiBXZXJ0IGVpbiAnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnQml0dGUgZ2ViZW4gU2llIGYmdXVtbDtyICZxdW90OyVzJnF1b3Q7IGVpbmUgZyZ1dW1sO2x0aWdlIEVtYWlsLUFkcmVzc2UgZWluICc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lIGcmdXVtbDtsdGlnZSBUZWxlZm9ubnVtbWVyIGVpbic7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBzY2hlaW50IGtlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbGFkcmVzc2UgenUgc2VpbiEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBlaW5lbiBXZXJ0IGVpbiwgZGVyIG5pY2h0IGwmYXVtbDtuZ2VyIGFscyAlcyBaZWljaGVuIGlzdCAnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdaZWljaGVuLCBkYXMgYWxzIFRyZW5uZXIgdmVyd2VuZGV0IHdpcmQsIHdlbm4gbWVociBhbHMgZWluIFdlcnQgYWxzIEVyZ2VibmlzIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdTaWUgYmVuJm91bWw7dGlnZW4gZGllIEJlcmVjaHRpZ3VuZyAmcXVvdDslcyZxdW90OywgdW0gZGllc2UgQWt0aW9uIGF1c3p1ZiZ1dW1sO2hyZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2llIGhhYmVuIG5pY2h0IGRpZSBlcmZvcmRlcmxpY2hlIEJlcmVjaHRpZ3VuZywgdW0gYXVmIGRpZXNlbiBCZXJlaWNoIHp1enVncmVpZmVuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsZHJlaWhlbmZvbGdlIGFrdHVhbGlzaWVydC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXIgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZlbGQgZ2VsJm91bWw7c2NodC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnS29uZmlndXJhdGlvbmVuIGFrdHVhbGlzaWVydC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdCZXZvciBTaWUgd2VpdGVybWFjaGVuLCBtJnV1bWw7c3NlbiBTaWUgJnF1b3Q7JXMmcXVvdDsgJnV1bWw7YmVycHImdXVtbDtmZW4uJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdTaWUgbSZ1dW1sO3NzZW4gaGllciBtaW5kZXN0ZW5zIGVpbmUgWmllbGFkcmVzc2UgYW5nZWJlbiEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnV29sbGVuIFNpZSBkYXMgRm9ybXVsYXIgJXMgd2lya2xpY2ggbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnV29sbGVuIFNpZSBkYXMgRmVsZCAlcyB3aXJrbGljaCBsJm91bWw7c2NoZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0RpZSBlcndlaXRlcnRlbiBPcHRpb25lbiBzaW5kIGVyc3QgdmVyZiZ1dW1sO2diYXIsIHdlbm4gZGVyIEZlbGR0eXAgZmVzdGdlbGVndCB3dXJkZS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZXIgRmVsZG5hbWUgJnF1b3Q7JXMmcXVvdDsgd2lyZCBiZXJlaXRzIHZlcndlbmRldC4gQml0dGUgdmVyd2VuZGVuIFNpZSBlaW5kZXV0aWdlIEZlbGRuYW1lbiBvZGVyIGRlYWt0aXZpZXJlbiBkaWUgVmVyd2VuZHVuZyBlaW5kZXV0aWdlciBGZWxkbmFtZW4gaW4gZGVyIEZvcm1CdWlsZGVyLUtvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdEaWUgRmVsZGVyIG0mdXVtbDtzc2VuIGVpbmVuIE5hbWVuIGVyaGFsdGVuLCBvZGVyIFNpZSBkZWFrdGl2aWVyZW4gZGllcyBpbiBkZXIgRm9ybUJ1aWxkZXItS29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMJmF1bWw7bmdlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgT3B0aW9uZW4nOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBaZWljaGVuLic7CiRsYW5nWydvcmRlciddID0gJ1JlaWhlbmZvbGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnKG5pY2h0IGRlZmluaWVydCknOwokbGFuZ1snYWRkZWQnXSA9ICdoaW56dWdlZiZ1dW1sO2d0JzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdha3R1YWxpc2llcnQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnT3B0aW9uZW4genVyIFNvcnRpZXJ1bmcgYmVpIGRlciBBdXNnYWJlJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdCaXR0ZSBlaW5lbiBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ0VpbmVuIFR5cCBhdXN3JmF1bWw7aGxlbic7CiRsYW5nWyd0byddID0gJ0FuJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVpbic7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnRW1wZiZhdW1sO25nZXInOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHZlcmYmdXVtbDtnYmFyZSBEYXRlaWVuJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgWmllbGUnOwokbGFuZ1snc2F2ZSddID0gJ1NwZWljaGVybic7CiRsYW5nWydhZGQnXSA9ICdIaW56dWYmdXVtbDtnZW4nOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXNpZXJlbic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwZWljaGVybiB1bmQgQmVhcmJlaXR1bmcgZm9ydHNldHplbic7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2NoJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsYXJlJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxhciAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhdGlvbic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmVsZHN0YXR1cyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gR3Imb3VtbDsmc3psaWc7ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0VuZHVuZ2VuJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdFcmxhdWJ0ZSBEYXRlaXR5cGVuJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGllIGhvY2hnZWxhZGVuZSBEYXRlaSBpc3QgenUgZ3JvJnN6bGlnOyEgRGllIG1heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgaXN0Oic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpZXNlciBEYXRlaXR5cCBkYXJmIG5pY2h0IGhvY2hnZWxhZGVuIHdlcmRlbi4gQml0dGUgcHImdXVtbDtmZW4gU2llLCBvYiBkaWUgRGF0ZWllbmR1bmcga29ycmVrdCBpc3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0hvY2hsYWRlbic7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0aWVydC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybXVsYXItSW1wb3J0IGFiZ2Vicm9jaGVuISBFcyBpc3QgZWluIFByb2JsZW0gbWl0IGRlbSBGb3JtYXQgZGVyIFhNTC1EYXRlaSBhdWZnZXRyZXRlbi4nOwokbGFuZ1sncm93cyddID0gJyVzIFplaWxlbic7CiRsYW5nWydjb2xzJ10gPSAnJXMgU3BhbHRlbic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItU3R1bmRlbi1BbnplaWdlJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC1TdHVuZGVuLUFuemVpZ2UnOwokbGFuZ1snaG91ciddID0gJ1N0dW5kZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnQmVyZWljaDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdWaWVsZW4gRGFuayEgSWhyZSBFaW5nYWJlbiB3dXJkZW4gZXJmb2xncmVpY2ggdmVyc2FuZHQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdCZWFyYmVpdGVuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbic7CiRsYW5nWydkYXknXSA9ICdUYWcnOwokbGFuZ1snbW9uJ10gPSAnTW9uYXQnOwokbGFuZ1sneWVhciddID0gJ0phaHInOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBkZWluc3RhbGxpZXJ0Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGllcnQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgYXVmIFZlcnNpb24gJXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdadXImdXVtbDtjayAuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ0Zvcm11bGFyIGFic2VuZGVuJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1dlaXRlciAuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0dlcHImdXVtbDtmdCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmdlcHImdXVtbDtmdCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0hhdXB0c2VpdGUnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0VpbnN0ZWxsdW5nZW4gZiZ1dW1sO3IgZGllIEZvcm11bGFyYW56ZWlnZSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnRm9ybXVsYXItVmVyc2FuZCc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEtRWluc3RlbGx1bmdlbic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdFcndlaXRlcnRlIEVpbnN0ZWxsdW5nZW4nOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnT3B0aW9uZW4gZiZ1dW1sO3IgZGFzIFRlbXBsYXRlLUxheW91dCc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnVmVyc2FuZC1UZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPkluIGRpZXNlbSBGZWxkIHNpbmQgYXVjaCBTbWFydHktVmFyaWFibGVuIGcmdXVtbDtsdGlnZSBXZXJ0ZS48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnV2VpdGVyZSBPcHRpb25lbiBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdNYXJraWVydGUgT3B0aW9uZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnV2VpdGVyZSBLb250cm9sbGsmYXVtbDtzdGNoZW4gaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnTWFya2llcnRlIEtvbnRyb2xsayZhdW1sO3N0Y2hlbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdFaW5lIHdlaXRlcmUgQWRyZXNzZSBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdNYXJraWVydGUgQWRyZXNzZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0VpbiB3ZWl0ZXJlcyBaaWVsIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdNYXJraWVydGUgWmllbGUgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVm9uIElocmVyIElQLUFkcmVzc2Ugd3VyZGVuIHp1IHZpZWxlIEVtYWlscyBnZW5lcmllcnQuIEVzIHd1cmRlIGRhaGVyIGVpbiBBbnRpLVNwYW0tQ29kZSBhdXNnZWdlYmVuLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdWZXJkJmF1bWw7Y2h0aWdlciBTcGFtIHZvbiBkZXIgSVAgJXMgd3VyZGUgZ2VzdG9wcHQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnWmllbHZlcnplaWNobmlzIGYmdXVtbDtyIGRpZSBhdXNnZWdlYmVuZW4gRGF0ZWllbic7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0JlbnV0emVyZGVmaW5pZXJ0ZSBUYWdzJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTZWl0ZSwgYXVmIGRlciBkZXIgVXBsb2Fkcy1MaW5rIGRhcmdlc3RlbGx0IHdlcmRlbiBzb2xsJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnTWl0IGRlbSBGb3JtQnVpbGRlci1Nb2R1bCB2ZXJzYW5kdCAnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMtS2F0ZWdvcmllJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnRGllc2UgRGF0ZWkgYW4gZGFzIFVwbG9hZHMtTW9kdWwgJnV1bWw7YmVyZ2ViZW4nOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltYWxlIEwmYXVtbDtuZ2UnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZGVzIEtvbnRyb2xsayZhdW1sO3N0Y2hlbnMnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgZGVzIE9wdGlvbnNmZWxkZXMnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dlcnQgbmFjaCBlcmZvbGd0ZXIgQWt0aXZpZXJ1bmcnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2VydCBvaG5lIGVyZm9sZ3RlIEFrdGl2aWVydW5nJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhaWxzIHp1ciBLb250cm9sbGsmYXVtbDtzdGNoZW4tR3J1cHBlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0wmb3VtbDtzY2hlbj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGV4dCBmJnV1bWw7ciAmcXVvdDtCaXR0ZSBhdXN3JmF1bWw7aGxlbiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdBdXN3YWhsIGRlcyBhbmdlemVpZ3RlbiBOYW1lbnMnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBdXN3YWhsIGRlcyAmcXVvdDtCZXRyZWZmcyZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTmFtZSBkZXIgT3B0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJyZVdW1sO2Jlcm1pdHRlbHRlciBXZXJ0JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdMaXN0ZW5mZWxkLU9wdGlvbmVuJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdPcHRpb25lbiB6dXIgTWVocmZhY2hhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdaaWVsLUVtYWlsYWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ05hbWUgZGVyIFppZWxkYXRlaSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtWb24gKE5hbWUpJnF1b3Q7IGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnTG9ja2VyZSBFbWFpbC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcgdmVyd2VuZGVuJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1ZlcndlbmRldCBlaW5lIGxvY2tlcmUgJlV1bWw7YmVycHImdXVtbDtmdW5nIGRlciBFbWFpbCAoZXJsYXVidCB6LiBCc3AuICZxdW90O3hAeSZxdW90OyBhbnN0YXR0IGRlcyBlcmZvcmRlcmxpY2hlbiAmcXVvdDt4QHkuZGUmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O1ZvbiAoRW1haWwtQWRyZXNzZSkmcXVvdDsgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnWmVpY2hlbmtvZGllcnVuZyBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ0xpc3RlbmZlbGRiYXNpZXJ0ZSBFbWFpbC1EZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0RhdGVpbmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnQmV0cmVmZi1aZWlsZSBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsYXJuYW1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsYXJzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdFaW5zYXR6YmVyZWl0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOaWNodCBlaW5zYXR6YmVyZWl0JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTZWl0ZSwgYXVmIGRpZSBuYWNoIGRlbSBWZXJzYW5kIGdlc3BydW5nZW4gd2VyZGVuIHNvbGwnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ0JpdHRlIGYmdXVtbDtnZW4gU2llIGVpbiBGZWxkIGhpbnp1LCBtaXQgZGVtIGRpZSBCZW51dHplcmVpbmdhYmVuIHZlcmFyYmVpdGV0IHdlcmRlbi4gU2llIGsmb3VtbDtubmVuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnZGllc2UgVGFzdGVua29tYmluYXRpb24gdmVyd2VuZGVuLCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybXVsYXItQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWxhcmZlbGRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZlbGQtSUQnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbGRuYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFpbHMgenVyIE9wdGlvbnNmZWxkLUdydXBwZSc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmVsZHR5cCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndW0gZWluIEZlbGQgenVyIEZvcm11bGFydmVyYXJiZWl0dW5nIHp1IGVyc3RlbGxlbi4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTmV1ZXMgRm9ybXVsYXIgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZlcnNpb24gZGVzIEZvcm1CdWlsZGVyLU1vZHVscyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdBbHMgSGlsZmUgenVyIEZlaGxlcmJlcnNlaXRpZ3VuZyB3aXJkIGRpZSBWZXJzaW9uc251bW1lciBkZXMgRm9ybUJ1aWxkZXItTW9kdWxzIGluIGVpbmVtIEtvbW1lbnRhciBlaW5nZWJldHRldC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ05ldWVzIEZlbGQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O0Fic2VuZGVuJnF1b3Q7LUJ1dHRvbic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ1NvbGwgZGVtIFZlcnNlbmRlbi1Lbm9wZiBlaW4gSmF2YXNjcmlwdCBoaW56dWdlZiZ1dW1sO2d0IHdlcmRlbiwgdW0gZGVuIG1laHJmYWNoZW4gVmVyc2FuZCBkZXMgRm9ybXVsYXJzIHp1IHZlcmhpbmRlcm4/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdTaWNoZXJoZWl0c3NjcmlwdCBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O1dlaXRlciZxdW90Oy1CdXR0b24gKGYmdXVtbDtyIG1laHJzZWl0aWdlIEZvcm11bGFyZSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHQgZiZ1dW1sO3IgZGVuICZxdW90O1p1ciZ1dW1sO2NrJnF1b3Q7LUJ1dHRvbiAoZiZ1dW1sO3IgbWVocnNlaXRpZ2UgRm9ybXVsYXJlKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmVsZC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MtS2xhc3NlIGYmdXVtbDtyIGRpZXNlcyBGb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MtS2xhc3NlIGYmdXVtbDtyIGRpZXNlcyBGZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHp1ciBLZW5uemVpY2hudW5nIGRlciBQZmxpY2h0ZmVsZGVyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnRXJmb3JkZXJsaWNoJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdFcmZvcmRlcnQgendpbmdlbmQgZWluZSBBbnR3b3J0IGluIGRpZXNlbSBGZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdCZXNjaHJpZnR1bmcgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0RpZXNlbiBGZWxkbmFtZW4gaW0gRm9ybXVsYXIgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdBbnp1emVpZ2VuZGVyIHN0YXRpc2NoZXIgVGV4dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ2V4LSZVdW1sO2JlcnByJnV1bWw7ZnVuZyc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQW56YWhsIGRlciBhbnp1emVpZ2VuZGVuIFplaWxlbic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnS2VpbmUgVm9yZWluc3RlbGx1bmcnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTZWl0ZSwgYXVmIGRpZSBuYWNoICZVdW1sO2JlcnByJnV1bWw7ZnVuZyB3ZWl0ZXJnZWxlaXRldCB3aXJkJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoei4gQnNwLiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ0VyZm9yZGVybC4nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdGZWhsZXIgdmVyYmVyZ2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdBbnplaWdldHlwIGRlcyBGb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0ZlaGxlci1NZWxkdW5nZW4gdm9yIGRlbiBCZW51dHplcm4gdmVyYmVyZ2VuLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsLVRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIEdyJm91bWw7JnN6bGlnO2UgZiZ1dW1sO3IgaG9jaHp1bGFkZW5kZSBEYXRlaWVuIChraWxvYnl0ZSknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEaWVzZXMgTGltaXQgaXN0IGVpbmUgRXJnJmF1bWw7bnp1bmcgZGVyIFZvcmdhYmVuIGF1cyBkZXIgUEhQLSBvZGVyIFNlcnZlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1p1Z2VsYXNzZW5lIERhdGVpLUVuZHVuZ2VuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdHZWJlbiBTaWUgaGllciBlaW5lIEF1ZnomYXVtbDtobHVuZyBkZXIgenVnZWxhc3NlbmVuIERhdGVpLUVuZHVuZ2VuIGpld2VpbHMgZ2V0cmVubnQgZHVjaCBlaW4gS29tbWEgZWluIChvaG5lIFB1bmt0IC0gei5CLiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBMZWVyemVpY2hlbiB3ZXJkZW4gaWdub3JpZXJ0LiBPaG5lIEVpbnRyYWcgZ2VsdGVuIGtlaW5lIEJlc2NociZhdW1sO25rdW5nZW4uJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdCZXNjaHImYXVtbDtua3VuZ2VuIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdCZXNjaHImYXVtbDtua3VuZ2VuIGRlciBHciZvdW1sOyZzemxpZztlIHVuZCBkZXIgRGF0ZWktRW5kdW5nZW4gbWl0IGRlbSBVcGxvYWQtRmVsZCBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGRpZSBGb3JtdWxhcmFuemVpZ2UnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTZWl0ZSAlcyB2b24gJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0RhcyBGZWxkIGhhdCBrZWluZSBlcndlaXRlcnRlbiBPcHRpb25lbi4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQsIGRlciBiZWkgdW5nZW5hdWVuIEVpbmdhYmVuIHp1ciZ1dW1sO2NrZ2VnZWJlbiB3aXJkJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdBa3RpdmllcnQgZGFzIHNjaG5lbGxlIEhpbnp1ZiZ1dW1sO2dlbiB2b24gTGlzdGVuZmVsZGVybiBpbiBGb3JtdWxhcmVuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRGFzIHNjaG5lbGxlIEhpbnp1ZiZ1dW1sO2dlbiB2b24gTGlzdGVuZmVsZGVybiBha3RpdmllcmVuPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU2NobmVsbGUgRmVsZGVyc3RlbGx1bmcnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdXZW5uIFNpZSBoaWVyIGtsaWNrZW4sIGsmb3VtbDtubmVuIHZvbiBkZXIgdm9yZ2VnZWJlbmVuIElQLUFkcmVzc2UgbWF4aW1hbCAxMCBFbWFpbHMgdmVyc2FuZHQgd2VyZGVuIChwcm8gU3R1bmRlKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRWluZmFjaGVuIEFudGktU3BhbS1TY2h1dHogYWt0aXZpZXJlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ0ZlbGQtSURzIGFuemVpZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ1dlbm4gU2llIGRpZXNlcyBGZWxkIGFrdGl2aWVyZW4sIHdlcmRlbiBkaWUgRmVsZC1JRHMgYmVpbSBCZWFyYmVpdGVuIGRlcyBGb3JtdWxhcnMgYW5nZXplaWd0JzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdFaW4gRm9ybXVsYXIgYWxzIFhNTC1EYXRlaSBob2NobGFkZW4nOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0RpZXNlbiBGb3JtdWxhcm5hbWVuIHZlcndlbmRlbic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MLUZvcm11bGFyLUltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0RpZXNlbiBGb3JtdWxhci1BbGlhcyB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0VpbmUgSFRNTC1FbWFpbCBlcnpldWdlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aXNjaCB2ZXImb3VtbDtmZmVudGxpY2hlbj8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpc2NoIG1pdCBkZXIgVVJMIGRlciBGb3JtdWxhcnNlaXRlIHZlciZvdW1sO2ZmZW50bGljaGVuPyAoZGllcyAmdXVtbDtiZXJzY2hyZWlidCBkaWUgd2VpdGVyIHVudGVuIGJlbmFubnRlIFNlaXRlbi1MaW5rLU9wdGlvbiknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnU3RhbmRhcmQtTGluay1VUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnU3RhbmRhcmQtTGluay1UZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIGF1ZiBkaWUgU2VpdGUnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnV2VubiBTaWUgZGFzIENhcHRjaGEtTW9kdWwgaW5zdGFsbGllcmVuLCBrJm91bWw7bm5lbiBTaWUgJnV1bWw7YmVyIGVpbiA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gSWhyIEZvcm11bGFyIHZvciBTcGFtIHNjaCZ1dW1sO3R6ZW4uIFdlaXRlcmUgSW5mb3JtYXRpb25lbiBmaW5kZW4gU2llIGltIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyZxdW90Oz5DYXB0Y2hhLVByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0NhcHRjaGEgdmVyd2VuZGVuLCB1bSBkZW4gRm9ybXVsYXJ2ZXJzYW5kIHp1IHNjaCZ1dW1sO3R6ZW4/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdLbGlja2VuIFNpZSBoaWVyLCB1bSBJaHIgRm9ybXVsYXIgbWl0dGVscyA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19CTEFOSyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB2b3IgU3BhbSB6dSBzY2gmdXVtbDt0emVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdCaXR0ZSBiZXN0JmF1bWw7dGlnZW4gU2llLCBkYXNzIFNpZSBrZWluIG1hc2NoaW5lbGxlcyBTY3JpcHQgc2luZCwgaW5kZW0gU2llIGRpZSBCdWNoc3RhYmVuIGF1cyBkZW0gQmlsZCBlaW5nZWJlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnVGV4dCBiZWkgZmFsc2NoIGVpbmdlZ2ViZW5lbSBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdEZXIgZWlnZWdlYmVuZSBDYXB0Y2hhLVRleHQgd2FyIGZhbHNjaC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGlsZmV0ZXh0IGYmdXVtbDtyIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyBkZXMgTGlua3MnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1ppZWwtVVJMIGRlcyBMaW5rcyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ1N0YW5kYXJkbSZhdW1sOyZzemxpZztpZyAmdXVtbDtiZXJwciZ1dW1sO2Zlbj8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJzI0LVN0dW5kZW4tQW56ZWlnZSB2ZXJ3ZW5kZW4/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnU21hcnR5LVRhZ3MgaW4gZGVuIEZlbGRlcm4gdmVyYXJiZWl0ZW4/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdaZWlsZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ1NwYWx0ZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWlscyBkZXMgSGF1cHRmb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ1plaWdlIExvZ2luIE5hbWUgZ2VuYXVzbyB3aWUgVm9ybmFtZS9OYWNobmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdCZXNjaHImYXVtbDtua2UgZGllIEJlbnV0emVybGlzdGUgenUgQmVudXR6ZXJuIGluIHNwZXppZml6aWVydGVyIEdydXBwZSc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnTnVyIGluIEdydXBwZSAlcyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEaWVzZXMgRmVsZCBrYW5uIGxlZXIgZ2VsYXNzZW4gd2VyZGVuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlbiBmJnV1bWw7ciBkYXMgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmVyZiZ1dW1sO2diYXJlIFZhcmlhYmxlbic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQLVZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnVmVyc2FuZGRhdHVtJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdJaHIgU2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQLUFkcmVzc2UgZGVzIEZvcm11bGFyYWJzZW5kZXJzJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBkZXIgRm9ybXVsYXJzZWl0ZSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0aXZlIEZlbGRuYW1lbiBrJm91bWw7bm5lbiB3ZWNoc2Vsd2Vpc2UgdmVyd2VuZGV0IHdlcmRlbiAoZGllcyBpc3QgaW5zYmVzb25kZXJlIG4mdXVtbDt0emxpY2gsIHdlbm4gU21hcnR5IFByb2JsZW1lIG1pdCBaZWljaGVuIGF1JnN6bGlnO2VyaGFsYiB2b24gQVNDSUkgMzItMTI2IGhhdCkuIDxiciAvPldlbm4gU2llIGRpZXNlIGRlbSBGb3JtdWxhciBoaW56dWYmdXVtbDtnZW4sIHNpbmQgd2VpdGVyZSBGZWxkZXIgdmVyZiZ1dW1sO2diYXIuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnQXVmIEZlbGRlciwgZGllIG1laHJlcmUgV2VydGUgaGFiZW4sIGthbm4gdmlhIFNtYXJ0eSAmdXVtbDtiZXIgJGZlbGRuYW1lX2FycmF5IG9kZXIgJGZsZF8jX2FycmF5IHp1Z2VncmlmZmVuIHdlcmRlbi4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ0luZm9ybWF0aW9uZW4genVyIEZvcm1hdGllcnVuZyBmaW5kZW4gU2llIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X0JMQU5LPmluIGRlciBQSFAtQmVzY2hyZWlidW5nPC9hPi4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsZCByZXByJmF1bWw7c2VudGllcnQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmYW1wOyMxNzE7IFp1ciZ1dW1sO2NrIHp1bSBGb3JtdWxhcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLVRlbXBsYXRlIGVyc3RlbGxlbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdFaW4gQmVpc3BpZWwtSFRNTC1UZW1wbGF0ZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdFaW5lbiBNdXN0ZXItSGVhZGVyIGVyc3RlbGxlbic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdlaW5lbiBaZWlsZW52b3JzY2h1Yic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZWluZSBaZWlsZSBkZXIgYXVzZ2VnZWJlbmVuIERhdGVpJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZiZ1dW1sO3IgZGVuIEhlYWRlciBkZXIgYXVzZ2VnZWJlbmVuIERhdGVpJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgenVyIEJlc3QmYXVtbDt0aWd1bmcgZGVzIEZvcm11bGFycyc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1dlcnQgKHNpZWhlIFJlaXRlciBFcndlaXRlcnVuZ2VuLCB3ZW5uIFNpZSBTbWFydHktVGFncyB2ZXJ3ZW5kZW4pJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0dW1zLUZvcm1hdCAoc2llaGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXR1bXNmb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1dZU0lXWUctRWRpdG9yIGYmdXVtbDtyIGRlbiBUZXh0YmVyZWljaCB2ZXJ3ZW5kZW4gKG51ciBpbiBkZXIgQWRtaW5pc3RyYXRpb24pPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ1ZlcmhhbHRlbiBuYWNoIGRlbSBGb3JtdWxhci1WZXJzYW5kJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdCZXNjaHJpZnR1bmcgZGVyIFZlcnNhbmQtQnV0dG9uJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnQXVmIGRpZXNlciBTZWl0ZSBrJm91bWw7bm5lbiBTaWUgZGVuIEZvcm11bGFydmVyc2FuZCBhbnBhc3Nlbi4gKEVzIHdpcmQgamVkb2NoIG5pY2h0IGZlc3RnZWxlZ3QsIHdpZSBkaWUgdmVyc2FuZHRlbiBEYXRlbiB2ZXJhcmJlaXRldCB3ZXJkZW4uIERpZXMgayZvdW1sO25uZW4gU2llIGZlc3RsZWdlbiwgaW5kZW0gU2llIElocmVtIEZvcm11bGFyIGVpbiBGZWxkICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGhpbnp1ZiZ1dW1sO2dlbi4pJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdKYWhyZXNiZXJlaWNoIEJlZ2lubic7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0phaHJlc2JlcmVpY2ggRW5kZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdWb3JlaW5nZXN0ZWxsdGVzIEphaHInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoTWl0IC0xIHdpcmQgZGFzIGFrdHVlbGxlIEphaHIgYWxzIFZvcmVpbnN0ZWxsdW5nIHZlcndlbmRldCknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ05hY2hkZW0gZGFzIEZvcm11bGFyIHZlcnNhbmR0IHd1cmRlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ0FuenV6ZWlnZW5kZSBBbnR3b3J0JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJyZxdW90O1ZlcnNhbmQtVGVtcGxhdGUmcXVvdDsgYW56ZWlnZW4nOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1dlaXRlcmxlaXRlbiBhdWYgZGllIFNlaXRlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGllc2VzIFRlbXBsYXRlIHdpcmQgYW5nZXplaWd0LCBuYWNoZGVtIGRhcyBGb3JtdWxhciB2ZXJzYW5kdCB3dXJkZS4gRGllc2VzIFRlbXBsYXRlIHdpcmQgbmljaHQgdmVyd2VuZGV0LCB1bSBFbWFpbHMgenUgZXJ6ZXVnZW4gb2RlciBhbmRlcmUgRm9ybXVsYXItT3B0aW9uZW4gYXVzenVmJnV1bWw7aHJlbi4gRmFsbHMgZXJ3JnV1bWw7bnNjaHQsIGsmb3VtbDtubmVuIFNpZSBkaWVzZSBUZW1wbGF0ZXMgKGZhbGxzIGVydyZ1dW1sO25zY2h0KSBpbSAmcXVvdDtlcndlaXRlcnRlbiZxdW90OyBSZWl0ZXIgZiZ1dW1sO3IgZGllc2UgRmVsZGVyIGZlc3RsZWdlbi4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ1ppZWxzZWl0ZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdFcmZvcmRlcnQgRmVsZG5hbWVuJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnU29sbCBmJnV1bWw7ciBkaWUgRmVsZGVyIGVpbiBOYW1lIGZlc3RnZWxlZ3Qgd2VyZGVuPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ0VyZm9yZGVydCBlaW5kZXV0aWdlIEZlbGRuYW1lbic7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnU29sbCBmJnV1bWw7ciBkaWUgRmVsZGVyIGVpbiBlaW5kZXV0aWdlciBOYW1lIGZlc3RnZWxlZ3Qgd2VyZGVuPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgbGFkZW4nOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnRWluZW4gQnV0dG9uLVRleHQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbiBCdXR0b24tVGV4dCBsJm91bWw7c2NoZW4nOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnVmFyaWFibGVuIGFscyBaYWhsIG9kZXIgU3RyaW5nIGludGVycHJldGllcmVuJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb25zLVJlaWhlbmZvbGdlJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdXZW5uIG1laHIgYWxzIGVpbiBGZWxkIGJlcmVjaG5ldCB3ZXJkZW4gbXVzcywgd2VyZGVuIGRpZSBCZXJlY2hudW5nIHZvbiBkZXIgbmllZHJpZ3N0ZW4genVyIGgmb3VtbDtjaHN0ZW4gT3JkbnVuZ3NudW1tZXIgaGluIGR1cmNoZ2VmJnV1bWw7aHJ0JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdadSBiZXJlY2huZW5kZXIgV2VydCc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ1phaGwnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEYXMgRm9ybXVsYXIgaW5saW5lIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIGJlZGV1dGV0LCBkYXNzIGRhcyBGb3JtdWxhciBkZW4ge2Ntc19tb2R1bGV9LVRhZyBlcnNldHp0LCBhbmRlcmVuZmFsbHMgd2lyZCBkZXIge2NvbnRlbnR9LVRhZyBlcnNldHp0Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnU3RhbmRhcmR3ZXJ0IGYmdXVtbDtyIEZlbGRlcic7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQmVpIEtsaWNrIGF1ZiBkYXMgRmVsZCBkaWUgdm9yZWluZ2VzdGVsbHRlbiBXZXJ0ZSBlbnRmZXJuZW4/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0FrdGl2aWVyZW4gU2llIGRpZXNlcyBGZWxkLCB3ZW5uIGRlciB2b3JlaW5nZXN0ZWxsdGUgV2VydCBiZWkgS2xpY2sgYXVmIGRhcyBGZWxkIGVudGZlcm50IHdlcmRlbiBzb2xsJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZC1UZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsZW4tVGVtcGxhdGUsIFRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbGVuLVRlbXBsYXRlLCBUaXRlbCBvYmVuJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIHZvbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdXb2xsZW4gU2llIHdpcmtsaWNoIElociBUZW1wbGF0ZSBtaXQgZGVtIGF1c2dldyZhdW1sO2hsdGVuIFRlbXBsYXRlICZ1dW1sO2JlcnNjaHJlaWJlbj8gKEF1Y2gsIHdlbm4gU2llIGRpZXMgYmVzdCZhdW1sO3RpZ2VuLCBtJnV1bWw7c3NlbiBTaWUgZGllICZBdW1sO25kZXJ1bmcgc3BlaWNoZXJuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGZWhsZXIgYmVpbSBCZXJlY2huZW4gdm9uICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnS2VpbmUgSW5mb3JtYXRpb25lbiAmdXVtbDtiZXIgZGVuIEhUVFBfUkVGRVJFUiB2ZXJmJnV1bWw7Z2JhciAod2FocnNjaGVpbmxpY2ggYXVmZ3J1bmQgZGVyIHZlcndlbmRldGVuIEVtYWlsLVByJnV1bWw7ZnVuZyknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0ZlaGxlciBiZWltICZVdW1sO2JlcnByJnV1bWw7ZmVuIGRlciBQYXJhbWV0ZXIuIEJpdHRlIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgVVJMIGF1cyBJaHJlciBFbWFpbCBrb3JyZWt0IGtvcGllcnQgd3VyZGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdGZWhsZXIgYmVpIGRlciAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcuIEJpdHRlIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgVVJMIGF1cyBJaHJlciBFbWFpbCBrb3JyZWt0IGtvcGllcnQgd3VyZGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdGZWhsZXIgYmVpIGRlciAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcuIERpZXNlcyBGb3JtdWxhciBlbnRoJmF1bWw7bHQga2VpbiBGZWxkIHp1ciAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcgZGVyIEVtYWlsISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnSGluenVmJnV1bWw7Z2VuLCBCZWFyYmVpdGVuIHVuZCBWZXJ3YWx0ZW4gdm9uIGludGVyYWt0aXZlbiBGb3JtdWxhcmVuJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXInOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXInOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ00mYXVtbDtyeic7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZXplbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnQmVpIGRlciBWZXJhcmJlaXR1bmcgZGVzIHZlcnNhbmR0ZW4gRm9ybXVsYXJzIGlzdCBlaW4gRmVobGVyIGF1ZmdldHJldGVuLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGZWhsZXIgYmVpbSBWZXJzYW5kOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRmVobGVyIGJlaSBkZXIgJlV1bWw7YmVyZ2FiZSBkZXIgRGF0ZWkgYW4gZGFzIFVwbG9hZHMtTW9kdWw6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0tvbm50ZSBkYXMgVXBsb2Fkcy1Nb2R1bCBuaWNodCBmaW5kZW4nOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0ZlaGxlciBiZWltIEhvY2hsYWRlbiBkZXIgRGF0ZWkgJXMgKHRlbXBvciZhdW1sO3JlciBOYW1lICVzIGRlcyBUeXBzICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaGxlci4gRGF0ZWkga29ubnRlIG5pY2h0IGdlc3BlcnJ0IHdlcmRlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBuaWNodCBhdXNnZXcmYXVtbDtobHQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogYXVzZ2V3JmF1bWw7aGx0JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlci1WZXJzYW5kJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkRhcyBFbWFpbC1UZW1wbGF0ZSB3dXJkZSBub2NoIG5pY2h0IGZlc3RnZWxlZ3QhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBLb25udGUgZGFzIGVyZm9yZGVybGljaGUgQ01TTWFpbGVyLU1vZHVsIG5pY2h0IGZpbmRlbiEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnQmVudXR6ZXJnZXByJnV1bWw7ZnRlICZVdW1sO2Jlcm1pdHRsdW5nICVzIHZvbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBiZWltIFZlcnNhbmQgZWluZXMgRm9ybUJ1aWxkZXItRm9ybXVsYXJzIGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZSc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBkZXIgTmFtZSBkZXMgRm9ybXVsYXJzIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gZGllIGludGVybmUgSUQgZGVzIEZvcm11bGFycyAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXyZhbXA7bHQ7bmFtZSZhbXA7Z3Q7PC9lbT4gLSAmdXVtbDtiZXJtaXR0ZWx0IGVpbmVuIHZvcmdlZ2ViZW5lbiBXZXJ0IGFuIGVpbiBmZXN0Z2VsZWd0ZXMgRmVsZC48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkF1c2YmdXVtbDtocmVuLCB3ZW5uIGJlaW0gVmVyc2FuZCBlaW5lcyBGb3JtQnVpbGRlci1Gb3JtdWxhcnMgZWluIEZlaGxlciBhdWZnZXRyZXRlbiBpc3Q8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBOYW1lIGRlcyBGb3JtdWxhcnMgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpbnRlcm5lIElEIGRlcyBGb3JtdWxhcnMgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gZWluZSBMaXN0ZSBhbGxlciBiZWthbm50ZSBGZWhsZXIgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZTwvcD4NCjxoND5QYXJhbWV0ZXI8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIE5hbWUgZGVzIEZvcm11bGFycyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGludGVybmUgSUQgZGVzIEZvcm11bGFycyAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UtSUQuIFdpcmQgdm9tIEZvcm1Ccm93c2VyLU1vZHVsIHZlcndlbmRldCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhcmR3ZXJ0ZSBkZXIgRmVsZGVyOyBzaWVoZSBNb2R1bC1IaWxmZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGZWxkLUlEIGYmdXVtbDtyIGludGVybmUgT3BlcmF0aW9uZW4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGFyLU5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxhci1JRCBmJnV1bWw7ciBpbnRlcm5lIE9wZXJhdGlvbmVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxsZ2VtZWluZSBQYXJhbWV0ZXIgZiZ1dW1sO3IgaW50ZXJuZSBPcGVyYXRpb25lbic7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPlN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgQmVyZWNodGlndW5nICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyANCmYmdXVtbDtyIGRpZSBCZW51dHplciBnZXNldHp0IGlzdCwgd2VsY2hlIGRpZSBGZWVkYmFjay1Gb3JtdWxhcmUgYWRtaW5pc3RyaWVyZW4gd2VyZGVuLiBTb2xsZW4gZGllIFdlcnRlIGF1cyBkZW0gRm9ybXVsYXIgcGVyIEVtYWlsIHZlcnNhbmR0IHdlcmRlbiwgDQpzdGVsbGVuIFNpZSBlYmVuZmFsbHMgc2ljaGVyLCBkYXNzIGRpZSBLb25maWd1cmF0aW9uIGVudHNwcmVjaGVuZCBha3R1YWxpc2llcnQgd3VyZGUuPC9wPg0KPHA+QUNIVFVORzogVyZhdW1sO2hyZW5kIGRlciBCZWFyYmVpdHVuZyBkYXJmIGRhcyBqZXdlaWxpZ2UgRmVlZGJhY2stRm9ybXVsYXIgDQpCZWFyYmVpdHVuZyBuaWNodCBha3RpdiBzZWluICg9bnV0emJhciBmJnV1bWw7ciBkaWUgRyZhdW1sO3N0ZSBJaHJlciBIb21lcGFnZSkuIFNpZSBzb2xsdGVuIGRhaGVyIGRlbiBGZWVkYmFja2Zvcm11bGFyLVRhZyBlcnN0IGRhbm4gaW4gZWluZSBha3RpdmUgSW5oYWx0c3NlaXRlIGVpbmYmdXVtbDtnZW4sIHdlbm4gZGFzIEZvcm11bGFyIGtvbXBsZXR0IGVyc3RlbGx0IGlzdC4gQW5kZXJlbmZhbGxzIGthbm4gZXMgenUgZmVobGVyaGFmdGVuIEVyZ2Vibmlzc2VuIGtvbW1lbi48L3A+DQo8cD5IaW53ZWlzOiBEaWVzZSBWZXJzaW9uIHVudGVyc3QmdXVtbDt0enQga2VpbmUgcGFyYWxsZWxlIEJlYXJiZWl0dW5nIHZvbiBGb3JtdWxhcmVuIGR1cmNoIG1laHJlcmUgQWRtaW5pc3RyYXRvcmVuLiBTdGVsbGVuIFNpZSBkYWhlciBzaWNoZXIsIGRhc3MgZWluIEZvcm11bGFyIGpld2VpbHMgbnVyIHZvbiBlaW5lbSBBZG1pbmlzdHJhdG9yIGJlYXJiZWl0ZXQgd2lyZC48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2FzIG1hY2h0IGRpZXNlcyBNb2R1bD88L2gzPg0KPHA+RGFzIEZvcm1CdWlsZGVyLU1vZHVsIGVybGF1YnQgSWhuZW4sIEZlZWRiYWNrLUZvcm11bGFyZSB6dSBlcnN0ZWxsZW4gKGxvZ2lzY2gsIGVzIGlzdCBkZXIgTmFjaGZvbGdlciBkZXMgRmVlZGJhY2tGb3JtLU1vZHVscyksIGVyd2VpdGVydCB1bSBkaWUgRiZhdW1sO2hpZ2tlaXQsIGVpbmdlZ2ViZW5lIERhdGVuIGF1Y2ggaW4gZWluZXIgRGF0ZW5iYW5rIGFibGVnZW4genUgayZvdW1sO25uZW4uIFp1c2FtbWVuIG1pdCBkZW0gRm9ybUJyb3dzZXItTW9kdWwgayZvdW1sO25uZW4gU2llIGVpbnNldHplbiwgdW0gZWluZmFjaGUgRGF0ZW5iYW5rLUFud2VuZHVuZ2VuIHNlbGJzdCB6dSBlcnN0ZWxsZW4uPC9wPg0KPHA+RGllIHZvbiBGb3JtQnVpbGRlciBlcnpldWd0ZW4gRm9ybXVsYXJlIGsmb3VtbDtubmVuIGluIFRlbXBsYXRlcyANCnVuZC9vZGVyIFNlaXRlbiBlaW5nZWYmdXVtbDtndCB3ZXJkZW4uIEluIGRpZSBGb3JtdWxhciBrJm91bWw7bm5lbiB2ZXJzY2hpZWRlbmUgQXJ0ZW4gdm9uIERhdGVuIGVpbmdlZ2ViZW4gd2VyZGVuLiBEaWVzZSBFaW5nYWJlbiANCjxwPkZvcm11bGFyZmVsZGVybiB3ZXJkZW4gTmFtZW4genVnZXdpZXNlbi4gRGllc2UgTmFtZW4gaWRlbnRpZml6aWVyZW4gSWhyZSBGb3JtdWxhcmZlbGRlciwgbmljaHQgbnVyIGF1ZiBkZW0gQmlsZHNjaGlybSBhbHMgQmV6ZWljaG51bmdlbiBkaWUgZGVtIEJlbnV0emVyIGRpZW5lbiwgc29uZGVybiBhdWNoIGluIGRlbiBEYXRlbiB3ZW5uIHNpZSB2ZXJzY2hpY2t0IHdlcmRlbi4gRGFtaXQgd2lyZCBzaWNoZXJnZXN0ZWxsdCBkYXNzIFNpZSBkYXMgc2VoZW4gd2FzIGRlciBOdXR6ZXIgZWluZ2VnZWJlbiBoYXQuIDxicj4NCkRlbiBOYW1lbiB3aWUgZWluZSBGcmFnZSB6dSBnZXN0YWx0ZW4gaXN0IGVpbmUgc2VociBoYW5kbGljaGUgQXJ0IHVuZCBXZWlzZSBkZW0gTnV0emVyIHp1IHZlcm1pdHRlbG4gd2FzIGhpZXIgdm9uIGlobSBlcndhcnRldCB3aXJkLiA8YnI+DQpWaWVsZSBGZWxkZXIgaGFiZW4gYmVpZGVzLCBOYW1lbiB1bmQgV2VydGUuIERpZSBOYW1lbiwgZGllIGRlbSBOdXR6ZXIgYW5nZXplaWd0IHdlcmRlbiB1bmQgZGllIFdlcnRlLCBkYXMgc2luZCBkaWUgZGllIGdlc3BlaWNoZXJ0IHdlcmRlbiB3ZW5uIGRlciBOdXR6ZXIgZGFzIEZvcm11bGFyIGFic2NoaWNrdC4gRGllIFdlcnRlIHNpbmQgd2VkZXIgdm9tIEJlbnV0emVyIGVpbnNlaGJhciBub2NoIGltIEhUTUwsIHNvbWl0IGlzdCBlcyBzaWNoZXIgc2llIGYmdXVtbDtyIEVtYWlsYWRyZXNzZW4gdXN3LiB6dSB2ZXJ3ZW5kZW4uIDwvcD4NCjxwPkVpbmlnZSBGZWxkZXIgayZvdW1sO25uZW4gbWVocmVyZSBXZXJ0ZSBvZGVyIE5hbWVuL1dlcnRlIFBhYXJlIGhhYmVuLiBXZW5uIFNpZSB6dWVyc3QgZWluIHNvbGNoZXMgRmVsZCBlcnN0ZWxsZW4sIGthbm4gZXMgbSZvdW1sO2dsaWNoIHNlaW4sIGRhc3MgbmljaHQgZ2VuJnV1bWw7Z2VuZCBFaW5nYWJlZmVsZGVyIHZvcmhhbmRlbiBzaW5kLCB1bSBkaWUgV2VydGUgZWluenV0cmFnZW4uIFVtIG1laHIgTSZvdW1sO2dsaWNoa2VpdGVuIHp1IGVyaGFsdGVuIFdlcnRlIGVpbnp1dHJhZ2VuLCBiZW51dHplbiBTaWUgZGVuIFNjaGFsdGVyIGFtIHVudGVyZW4gRW5kZSBkZXIgU2VpdGUgZiZ1dW1sO3Igd2VpdGVyZSBPcHRpb25lbi48L3A+DQo8cD5GZWxkZXJuIGsmb3VtbDtubmVuIFZhbGlkaWVydW5nc3JlZ2VsbiB6dWdld2llc2VuIHdlcmRlbiwgd2VsY2hlIGplIG5hY2ggRmVsZHR5cCB1bnRlcnNjaGllZGxpY2ggc2VpbiBrJm91bWw7bm5lbi4gRGllc2UgUmVnZWxuIGhlbGZlbiBzaWNoZXJ6dXN0ZWxsZW4gZGFzcyBkZXIgTnV0emVyIGcmdXVtbDtsdGlnZSBEYXRlbiBlaW5naWJ0LiBBdSZzemxpZztlcmRlbSBpc3QgZXMgbSZvdW1sO2dsaWNoLCBGZWxkZXIgc2VwZXJhdCBtaXQgZWluZW0gJnF1b3Q7d2lyZCBiZW4mb3VtbDt0aWd0JnF1b3Q7IHp1IG1hcmtpZXJlbiwgZGFtaXQgd2lyZCBkZXIgTnV0emVyIHNvenVzYWdlbiAmcXVvdDtnZXp3dW5nZW4mcXVvdDsgRWluZ2FiZW4genUgbWFjaGVuLiA8L3A+DQo8cD5GZWxkZXJuIGsmb3VtbDtubmVuIGF1Y2ggQ1NTLUtsYXNzZW4genVnZXdpZXNlbiB3ZXJkZW4uIEVzIHdlcmRlbiBkaWUgRWluZ2FiZWZlbGRlciBtaXQgZWluZW0gRElWIFRhZyB1bmQgZGF6dWdlaCZvdW1sO3JpZ2VyIENTUy1LbGFzc2UgdW1nZWJlbjsgc29taXQgayZvdW1sO25uZW4gU2llIElociBGb3JtdWxhciBzZWxic3QgZ2VzdGFsdGVuLiBVbSBkaWVzIGVmZml6aWVudCBudXR6ZW4genUgayZvdW1sO25uZW4sIHNvbGx0ZW4gaW4gZGVuIFF1ZWxsdGV4dCBkZXMgRm9ybXVsYXJlcyBnZWhlbiB1bmQgZGFubiBJaHJlbiBDU1MtQ29kZSBzY2hyZWliZW4uIDwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBFaW5nYWJlZmVsZGVyDQogIDx1bD4NCiAgICA8bGk+VGV4dCBFaW5nYWJlZmVsZC4gRGllcyBpc3QgZGFzIFN0YW5kYXJkIEVpbmdhYmVmZWxkLiBTaWUgayZvdW1sO25uZW4gZGllIEwmYXVtbDtuZ2UgZGVyIGVpZ2VnZWJlbmVuIFplaWNoZW4gdyZhdW1sO2hsZW4gdW5kIHZlcnNjaGllZGVuZSBWYWxpZGllcnVuZ3NmdW5rdGlvbmVuIGF1ZiBkaWVzZSBGZWxkIGFud2VuZGVuLjwvbGk+DQogICAgPGxpPlRleHRiZXJlaWNoLiBEaWVzIGlzdCBlaW4gZ3JvJnN6bGlnO2VzIGZvcm1mcmVpZXMgVGV4dGVpbmdhYmVmZWxkLjwvbGk+DQogICAgPGxpPkNoZWNrYm94LiBEYXMgaXN0IGRpZSBTdGFuZGFyZCBDaGVja2JveC48L2xpPg0KICAgIDxsaT5DaGVja2JveCBHcnVwcGUuIERhcyBpc3QgZWluZSBTYW1tbHVuZyB2b24gQ2hlY2tib3hlbi4gRGVyIGVpbnppZ2UgVW50ZXJzY2hpZWQgYmVzdGVodCBkYXJpbiwgZGFzcyBkaWVzIGVpbmUgR3J1cHBlIHZvbiBDaGVja2JveGVuIG1pdCBlaW5lbSBOYW1lbiBpc3QuIFdlaXRlcmhpbiBrJm91bWw7bm5lbiBTaWUgZWluZW4gb2RlciBtZWhyZXJlIGFscyAmcXVvdDt3aXJkIGJlbiZvdW1sO3RpZ3QmcXVvdDsgbWFya2llcmVuLiBTb21pdCBpc3QgZGVyIE51dHplciAmcXVvdDtnZXp3dW5nZW4mcXVvdDsgZWluZSBvZGVyIG1laHJlcmUgQ2hlY2tib3hlbiBkaWVzZXIgR3J1cHBlIGF1c3p1dyZhdW1sO2hsZW4uPC9saT4NCiAgICA8bGk+UmFkaW8gQnV0dG9uIEdydXBwZS4gRGFzIGlzdCBlaW5lIFNhbW1sdW5nIHZvbiBSYWRpbyBCdXR0b25zLiBOdXIgZWluIFJhZGlvIEJ1dHRvbiBpbiBkZXIgR3J1cHBlIGthbm4gYXVzZ2V3JmF1bWw7aGx0IHdlcmRlbi48L2xpPg0KICAgIDxsaT5QdWxsZG93bi4gRGFzIGlzdCBlaW4gU3RhbmRhcmQgUHVsbGRvd24gTWVuJnV1bWw7LiBWb20gS29uemVwdCBoZXIgZ2VzZWhlbiBkYXMgZ2xlaWNoZSB3aWUgZGllIFJhZGlvIEJ1dHRvbiBHcnVwcGUsIGFiZXIgYmVzc2VyIHdlbm4gU2llIHZpZWxlIEF1c3dhaGxtJm91bWw7Z2xpY2hrZWl0ZW4gaGFiZW4uPC9saT4NCiAgICA8bGk+TWVocmZhY2hhdXN3YWhsLiBEYXMgaXN0IGRhcyBNZWhyZmFjaGF1c3dhaGwgRmVsZC4gVm9tIEtvbnplcHQgaGVyIGdlc2VoZW4gZGFzIGdsZWljaGUgd2llIGRpZSBSYWRpbyBCdXR0b24gR3J1cHBlLCBhYmVyIGJlc3NlciB3ZW5uIFNpZSB2aWVsZSBBdXN3YWhsbSZvdW1sO2dsaWNoa2VpdGVuIGhhYmVuIHVuZCBkaWUgQXVzd2FobCBhYmVyIGJlZ3JlbnplbiBtJm91bWw7Y2h0ZW4uPC9saT4NCg0KICAgIDxsaT5CdW5kZXNzdGFhdC4gRGllcyBpc3QgZWluZSBQdWxsZG93biBMaXN0ZSBtaXQgcyZhdW1sO210bGljaGVuIEJ1bmRlc3N0YWF0ZW4gZGVyIFVTQS48L2xpPg0KPGxpPkwmYXVtbDtuZGVyLiBEaWVzIGlzdCBlaW5lIFB1bGxkb3duIExpc3RlIHMmYXVtbDttdGxpY2hlciBzaWNoIGF1ZiBkZXIgRXJkZSBiZWZpbmRsaWNoZW4gTCZhdW1sO25kZXIuPC9saT4NCjxsaT5EYXR1bXNhdXN3YWhsLiBEaWVzIGlzdCBlaW5lIGRyZWlmYWNoIFB1bGxkb3duIExpc3RlLCBkaWUgZGVtIE51dHplciBkaWUgTSZvdW1sO2dsaWNoa2VpdCBnaWJ0IGVpbiBEYXR1bSBhdXp1dyZhdW1sO2hsZW4uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZXppZmlzY2hlIEVpbmdhYmVmZWxkZXINCiAgPHVsPg0KICAgIDxsaT5FbWFpbCBWb24gIEFkcmVzcyBGZWxkLiBIaWVyIGsmb3VtbDtubmVuIFNpZSBJaHJlIEVtYWlsYWRyZXNzZSBlaW5nZWJlbi4gRGllc2Ugd2lyZCBpbiBkZXIgZ2VuZXJpZXJ0ZW4gRW1haWwgaW0gRmVsZCBWb24gKE1haWxhZHJlc3NlKTogYW5nZWdlYmVuLjwvbGk+DQogICAgPGxpPkVtYWlsIFZvbiBOYW1lIEZlbGQuIEhpZXIgayZvdW1sO25uZW4gU2llIElocmVuIE5hbWVuIGVpbmdlYmVuLiBEaWVzZSB3aXJkIGluIGRlciBnZW5lcmllcnRlbiBFbWFpbCBpbSBGZWxkIE5hbWUgKEFic2VuZGVybmFtZSk6IGFuZ2VnZWJlbi48L2xpPg0KDQo8L3VsPjwvbGk+DQoNCjxsaT5Lb250cm9sbGZlbGRlciBmJnV1bWw7ciBkaWUgQW56ZWlnZTx1bD4NCjxsaT5TZWl0ZW51bWJydWNoIC0gZGFzIGVybSZvdW1sO2dsaWNodCBJaG5lbiBkaWUgQXVmdGVpbHVuZyBJaHJlcyBGZWVkYmFjay1Gb3JtdWxhcnMgaW4gbWVocmVyZSBTZWl0ZW4uIERpZSBFaW5nYWJlbiBqZWRlciBTZWl0ZSB3ZXJkZW4NCnVuYWJoJmF1bWw7bmdpZyB2b25laW5hbmRlciBnZXByJnV1bWw7ZnQuIERhcyBpc3QgaW5zYmVzb25kZXJlIGJlaSBPbmxpbmUtVW1mcmFnZW4gJmF1bWw7dSZzemxpZztlcnN0IHZvcnRlaWxoYWZ0LjwvbGk+DQo8bGk+LVN0YXRpc2NoZXIgVGV4dC4gRGFtaXQgayZvdW1sO25uZW4gU2llIElocmVtIEZvcm11bGFyIGVpbmZhY2hlbiBUZXh0IGhpbnp1ZiZ1dW1sO2dlbiBvZGVyIGVzIGJlc2NocmlmdGVuLiBEaWVzIGlzdCBmJnV1bWw7ciBBdXNmJnV1bWw7bGxoaW53ZWlzZSwgSGlsZmVuIHVzdy4gc2VociBuJnV1bWw7dHpsaWNoLCBpbnNiZXNvbmRlcmUgd2VubiBTaWUgZiZ1dW1sO3IgZGllIEFuemVpZ2UgZGVzIEZvcm11bGFycyBrZWluIGFuZ2VwYXNzdGVzIFRlbXBsYXRlIHZlcndlbmRlbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybXVsYXIgJiMwMzk7SGFuZGxpbmcmIzAzOTsNCiAgPHVsPg0KICAgIDxsaT4qRW1haWwgRXJnZWJuaXMgYmFzaWVyZW5kIGF1ZiBkZW0gUHVsbGRvd24uIERpZXMgaXN0IGhpbGZyZWljaCBmJnV1bWw7ciBJbnRlcm5ldHNlaXRlbiB3byBLb21tZW50YXJlICZ1dW1sO2JlciBkaWUgQW5nZWxlZ2VuaGVpdCBpbiBkZW4gQmV0cmVmZiBnZXNjaHJpZWJlbiB3ZXJkZW4uIHouQi4gQnVncyB3ZXJkZW4genVtIEVudHdpY2tsZXIgZ2VzZW5kZXQsIE1hcmtldGluZyBGcmFnZW4genUgZWluZXIgUGVyc29uLCBGcmFnZW4genVtIFZlcmthdWYgenUgZWluZXIgYW5kZXJlbiBQZXNvbiB1c3cuIERhcyBQdWxsZG93biBNZW4mdXVtbDsgd2lyZCBtaXQgQmV0cmVmZnMgaGludGVybGVndCB1bmQgamVkZXIgd2lyZCB6dSBlaW5lciBzcGV6aWZpc2NoZW4gTWFpbGFkcmVzc2UgdmVyc2FuZHQuIFNpZSBlcnN0ZWxsZW4gZGVuIGpld2VpbGlnZW4gQmV0cmVmZiB3ZW5uIFNpZSBlaW4gc29sY2hlcyBGZWxkIGVyc3RlbGxlbiBvZGVyIGVkaXRpZXJlbi4gV2VubiBTaWUgZWluIHNvbGNoZXMgUHVsbGRvd24gTWVuJnV1bWw7IGJlbnV0emVuLCBtdXNzIGRlciBOdXR6ZXIgZWluZSBBdXN3YWhsIGRlcyBCZXRyZWZmcyB3JmF1bWw7aGxlbiB1bSBkYXMgRm9ybXVsYXIgYWJzY2hpY2tlbiB6dSBrJm91bWw7bm5lbi4gRGllc2VzIEF1c3dhaGxmZWxkIGlzdCBmJnV1bWw7ciBkZW4gTnV0emVyIHNpY2h0YmFyIGFiZXIgZGllIE1haWxhZHJlc3NlbiBkaWUgZGFoaW50ZXIgc3RlaGVuIHdlcmRlbiB3ZWRlciBJaG0gbm9jaCBpbSBIVE1MIGFuZ2V6ZWlndC48L2xpPg0KDQogICAgPGxpPipFbWFpbCBFcmdlYm5pcyBhbiBBZHJlc3NlKG4pIHNlbmRlbi4gRGllcyBzZW5kZXQgZGllIERhdGVuIGFuIGVpbmUgdm9yaGVyIGFuZ2VnZWJlbmUgTWFpbGFkcmVzc2UuIERpZSBNYWlsYWRyZXNzZShuKSBrJm91bWw7bm5lbiBTaWUgYW5nZWJlbiB3ZW5uIFNpZSBlaW4gc29sY2hlcyBGZWxkIGdlbmVyaWVyZW4uIERhcyBGZWxkIHVuZCBkZXIgTmFtZSBpc3QgZiZ1dW1sO3IgZGVuIE51dHplciBuaWNodCBzaWNodGJhci4gQXVjaCBuaWNodCBpbSBRdWVsbHRleHQuPC9saT4NCiAgICA8bGk+KkRhdGVuIGluIERhdGVuYmFuayBzcGVpY2hlcm4uIERpZXMgc3BlaWNoZXJ0IGRpZSBhYmdlZ2ViZW5lbiBEYXRlbiBpbiBlaW5lciBpbnRlcm5lbiBEYXRlbmJhbmsuIERpZXNlIEVpbnN0ZWxsdW5nIHZlcndlbmRlbiBTaWUgbWVpc3RlbiBpbiBWZXJiaW5kdW5nIG1pdCBkZW0gTW9kdWwgRm9ybUJyb3dzZXIuPC9saT4NCiAgICA8bGk+KlZhbGlkaWVydW5nICZ1dW1sO2JlciBkaWUgTWFpbGFkcmVzc2UuIERpZXMgaXN0IGVpbiBzZWhyIGxlaXN0dW5nc2YmYXVtbDtoaWdlcyBGZWxkLiBFcyBzdGVsbHQgZGVtIEJlbnV0emVyIGVpbiB2b3JnZWdlYmVuZXMgRWluZ2FiZWZlbGQgZiZ1dW1sO3Igc2VpbmUgTWFpbGFkcmVzc2UgenVyIFZlcmYmdXVtbDtndW5nLiBXZW5uIGRpZXNlciBkYXMgRm9ybXVsYXIgYWJzY2hpY2t0IHdpcmQgZGllICZVdW1sO2Jlcm1pdHRsdW5nIG5pY2h0IGRpcmVrdCBhdXNnZWYmdXVtbDtocnQsIHNvbmRlcm4gc2NoaWNrdCBkZW0gTnV0emVyIGVpbmUgTWFpbCBtaXQgZWluZW0gY29kaWVydGVuIExpbmsuIEVyc3Qgd2VubiBkaWVzZXIgTGluayBnZWRyJnV1bWw7Y2t0IHdpcmQgd2lyZCBkYXMgRm9ybXVsYXIgdmFsaWRpZXJ0IHVuZCBkaWUgRWluZ2FiZW4gYWJnZXNjaGlja3QuPC9saT4NCiAgICA8bGk+KkluIERhdGVpIFNjaHJlaWJlbi4gRGllc2UgT3B0aW9uIGdyZWlmdCBkaWUgRGF0ZW4gYWIgdW5kIHNjaHJlaWJ0IHNpZSBpbiBlaW5lIFRleHRkYXRlaS4gU2llIGsmb3VtbDtubmVuIGRlbiBOYW1lbiB1bmQgZGFzIERhdGVpZm9ybWF0IGJlc3RpbW1lbi4gRGllc2UgRGF0ZWllbiB3ZXJkZW4gaW4gZGFzIEF1c2dhYmV2ZXJ6ZWljaG5pcyBkZXMgTW9kdWwgSW5zdGFsbGF0aW9ucyBWZXJ6ZWljaG5pc3NlcyBnZXNjaHJpZWJlbi4gVm9ycmF1c2dlc2V0enQgaXN0LCBkYXNzIGRlciBTZXJ2ZXIgZGllIG5vdHdlbmRpZ2VuIFNjaHJlaWJyZWNodGUgdmVyZ2ViZW4gaGF0Lg0KICAgIDwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5UZW1wbGF0ZXMgZiZ1dW1sO3IgRW1haWwgdW5kIGVpbmZhY2hlIERhdGVpZW48L2gzPg0KPHA+TWFuIGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIFdlbm4gU2llIHNlbGJzdCBrZWluIFRlbXBsYXRlIGVyc3RlbGxlbiB3b2xsZW4sIHdpcmQgRm9ybUJ1aWxkZXIgZGllIG5hY2ggc2VpbmVyIEVpbnNjaCZhdW1sO3R6dW5nIGJlc3RlIEwmb3VtbDtzdW5nIHZlcndlbmRlbiwgZGllIHNvIGZ1bmt0aW9uaWVydCwgd2llIFNpZSB3b2xsZW4gb2RlciBhdWNoIG5pY2h0LiBTaWUgayZvdW1sO25uZW4gamVkZXJ6ZWl0IGF1ZiAmcXVvdDtFaW4gTXVzdGVyLVRlbXBsYXRlIGVyc3RlbGxlbiZxdW90OyBrbGlja2VuIHVuZCBkYW5uIGRpZSBFcmdlYm5pc3NlIGFucGFzc2VuLjwvcD4NCjxwPkJlYWNodGVuIFNpZSwgZGFzcyBuZXUgaGluenVnZWYmdXVtbDtndGUgRmVsZGVyIG5pY2h0IG1laHIgYXV0b21hdGlzY2ggZGVtIFRlbXBsYXRlIGhpbnp1Z2VmJnV1bWw7Z3Qgd2VyZGVuLCB3ZW5uIGVzIGVpbm1hbCBnZSZhdW1sO25kZXJ0IHd1cmRlLiBBdXMgZGllc2VtIEdydW5kIGlzdCBlcyBkYXMgQmVzdGUsIHdlbm4gU2llIGVyc3QgenVtIFNjaGx1c3MgZGFzIFRlbXBsYXRlIGYmdXVtbDtyIGRhcyBGb3JtdWxhciBlcnN0ZWxsZW4uPC9wPg0KDQo8aDM+QmVrYW5udGUgUHJvYmxlbWU8L2gzPg0KPHVsPg0KPGxpPkVpbmlnZSBGZWxkdHlwZW4sIGRpZSBpbSBGZWVkYmFja0Zvcm0tTW9kdWwgZW50aGFsdGVuIHdhcmVuLCBzaW5kIGluIEZvcm1CdWlsZGVyIG5pY2h0IGltcGxlbWVudGllcnQuIFdlbm4gZWluIEJlZGFyZiBmJnV1bWw7ciBkaWVzZSBGZWxkZXIgdm9yaGFuZGVuIGlzdCwgd2VyZGUgaWNoIHNpZSBoaW56dWdlZiZ1dW1sO2dlbi48L2xpPg0KPGxpPkRhcyBGb3JtQnVpbGRlci1Nb2R1bCBrYW5uIGdlZ2VudyZhdW1sO3J0aWcgbm9jaCBuaWNodCBhdWYgZGllIERhdGVuIGRlcyBGcm9udGVuZFVzZXJzLU1vZHVscyB6dWdyZWlmZW4uIERpZXMgaXN0IGFiZXIgZ2VwbGFudC48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIHVudGVyc3QmdXVtbDt0enQgZ2VnZW53JmF1bWw7cnRpZyBub2NoIGtlaW5lIFByZXR0eSBVUkxzLCBkaWVzIHNvbGx0ZSBqZWRvY2gga2VpbiBQcm9ibGVtIHNlaW4sIGRhIGRpZSBBdXNnYWJlbiBCZW51dHplcnNlaXRlIHNlaHIgZWluZmFjaCBnZWhhbHRlbiBpc3QuPC9saT4NCjwvdWw+DQoNCjxoMz5GZWhsZXJzdWNoZTwvaDM+DQo8b2w+PGxpPiBBbHMgZXJzdGVzIHNvbGx0ZW4gU2llIHByJnV1bWw7ZmVuLCBvYiBTaWUgQ01TbXMgaW4gZWluZXIgVmVyc2lvbiA+IDEuMCB2ZXJ3ZW5kZW4uPC9saT4NCjxsaT4gSW0gendlaXRlbiBTY2hyaXR0IHNvbGx0ZW4gU2llIGRpZSBQcm9ibGVtZSBiZWkgZGVyIFZlcndlbmR1bmcgdm9uIFdZU0lXWUctRWRpdG9yZW4gaW0gQWJzY2huaXR0DQogPGVtPkVpbiBGb3JtdWxhciBlaW5lciBTZWl0ZSBoaW56dWYmdXVtbDtnZW48L2VtPiBsZXNlbiB1bmQgdmVyc3RlaGVuLjwvbGk+DQo8bGk+V2VubiBTaWUgaW4gZWluZXIgdm9uIEZvcm1CdWlsZGVyIGdlbmVyaWVydGVuIEVtYWlsIGJlc3RpbW10ZSBGZWxkZXIgdmVybWlzc2VuLCAmdXVtbDtiZXJwciZ1dW1sO2ZlbiBTaWUsIG9iIGRpZSBGZWxkZXIgaW0gVGVtcGxhdGUgZW50aGFsdGVuIHNpbmQsIHVuZCBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgU2llIGRpZSBmZWhsZW5kZW4gRmVsZGVyIGF1Y2ggdGF0cyZhdW1sO2NobGljaCBkZWZpbmllcnQgaGFiZW4uIEF1Y2ggd2VubiBlcyBuaWNodCBrbGFyIGVyc2ljaHRsaWNoIHNjaGVpbnQsIGthbm4gZXMgZHVyY2hhdXMgbnVyIGVpbiBnYW56IGVpbmZhY2hlciBGZWhsZXIgc2Vpbi48L2xpPg0KPGxpPiBWZXJzdWNoZW4gU2llLCBhdWYgTGlua3MgdW5kIEljb25zIHp1IGtsaWNrZW4gdW5kIGJlb2JhY2h0ZW4gZ2VuYXUsIHdhcyBwYXNzaWVydC48L2xpPg0KPGxpPiBEaWUgbGV0enRlIE0mb3VtbDtnbGljaGtlaXQgaXN0LCBtaXIgZGFzIFByb2JsZW0gcGVyIEVtYWlsIG1pdHp1dGVpbGVuIG9kZXIgbWljaCBpbSBJUkMtQ2hhdCBhbnp1c3ByZWNoZW4sIGRhbWl0IHdpciBkYXMgUHJvYmxlbSBnZW1laW5zYW0gYmVoZWJlbi48L2xpPg0KPC9vbD4gDQo8cD5EaWVzIGlzdCBlaW5lIHNlaHIgZnImdXVtbDtoZSBWZXJzaW9uLCBlaW4gdW5nZXRlc3RldGVzIEJldGEtUmVsZWFzZSwgdW5kIHNlaHIgd2FocnNjaGVpbmxpY2ggaXN0IGVzIGZlaGxlcmhhZnQuIE9id29obCBpY2ggYWxsZXMgZ2V0YW4gaGFiZSwgd2FzIGljaCBrb25udGUsIA0KdW0gc2ljaGVyenVzdGVsbGVuLCBkYXNzIHNpY2gga2VpbmUgZ3Imb3VtbDsmc3psaWc7ZXJlbiAmcXVvdDtXYW56ZW4mcXVvdDsgZWluZ2VzY2hsaWNoZW4gaGFiZW4sIG11c3N0ZSBpY2ggdyZhdW1sO2hyZW5kIGRlcyBUZXN0ZW5zIGZlc3RzdGVsbGVuLCBkYXNzIGRhcyBQcm9ncmFtbSANCnNpZWJlbiBLYWtlcmxha2VuLCB6d2VpIE9ocncmdXVtbDtybWVyLCBlaW5lIGtsZWluZSBGYW1pbGllIHZvbiBCbGF0dGwmYXVtbDt1c2VuIHVuZCBlaW5lIFdhbmRlcnN0YWJoZXVzY2hyZWNrZSBlbnRoaWVsdC4gU2llIGZyYSZzemxpZztlbiBhdWNoDQpOYWNoYmFycyBiJm91bWw7c2VuIGtsZWluZW4ga2wmYXVtbDtmZmVuZGVuIEh1bmQsIHdvZiZ1dW1sO3IgaWNoIHVuZW5kbGljaCBkYW5rYmFyIHdhci48L3A+DQo8cD5EYXMgZmluYWxlIFJlbGVhc2Ugd2lyZCBCdWdmaXhlcywgZWluZSBEb2t1bWVudGF0aW9uIHVuZCB1bmJlZGluZ3RlIExpZWJlIGVudGhhbHRlbi48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgYmVpbmhhbHRldCBrZWluZW4ga29tbWVyemllbGxlbiBTdXBwb3J0LiBTaWUgayZvdW1sO25uZW4gamVkb2NoICZ1dW1sO2JlciBkaWUgZm9sZ2VuZGUgV2VnZSBIaWxmZSB6dSBkZW0gTW9kdWwgZXJoYWx0ZW46PC9wPg0KPHVsPg0KPGxpPkYmdXVtbDtyIGRpZSBsZXR6dGUgVmVyc2lvbiBkaWVzZXMgTW9kdWxzLCBGQVFzLCBkZW0gVmVyc2FuZCBlaW5lcyBGZWhsZXJyZXBvcnRzIG9kZXIgZGVtIEthdWYga29tbWVyemllbGxlbiBTdXBwb3J0IGJlc3VjaGVuIHNpZSBiaXR0ZSBjYWxndXlzIEhvbWVwYWdlIHVudGVyIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3RlY2hjb20uZHluZG5zLm9yZyZxdW90Oz50ZWNoY29tLmR5bmRucy5vcmc8L2E+LjwvbGk+DQo8bGk+RWluZSB3ZWl0ZXJlIERpc2t1c3Npb24genUgZGllc2VtIE1vZHVsIGlzdCBhdWNoIGluIGRlbiBGb3JlbiB2b24gPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlPC9hPiB6dSBmaW5kZW4uPC9saT4NCjxsaT5EZXIgQXV0b3IgY2FsZ3V5MTAwMCwgaXN0IGgmYXVtbDt1ZmlnIGltIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4genUgZmluZGVuLjwvbGk+DQo8bGk+TGV0enRsaWNoIGVycmVpY2hlbiBTaWUgZGVuIEF1dG9yIGF1Y2ggJnV1bWw7YmVyIGVpbmUgZGlyZWt0ZSBFbWFpbC48L2xpPiAgDQo8L3VsPg0KPHA+TmFjaCBkZXIgR1BMIHdpcmQgZGllc2UgU29mdHdhcmUgc28gdmVyJm91bWw7ZmZlbnRsaWNodCwgd2llIHNpZSBpc3QuIEJpdHRlIGxlc2VuIFNpZSBkZW4gTGl6ZW56dGV4dCBmJnV1bWw7ciBkZW4gdm9sbGVuIEhhZnR1bmdzYXVzc2NobHVzcy48L3A+DQo8aDM+Q29weXJpZ2h0IHVuZCBMaXplbno8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA2LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLjwvcD4NCjxwPkRpZXNlcyBNb2R1bCB3dXJkZSB1bnRlciBkZXIgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPiB2ZXImb3VtbDtmZmVudGxpY2h0LiBTaWUgbSZ1dW1sO3NzZW4gZGllc2VyIExpemVueiB6dXN0aW1tZW4sIGJldm9yIFNpZSBkYXMgTW9kdWwgdmVyd2VuZGVuLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAmcXVvdDtUZXh0RmllbGQgKE11bHRpcGxlKSZxdW90OyBhbmQgJnF1b3Q7Q29tcHV0ZWQgRmllbGQmcXVvdDs8L2xpPg0KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biZxdW90OyBhbmQgJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyZxdW90OyhDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG5lYXQtbyBBSkFYLXkgdGVtcGxhdGUtY29weWluZyBmb3IgRm9ybSBUZW1wbGF0ZXMsIGdhdmUgdmVyc2lvbnMgb2Ygb2xkIHRhYmxlLWJhc2VkIHRlbXBsYXRlcyB0byBzb290aGUgdGhlIHJhZ2luZyBtYXNzZXMuPC9saT4NCgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9JnF1b3Q7dmFsdWUmcXVvdDsgc3ludGF4IChDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjMNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+DQogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUmIzAzOTtzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWcmIzAzOTtuJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+DQogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+DQogICAgICA8bGk+PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNw0KICAgPHA+QmlnIHJlbGVhc2U6PHVsPg0KICAgPGxpPkFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgJnF1b3Q7VGltZVBpY2tlciZxdW90OyBmaWVsZCB0eXBlLiBTcGxpdCAmcXVvdDtMaW5rJnF1b3Q7IGZpZWxkIGludG8gYSAmcXVvdDtVc2VyLXN1cHBsaWVkIExpbmsmcXVvdDsgZmllbGQgYW5kIGEgJnF1b3Q7U3RhdGljIExpbmsmcXVvdDsgZmllbGQuPC9saT4NCiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4NCiAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLjwvbGk+DQogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4zDQogICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMg0KICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICA8bGk+QWRkIFBhZ2VTZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcw0KICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZA0KICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZA0KICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICA8L3A+DQogICAgICA8L2xpPg0KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsDQogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICA8L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDthbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE0NTgxNjA2OS4xMjA0MzU5MjI2LjEyMDQzNTkyMjYuMTIwNDM1OTIyNi4xJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDQzNTkyMjYuMS4xLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocHx1dG1jbWQ9cmVmZXJyYWwnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnU2luIENvbmZpZ3VyYXIgVGlwbyBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpbiBkZSBGaWVsZHNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctQ29taWVuem8gZGUgRmllbGRzZXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdFbnRyYWRhIGRlIFRleHRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0VudHJhZGEgZGUgVGV4dG8gKE0mdWFjdXRlO2x0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnJkFhY3V0ZTtyZWEgZGUgVGV4dG8nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2FqYSBkZSBUaWxkZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0dydXBvIENhamFzIGRlIFRpbGRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0Rlc3BsZWdhYmxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBFc3RhZG9zIGRlIFUuUy4nOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBQYWlzZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBGZWNoYXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBIb3Jhcyc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBvIEJvdCZvYWN1dGU7bmVzIGRlIFJhZGlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbnZpYXIgRW1haWwgZGUgUmVzdWx0YWRvcyBCYXNhZG8gZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgYSBBcmNoaXZvIEJhc2FkbyBlbiBEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqR3VhcmRhciBSZXN1bHRhZG9zIGEgQXJjaGl2byhzKSBCYXNhZG8ocykgZW4gTSZ1YWN1dGU7bHRpcGxlIFNlbGVjY2lvbmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjY2lvbmFyIGEgUCZhYWN1dGU7Z2luYSBCYXNhZGEgZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVudmlhciBFbWFpbCBkZSBSZXN1bHRhZG9zIGEgRGlyZWNjaSZvYWN1dGU7bihlcykgQ29uZmlndXJhZGFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGFyLXZpYS1EaXJlY2NpJm9hY3V0ZTtuIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKkVzY3JpYmlyIFJlc3VsdGFkb3MgYSBBcmNoaXZvIFBsYW5vJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgZW4gQmFzZSBkZSBEYXRvcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypMbGFtYXIgYSB1bmEgVGFnIGRlZmluaWRhIHBvciBVc3VhcmlvIGNvbiBsb3MgUmVzdWx0YWRvcyBkZWwgRm9ybSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW52aWFyIEVtYWlsIGEgRGlyZWNjaW9uIEVtYWlsIFN1bWluaXN0cmFkYSBwb3IgVXN1YXJpbyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUNvcnRlIGRlIFAmYWFjdXRlO2dpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdTdWJpciBBcmNoaXZvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnQ2FtcG8gRW1haWwgJnF1b3Q7RGVzZGUgRGlyZWNjaSZvYWN1dGU7biZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0Rlc2RlIE5vbWJyZSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0FzdW50byZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZXh0byBFc3QmYWFjdXRlO3RpY28nOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctRW5sYWNlIEVzdCZhYWN1dGU7dGljbyc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0VubGFjZSAoRW50cmFkbyBwb3IgVXN1YXJpbyknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1DYW1wbyBPY3VsdG8nOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNhbXBvIENvbXB1dGFkbyc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdTaW4gVmFsaWRhcic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW0mZWFjdXRlO3JpY28nOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnRW50ZXJvJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0RpcmVjY2kmb2FjdXRlO24gRW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnTiZ1YWN1dGU7bWVybyBkZSBUZWwmZWFjdXRlO2Zvbm8gKFVTQSknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnRGViZSBDaGVxdWVhcnNlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdJZ3VhbGEgRXhwcmVzaSZvYWN1dGU7biBSZWd1bGFyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ05vIElndWFsYSBFeHByZXNpJm9hY3V0ZTtuIFJlZ3VsYXInOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ05vIHNlIGluZGljJm9hY3V0ZTsgZWwgdmFsb3IgcGFyYSB1biBjYW1wbyByZXF1ZXJpZG8nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biB2YWxvciBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIG4mdWFjdXRlO21lcm8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1bmEgZW50cmFkYSB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biB2YWxvciBlbnRlcm8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1bmEgZGlyZWNjaSZvYWN1dGU7biBlbWFpbCB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biBuJnVhY3V0ZTttZXJvIGRlIHRlbCZlYWN1dGU7Zm9ubyB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJmlleGNsOyZxdW90OyVzJnF1b3Q7IG5vIHBhcmVjZSBzZXIgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZW1haWwgdiZhYWN1dGU7bGlkYSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIHF1ZSBubyB0ZW5nYSBtJmFhY3V0ZTtzIGRlICVzIGNhcmFjdGVyZXMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhY3RlciBhIHV0aWxpemFyIGNvbW8gZGVsaW1pdGFkb3IgZW4gcmVzdWx0YWRvcyBxdWUgb2ZyZWNlbiBtJmFhY3V0ZTtzIGRlIHVuIHZhbG9yJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdVc3RlZCBuZWNlc2l0YSB0ZW5lciBlbCBwZXJtaXNvICZxdW90OyVzJnF1b3Q7IHBhcmEgcmVhbGl6YXIgbGEgb3BlcmFjaSZvYWN1dGU7bi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICcmaWV4Y2w7UGVyZCZvYWN1dGU7biEgUGVybyB1c3RlZCBubyB0aWVuZSBwcml2aWxlZ2lvcyBhZGVjdWFkb3MgcGFyYSBpbmdyZXNhciBhICZlYWN1dGU7c3RhIHNlY2NpJm9hY3V0ZTtuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnU2UgYWN0dWFsaXomb2FjdXRlOyBlbCBvcmRlbiBkZSBsb3MgY2FtcG9zLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhcmlvIGVsaW1pbmFkby4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0NhbXBvIGVsaW1pbmFkby4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24gQWN0dWFsaXphZGEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRGViZSBjb250cm9sYXIgYSAmcXVvdDslcyZxdW90OyBwYXJhIHBvZGVyIGNvbnRpbnVhci4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJyZpZXhjbDtEZWJlIGluZGljYXIgYWwgbWVub3MgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZGVzdGlubyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnJmlleGNsO0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgcXVpZXJlIGVsaW1pbmFyIGVsIGZvcm11bGFyaW8gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICcmaWV4Y2w7RXN0JmFhY3V0ZTsgc2VndXJvIHF1ZSBxdWllcmUgZWxpbWluYXIgZWwgY2FtcG8gJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0xhcyBvcGNpb25lcyBhdmFuemFkYXMgbm8gZXN0JmFhY3V0ZTtuIGRpc3BvbmlibGVzIGhhc3RhIHF1ZSBubyBzZSBoYXlhIGZpamFkbyBlbCB0aXBvIGRlIGNhbXBvLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0VsIG5vbWJyZSBkZSBjYW1wbyAmcXVvdDslcyZxdW90OyB5YSBlc3QmYWFjdXRlOyBlbiB1c28uIFBvciBmYXZvciB1c2Ugbm9tYnJlcyBkZSBjYW1wb3MgJnVhY3V0ZTtuaWNvcywgbyBkZXNoYWJpbGl0ZSBub21icmVzIGRlIGNhbXBvcyAmdWFjdXRlO25pY29zIGVuIGxhIGNvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcy4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0xvcyBjYW1wb3MgZGViZW4gdGVuZXIgbm9tYnJlLCBzYWx2byBxdWUgbG8gZGVzaGFiaWxpdGUgZW4gbGEgY29uZmlndXJhY2kmb2FjdXRlO24gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbiZvYWN1dGU7bmltbyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTG9uZzogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBjYWphcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3BjaW9uZXMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjYXJhY3QuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZW4nOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbc2luIGVzcGVjaWZpY2FyXSc7CiRsYW5nWydhZGRlZCddID0gJ2FncmVnYWRvJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdhY3R1YWxpemFkbyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRlbmFyIG9wY2lvbmVzIGFsIHNhbGlyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdFbGVnaXIgVW5vJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnRWxlZ2lyIFRpcG8nOwokbGFuZ1sndG8nXSA9ICdBJzsKJGxhbmdbJ3llcyddID0gJ1NpJzsKJGxhbmdbJ25vJ10gPSAnTm8gJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNlcHRvcmVzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBhcmNoaXZvcyBwb3NpYmxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3Rpbm9zJzsKJGxhbmdbJ3NhdmUnXSA9ICdHdWFyZGFyJzsKJGxhbmdbJ2FkZCddID0gJ0FncmVnYXInOwokbGFuZ1sndXBkYXRlJ10gPSAnQWN0dWFsaXphcic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0d1YXJkYXIgeSBDb250aW51YXIgRWRpdGFuZG8nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2kmb2FjdXRlO24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b20mYWFjdXRlO3RpY28nOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmlvcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXJpbyAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0VzdGFkbyBkZSBjYW1wbyByZXF1ZXJpZG8gYWN0dWFsaXphZG8uJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gTSZhYWN1dGU7eC4nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbmNpb25lcyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlwb3MgZGUgYXJjaGl2b3MgcGVybWl0aWRvcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJyZpZXhjbDtBcmNoaXZvIHN1YmlkbyBlcyBtdXkgZ3JhbmRlISBUYW1hJm50aWxkZTtvIG0mYWFjdXRlO3guIGVzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0VzdGUgdGlwbyBkZSBhcmNoaXZvIG5vIHB1ZWRlIHNlciBzdWJpZG8uIFBvciBmYXZvciBjb250cm9sYXIgcXVlIGxhIGV4dGVuc2kmb2FjdXRlO24gZXMgY29ycmVjdGEuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1N1YmlyJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcmlvIEltcG9ydGFkby4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnJmlleGNsO0ZhbGwmb2FjdXRlOyBsYSBpbXBvcnRhY2kmb2FjdXRlO24gZGVsIGZvcm11bGFyaW8hIE5vIGhheSBwcm9ibGVtYSBjb24gZWwgZm9ybWF0byBkZWwgYXJjaGl2byBYTUwuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBmaWxhcyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29sdW1uYXMnOwokbGFuZ1snMTJfaG91ciddID0gJ1JlbG9qIGRlIDEyIEhvcmFzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICdSZWxvaiBkZSAyNCBIb3Jhcyc7CiRsYW5nWydob3VyJ10gPSAnSG9yYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dG8nOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdvOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJyZpZXhjbDtHcmFjaWFzISBTZSByZWNpYmkmb2FjdXRlOyBzdSBlbnYmaWFjdXRlO28uJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snZGVsZXRlJ10gPSAnRWxpbWluYXInOwokbGFuZ1snZGF5J10gPSAnRCZpYWN1dGU7YSc7CiRsYW5nWydtb24nXSA9ICdNZXMnOwokbGFuZ1sneWVhciddID0gJ0EmbnRpbGRlO28nOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNJm9hY3V0ZTtkdWxvIGRlc2luc3RhbGFkby4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnSW5zdGFsYWRhIHZlcnNpJm9hY3V0ZTtuICVzIGRlbCBtJm9hY3V0ZTtkdWxvLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ1NlIGFjdHVhbGl6byBlbCBtJm9hY3V0ZTtkdWxvIGEgbGEgdmVyc2kmb2FjdXRlO24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1ZvbHZlci4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRW52aWFyIEZvcm11bGFyaW8nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWFyLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVxdWVhZG8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnU2luIGNoZXF1ZWFyJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUHJpbmNpcGFsJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdDb25maWd1cmFyIFZpc3RhIGRlbCBGb3JtJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdFbnYmaWFjdXRlO28gZGVsIEZvcm11bGFyaW8nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDb25maWd1cmFjaW9uZXMgZGUgQ2FwdGNoYSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdDb25maWcuIEF2YW56YWRhcyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdQbGFudGlsbGEgZGVsIEZvcm11bGFyaW8nOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBFbnZpYWRvJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+TGFzIHZhcmlhYmxlcyBTbWFydHkgc29uIHYmYWFjdXRlO2xpZGFzIGVuIGVzdGUgY2FtcG8uPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZ3JlZ2FyIE0mYWFjdXRlO3MgT3BjaW9uZXMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdFbGltaW5hciBPcGNpb25lcyBNYXJjYWRhcyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FncmVnYXIgTSZhYWN1dGU7cyBDYWphcyBkZSBUaWxkYXInOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdFbGltaW5hciBDYWphcyBkZSBUaWxkYXIgTWFyY2FkYXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZ3JlZ2FyIE90cmEgRGlyZWNjaSZvYWN1dGU7bic7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0VsaW1pbmFyIERpcmVjY2lvbmVzIE1hcmNhZGFzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FncmVnYXIgT3RybyBEZXN0aW5vJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0VsaW1pbmFyIERlc3Rpbm9zIE1hcmNhZG9zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnU2UgaGFuIGdlbmVyYWRvIGRlbWFzaWFkb3MgIGVtYWlscyBkZXNkZSBzdSBEaXJlY2NpJm9hY3V0ZTtuIElQLiBDJm9hY3V0ZTtkaWdvIEFudGktU3BhbSBoYSBwcmV2ZW5pZG8gZWwgZW52JmlhY3V0ZTtvLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTZSBpbnRlcnJ1bXBpJm9hY3V0ZTsgZW52aW8gc29zcGVjaGFkbyBwb3IgU3BhbSBkZXNkZSBJUCAlcy4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZW5hciBDYW1wb3MnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsYXInOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGlyZWN0b3JpbyBEZXN0aW5vIGRlIGFyY2hpdm9zIGRlIHNhbGlkYSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1RhZyBEZWZpbmlkYSBwb3IgVXN1YXJpbyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBhIGRvbmRlIHZvbHZlciBjb24gZW5sYWNlcyBzdWJpZG9zJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnRW52aWFkbyBjb24gZWwgY29uc3RydWN0b3IgZGUgZm9ybXVsYXJpb3MnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0NhdGVnb3ImaWFjdXRlO2EgZGUgc3ViaWRhcyc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ0VudmlhciBlc3RlIGFyY2hpdm8gYWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xleWVuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdMb25naXR1ZCBNJmFhY3V0ZTt4aW1hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXRpcXVldGEgZGUgQ2FqYSBkZSBUaWxkZSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aXF1ZXRhIGRlIEJvdCZvYWN1dGU7biBkZSBSYWRpbyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3IgY3VhbmRvIHRpZW5lIHRpbGRlLic7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWxvciBjdWFuZG8gbm8gdGllbmUgdGlsZGUuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhbGxlcyBkZSBHcnVwbyBkZSBDYWphIGRlIFRpbGRlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJyZpcXVlc3Q7RWxpbWluYXI/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHRvICZxdW90O0VsZWdpciBVbm8mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTm9tYnJlIGRlIFNlbGVjY2kmb2FjdXRlO24gYSBNb3N0cmFyJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnQXN1bnRvIGRlIFNlbGVjY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1NlbGVjY2kmb2FjdXRlO24gcG9yIERlZmVjdG8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTZWxlY2NpJm9hY3V0ZTtuIHBvciBEZWZlY3RvJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTm9tYnJlIGRlIE9wY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsb3IgRW52aWFkbyc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnT3BjaW9uZXMgZGUgRGVzcGxlZ2FibGUnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wY2lvbmVzIGRlIE11bHRpc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCBkZSBEZXN0aW5vJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tYnJlIGRlIEFyY2hpdm8gZGUgRGVzdGlubyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtEZXNkZSBub21icmUmcXVvdDsgcGFyYSBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNhciB2YWxpZGFjaSZvYWN1dGU7biBkZSBlbWFpbCByZWxhamFkYSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2FyIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGRpcmVjY2kmb2FjdXRlO24gZW1haWwgcmVsYWphZGEgKHAuZWouLCBwZXJtaXRlICZxdW90O3hAeSZxdW90OyBlbiB2ZXogZGUgcmVxdWVyaXIgYSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtEZXNkZSBkaXJlY2NpJm9hY3V0ZTtuJnF1b3Q7IHBhcmEgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdDb25maWd1cmFjaSZvYWN1dGU7biBkZSBjJm9hY3V0ZTtkaWZpY2FjaSZvYWN1dGU7biBkZSBjYXJhY3RlcmVzIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdEZXRhbGxlcyBwYXJhIEVtaXNvci1FbWFpbCBjb24gYmFzZSBEZXNwbGVnYWJsZSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOb21icmUgZGUgYXJjaGl2byc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTCZpYWN1dGU7bmVhIEFzdW50byBkZSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb21icmUgZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0VzdGFkbyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnTGlzdG8gcGFyYSBzdSBEZXNhcnJvbGxvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdObyBlc3QmYWFjdXRlOyBMaXN0byc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBhIGRvbmRlIGRpcmlnaXJzZSBsdWVnbyBkZWwgZW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQb3IgZmF2b3IgYWdyZWd1ZSB1biBjYW1wbyBhbCBmb3JtdWxhcmlvIHBhcmEgcXVlIGxvIGluZ3Jlc2FkbyBwb3IgZWwgdXN1YXJpbyBwdWVkYSBzZXIgbWFuZWphZG8uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnUHVlZGUgdXNhciBlc3RlIGF0YWpvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2FtcG9zIGRlIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJZCBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tYnJlIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsbGVzIGRlIEdydXBvIEJvdCZvYWN1dGU7biBkZSBSYWRpbyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVGlwbyBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAncGFyYSBjcmVhciB1biBjYW1wbyBkZSBtYW5lam8gZGVsIGZvcm11bGFyaW8uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FncmVnYXIgTnVldm8gRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICcmaXF1ZXN0O01vc3RyYXIgVmVyc2kmb2FjdXRlO24gZGVsIE0mb2FjdXRlO2R1bG8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnTGEgdmVyc2kmb2FjdXRlO24gZGVsIG0mb2FjdXRlO2R1bG8gQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgaW5zdGFsYWRvIHNlIGluY2x1aXImYWFjdXRlOyBlbiBjb21lbnRhcmlvcywgYXl1ZGEgYWwgaGFjZXIgZGVidWcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FncmVnYXIgTnVldm8gQ2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnQm90Jm9hY3V0ZTtuIGRlIFBydWViYSBFbnYmaWFjdXRlO28gZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJyZpcXVlc3Q7QWdyZWdhbW9zIEphdmFzY3JpcHQgYWwgQm90Jm9hY3V0ZTtuIGRlIEVudiZpYWN1dGU7byBxdWUgYXl1ZGFyJmFhY3V0ZTsgYSBwcmV2ZW5pciBtJnVhY3V0ZTtsdGlwbGVzIGVudiZpYWN1dGU7b3MgZGVsIGZvcm11bGFyaW8/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZ3JlZ2FyIHNjcmlwdCBkZSBzZWd1cmlkYWQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1NpZ3VpZW50ZSZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1ByZXZpbyZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ2xhc2UgQ1NTIHBhcmEgZXN0ZSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NsYXNlIENTUyBwYXJhIGVzdGUgY2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTJmlhY3V0ZTttYm9sbyBwYXJhIGlkZW50aWZpY2FyIGNhbXBvcyByZXF1ZXJpZG9zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWVyaWRvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdTZSByZXF1aWVyZSB1bmEgcmVzcHVlc3RhIHBhcmEgZXN0ZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnT2N1bHRhciBFdGlxdWV0YSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdPY3VsdGFyIGVsIG5vbWJyZSBkZSBlc3RlIGNhbXBvIGVuIGVsIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1RleHRvIGVzdCZhYWN1dGU7dGljbyBhIG1vc3RyYXInOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGFjaSZvYWN1dGU7biBkZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTiZ1YWN1dGU7bWVybyBkZSBMJmlhY3V0ZTtuZWFzIGEgbW9zdHJhcic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gZXMgUG9yIERlZmVjdG8nOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQJmFhY3V0ZTtnaW5hIGEgZG9uZGUgaXIgZGVzcHUmZWFjdXRlO3MgZGUgYXByb2Jhcic7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnRXN0YSBleHByZXNpJm9hY3V0ZTtuIHJlZ3VsYXIgc2UgdXNhciZhYWN1dGU7IHMmb2FjdXRlO2xvIHNpICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBlcyBwdWVzdG8gYSB1bmEgb3BjaSZvYWN1dGU7biByZWdleC1yZWxhY2lvbmFkYS4gSW5jbHV5ZSB1biBjb21wbGV0byByZWdleCBlc3RpbG8gUGVybCwgaW5jbHV5ZW5kbyBhZGVtJmFhY3V0ZTtzIGxhcyBiYXJyYXMgZGUgY29taWVuem8vcGFyYXIgeSBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ09jdWx0YXIgRXJyb3Jlcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVGlwbyBkZSBGb3JtdWxhcmlvIE1vc3RyYWRvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW5pciBxdWUgbWVuc2FqZXMgZGUgZGVidWcgLyBlcnJvciBsb3MgdmVhIGVsIHVzdWFyaW8uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gbSZhYWN1dGU7eGltbyBkZSBhcmNoaXZvIGEgc3ViaXIgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdFc3RhIGxpbWl0YWNpJm9hY3V0ZTtuIHNlIGFncmVnYSBhIGxhcyBmaWphZGFzIHBvciBsYSBjb25maWd1cmFjaSZvYWN1dGU7biBkZSBwaHAgeSBlbCBzZXJ2aWRvciB3ZWInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25lcyBQZXJtaXRpZGFzJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRyYXIgdW5hIGxpc3RhIHNlcGFyYWRhIHBvciBjb21hcywgZXhjbHV5ZW5kbyBlbCBwdW50byAocC5lai4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIExvcyBlc3BhY2lvcyBzb24gaWdub3JhZG9zLiBTaSBkZWphIGVzdG8gZW4gYmxhbmNvIHNpZ25pZmljYSBxdWUgbm8gaGF5IHJlc3RyaWNjaW9uZXMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICcmaXF1ZXN0O01vc3RyYXIgcmVzdHJpY2Npb25lcz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnJmlxdWVzdDtNb3N0cmFyIGN1YWxxdWllciByZXN0cmljY2kmb2FjdXRlO24gZGUgdGFtYSZudGlsZGU7byB5IGV4dGVuc2kmb2FjdXRlO24gY29uIGVsIGFyY2hpdm8gYSBzdWJpcj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBhIHV0aWxpemFyIHBhcmEgTW9zdHJhciBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUCZhYWN1dGU7Z2luYSAlcyBkZSAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRWwgY2FtcG8gbm8gdGllbmUgb3BjaW9uZXMgYXZhbnphZGFzLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dG8gYSBkZXZvbHZlciBwYXJhIHZhbG9yZXMgZGUgY2FtcG8gc2luIGVzcGVjaWZpY2FyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICcmaXF1ZXN0O0hhYmlsaXRhIGRlc3BsZWdhYmxlIGRlIGFncmVnYWRvIHImYWFjdXRlO3BpZG8gZGUgY2FtcG9zIGVuIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJyZpcXVlc3Q7SGFiaWxpdGFtb3MgZGVzcGxlZ2FibGUgZGUgYWdyZWdhZG8gciZhYWN1dGU7cGlkbyBkZSBjYW1wb3M/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdBZ3JlZ2FyIHImYWFjdXRlO3BpZGFtZW50ZSBjYW1wb3MnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHMmb2FjdXRlO2xvIDEwIGVtYWlscyBhIHNlciBkaXNwYXJhZG9zIHBvciB1bmEgZGlyZWNjaSZvYWN1dGU7biBJUCBkYWRhIChwb3IgaG9yYSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJyZpcXVlc3Q7SGFiaWxpdGFyIGNhcmFjdGVyJmlhY3V0ZTtzdGljYXMgZWxlbWVudGFsZXMgcGFyYSBhbnRpLXNwYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdNb3N0cmFyIElEcyBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHZlciBpZHMgZGUgY2FtcG9zIGN1YW5kbyBzZSBhZ3JlZ2EgbyBlZGl0YSB1biBmb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdTdWJpciBmb3JtdWxhcmlvIGRlc2RlIGFyY2hpdm8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2FyIGVzdGUgbm9tYnJlIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ0ltcG9ydGFyIEZvcm11bGFyaW8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNhciBlc3RlIGFsaWFzIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJyZpcXVlc3Q7R2VuZXJhciBlbWFpbCBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJyZpcXVlc3Q7UHVibGljYXIgYXV0b20mYWFjdXRlO3RpY2FtZW50ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJyZpcXVlc3Q7UHVibGljYXJsbyBhdXRvbSZhYWN1dGU7dGljYW1lbnRlIGNvbiBsYSBVUkwgZGUgbGEgcCZhYWN1dGU7Z2luYSBxdWUgY29udGllbmUgZWwgZm9ybXVsYXJpbz8gKGVzdG8gc29icmVzY3JpYmUgbGEgb3BjaSZvYWN1dGU7biBkZSBhYmFqbyBkZSBlbmxhY2UgZGUgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1VybCBwb3IgZGVmZWN0byBkZWwgZW5sYWNlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1RleHRvIHBvciBkZWZlY3RvIGRlbCBlbmxhY2UnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0VubGFjZSBhIHAmYWFjdXRlO2dpbmEgZGVsIHNpdGlvJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1VzdGVkIHB1ZWRlIHVzYXIgYSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gcGFyYSBwcm90ZWdlciBlbCBlbnYmaWFjdXRlO28gZGUgbG9zIGZvcm11bGFyaW9zLiBQYXJhIGVzbyBpbnN0YWxlIGVsIG0mb2FjdXRlO2R1bG8uIFBvciBtJmFhY3V0ZTtzIGluZm9ybWFjaSZvYWN1dGU7biwgZGUgdW5hIHZ1ZWx0YSBwb3IgZWwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PnByb2plY3RvIENhcHRjaGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJyZpcXVlc3Q7VXNhciBDYXB0Y2hhIHBhcmEgcHJvdGVqZXIgZWwgZW52JmlhY3V0ZTtvIGRlIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnT2JzZXJ2ZSBhcXUmaWFjdXRlOyBwYXJhIHByb3RlZ2VyIGEgc3UgZm9ybXVsYXJpbyBjb24gPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQb3IgZmF2b3IgY29uZmlybWUgcXVlIHVzdGVkIG5vIGVzIHVuIHNjcmlwdCBpbmdyZXNhbmRvIGxvcyBjYXJhY3RlcmVzIGRlIGxhIGltYWdlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRXJyb3IgZW4gZWwgdGV4dG8gcGFyYSBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdFbCBDYXB0Y2hhIG5vIGVzIGNvcnJlY3RvLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdUZXh0byBkZSBheXVkYSBwYXJhIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0V0aXF1ZXRhIGRlIEVubGFjZSc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnVXJsIGRlIERlc3Rpbm8gZGUgRW5sYWNlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnJmlxdWVzdDtDaGVxdWVhciBwb3IgRGVmZWN0bz8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJyZpcXVlc3Q7VXNhbW9zIHJlbG9qIGRlIDI0LWhvcmFzPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ2FtJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdwbSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJyZpcXVlc3Q7UHJvY2VzYW1vcyBzbWFydHkgdGFncyBkZW50cm8gZGUgY2FtcG9zPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnRmlsYXMgKG5vdGE6IGVzdG8gcHVlZGUgc2VyIHNvYnJlc2NyaXRvIHBvciBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5hcyAobm90YTogZXN0byBwdWVkZSBzZXIgc29icmVzY3JpdG8gcG9yIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWxsZXMgZGUgRm9ybXVsYXJpbyBQcmluY2lwYWwnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRXN0ZSBjYW1wbyBwdWVkZSBkZWphcnNlIHZhYyZpYWN1dGU7byc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgcGFyYSBQbGFudGlsbGEnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIERpc3BvbmlibGVzJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdGZWNoYSBkZSBFbnYmaWFjdXRlO28nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1N1IHNlcnZpZG9yJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0RpcmVjY2kmb2FjdXRlO24gSVAgZGUgbGEgcGVyc29uYSBxdWUgdXNhIGVsIGZvcm11bGFyaW8nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGRlIGxhIHAmYWFjdXRlO2dpbmEgcXVlIGNvbnRpZW5lIGVsIGZvcm11bGFyaW8nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdOb21icmVzIGRlIGNhbXBvIGFsdGVybmFkb3Mgc2UgcHVlZGVuIHVzYXIgZW4gZm9ybWEgaW50ZXJjYW1iaWFibGUgKGVzcGVjaWFsbWVudGUgJnVhY3V0ZTt0aWwgc2kgU21hcnR5IHNlIGF0YXNjYSBjb24gY2FyYWN0ZXJlcyBmdWVyYSBkZWwgcmFuZ28gQVNDSUkgMzItMTI2KS4gPGJyIC8+T3Ryb3MgY2FtcG9zIGVzdGFyJmFhY3V0ZTtuIGRpc3BvbmlibGVzIGFzJmlhY3V0ZTsgY29tbyBsb3MgYWdyZWd1ZSBhbCBmb3JtdWxhcmlvLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0EgbG9zIGNhbXBvcyBxdWUgdGllbmVuIHZhbG9yZXMgbSZ1YWN1dGU7bHRpcGxlcyBzZSBwdWVkZSB0YW1iaSZlYWN1dGU7biBsbGVnYXIgYSBlbGxvcyB2JmlhY3V0ZTthIGVsIHZhbG9yIHNtYXJ0eSBkZSAkZmllbGRuYW1lX2FycmF5ICBvICAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdWZWEgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPmVsIE1hbnVhbCBQSFA8L2E+IHBhcmEgYXl1ZGEgZGUgZm9ybWF0b3MuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlICc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdDYW1wbyBSZXByZXNlbnRhZG8nOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFZvbHZlciBhbCBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhciBQbGFudGlsbGEgZGUgRWplbXBsbyc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhciBQbGFudGlsbGEgZGUgRWplbXBsbyBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXIgRW5jYWJlemFkbyBkZSBFamVtcGxvJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ3VuIGNhcmFjdGVyIHRhYic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBhcmEgYXJjaGl2byBkZSBzYWxpZGEgZGUgdW5hIGwmaWFjdXRlO25lYSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1BsYW50aWxsYSBwYXJhIGVsIGVuY2FiZXphZG8gZGUgYXJjaGl2byBkZSBzYWxpZGEnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBkb25kZSBoYWNlciBjbGljayBwYXJhIGNvbmZpcm1hciBlbCBmb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsb3IgKHZlYSBsYSBzb2xhcGEgQXZhbnphZG8gc2kgdXN0ZWQgdXNhIHRhZ3Mgc21hcnR5JzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRm9ybWF0byBkZSBGZWNoYSAoZXN0JmFhY3V0ZTtuZGFyIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5Gb3JtYXRvcyBkZSBGZWNoYSBQSFA8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzYXIgZWRpdG9yIFdZU0lXWUcgcGFyYSAmQWFjdXRlO3JlYSBkZSB0ZXh0byAoJmlxdWVzdDtzJm9hY3V0ZTtsbyBwYXJhIEFkbWluPyknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdDb21wb3J0YW1pZW50byBkZWwgRm9ybXVsYXJpbyBkZSBFbnYmaWFjdXRlO28nOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0V0aXF1ZXRhcyBkZSBCb3Qmb2FjdXRlO25lcyBkZSBFbnYmaWFjdXRlO28nOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdFc3RhIHAmYWFjdXRlO2dpbmEgbGUgcGVybWl0ZSBhZGFwdGFyIGEgc3UgZ3VzdG8gZWwgRW52JmlhY3V0ZTtvIGRlbCBGb3JtdWxhcmlvLiBObyBkZXRlcm1pbmEgcXVlIGhhciZhYWN1dGU7IGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGNvbiBsYSBkYXRhIGVudmlhZGEuIEVzdG8gJnVhY3V0ZTtsdGltbyBsbyBwdWVkZSBlc3RhYmxlY2VyIGFncmVnYW5kbyBjYW1wb3MgZGUgICZxdW90O0Rpc3Bvc2ljaSZvYWN1dGU7biZxdW90OyBhIHN1IGZvcm11bGFyaW8uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdDb21pZW56YSByYW5nbyBkZSBhJm50aWxkZTtvJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnRmluIHJhbmdvIGRlIGEmbnRpbGRlO28nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnQSZudGlsZGU7byBwb3IgRGVmZWN0byc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhQb25lciBhIC0xIHBhcmEgcXVlIGVsIGEmbnRpbGRlO28gcG9yIGRlZmVjdG8gc2VhIGVsIGFjdHVhbCknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0x1ZWdvIHF1ZSBlbCBmb3JtdWxhcmlvIHNlYSBlbnZpYWRvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3B1ZXN0YSBhIG1vc3RyYXInOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnTW9zdHJhciAmcXVvdDtQbGFudGlsbGEgZGUgRW52aWFkbyZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJpZ2lyIGEgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdFc3RhIHBsYW50aWxsYSBlcyBwYXJhIHNlciBtb3N0cmFkYSBhbCB1c3VhcmlvIHVuYSB2ZXogZW52aWFkbyBlbCBmb3JtdWxhcmlvLiBFc3RhIHBsYW50aWxsYSBubyBhZmVjdGEgYSBsb3MgZW1haWxzIGdlbmVyYWRvcyB1IG90cmFzIGRpc3Bvc2ljaW9uZXMgcGFyYSBlbCBmb3JtdWxhcmlvIC0tIHB1ZWRlIGNvbmZpZ3VyYXIgYSBlc3RhcyAmdWFjdXRlO2x0aW1hcyBwbGFudGlsbGFzIChkb25kZSBzZWEgYXByb3BpYWRvKSBlbiBsYSBzb2xhcGEgJnF1b3Q7YXZhbnphZG8mcXVvdDsgcGFyYSBsb3MgY2FtcG9zIHF1ZSB0aWVuZW4gbGEgZGlzcG9uaWJpbGlkYWQuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIERlc3Rpbm8nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWVyaXIgTm9tYnJlIGRlIENhbXBvcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJyZpcXVlc3Q7U2UgcmVxdWllcmUgcXVlIGxvcyBjYW1wb3MgdGVuZ2FuIG5vbWJyZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1ZXJpciBOb21icmUgZGUgQ2FtcG9zICZVYWN1dGU7bmljb3MnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJyZpcXVlc3Q7U2UgcmVxdWllcmUgcXVlIGxvcyBub21icmVzIGRlIGNhbXBvcyBzZWFuICZ1YWN1dGU7bmljb3M/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZW5hciBDYW1wb3MnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0NhcmdhciBwbGFudGlsbGEnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWdyZWdhciB0ZXh0byBkZSBCb3Qmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRWxpbWluYXIgdGV4dG8gZGUgQm90Jm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldGFyIGxhcyB2YXJpYWJsZXMgY29tbyBzaSBmdWVyYW4gbiZ1YWN1dGU7bWVyb3MgbyBmcmFzZXMnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdPcmRlbiBkZSBJbnRlcnByZXRhY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ1NpIGV4aXN0ZSBtJmFhY3V0ZTtzIGRlIHVuIENhbXBvIENvbXB1dGFkbywgZWwgb3JkZW4gZGUgbG9zIGMmYWFjdXRlO2xjdWxvcyBpciZhYWN1dGU7IGRlc2RlIGFxdWVsbG9zIGRlIG4mdWFjdXRlO21lcm8gZGUgb3JkZW4gbSZhYWN1dGU7cyBiYWpvIGEgbG9zIGRlIG4mdWFjdXRlO21lcm8gZGUgb3JkZW4gbSZhYWN1dGU7cyBhbHRvJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWxvciBhIGNvbXB1dGFyJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ0ZyYXNlJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW0mZWFjdXRlO3JpY28nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICcmaXF1ZXN0O01vc3RyYXIgZWwgZm9ybXVsYXJpbyBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgc2lnbmlmaWNhIHF1ZSBjdWFscXVpZXIgcmVzdWx0YWRvIGRlbCBmb3JtdWxhcmlvIHJlZW1wbGF6YSBlbCB0YWcge2Ntc19tb2R1bGV9LCBub24taW5saW5lIHJlZW1wbGF6YSBlbCB0YWcge2NvbnRlbnR9Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnVmFsb3IgcG9yIGRlZmVjdG8gcGFyYSBlbCBjYW1wbyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnJmlxdWVzdDtMaW1waWFyIHBvciBkZWZlY3RvIGFsIHNlbGVjY2lvbmFyPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdTZWxlY2Npb25lIGVzdG8gcGFyYSBsaW1waWFyIGVsIHZhbG9yIHBvciBkZWZlY3RvIGN1YW5kbyB1biB1c3VhcmlvIHNlbGVjY2lvbmUgZXN0ZSBjYW1wbyc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBvciBEZWZlY3RvJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgVGFibGEsIFQmaWFjdXRlO3R1bG9zIGEgbGEgaXpxdWllcmRhJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBUYWJsYSwgVCZpYWN1dGU7dHVsb3MgYWwgdG9wZSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdQbGFudGlsbGEgZGUgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnJmlxdWVzdDtFc3QmYWFjdXRlOyBzZWd1cm8gcXVlIHF1aWVyZSBzb2JyZSBlc2NyaWJpciBzdSBwbGFudGlsbGEgY29uIGxhIHBsYW50aWxsYSBzZWxlY2Npb25hZGE/IChBJnVhY3V0ZTtuIGN1YW5kbyB1c3RlZCBkaWdhIE9LLCBuZWNlc2l0YXImYWFjdXRlOyBndWFyZGFyIGxvcyBjYW1iaW9zKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciBhbCBjYWxjdWxhciAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIGhheSBpbmZvIGRpc3BvbmlibGUgZGUgSFRUUF9SRUZFUkVSIChwcm9iYWJsZW1lbnRlIGRlYmlkbyBhbCB1c28gZGUgbGEgVmFsaWRhY2kmb2FjdXRlO24gZGVsICBFbWFpbCBkZSBVc3VhcmlvKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRXJyb3IgZGUgUGFyJmFhY3V0ZTttZXRybyBkZSBWYWxpZGFjaSZvYWN1dGU7bi4gJmlleGNsO1BvciBmYXZvciBhc2VnJnVhY3V0ZTtyZXNlIHF1ZSBoYSBjb3BpYWRvIGVsIFVSTCBkZSBzdSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIGNvcnJlY3RhbWVudGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdFcnJvciBlbiBSZXNwdWVzdGEgZGUgVmFsaWRhY2kmb2FjdXRlO24uICZpZXhjbDtQb3IgZmF2b3IgYXNlZyZ1YWN1dGU7cmVzZSBxdWUgaGEgY29waWFkbyBlbCBVUkwgZGUgc3UgZGlyZWNjaSZvYWN1dGU7biBlbWFpbCBjb3JyZWN0YW1lbnRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRXJyb3IgZW4gUmVzcHVlc3RhIGRlIFZhbGlkYWNpJm9hY3V0ZTtuLiAmaWV4Y2w7Tm8gaGF5IGNhbXBvIGRlIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGVtYWlsIGVuIGVzdGUgZm9ybXVsYXJpbyEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0xhIHBsYW50aWxsYSBkZWwgZm9ybXVsYXJpbyBmdWUgcHVlc3RhIGFsIGQmaWFjdXRlO2EgYXV0b20mYWFjdXRlO3RpY2FtZW50ZSBjb21vIHBhcnRlIGRlbCBhY3R1YWxpemFkbyBkZSBsYSB2ZXJzaSZvYWN1dGU7biAwLjMgYSBsYSB2ZXJzaSZvYWN1dGU7biAwLjQuIFVzdGVkIGRlYmVyJmFhY3V0ZTsgaGFjZXIgYWxndW5vcyBhanVzdGVzLiBTaSBlc3QmYWFjdXRlOyB1dGlsaXphbmRvIGVsIGZvcm11bGFyaW8gcG9yIGRlZmVjdG8sIHNpbXBsZW1lbnRlIHJlbXBsYWNlIGVzdGEgcGxhbnRpbGxhIGNvbiAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzYW5kbyBlbCBkZXNwbGVnYWJsZSBkZSBhcnJpYmEuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FncmVndWUsIGVkaXRlIHkgYWRtaW5pc3RyZSBGb3JtdWxhcmlvcyBpbnRlcmFjdGl2b3MnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdTaSB1c3RlZCB1dGlsaXphIGV2YWx1YWNpJm9hY3V0ZTtuIGRlIFN0cmluZywgbGEgJnVhY3V0ZTtuaWNhIG9wZXJhY2kmb2FjdXRlO24gZGlzcG9uaWJsZSBlcyBjb25jYXRlbmFjaSZvYWN1dGU7biAoKyksIG1pZW50cmFzIHF1ZSBzaSB1c2EgZXZhbHVhY2kmb2FjdXRlO24gbnVtJmVhY3V0ZTtyaWNhIHVzdGVkIHRpZW5lIGMmYWFjdXRlO2xjdWxvcyBtYXRlbSZhYWN1dGU7dGljb3MgYiZhYWN1dGU7c2ljb3MgeSBtdXkgc2ltcGxlcyAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdFbmVybyc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicmVybyc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyem8nOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FicmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5byc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pbyc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpbyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRpZW1icmUnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0dWJyZSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92aWVtYnJlJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEaWNpZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJyZpZXhjbDtQZXJkJm9hY3V0ZTtuISBTZSBwcmVzZW50Jm9hY3V0ZTsgdW4gZXJyb3IgZW4gZWwgbWFuZWpvIGRlbCBlbnYmaWFjdXRlO28gZGUgc3UgZm9ybXVsYXJpby4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRXJyb3IgZGUgZW52JmlhY3V0ZTtvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvczogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbWV0aWRvIHBvciBhcmNoaXZvIGFsIG0mb2FjdXRlO2R1bG8gZGUgc3ViaWRhczogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTm8gc2UgcHVkbyBoYWxsYXIgZWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdTdWJpci9BZGp1bnRvLCBlcnJvciBlbiBhcmNoaXZvICVzIChub21icmVfdG1wOiAlcywgZGVsIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIE5vIHNlIHB1ZWRlIG9idGVuZXIgYmxvcXVlbyBkZSBhcmNoaXZvLic7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRW52JmlhY3V0ZTtvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz4maWV4Y2w7TGEgcGxhbnRpbGxhIGRlIGVtYWlsIHRvZGF2JmlhY3V0ZTthIG5vIHNlIGNvbmZpZ3VyJm9hY3V0ZTshJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0NvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zOiAmaWV4Y2w7Tm8gc2UgZW5jdWVudHJhIGVsIG0mb2FjdXRlO2R1bG8gcmVxdWVyaWRvIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnRW52JmlhY3V0ZTtvIGRlIHVzdWFyaW8gYXByb2JhZG8gJXMgZGVzZGUgJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0Fjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBjdWFuZG8gdW4gZm9ybXVsYXJpbyBkZWwgQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgZXMgZW52aWFkbyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdBY29udGVjaW1pZW50byBkaXNwYXJhZG8gc2kgaGF5IHVuIGVycm9yIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBlbnZpYWRvJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnQWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBtb3N0cmFkbyc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+QWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBlbnZpYWRvLjwvcD4NCjxoND5QYXImYWFjdXRlO21ldHJvczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRWwgbm9tYnJlIGRlbCBmb3JtdWxhcmlvIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gaWQgaW50ZXJubyBkZWwgZm9ybXVsYXJpbyAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gUHJvdmVlIHVuIHZhbG9yIHBvciBkZWZlY3RvIGEgdW4gY2FtcG8gY29uIGVsIG5vbWJyZSBlc3BlY2lmaWNhZG8uPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5BY29udGVjaW1pZW50byBkaXNwYXJhZG8gc2kgaGF5IHVuIGVycm9yIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBlbnZpYWRvPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBFbCBub21icmUgZGVsIGZvcm11bGFyaW8gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpZCBpbnRlcm5vIGRlbCBmb3JtdWxhcmlvIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIFVuYSBsaXN0YSBkZSB0b2RvcyBsb3MgZXJyb3JlcyBjb25vY2lkb3MgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+QWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBtb3N0cmFkbzwvcD4NCjxoND5QYXImYWFjdXRlO21ldHJvczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRWwgbm9tYnJlIGRlbCBmb3JtdWxhcmlvIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gaWQgaW50ZXJubyBkZWwgZm9ybXVsYXJpbyAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnSUQgZGUgcmVzcHVlc3RhLiBVc2FkbyBwb3IgZWwgRXhwbG9yYWRvciBkZSBGb3JtdWxhcmlvcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnVmFsb3IgcG9yIGRlZmVjdG8gZGUgY2FtcG87IHZlciBheXVkYSBkZWwgbSZvYWN1dGU7ZHVsbyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdJRCBkZSBjYW1wbyBwYXJhIG9wZXJhY2lvbmVzIGludGVybmFzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdOb21icmUgZGUgRm9ybXVsYXJpbyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIGRlIEZvcm11bGFyaW8gcGFyYSBvcGVyYWNpb25lcyBpbnRlcm5hcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ1BhciZhYWN1dGU7bWV0cm9zIGdlbmVyYWxlcyBwYXJhIG9wZXJhY2lvbmVzIGludGVybmFzJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+VmFyaWFibGVzIGRlIFBsYW50aWxsYSBkZSBGb3JtdWxhcmlvPC9oMz4NCjxwPlVzdGVkIHB1ZWRlIGVkaXRhciBhIGxhIHBsYW50aWxsYSBwYXJhIGhhY2VyIHF1ZSBlbCBsYXlvdXQgZGVsIGZvcm11bGFyaW8gc2UgdmVhIGRlIGxhIGZvcm1hIHF1ZSBhIHVzdGVkIG0mYWFjdXRlO3MgZ3VzdGUuDQogICBQYXJhIHF1ZSBlbCBmb3JtdWxhcmlvIGZ1bmNpb25lLCB1c3RlZCBkZWJlIHNpZW1wcmUgaW5jbHVpciBsYXMgdGFncyB7JGZiX2hpZGRlbn0geSB7JHN1Ym1pdH0uPC9wPg0KDQo8cD5Vc3RlZCBwdWVkZSBsbGVnYXIgaGFzdGEgbG9zIGNhbXBvcyBkZSBzdSBmb3JtdWxhcmlvLCBiaWVuIHVzYW5kbyBlbCBhcnJheSBkZSAkZmllbGRzIG8gZGlyZWN0YW1lbnRlIGluZ3Jlc2FyIHV0aWxpemFuZG8gbG9zIG5vbWJyZXMgZGUgbG9zIGNhbXBvcyAocC5lai4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+Q2FkYSBjYW1wbyB0aWVuZSBsb3Mgc2lndWllbnRlcyBhdHJpYnV0b3M6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5DYW1wbzwvdGg+PHRoPlZhbG9yPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgc2kgZWwgY2FtcG8gZGViZSBzZXIgbW9zdHJhZG8sIDAgZGUgb3RyYSBmb3JtYTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBzaSBlbCBjYW1wbyBkZWJlIHNlciBtb3N0cmFkbywgMCBkZSBvdHJhIGZvcm1hPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+ZWwgcyZpYWN1dGU7bWJvbG8gcGFyYSBjYW1wb3MgcmVxdWVyaWRvczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+DQo8dGQ+bGEgY2xhc2UgQ1NTIGVzcGVjaWZpY2FkYSBwYXJhIGVzdGUgY2FtcG88L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD4NCjx0ZD4xIHNpIGVsIGNhbXBvIGhhIHBhc2FkbyBsYSB2YWxpZGFjaSZvYWN1dGU7biwgMCBkZSBvdHJhIGZvcm1hPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+DQo8dGQ+VGV4dG8gZGVsIHByb2JsZW1hIGRlIHZhbGlkYWNpJm9hY3V0ZTtuLCBlbiBlbCBjYXNvIHF1ZSBlc3RlIGNhbXBvIG5vIHNlYSB2YWxpZGFkbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD4NCjx0ZD4xIHNpIGVsIG5vbWJyZSBkZWwgY2FtcG8gZGViZSBzZXIgb2N1bHRhZG8sIDAgZGUgb3RyYSBmb3JtYSA8L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+DQo8dGQ+MSBzaSBlbCB0aXBvIGRlIGNhbXBvIHRpZW5lIHVuYSBldGlxdWV0YTwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD4NCjx0ZD4xIHNpIGVsIGNhbXBvIG5lY2VzaXRhIHNlciBlbnZ1ZWx0byBwb3IgdW5hIERJViAobyBmaWxhIGRlIHRhYmxhLCBzaSBlc3RlIGVzIGxhIGNhbmNpJm9hY3V0ZTtuIHF1ZSB1c3RlZCBiYWlsYSk8L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPg0KPHRkPmVsIG5vbWJyZSBkZWwgY2FtcG88L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD4NCjx0ZD5lbCBjb250cm9sIGRlIGVudHJhZGEgZGUgY2FtcG8gKHAuZWouLCBlbCBjYW1wbyBkZSBlbnRyYWRhIGVuIHNpIG1pc21vKTwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPg0KPHRkPnVuIGJvdCZvYWN1dGU7biBkZSBjb250cm9sIGFzb2NpYWRvIGFsIGNhbXBvIHNpIGVzIGFwbGljYWJsZSAocC5lai4sIGVsIGJvdCZvYWN1dGU7biBlbGltaW5hciBwYXJhIGVudHJhZGFzIGRlIHRleHRvIGV4cGFuZGlibGVzKTwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+DQo8dGQ+ZWwgdGlwbyBkZSBkYXRvcyBkZWwgY2FtcG88L3RkPg0KPC90cj4NCg0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPg0KPHRkPjEgc2kgZWwgY2FtcG8tPmVudHJhZGEgZXMgZW4gcmVhbGlkYWQgdW5hIGNvbGVjY2kmb2FjdXRlO24gZGUgY29udHJvbGVzPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+DQo8dGQ+MSBzaSBsYSBjb2xlY2NpJm9hY3V0ZTtuIGRlIGNvbnRyb2xlcyB0aWVuZSBldGlxdWV0YXMgc2VwYXJhZGFzIHBhcmEgY2FkYSBjb250cm9sPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5FbiBhbGd1bm9zIGNhc28sIGNhbXBvLT5lbnRyYWRhIGVzIGVuIHJlbGlkYWQgdW4gYXJyYXkgZGUgb2JqZXRvcyBtJmFhY3V0ZTtzIHF1ZSB1bmEgZW50cmFkYS4gRXN0byBwYXNhLCBwb3IgZWplbXBsbywgZW4gR3J1cG9zIGRlIENhamFzIGRlIFRpbGRlIG8gR3J1cG9zIGRlIEJvdG9uZXMgZGUgUmFkaW8uIFBhcmEgZWxsb3MsIHVzdGVkIHB1ZWRlIGhhY2VyIHVuYSBpdGVyYWNpJm9hY3V0ZTtuIGEgdHJhdmVzIGRlIGNhbXBvLT5lbnRyYWRhLT5ub21icmUgeSBjYW1wby0+ZW50cmFkYS0+ZW50cmFkYXMuPC9wPg0KDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPg0KPHRoPlZhbG9yPC90aD4NCjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD4NCjx0ZD5uJnVhY3V0ZTttZXJvcyBkZSBwJmFhY3V0ZTtnaW5hcyBwYXJhIGZvcm11bGFyaW9zIG11bHRpcCZhYWN1dGU7Z2luYXM8L3RkPg0KPC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD4NCjx0ZD5uJnVhY3V0ZTttZXJvIHBhcmEgbGEgY29ycmllbnRlIHAmYWFjdXRlO2dpbmEgcGFyYSBmb3JtdWxhcmlvcyBtdWx0aXAmYWFjdXRlO2dpbmFzIDwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+DQo8dGQ+bXVlc3RyYSBhICZxdW90O3AmYWFjdXRlO2dpbmEgeCBkZSB5JnF1b3Q7IHBhcmEgZm9ybXVsYXJpb3MgbXVsdGlwJmFhY3V0ZTtnaW5hczwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPg0KPHRkPkNsYXNlIENTUyBwYXJhIGVsIGZvcm11bGFyaW88L3RkPg0KPC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD4NCjx0ZD5Ob21icmUgZGVsIGZvcm11bGFyaW88L3RkPg0KPC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+DQo8dGQ+SUQgZGVsIGZvcm11bGFyaW8gZW4gbGEgYmFzZSBkZSBkYXRvczwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD4NCjx0ZD5Cb3Qmb2FjdXRlO24gJnF1b3Q7Vm9sdmVyJnF1b3Q7IHBhcmEgZm9ybXVsYXJpb3MgbXVsdGlwYXJ0ZXM8L3RkPg0KPC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD4NCjx0ZD5Cb3RvbmVzICZxdW90O0NvbnRpbnVhciZxdW90OyBvICZxdW90O0VudmlhciZxdW90OyBwYXJhIGZvcm11bGFyaW9zIG11bHRpcGFydGVzLCBzZSBhanVzdGEgYXV0b20mYWFjdXRlO3RpY2FtZW50ZTwvdGQ+DQo8L3RyPg0KPC90YWJsZT4NCjxwPk5vIHNlIHBhcmEgcXVlIHF1aWVyZSB1c3RlZCBhbGd1bm9zIGRlIGVzb3MsIHBlcm8gYWxsJmlhY3V0ZTsgZXN0JmFhY3V0ZTtuLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5UZW5nYSBwb3Igc2VndXJvIGVuIGFjdGl2YXIgZWwgcGVybWlzbyAmcXVvdDtNb2RpZmljYXIgRm9ybXVsYXJpb3MmcXVvdDsgcGFyYSBhcXVlbGxvcyB1c3VhcmlvcyBvIGdydXBvcyBkZSB1c3VhcmlvcyBxdWUgYWRtaW5pc3RyYXImYWFjdXRlO24gbG9zIGZvcm11bGFyaW9zIGRlIGNvbnRhY3RvLiBUYW1iaSZlYWN1dGU7biwgc2kgdXN0ZWQgdmEgYSBlbnZpYXIgZWwgcmVzdWx0YWRvIGRlIGxvcyBmb3JtdWxhcmlvcyBwb3IgZW1haWwsIGhhZ2EgdW5hIGFjdHVhbGl6YWNpJm9hY3V0ZTtuIGRlIGxhIENvbmZpZ3VyYWNpJm9hY3V0ZTtuIGVuIGZvcm1hIGFwcm9waWFkYS48L3A+DQo8cD5Qb3IgZmF2b3IgdGVuZ2EgZW4gY3VlbnRhIHF1ZSB1biBmb3JtdWxhcmlvIGRlIGNvbnRhY3RvIG5vIGRlYmUgZXN0YXIgYWN0aXZvIChwLmVqLiwgZW4gdXNvIHBvciBlbCBwJnVhY3V0ZTtibGljbykgbWllbnRyYXMgdXN0ZWQgZXN0JmFhY3V0ZTsgZW4gZWwgcHJvY2VzbyBkZSBlZGl0YXJsby4gVXN0ZWQgZGViZSBjcmVhciBlbCBmb3JtdWxhcmlvLCB5IGx1ZWdvIGNvbG9jYXIgZWwgdGFnIGNvcnJlc3BvbmRpZW50ZSBlbiB1bmEgcCZhYWN1dGU7Z2luYSBkZSBjb250ZW5pZG8gYWN0aXZhIHMmb2FjdXRlO2xvIGN1YW5kbyBoYXlhIHRlcm1pbmFkbyBkZSBlZGl0YXJsby4gRGUgb3RyYSBmb3JtYSwgcHVlZGUgb2J0ZW5lciByZXN1bHRhZG9zIGNvbiBlcnJvcmVzLjwvcD4NCjxwPkFkZW0mYWFjdXRlO3MsIGVzdGEgdmVyc2kmb2FjdXRlO24gbm8gc29wb3J0YSBlbCBlZGl0YWRvIHBhcmFsZWxvIGRlIGxvcyBmb3JtdWxhcmlvcy4gUG9yIGZhdm9yIGluc3RydXlhIGEgbG9zIGFkbWluaXN0cmFkb3JlcyBwYXJhIHF1ZSB0ZW5nYW4gZWwgY3VpZGFkbyBkZSBlZGl0YXIgZW4gZm9ybWEgZXhjbHVzaXZhIHVuIGZvcm11bGFyaW8sIGV2aXRhbmRvIGNvaW5jaWRpciBlbiBsYSB0YXJlYSBjb24gb3RybyBhZG1pbmlzdHJhZG9yLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaHlhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPg0KPHByZT4NCgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8NCglmb3JtIHttYXJnaW4tdG9wOjB9DQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0NCglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQ0KCWZpZWxkc2V0IGRpdiB7DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbTsNCgl9DQoJZmllbGRzZXQgZGl2IGRpdiB7DQoJCW1hcmdpbi10b3A6MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbQ0KCX0NCglmaWVsZHNldCB7DQoJCW1hcmdpbi1ib3R0b206MWVtOw0KCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7DQoJCXBhZGRpbmc6MC41ZW0NCgl9DQoJZmllbGRzZXQgbGFiZWwgew0KCQl3aWR0aDphdXRvOw0KCX0NCglsZWdlbmQgew0KCQljb2xvcjojRkZGOw0KCQliYWNrZ3JvdW5kOiNGNjA7DQoJCWZvbnQtc3R5bGU6aXRhbGljOw0KCQlmb250LXNpemU6MS4yZW07DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCXBhZGRpbmc6MC4yZW07DQoJCXdpZHRoOmF1dG87DQoJCWJvcmRlcjoxcHggc29saWQgI0NDQw0KCX0NCgl0ZXh0YXJlYSB7DQoJCW1hcmdpbjogMC41ZW0gMDsNCgkJd2lkdGg6OTglOw0KCQloZWlnaHQ6IDZlbQ0KCX0NCg0KCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMNCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8NCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19DQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwNCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjQuNC4gMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMy4gMTggU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHB1bGxkb3ducyB1c2luZyBudW1iZXJzLCBvcHRpb24gdG8gaW5saW5lIGZvcm0sIGZpeGVzIGZvciB0YWJsZS1sYXlvdXRzIHByb3ZpZGVkIGJ5IEFwIE11dGh1LCBmaXggZm9yIHJlcXVpcmFiaWxpdHkgb2YgRGlzcG9zaXRpb25zLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMi4gMTQgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIFhNTCBleHBvcnQsIFJhZGlvQnV0dG9uIEdyb3VwIHN1Ym1pc3Npb24sIGFuZCBIVE1MIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjEuIEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQNCgk8dWw+DQoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+DQoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlPC9saT4NCgkJPGxpPk1hc3NpdmUgcmVqaWdnZXJpbmcgb2YgY29kZSB0byB3b3JrIHdpdGggQ01TIE1TIDEuMSBwYXJhbWV0ZXIgc2FuaXRpemluZyByZWdpbWU8L2xpPg0KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6ICZxdW90O1RleHRGaWVsZCAoTXVsdGlwbGUpJnF1b3Q7IGFuZCAmcXVvdDtDb21wdXRlZCBGaWVsZCZxdW90OzwvbGk+DQoJCTxsaT5BZGRlZCBkaXNwb3NpdGlvbnM6ICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJnF1b3Q7IGFuZCAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJnF1b3Q7KENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPg0KCQk8bGk+QWRkZWQgYWJpbGl0eSB0byBwYXNzIGRlZmF1bHQgdmFsdWVzIHRvIGZvcm0gZWxlbWVudHMgZnJvbSBtb2R1bGUgdGFnIHVzaW5nIHZhbHVlX0ZJRUxETkFNRT0mcXVvdDt2YWx1ZSZxdW90OyBzeW50YXggKENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgb3B0aW9uIHRvIGRpc3BsYXkgZmllbGQgaWRzIGluIGFkbWluIChDYWxndXkpPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMw0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4NCiAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDwvbGk+DQogICAgICA8bGk+QWRkZWQgUGF1bCBOb29uZSYjMDM5O3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4NCiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4NCiAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzwvbGk+DQogICAgICA8bGk+QWRkZWQgRHJhZyYjMDM5O24mIzAzOTtEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4NCiAgICAgIDxsaT5BZGRlZCBub24tYmxhbmsgZmllbGQgbmFtZSBhbmQgdW5pcXVlIGZpZWxkIG5hbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgdmFsaWRhdGlvbjwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50ZWQgdGVtcGxhdGVkIGRpc3BsYXkgb2YgZm9ybSByZXN1bHRzIHVwb24gc3VibWlzc2lvbiBpbiBhZGRpdGlvbiB0byBwYWdlIHJlZGlyZWN0aW5nPC9saT4NCiAgICAgIDxsaT48L2xpPg0KICAgPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3DQogICA8cD5CaWcgcmVsZWFzZTo8dWw+DQogICA8bGk+QWRkZWQgJnF1b3Q7RW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MmcXVvdDsgZGlzcG9zaXRpb24uPC9saT4NCiAgIDxsaT5BZGRlZCAmcXVvdDtUaW1lUGlja2VyJnF1b3Q7IGZpZWxkIHR5cGUuIFNwbGl0ICZxdW90O0xpbmsmcXVvdDsgZmllbGQgaW50byBhICZxdW90O1VzZXItc3VwcGxpZWQgTGluayZxdW90OyBmaWVsZCBhbmQgYSAmcXVvdDtTdGF0aWMgTGluayZxdW90OyBmaWVsZC48L2xpPg0KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPg0KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4NCiAgIDxsaT5BZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjMNCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4yDQogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4NCiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzDQogICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQ0KICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkDQogICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4NCiAgICAgIDwvcD4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwNCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4NCiAgICAgIDwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjk5MTUxNDI0OC4xMTk0MTEzMDgzLjExOTc5OTExNTMuMTE5ODg2MzI4Ny4yOSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExOTg4NjMyODcuMjkuMjcudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2ZvcnVtL2ZvcnVtLnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></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/fi_FI.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0xvbWFrZSBlZGl0b3JpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnS2VudCZhdW1sO24gdHl5cHBpJmF1bWw7IGVpIG9sZSBhc2V0ZXR0dSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IGFsa3UnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IGxvcHB1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3Rpa2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGVrc3Rpa2VudHQmYXVtbDsgKHVzZWl0YSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RpYWx1ZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdWYWxpbnRhbGFhdGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdWYWxpbnRhbGFhdGlra28gcnlobSZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdBbGFzdmV0b3ZhbGlra28nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdNYWF2YWxpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnUCZhdW1sO2l2JmF1bWw7eXN2YWxpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnQWlrYXZhbGludGEnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdWYWxpbnRhcGFsbG8gcnlobSZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgdmFzdGF1a3NldCBhbGFzdmV0b3ZhbGlrb24gbXVrYWlzZXN0aSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IGFsYXN2ZXRvdmFsaWtvbiBtdWthaXNlc3RpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJyogVGFsbGVubmEgdmFzdGF1a3NldCB1c2Vpc2lpbiB0aWVkb3N0b2loaW4gZXJpIHZhbGludG9qZW4gbXVrYWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJyogT2hqYWEgc2l2dWxsZSBhbGFzdmV0b3ZhbGlrb24gbXVrYWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyogTCZhdW1sO2hldCZhdW1sOyB2YXN0YXVrc2V0IGFzZXRldHR1aWhpbiBlbWFpbCBvc29pdHRlaXNpaW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKiBUYXJraXN0YSBlbWFpbCBvc29pdGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgdGllZG9zdG9vbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgdGlldG9rYW50YWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKiBLdXN0c3UgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyZhdW1sOyB0YWdpYSBsb21ha2tlZW4gdHVsb2tzaWxsYSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyZhdW1sO24gZW1haWwgb3NvaXR0ZWVzZWVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctIFNpdnVuIHZhaWh0byc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ1RpZWRvc3RvbiBsYXRhdXMnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtPc29pdGUmcXVvdDsga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtOaW1pJnF1b3Q7IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7QWloZSZxdW90OyBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IHRla3N0aSc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IGxpbmtraSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmtraSAoSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHN5Jm91bWw7dHQmYXVtbDttJmF1bWw7KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLSBQaWlsb3RldHR1IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gTGFza2V0dHUga2VudHQmYXVtbDsnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnRWkgdGFya2lzdHVzdGEnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZWVyaW5lbic7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdLb2tvbmFpc2x1a3UnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWwgb3NvaXRlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1ZhbGludGEgdmFhZGl0YWFuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdUYXJraXN0YSBzJmF1bWw7JmF1bWw7bm4mb3VtbDtubXVrYWlzZWxsYSBsYXVzZWtrZWVsbGEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnS2VudCZhdW1sO24gYXJ2byBlaSBvbGUgbSZhdW1sOyZhdW1sO3JpdHRlbHluIG11a2FpbmVuJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdWYWFkaXR1c3RhIGtlbnQmYXVtbDtzdCZhdW1sOyBwdXV0dHV1IGFydm8nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdPbGUgaHl2JmF1bWw7IGphIGFubmEgYXJ2byBrZW50dCZhdW1sOyZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnU3kmb3VtbDt0JmF1bWw7IG51bWVybyBrZW50dCZhdW1sOyZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnQXJ2b2EgZWkgc2FsbGl0dHUga2VudCZhdW1sO3NzJmF1bWw7ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnU3kmb3VtbDt0JmF1bWw7IGtva29uYWlzbHVrdSBrZW50dCZhdW1sOyZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnU3kmb3VtbDt0JmF1bWw7IGVtYWlsIG9zb2l0ZSBrZW50dCZhdW1sOyZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgZWkgbiZhdW1sO3l0JmF1bWw7IG9sZXZhbiBlbWFpbCBvc29pdGUnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0tlbnQmYXVtbDtuIG1ha3NpbWkgcGl0dXVzIG9uICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0Vyb3RpbiBtZXJra2kga2VudGlsbGUgam90a2EgcGFsYXV0dGF2YXQgZW5lbW0mYXVtbDtuIGt1aW4geWhkZW4gYXJ2b24nOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1RhcnZpdHNldCAmcXVvdDslcyZxdW90OyBvaWtldWRldCBrJmF1bWw7eXR0JmF1bWw7JmF1bWw7a3Nlc2kgdCZhdW1sO3QmYXVtbDsgdG9pbWludG9hJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU2ludWxsYSBlaSBvbGUgdGFydml0dGF2aWEgb2lrZXVrc2lhJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdLZW50dGllbiBqJmF1bWw7cmplc3R5cyBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnTG9tYWtlIHBvaXN0ZXR0dSc7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnS2VudHQmYXVtbDsgcG9pc3RldHR1JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0FzZXR1a3NldCBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdTaW51biB0YXJ2aXRzZWUgdmFsaXRhICZxdW90OyVzJnF1b3Q7IGphdGthYWtzZXNpJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdWJmF1bWw7aGludCZhdW1sOyZhdW1sO24geWtzaSBrb2hkZSB0YXJ2aXRhYW4nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnSGFsdWF0a28gdmFybWFzdGkgcG9pc3RhYSBsb21ha2tlZW4gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0hhbHVhdGtvIHZhcm1hc3RpIHBvaXN0YWEga2VudCZhdW1sO24gJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnTGlzJmF1bWw7YXNldHVrc2V0IGVpdiZhdW1sO3Qgb2xlIHZhbGl0dGF2aXNzYSBlbm5lbiBrZW50JmF1bWw7biB0eXlwaW4gdmFsaW50YWEnOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdLZW50JmF1bWw7biBuaW1pICZxdW90OyVzJnF1b3Q7IG9uIGpvIGsmYXVtbDt5dCZvdW1sO3NzJmF1bWw7Lic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnS2VudCZhdW1sO2xsJmF1bWw7IHR1bGVlIG9sbGEgbmltaSc7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdUdW50ZW1hdG9uJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdwaXR1dXM6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgbGFhdGlra29hJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyB2YWxpbnRhYSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIG1lcmtraSZhdW1sOy4nOwokbGFuZ1snb3JkZXInXSA9ICdKJmF1bWw7cmplc3R5cyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tlaSBtJmF1bWw7JmF1bWw7cml0ZXR0eV0nOwokbGFuZ1snYWRkZWQnXSA9ICdsaXMmYXVtbDt0dHknOwokbGFuZ1sndXBkYXRlZCddID0gJ3AmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdKJmF1bWw7cmplc3R5cyBhc2V0dWtzZXQgdHVsb3N0ZWVzc2EnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1ZhbGl0c2UgeWtzaSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1ZhbGl0c2UgdHl5cHBpJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnS3lsbCZhdW1sOyc7CiRsYW5nWydubyddID0gJ0VpJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICd2YXN0YWFub3R0YWphdCc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbWFoZG9sbGlzdGEgdGllZG9zdG9hJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgbSZhdW1sOyZhdW1sO3ImYXVtbDtucCZhdW1sOyZhdW1sO3QmYXVtbDsnOwokbGFuZ1snc2F2ZSddID0gJ1RhbGxlbm5hJzsKJGxhbmdbJ2FkZCddID0gJ0xpcyZhdW1sOyZhdW1sOyc7CiRsYW5nWyd1cGRhdGUnXSA9ICdQJmF1bWw7aXZpdCZhdW1sOyc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1RhbGxlbm5hIGphIGphdGthIG11b2trYXVzdGEnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdUaWV0b2EnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hYXR0aW5lbic7CiRsYW5nWydmb3JtcyddID0gJ0xvbWFra2VldCc7CiRsYW5nWydmb3JtJ10gPSAnTG9tYWtlICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdBc2V0dWtzZXQnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0tlbnQmYXVtbDtuICZxdW90O3ZhYWRpdHR1JnF1b3Q7IHRpbGEgcCZhdW1sO2l2aXRldHR5JzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01ha3NpbWkga29rbyc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1AmYXVtbDsmYXVtbDt0dGVldCc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnU2FsbGl0dXQgdGllZG9zdG8gdHl5cGl0JzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTGFkYXR0dSB0aWVkb3N0byBvbiBsaWlhbiBzdXVyaS4gU3V1cmluIHNhbGxpdHR1IGtva28gb246JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGllZG9zdG9uIHR5eXBwaSZhdW1sOyBlaSBvbGUgc2FsbGl0dHUuIFRhcmtpc3RhIHRpZWRvc3RvbiB0eXlwcGkuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0xhdGFhJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdMb21ha2UgdHVvdHUnOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnTG9tYWtrZWVuIHR1b250aSBlcCZhdW1sO29ubmlzdHVpLiBYTUwgdGllZG9zdG8gdmlyaGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByaXZpJmF1bWw7JzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW5pYSc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgdHVubmluIGtlbGxvJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCB0dW5uaW4ga2VsbG8nOwokbGFuZ1snaG91ciddID0gJ1R1bnRpJzsKJGxhbmdbJ21pbiddID0gJ01pbnV1dHRpJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0tpaXRvcy4gTG9tYWtlIG9uIHRhbGxlbm5ldHR1JzsKJGxhbmdbJ2VkaXQnXSA9ICdNdW9ra2FhJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1BvaXN0YSc7CiRsYW5nWydkYXknXSA9ICdQJmF1bWw7aXYmYXVtbDsnOwokbGFuZ1snbW9uJ10gPSAnS3V1a2F1c2knOwokbGFuZ1sneWVhciddID0gJ1Z1b3NpJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHVuaW5zdGFsbGVkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1Rha2Fpc2luLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7IGxvbWFrZSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKYXRrYSc7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnVmFsaXR0dSc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdFaSB2YWxpdHR1JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnTG9tYWtrZWVuIHR1bG9zdHVzIGFzZXR1a3NldCc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR5cyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgYXNldHVrc2V0JzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xpcyZhdW1sO2FzZXR1a3NldCc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdMb21ha2tlZW4gcG9oamEnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5UJmF1bWw7c3MmYXVtbDsga2VudCZhdW1sO3NzJmF1bWw7IHZvaXQgayZhdW1sO3l0dCZhdW1sOyZhdW1sOyBzbWFydHkgbXV1dHR1amlhPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdmFsaW50b2phJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnUG9pc3RhIHZhbGl0dXQgdmFsaW5uYXQnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdmFsaW50YWxhYXRpa29pdGEnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdQb2lzdGEgdmFsaXR1dCB2YWxpbnRhbGFhdGlrb3QnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdXVzaSBvc29pdGUnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdQb2lzdGEgdmFsaXR1dCBvc29pdHRlZXQnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kga29oZGUnOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnUG9pc3RhIHZhbGl0dXQga29odGVldCc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0lQIG9zb2l0dGVlc3Rhc2kgb24gdHVsbHV0IGxpaWFuIG1vbnRhIGVtYWlsaWEuIFZpZXN0aWVuIGwmYXVtbDtoZXR5cyBlc3RldHR5JzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01haGRvbGxpbmVuIHNwYW0gdmllc3RpdHlzIElQOnN0JmF1bWw7ICVzIGVzdGV0dHkuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdKJmF1bWw7cmplc3QmYXVtbDsga2VudHRpJmF1bWw7JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnUnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnVGFsbGVubnVza2Fuc2lvIHRpZWRvc3RvaWxsZSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0smYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsgdGFnaSc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYWtzaW1pIHBpdHV1cyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ1ZhbGludGFsYWF0aWtvbiBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnVmFsaW50YXBhbGxvbiBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdBcnZvIGt1biB2YWxpdHR1JzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ0Fydm8ga3VuIGVpIHZhbGl0dHUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ1ZhbGludGFsYWF0aWtrbyByeWhtJmF1bWw7biB0aWVkb3QnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnUG9pc3RhPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtWYWxpdHNlIHlrc2kmcXVvdDsgdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1ZhbGlubmFuIG4mYXVtbDt5dHQmb3VtbDsgbmltaSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1ZhbGlubmFuIG90c2lra28nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ09sZXR1cyB2YWxpbnRhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnT2xldHVzIHZhbGludGEnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdWYWxpbm5hbiBuaW1pJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ0Fydm8nOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ0FsYXN2ZXRvdmFsaWtvbiB2YWxpbm5hdCc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGlzZWxlY3QgT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtOaW1pJnF1b3Q7IGVtYWlsaWluJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdLJmF1bWw7eXQmYXVtbDsgbCZvdW1sO3lzJmF1bWw7JmF1bWw7IGVtYWlsIHRhcmtpc3R1c3RhJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0smYXVtbDt5dCZhdW1sOyByZW50b2EgZW1haWwgdGFya2lzdHVzdGEgKGVzaW0uICZxdW90O3hAeSZxdW90OyBzYWxsaXRhYW4gJnF1b3Q7eEB5LnRsZCZxdW90OyBzaWphc3RhKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtMJmF1bWw7aGRlIEVtYWlsJnF1b3Q7IG9zb2l0ZSBlbWFpbGlpbic7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsaW4gbWVya2lzdCZvdW1sO2tvb2RhdXMnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdUaWVkb3N0b25pbWknOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIGFpaGUgcml2aSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdMb21ha2tlZW4gbmltaSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0xvbWFra2VlbiB0aWxhJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnVmFsbWlzIGsmYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDtrc2knOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0VpIHZhbG1pcyEnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdMb21ha2UgdGFydml0c2VlIGpvbmt1biBrb2h0ZWVuIGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBzeSZvdW1sO3R0ZWVsbGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdrJmF1bWw7eXR0JmF1bWw7JmF1bWw7IHQmYXVtbDt0JmF1bWw7IG9pa29wb2xrdWEnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0xvbWFra2VlbiBhbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0xvbWFra2VlbiBrZW50JmF1bWw7dCc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0tlbnQmYXVtbDtuIGlkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdLZW50JmF1bWw7biBuaW1pJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1ZhbGludGFwYWxsbyByeWhtJmF1bWw7biB0aWVkb3QnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0tlbnQmYXVtbDtuIHR5eXBwaSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kgbG9tYWtlJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ04mYXVtbDt5dCZhdW1sOyBMb21hZ2UgZ2VuZXJhYXR0b3JpbiB2ZXJzaW8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdXVzaSBrZW50dCZhdW1sOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdMb21ha2tlZW4gbCZhdW1sO2hldCZhdW1sOyBrZW50JmF1bWw7biB0ZWtzdGknOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdMaXMmYXVtbDsmYXVtbDsgbG9tYWtrZWVuIGwmYXVtbDtoZXQmYXVtbDsgbmFwcGlpbiBqYXZhc2NyaXB0aSBrb29kaSBqb2thIGF1dHRhYSBlc3QmYXVtbDttJmF1bWw7JmF1bWw7biB0dXBsYSBsJmF1bWw7aGV0eWtzZW4nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0xpcyZhdW1sOyZhdW1sOyB0dXJ2YSBzY3JpcHRpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdMb21ha2tlZW4gJnF1b3Q7U2V1cmFhdmEmcXVvdDsgbmFwaW4gdGVrc3RpIChLJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gdmFpbiB1c2VhbXBpIHNpdnVpc2lsbGEgbG9tYWtrZWlsbGEpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdMb21ha2tlZW4gJnF1b3Q7RWRlbGxpbmVuJnF1b3Q7IG5hcGluIHRla3N0aSAoSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHZhaW4gdXNlYW1waSBzaXZ1aXNpbGxhIGxvbWFra2VpbGxhKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnS2VudCZhdW1sO24gdmFsaWRvaW50aSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0xvbWFra2VlbiBDU1MgY2xhc3MnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnS2VudCZhdW1sO24gQ1NTIGNsYXNzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnVmFhZGl0dHVqZW4ga2VudHRpZW4gc3ltYm9saSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1ZhYWRpdGFhbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVCZhdW1sO3N0JmF1bWw7IGtlbnQmYXVtbDtzdCZhdW1sOyB2YWFkaXRhYW4gc3kmb3VtbDt0ZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnUGlpbG90YSBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1BpaWxvdGEga2VudCZhdW1sO24gbmltaSBsb21ha2tlZWxsYSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnTiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBraWludGUmYXVtbDsgdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnSyZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBzJmF1bWw7JmF1bWw7bm4mb3VtbDtubXVrYWluZW4gbGF1c2VrZSc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnS3VpbmthIG1vbnRhIHJpdmkmYXVtbDsgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdFaSBvbGV0dXN0YSc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdQaWlsb3RhIHZpcmhlZXQnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0xvbWFra2VlbiBuJmF1bWw7eXQmb3VtbDtuIHR5eXBwaSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnRXN0JmF1bWw7IGthaWtraWVuIGRlYnVnIHZpZXN0aWVuIG4mYXVtbDt5dHQmYXVtbDttaW5lbic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIHBvaGphJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1NhbGxpdHV0IHAmYXVtbDsmYXVtbDt0dGVldCc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ04mYXVtbDt5dCZhdW1sOyByYWpvaXR1a3NldCc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTaXZ1ICVzIC8gJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0tlbnQmYXVtbDtsbGUgZWkgb2xlIGxpcyZhdW1sO2FzZXR1a3NpYSc7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnU2FsbGkgbm9wZWEga2VudCZhdW1sO24gbGlzJmF1bWw7eXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdTYWxsaSBub3BlYSBrZW50JmF1bWw7biBsaXMmYXVtbDt5cyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnUGlrYSBsaXMmYXVtbDt5cyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ1QmYXVtbDttJmF1bWw7IHZhbGludGEgc2FsbGlpIG1ha3NpbWlzc2FhbiAxMCBlbWFpbGlhIHNhbWFzdGEgSVAgb3NvaXR0ZXN0YSB0dW5uaXNzYSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdBa3Rpdm9pIGFudGktc3BhbSB0b2ltaW5ub3QnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ04mYXVtbDt5dCZhdW1sOyBrZW50dGllbiBpZDp0JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnSyZhdW1sO3l0JmF1bWw7IHQmYXVtbDt0JmF1bWw7IGxvbWFra2VlbiBuaW1lJmF1bWw7JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdLJmF1bWw7eXQmYXVtbDsgdCZhdW1sO3QmYXVtbDsgbG9tYWtrZWVuIGFsaWFzdGEnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0smYXVtbDt5dCZhdW1sOyBIVE1MIGVtYWlsaWEnOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdUJmF1bWw7eXQmYXVtbDsgYXV0b21hYXR0aXNlc3RpJzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyZxdW90Oz5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPg0KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pg0KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPg0KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPg0KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuDQo8L3A+DQoNCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCg0KDQo8aDM+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPg0KJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1RpcG8gZGVsIGNhbXBvIG5vbiBzZXR0YXRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmluZSBHcnVwcG8gQ2FtcGknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUluaXppbyBHcnVwcG8gQ2FtcGknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdJbnB1dCB0ZXN0dWFsZSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdJbnB1dCBUZXN0dWFsZSAoTXVsdGlwbG8pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ0FyZWEgZGkgVGVzdG8nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnR3J1cHBvIGRpIENoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdNZW51IGEgdGVuZGluYSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGV6aW9uZSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdTZWxlemlvbmUgU3RhdGkgVS5TLkEuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBwcm92aW5jaWUgQ2FuYWRlc2knOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdTZWxlemlvbmUgTmF6aW9uZSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBEYXRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIE9yYSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBwbyBkaSBSYWRpbyBCdXR0b24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkludmlhIHBlciBFbWFpbCBpIFJpc3VsdGF0aSBpbiBiYXNlIGFsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2FsdmEgaSByaXN1bHRhdGkgaW4gYmFzZSBhbCBtZW51IGEgdGVuZGluYSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2FsdmEgaSByaXN1bHRhdGkgaW4gdW4gZmlsZSBpbiBiYXNlIGFsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmV6aW9uYSBsYSBwYWdpbmEgbW9kaWZpY2FuZG8gbGEgc2VsZXppb25lIGRlbCBtZW51IGEgdGVuZGluYSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqSW52aWEgcGVyIEVtYWlsIGkgcmlzdWx0YXRpIHBlciBpbXBvc3RhcmUgbCYjMDM5O2luZGlyaXp6by9pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGEgdHJhbWl0ZSBpbmRpcml6em8gRW1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2NyaXZpIGkgcmlzdWx0YXRpIGluIHVuIGZpbGUgc2VtcGxpY2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKk1lbW9yaXp6YSBpIHJpc3VsdGF0aSBuZWwgRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKk1lbW9yaXp6YSBpIHJpc3VsdGF0aSBwZXIgaWwgbW9kdWxvIEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkludm9jYSB1biBUYWcgZGVmaW5pdG8gZGFsbCYjMDM5O3V0ZW50ZSBjb24gaSByaXN1bHRhdGkgZGVsIG1vZHVsbyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqSW52aWEgcGVyIGVtYWlsIGFsbCYjMDM5O2luZGlyaXp6byBmb3JuaXRvIGRhbGwmIzAzOTt1dGVudGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIGFsbCYjMDM5O2FkbWluIGRlbCBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1JbnRlcnJ1emlvbmUgZGkgcGFnaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnQ2FyaWNhIEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdJbnZpYSBwZXIgRW1haWwgaWwgY2FtcG8gJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnSW52aWEgcGVyIEVtYWlsIGlsIGNhbXBvICZxdW90O0Zyb20gTmFtZSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtTdWJqZWN0JnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVRlc3RvIFN0YXRpY28nOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctTGluayBTdGF0aWNvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTGluayAoaW5zZXJpdG8gZGFsbCYjMDM5O3V0ZW50ZSknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1DYW1wbyBOYXNjb3N0byc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ2FtcG8gQ29tcGlsYXRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLUludGVybyBVbmljbyAoU2VyaWFsZSknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTmVzc3VuYSB2YWxpZGF6aW9uZSc7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmljbyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlcm8nOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnSW5kaXJpenpvIEVtYWlsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ051bWVybyB0ZWxlZm9uaWNvIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnRGV2ZSBlc3NlcmUgc3B1bnRhdG8nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0NvaW5jaWRlIGNvbiB1biYjMDM5O0VzcHJlc3Npb25lIFJlZ29sYXJlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ05vbiBjb2luY2lkZSBjb24gdW4mIzAzOTtFc3ByZXNzaW9uZSBSZWdvbGFyZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnVW4gdmFsb3JlIG5vbiAmZWdyYXZlOyBzdGF0byBpbnNlcml0byBwZXIgdW4gY2FtcG8gcmljaGllc3RvJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnSW5zZXJpcmUgdW4gdmFsb3JlIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdJbnNlcmlyZSB1biBudW1lcm8gcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0luc2VyaXJlIHVuIHZhbG9yZSB2YWxpZG8gcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnSW5zZXJpcmUgdW4gdmFsb3JlIGludGVybyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnSW5zZXJpcmUgdW4gaW5kaXJpenpvIGVtYWlsIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdJbnNlcmlyZSB1biBudW1lcm8gZGkgdGVsZWZvbm8gdmFsaWRvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBub24gc2VtYnJhIGVzc2VyZSB1biBpbmRpcml6em8gZW1haWwgdmFsaWRvISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnSW5zZXJpcmUgdW4gdmFsb3JlIGx1bmdvIG5vbiBwaSZ1Z3JhdmU7IGRpICVzIGNhcmF0dGVyaSc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NhcmF0dGVyZSBkYSB1c2FyZSBjb21lIGRlbGltaXRhdG9yZSBuZWkgcmlzdWx0YXRpIGNoZSByaXRvcm5hbm8gY29uIHBpJnVncmF2ZTsgZGkgdW4gdmFsb3JlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdBdmV0ZSBiaXNvZ25vIGRlbCBwZXJtZXNzbyAmcXVvdDslcyZxdW90OyBwZXIgZXNlZ3VpcmUgcXVlc3RhIG9wZXJhemlvbmUuJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU3BpYWNlbnRlISBOb24gYXZldGUgaSBwcml2aWxlZ2kgbmVjZXNzYXJpIHBlciBhY2NlZGVyZSBhIHF1ZXN0YSBzZXppb25lLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnT3JkaW5lIGRlaSBjYW1waSBhZ2dpb3JuYXRvLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtIGNhbmNlbGxhdG8uJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdDYW1wbyBjYW5jZWxsYXRvLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF6aW9uZSBhZ2dpb3JuYXRhLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0RvdmV0ZSBzZWxlemlvbmFyZSAmcXVvdDslcyZxdW90OyBwZXIgY29udGludWFyZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ0RvdmV0ZSBzcGVjaWZpY2FyZSBhbG1lbm8gdW4gaW5kaXJpenpvIGRpIGRlc3RpbmF6aW9uZSEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnU2lldGUgc2ljdXJpIGRpIHZvbGVyIGNhbmNlbGxhcmUgaWwgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ1NpZXRlIHNpY3VyaSBkaSB2b2xlciBjYW5jZWxsYXJlIGlsIGNhbXBvICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdPcHppb25pIGF2YW56YXRlIG5vbiBzb25vIGRpc3BvbmliaWxpIGZpbm8gYWxsYSBzY2VsdGEgZGVsIHRpcG8gZGkgY2FtcG8uJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnSWwgbm9tZSBkZWwgY2FtcG8gJnF1b3Q7JXMmcXVvdDsgJmVncmF2ZTsgZ2kmYWdyYXZlOyBpbiB1c28uIFNpIHByZWdhIGRpIHVzYXJlIG5vbWkgZGVpIGNhbXBpIHVuaXZvY2ksIG8gZGlzYWJpbGl0YXJlIG5vbWkgZGVpIGNhbXBpIHVuaXZvY2kgbmVsbGEgY29uZmlndXJhemlvbmUgZGkgRm9ybSBCdWlsZGVyLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnSSBjYW1waSBkZXZvbm8gYXZlcmUgdW4gbm9tZSwgYSBtZW5vIGRpIGRpc2FiaWxpdGFyZSBsJiMwMzk7b3B6aW9uZSBuZWxsYSBjb25maWd1cmF6aW9uZSBkaSBGb3JtIEJ1aWxkZXIuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub25pbW8nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0x1bmdoZXp6YTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBjYXNlbGxlJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclIG9wemlvbmknOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclIGNhcmF0dGVyaS4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRpbmUnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbbm9uIHNwZWNpZmljYXRvXSc7CiRsYW5nWydhZGRlZCddID0gJ2FnZ2l1bnRvJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdhZ2dpb3JuYXRvJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09yZGluYSBsZSBvcHppb25pIG5lbGwmIzAzOTtvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGV6aW9uYXJlIHVubyc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGV6aW9uYXJlIHRpcG8nOwokbGFuZ1sndG8nXSA9ICdBJzsKJGxhbmdbJ3llcyddID0gJ1MmaWdyYXZlOyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdkZXN0aW5hdGFyaSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJSBwb3NzaWJpbGkgZmlsZSc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF6aW9uaSc7CiRsYW5nWydzYXZlJ10gPSAnU2FsdmEnOwokbGFuZ1snYWRkJ10gPSAnQWdnaXVuZ2knOwokbGFuZ1sndXBkYXRlJ10gPSAnQWdnaW9ybmEnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYWx2YSBlIGNvbnRpbnVhIGNvbiBsYSBtb2RpZmljYSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF6aW9uZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWNvJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnTW9kdWxpJzsKJGxhbmdbJ2Zvcm0nXSA9ICdNb2R1bG8gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXppb25lJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdTdGF0byBkZWwgY2FtcG8gcmljaGllc3RvIGFnZ2lvcm5hdG8uJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ0RpbWVuc2lvbmUgbWFzc2ltYSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0VzdGVuc2lvbmknOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RpcGkgZGkgZmlsZSBwZXJtZXNzaSc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0lsIGZpbGUgY2FyaWNhdG8gJmVncmF2ZTsgdHJvcHBvIGdyYW5kZSEgTGEgZGltZW5zaW9uZSBtYXNzaW1hICZlZ3JhdmU7Oic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1F1ZXN0byB0aXBvIGRpIGZpbGUgbm9uIHB1Jm9ncmF2ZTsgZXNzZXJlIGNhcmljYXRvLiBTaSBwcmVnYSBkaSB2ZXJpZmljYXJlIGNoZSBsJiMwMzk7ZXN0ZW5zaW9uZSBzaWEgY29ycmV0dGEuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0NhcmljYSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybSBJbXBvcnRhdG8uJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydGF6aW9uZSBkZWwgRm9ybSBmYWxsaXRhISBDJiMwMzk7JmVncmF2ZTsgdW4gcHJvYmxlbWEgY29uIGlsIGZvcm1hdG8gZGVsIGZpbGUgWE1MLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmlnaGUnOwokbGFuZ1snY29scyddID0gJyVzIGNvbG9ubmUnOwokbGFuZ1snMTJfaG91ciddID0gJ0Zvcm1hdG8gMTIgb3JlJzsKJGxhbmdbJzI0X2hvdXInXSA9ICdGb3JtYXRvIDI0IG9yZSc7CiRsYW5nWydob3VyJ10gPSAnT3JlJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0aSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFubyc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnR2FtbWEgVmFsb3JpOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0dyYXppZSEgSWwgdm9zdHJvIGluc2VyaW1lbnRvICZlZ3JhdmU7IHN0YXRvIHJpY2V2dXRvLic7CiRsYW5nWydlZGl0J10gPSAnTW9kaWZpY2EnOwokbGFuZ1snZGVsZXRlJ10gPSAnRWxpbWluYSc7CiRsYW5nWydkYXknXSA9ICdHaW9ybm8nOwokbGFuZ1snbW9uJ10gPSAnTWVzZSc7CiRsYW5nWyd5ZWFyJ10gPSAnQW5ubyc7CiRsYW5nWydub25lJ10gPSAnKG5lc3N1bm8pJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxvIGRpc2luc3RhbGxhdG8uJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ1ZlcnNpb25lIG1vZHVsbyAlcyBpbnN0YWxsYXRhLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsbyBhZ2dpb3JuYXRvIGFsbGEgdmVyc2lvbmUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ0luZGlldHJvLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdJbnZpYSBGb3JtJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0NvbnRpbnVhLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdTZWxlemlvbmF0byc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdEZXNlbGV6aW9uYXRvJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUHJpbmNpcGFsZSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnSW1wb3N0YXppb25pIGRpIHZpc3VhbGl6emF6aW9uZSBkZWwgRm9ybSc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnSW52aW8gZGVsIEZvcm0nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdJbXBvc3RhemlvbmkgQ2FwdGNoYSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdJbXBvc3RhemlvbmkgQXZhbnphdGUnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTW9kZWxsbyBGb3JtJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdNb2RlbGxvIHBlciBsJiMwMzk7aW52aW8nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5WYXJpYWJpbGkgc21hcnR5IHNvbm8gdmFsaWRlIGluIHF1ZXN0byBjYW1wby48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWdnaXVuZ2VyZSBwaSZ1Z3JhdmU7IG9wemlvbmknOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdDYW5jZWxsYXJlIGxlIG9wemlvbmkgc2VsZXppb25hdGUnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZ2dpdW5nZXJlIHBpJnVncmF2ZTsgQ2FzZWxsZSBhIHNwdW50YSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0VsaW1pbmFyZSBsZSBDYXNlbGxlIHNlbGV6aW9uYXRlJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWdnaXVuZ2VyZSBhbHRybyBJbmRpcml6em8nOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdDYW5jZWxsYXJlIGdsaSBJbmRpcml6emkgc2VsZXppb25hdGknOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWdnaXVuZ2VyZSBhbHRybyBEZXN0aW5hdGFyaW8nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnQ2FuY2VsbGFyZSBpIERlc3RpbmF0YXJpIHNlbGV6aW9uYXRpJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVHJvcHBlIG1haWwgZ2VuZXJhdGUgZGFsIFZvc3RybyBpbmRpcml6em8gSVAuIElsIGNvZGljZSBBbnRpLVNwYW0gaGEgaW1wZWRpdG8gbGEgc3BlZGl6aW9uZS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnRmVybWF0byB1biBzb3NwZXR0byBzcGFtIGRhbGwmIzAzOTtpbmRpcml6em8gSVAgJXMgLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmlvcmRpbmEgY2FtcGknOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsbGEnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsb3JlIHNldHRhdG86ICVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0NhcnRlbGxhIGRpIGRlc3RpbmF6aW9uZSBwZXIgaSBmaWxlIGRpIHVzY2l0YSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1RhZyBEZWZpbml0byBkYWxsJiMwMzk7VXRlbnRlJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdpbmEgZGkgcml0b3JubyBjb24gaWwgbGluayBkaSB1cGxvYWQnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdJbnZpYXRvIGNvbiBGb3JtQnVpZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdDYXRlZ29yaWEgZGkgVXBsb2FkJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnSW52aWEgcXVlc3RvIGZpbGUgYWwgbW9kdWxvIGRpIHVwbG9hZCc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWFzc2ltYSBsdW5naGV6emEnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdFdGljaGV0dGEgZGVsIENoZWNrYm94JzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnRXRpY2hldHRhIGRlbCBSYWRpbyBCdXR0b24nOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbG9yZSBxdWFuZG8gc2VsZXppb25hdG8nOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3JlIHF1YW5kbyBub24gc2VsZXppb25hdG8uJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXR0YWdsaSBkZWwgR3J1cHBvIGRpIENoZWNrYm94JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0VsaW1pbmFyZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGVzdG8gJnF1b3Q7U2VsZXppb25hcmUgVW5vJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZhbG9yZSBzZWxlemlvbmF0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlemlvbmEgaWwgbm9tZSBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlemlvbmUgT2dnZXR0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU2VsZXppb25lIHByZWRlZmluaXRhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU2VsZXppb25lIHByZWRlZmluaXRhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnU2VsZXppb25lIHByZWRlZmluaXRhJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTm9tZSBvcHppb25lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbG9yZSBpbnZpYXRvJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcHppb25pIFB1bGxkb3duJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdPcHppb25pIE11bHRpc2VsZWN0JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdJbmRpcml6em8gZW1haWwgZGkgZGVzdGluYXppb25lJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tZSBmaWxlIGRlc3RpbmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIG5hbWUmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2EgdW5hIHZhbGlkYXppb25lIHNlbXBsaWNlIGRpIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzYSB1bmEgdmFsaWRhemlvbmUgc2VtcGxpY2UgZGkgZW1haWwgKGVzLiwgcGVybWV0dGUgJnF1b3Q7eEB5JnF1b3Q7IGludmVjZSBkaSByaWNoaWVkZXJlICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0luZGlyaXp6byBGcm9tJnF1b3Q7IHBlciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0luc2llbWUgZGkgY2FyYXR0ZXJpIGRpIGVuY29kaW5nIHBlciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnVGVuZGluYSBkZWkgZGV0dGFnbGkgZGVnbGkgRW1haWxlcic7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOb21lIEZpbGUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ09nZ2V0dG8gZGVsbGEgRW1haWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTm9tZSBGb3JtJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU3RhdG8gZGVsIEZvcm0nOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdQcm9udG8gcGVyIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vbiBwcm9udG8nOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2kgZGEgcmlkaXJpZ2VyZSBkb3BvIHVuIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXImIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzYSBxdWVzdGEgc2NvcmNpYXRvaWEnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdDYW1waSBGb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnSWQgY2FtcG8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdNb3N0cmEgQ2FtcGkgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2sgc3UgcXVlc3RvIHZpc3VhbGl6emEgY2FtcGkgYWxpYXNlcyBxdWFuZG8gYWdnaXVuZ2kgbyBtb2RpZmljaGkgdW4gZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTm9tZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0NhbXBvIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldHRhZ2xpbyBkZWwgZ3J1cHBvIFJhZGlvIEJ1dHRvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVGlwbyBjYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnY3JlYSB1biBjYW1wbyBwZXIgdGVuZXJlIGlsIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FnZ2l1bmdlcmUgbnVvdm8gRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdNb3N0cmEgbGEgdmVyc2lvbmUgZGkgRm9ybSBCdWlsZGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1F1ZXN0byBpbnNlcmlzY2UgbGEgdmVyc2lvbmUgaW5zdGFsbGF0YSBkaSBGb3JtIEJ1aWxkZXIgaW4gdW4gY29tbWVudG8gcGVyIGFpdXRhcmUgaWwgZGVidWcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FnZ2l1bmdlcmUgbnVvdm8gY2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnVGVzdG8gZGVsIGJvdHRvbmUgZGkgSW52aW8gZGVsIEZvcm0nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZ2dpdW5nbyBjb2RpY2UgSmF2YXNjcmlwdCBhbCBib3R0b25lIGRpIEludmlvIHBlciBldml0YXJlIGVycm9yaSBkaSBpbnZpaSBtdWx0aXBsaT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FnZ2l1bmdlIHNjcmlwdCBpbiBtb2RvIHNpY3Vybyc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdWYWxpZGF6aW9uZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ1N0aWxlIENTUyBwZXIgcXVlc3RvIEZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnU3RpbGUgQ1NTIHBlciBxdWVzdG8gQ2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTaW1ib2xvIHBlciBtYXJjYXJlIGlsIENhbXBvIHJpY2hpZXN0byc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JpY2hpZXN0byc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmljaGllZGUgdW5hIHJpc3Bvc3RhIHBlciBxdWVzdG8gQ2FtcG8nOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0V0aWNoZXR0YSBuYXNjb3N0YSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdOYXNjb25kZSBpbCBub21lIGRlbCBDYW1wbyBuZWwgRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnVGVzdG8gc3RhdGljbyBkYSB2aXN1YWxpenphcmUnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1lcm8gZGkgbGluZWUgZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdOZXNzdW4gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2luYSBkb3ZlIHJlZGlyaWdlcmUgZG9wbyBsJiMwMzk7YXBwcm92YXppb25lJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnTm9zY29uZGkgZ2xpIEVycm9yaSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBFbWFpbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEgZGVsIGZpbGUgZGkgdXBsb2FkIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRXh0ZW5zaW9uaSBwZXJtZXNzZSc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnSW5zZXJpcmUgdW5hIGxpc3RhIHNlcGFyYXRhIGRhIHZpcmdvbGUsIGVzY2x1ZGVuZG8gaSBwdW50aSAoZXMuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBHbGkgc3Bhemkgc2FyYW5ubyBpZ25vcmF0aS4gTGFzY2lhbmRvIHZ1b3RvIHNpZ25pZmljYSBjaGUgbm9uIGNpIHNhcmFubm8gcmVzdHJpemlvbmkuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdWaXN1YWxpenphemlvbmUgcmlzdHJldHRhPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgZGkgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0lsIGNhbXBvIG5vbiBoYSBvcHppb25pIGF2YW56YXRlLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ01vc3RyYSBJRCBkZWkgY2FtcGknOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2EgcXVlc3RvIG5vbWUgRm9ybSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBhZCB1bmEgcGFnaW5hIGRlbCBzaXRvJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ1VzZSBDYXB0Y2hhIHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXRpbGl6em8gZm9ybWF0byAyNC1vcmU/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSaWdoZSAobm90YTogcHUmb2dyYXZlOyBlc3NlcmUgc292cmFzY3JpdHRvIHZpYSBTdGlsZSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2xvbm5lIChub3RhOiBwdSZvZ3JhdmU7IGVzc2VyZSBzb3ZyYXNjcml0dG8gdmlhIFN0aWxlIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgbG9naW4gbmFtZSBhcyB3ZWxsIGFzIEZpcnN0IE5hbWUvTGFzdCBOYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1F1ZXN0byBjYW1wbyBwdSZvZ3JhdmU7IGVzc2VyZSBsYXNjaWF0byB2dW90byc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJpbGkgcGVyIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmlsaSB1dGlsaXp6YWJpbGknOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ3ZhcmlhYmlsZSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRhIGRpIEludmlvJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdWb3N0cm8gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0luZGlyaXp6byBJUCBkZWxsYSBwZXJzb25hIGNoZSBzdGEgdXNhbmRvIGlsIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRmllbGRzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMgbWF5IGFsc28gYmUgYWNjZXNzZWQgdmlhIHRoZSBzbWFydHkgdmFsdWUgb2YgJGZpZWxkbmFtZV9hcnJheSBvciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJpbGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEluZGlldHJvIGFsIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAndW4gY2FyYXR0ZXJlIHRhYnVsYXRvcmUnOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdQYXJ0ZW56YSBkZWxsJiMwMzk7aW50ZXJ2YWxsbyBBbm5vJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnRmluZSBkZWxsJiMwMzk7aW50ZXJ2YWxsbyBBbm5vJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0Fubm8gcHJlZGVmaW5pdG8nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0dGEgYSAtMSBhZmZpbmNoJmVncmF2ZTsgbCYjMDM5O2Fubm8gcHJlZGVmaW5pdG8gc2lhIHF1ZWxsbyBjb3JyZW50ZSknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0RvcG8gY2hlIGlsIGZvcm0gJmVncmF2ZTsgaW52aWF0byc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSaXN1bHRhdG8gZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ01vc3RyYSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmlnZSBhZCB1bmEgcGFnaW5hIGRlbCBzaXRvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdQYWdpbmEgZGkgZGVzdGluYXppb25lJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ05vbWUgZGVsIGNhbXBvIHJpY2hpZXN0byc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JpY2hpZWRpIGNoZSBpIGNhbWJpIGFiYmlhbm8gdW4gbm9tZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSaWNoaWVkaSBub21pIGRlaSBjYW1waSB1bml2b2NpJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdJIGNhbXBpIHJpY2hpZXN0aSBoYW5ubyB1biBub21lIHVuaXZvY28/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jpb3JkaW5hIGkgY2FtcGknOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0NhcmljYSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZ2dpdW5nZXJlIHVuIGJvdHRvbmUgdGVzdHVhbGUnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnVGVzdG8gZGVsIGJvdHRvbmUgZGkgQ2FuY2VsbGF6aW9uZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdXJlIGRhIGNhbGNvbGFyZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmdhJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljbyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ01vc3RyYSBpbCBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHByZWRlZmluaXRvJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBjb24gdGFiZWxsZSwgVGl0b2xpIHN1bGxhIHNpbmlzdHJhJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGNvbiB0YWJlbGxlLCBUaXRvbG8gaW4gdGVzdGEnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZGEgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnU2lldGUgc2ljdXJpIGRpIHZvbGVyIHNvdnJhc2NyaXZlcmUgaWwgdm9zdHJvIE1vZGVsbG8gY29uIHF1ZWxsbyBzZWxlemlvbmF0bz8gKEFuY2hlIGRpY2VuZG8gUyZpZ3JhdmU7LCBkb3ZldGUgc2FsdmFyZSBpbCBjYW1iaWFtZW50byknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdOZXNzdW5hIGluZm9ybWF6aW9uZSBIVFRQX1JFRkVSRVIgdXRpbGl6emFiaWxlIChwcm9iYWJpbG1lbnRlIGRvdnV0YSBhbGwmIzAzOTt1c28gZGVsbGEgVmFsaWRhemlvbmUgRW1haWwgVXRhbnRlKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRXJyb3JlIGRpIHZhbGlkYXppb25lIFBhcmFtZXRyby4gU2kgcHJlZ2EgZGkgY29udHJvbGxhcmUgbCYjMDM5O2VzYXR0ZXp6YSBkZWxsYSBjb3BpYSBkZWxsJiMwMzk7aW5kaXJpenpvIFVSTCBkYWxsYSB2b3N0cmEgZW1haWwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdFcnJvcmUgZGkgdmFsaWRhemlvbmUgbmVsbGEgcmlzcG9zdGEuIFNpIHByZWdhIGRpIGNvbnRyb2xsYXJlIGwmIzAzOTtlc2F0dGV6emEgZGVsbGEgY29waWEgZGVsbCYjMDM5O2luZGlyaXp6byBVUkwgZGFsbGEgdm9zdHJhIGVtYWlsISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRXJyb3JlIGRpIHZhbGlkYXppb25lIG5lbGxhIHJpc3Bvc3RhLiBOZXNzdW4gY2FtcG8gZW1haWwgdmFsaWRhdG8gaW4gcXVlc3RvIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZ2dpdW5nZXJlLCBtb2RpZmljYXJlIGUgZ2VzdGlyZSBmb3JtIGludGVyYXR0aXZpJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoKywgLSwgKiwgLyknOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnR2VubmFpbyc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmViYnJhaW8nOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnpvJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbGUnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWdnaW8nOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnR2l1Z25vJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0x1Z2xpbyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NldHRlbWJyZSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPdHRvYnJlJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJyZSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGljZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NwaWFjZW50ZSEgQyYjMDM5OyZlZ3JhdmU7IHN0YXRvIHVuIGVycm9yZSBuZWxsJiMwMzk7aW52aW8gZGVsIGZvcm0uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIGVycm9yZSBkaSBpbnZpbzogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yZSBuZWwgZmlsZSBwYXNzYXRvIGFsIG1vZHVsbyBVcGxvYWRzOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdOb24gdHJvdm8gaWwgbW9kdWxvIFVwbG9hZHMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0Vycm9yZSBuZWwgVXBsb2FkL0FsbGVnYXRvIHN1bCBmaWxlICVzICh0bXBfbmFtZTogJXMsIGRpIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3JlLiBOb24gcmllc2NvIGFkIG90dGVuZXJlIHVuIGxvY2sgcGVyIGlsIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxiciAvPk1vZGVsbG8gcGVyIEVtYWlsIG5vbiBhbmNvcmEgc2V0dGF0byEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IG5vbiBwb3NzbyB0cm92YXJlIGlsIG1vZHVsbyByaWNoaWVzdG8gQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05vbWUgRm9ybSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIEZvcm0gcGVyIG9wZXJhemlvbmkgaW50ZXJuZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPkVzc2VyZSBzaWN1cmkgZGkgc2V0dGFyZSBpIHBlcm1lc3NpICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXIgZ2xpIHV0ZW50aSBjaGUgYW1taW5pc3RyYW5vIGkgZm9ybXMuIFNlIHZvbGV0ZSBlc3NlcmUgYXZ2aXNhdGkgdmlhIGVtYWlsIGRlZ2xpIGluc2VyaW1lbnRpLCBhZ2dpb3JuYXJlIGluIG1hbmllcmEgYXBwcm9wcmlhdGEgbGEgQ29uZmlndXJhemlvbmUuPC9wPg0KPHA+U2kgcHJlZ2EgZGkgcHJlc3RhcmUgYXR0ZW56aW9uZSBjaGUgdW4gZm9ybSBkaSBmZWVkYmFjayBub24gZG92cmViYmUgZXNzZXJlIGF0dGl2byAoY2lvJmVncmF2ZTsgcHViYmxpY28pIG1lbnRyZSBtb2RpZmljYXRlIGlsIGZvcm0uIERvdnJlc3RlIGNyZWFyZSBpbCBmb3JtIGUgcG9pIHBvc2l6aW9uYXJlIGlsIHRhZyBuZWxsYSBwYWdpbmEgcXVhbmRvIHRlcm1pbmF0by4gQWx0cmltZW50aSBwb3Nzb25vIHRvcm5hcmUgZGVpIHJpc3VsdGF0aSBlcnJhdGkuPC9wPg0KPHA+SW4gYWdnaXVudGEsIHF1ZXN0YSB2ZXJzaW9uZSBub24gc3VwcG9ydGEgbGUgbW9kaWZpY2hlIGluIHBhcmFsbGVsbyBkZWkgZm9ybXMuIFNpIHByZWdhIHF1aW5kaSBjaGUgc29sbyB1biBhZG1pbiBhbGxhIHZvbHRhIG1vZGlmaWNoaSB1biBkYXRvIGZvcm0uPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuDQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPg0KPHByZT4NCgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8NCglmb3JtIHttYXJnaW4tdG9wOjB9DQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0NCglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQ0KCWZpZWxkc2V0IGRpdiB7DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbTsNCgl9DQoJZmllbGRzZXQgZGl2IGRpdiB7DQoJCW1hcmdpbi10b3A6MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbQ0KCX0NCglmaWVsZHNldCB7DQoJCW1hcmdpbi1ib3R0b206MWVtOw0KCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7DQoJCXBhZGRpbmc6MC41ZW0NCgl9DQoJZmllbGRzZXQgbGFiZWwgew0KCQl3aWR0aDphdXRvOw0KCX0NCglsZWdlbmQgew0KCQljb2xvcjojRkZGOw0KCQliYWNrZ3JvdW5kOiNGNjA7DQoJCWZvbnQtc3R5bGU6aXRhbGljOw0KCQlmb250LXNpemU6MS4yZW07DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCXBhZGRpbmc6MC4yZW07DQoJCXdpZHRoOmF1dG87DQoJCWJvcmRlcjoxcHggc29saWQgI0NDQw0KCX0NCgl0ZXh0YXJlYSB7DQoJCW1hcmdpbjogMC41ZW0gMDsNCgkJd2lkdGg6OTglOw0KCQloZWlnaHQ6IDZlbQ0KCX0NCg0KCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMNCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8NCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19DQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwNCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODA3MTUxNjQwLjExODI5NjA0NTYuMTIwODk4NDY4Ni4xMjA5MDI0NDk4LjQ2Nic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMDg5ODQ2ODYuNDY1LjM3LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywyMDM5NC4zMC5odG1sfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0xhdWtlbGlvIHRpcGFzIG5lbnVzdGF0eXRhcyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IHBhYmFpZ2EnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IHByYWR6aWEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHQgQXJlYSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTXVsdGlzZWxlY3QnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnSkFWIHZhbHN0aWrFsyBwYXNpcmlua2ltYXMnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICcmU2Nhcm9uO2FsaWVzIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG9zIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ0xhaWtvIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0J5bG9zIGF0c2l1bnRpbWFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBBZHJlc2FzJnF1b3Q7IGxhdWtlbGlzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBWYXJkYXMmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aW7ElyBudW9yb2RhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTnVvcm9kYSAoxK52ZWRhIGxhbmt5dG9qYXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdIaWRkZW4gRmllbGQnOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnTm8gVmFsaWRhdGlvbic7CiRsYW5nWyd2YWxpZGF0aW9uX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRWwgcGEmc2Nhcm9uO3RvIGFkcmVzYXMnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnVHVyaSBixat0IHBhxb55bcSXdGFzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnUHJhJnNjYXJvbjtvbWUgxK92ZXN0aSAgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJhJnNjYXJvbjtvbWUgxK92ZXN0aSBza2FpxI1pxbMgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUHJhJnNjYXJvbjtvbWUgxK92ZXN0aSBnYWxpb2phbsSNacSFIHJlaWsmc2Nhcm9uO23EmSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIGdhbGlvamFudMSvIGVsIHBhJnNjYXJvbjt0byBhZHJlc8SFJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmVwYW5hJnNjYXJvbjt1cyDEryBnYWxpb2phbnTEryBlbCBwYSZzY2Fyb247dG8gYWRyZXPEhSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgbmVkYXVnaWF1IGthaXAgICVzIHNpbWJvbGnFsyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdMYXVrZWxpxbMgdHZhcmthIGF0bmF1amludGEuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm1hIHBhJnNjYXJvbjthbGludGEuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdMYXVrZWxpcyBwYSZzY2Fyb247YWxpbnRhcy4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnTnVzdGF0eW1haSBhdG5hdWppbnRpLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1R1cml0ZSBwYcW+eW3El3RpICZxdW90OyVzJnF1b3Q7IGplaSBub3JpdGUgdMSZc3RpJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcy4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuZW51cm9keXRhXSc7CiRsYW5nWydhZGRlZCddID0gJ3ByaWTEl3RhJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdhdG5hdWppbnRhJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQgb3B0aW9ucyBvbiBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ1RhaXAnOwokbGFuZ1snbm8nXSA9ICdOZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfYWRkaXRpb25hbCddID0gJ0Zvcm0gU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RhYmxlbGF5b3V0J10gPSAnVGFibGUtYmFzZWQgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVc2VyIERlZmluZWQgVGFnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Nob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gU3VibWl0IEJ1dHRvbiB0byBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7TmV4dCZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtQcmV2aW91cyZxdW90OyBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkJiMwMzk7cyBuYW1lIG9uIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOdW1iZXIgb2YgTGluZXMgdG8gZGlzcGxheSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfdGl0bGVfcG9zaXRpb24nXSA9ICdGaWVsZCBUaXRsZSBQb3NpdGlvbiAobm9uLUNTUyBMYXlvdXQgb25seSknOwokbGFuZ1sndGl0bGVfdGFibGVfbGF5b3V0X2xlZnQnXSA9ICdUaXRsZSBvbiBMZWZ0JzsKJGxhbmdbJ3RpdGxlX3RhYmxlX2xheW91dF9hYm92ZSddID0gJ1RpdGxlIEFib3ZlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIEhUTUwtRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7PlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhPyc7CiRsYW5nWydkaXNwdHlwZV90YWJsZSddID0gJ1RhYmxlL0NTUyc7CiRsYW5nWydkaXNwdHlwZV9jc3MnXSA9ICdQdXJlIENTUyc7CiRsYW5nWydkaXNwdHlwZV90ZW1wbGF0ZSddID0gJ0N1c3RvbSBUZW1wbGF0ZSc7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+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+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPHVsPjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4wLXN2biBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgYSBmYWlybHkgZWFybHkgdmVyc2lvbiwgaWYgbm90IGEgcmFuayBiZXRhIHJlbGVhc2UsIGFuZCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIAkJCSAgPGxpPlZlcnNpb24gMC4yLjQNCgkJCQkJCQkJPHA+QmlnIHJlbGVhc2U6DQoJCQkJCQkJCUFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLg0KCQkJCQkJCQlBZGRlZCAmcXVvdDtUaW1lUGlja2VyJnF1b3Q7IGZpZWxkIHR5cGUuIFNwbGl0ICZxdW90O0xpbmsmcXVvdDsgZmllbGQgaW50byBhICZxdW90O1VzZXItc3VwcGxpZWQgTGluayZxdW90OyBmaWVsZCBhbmQgYSAmcXVvdDtTdGF0aWMgTGluayZxdW90OyBmaWVsZC4NCgkJCQkJCQkJQWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLg0KCQkJCQkJCQlBZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLg0KCQkJCQkJCQlBZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuDQoJCQkJCQkJCTwvcD4NCgkJCQkJCSAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjMNCiAgICAgICAgICAgICAgICAgICAgICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjINCiAgICAgICAgICAgICAgICAgICAgICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KCQkgICAgPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KCQkgICAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQoJCSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjExNzc3NDIzODAuMi4yLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocC90b3BpYywxMTcwOS4wLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTA5ODc2MzE1MC4xMTc3MTYxNjk1LjExNzcxNjE2OTUuMTE3Nzc0MjM4MC4yJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYSBCeWdnZXInOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWx0dHlwZSBpa2tlIHNhdHQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ0ZlbHRncnVwcGUgU2x1dHQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnRmVsdGdydXBwZSBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1Rla3N0IGlubnNrcml2aW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1Rla3N0IGlubnNrcml2aW5nIChGbGVyZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3RvbXImYXJpbmc7ZGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQXZrcnlzbmluZ3Nib2tzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQXZrcnlzbmluZ3Nib2tzIGdydXBwZSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnQW1lcmlrYW5zayBzdGF0IHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLYW5hZGlzayBwcm92aW5zIHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmQgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0byB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaWRzLXZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlva25hcHAgZ3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypTZW5kZSByZXN1bHRhdGVyIHZpYSBlcG9zdCBiYXNlcnQgcCZhcmluZzsgTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypMYWdyZSByZXN1bHRhdGV0IHRpbCBmaWwgQmFzZXJ0IHAmYXJpbmc7IG5lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypMYWdyZSByZXN1bHRhdGV0IHRpbCBmaWwoZXIpIEJBc2VydCBwJmFyaW5nOyBGbGVyZSBWYWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypPbWRpcmlnZXIgdGlsIFNpZGUgQmFzZXJ0IHAmYXJpbmc7IE5lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypTZW5kZSByZXN1bHRhdGVyIHZpYSBlcG9zdCB0aWwgYmVzdGVtdGUgYWRyZXNzZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkZXJpbmctbWVkLWVwb3N0YWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdGVyIHRpbCBmbGF0IGZpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqTGFncmUgcmVzdWx0YXRlciBpIGRhdGFiYXNlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqTGFncmUgcmVzdWx0YXRlciBmb3IgRm9ybUJyb3dzZXIgbW9kdWxlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypLYWxsIG9wcCBlbiBCcnVrZXJkZWZpbmVydCBUYWdnIG1lZCBza2plbWEgcmVzdWx0YXRlbmUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVwb3N0IHRpbCBCcnVrZXItT3BwZ2l0dCBFcG9zdGFkcmVzc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVwb3N0IHRpbCBDTVMgQWRtaW4gYnJ1a2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkZXNraWZ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsIG9wcGxhc3RpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFcG9zdCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RnJhIG5hdm4mcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0Vwb3N0ICZxdW90O0VtbmUmcXVvdDsgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aXNrIHRla3N0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbGVua2UnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMZW5rZSAoQnJ1a2VyLW9wcGdpdHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctU2tqdWx0IEZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUJlcmVnbmV0IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5payBJbnRlZ2VyIChTZXJpZWxsKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdJbmdlbiB2YWxpZGVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVnZXIgJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0Vwb3N0YWRyZXNzZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZm9ubnVtbWVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTSZhcmluZzsgYXZrcnlzc2VzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTYW1zdmFyZXIgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnU2Ftc3ZhcmVyIGlra2UgbWVkIHZhbmxpZyB1dHRyeWtrJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdFbiB2ZXJkaSBlciBpa2tlIG9wcGdpdHQgZm9yIGV0ICYjMDM5O24mb3NsYXNoO2R2ZW5kaWcmIzAzOTstZmVsdCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZXQgdGFsbCBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiBneWxkaWcgdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnVmVubmxnaXN0IHNrcml2IGlubiBlbiBpbnRlZ2VyIHZlcmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyBlcG9zdGFkcmVzc2UgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnVmVubmxpZ3N0IG9wcGdpIGV0IGd5bGRpZyBVUyB0ZWxlZm9ubnVtbWVyIGZvciZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IHNlciBpa2tlIHV0IHRpbCAmYXJpbmc7IHYmYWVsaWc7cmUgZW4gZ3lsZGlnIGVwb3N0YWRyZXNzZSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1Zlbm5saWdzdCBvcHBnaSBlbiB2ZXJkaSBzb20gaWtrZSBlciBsZW5ncmUgZW5uICVzIGJva3N0YXZlcic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gJmFyaW5nOyBicnVrZSBzb20gYXZkZWxlciBpIHJlc3VsdGF0ZXIgc29tIGhhciBmbGVyZSB2ZXJkaWVyJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEdSB0cmVuZ2VyICZxdW90OyVzJnF1b3Q7IHJldHRpZ2hldGVuIGZvciBrdW5uZSB1dGYmb3NsYXNoO3JlIGRlbiBoYW5kbGluZ2VuLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ0Jla2xhZ2VyISBEdSBoYXIgaWtrZSBub2sgcmV0dGlnaGV0ZXIgZm9yICZhcmluZzsgZiZhcmluZzsgYWRnYW5nIHRpbCBkZW4gYXZkZWxpbmdlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZlbHQgcmVra2VmJm9zbGFzaDtsZ2Ugb3BwZGF0ZXJ0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdTa2plbWEgc2xldHRldC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZlbHQgc2xldHRldCc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmFzam9uIG9wcGRhdGVydC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEdSBtJmFyaW5nOyBrcnlzc2UgYXYgJnF1b3Q7JXMmcXVvdDsgZm9yICZhcmluZzsgZm9ydHNldHRlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRHUgbSZhcmluZzsgb3BwZ2kgaSBkZXQgbWluc3RlIGVuIG0mYXJpbmc7bC1hZHJlc3NlISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBza2plbWFldCAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIGZlbHRldCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQXZhbnNlcnRlIHZhbGcgZXIgaWtrZSB0aWxnamVuZ2VsaWcgZiZvc2xhc2g7ciBmZWx0LXR5cGUgaGFyIGJsaXR0IHNhdHQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdCBuYXZuZXQgJnF1b3Q7JXMmcXVvdDsgZXIgYWxsZXJlZGUgaSBicnVrLiBWZW5ubGlnc3QgYnJ1ayB1bmlrZSBmZWx0bmF2biwgZWxsZXIgc2wmYXJpbmc7IGF2IGtyYXZldCB0aWwgdW5pa2UgZmVsdG5hdm4gaSBTa2plbWFieWdnZXIga29uZmlndXJhc2pvbmVuLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmVsdGVyIE0mQXJpbmc7IG5hdm5lcywgb20gZHUgZGEgaWtrZSBzbCZhcmluZztyIGF2IGRldHRlIGkgRm9ybSBCdWlsZGVyIGtvbmZpZ3VyYXNqb25lbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW5nZGU6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm9rc2VyJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyB2YWxnJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgYm9rc3RhdmVyJzsKJGxhbmdbJ29yZGVyJ10gPSAnUmVra2VmJm9zbGFzaDtsZ2UnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdXNwZXNpZmlzZXJ0XSc7CiRsYW5nWydhZGRlZCddID0gJ0xhZ3QgdGlsJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdPcHBkYXRlcnQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydGVyaW5nc211bGlnaGV0ZXIgZm9yIHV0ZGF0YSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVmVsZyBlbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1ZlbGcgdHlwZSc7CiRsYW5nWyd0byddID0gJ1RpbCc7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnbW90dGFrZXJlJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBtdWxpZ2UgZmlsZXInOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBtJmFyaW5nO2wnOwokbGFuZ1snc2F2ZSddID0gJ0xhZ3JlJzsKJGxhbmdbJ2FkZCddID0gJ0xhZ2cgdGlsJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ09wcGRhdGVyJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnTGFncmUgb2cgZm9ydHNldHQgcmVkaWdlcmluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFzam9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2snOwokbGFuZ1snZm9ybXMnXSA9ICdTa2plbWEnOwokbGFuZ1snZm9ybSddID0gJ1NramVtYSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhc2pvbic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnRmVsdCBuJm9zbGFzaDtkdmVuZGlnLXN0YXR1cyBvcHBkYXRlcnQnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWFrcy4gc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0ZpbGVuZGVsc2VyJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdMb3ZsaWdlIGZpbHR5cGVyJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnT3BwbGFzdGV0IGZpbCBlciBmb3Igc3RvciEgTWFrc2ltdW0gc3Qmb3NsYXNoO3JyZWxzZSBlcjonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEZW5uZSB0eXBlIGZpbCB2aWwgaWtrZSBibGkgbGFzdGV0IG9wcC4gVmVubmxpZ3N0IHNqZWtrIGF0IGZpbGVuZGVsc2VuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ0xhc3Qgb3BwJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdTa2plbWEgaW1wb3J0ZXJ0Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdTa2plbWEgaW1wb3J0IGZlaWxldCEgRGV0IG9wcHN0b2QgZXQgcHJvYmxlbSBtZWQgZm9ybWF0dGV0IHAmYXJpbmc7IFhNTCBmaWxlbi4nOwokbGFuZ1sncm93cyddID0gJyVzIHJhZGVyJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2xvbm5lcic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgLXRpbWVycyBrbG9ra2UnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyBrbG9ra2UnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXR0JzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4oQU0vUE0pJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdJbnRlcnZhbGw6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGFrayEgRGluIGlubnNlbmRpbmcgaGFyIGJsaXR0IG1vdHRhdHQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1NsZXR0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25lZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bCBhdmluc3RhbGxlcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsIHZlcnNqb24gJXMgaW5zdGFsbGVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBvcHBncmFkZXJ0IHRpbCB2ZXJzam9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxiYWtlLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTZW5kIHNramVtYSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdGb3J0c2V0dC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQXZrcnlzc2V0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0lra2UgYXZrcnlzc2V0JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSG92ZWQnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ1NramVtYXZpc25pbmdzIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1NramVtYSBpbm5zZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0F2YW5zZXJ0ZSBpbm5zdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ01hbCBsYXlvdXQgdmFsZyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnSW5uc2VuZGluZ3MgbWFsJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlciBlciBneWxkaWdlIGkgZGV0dGUgZmVsdGV0LjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdMZWdnIHRpbCBmbGVyZSB2YWxnJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldHQgbWFya2VydGUgdmFsZyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0xlZ2cgdGlsIGZsZXJlIGF2a3J5c25pbmdzYm9rc2VyJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnU2xldHQgbWFya2VydGUgYXZrcnlzbmluZ3Nib2tzZXInOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdMZWdnIHRpbCBhbm5lbiBhZHJlc3NlJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU2xldHQgbWFya2VydCBhZHJlc3NlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0xlZ2cgdGlsIGFubmV0IG0mYXJpbmc7bCc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTbGV0dCBtYXJrZXJ0ZSBtJmFyaW5nO2wnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGb3IgbWFuZ2UgZXBvc3RlciBlciBibGl0dCBnZW5lcmVydCBmcmEgZGluIElQLWFkcmVzc2UuIEFudGktU3BhbSBrb2RlIGhhciBzdG9wcGV0IGxldmVyaW5nZW4uJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3RlbmtlbGlnIHNwYW0gZnJhIElQICVzIGJsZSBzdG9wcGV0Lic7CiRsYW5nWydyZW9yZGVyJ10gPSAnT21zb3J0ZXIgZmVsdGVyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F2YnJ5dCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWZXJkaSBzYXR0OiAlcyc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdNJmFyaW5nO2xrYXRhbG9nIGZvciB1dHNlbmRpbmcgYXYgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdCcnVrZXJkZWZpbmVydCBUYWdnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRlICZhcmluZzsgcmV0dXJuZXJlIHRpbCBtZWQgb3BwbGFzdGluZ3MgbGVua2VuJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnSW5uc2VuZHQgbWVkIFNramVtYUJ5Z2dlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnT3BwbGFzdGluZ3MgS2F0ZWdvcmknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIGRlbm5lIGZpbGVuIHRpbCBvcHBsYXN0aW5ncyBtb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0ZlbHRncnVwcGV0aXR0ZWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYWtzaW11bSBsZW5nZGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdBdmtyeXNuaW5nc2Jva3MgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlva25hcHAgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmVyZGkgbiZhcmluZztyIGF2a3J5c3NldCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWZXJkaSBuJmFyaW5nO3IgaWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnU2xldHQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1ZlbGcgJmVhY3V0ZTtuJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVXR2YWxnIHZlcmRpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1V0dmFsZyBWaXNuaW5ncyBOYXZuJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnVXR2YWxnIGVtbmUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ1ZhbGcgbmF2bic7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWZXJkaSBzZW5kdCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnTmVkdHJla2tzIHZhbGcnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ0ZsZXJ2YWxnIHZhbGcnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ00mYXJpbmc7bCBlcG9zdGFkcmVzc2UnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdNJmFyaW5nO2wgRmlsbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcmEgbmF2biZxdW90OyBmb3IgZXBvc3QnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0JydWsgZW5rZWwgZXBvc3QgdmVyaWZpc2VyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0JydWsgZW5rZWwgZXBvc3RhZHJlc3NlIHZlcmlmaXNlcmluZyAoZi5la3MuIHRpbGxhdCAmcXVvdDt4QHkmcXVvdDsgaXN0ZWRldCBmb3IgJmFyaW5nOyBrcmV2ZSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmb3IgZXBvc3QnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFcG9zdCB0ZWduc2V0dCBrb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ05lZHRyZWtrLWJhc2VydGUgZXBvc3QgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRXBvc3QgRW1uZSBsaW5qZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGcmEgbmF2bic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1NramVtYSBzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdGZXJkaWcgZm9yIGFudmVuZGVsc2UnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0lra2UgZmVyZGlnJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTaWRlICZhcmluZzsgdmlkZXJlc2VuZGUgdGlsIGV0dGVyIHNramVtYSBzZW5kdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnVmVubmxpZ3N0IGxlZ2cgdGlsIGV0IGZlbHQgdGlsIHNramVtYWV0IHMmYXJpbmc7IGJydWtlcmVucyBpbm5za3JpdmluZyBibGlyIGJlaGFuZGxldC4gRHUga2FuICc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2JydWsgZGVubmUgc25hcnZlaWVuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdTa2plbWEgYWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdTa2plbWFmZWx0ZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsdCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1ZpcyBmZWx0IGFsaWFzZXInOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJyZBcmluZzsgdmVsZ2UgZGV0dGUgdmlsIHZpc2UgZmVsdCBhbGlhc2VyIG4mYXJpbmc7ciBlbiBsZWdnZXIgdGlsIGVsbGVyIHJlZGlnZXJlciBldCBza2plbWEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbHQgbmF2bic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZlbHQgYWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZlbHQgdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnZm9yICZhcmluZzsgbGFnZSBldCBza2plbWEgYmVoYW5kbGluZyBmZWx0JzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xlZ2cgdGlsIG55dHQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZpcyBTa2plbWEgQnlnZ2VyIHZlcnNqb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGlubmthcHNsZSBkaXR0IHZlcnNqb25zbnVtbWVyIGZvciBTa2plbWEgYnlnZ2VyIG1vZHVsZW4gaSBlbiBrb21tZW50YXIsIGZvciAmYXJpbmc7IGhqZWxwZSBpIGZlaWxzJm9zbGFzaDtraW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMZWdnIHRpbCBueXR0IGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O1NlbmQmcXVvdDsgdGVrc3QgZm9yIGtuYXBwJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTGVnZyB0aWwgZXR0IEphdmFzY3JpcHQgdGlsIFV0ZiZvc2xhc2g7ciBrbmFwcGVuIGZvciAmYXJpbmc7IHVubmcmYXJpbmc7IGdqZW50YXR0ZSBpbm5zZW5kaW5nZXI/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdMZWdnIHRpbCBTaWtrZXJoZXRzIHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O05lc3RlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1NramVtYSAmcXVvdDtGb3JyaWdlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbHRzamVrayc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBrbGFzc2UgZm9yIGRldHRlIHNramVtYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIGZvciAmYXJpbmc7IG1lcmtlIG4mb3NsYXNoO2R2ZW5kaWdlIGZlbHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdOJm9zbGFzaDtkdmVuZGlnJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdLcmV2IGVuIHJlc3BvbnMgZm9yIGRldHRlIGZlbHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1NranVsIGV0aWtldHQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnU2tqdWwgZGV0dGUgZmVsdGV0cyBuYXZuIHAmYXJpbmc7IHNramVtYWV0JzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNrIHRla3N0ICZhcmluZzsgdmlzZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJyhSZWdleCkgc2pla2snOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FudGFsbCBsaW5qZXIgJmFyaW5nOyB2aXNlJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdJbmdlbiBzdGFuZGFyZCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NpZGUgJmFyaW5nOyB2aWRlcmVzZW5kZSB0aWwgZXR0ZXIgZ29ka2plbm5pbmcnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRlIHZhbmxpZ2UgdXR0cnlra2V0IHZpbCBiYXJlIGJsaSBicnVrdCBvbSAmcXVvdDt2YWxpZGVyaW5ncyB0eXBlJnF1b3Q7IGVyIHNhdHQgdGlsIHJlZ2V4LXJlbGF0ZXJ0IHZhbGcuIElua2x1ZGVyIGZ1bGwgUGVybC1zdGlsIHJlZ2V4LCBpbmtsdWRlcnQgc3RhcnQvc3RvcHAgc2xhc2hlciBvZyBmbGFnZyAoZi5la3MuICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnT2JsaWcuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnU2tqdWwgZmVpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnU2tqZW1hIHZpc25pbmdzIHR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0hpbmRyZSBmZWlscyZvc2xhc2g7a2luZyAvIGZlaWwtbWVsZGluZ2VyIGZyYSAmYXJpbmc7IHZpc2VzIHRpbCBicnVrZXJlbi4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFcG9zdCBtYWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWFrc2ltdW0gb3BwbGFzdGluZyBmaWxzdCZvc2xhc2g7cnJlbHNlIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGVubmUgYmVncmVuc25pbmcgZXIgZXQgdGlsbGVnZyB0aWwgZW5odmVyIGdyZW5zZSBzYXR0IGF2IHBocCBlbGxlciB3ZWJzZXJ2ZXIga29uZmlndXJhc2pvbmVuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnR29ka2plbnRlIGZpbGVuZGVsc2VyJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTa3JpdiBlbiBrb21tYS1zZXBhcmVydCBsaXN0ZSwgdXRlbGF0dCBwdW5rdHVtIChmLmVrcy4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTWVsbG9tcm9tIHZpbCBibGkgaWdub3JlcnQuICZBcmluZzsgbGEgZGV0dGUgdiZhZWxpZztyZSB0b210IHZpbCBzaSBpbmdlbiByZXN0cmlrc2pvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzIHJlc3RyaWtzam9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1ZpcyBzdCZvc2xhc2g7cnJlbHNlIGVsbGVyIGZpbGVuZGVsc2UtcmVzdHJpa3Nqb25lciBwJmFyaW5nOyBvcHBsYXN0aW5nc2ZlbHRldD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ01hbCAmYXJpbmc7IGJydWtlIGZvciAmYXJpbmc7IHZpc2Ugc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2lkZSAlcyBhdiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmVsdGV0IGhhciBpbmdlbiBhdmFuc2VydGUgdmFsZy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1Rla3N0ICZhcmluZzsgdmlzZSBmb3IgdXNwZXNpZmlzZXJ0ZSBmZWx0IHZlcmRpZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ011bGlnZ2omb3NsYXNoO3IgcmFzayBmZWx0LXRpbGxlZ2dpbmcgbWVkIG5lZHRyZWtrIGZvciBza2plbWFlcj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdNdWxpZ2dqJm9zbGFzaDtyIG5lZHRyZWtrIGZvciBodXJ0aWcgdGlsbGVnZ2luZyBhdiBmZWx0ZXI/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdIdXJ0aWctdGlsbGVnZyBhdiBmZWx0ZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICcmQXJpbmc7IGhha2UgYXYgZGV0dGUgdmlsIGt1biB0aWxsYXRlIDEwIGVwb3N0ZXIgJmFyaW5nOyBibGlyIGdlbmVyZXJ0IGZyYSBlbiBnaXR0IElQIGFkcmVzc2UgKHByIHRpbWUpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdTbCZhcmluZzsgcCZhcmluZzsgcHJpbWl0aXZlIGFudGlzcGFtIGVnZW5za2FwZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdWaXMgRmVsdCBJRGVyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJyZBcmluZzsgaGFrZSBhdiBkZXR0ZSB2aWwgdGlsbGF0ZSB2aXNuaW5nIGF2IGZlbHQgaWRlciB1bmRlciBvcHByZXR0ZWxzZSBlbGxlciByZWRpZ2VyaW5nIGF2IGV0IHNramVtYSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnTGFzdCBvcHAgc2tqZW1hIHNvbSBYTUwgZmlsJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdCZW55dHQgZGV0dGUgc2tqZW1hbmF2bmV0JzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgU2tqZW1hIGltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0Jlbnl0dCBkZXR0ZSBza2plbWEgYWxpYXNldCc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlciBIVE1MIGVwb3N0Pyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z5bGwgdXQgYXV0b21hdGlzaz8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0Z5bGwgdXQgYXV0b21hdGlzayBtZWQgVVJMJiMwMzk7ZW4gdGlsIHNpZGVuIHNvbSBpbm5laG9sZGVyIHNramVtYWV0PyAoZGV0dGUgb3ZlcnN0eXJlciBMZW5rZSB0aWwgbmV0dHN0ZWQgc2lkZSB2YWxnZXQgbmVkZW5mb3IpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkIGxlbmtlIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFyZCBsZW5rZSB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGVua2UgdGlsIG5ldHRzdGVkIHNpZGUnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnRHUga2FuIGJlbnl0dGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IGZvciAmYXJpbmc7IGJlc2t5dHRlIHNramVtYSBpbm5zZW5kaW5nZXIgb20gZHUgaW5zdGFsbGVyZXIgQ2FwdGNoYSBtb2R1bGVuLiBGb3IgbWVyZSBpbmZvcm1hc2pvbiwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0JydWtlIENhcHRjaGEgZm9yICZhcmluZzsgYmVza3l0dGUgc2tqZW1hIGlubnNlbmRpbmdlcj8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0hhayBhdiBoZXIgZm9yICZhcmluZzsgYmVza3l0dGUgZGl0dCBza2plbWEgbWVkIGVuIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVmVubmxpZ3N0IGJla3JlZnQgYXQgZHUgaWtrZSBlciBldCBza3JpcHQgdmVkICZhcmluZzsgc2tyaXZlIGlubiBib2tzdGF2ZW5lIGZyYSBiaWxkZXQuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZlaWxldCB0ZWtzdCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB0ZWtzdGVuIGJsZSBpa2tlIGtvcnJla3QgaW5uc2tyZXZldC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGplbHBldGVrc3QgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnSWtrZSBzZW5kIHZlcmRpZXIgZm9yIGlra2UtYXZrcnlzc2VkZSBib2tzZXInOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdIYWsgYXYgZGVubmUgb20gZHUga3VuIHZpbCBhdCBhdmtyeXNzZWRlIGJva3NlciBza2FsIGdpIHZlcmRpZXIuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMZW5rZSBldGlrZXR0JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMZW5rZSBtJmFyaW5nO2wgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQXZrcnlzc2V0IHNvbSBzdGFuZGFyZD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0Jlbnl0dCAyNC10aW1lcnMga2xva2tlPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNICc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0gJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvc2Vzc2VyIHNtYXJ0eSB0YWdnZXIgaW5uaSBmZWx0ZXI/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSYWRlciAobWVyazogZGV0dGUga2FuIGJsaSBvdmVyc3R5cnQgYXYgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnS29sb25uZXIgKG1lcms6IGRldHRlIGthbiBibGkgb3ZlcnN0eXJ0IGF2IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnSG92ZWQgU2tqZW1hIERldGFsamVyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdWaXMgSW5ubG9nZ2luZ3NuYXZuKGxvZ2luIG5hbWUpIGkgdGlsbGVnZyB0aWwgZm9ybmF2bi9ldHRlcm5hdm4gKEZpcnN0IE5hbWUvTGFzdCBOYW1lKT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnVmlzIGJydWtlcmVucyBmb3JuYXZuPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ1ZpcyBicnVrZXJlbnMgZXR0ZXJuYXZuPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0JlZ3JlbnMgYnJ1a2VybGlzdGVuIHRpbCBicnVrZXJlIGkgc3Blc2lmaWsgZ3J1cHBlJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdLdW4gaSBncnVwcGUgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVmlzIHRpbCBicnVrZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0RldHRlIGZlbHRldCBrYW4gZHUgbGEgdiZhZWxpZztyZSBibGFua3QnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVyIGZvciBtYWwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVGlsZ2plbmdlbGlnZSB2YXJpYWJsZXInOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJlbCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGlubmxldmVyaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkcmVzc2UgdGlsIHBlcnNvbmVuIHNvbSBicnVrZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnTGluayB0aWwgc2lkZW4gc29tIGlubmVob2xkZXIgc2tqZW1hZXQnOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2pvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYnVsYXIgdGVnbic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVuYXRpdmUgZmVsdG5hdm4ga2FuIGJlbnl0dGVzIHV0Ynl0dGJhcnQgKHNwZXNpZWx0IG55dHRpZyBvbSBTbWFydHkgcHJvdGVzdGVyZXIgcCZhcmluZzsgYm9rc3RhdmVyIHV0ZW5mb3IgQVNDSUkgMzItMTI2KS4gPGJyIC8+QW5kcmUgZmVsdCB2aWwgYmxpIHRpbGdqZW5nZWxpZ2UgbiZhcmluZztyIGR1IGxlZ2dlciBkZW0gdGlsIHNramVtYWV0Lic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2UgPGEgaHJlZj0mIzAzOTtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJiMwMzk7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGVyaW5ncyBoamVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFiZWwnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmVsdCByZXByZXNlbnRlcnQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFRpbGJha2UgdGlsIHNramVtYSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnTGFnIGVrc2VtcGVsbWFsJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ09wcHJldHQgRWtzZW1wZWwgSFRNTC1lcG9zdCBtYWwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdMYWcgZWtzZW1wZWwgb3ZlcnNrcmlmdCc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdldCB0YWJ1bGF0b3IgdGVnbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnTWFsIGZvciAmZWFjdXRlO24gbGluamUgYXYgdXRkYXRhIGZpbGVuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnTWFsIGZvciBvdmVyc2tyaWZ0ZW4gcCZhcmluZzsgdXRkYXRhIGZpbGVuJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdMaW5rICZhcmluZzsga2xpa2tlIGZvciBza2plbWEgYmVrcmVmdGVsc2UnOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWZXJkaSAoc2UgQXZhbnNlcnQgZmxpa2VuIG9tIGR1IGJlbnl0dGVyIFNtYXJ0eSB0YWdnZXIpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0byBmb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdCcnVrZSBXWVNJV1lHIHJlZGlnZXJlciBmb3IgdGVrc3Qgb21yJmFyaW5nO2RldD8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdPcHBmJm9zbGFzaDtyc2VsIGZvciBTa2plbWEgSW5uc2VuZGluZyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnRXRpa2V0dCBmb3IgSW5uc2VuZGluZ3NrbmFwcGVuJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGVyYmFydCBmZWx0ICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0Rlbm5lIHNpZGVuIGxhciBkZWcgdGlscGFzc2UgU2tqZW1hIElubnNlbmRpbmcuIERldCBiZXN0ZW1tZXIgaWtrZSBodmEgU2tqZW1hIEJ5Z2dlciBnaiZvc2xhc2g7ciBtZWQgZGUgaW5uc2VuZHRlIGRhdGEuIERldHRlIGthbiBkdSBzZXR0ZSBvcHAgdmVkICZhcmluZzsgbGVnZ2UgdGlsICZxdW90O0Rpc3Bvc2lzam9uJnF1b3Q7KGdlbXl0dCkgZmVsdGVyIHRpbCBkaXR0IHNramVtYS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJyZBcmluZztyc2ludGVydmFsbCBzbHV0dCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFyZCAmYXJpbmc7cic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXR0IHRpbCAtMSBmb3IgYXQgc3RhbmRhcmQgJmFyaW5nO3Igc2thbCBibGkgbiZhcmluZzt2JmFlbGlnO3JlbmRlICZhcmluZztyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnRXR0ZXIgc2tqZW1hZXQgZXIgc2VuZHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9ucyBzb20gc2thbCB2aXNlcyc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdWaXMgJnF1b3Q7SW5uc2VuZGluZ3MgbWFsJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdPbWRpcmlnZXIgdGlsIG5ldHRzaWRlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGVubmUgbWFsZW4gZXIgZm9yIGRldCBzb20gc2thbCB2aXNlcyB0aWwgYnJ1a2VyZW4gZXR0ZXIgZXQgc2tqZW1hIGVyIGlubnNlbmR0LiBEZW5uZSBtYWxlbiBoYXIgaW5nZW4gdmlya25pbmcgcCZhcmluZzsgZXBvc3Qgc29tIGdlbmVyZXJlcyBlbGxlciBhbmRyZSBza2plbWFnZW15dHRlciAgLS0gZHUgc2V0dGVyIGRlIG1hbGVuZSAoaHZvciBkZXQgZXIgcmVsZXZhbnQpIGkgJnF1b3Q7YXZhbnNlcnQmcXVvdDsgZmxpa2VuIHAmYXJpbmc7IGRpc3NlIGdlbXl0dGVuZXMgZmVsdGVyLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnTSZhcmluZztsIFNpZGUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnS3JldiBGZWx0bmF2bic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ0tyZXYgYXQgZmVsdGVyIHNrYWwgaGEgZXR0IG5hdm4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnS3JldiB1bmlrZSBmZWxuYXZuJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdLcmV2IGF0IGZlbHRlciBza2FsIGhhIHVuaWtlIGZlbHRuYXZuPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdPbXNvcnRlciBmZWx0ZXInOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xhc3QgbWFsJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0xlZ2cgdGlsIEtuYXBwIHRla3N0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1NsZXR0IEtuYXBwIHRla3N0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ZvcnRvbGsgdmFyaWFibGVyIHRpbCAmYXJpbmc7IHYmYWVsaWc7cmUgbnVtbWVyIGVsbGVyIHN0cmVuZ2VyJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnVG9sa25pbmdzcmVra2VyZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdPbSBtZXIgZW5uIGV0IEJlcmVnbmV0IGZlbHQgZWtzaXN0ZXJlciwgdmlsIGRlIGJsaSBiZXJlZ25ldCBmcmEgZGV0IGxhdmVzdGUgcmVra2VmJm9zbGFzaDtsZ2VudW1tZXJldCB0aWwgZGV0IGgmb3NsYXNoO3llc3RlIHJla2tlZiZvc2xhc2g7bGdlbnVtbWVyZXQnOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZlcmRpICZhcmluZzsgYmVyZWduZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJlbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bW1lcmlzayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1ZpcyBza2plbWEgaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnTWVkIElubGluZSBtZW5lcyBhdCBlbmh2ZXIgdmlkZXJlZiZvc2xhc2g7cmluZyBlcnN0YXR0ZXIge2Ntc19tb2R1bGV9IHRhZ2dlbiwgbm9uLWlubGluZSBlcnN0YXR0ZXIge2NvbnRlbnR9IHRhZ2dlbi4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1N0YW5kYXJkIHZlcmRpIGZvciBmZWx0JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICd0Jm9zbGFzaDttIHN0YW5kYXJkIHZlZCBrbGlraz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnSGFrIGF2IGRlbm5lIG9tIGR1IHZpbCBhdCBzdGFuZGFyZCB2ZXJkaSBza2FsIGZqZXJuZXMgbiZhcmluZztyIGJydWtlcmVuIGtsaWtrZXIgaSBkZXR0ZSBmZWx0ZXQuIFNpZGVuIGRldHRlIGJlbnl0dGVyIGVuIGphdmFza3JpcHQgc3RyaW5nIHNhbW1lbmxpZ25pbmcgdmlsIGRldHRlIGZlaWxlIG9tIGR1IHNldHRlciBlbmtsZSBhbmYmb3NsYXNoO3JzZWxzdGVnbiBpIGRpbiBzdGFuZGFyZHRla3N0LiBBbmRyZSBpa2tlLWphdmFza3JpcHQgZWduZWRlIHRlZ24ga2FuIG9ncyZhcmluZzsgZiZhcmluZzsgZGV0dGUgdGlsICZhcmluZzsgZmVpbGUuJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFyZCBtYWwnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsbCBtYWwsIEV0aWtldHQgdGlsIHZlbnN0cmUnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFiZWxsIG1hbCwgRXRpa2V0dCBvdmVyZm9yJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ01hbCBmcmEgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGF0IGR1IHZpbCBvdmVyc2tyaXZlIGRpbiBtYWwgbWVkIGRlbiB2YWxndGUgbWFsZW4/IChTZWx2IG9tIGR1IHN2YXJlciBPSywgdmlsIGR1IGZvcnRzYXR0IG0mYXJpbmc7dHRlIGxhZ3JlIGVuZHJpbmdlbiknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRmVpbCB1bmRlciBiZXJlZ25pbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdJbmdlbiBIVFRQX1JFRkVSRVIgaW5mb3JtYXNqb24gdGlsZ2plbmdlbGlnJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUGFyYW1ldGVyIGZlaWwuIFZlbm5saWdzdCBzamVrayBhdCBkdSBrb3BpZXJ0ZSBsaW5rZW4gZnJhIGRpbiBlcG9zdCBrb3JyZWt0ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnR3lsZGlnaGV0c3NqZWtrIFJlc3BvbnMgZmVpbC4gVmVubmxpZ3N0IHNqZWtrIGF0IGR1IGtvcGllcnRlIGxpbmtlbiBmcmEgZGluIGVwb3N0IGtvcnJla3QhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUmVzcG9ucyBmZWlsLiBJbmdlbiBlcG9zdC1zamVrayBmZWx0IGkgZGV0dGUgc2tqZW1hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdTa2plbWEgbWFsZW4gYmxlIG9wcGRhdGVydCBhdXRvbWFnaXNrIHNvbSBkZWwgYXYgb3BwZ3JhZGVyaW5nIGZyYSB2ZXJzam9uIDAuMyB0aWwgdmVyc2pvbiAwLjQuIER1IHRyZW5nZXIga2Fuc2tqZSAmYXJpbmc7IGdqJm9zbGFzaDtyZSBub2VuIG1hbnVlbGxlIGZpa3Nlci4gT20gZHUgYmVueXR0ZXIgc3RhbmRhcmRza2plbWFldCwga2FuIGR1IGVua2VsdCBieXR0ZSBkZXQgIG1lZCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHZlZCAmYXJpbmc7IGJlbnl0dGUgbmVkdHJla2ttZW55ZW4gb3ZlbmZvci4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnTGVnZyB0aWwsIHJlZGlnZXIgb2cgaCZhcmluZztuZHRlciBpbnRlcmFrdGl2ZSBza2plbWFlcic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ09tIGR1IGJlbnl0dGVyIFN0cmVuZylTdHJpbmcpIGV2YWx1ZXJpbmcsIGRlbiBlbmVzdGUgb3BlcmFzam9uIHRpbGdqZW5nZWxpZyBlciBrb2JsaW5nICgrKSwgbWVuIG9tIGR1IGJlbnl0dGVyIE51bW1lcihOdW1iZXIpIGV2YWx1ZXJpbmcgcyZhcmluZzsgaGFyIGR1IGRlIGhlbHQgZW5rbGUgbWF0ZW1hdGlza2UgKCwrLCAtLCAqLCAvLCknOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCAnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0ICc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlciAnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXIgJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZXNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnQmVrbGFnZXIhIERldCBza2plZGRlIGVuIGZlaWwgdW5kZXIgYmVoYW5kbGluZyBhdiBkaW4gc2tqZW1hIGlubnNlbmRpbmcuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ1NramVtYUJ5Z2dlciBTZW5kZWZlaWw6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdGZWlsIHZlZCBvdmVyZiZvc2xhc2g7cmluZyBhdiBmaWxhIHRpbCBvcHBsYXN0aW5nc21vZHVsZW46ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0t1bm5lIGlra2UgZmlubmUgT3BwbGFzdGluZ3Ntb2R1bGVuJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdPcHBsYXN0aW5nL1ZlZGxlZ2cgZmVpbCBwJmFyaW5nOyBmaWwgJXMgKHRlbXBfbmF2bjogJXMsIGF2IHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRmVpbC4gVW11bGlnICZhcmluZzsgZXJ2ZXJ2ZSBsJmFyaW5nO3MgZm9yIGZpbGVuLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBpa2tlIGF2aGFrZXQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhcmQ6IGF2aGFrZXQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1NramVtYUJ5Z2dlciBpbm5zZW5kaW5nJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVwb3N0IG1hbCBlbm4mYXJpbmc7ICZhcmluZztpa2tlIGFuZ2l0dCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnU2tqZW1hQnlnZ2VyOiBLYW4gaWtrZSBmaW5uZSBuJm9zbGFzaDtkdmVuZGlnIG1vZHVsIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnQnJ1a2VyIGdvZGtqZW50IHNlbmRpbmcgJXMgZnJhICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibGlyIGlubmxldmVydCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBvbSBkZXQgc2tqZXIgZW4gZmVpbCBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibGlyIGlubmxldmVydCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0hlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJscmkgdmlzdCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+SGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYV9CeWdnZXIgc2tqZW1hIGJsaXIgc2VuZHQuPC9wPg0KPGg0PlBhcmFtZXRlcmU8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFNramVtYSBuYXZuZXQgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBEZW4gaW50ZXJuZSBTa2plbWEgaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV8mYW1wO2x0O25hbWUmYW1wO2d0OzwvZW0+IC0gVGlsZiZvc2xhc2g7ciBlbiBzdGFuZGFyZCB2ZXJkaSB0aWwgZXQgZmVsdCBtZWQgZGV0IG9wZ2l0dGUgbmF2bmV0LjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+SGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBzZW5kdDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEVuIGxpc3RlIG1lZCBhbGxlIGtqZW50ZSBmZWlsIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJscmkgdmlzdDwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgc2tqZW1hIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gQnJ1a3QgYXYgU2tqZW1hVXRmb3Jza2VyKEZvcm1Ccm93c2VyKSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhcmQgZmVsdmVyZGllciAtIHNlIG1vZHVsaGVscCBmb3IgaW5mbyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGZWx0IElEIGZvciBpbnRlcm5lIG9wZXJhc2pvbmVyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdTa2plbWFuYXZuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnU2tqZW1hIElEIGZvciBpbnRlcm5lIG9wZXJhc2pvbmVyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJlbGxlIHBhcmFtZXRyZSBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPkh1c2sgJmFyaW5nOyBzZXR0ZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcmV0dGlnaGV0ZXIgdGlsIGJydWtlcmUgc29tIHNrYWwgYWRtaW5pc3RyZXJlIHRpbGJha2VtZWxkaW5ncy1za2plbWFlci4gT2cgb20gZHUgdmlsIHNlbmRlIHNramVtYSByZXN1bHRhdGVyIHZpYSBlcG9zdCwgaHVzayAmYXJpbmc7IG9wcGRhdGVyIGlubnN0aWxsaW5nZW5lIHRpbHN0cmVra2VsaWcuPC9wPg0KPHA+ViZhZWxpZztyIG9wcG1lcmtzb20gcCZhcmluZzsgYXQgdGlsYmFrZW1lbGRpbmdzIHNramVtYWV0IGlra2Ugc2thbCB2JmFlbGlnO3JlIGFrdGl2dCAoZi5la3MuIHRpbGdqZW5nZWxpZyBmb3IgcHVibGlrdW0pIG4mYXJpbmc7ciBkdSBmb3J0c2F0dCByZWRpZ2VyZXIgc2tqZW1hZXQuIER1IGImb3NsYXNoO3IgbGFnZSBza2plbWFldCwgb2cgcGxhc3NlcmUgdGFnZ2VuIGkgZW4gYWt0aXYgaW5uaG9sZHNpZGUgYmFyZSBuJmFyaW5nO3IgZHUgZXIgZmVyZGlnIG1lZCAmYXJpbmc7IHJlZGlnZXJlLiBFbGxlcnMsIGthbiBmZWlsYWt0aWdlIHJlc3VsdGF0ZXIgYmxpIHJldHVybmVydC48L3A+DQo8cD5PYnMhIERlbm5lIHZlcnNqb25lbiBzdCZvc2xhc2g7dHRlciBpa2tlIHBhcmFsbGVsbCByZWRpZ2VyaW5nIGF2IHNramVtYWVyLiBWJmFlbGlnO3Igc2lra2VyIHAmYXJpbmc7IGF0IGt1biAmZWFjdXRlO24gYWRtaW4gIHJlZGlnZXJlciBldCBnaXR0IHNramVtYSBwJmFyaW5nOyBzYW1tZSB0aWQuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgdHJ5IHJlYWRpbmcgdGhlIGluc3RydWN0aW9ucyBvbiB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDthbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm0mIzAzOTtzIG5hbWUsIHlvdSBlbnRlciB0aGUgRm9ybSBFZGl0IHBhZ2UuIFRoZXJlIGFyZSBzZXZlcmFsIHRhYnMsIHdoaWNoIGFyZSBkZXNjcmliZWQgYmVsb3c6PC9wPg0KPGg0Pk1haW48L2g0Pg0KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UmIzAzOTtsbCB3b3JrIG9uIHlvdXIgZm9ybS4gSGVyZSwgeW91IGdpdmUgaXQgYSBuYW1lLCBhbiBhbGlhcyAod2hpY2ggaXMgdXNlZCB0byBpZGVudGlmeSBpdCBmb3IgcGxhY2luZyBpdCBpbiBhIHBhZ2Ugb3IgdGVtcGxhdGUpLCBhbmQsIG9wdGlvbmFsbHksIGEgQ1NTIGNsYXNzIHdpdGggd2hpY2ggdG8gd3JhcCB0aGUgd2hvbGUgdGhpbmcuPC9wPg0KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlICZxdW90O2Zhc3QgZmllbGQgYWRkZXImcXVvdDsgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIHRhYiBhbGxvd3MgZm9yIG90aGVyIGZvcm0gY3VzdG9taXphdGlvbnMsIGxpa2UgdGhlIHN5bWJvbCB0byBzaG93IGZvciByZXF1aXJlZCBmaWVsZHMuPC9wPg0KPGg0PkNhcHRjaGEgU2V0dGluZ3M8L2g0Pg0KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPg0KPGg0PkZvcm0gVGVtcGxhdGU8L2g0Pg0KPHA+VGhpcyBpcyB3aGVyZSB5b3UgZG8geW91ciBjdXN0b21pemF0aW9uIHdvcmsgb2YgeW91ciBmb3JtJiMwMzk7cyBTbWFydHkgVGVtcGxhdGUuIFNlZSB0aGUgc2VjdGlvbiBjYWxsZWQgRm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXMgYmVsb3cuPC9wPg0KPHA+VGhlIGZvcm0gc2hvdWxkIGRlZmF1bHQgdG8gYSBDdXN0b20gdGVtcGxhdGUgdGhhdCBkb2N1bWVudHMgdGhlIFNtYXJ0eSB0YWdzIGF2YWlsYWJsZSB0byB5b3UuPC9wPg0KPHA+VW5sZXNzIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvbiYjMDM5O3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBTbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoND5TdWJtaXNzaW9uIFRlbXBsYXRlPC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuDQo8L3A+DQoNCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMNCjx1bD48bGk+RW1haWwgRnJvbSBBZGRyZXNzIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIGVtYWlsIGFkZHJlc3MuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBhZGRyZXNzIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAmcXVvdDtGcm9tJnF1b3Q7IGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgU3ViamVjdCBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSBhIHN1YmplY3QgZm9yIHRoZWlyIGVtYWlsLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgaW4gdGhlICZxdW90O1N1YmplY3QmcXVvdDsgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4NCjxsaT4tUGFnZSBCcmVhay4gVGhpcyBhbGxvd3MgeW91IHRvIHNwbGl0IHlvdXIgZmVlZGJhY2sgZm9ybSBpbnRvIG11bHRpcGxlIHBhZ2VzLiBFYWNoIHBhZ2UgaXMNCmluZGVwZW5kZW50bHkgdmFsaWRhdGVkLiBUaGlzIGlzIGdvb2QgZm9yIGFwcGxpY2F0aW9ucyBsaWtlIG9ubGluZSBzdXJ2ZXlzLjwvbGk+DQo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tRmllbGRzZXQgRW5kLiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IFN0YXJ0LCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gZW5kIGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4NCjxsaT4tSGlkZGVuIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBoaWRkZW4gZmllbGQgaW4geW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UmIzAzOTtyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjxsaT4tVW5pcXVlIEludGVnZXIgKFNlcmlhbCkuIFRoaXMgaXMgYW4gaW50ZWdlciB0aGF0IGluY3JlYXNlcyBldmVyeSB0aW1lIHNvbWVvbmUgaGl0cyB5b3VyIGZvcm0uIFlvdXIgcmVzdWx0cyBtYXkgbm90IGJlIHNlcXVlbnRpYWwsIGJ1dCB0aGV5IHdpbGwgaW5jcmVhc2UgbW9ub3RvbmljYWxseS48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy4gVmFsdWVzIGFyZSBwYXNzZWQgYXMgJHBhcmFtWyYjMDM5O2ZpZWxkX25hbWUmIzAzOTtdLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAmcXVvdDtEaXJlY3RvciZxdW90OyBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzLiBUaGlzIHB1dHMgYW4gaW5wdXQgZmllbGQgaW4gdGhlIGZvcm0gZm9yIHRoZSB1c2VyIHRvIHBvcHVsYXRlIHdpdGggYW4gZW1haWwgYWRkcmVzcy4gVGhlIGZvcm0gcmVzdWx0cyBnZXQgc2VudCB0byB0aGF0IGFkZHJlc3MuIEJld2FyZSBvZiBTcGFtIGFidXNlISBBY3RpdmUgdGhlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMgaW4gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gc2NyZWVuLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPg0KPGxpPipSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGFsbG93cyB5b3UgdG8gcmVkaXJlY3QgdGhlIGZvcm0gdG8gYSBkaWZmZXJlbnQgc2l0ZSBwYWdlIGRlcGVuZGluZyBvbiBpdHMgdmFsdWUuIElmIHlvdSBoYXZlIG11bHRpcGxlIGRpc3Bvc2l0aW9ucywgbWFrZSBzdXJlIHRoaXMgaXMgdXNlZCBsYXN0LjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgJnF1b3Q7YXBwcm92ZWQsJnF1b3Q7IGFuZCB0aGUgb3RoZXIgZGlzcG9zaXRpb25zIGFyZSBhbGwgcGVyZm9ybWVkLjwvbGk+DQo8bGk+KldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlLiBUaGlzIHRha2VzIHRoZSBmb3JtIHJlc3VsdHMgYW5kIHdyaXRlcyB0aGVtIGludG8gYSB0ZXh0IGZpbGUuIFlvdSBtYXkNCnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgJnF1b3Q7b3V0cHV0JnF1b3Q7IGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZSYjMDM5O3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUocykgb2YgY2hlY2tib3hlcyAgZGV0ZXJtaW5lcyB3aGljaCBmaWxlKHMpIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qRW1haWwgdG8gQ01TIEFkbWluIFVzZXIuIFByb3ZpZGVzIGEgcHVsbC1kb3duIG9mIENNUyBBZG1pbiB1c2VycywgYW5kIGRpcmVjdHMgdGhlIHJlc3VsdHMgYXMgYW4gZW1haWwgdG8gdGhlIHNlbGVjdGVkIGFkbWluLjwvbGk+DQo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyIGluIHRoZSBuZXh0IHJlbGVhc2UuPC9saT4NCg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICZhbXA7IzEyMzskZmJfaGlkZGVufSBhbmQgJmFtcDsjMTIzOyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgJmFtcDsjMTIzOyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4nOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA0NzU0MzI0LjI0LjMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vc3VwcG9ydHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNjQ0NDc5MC4xMTU0MTc0NzMyLjEyMDg3MjU4ODQuMTIwOTMyODk2MC4zMSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlciAnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWZWxkdHlwZSBuaWV0IGluZ2VzdGVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnVmVsZCBlaW5kZSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICdWZWxkIHN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3RpbnZvZXInOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGVrc3RpbnZvZXIgKG1lZXJkZXJlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnU2VsZWN0aWV2YWsnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdTZWxlY3RpZXZhay1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdLZXV6ZWxpanN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ01lZXJrZXV6ZSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlLWtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmRlbmtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVta2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlqZGtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NlbGVjdGllcm9uZGplcy1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRS1tYWlsIHJlc3VsdGF0ZW4gZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypCZXdhYXIgcmVzdWx0YXRlbiBpbiBlZW4gYmVzdGFuZCBnZWJhc2VlcmQgb3Aga2V1emVsaWpzdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqQmV3YWFyIHJlc3VsdGF0ZW4gaW4gYmVzdGFuZGVuIGdlYmFzZWVyZCBvcCBtZWVyLWtldXplbGlqc3Rlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgbmFhciBwYWdpbmEgZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtbWFpbCByZXN1bHRhdGVuIG5hYXIgaW5nZXN0ZWxkZSBhZHJlcyhzZW4pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGVlci12aWEtZW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY2hyaWpmIHJlc3VsdGF0ZW4gbmFhciBiZXN0YW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypSZXN1bHRhdGVuIG9wc2xhYW4gaW4gZGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlNsYSByZXN1bHRhdGVuIG9wIHZvb3IgRm9ybUJyb3dzZXIgTW9kdWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKlN0YXJ0IGVlbiBnZWJydWlrZXJnZWRlZmluaWVlcmRlIHRhZyBtZXQgZGUgZm9ybXVsaWVycmVzdWx0YXRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1tYWlsIG5hYXIgaGV0IG9wZ2VnZXZlbiBlLW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgbmFhciBDTVMgQWRtaW4gR2VicnVpa2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnaW5hc2NoZWlkaW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnQmVzdGFuZCBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcmcXVvdDtWYW4gQWRyZXMmcXVvdDsgZS1tYWlsdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJyZxdW90O1ZhbiBOYWFtJnF1b3Q7IGUtbWFpbHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICcmcXVvdDtPbmRlcndlcnAmcXVvdDsgZS1tYWlsdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aXNjaGUgVGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzY2hlIGxpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICctTGluayAoaW5nZXZvZXJkIGRvb3IgZ2VicnVpa2VyKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnVmVyYm9yZ2VuIHZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnQmVyZWtlbmQgdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmllayBHZXRhbCAoU2VyaWVudW1tZXIpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0dlZW4gdmFsaWRhdGllJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWVrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0dlaGVlbCBnZXRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLW1haWxhZHJlcyc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdUZWxlZm9vbm51bW1lciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ01vZXQgYWFuZ2V2aW5rdCB3b3JkZW4nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ01vZXQgdm9sZG9lbiBhYW4gZWVuIHJlZ3VsaWVyZSBleHByZXNzaWUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnVm9sZG9ldCBuaWV0IGFhbiBkZSByZWd1bGllcmUgZXhwcmVzc2llJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdFZW4gd2FhcmRlIG9udGJyZWVrdCB2b29yIGRpdCB2ZXJwbGljaHRlIHZlbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdWb2VyIGVlbiB3YWFyZGUgaW4gdm9vciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdWb2VyIGVlbiBudW1tZXIgaW4gYmlqICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1ZvZXIgZWVuIGdlbGRpZ2Ugd2FhcmRlIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1ZvZXIgZWVuIGdldGFsIGluIGJpaiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdWb2VyIGVlbiBnZWxkaWcgZS1tYWlsYWRyZXMgaW4gYmlqICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnVm9lciBlZW4gZ2VsZGlnIHRlbGVmb29ubnVtbWVyIGlzIHZvb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgaXMgZ2VlbiBnZWxkaWcgZS1tYWlsYWRyZXMuJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdWb2VyIGVlbiB3YWFyZGUgaW4gZGllIG5pZXQgbGFuZ2VyIGlzIGRhbiAlcyB0ZWtlbnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdUZWtlbiBvbSB0ZSBnZWJydWlrZW4gYWxzIHNjaGVpZGluZyBiaWogcmVzdWx0YXRlbiBkaWUgbWVlciBkYW4gJmVhY3V0ZTsmZWFjdXRlO24gd2FhcmRlIHRlcnVnZ2V2ZW4nOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0hldCAmcXVvdDslcyZxdW90Oy1yZWNodCBpcyB2ZXJlaXN0IHZvb3IgZGllIGJld2Vya2luZy4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgVSBoZWVmdCBvbnZvbGRvZW5kZSByZWNodGVuIG9tIGRlemUgc2VjdGllIHRlIGJlbmFkZXJlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ1ZlbGR2b2xnb3JkZSBiaWpnZXdlcmt0Lic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxpZXIgdmVyd2lqZGVyZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1ZlbGQgdmVyd2lqZGVyZC4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhdGllIGJpamdld2Vya3QuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbW9ldCBnZXNlbGVjdGVlcmQgemlqbiBvbSBkb29yIHRlIGt1bm5lbiBnYWFuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnRXIgbW9ldCB0ZW5taW5zdGUgJmVhY3V0ZTsmZWFjdXRlO24gYmVzdGVtbWluZ3NhZHJlcyB3b3JkZW4gb3BnZWdldmVuLic7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIZXQgZm9ybXVsaWVyICVzIHZlcndpamRlcmVuPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGV0IHZlbGQgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0dlYXZhbmNlZXJkZSBvcHRpZXMgemlqbiBuaWV0IGJlc2NoaWtiYWFyIHZvb3JkYXQgaGV0IHZlbGR0eXBlIGluZ2VzdGVsZCBpcy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdEZSB2ZWxkbmFhbSAmcXVvdDslcyZxdW90OyBpcyBhbCBpbiBnZWJydWlrLiBHZWJydWlrIHVuaWVrZSB2ZWxkbmFtZW4gb2Ygc2NoYWtlbCB1bmlla2UgdmVsZG5hbWVuIHVpdCBpbiBkZSBGb3JtIEJ1aWxkZXItY29uZmlndXJhdGllLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnVmVsZGVuIG1vZXRlbiBlZW4gbmFhbSBoZWJiZW4sIGJlaGFsdmUgYWxzIGRlemUgdWl0Z2VzY2hha2VsZCB6aWpuIGluIGRlIEZvcm0gQnVpbGRlci1jb25maWd1cmF0aWUuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub25pZW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbmd0ZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyB2YWtrZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGllcyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHRla2Vucyc7CiRsYW5nWydvcmRlciddID0gJ1ZvbGdvcmRlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25pZXQgb3BnZWdldmVuXSc7CiRsYW5nWydhZGRlZCddID0gJ3RvZWdldm9lZ2QnOwokbGFuZ1sndXBkYXRlZCddID0gJ2Jpamdld2Vya3QnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydGVlcm9wdGllcyB2YW4gZGUgdWl0dm9lcic7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0ZWVyICZlYWN1dGU7JmVhY3V0ZTtuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnU2VsZWN0ZWVyIFR5cGUnOwokbGFuZ1sndG8nXSA9ICdBYW4nOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ29udHZhbmdlcnMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1vZ2VsaWprZSBiZXN0YW5kZW4nOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBiZXN0ZW1taW5nZW4nOwokbGFuZ1snc2F2ZSddID0gJ09wc2xhYW4nOwokbGFuZ1snYWRkJ10gPSAnVG9ldm9lZ2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0Jpandlcmtlbic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ09wc2xhYW4gZW4gZG9vcmdhYW4gbWV0IHdpanppZ2VuJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNjaCc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGllcmVuJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWxpZXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnVmVsZCB2ZXJwbGljaHRlIHRvZXN0YW5kIGJpamdld2Vya3QuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gZ3Jvb3R0ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1VpdGJyZWlkaW5nZW4nOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RvZWdlc3RhbmUgYmVzdGFuZHN0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0dldXBsb2FkIGJlc3RhbmQgaXMgdGUgZ3Jvb3QuIE1heGltdW0gZ3Jvb3R0ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEaXQgdHlwZSBiZXN0YW5kIG1hZyBuaWV0IHdvcmRlbiBnZXVwbG9hZC4gQ29udHJvbGVlciBkZSBiZXN0YW5kc2V4dGVuc2llLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQgJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxpZXIgZ2UmaXVtbDttcG9ydGVlcmQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm11bGllcmltcG9ydCBtaXNsdWt0LiBFciB3YXMgZWVuIHByb2JsZWVtIG1ldCBkZSBvcG1hYWsgdmFuIGhldCBYTUwtYmVzdGFuZC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpamVuJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2xvbW1lbic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdXVycyBrbG9rJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC11dXJzIGtsb2snOwokbGFuZ1snaG91ciddID0gJ3V1cic7CiRsYW5nWydtaW4nXSA9ICdtaW51dXQnOwokbGFuZ1snbWVyaWQnXSA9ICdtZXJpZGlhYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1ZlcnphbWVsaW5nOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0JlZGFua3QuIFV3IGFhbnZyYWdlbiB6aWpuIG9udHZhbmdlbi4nOwokbGFuZ1snZWRpdCddID0gJ0Jld2Vya2VuJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1ZlcndpamRlcmVuJzsKJGxhbmdbJ2RheSddID0gJ2RhZyc7CiRsYW5nWydtb24nXSA9ICdtYWFuZCc7CiRsYW5nWyd5ZWFyJ10gPSAnamFhcic7CiRsYW5nWydub25lJ10gPSAnKGdlZW4pJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGdlZGVpbnN0YWxlZXJkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGV2ZXJzaWUgJXMgZ2UmaXVtbDtuc3RhbGxlZXJkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSBiaWpnZXdlcmt0IG5hYXIgdmVyc2llICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUZXJ1Zy4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnVmVyc3R1cmVuJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1ZlcmRlci4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ05pZXQgZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnU3RhcnQnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm11bGllcndlZXJnYXZlaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYS1pbnN0ZWxsaW5nZW4nOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnR2VhdmFuY2VlcmRlIGluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWxpZXJzamFibG9vbic7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnVmVyemVuZHNqYWJsb29uJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5LXZhcmlhYmVsZW4gbW9nZW4gaW4gZGl0IHZlbGQgZ2VicnVpa3Qgd29yZGVuLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTWVlciBvcHRpZXMgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVmVyd2lqZGVyZW4gZ2VtYXJrZWVyZGUgb3B0aWVzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnVm9lZyBtZWVyIHNlbGVjdGlldmFra2VuIHRvZSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZXIgc2VsZWN0aWV2YWtrZW4nOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdWb2xnZW5kIGFkcmVzIHRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZSBhZHJlc3Nlbic7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdWb2xnZW5kZSBiZXN0ZW1taW5nIHRvZXZvZWdlbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdWZXJ3aWpkZXIgZ2VtYXJrZWVyZGUgYmVzdGVtbWluZ2VuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVGUgdmVlbCBlLW1haWxzIHZlcnpvbmRlbiB2YW5hZiB1dyBJUC1hZHJlcy4gQW50aS1zcGFtIG1lY2hhbmlzbWUgYmxva2tlZXJ0IGRlIHZlcnplbmRpbmcuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1ZlcmRhY2h0ZSBzcGFtIHZhbiBJUCAlcyBnZWJsb2tlZXJkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnSGVyc2NoaWsgdmVsZGVuJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsZXJlbic7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdXYWFyZGUgZ2V6ZXQ6ICVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Jlc3RlbW1pbmdzbWFwIHZvb3IgdWl0dm9lcmJlc3RhbmRlbic7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0dlYnJ1aWtlcmdlZGVmaW5lZXJkZSB0YWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2luYSBvbSBuYWFyIHRlcnVnIHRlIGtlcmVuIG1ldCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdWZXJ6b25kZW4gbWV0IEZvcm0gQnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2Fkcy1jYXRlZ29yaWUnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTdHV1ciBkaXQgYmVzdGFuZCBuYWFyIGRlIHVwbG9hZC1tb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGltdW0gbGVuZ3RlJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnU2VsZWN0aWV2YWtsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1NlbGVjdGllcm9uZGplbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1dhYXJkZSBpbmRpZW4gZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1dhYXJkZSBpbmRpZW4gbmlldCBnZXNlbGVjdGVlcmQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ1NlbGVjdGlldmFrLWdyb2VwZGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdWZXJ3aWpkZXJlbj8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7U2VsZWN0ZWVyIEVlbiZxdW90OyB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3RpZXdlZXJnYXZlbmFhbSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGllb25kZXJ3ZXJwJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTdGFuZGFhcmRzZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYWFyZHNlbGVjdGllJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aWVuYWFtJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZlcnN0dXVyZGUgd2FhcmRlJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdLZXV6ZWxpanN0b3B0aWVzJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNZWVya2V1emVvcHRpZXMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Jlc3RlbW1pbmdzIGUtbWFpbGFkcmVzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnQmVzdGVtbWluZ3NiZXN0YW5kc25hYW0nOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7VmFuIE5hYW0mcXVvdDsgdm9vciBlLW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0dlYnJ1aWsgZWVudm91ZGlnZSBlLW1haWx2YWxpZGF0aWUnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnR2VicnVpayBlZW52b3VkaWdlIGUtbWFpbGFkcmVzdmFsaWRhdGllIChzdGEgYmlqdm9vcmJlZWxkICZxdW90O3hAeSZxdW90OyB0b2UgaS5wLnYuICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O1ZhbiBhZHJlcyZxdW90OyB2b29yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWx0ZWtlbnNldCBlbmNvZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdLZXV6ZWxpanN0Z2ViYXNlZXJkZSBlLW1haWxkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0Jlc3RhbmRzbmFhbSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRS1tYWlsb25kZXJ3ZXJwcmVnZWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsaWVybmFhbSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGllcnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0tsYWFyIHZvb3IgZ2VicnVpayc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmlldCBrbGFhcic7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnaW5hIG9tIHRlIHRvbmVuIG5hIHZlcnplbmRpbmcgdmFuIGhldCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1ZvZWcgZWVuIHZlbGQgdG9lIHpvZGF0IGRlIGludm9lciB2YW4gZGUgZ2VicnVpa2VyIHZlcndlcmt0IGthbiB3b3JkZW4uIFUga3VudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2RlemUgc25lbGtvcHBlbGluZyBnZWJydWlrZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm11bGllcmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybXVsaWVydmVsZGVuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnVmVsZC1JZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnVmVsZG5hYW0nOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnU2VsZWN0aWVyb25kamUtZ3JvZXBzZGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVmVsZHR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ29tIGVlbiBmb3JtdWxpZXJ2ZXJ3ZXJraW5nc3ZlbGQgdGUgbWFrZW4uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ05pZXV3IGZvcm11bGllciB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2llIHRvbmVuPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0RpdCB2b2VndCBoZXQgdmVyc2llbnVtbWVyIHZhbiBkZSBnZSZpdW1sO25zdGFsbGVlcmRlIEZvcm1CdWlsZGVyLW1vZHVsZSBhbHMgY29tbWVudGFhciB0b2UsIG9tIHRlIGhlbHBlbiBiaWogZGVidWdnZW4uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdOaWV1dyB2ZWxkIHRvZXZvZWdlbic7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5ka25vcHRla3N0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnSmF2YXNjcmlwdCBhYW4gdmVyemVuZGtub3AgdG9ldm9lZ2VuIG9tIG1lZXJkZXJlIHZlcnplbmRpbmdlbiB0ZSB2b29ya29tZW4/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdWZWlsaWdoZWlkc3NjcmlwdCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm11bGllciAmcXVvdDtWb2xnZW5kZSZxdW90OyBrbm9wdGVrc3QgKGdlYnJ1aWt0IGJpaiBmb3JtdWxpZXJlbiB2YW4gbWVlcmRlcmUgcGFnaW5hJiMwMzk7cyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm11bGllciAmcXVvdDtWb3JpZ2UmcXVvdDsga25vcHRla3N0IChnZWJydWlrdCBiaWogZm9ybXVsaWVyZW4gdmFuIG1lZXJkZXJlIHBhZ2luYSYjMDM5O3MpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdWZWxkdmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzZSB2b29yIGRpdCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzZSB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9vbCBvbSB2ZXJlaXN0ZSB2ZWxkZW4gdGUgbWFya2VyZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdWZXJlaXN0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdWZXJlaXN0IGVlbiBhbnR3b29yZCB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdWZXJiZXJnIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1ZlcmJlcmcgdmVsZG5hYW0gb3AgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNjaGUgdGVrc3Qgb20gd2VlciB0ZSBnZXZlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpZSByZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQWFudGFsIHdlZXJnZWdldmVuIHJlZ2Vscyc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnR2VlbiBzdGFuZGFhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdUb29uIGRlemUgcGFnaW5hIG5hIGdvZWRrZXVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdEZXplIHJlZ3VsaWVyZSBleHByZXNzaWUgemFsIGFsbGVlbiBnZWJydWlrdCB3b3JkZW4gYWxzICZxdW90O3ZhbGlkYXRpZXR5cGUmcXVvdDsgaW5nZXN0ZWxkIGlzIG9wIGVlbiByZWdleC1nZXJlbGF0ZWVyZGUgb3B0aWUuIEJldmF0IGVlbiB2b2xsZWRpZ2UgUGVybC1hY2h0aWdlIHJlZ2V4LCBpbmNsdXNpZWYgZGUgc3RhcnQvc3RvcCBzbGFzaGVzIGVuIHZsYWdnZW4gKGIudi4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnVmVycGxpY2h0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnVmVyYmVyZyBGb3V0ZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm11bGllcndlZXJnYXZldHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnVm9vcmtvbSBkZWJ1Zy0gLyBmb3V0bWVsZGluZ2VuIHZvb3IgZ2VicnVpa2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIHVwbG9hZCBiZXN0YW5kc2dyb290dGUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEZXplIGJlZ3JlbnppbmcgaXMgZWVuIHRvZXZvZWdpbmcgb3AgZGUgYmVncmVuemluZ2VuIGRpZSB6aWpuIGluZ2VzdGVsZCBpbiBkZSBQSFAtIG9mIHdlYnNlcnZlcmNvbmZpZ3VyYXRpZS4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdUb2VnZXN0YW5lIGV4dGVuc2llcyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnVm9lciBlZW4ga29tbWFnZXNjaGVpZGVuIGxpanN0IGluLCB6b25kZXIgZGUgcHVudCAoYi52LiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhdGllcyB3b3JkZW4gb3Zlcmdlc2xhZ2VuLiBMZWVnIGxhdGVuIGJldGVrZW50IGRhdCBlciBnZWVuIGJlcGVya2luZ2VuIHppam4uJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdCZXBlcmtpbmdlbiB3ZWVyZ2V2ZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0dyb290dGUtIGVuIGV4dGVuc2llYmVwZXJraW5nZW4gdG9uZW4gYmlqIGhldCB1cGxvYWQgdmVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1NqYWJsb29uIHZvb3Igd2VlcmdhdmVmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgdmFuICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWZWxkIGhlZWZ0IGdlZW4gZ2VhdmFuY2VlcmRlIG9wdGllcy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ0dldG9vbmRlIHRla3N0IGJpaiBvbmdlc3BlY2lmaWNlZXJkZSB2ZWxkd2FhcmRlbic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnU25lbC12ZWxkLXRvZXZvZWdlbiB1aXRrbGFwbWVudSBpbnNjaGFrZWxlbiB2b29yIGZvcm11bGllcmVuPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ1NuZWwtdmVsZC10b2V2b2VnZW4gdWl0a2xhcG1lbnUgaW5zY2hha2VsZW4/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTbmVsLXZlbGQtdG9ldm9lZ2VyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnRGl0IGFhbmtsaWtrZW4gemFsIHNsZWNodHMgMTAgZW1haWxzIHRvZXN0YWFuIHZhbnVpdCBlZW4gZ2VnZXZlbnMgSVAtYWRyZXMgKHBlciB1dXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdQcmltaXRpZXZlIGFudGktc3BhbSBtb2dlbGlqa2hlZGVuIGluc2NoYWtlbGVuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVG9vbiB2ZWxkLWlkJiMwMzk7cyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdEaXQgYWFua2xpa2tlbiBtYWFrdCBoZXQgdG9uZW4gdmFuIHZlbGQtaWQmIzAzOTtzIG1vZ2VsaWprIHRpamRlbnMgdG9ldm9lZ2VuIGVuIHdpanppZ2VuIHZhbiBlZW4gZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybXVsaWVyIHVpdCBlZW4gWE1MLWJlc3RhbmQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0dlYnJ1aWsgZGV6ZSBmb3JtdWxpZXJuYWFtJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwtZm9ybXVsaWVyaW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnR2VicnVpayBkZXplIGZvcm11bGllcmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmVlciBIVE1MLWVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpc2NoIGxhZGVuPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGlzY2ggbGFkZW4gbWV0IGRlIFVSTCB2YW4gZGUgcGFnaW5hIG1ldCBoZXQgZm9ybXVsaWVyPyAoZGl0IG92ZXJzY2hyaWpmdCBkZSBwYWdpbmFsaW5rLW9wdGllIGhpZXJvbmRlciknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnU3RhbmRhYXJkbGluay1VUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnU3RhbmRhYXJkbGlua3Rla3N0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIG5hYXIgZGUgc2l0ZXBhZ2luYSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdVIGt1bnQgZ2VicnVpayBtYWtlbiB2YW4gPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IG9tIHZlcnplbmRpbmdlbiB0ZSBiZXZlaWxpZ2VuIGRvb3IgZGUgQ2FwdGNoYS1tb2R1bGUgdGUgaW5zdGFsbGVyZW4uIFZvb3IgbWVlciBpbmZvcm1hdGllLCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8mcXVvdDs+emllIGhldCBDYXB0Y2hhLXByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0NhcHRjaGEgZ2VicnVpa2VuIG9tIGRlIGZvcm11bGllcnZlcnplbmRpbmdlbiB0ZSBiZXNjaGVybWVuPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnVmluayBhYW4gb20gdXcgZm9ybXVsaWVyIHRlIGJlc2NoZXJtZW4gbWV0IGVlbiA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0JldmVzdGlnIGRhdCB1IGdlZW4gc2NyaXB0IGJlbnQgZG9vciBkZSBrYXJha3RlcnMgaW4gaGV0IHBsYWF0amUgaW4gdGUgdm9lcmVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdWZXJrZWVyZGUgdGVrc3Qgdm9vciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBuaWV0IGdvZWQuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0h1bHB0ZWtzdCB2b29yIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmtsYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBkb2VsIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ1N0YW5kYWFyZCBnZXNlbGVjdGVlcmQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdHZWJydWlrIDI0LXV1cnMgdGlqZD8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSAnOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNICc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1ZvZXIgc21hcnR5IHRhZ3MgdWl0IGluIGhldCB2ZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUmlqZW4gKGxldCBvcDogZGl0IGthbiB3b3JkZW4gb3ZlcnNjaHJldmVuIGRvb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnS29sb21tZW4gKGxldCBvcDogZGl0IGthbiB3b3JkZW4gb3ZlcnNjaHJldmVuIGRvb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdIb29mZGZvcm11bGllcmRldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ1Rvb24gem93ZWwgZGUgbG9naW4tbmFhbSBhbHMgZGUgdm9vci0gZW4gYWNodGVybmFhbT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnVG9vbiBnZWJydWlrZXJzIHZvb3JuYWFtPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ1Rvb24gZ2VicnVpa2VycyBhY2h0ZXJuYWFtPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0JlcGVyayBnZWJydWlrZXJzbGlqc3QgdG90IGdlYnJ1aWtlcnMgaW4gc3BlY2lmaWVrZSBncm9lcCc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnQWxsZW4gaW4gZ3JvZXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnVG9vbiBhYW4gZ2VicnVpa2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEaXQgdmVsZCBtYWcgbGVlZyBnZWxhdGVuIHdvcmRlbic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJlbGVuIHZvb3Igc2phYmxvb24nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFiZWxlbiBiZXNjaGlrYmFhcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdHVtIHZhbiB2ZXJ6ZW5kaW5nJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIHZhbiBkZSBwYWdpbmEnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbmRlcmUgdmVsZGVuIHppam4gYmVzY2hpa2JhYXIgbmFkYXQgemUgemlqbiB0b2VnZXZvZWdkJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnVmVsZGVuIG1ldCBtZWVyZGVyZSB3YWFyZGVuIGt1bm5lbiBvb2sgYmVuYWRlcmQgd29yZGVuIHZpYSBkZSBzbWFydHkgd2FhcmRlIHZhbiAkZmllbGRuYW1lX2FycmF5IG9mICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1ppZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IHZvb3IgaW5mb3JtYXRpZSBvdmVyIGhldCBmb3JtYXQuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdHZXJlcHJlc2VudGVlcmQgVmVsZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGVydWcgbmFhciBoZXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdWb29yYmVlbGRzamFibG9vbiBnZW5lcmVyZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlJmV1bWw7ZXIgdm9vcmJlZWxkIEhUTUwtc2phYmxvb24nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdWb29yYmVlbGRrb3ByZWdlbCBnZW5lcmVyZW4nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZWVuIHRhYi10ZWtlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciBlbmtlbGUgcmVnZWwgdWl0dm9lcmJlc3RhbmQnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdTamFibG9vbiB2b29yIGRlIGtvcHJlZ2VsIHZhbiBoZXQgdWl0dm9lcmJlc3RhbmQnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBvbSB0ZSBrbGlra2VuIHZvb3IgZm9ybXVsaWVydmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnV2FhcmRlICh6aWUgR2VhdmFuY2VlcmQgdGFiYmxhZCBhbHMgdSBTbWFydHkgdGFncyBnZWJydWlrdCknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bWZvcm1hYXQgKHN0YW5kYWFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQLWRhdHVtZm9ybWF0ZW48L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ0dlYnJ1aWsgV1lTSVdZRyBlZGl0b3Igdm9vciB0ZWtzdHZlbGQ/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybXVsaWVydmVyemVuZGdlZHJhZyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnVmVyemVuZGtub3BsYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0ZWVydmVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdEZXplIHBhZ2luYSBtYWFrdCBhYW5wYXNzZW4gdmFuIEZvcm11bGllcnZlcnplbmRpbmcgbW9nZWxpamsuIEhldCBiZXBhYWx0IG5pZXQgd2F0IEZvcm0gQnVpbGRlciBtZXQgZGUgdmVyem9uZGVuIGRhdGEgZG9ldC4gRGl0IGt1bnQgdSBpbnN0ZWxsZW4gZG9vciAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyB2ZWxkZW4gdG9lIHRlIHZvZWdlbiBhYW4gaGV0IGZvcm11bGllciAnOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0JlZ2luIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0VpbmRlIGphYXJyZWVrcyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdTdGFuZGFhcmRqYWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFN0ZWwgb3AgLTEgaW4gdm9vciBoZXQgc3RhbmRhYXJkamFhciBoZXQgaHVpZGlnZSBqYWFyIHRlIG1ha2VuKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTmEgaGV0IGZvcm11bGllciB2ZXJ6b25kZW4gaXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVhY3RpZSBvbSB0ZSB0b25lbic7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdUb29uICZxdW90O1ZlcnplbmRzamFibG9vbiZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnTGFhZCBkZSB3ZWJzaXRlIHBhZ2luYSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0RlemUgc2phYmxvb24gaXMgb20gdGUgdG9uZW4gYWFuIGRlIGdlYnJ1aWtlciBuYWRhdCBoZXQgZm9ybXVsaWVyIHZlcnN0dXVyZCBpcy4gSGV0IGhlZWZ0IGdlZW4gZWZmZWN0IG9wIGRlIGFhbmdlbWFha3QgZW1haWxzIG9mIGFuZGVyZSBmb3JtdWxpZXJyZWdlbHMgLS0gZGllIGt1bnQgdSBpbnN0ZWxsZW4gaW4gc2phYmxvbmVuIChpbmRpZW4gdmFuIHRvZXBhc3NpbmcpIGluIGhldCAmcXVvdDtnZWF2YW5jZWVyZCZxdW90OyB0YWJibGFkIHZvb3IgZGUgcmVnZWx2ZWxkZW4uJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdCZXN0ZW1taW5nc3BhZ2luYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdWZXJwbGljaHRlIHZlbGRuYW1lbic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1ZlcnBsaWNodCB2ZWxkZW4gb20gZWVuIG5hYW0gdGUgaGViYmVuPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1ZlcnBsaWNodCB1bmlla2UgdmVsZG5hbWVuJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWZXJwbGljaHQgdmVsZGVuIG9tIGVlbiB1bmlla2UgbmFhbSB0ZSBoZWJiZW4/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ0hlcnNjaGlrIHZlbGRlbic7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTGFhZCBzamFibG9vbic7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdWb2VnIGtub3B0ZWtzdCB0b2UnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnVmVyd2lqZGVyIGtub3B0ZWtzdCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXRlZXIgdmFyaWFiZWxlbiBhbHMgbnVtbWVycyBvZiBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpZXZvbGdvcmRlJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdBbHMgZXIgbWVlciBkYW4gZWVuIGJlcmVrZW5kIHZlbGQgYmVzdGFhdCwgZGFuIHp1bGxlbiBkZSB3b3JkZW4gYmVyZWtlbmQgdmFuIGhldCBsYWFnc3RlIHJhbmdudW1tZXIgdG90IGhldCBob29nc3RlIHJhbmdudW1tZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1dhYXJkZSBvbSB0ZSBiZXJla2VuZW4nOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nICc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpZWsnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdUb29uIGhldCBmb3JtdWxpZXIgaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIGJldGVrZW50IGRhdCBpZWRlcmUgZm9ybXVsaWVydmVydm9sZ2FjdGllIGRlIHtjbXNfbW9kdWxlfSB0YWcgdmVydmFuZ3QsIG5vbi1pbmxpbmUgdmVydmFuZ3QgZGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1N0YW5kYWFyZHdhYXJkZSB2b29yIHZlbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0xlZWcgc3RhbmRhYXJkd2FhcmRlIG1ldCBlZW4ga2xpaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnVmluayBhYW4gb20gZGUgc3RhbmRhYXJkd2FhcmRlIHRlIHZlcndpamRlcmVuIGFscyBlZW4gZ2VicnVpa2VyIG9wIGRpdCB2ZWxkIGtsaWt0Lic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3RhbmRhYXJkc2phYmxvb24nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsc2phYmxvb24sIHRpdGVsIGxpbmtzJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsc2phYmxvb24sIHRpdGVsIGJvdmVuJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1NqYWJsb29uIHZhbiAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdXZWV0IHUgemVrZXIgZGF0IHUgZGUgc2phYmxvb24gd2lsdCBvdmVyc2NocmlqdmVuIG1ldCBoZXQgZ2VzZWxlY3RlZXJkZSBzamFibG9vbj8gKFplbGZzIGFscyB1IE9LIGFhbmdlZWZ0LCB6dWx0IHUgZGUgdmVyYW5kZXJpbmdlbiBtb2V0ZW4gYmV3YXJlbiknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRm91dCBiaWogaGV0IGJlcmVrZW5lbiB2YW4gJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdHZWVuIEhUVFBfUkVGRVJFUiBpbmZvcm1hdGllIGJlc2NoaWtiYWFyICh3YWFyc2NoaWpuaWprIGRvb3IgaGV0IGdlYnJ1aWsgdmFuIEUtbWFpbCBHZWJydWlrZXIgVmFsaWRhdGllKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGllLXBhcmFtZXRlci1mb3V0LiBab3JnIGVydm9vciBkYXQgZGUgVVJMIHZhbiB1dyBlbWFpbCBjb3JyZWN0IGdla29waWVlcmQgd29yZHQhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aWUtcmVhY3RpZS1mb3V0LiBab3JnIGVydm9vciBkYXQgZGUgVVJMIHZhbiB1dyBlbWFpbCBjb3JyZWN0IGdla29waWVlcmQgd29yZHQhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uLXJlYWN0aWUtZm91dC4gR2VlbiBlbWFpbHZhbGlkYXRpZXZlbGRlbiBpbiBkaXQgZm9ybXVsaWVyISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybXVsaWVyc2phYmxvb24gaXMgYXV0b21hdGlzY2ggYmlqZ2V3ZXJrdCBhbHMgb25kZXJkZWVsIHZhbiBkZSB1cGdyYWRlIHZhbiB2ZXJzaWUgMC4zIG5hYXIgdmVyc2llIDAuNC4gTW9nZWxpamsgbW9ldCB1IGVlbiBhYW50YWwgemFrZW4gaGVyc3RlbGxlbi4gQWxzIHUgaGV0IHN0YW5kYWFyZHNqYWJsb29uIGdlYnJ1aWt0LCB2ZXJ2YW5nIGRlemUgc2phYmxvb24gZGFuIG1ldCBkZSBzdGFuZGFhcmQsIGRvb3IgZGUgYm92ZW5zdGFhbmRlIGtldXplbGlqc3QgdGUgZ2VicnVpa2VuLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdCZWhlZXIgdmFuIGludGVyYWN0aWV2ZSBzZm9ybXVsaWVyZW4nOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdBbHMgdSBzdHJpbmctZXZhbHVhdGllIGdlYnJ1aWt0LCBpcyBkZSBlbmlnZSBiZXNjaGlrYmFyZSBvcGVyYXRvciAoKyksIHRlcndpamwgYmlqIGhldCBnZWJydWlrIHZhbiBudW1tZXItZXZhbHVhdGllIGVlbnZvdWRpZ2Ugd2lza3VuZGlnZSBiZXdlcmtpbmdlbiBtb2dlbGlqayB6aWpuICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ2phbnVhcmknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ2ZlYnJ1YXJpJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdtYWFydCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnYXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdtZWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnanVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdqdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnYXVndXN0dXMnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdzZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnb2t0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnbm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ2RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdTb3JyeSEgRXIgaXMgZWVuIGZvdXQgb3BnZXRyZWRlbiB0aWpkZW5zIGRlIGZvcm11bGllcnZlcndlcmtpbmcuJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm0gQnVpbGRlciB2ZXJ6ZW5kaW5nc2ZvdXQ6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdGb3V0IGJpaiBoZXQgdmVyc3R1cmVuIHZhbiBoZXQgYmVzdGFuZCBuYWFyIGRlIHVwbG9hZG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnRGUgdXBsb2FkbW9kdWxlIGtvbiBuaWV0IHdvcmRlbiBnZXZvbmRlbic7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0JpamxhZ2UgZm91dCBiaWogYmVzdGFuZCAlcyAodG1wX25hbWU6ICVzLCB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZvdXQuIEthbiBnZWVuIGxvY2sgdm9vciBiZXN0YW5kIGtyaWpnZW4uJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhYXJkOiBuaWV0LWdlc2VsZWN0ZWVyZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFhcmQ6IGdlc2VsZWN0ZWVyZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybSBCdWlsZGVyIFZlcnplbmRpbmcnOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWxzamFibG9vbiBub2cgbmlldCBpbmdlc3RlbGQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm0gQnVpbGRlcjogS2FuIHZlcmVpc3RlIG1vZHVsZSBDTVNNYWlsZXIgbmlldCB2aW5kZW4hJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0dlYnJ1aWtlcmdvZWRnZWtldXJkZSB2ZXJ6ZW5kaW5nICVzIHZhbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnR2ViZXVydGVuaXMgZ2VhY3RpdmVlcmQgYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHZlcnpvbmRlbiB3b3JkdCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdHZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnR2ViZXVydGVuaXMgZ2VhY3RpdmVlcmQgYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHdvcmR0IGdldG9vbmQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkdlYmV1cnRlbmlzIGdlYWN0aXZlZXJkIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB2ZXJ6b25kZW4gd29yZHQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5HZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIGZvdXQgb3B0cmVlZHQgYmlqIGhldCB2ZXJ6ZW5kZW4gdmFuIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEVlbiBsaWpzdCB2YW4gYWxsZSBiZWtlbmRlIGZvdXRlbiAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5HZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIEZvcm0gQnVpbGRlci1mb3JtdWxpZXIgd29yZHQgZ2V0b29uZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBGb3JtdWxpZXJuYWFtIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gSW50ZXJuIGZvcm11bGllciBJRCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVhY3RpZS1JRC4gR2VicnVpa3QgZG9vciBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnU3RhbmRhYXJkIHZlbGR3YWFyZGVuOyB6aWUgbW9kdWxlaHVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdWZWxkLUlEIHZvb3IgaW50ZXJuZSBvcGVyYXRpZXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGllcm5hYW0nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtdWxpZXItSUQgdm9vciBpbnRlcm5lIG9wZXJhdGllJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxnZW1lbmUgcGFyYW1ldGVycyB2b29yIGludGVybmUgb3BlcmF0aWVzJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybXVsaWVyc2phYmxvb252YXJpYWJlbGVuPC9oMz4NCjxwPkhldCBmb3JtdWxpZXJzamFibG9vbiBrYW4gYmV3ZXJrdCB3b3JkZW4gb20gZGUgb3BtYWFrIGFhbiB0ZSBwYXNzZW4uIE9tIGhldCBmb3JtdWxpZXIgdGUgbGF0ZW4gd2Vya2VuLCBtb2V0ZW4gZGFhcmluIG1pbnN0ZW5zIGRlIHskZmJfaGlkZGVufSBlbiB7JHN1Ym1pdH0NCiAgIHRhZ3Mgd29yZGVuIG9wZ2Vub21lbi48L3A+DQoNCjxwPlUgaGVlZnQgdG9lZ2FuZyB0b3QgZGUgdmVsZGVuIHZpYSBoZXQgJGZpZWxkcy1hcnJheSBvZiBkaXJlY3QgdmlhIGRlIHZlbGRuYW1lbjogKGIudi4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCjxwPkllZGVyIHZlbGQgaGVlZnQgZGUgdm9sZ2VuZGUgYXR0cmlidXRlbjo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZlbGQ8L3RoPjx0aD5XYWFyZGU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBhbHMgaGV0IHZlbGQgZ2V0b29uZCBtb2V0IHdvcmRlbiwgYW5kZXJzIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgYWxzIGhldCB2ZWxkIHZlcnBsaWNodCBpcywgYW5kZXJzIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD5IZXQgc3ltYm9vbCBvbSB2ZXJwbGljaHRlIHZlbGRlbiB0ZSBtYXJrZXJlbjwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPmRlIENTUyBjbGFzcyB2b29yIGRpZSB2ZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGFscyBoZXQgdmVsZCBkb29yIGRlIHZhbGlkYXRpZSBrb210LCBhbmRlcnMgMDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+dGVrc3QgdmFuIGhldCB2YWxpZGF0aWVwcm9ibGVlbSBhbHMgaGV0IHZlbGQgbmlldCBnZXZhbGlkZWVyZCBrb24gd29yZGVuPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBhbHMgZGUgdmVsZG5hYW0gdmVyYm9yZ2VuIG1vZXQgemlqbiwgYW5kZXJzIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGFscyBoZXQgdmVsZHR5cGUgZWVuIGxhYmVsIGhlZWZ0PC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBhbHMgaGV0IHZlbGQgb21zbG90ZW4gbW9ldCB3b3JkZW4gaW4gZWVuIERJViAob2YgdGFiZWxyaWopPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPmRlIHZlbGRuYWFtPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD5kZSB2ZWxkaW52b2VyY29udHJvbGUgKGIudi4gaGV0IGludm9lcnZlbGQgemVsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmVlbiBjb250cm9sZWtub3AgZ2Vrb3BwZWxkIG1ldCBoZXQgdmVsZCwgaW5kaWVuIHZhbiB0b2VwYXNzaW5nIChiLnYuIGRlIHZlcndpamRlcmtub3Agdm9vciBlZW4gdWl0YnJlaWRiYXJlIHRla3N0aW52b2VyKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+ZGUgSUQgdmFuIGRlIHZlbGRpbnZvZXIgKG51dHRpZyB2b29yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+aGV0IHZlbGRkYXRhdHlwZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBhbHMgZmllbGQtPmlucHV0IGVlbiB2ZXJ6YW1lbGluZyB2YW4gY29udHJvbHMgaXM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgYWxzIGRlIHZlcnphbWVsaW5nIHZhbiBjb250cm9scyBhcGFydGUgbGFiZWxzIHZvb3IgaWVkZXIgY29udHJvbCBoZWVmdDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGJlcGFhbGRlIGdldmFsbGVuIGlzIGZpZWxkLT5pbnB1dCBlZW4gYXJyYXkgdmFuIG9iamVjdGVuIGluIHBsYWF0cyB2YW4gZWVuIGludm9lci4gRGl0IGlzIGJpanZvb3JiZWVsZCBoZXQgZ2V2YWwgaW4gQ2hlY2tCb3hHcm91cHMgb2YgUmFkaW9CdXR0b25Hcm91cHMuIEhpZXJiaWoga3VudCB1IGRvb3IgZmllbGQtPmlucHV0LT5uYW1lIGVuIGZpZWxkLT5pbnB1dC0+aW5wdXRzIGxvcGVuLjwvcD4NCiAgICANCjxwPkV4dHJhIHNtYXJ0eS12YXJpYWJlbGVuIGRpZSB1IGt1bnQgdG9ldm9lZ2VuOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFiZWxlPC90aD48dGg+V2FhcmRlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPmFhbnRhbCBwYWdpbmEmIzAzOTtzIHZvb3IgbWVlcnBhZ2luYS1mb3JtdWxpZXJlbjwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtbWVyIHZhbiBkZSBodWlkaWdlIHBhZ2luYSBiaWogbWVlcnBhZ2luYS1mb3JtdWxpZXJlbjwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD50b29udCAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBiaWogbWVlcnBhZ2luYS1mb3JtdWxpZXJlbjwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIGNsYXNzIHZvb3IgaGV0IGZvcm11bGllcjwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybXVsaWVybmFhbTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm11bGllci1kYXRhYmFzZS1JRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O1RlcnVnJnF1b3Q7IGtub3Agdm9vciBtZWVycGFnaW5hLWZvcm11bGllcmVuPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtWb2xnZW5kZSZxdW90OyBvciAmcXVvdDtWZXJzdHVyZW4mcXVvdDsga25vcCB2b29yIG1lZXJwYWdpbmEtZm9ybXVsaWVyZW4sIHBhc3QgYXV0b21hdGlzY2ggYWFuPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KJzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPlZlcmdld2lzIHUgZXJ2YW4gb20gJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHJlY2h0ZW4gdG9lIHRlIGtlbm5lbiBhYW4gZ2VicnVpa2VycyBkaWUgZGUgZm9ybXVsaWVyZW4gbW9ldGVuIGJlaGVyZW4uIEFscyB1IGRlIGZvcm11bGllcnJlc3VsdGF0ZW4gd2lsdCBlbWFpbGVuIHpvcmcgZXIgZGFuIHZvb3IgZGF0IGRlIGluc3RlbGxpbmdlbiBnb2VkIHN0YWFuLjwvcD4NCjxwPkxldCBlcm9wIGRhdCBlZW4gZm9ybXVsaWVyIG5pZXQgYWN0aWVmIGlzIChkdXMgZ2VicnVpa3Qga2FuIHdvcmRlbiB2YW5hZiBkZSB3ZWJzaXRlKSBhbHMgdSBub2cgYWFuIGhldCBiZXdlcmtlbiBiZW50LiBVIG1vZXQgZWVyc3QgaGV0IGZvcm11bGllciBhYW5tYWtlbiBlbiBkZSB0YWcgcGFzIGluIGVlbiBhY3RpZXZlIHBhZ2luYSBwbGFhdHNlbiBhbHMgdSBrbGFhciBiZW50IG1ldCBiZXdlcmtlbi4gQW5kZXIga3VubmVuIGVyIHZlcmtlZXJkZSByZXN1bHRhdGVuIHdvcmRlbiB2ZXJzdHV1cmQuPC9wPg0KPHA+VGV2ZW5zIG9uZGVyc3RldW5kIGRlemUgdmVyc2llIG5pZXQgaGV0IGdlbGlqa3RpamRpZyBiZXdlcmtlbiB2YW4gZm9ybXVsaWVyZW4uIExldCBlcm9wIGRhdCBzbGVjaHRzIGVlbiBwZXJzb29uIGVlbiBmb3JtdWxpZXIgZ2VsaWprdGlqZGlnIGJld2Vya3QuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnaDM+V2F0IGRvZXQgaGV0PzwvaDM+DQo8cD5EZSBGb3JtQnVpbGRlci1tb2R1bGUgbGFhdCB1IGZvcm11bGllcmVuIGFhbm1ha2VuIChpbiBmZWl0ZSBpcyBkaXQgZGUgb3B2b2xnZXIgdmFuIGRlIG9yaWdpbmVsZSBGZWVkYmFja0Zvcm0tbW9kdWxlKSBtZXQgZGUgdG9lZ2V2b2VnZGUga3JhY2h0IHZhbiBkYXRhYmFzZS1vcHNsYWcuIFNhbWVuIG1ldCBkZSBtb2R1bGUgRm9ybSBCcm93c2VyIGt1bnQgdSBoZXQgZ2VicnVpa2VuIG9tIGVlbnZvdWRpZ2UgZGF0YWJhc2UtYXBwbGljYXRpZSB0ZSBib3V3ZW4uPC9wPg0KPHA+RGUgZm9ybXVsaWVyZW4gZGllIGFhbmdlbWFha3QgemlqbiBtZXQgRm9ybUJ1aWxkZXIga3VubmVuIGluZ2V2b2VnZCB3b3JkZW4gaW4gc2phYmxvbmVuIGVuL29mIHdlYnBhZ2luYSYjMDM5O3MuIEZvcm11bGllcmVuIGt1bm5lbiB2ZWxlIHZvcm1lbiB2YW4gaW52b2VyIGJldmF0dGVuIGVuIGRlIGludm9lciBrYW4gZ2V2YWxpZGVlcmQgd29yZGVuIHZvb3IgdmVyc3R1cmVuLiBEZSByZXN1bHRhdGVuIHZhbiBkZXplIGZvcm11bGllcmVuIGt1bm5lbiB2ZXJzY2hpbGxlbmRlIG1hbmllcmVuIHZlcndlcmt0IHdvcmRlbi48L3A+DQoNCjxoMz5Ib2UgbWFhayBpayBlZW4gZm9ybXVsaWVyIGFhbj88L2gzPg0KPHA+QWFuIGhldCBiZWhlZXJwYW5lZWwgaXMsIG5hIGluc3RhbGxhdGllIHZhbiBkZSBtb2R1bGUsIGVlbiBuaWV1dyBtZW51aXRlbSB0b2VnZXZvZWdkLCBGb3JtQnVpbGRlci4gRG9vciBoaWVyb3AgdGUga2xpa2tlbiB2ZXJzY2hpam50IGVlbiBzY2hlcm0gbWV0IGRhYXJpbiBkZSBtb2dlbGlqa2hlaWQgZWVuIE5pZXV3IGZvcm11bGllciBhYW4gdGUgbWFrZW4gb2YgZGUgVm9vcmtldXJlbiB0ZSBiZXdlcmtlbi48L3A+DQoNCjxoMz5IZXQgdG9ldm9lZ2VuIHZhbiBlZW4gZm9ybXVsaWVyIGFhbiBlZW4gcGFnaW5hPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7YW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPg0KPHByZT4NCgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8NCglmb3JtIHttYXJnaW4tdG9wOjB9DQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0NCglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQ0KCWZpZWxkc2V0IGRpdiB7DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbTsNCgl9DQoJZmllbGRzZXQgZGl2IGRpdiB7DQoJCW1hcmdpbi10b3A6MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbQ0KCX0NCglmaWVsZHNldCB7DQoJCW1hcmdpbi1ib3R0b206MWVtOw0KCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7DQoJCXBhZGRpbmc6MC41ZW0NCgl9DQoJZmllbGRzZXQgbGFiZWwgew0KCQl3aWR0aDphdXRvOw0KCX0NCglsZWdlbmQgew0KCQljb2xvcjojRkZGOw0KCQliYWNrZ3JvdW5kOiNGNjA7DQoJCWZvbnQtc3R5bGU6aXRhbGljOw0KCQlmb250LXNpemU6MS4yZW07DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCXBhZGRpbmc6MC4yZW07DQoJCXdpZHRoOmF1dG87DQoJCWJvcmRlcjoxcHggc29saWQgI0NDQw0KCX0NCgl0ZXh0YXJlYSB7DQoJCW1hcmdpbjogMC41ZW0gMDsNCgkJd2lkdGg6OTglOw0KCQloZWlnaHQ6IDZlbQ0KCX0NCg0KCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMNCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8NCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19DQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwNCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgJmFtcDsjMTIzOyRmYl9oaWRkZW59IGFuZCAmYW1wOyMxMjM7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCAmYW1wOyMxMjM7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMJnF1b3Q7PkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4NCic7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTQ0OTI1MTI5NS4xMjA2NDc3MjAyLjEyMDY0NzcyMDIuMTIwNjQ3NzIwMi4xJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA2NDc3MjAyLjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0tyZWF0b3IgZm9ybXVsYXJ6eSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1R5cCBwb2xhIG5pZSB6b3N0YcWCIHVzdGF3aW9ueSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUtvbmllYyBwb2xhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1Qb2N6xIV0ZWsgcG9sYSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1BvbGUgdGVrc3Rvd2VnbyB3cHJvd2FkemFuaWEgKFRleHQgSW5wdXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1BvbGUgdGVrc3Rvd2VnbyB3cHJvd2FkemFuaWEgKHdpZWxva3JvdG5lKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdQb2xlIHRla3N0b3dlICh0ZXh0IGFyZWEpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqV3lzecWCYWogd3luaWtpIGVtYWlsZW0gd3licmFueW0geiBsaXN0eSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlphcGlzeiB3eW5pa2kgZG8gcGxpa3Ugd3liaWVyYW5lZ28geiBsaXN0eSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqWmFwaXN6IHd5bmlraSBkbyBwbGlrdSgmb2FjdXRlO3cpIHd5YmllcmFuZWdvIHogbGlzdHkgd2llbG9rcnRvbmVnbyB3eWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlByemVraWVydWogZG8gc3Ryb255IHd5YnJhbmVqIHogbGlzdHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKld5xZtsaWogd3luaWtpIHBvZCBlbWFpbChlKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqQWRyZXMgV2FsaWRhY2ppLXByemV6LWVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlphcGlzeiB3eW5pa2kgZG8gend5a8WCZWdvIHBsaWt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypaYXBpc3ogd3luaWtpIGRvIGJhenkgZGFueWNoJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKld5d2/FgmFqIHpuYWN6bmlrIHXFvHl0a293bmlrYSB6IHd5bmlrYW1pIGZvcm11bGFyemEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKld5xZtsaWogd3luaWtpIG5hIGVtYWlsIHBvZGFueSBwcnpleiB1xbx5dGtvd25pa2EnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1Lb25pZWMgc3Ryb255JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnV2dyeXdhbmllIHBsaWt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnUG9sZSB3IGVtYWlsdSAmcXVvdDtBZHJlcyBvZCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ1BvbGUgdyBlbWFpbHUgJnF1b3Q7T2QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdQb2xlIHcgZW1haWx1ICZxdW90O1R5dHXFgiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZWtzdCBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctTGluayBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rICh3cHJvd2Fkem9ueSBwcnpleiB1xbx5dGtvd25pa2EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctUG9sZSB1a3J5dGUnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVBvbGUgb2JsaWN6ZW5pb3dlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0JleiB3YWxpZGFjamknOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJ5Y3puZSc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdQZcWCbm8tbGljemJvd2UgKGludGVnZXIpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0FkcmVzIGVtYWlsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ051bWVyIHRlbGVmb25pY3pueSAoZm9ybWF0IFVTQSknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzaSB6b3N0YcSHIHphem5hY3pvbmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1NwcmF3ZHphaiBwb3ByYXdub8WbxIcgeiB3eXJhxbxlbmllbSByZWd1bGFybnltJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ05pZSBzcGXFgm5pYSB3YXJ1bmsmb2FjdXRlO3cgb2tyZcWbbG9ueWNoIHByemV6IHBvZGFuZSB3eXJhxbxlbmllIHJlZ3VsYXJuZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnV2FydG/Fm8SHIGRsYSB3eW1hZ2FuZWdvIHBvbGEgbmllIHpvc3RhxYJhIHBvZGFuYSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1dwcm93YWTFuiB3YXJ0b8WbxIcgZGxhIHBvbGEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnV3Byb3dhZMW6IGxpY3pixJkgdyBwb2x1ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1dwcm93YWTFuiBwb3ByYXduxIUgd2FydG/Fm8SHIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1dwcm93YWTFuiB3YXJ0b8WbxIcgcGXFgm5vLWxpY3pib3fEhSB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnV3Byb3dhZMW6IHBvcHJhd255IGVtYWlsIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1dwcm93YWTFuiBwb3ByYXdueSBudW1lciB0ZWxlZm9uaWN6bnljaCB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmllIHd5ZGFqZSBzacSZIHBvcHJhd255bSBhZHJlc2VtIGVtYWlsISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnV3Byb3dhZMW6IHdhcnRvxZvEhyBuaWUgZMWCdcW8c3rEhSBuacW8ICVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHXFvHl3YW55IGpha28gc2VwYXJhdG9yIHcgd3luaWthY2ggZGFqxIVjeWNoIHdpxJljZWogbmnFvCBqZWRuxIUgd2FydG/Fm8SHJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdQb3RyemVidWplc3ogdXByYXduaWVuaWUgJnF1b3Q7JXMmcXVvdDsgYnkgd3lrb25hxIcgdMSZIG9wZXJhY2rEmSc7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBOaWUgbWFzeiBvZHBvd2llZG5pY2ggdXByYXduaWXFhCBieSBrb3J6eXN0YcSHIHogdGVqIHNla2NqaS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0tvbGVqbm/Fm8SHIHAmb2FjdXRlO2wgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXJ6IHpvc3RhxYIgdXN1bmnEmXR5JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdQb2xlIHpvc3RhxYJvIHVzdW5pxJl0ZSc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmFjamEgemFwaXNhbmEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnTXVzaXN6IHphem5hY3p5xIcgJnF1b3Q7JXMmcXVvdDsgYnkgcHJ6ZWrFm8SHIGRhbGVqJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdNdXNpc3ogcG9kYcSHIGNvIG5ham1uaWVqIGplZGVuIGFkcmVzIGRvY2Vsb3d5ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdOYSBwZXdubyBjaGNlc3ogdXN1bsSFxIcgZm9ybXVsYXJ6ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnTmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ09wY2plIHphYXdhbnNvd2FuZSBuaWUgc8SFIGRvc3TEmXBuZSwgZG9wJm9hY3V0ZTtraSBuaWUgdXN0YXdpc3ogdHlwdSBwb2xhJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTmF6d2EgcG9sYSAmcXVvdDslcyZxdW90OyBqdcW8IGplc3QgdyBzeXN0ZW1pZS4gVcW8eXdhaiBuaWVwb3d0YXJ6YWxueWNoIG5hencgYWxibyB3ecWCxIVjeiBvZHBvd2llZG5pxIUgb3BjasSZIHcga29uZmlndXJhY2ppIG1vZHXFgnUuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xhIG11c3rEhSBtaWXEhyBuYXp3xJksIGRvcCZvYWN1dGU7a2kgbmllIHd5xYLEhWN6eXN6IHRlaiBvcGNqaSB6IGtvbmZpZ3VyYWNqaSBtb2R1xYJ1Lic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0TFgjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzJm9hY3V0ZTt3JzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcGNqaSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1snb3JkZXInXSA9ICdLb2xlam5vxZvEhyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWV6bmFuZV0nOwokbGFuZ1snYWRkZWQnXSA9ICdkb2Rhbm8nOwokbGFuZ1sndXBkYXRlZCddID0gJ3pha3R1YWxpem93YW5vJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09wY2plIHNvcnRvd2FuaWEgd3lqxZtjaWEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1d5YmllcnogamVkbm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdXeWJpZXJ6IHR5cCc7CiRsYW5nWyd0byddID0gJ0RvJzsKJGxhbmdbJ3llcyddID0gJ1Rhayc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnb2RiaW9yY3knOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1vxbxsaXd5Y2ggcGxpayZvYWN1dGU7dyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGNlbCZvYWN1dGU7dyc7CiRsYW5nWydzYXZlJ10gPSAnWmFwaXN6JzsKJGxhbmdbJ2FkZCddID0gJ0RvZGFqJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGl6dWonOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdaYXBpc3ogaSBrb250eW51dWogZWR5Y2rEmSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjamUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdHljem5pZSc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyemUnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyeiAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhY2phJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdTdGF0dXMgd3ltYWdhbG5vxZtjaSBwb2xhIHpvc3RhxYIgemFrdHVhbGl6b3dhbnkuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhcic7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JvenJ6ZXN6ZW5pYSc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnRG96d29sb25lIHR5cHkgcGxpayZvYWN1dGU7dyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1dncnl3YW55IHBsaWsgamVzdCB6YSBkdcW8eSEgTWFrc3ltYWxueSByb3ptaWFyIHRvOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1BsaWtpIHRlZ28gdHlwdSAodGVnbyByb3pzemVyemVuaWEpIG5pZSBtb2fEhSBiecSHIHdncnl3YW5lIGRvIG5hc3plZ28gc3lzdGVtdS4gU3ByYXdkxbosIGN6eSByb3pzemVyemVuaWUgamVzdCBwcmF3aWTFgm93ZS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnV2dyeXdhbmllJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcnogemFpbXBvcnRvd2FueS4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnSW1wb3J0IGZvcm11bGFyemEgc2nEmSBuaWUgcG93aSZvYWN1dGU7ZMWCISBCecWCIHByb2JsZW0geiBmb3JtYXRlbSBwbGlrdSBYTUwuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyB3aWVyc3p5JzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW4nOwokbGFuZ1snMTJfaG91ciddID0gJzEyLWdvZHppbm55IHplZ2FyJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC1nb2R6aW5ueSB6ZWdhcic7CiRsYW5nWydob3VyJ10gPSAnR29kemluYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGEnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnWmFrcmVzOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0R6acSZa2khIFR3b2phIHd5c3nFgmthIHpvc3RhxYJhIG90cnp5bWFuYS4nOwokbGFuZ1snZWRpdCddID0gJ0VkeXR1aic7CiRsYW5nWydkZWxldGUnXSA9ICdLYXN1aic7CiRsYW5nWydkYXknXSA9ICdEemllxYQnOwokbGFuZ1snbW9uJ10gPSAnTWllc2nEhWMnOwokbGFuZ1sneWVhciddID0gJ1Jvayc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHXFgiBvZGluc3RhbG93YW55JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHXFgiB3IHdlcnNqaSAlcyB6b3N0YcWCIHphaW5zdGFsb3dhbnkuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdcWCIHpha3R1YWxpem93YW5vIGRvIHdlcnNqaSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnUG93ciZvYWN1dGU7dC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnV3nFm2xpaiBmb3JtdWxhcnonOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnS29udHludXVqLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdaYXpuYWN6b25lJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ09kem5hY3pvbmUnOwokbGFuZ1sndGFiX21haW4nXSA9ICdHxYImb2FjdXRlO3duYSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnVXN0YXdpZW5pYSB3ecWbd2lldGxlbmlhIGZvcm11bGFyemEnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1d5c8WCYW5pZSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnVXN0YXdpZW5pYSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ1VzdGF3aWVuaWEgWmFhd2Fuc293YW5lJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1N6YWJsb24gZm9ybXVsYXJ6YSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3phYmxvbiB3eXPFgmFuaWEnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5abWllbm5lIHNtYXJ0eSBzxIUgdyB0eW0gcG9sdSBkb3p3b2xvbmUhPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdEb2RhaiB3acSZY2VqIG9wY2ppJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2thc3VqIHphem5hY3pvbmUgb3BjamUnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdEb2RhaiB3acSZY2VqIGNoZWNrYm94LSZvYWN1dGU7dyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NrYXN1aiB6YXpuYWN6b25lIGNoZWNrYm94LXknOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdEb2RhaiBrb2xlam55IGFkcmVzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU2thc3VqIHphem5hY3pvbmUgYWRyZXN5JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0RvZGFqIGtvbGVqbmVnbyBhZHJlc2F0YSAoY2VsKSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTa2FzdWogd3licmFueWNoIGFkcmVzYXQmb2FjdXRlO3cgKGNlbGUpJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnWmEgZHXFvG8gZW1haWxpIHpvc3RhxYJvIHd5Z2VuZXJvd2FueWNoIHogdHdvamVnbyBhZHJlc3UgSVAuIFN5c3RlbSBhbnR5LXNwYW1vd3kganXFvCBuaWUgYsSZZHppZSBuaWMgb2QgY2llYmllIGRvc3RhcmN6YcWCLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdQb2RlanJ6YW55IHNwYW0geiBhZHJlc3UgSVAgJXMgLSB6b3N0YcWCIHphdHJ6eW1hbnkuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdabWllxYQga29sZWpub8WbxIcgcCZvYWN1dGU7bCc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsdWonOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRG9jZWxvd3kga2F0YWxvZyBkbGEgcGxpayZvYWN1dGU7dyB3eXR3YXJ6YW55Y2ggcHJ6ZXogbW9kdcWCOic7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1puYWN6bmlrIHXFvHl0a293bmlrYSc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnRMWCdWdvxZvEhyBtYWtzeW1hbG5hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnQ2hlY2tib3ggbGFiZWwnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdSYWRpbyBCdXR0b24gbGFiZWwnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIG5vdCBjaGVja2VkLic7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnQ2hlY2tib3ggR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdEZWxldGU/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1NlbGVjdCBPbmUmcXVvdDsgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVcW8eXdhaiB1cHJvc3pjem9uxIUgd2FsaWRhY2rEmSBlbWFpbGEnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVcW8eXdhaiBzenlia8SFIHdhbGlkYWNqxJkgZGxhIHBvbGEgZW1haWwgKG5wLiwgcG96dyZvYWN1dGU7bCBuYSB3cGlzYW5pZSAmcXVvdDt4QHkmcXVvdDsgemFtaWFzdCBzcHJhd2R6YW5pYSBza8WCYWRuaSB0eXB1ICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0FkcmVzIG9kJnF1b3Q7IGRsYSBlbWFpbGEnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdLb2Rvd2FuaWUgem5hayZvYWN1dGU7dyBkbGEgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnTmF6d2EgcGxpa3UnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0xpbmlhIHR5dHXFgnUgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ05hendhIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdTdGF0dXMgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0dvdG93eSBkbyB3ZHJvxbxlbmlhJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOaWVnb3Rvd3knOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1N0cm9uYSBwcnpla2llcm93YW5pYSBwbyB3eXPFgmFuaXUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnRG9kYWogcG9sZSBvYnPFgnVnaSBmb3JtdWxhcnphLCBva3JlxZtsYWrEhWNlIHphcGlzeXdhbmllIHdwcm93YWR6b255Y2ggZGFueWNoLiBNb8W8ZXN6JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndcW8eXdhaiB0ZWdvIHNrciZvYWN1dGU7dHUnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0FsaWFzIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdQb2xhIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJRCBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdOYXp3YSBwb2xhJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUeXAgcG9sYSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnYnkgc3R3b3J6ecSHIHBvbGUgb2JzxYJ1Z2kgZm9ybXVsYXJ6YS4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnRG9kYWogbm93eSBmb3JtdWxhcnonOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnUG9rYXp1aiB3ZXJzasSZIG1vZHXFgnUgS3JlYXRvcmEgRm9ybXVsYXJ6eT8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUYSBvcGNqYSB3c3Rhd2kgbnVtZXIgd2Vyc2ppIG1vZHXFgnUgS3JlYXRvcmEgRm9ybXVsYXJ6eSAoRm9ybSBCdWlsZGVyKSBqYWtvIGtvbWVudGFyeiB3IHRyZcWbY2kgc3Ryb255LCBjbyB1xYJhdHdpIGRlYnVnb3dhbmllIGkgYW5hbGl6xJkgc3lzdGVtdS4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0RvZGFqIG5vd2UgcG9sZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZWtzdCBwcnp5Y2lza3Ugd3lzxYJhbmlhIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdEb2RhxIcgc2tyeXB0IEphdmFzY3JpcHQgZG8gb3N0YXRlY3puZWdvIHByenljaXNrdSB3eXN5xYJhbmlhIGZvcm11bGFyemEsIGJ5IHVuaWVtb8W8bGl3acSHIHdpZWxva3JvdG5lIGplZ28gbmFjacWbbmnEmWNpZT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0RvZGFqIHNrcnlwdCBiZXpwaWVjemXFhHN0d2EnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1Rla3N0IHByenljaXNrdSAmcXVvdDtOYXN0xJlwbmEgc3Ryb25hJnF1b3Q7ICh1xbx5d2FueSBwcnp5IHdpZWxvc3Ryb25pY293eWNoIGZvcm11bGFyemFjaCknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1Rla3N0IHByenljaXNrdSAmcXVvdDtQb3ByemVkbmlhIHN0cm9uYSZxdW90OyAodcW8eXdhbnkgcHJ6eSB3aWVsb3N0cm9uaWNvd3ljaCBmb3JtdWxhcnphY2gpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdXYWxpZGFjamEgcG9sYSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0tsYXNhIENTUyBkbGEgdGVnbyBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0tsYXNhIENTUyBkbGEgdGVnbyBwb2xhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnWm5hayBvem5hY3phasSFY3kgcG9sZSB3eW1hZ2FuZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1d5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdXeW1hZ2FqIHd5cGXFgm5pZW5pYSB0ZWdvIHBvbGEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ1VrcnlqIGV0eWtpZXTEmSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdVa3J5aiBuYXp3xJkgdGVnbyBwb2xhIHcgd2lkb2t1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXR5Y3pueSB0ZWtzdCBkbyB3ecWbd2lldGxlbmlhJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnUmVnZXggKHJlZ3XFgmthKSBkbyB3YWxpZGFjamknOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0xpc3RhIGxpbmlpIGRvIHd5xZt3aWV0bGVuaWEnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0JleiB3YXJ0b8WbY2kgZG9tecWbbG55JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU3Ryb25hIHByemVraWVyb3dhbmlhIHBvIHphdHdpZXJkemVuaXUnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1d5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnVWtyeWogYsWCxJlkeSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVHlwIHd5xZt3aWV0bGFuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnVXN0YXcgd2lhZG9tb8WbY2kgbyBixYLEmWRhY2ggaSBkemlhxYJhbml1IHN5c3RlbXUgKGRlYnVnKSBuaWV3aWRvY3puZSBkbGEgdcW8eXRrb3duaWsmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdTemFibG9uIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYWtzeW1hbG55IHJvem1pYXIgcGxpa3Ugd2dyeXdhbmVnbyAoa2lsb2JhanR5KSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RlbiBsaW1pdCBqZXN0IGRvZGF0a293eW0gbGltaXRlbSAtIG5hIHBld25vIFR3Jm9hY3V0ZTtqIHNlcndlciBsdWIgasSZenlrIFBIUCBtYSBzd29qZSB3xYJhc25lIG9ncmFuaWN6ZW5pYS4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdEb3p3b2xvbmUgcm96c3plcnplbmlhJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdXcGlzeiBsaXN0xJkgcm96c3plcnplxYQgcG8gcHJ6ZWNpbmt1LCBiZXoga3JvcGVrIChucC4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNqZSBixJlkxIUgaWdub3Jvd2FuZS4gUG96b3N0YXdpYWrEhWMgdG8gcG9sZSBwdXN0ZSAtIG5pZSBixJlkemllIG9ncmFuaWN6ZcWEIHcgc3lzdGVtaWUhJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdXecWbd2lldGxhxIcgZG96d29sb25lIHJvenN6ZXJ6ZW5pYT8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnV3nFm3dpZXRsIGthxbxkZSBvZ3JhbmljemVuaWUgcm96bWlhcnUgaSByb3pzemVyemVuaWEgcHJ6eSBwb2xhY2ggd2dyeXdhbmlhIHBsaWsmb2FjdXRlO3c/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdTemFibG9uIGRvIHXFvHljaWEgcHJ6eSBXecWbd2lldGxhbml1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdTdHJvbmEgJXMgeiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnVG8gcG9sZSBuaWUgbWEgb3BjamkgemFhd2Fuc293YW55Y2gnOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1Rla3N0IGluZm9ybWFjamkgcHJ6eSBuaWV3cGlzYW5laiB3YXJ0b8WbY2kgcG9sYSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTGlzdGEgbmFkIGZvcm11bGFyemVtLCB1c3ByYXduaWFqxIVjYSBkb2Rhd2FuaWUgbm93eWNoIHAmb2FjdXRlO2wuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnV8WCxIVjeiBsaXN0xJkgc3p5YmtpZWdvIHd5YmllcmFuaWEgbm93ZWdvIHBvbGEgZGxhIGZvcm11bGFyenk/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTenlia2kga3JlYXRvciBub3d5Y2ggcCZvYWN1dGU7bCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ1phem5hY3phasSFYyB0xJkgb3BjasSZIHBvendvbGlzeiBuYSB3eXPFgmFuaWUgdHlsa28gMTAgZW1haWxpIHogamVkbmVnbyBhZHJlc3UgSVAgLSB3IGNpxIVndSBqZWRuZWogZ29kemlueS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnV8WCxIVjeiBwcnltaXR5d25lIG9wY2plIGFudHktc3BhbW93ZT8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Bva2F6IElEIHAmb2FjdXRlO2wnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnWmF6bmFjemFqxIVjIHTEmSBvcGNqxJkgd3nFm3dpZXRsaSBudW1lciBJRCBnZHkgZG9kYWplc3ogbHViIGVkeXR1amVzeiBmb3JtdWxhcnonOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1dncmFqIGZvcm11bGFyeiB6IHBsaWt1IFhNTCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVcW8eXdhaiB0ZWogbmF6d3kgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnSW1wb3J0IGZvcm11bGFyemEgWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVcW8eXdhaiB0ZWdvIGFsaWFzdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcnVqIGVtYWlsIGZvcm1hdHUgSFRNTD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8mcXVvdDs+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRmllbGRzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMgbWF5IGFsc28gYmUgYWNjZXNzZWQgdmlhIHRoZSBzbWFydHkgdmFsdWUgb2YgJGZpZWxkbmFtZV9hcnJheSBvciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnUG8gd3lzxYJhbml1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1ByenljaXNraSBha2NqaSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdTdGFydCB6YWtyZXN1IGxhdCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0tvbmllYyB6YWtyZXN1IGxhdCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEb215xZtsbnkgcm9rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFVzdGF3IGpha28gLTEgYnkgZG9tecWbbG55bSBiecWCIG9iZWNueSByb2spJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdQbyB3eXPFgmFuaXUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdPZHBvd2llZMW6IGRvIHd5xZt3aWV0bGVuaWEnOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnV3nFm3dpZXRsIHN6YWJsb24gd3lzecWCYW5pYSc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUHJ6ZWtpZXJ1aiBkbyBzdHJvbnkgc2Vyd2lzdSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRG9jZWxvd2Egc3Ryb25hJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ05hend5IHAmb2FjdXRlO2wgc8SFIHd5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnV3ltYWdhaiwgxbxlYnkga2HFvGUgcG9sZSBtaWHFgm8gc3dvasSFIG5henfEmT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdXeW1hZ2FqIHVuaWthbG55Y2ggbmF6dyBwJm9hY3V0ZTtsJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdXeW1hZ2FqLCDFvGVieSB3c3p5c3RraWUgbmF6d3kgcCZvYWN1dGU7bCBiecWCeSB1bmlrYWxuZSAociZvYWN1dGU7xbxuacWCeSBzacSZIG9kIHNpZWJpZSk/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1ByemVncnVwdWogcG9sYSc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnWmHFgmFkdWogc3phYmxvbic7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdUZWtzdCBwcnp5Y2lza3UgJnF1b3Q7RG9kYWomcXVvdDsnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnVGVrc3QgcHJ6eWNpc2t1ICZxdW90O1NrYXN1aiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXR1aiB6bWllbm5lIGpha28gbnVtZXJ5IGx1YiDFgmHFhGN1Y2h5IHpuYWtvd2UgKHN0cmluZ2kpJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnUG9yesSFZGVrIGludGVycHJldG93YW5pYSc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1dhcnRvxZvEhyBkbyBvYmxpY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ8WBYcWEY3VjaCB6bmFrb3d5IChzdHJpbmcpJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcnljem5lJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnV3nFm3dpZXRsYWogZm9ybXVsYXJ6IHcgdHJlxZtjaSBzdHJvbnkgKGlubGluZSk/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdXecWbd2lldGxhbmllIHcgdHJlxZtjaSBvem5hY3phLCDFvGUgZm9ybXVsYXJ6IHphc3TEmXB1amUgem5hY3puaWsge2Ntc19tb2R1bGV9LCBiZXogdGVnbyB1c3Rhd2llbmlhIGZvcm11bGFyeiB6YXN0xIVwaSBjYcWCxIUgdHJlxZvEhyBzdHJvbnksIGN6eWxpIHpuYWN6bmlrIHN6YWJsb251IHtjb250ZW50fS4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1dhcnRvxZvEhyBkb215xZtsbmEgZGxhIHBvbGEnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ1d5Y3p5xZtjacSHIHdhcnRvxZvEhyBkb215xZtsbsSFIHBvIGtsaWtuacSZY2l1Pyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdaYXpuYWN6IHTEmSBvcGNqxJkgYnkgc2lsbmlrIHd5a2Fzb3dhxYIgZG9tecWbbG7EhSB3YXJ0b8WbxIcga2llZHkgdcW8eXRrb3duaWsgbmFjacWbbmllIG5hIHRvIHBvbGUgdyBmb3JtdWxhcnp1JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTemFibG9uIGRvbXnFm2xueSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnU3phYmxvbiB0YWJlbGtpLCB0eXR1xYJ5IHBvIGxld2VqJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gdGFiZWxraSwgdHl0dcWCIG5hIGcmb2FjdXRlO3J6ZSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdTemFibG9uIHogJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnQsWCxIVkIHByenkgb2JsaWN6YW5pdSB3YXJ0b8WbY2kgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdTdHljemXFhCc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnTHV0eSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyemVjJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdLd2llY2llxYQnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWonOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnQ3plcndpZWMnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnTGlwaWVjJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnU2llcnBpZcWEJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnV3J6ZXNpZcWEJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ1Bhxbpkemllcm5payc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTGlzdG9wYWQnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0dydWR6aWXFhCc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05hendhIGZvcm11bGFyemEnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0JiMwMzk7cyB0aGUgd2F5IHlvdSBzd2luZyk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAmcXVvdDtwYWdlIHggb2YgeSZxdW90OyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+Y3NzX2NsYXNzPC90ZD48dGQ+Q1NTIENsYXNzIGZvciB0aGUgZm9ybTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Rm9ybSBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+cHJldjwvdGQ+PHRkPiZxdW90O0JhY2smcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O0NvbnRpbnVlJnF1b3Q7IG9yICZxdW90O1N1Ym1pdCZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtcywgYWRqdXN0cyBhdXRvbWF0aWNhbGx5PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKCYjMDM5Oykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+DQoNCjxoMz5Xb3JraW5nIHdpdGggRm9ybXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Gb3JtIFN1Ym1pc3Npb248L2g0Pg0KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlciYjMDM5O3MgZm9ybSBlbnRyaWVzLCBvciBqdXN0IHN0YXRpYyB0ZXh0KS4gSW4gdGhpcyB0YWIsIHlvdSBzZWxlY3Qgd2hpY2ggb2YgdGhlc2UgYXBwcm9hY2hlcyB5b3Ugd2lzaCB0byB1c2UsIGFuZCwgaWYgeW91IGNob3NlIHJlZGlyZWN0aW9uLCBpdCBhbGxvd3MgeW91IHRvIHBpY2sgdGhlIHBhZ2UgdG8gcmVkaXJlY3QgdXNlcnMgdG8gYWZ0ZXIgYSBzdWNjZXNzZnVsIGZvcm0gc3VibWlzc2lvbi48L3A+DQo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKCZxdW90O1ByZXZpb3VzJnF1b3Q7LCAmcXVvdDtuZXh0JnF1b3Q7LCAmcXVvdDtzdWJtaXQmcXVvdDspLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+DQo8aDQ+Rm9ybSBEaXNwbGF5IE9wdGlvbnM8L2g0Pg0KPHA+VGhpcyB0YWIgYWxsb3dzIGZvciBvdGhlciBmb3JtIGN1c3RvbWl6YXRpb25zLCBsaWtlIHRoZSBzeW1ib2wgdG8gc2hvdyBmb3IgcmVxdWlyZWQgZmllbGRzLjwvcD4NCjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4NCjxwPklmIHlvdSBoYXZlIGluc3RhbGxlZCB0aGUgQ2FwdGNoYSBtb2R1bGUsIHRoaXMgdGFiIGxldHMgeW91IGNvbmZpZ3VyZSB0aGUgQ2FwdGNoYSBzZXR0aW5ncyBmb3IgeW91ciBmb3JtLjwvcD4NCjxoND5Gb3JtIFRlbXBsYXRlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+DQo8cD5JZiwgaW4gdGhlIEZvcm0gU3VibWlzc2lvbiB0YWIsIHlvdSBzZWxlY3RlZCAmIzAzOTtEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDssIHRoaXMgaXMgd2hlcmUgeW91IGNhbiBjcmVhdGUgdGhhdCB0ZW1wbGF0ZS4gVGhlcmUgaXMgYSBkaXNwbGF5IG9mIHdoaWNoIHNtYXJ0eSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0byB5b3UsIGFuZCBhIGJ1dHRvbiB0byBnZW5lcmF0ZSBhIHNhbXBsZSB0ZW1wbGF0ZS48L3A+DQo8cD5JZiB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBjYW4gZG8gYWxsIG1hbm5lciBvZiBjcmVhdGl2ZSBhbmQgcG93ZXJmdWwgdGhpbmdzIGhlcmUuIElmIHlvdSYjMDM5O3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCYjMDM5O3Mgc3VibWl0dGVkIHNvIHlvdSBrbm93IHdoYXQgdGhlIHVzZXIgaXMgcmVzcG9uZGluZyB0by4gUGhyYXNpbmcgdGhlIG5hbWUgbGlrZSBhIHF1ZXN0aW9uDQppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4NClRoZSBOYW1lcyBhcmUgd2hhdCBnZXRzIHNob3duIHRvIHRoZSB1c2VyOyB0aGUgVmFsdWUgaXMgd2hhdCBnZXRzIHNhdmVkIG9yIHRyYW5zbWl0dGVkIHdoZW4gdGhlIHVzZXIgc3VibWl0cw0KdGhlIGZvcm0uIFRoZSBWYWx1ZXMgYXJlIG5ldmVyIHNlZW4gYnkgdGhlIHVzZXIsIG5vciBhcmUgdGhleSB2aXNpYmxlIGluIHRoZSBIVE1MLCBzbyBpdCYjMDM5O3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgJnF1b3Q7UmVxdWlyZWQmcXVvdDssIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gJnF1b3Q7dmlldyBzb3VyY2UmcXVvdDsgb24gdGhlIGdlbmVyYXRlZCBmb3JtLCBhbmQgdGhlbg0Kd3JpdGUgeW91ciBDU1MuPC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0cw0KPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uDQpmdW5jdGlvbnMgdG8gdGhlIGZpZWxkLjwvbGk+DQo8bGk+VGV4dCBBcmVhLiBUaGlzIGlzIGEgYmlnLCBmcmVlLWZvcm0gdGV4dCBpbnB1dCBmaWVsZC48L2xpPg0KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+DQo8bGk+Q2hlY2tib3ggR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIGNoZWNrYm94ZXMuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzIGlucHV0IGFuZCBhDQpjb2xsZWN0aW9uIG9mIENoZWNrYm94IGlucHV0cyBpcyB0aGF0IHRoZXkgYXJlIHByZXNlbnRlZCBhcyBhIGdyb3VwLCB3aXRoIG9uZSBuYW1lLCBhbmQgY2FuIGhhdmUgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHJlcXVpcmluZyB0aGF0IHlvdSBjaGVjayBvbmUgb3IgbW9yZSBvZiB0aGUgYm94ZXMgaW4gdGhlIGdyb3VwLjwvbGk+DQo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4NCjxsaT5QdWxsZG93bi4gVGhpcyBpcyBhIHN0YW5kYXJkIHB1bGxkb3duIG1lbnUuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0JiMwMzk7cyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91XCYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+Rm9ybSBIYW5kbGluZyBJbnB1dHMgKERpc3Bvc2l0aW9ucykNCjx1bD48bGk+KkNhbGwgYSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cy4gVGhpcyBzdWJtaXRzIGFsbCB0aGUgZm9ybSByZXN1bHRzIHRvIHRoZSBVc2VyLURlZmluZWQgVGFnIHlvdSBzcGVjaWZ5LiBUaGUgVURUIGNhbiBoYW5kbGUgdGhlIHJlc3VsdHMgaG93ZXZlciBpdCB3YW50cy48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfPGk+RklFTEROQU1FPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAmIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7LjwvcD4NCjxwPlRoaXMgY2FuIGJlIHByb2JsZW1hdGljLCBhcyBzb21ldGltZXMgZmllbGQgbmFtZXMgYXJlIHVud2VpbGR5IG9yIGNvbnRhaW4gY2hhcmFjdGVycyB0aGF0IGRvbiYjMDM5O3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O215X2Zvcm0mIzAzOTsgdmFsdWVfZmxkPGk+TlVNQkVSPC9pPj0mIzAzOTtkZWZhdWx0X3ZhbHVlJiMwMzk7fTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgJnF1b3Q7U2hvdyBGaWVsZCBJRHMmcXVvdDs8L3A+DQoNCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+DQo8cD5NYW55IGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXQmIzAzOTtzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlICZxdW90O0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUmcXVvdDsgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91JiMwMzk7bGwgZmluZCBhIGxlZ2VuZCB3aGljaCBsaXN0cyBhbGwgb2YgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBhdmFpbGFibGUgdG8geW91IHRvIHVzZSBpbiB5b3VyIHRlbXBsYXRlLiBBcyBvZiB2ZXJzaW9uIDAuMywgdmFyaWFibGVzIGhhdmUgdHdvIG5hbWVzLCBvbmUgYmFzZWQgb24gdGhlIGZpZWxkIG5hbWUsIHRoZSBvdGhlciBiYXNlZCBvbiB0aGUgZmllbGQgSUQuIElmIHlvdSB1c2UgZmllbGQgbmFtZXMgdGhhdCBoYXZlIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiB0aGUgQVNDSUkgMzItMTI2IHJhbmdlLCBpdCB3aWxsIGJlIHNhZmVyIHRvIHVzZSB0aGUgSUQtYmFzZWQgdmFyaWFibGVzLjwvcD4NCjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91JiMwMzk7dmUgY2hhbmdlZCBhIHRlbXBsYXRlLCBpdCB3aWxsIG5vIGxvbmdlciBhdXRvbWF0aWNhbGx5IGFkZCBuZXcgZmllbGRzLjwvc3Ryb25nPiBGb3IgdGhpcyByZWFzb24sIGl0JiMwMzk7cyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJnF1b3Q7IGJ1dHRvbiBvdmVyIGluIHRoZSBsZWdlbmQgYXJlYS4gRm9yIEhUTUwgZW1haWwsIHRoZSBlbWFpbCBib2R5IHdpbGwgYWxzbyBwcm92aWRlIHRoZSBkZWZhdWx0IHRleHQtb25seSB2YWx1ZXMuPC9wPg0KDQo8aDM+Q29uZmlndXJhdGlvbjwvaDM+DQo8cD5UaGVyZSBhcmUgc29tZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBGb3JtQnVpbGRlcjo8L3A+DQo8dWw+DQo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4NCjxsaT5IaWRlIEVycm9ycy4gVGhpcyBpcyBzZXQgYnkgZGVmYXVsdC4gVW5jaGVja2luZyBpdCB3aWxsIGNhdXNlIG1vcmUgZGV0YWlsZWQgZXJyb3JzIHRvIGJlIGRpc3BsYXllZCBpZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPlJlcXVpcmUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBiZSBuYW1lZCBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMsIHlvdSBtaWdodCB3YW50IHRvIGhhdmUgbmFtZWxlc3MgZmllbGRzLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgbmFtZWxlc3MgZmllbGRzLjwvbGk+DQo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+DQo8bGk+VXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbi4gVGhpcyB1c2VzIGEgbGVzcyByZXN0cmljdGl2ZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHZhbGlkYXRpbmcgZW1haWw7IGUuZy4sIHhAeSB3aWxsIGJlIGFsbG93ZWQsIHdoZXJlIHR5cGljYWxseSB4QHkudGxkIGlzIHJlcXVpcmVkLjwvbGk+DQo8bGk+U2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbi4gRGlzcGxheXMgdGhlIHZlcnNpb24gb2YgRm9ybUJ1aWxkZXIgeW91JiMwMzk7cmUgdXNpbmcgaW4gYSBjb21tZW50IHdoZW4gdGhlIGZvcm0gaXMgZ2VuZXJhdGVkLiBUeXBpY2FsbHkgb25seSB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmcuPC9saT4NCjxsaT5FbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy4gV2hlbiB0dXJuZWQgb24sIHRoaXMgYWxsb3dzIGFueSBnaXZlbiBJUCBhZGRyZXNzIHRvIG9ubHkgZ2VuZXJhdGUgMTAgZW1haWxzIHBlciBob3VyLjwvbGk+DQo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+DQo8L3VsPg0KPGgzPlN0eWxpbmcgYW5kIENTUzwvaDM+DQo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPg0KPHByZT4NCgkvKiBTYW1wbGUgRm9ybUJ1aWxkZXIgQ1NTIGJhc2UgKi8NCglmb3JtIHttYXJnaW4tdG9wOjB9DQoJZm9ybSwgdGQsIHRoLCBsaSB7IGZvbnQtc2l6ZTogMTAwJX0NCglmb3JtIGRpdiB7bWFyZ2luLWJvdHRvbTowfQ0KCWZpZWxkc2V0IGRpdiB7DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbTsNCgl9DQoJZmllbGRzZXQgZGl2IGRpdiB7DQoJCW1hcmdpbi10b3A6MC41ZW07DQoJCW1hcmdpbi1sZWZ0OjFlbQ0KCX0NCglmaWVsZHNldCB7DQoJCW1hcmdpbi1ib3R0b206MWVtOw0KCQlib3JkZXI6MXB4IHNvbGlkICNGNjA7DQoJCXBhZGRpbmc6MC41ZW0NCgl9DQoJZmllbGRzZXQgbGFiZWwgew0KCQl3aWR0aDphdXRvOw0KCX0NCglsZWdlbmQgew0KCQljb2xvcjojRkZGOw0KCQliYWNrZ3JvdW5kOiNGNjA7DQoJCWZvbnQtc3R5bGU6aXRhbGljOw0KCQlmb250LXNpemU6MS4yZW07DQoJCW1hcmdpbi1ib3R0b206MC41ZW07DQoJCXBhZGRpbmc6MC4yZW07DQoJCXdpZHRoOmF1dG87DQoJCWJvcmRlcjoxcHggc29saWQgI0NDQw0KCX0NCgl0ZXh0YXJlYSB7DQoJCW1hcmdpbjogMC41ZW0gMDsNCgkJd2lkdGg6OTglOw0KCQloZWlnaHQ6IDZlbQ0KCX0NCg0KCS8qIEFwcGx5IHRoaXMgY2xhc3MgdG8gdGV4dC9zZWxlY3QgaW5wdXQgZmllbGRzIHdpdGggc2hvcnRlciBsYWJlbHMNCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8NCgkuc2hvcnQtbGFiZWwgbGFiZWwge2Zsb2F0OmxlZnQ7IHdpZHRoOjEwZW19DQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBpbnB1dCwNCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0NCg0KCS8qIFByZXR0eSB1cCB5b3VyIENhcHRjaGEgaW1hZ2Ugb3V0cHV0ICovDQoJLmNhcHRjaGEgew0KCQltYXJnaW46MC41ZW0gMDsNCgkJd2lkdGg6MjAwcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyDQoJfQ0KCS5jYXB0Y2hhIGltZyB7Ym9yZGVyOjFweCBzb2xpZCAjRjYwOyBtYXJnaW4tYm90dG9tOjAuNWVtfQ0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0NCg0KCS8qIEp1c3QgYSBiaXQgbW9yZSByb29tIGZvciB0aGUgU3VibWl0IGJ1dHRvbiAqLw0KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19DQo8L3ByZT4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCg0KPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBjYW5ub3QgeWV0IGJlIGlubGluZWQuIFRoYXQgc2hvdWxkIGJlIGEgc2ltcGxlIHVwZ3JhZGUgZG93biB0aGUgbGluZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0mcXVvdDtpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMmcXVvdDs+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjQuNC4gMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMy4gMTggU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHB1bGxkb3ducyB1c2luZyBudW1iZXJzLCBvcHRpb24gdG8gaW5saW5lIGZvcm0sIGZpeGVzIGZvciB0YWJsZS1sYXlvdXRzIHByb3ZpZGVkIGJ5IEFwIE11dGh1LCBmaXggZm9yIHJlcXVpcmFiaWxpdHkgb2YgRGlzcG9zaXRpb25zLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMi4gMTQgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIFhNTCBleHBvcnQsIFJhZGlvQnV0dG9uIEdyb3VwIHN1Ym1pc3Npb24sIGFuZCBIVE1MIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjEuIEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQNCgk8dWw+DQoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+DQoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlPC9saT4NCgkJPGxpPk1hc3NpdmUgcmVqaWdnZXJpbmcgb2YgY29kZSB0byB3b3JrIHdpdGggQ01TIE1TIDEuMSBwYXJhbWV0ZXIgc2FuaXRpemluZyByZWdpbWU8L2xpPg0KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6ICZxdW90O1RleHRGaWVsZCAoTXVsdGlwbGUpJnF1b3Q7IGFuZCAmcXVvdDtDb21wdXRlZCBGaWVsZCZxdW90OzwvbGk+DQoJCTxsaT5BZGRlZCBkaXNwb3NpdGlvbnM6ICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJnF1b3Q7IGFuZCAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJnF1b3Q7KENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPg0KCQk8bGk+QWRkZWQgYWJpbGl0eSB0byBwYXNzIGRlZmF1bHQgdmFsdWVzIHRvIGZvcm0gZWxlbWVudHMgZnJvbSBtb2R1bGUgdGFnIHVzaW5nIHZhbHVlX0ZJRUxETkFNRT0mcXVvdDt2YWx1ZSZxdW90OyBzeW50YXggKENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgb3B0aW9uIHRvIGRpc3BsYXkgZmllbGQgaWRzIGluIGFkbWluIChDYWxndXkpPC9saT4NCgk8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMw0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4NCiAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDwvbGk+DQogICAgICA8bGk+QWRkZWQgUGF1bCBOb29uZSYjMDM5O3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRhdGlvbiBvZiBFbWFpbCBTdWJqZWN0IEZpZWxkPC9saT4NCiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4NCiAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzwvbGk+DQogICAgICA8bGk+QWRkZWQgRHJhZyYjMDM5O24mIzAzOTtEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4NCiAgICAgIDxsaT5BZGRlZCBub24tYmxhbmsgZmllbGQgbmFtZSBhbmQgdW5pcXVlIGZpZWxkIG5hbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgdmFsaWRhdGlvbjwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50ZWQgdGVtcGxhdGVkIGRpc3BsYXkgb2YgZm9ybSByZXN1bHRzIHVwb24gc3VibWlzc2lvbiBpbiBhZGRpdGlvbiB0byBwYWdlIHJlZGlyZWN0aW5nPC9saT4NCiAgICAgIDxsaT48L2xpPg0KICAgPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3DQogICA8cD5CaWcgcmVsZWFzZTo8dWw+DQogICA8bGk+QWRkZWQgJnF1b3Q7RW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MmcXVvdDsgZGlzcG9zaXRpb24uPC9saT4NCiAgIDxsaT5BZGRlZCAmcXVvdDtUaW1lUGlja2VyJnF1b3Q7IGZpZWxkIHR5cGUuIFNwbGl0ICZxdW90O0xpbmsmcXVvdDsgZmllbGQgaW50byBhICZxdW90O1VzZXItc3VwcGxpZWQgTGluayZxdW90OyBmaWVsZCBhbmQgYSAmcXVvdDtTdGF0aWMgTGluayZxdW90OyBmaWVsZC48L2xpPg0KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPg0KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4NCiAgIDxsaT5BZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjMNCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4yDQogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4NCiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzDQogICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQ0KICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkDQogICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4NCiAgICAgIDwvcD4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwNCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4NCiAgICAgIDwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjg3NjI2NTI5MC4xMTc1OTU3ODQ1LjExNzU5NTc4NDUuMTE3NTk3ODE4OS4yJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IEVuZCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnRGlnaXRlIHVtIHZhbG9yIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnRGlnaXRlIHVtIG51bWVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0RpZ2l0ZSB1bWEgZW50cmFkYSB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnRGlnaXRlIHVtIEUtbWFpbCB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdEaWdpdGUgdW0gTnVtZXJvIGRlIFRlbGVmb25lIHYmYWFjdXRlO2xpZG8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuJmF0aWxkZTtvIHBhcmVjZSBzZXIgdW0gRS1tYWlsIHYmYWFjdXRlO2xpZG8hJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdEaWdpdGUgdW0gdmFsb3IgcXVlIG4mYXRpbGRlO28gc2VqYSBtYWlzIGRvIHF1ZSAlcyBjYXJhY3RlcmVzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgJnF1b3Q7JXMmcXVvdDsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgb3BlcmF0aW9uLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBZb3UgZG9uJiMwMzk7dCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZpZWxkIGRlbGV0ZWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAmcXVvdDslcyZxdW90OyBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ1lvdSBuZWVkIHRvIHNwZWNpZnkgYXQgbGVhc3Qgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGaWVsZHMgbXVzdCBiZSBuYW1lZCwgdW5sZXNzIHlvdSBkaXNhYmxlIHRoaXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1vdXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddID0gJ2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cGRhdGVkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQgb3B0aW9ucyBvbiBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIEhvdXIgQ2xvY2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0IEhvdXIgQ2xvY2snOwokbGFuZ1snaG91ciddID0gJ0hvdXInOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkYXknXSA9ICdEYXknOwokbGFuZ1snbW9uJ10gPSAnTW9udGgnOwokbGFuZ1sneWVhciddID0gJ1llYXInOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3QgT25lJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZGQgTmV3IEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FkZCBOZXcgRmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxJiMwMzk7ZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0hpZGUgRXJyb3JzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtIERpc3BsYXkgVHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnUHJldmVudCBkZWJ1ZyAvIGVycm9yIG1lc3NhZ2VzIGZyb20gYmVpbmcgc2VlbiBieSB1c2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbXVtIHVwbG9hZCBmaWxlIHNpemUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaGlzIGxpbWl0YXRpb24gaXMgaW4gYWRkaXRpb24gdG8gYW55IGxpbWl0cyBzZXQgYnkgdGhlIHBocCBvciB3ZWIgc2VydmVyIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdQZXJtaXR0ZWQgRXh0ZW5zaW9ucyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8mcXVvdDs+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhJnF1b3Q7IHRhcmdldD0mcXVvdDtfbmV3JnF1b3Q7PiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyeSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmNoJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01heSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5lJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bHknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXInOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0b2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdEZXNjdWxwZSEgSG91dmUgdW0gZXJybyBkZSBtYW5pcHVsYSZjY2VkaWw7JmF0aWxkZTtvIG5vIHNldSBmb3JtdWwmYWFjdXRlO3Jpby4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAmcXVvdDtUZXh0RmllbGQgKE11bHRpcGxlKSZxdW90OyBhbmQgJnF1b3Q7Q29tcHV0ZWQgRmllbGQmcXVvdDs8L2xpPg0KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biZxdW90OyBhbmQgJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyZxdW90OyhDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG5lYXQtbyBBSkFYLXkgdGVtcGxhdGUtY29weWluZyBmb3IgRm9ybSBUZW1wbGF0ZXMsIGdhdmUgdmVyc2lvbnMgb2Ygb2xkIHRhYmxlLWJhc2VkIHRlbXBsYXRlcyB0byBzb290aGUgdGhlIHJhZ2luZyBtYXNzZXMuPC9saT4NCgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9JnF1b3Q7dmFsdWUmcXVvdDsgc3ludGF4IChDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjMNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+DQogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUmIzAzOTtzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWcmIzAzOTtuJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+DQogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+DQogICAgICA8bGk+PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNw0KICAgPHA+QmlnIHJlbGVhc2U6PHVsPg0KICAgPGxpPkFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgJnF1b3Q7VGltZVBpY2tlciZxdW90OyBmaWVsZCB0eXBlLiBTcGxpdCAmcXVvdDtMaW5rJnF1b3Q7IGZpZWxkIGludG8gYSAmcXVvdDtVc2VyLXN1cHBsaWVkIExpbmsmcXVvdDsgZmllbGQgYW5kIGEgJnF1b3Q7U3RhdGljIExpbmsmcXVvdDsgZmllbGQuPC9saT4NCiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4NCiAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLjwvbGk+DQogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4zDQogICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMg0KICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICA8bGk+QWRkIFBhZ2VTZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcw0KICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZA0KICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZA0KICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICA8L3A+DQogICAgICA8L2xpPg0KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsDQogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICA8L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3JiMwMzk7cyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA4ODE0NzE4LjEuMS51dG1jY249KGRpcmVjdCl8dXRtY3NyPShkaXJlY3QpfHV0bWNtZD0obm9uZSknOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNDAxMjI2MTYxLjEyMDg4MTQ3MTguMTIwODgyMzI5Ny4xMjA4OTA2Mjk4LjMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ru_RU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ9Ca0L7QvdGB0YLRgNGD0LrRgtC+0YAg0YTQvtGA0LwnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICfQndC1INGD0LrQsNC30LDQvSDRgtC40L8g0L/QvtC70Y8nOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ9Ca0L7QvdC10YYg0LPRgNGD0L/Qv9GLINC/0L7Qu9C10LknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAn0J3QsNGH0LDQu9C+INCz0YDRg9C/0L/RiyDQv9C+0LvQtdC5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAn0KLQtdC60YHRgtC+0LLQvtC1INC/0L7Qu9C1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICfQotC10LrRgdGC0L7QstC+0LUg0L7QutC90L4nOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAn0JrQvtC90YLRgNC+0LvRjNC90YvQuSDQuNC90LTQuNC60LDRgtC+0YAnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICfQk9GA0YPQv9C/0LAg0LrQvtC90YLRgNC+0LvRjNC90YvRhSDQuNC90LTQuNC60LDRgtC+0YDQvtCyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ9CS0YvQv9Cw0LTQsNGO0YnQuNC5INGB0L/QuNGB0L7Quic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICfQktGL0LHQvtGAINGI0YLQsNGC0L7QsiDQodCo0JAnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgIkZyb20gQWRkcmVzcyIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAiRnJvbSBOYW1lIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsICJTdWJqZWN0IiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdIaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc25cJ3QgbWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdBIHZhbHVlIHdhcyBub3Qgc3VwcGxpZWQgZm9yIGEgcmVxdWlyZWQgZmllbGQnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCDQt9Cw0L/QvtC70L3QuNGC0LUgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICfQn9C+0LbQsNC70YPQudGB0YLQsCDQt9Cw0L/QvtC70L3QuNGC0LUgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ9CS0LLQtdC00LjRgtC1INC60L7RgNGA0LXQutGC0L3Ri9C5IGVtYWlsINCw0LTRgNC10YEg0LIg0L/QvtC70LUgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICciJXMiIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWx1ZSB0aGF0IGlzIG5vIGxvbmdlciB0aGFuICVzIGNoYXJhY3RlcnMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAiJXMiIHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvblwndCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZpZWxkIGRlbGV0ZWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcy4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bW91cyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIGJveGVzJzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcHRpb25zJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZXInOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbdW5zcGVjaWZpZWRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnYWRkZWQnOwokbGFuZ1sndXBkYXRlZCddID0gJ3VwZGF0ZWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnVG8nOwokbGFuZ1sneWVzJ10gPSAnWWVzJzsKJGxhbmdbJ25vJ10gPSAnTm8nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdTYXZlJzsKJGxhbmdbJ2FkZCddID0gJ0FkZCc7CiRsYW5nWyd1cGRhdGUnXSA9ICdVcGRhdGUnOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYXZlIGFuZCBDb250aW51ZSBFZGl0aW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXMnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heC4gU2l6ZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcm93cyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29scyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgSG91ciBDbG9jayc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgSG91ciBDbG9jayc7CiRsYW5nWydob3VyJ10gPSAnSG91cic7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWydtb24nXSA9ICdNb250aCc7CiRsYW5nWyd5ZWFyJ10gPSAnWWVhcic7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICfQntGC0L/RgNCw0LLQuNGC0YwnOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZWNrZWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnVW5jaGVja2VkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRm9ybSBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0FkdmFuY2VkIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1RlbXBsYXRlIExheW91dCBPcHRpb25zJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FkZCBNb3JlIE9wdGlvbnMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdEZWxldGUgTWFya2VkIE9wdGlvbnMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBZGQgTW9yZSBDaGVja2JveGVzJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnRGVsZXRlIE1hcmtlZCBDaGVja2JveGVzJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnQWRkIEFub3RoZXIgQWRkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ0RlbGV0ZSBNYXJrZWQgQWRkcmVzc2VzJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FkZCBBbm90aGVyIERlc3RpbmF0aW9uJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0RlbGV0ZSBNYXJrZWQgRGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgInhAeSIgaW5zdGVhZCBvZiByZXF1aXJpbmcgInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICciRnJvbSBhZGRyZXNzIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTm90IFJlYWR5JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXJcJ3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZGQgTmV3IEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FkZCBOZXcgRmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBTdWJtaXQgQnV0dG9uIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAiTmV4dCIgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gIlByZXZpb3VzIiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdSZXF1aXJlIGEgcmVzcG9uc2UgZm9yIHRoaXMgRmllbGQnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbCddID0gJ0hpZGUgTGFiZWwnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkXCdzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgInZhbGlkYXRpb24gdHlwZSIgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgIi9pbWFnZVxcLihcXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxXCdkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgImpwZyxnaWYsanBlZyIpLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnU2hvdyBGaWVsZCBJRHMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyYXRlIEhUTUwgZW1haWw/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ0RlZmF1bHQgbGluayBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnRGVmYXVsdCBsaW5rIHRleHQnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnT3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGaWVsZHMgdGhhdCBoYXZlIG11bHRpcGxlIHZhbHVlcyBtYXkgYWxzbyBiZSBhY2Nlc3NlZCB2aWEgdGhlIHNtYXJ0eSB2YWx1ZSBvZiAkZmllbGRuYW1lX2FycmF5IG9yICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz50aGUgUEhQIE1hbnVhbDwvYT4gZm9yIGZvcm1hdHRpbmcgaGVscC4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnVmFyaWFibGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICfCqyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuXCd0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgIkRpc3Bvc2l0aW9uIiBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgImFkdmFuY2VkIiB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgIiVzIi4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdVwncmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICJkZWZhdWx0IiB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyeSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyY2gnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5JzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmUnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uDQonOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3VcJ2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91XCdsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+RmllbGQ8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgaXMgcmVxdWlyZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWRfc3ltYm9sPC90ZD48dGQ+dGhlIHN5bWJvbCBmb3IgcmVxdWlyZWQgZmllbGRzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgaWYgdGhpcyBmaWVsZCBoYXMgcGFzc2VkIHZhbGlkYXRpb24sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD5UZXh0IG9mIHRoZSB2YWxpZGF0aW9uIHByb2JsZW0sIGluIHRoZSBldmVudCB0aGF0IHRoaXMgZmllbGQgZGlkIG5vdCB2YWxpZGF0ZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oYXNfbGFiZWw8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCB0eXBlIGhhcyBhIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmVlZHMgdG8gYmUgd3JhcHBlZCBpbiBhIERJViAob3IgdGFibGUgcm93LCBpZiB0aGF0XCdzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGRcJ3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkXCdzIGlucHV0IGNvbnRyb2wgKGUuZy4sIHRoZSBpbnB1dCBmaWVsZCBpdHNlbGYpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+b3A8L3RkPjx0ZD5hIGNvbnRyb2wgYnV0dG9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQgaWYgYXBwbGljYWJsZSAoZS5nLiwgdGhlIGRlbGV0ZSBidXR0b24gZm9yIGV4cGFuZGFibGUgdGV4dCBpbnB1dCk8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGRcJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0iIj4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBkYXRhIHR5cGU8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4NCjwvdGFibGU+DQoNCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPg0KICAgIA0KPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGl0bGVfcGFnZV94X29mX3k8L3RkPjx0ZD5kaXNwbGF5cyAicGFnZSB4IG9mIHkiIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4iQ29udGludWUiIG9yICJTdWJtaXQiIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdVwnZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgIk1vZGlmeSBGb3JtcyIgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdVwnbGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0XCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3VcJ3JlDQpyZWFsbHkgZGVzcGVyYXRlLCByZWFkIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT1cJ0Zvcm1CdWlsZGVyXCcgZm9ybT1cJ3NhbXBsZV9mb3JtXCd9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZVwncyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0Ugb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoIiksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzIChcJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLiBZb3UgYWxzbyBzZWxlY3QgdGhlIGRpc3BsYXkgdHlwZS4gWW91ciBjaG9pY2VzIGFyZTo8L3A+DQo8dWw+DQo8bGk+VGFibGUvQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkIHVzaW5nIEhUTUwgdGFibGVzLiBJZiB5b3UgZG9uXCd0IGtub3cgd2hhdCB0byBjaG9vc2UsIHRoaXMgaXMgdGhlIGVhc2llc3Qgb3B0aW9uLCBhbmQgd2lsbCBwcm9iYWJseSBkbyBtb3N0IG9mIHdoYXQgeW91IHdhbnQuIFlvdSBjYW4gc3RpbGwgdXNlIENTUyB0byBzdHlsZSB0aGUgZm9ybSBpZiB5b3Ugd2FudC48L2xpPg0KPGxpPlB1cmUgQ1NTLiBUaGUgZm9ybSBpcyBjcmVhdGVkLCB3aXRoIGFsbCB0aGUgZmllbGRzIHdyYXBwZWQgaW4gPGRpdj4gdGFncy4gWW91IGNhbiB0aGVuIHN0eWxlIHRoZSBmb3JtIGFzIHlvdSBzZWUgZml0LjwvbGk+DQo8bGk+Q3VzdG9tIFRlbXBsYXRlLiBCYXNpY2FsbHksIHlvdSBnZXQgYSBzbWFydHkgdGVtcGxhdGUsIGEgYnVuY2ggb2YgdmFyaWFibGVzLCBhbmQgeW91XCdyZSBvbiB5b3VyIG93bi4gWW91IGhhdmUgdGhlIHBvd2VyIHRvIGNyZWF0ZSB3aGF0ZXZlciB5b3Ugd2FudC48L2xpPg0KPC91bD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU2V0dGluZ3M8L2g0Pg0KPHA+Rm9ybSBTZXR0aW5ncyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBhIGxvdCBvZiB0aGUgbWVzc2FnZXMgYW5kIHRleHQgaW4gdGhlIGNvbnRyb2xzIGZvciB5b3VyIGZvcm0uIEl0IGFsc28gYWxsb3dzIHlvdSB0byBwaWNrIGEgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxoND5UYWJsZS1iYXNlZCBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UYWJsZS1sYXlvdXRzIGhhdmUgZ290dGVuIHNpbXBsZXIsIHNvIHlvdXIgb25seSBvcHRpb24gaGVyZSBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG5hbWVzIHJlbGF0aXZlIHRvIHRoZSBpbnB1dHMuIElmIHlvdVwncmUgdXNpbmcgYSBUYWJsZS9DU1MgbGF5b3V0LCB5b3UgY2FuIHVzZSB0aGlzIHRhYiB0byBzZWxlY3QgdGhlIGZpZWxkIG5hbWUgcG9zaXRpb25zLjwvcD4NCjxoND5UZW1wbGF0ZSBMYXlvdXQgT3B0aW9uczwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBpZiB5b3VyIGZvcm0gdXNlcyBhIEN1c3RvbSBUZW1wbGF0ZS48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBzbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LiBVbmxlc3MgeW91XCdyZSBhIHNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb25cJ3Qgd2FudCB0byBtZXNzIGFyb3VuZCB3aXRoIHRoaXMuIElmIHlvdSBhcmUgYSBzbWFydHkgZXhwZXJ0LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gdW5sZWFzaCB5b3VyIG1hZ2ljLjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0XCdzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXRcJ3Mgc2FmZSB0byB1c2UgZm9yDQplbWFpbCBhZGRyZXNzZXMgYW5kIHN1Y2guPC9wPg0KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLA0KdGhlcmUgbWF5IG5vdCBiZSBzdWZmaWNpZW50IGlucHV0cyBmb3IgeW91IHRvIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgeW91IHdhbnQuIFRvIGdldCBtb3JlIHNwYWNlIGZvciBpbnB1dHRpbmcNCnRoZXNlIHZhbHVlcywgdXNlIHRoZSBidXR0b25zIGF0IHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgZm9yIGFkZGluZyBvcHRpb25zLjwvcD4NCjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwDQplbnN1cmUgdGhhdCB0aGUgdXNlciBlbnRlcnMgdmFsaWQgZGF0YS4gVGhleSBtYXkgYWxzbyBiZQ0Kc2VwYXJhdGVseSBtYXJrZWQgIlJlcXVpcmVkIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAidmlldyBzb3VyY2UiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLjwvbGk+DQo8bGk+TXVsdGlzZWxlY3QuIFRoaXMgaXMgYSBtdWx0aS1zZWxlY3QgZmllbGQuIEl0XCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICJGcm9tIiBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdVwncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgIkRpcmVjdG9yIiBwdWxsZG93bnMsIHRoZSB1c2VyIG11c3QgbWFrZSBhIHNlbGVjdGlvbiBpbiBvcmRlciB0byBzdWJtaXQgdGhlDQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpLiBUaGlzIHNpbXBseSBzZW5kcyB0aGUgZm9ybSByZXN1bHRzIHRvIG9uZSBvciBtb3JlIGVtYWlsIGFkZHJlc3NlcyB0aGF0IHlvdSBlbnRlciB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCB0aGlzIHR5cGUgb2YgZmllbGQuIFRoaXMgZmllbGQgYW5kIGl0cyBuYW1lIGFyZSBub3QgdmlzaWJsZSBpbiB0aGUNCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlZhbGlkYXRlIHZpYSBFbWFpbC4gVGhpcyBpcyBhIHN0cmFuZ2UgYW5kIHBvd2VyZnVsIGZpZWxkLiBJdCBwcm92aWRlcyB0aGUgdXNlciBhIG1hbmRhdG9yeSBpbnB1dCBmb3IgdGhlaXIgZW1haWwgYWRkcmVzcy4gT25jZSB0aGV5IHN1Ym1pdCB0aGVpciBmb3JtLCB0aGUgc3RhbmRhcmQgZm9ybSBkaXNwb3NpdGlvbnMgYXJlIG5vdCBwZXJmb3JtZWQgLS0gcmF0aGVyLCBpdCBzZW5kIHRoZSB1c2VyIGFuIGVtYWlsIHdpdGggYSBzcGVjaWFsIGNvZGVkIGxpbmsuIElmIHRoZXkgY2xpY2sgb24gdGhlIGxpbmssIHRoZSBvdGhlciBmb3JtIGlzIGNvbnNpZGVyZWQgImFwcHJvdmVkLCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAib3V0cHV0IiBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGVcJ3MgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYXNzdW1pbmcgdGhlIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb24gdG8gd3JpdGUgdGhlcmUuDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFuIGRpc3Bvc2l0aW9uIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgYSB0ZW1wbGF0ZSBmb3IgdGhlIGVtYWlsIHRoYXQgaXMgZ2VuZXJhdGVkLCBvciBmb3IgdGhlIHdheSB0aGUgcmVzdWx0cyBhcmUgd3JpdHRlbiB0byBhIGZpbGUuIElmIHlvdSBvcHQgbm90IHRvIGNyZWF0ZSBhIHRlbXBsYXRlLCB0aGUgRm9ybUJ1aWxkZXIgd2lsbCB1c2UgaXRcJ3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgIkNyZWF0ZSBTYW1wbGUgVGVtcGxhdGUiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5Ob3RlIHRoYXQgb25jZSB5b3VcJ3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy4gRm9yIHRoaXMgcmVhc29uLCBpdFwncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+U29tZSBmaWVsZCB0eXBlcyBmcm9tIEZlZWRiYWNrRm9ybXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBGb3JtQnVpbGRlci4gSWYgdGhlcmUgaXMgZGVtYW5kIGZvciB0aGVtLCB0aGV5IHdpbGwgYmUgYWRkZWQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGNhbm5vdCB5ZXQgYmUgaW5saW5lZC4gVGhhdCBzaG91bGQgYmUgYSBzaW1wbGUgdXBncmFkZSBkb3duIHRoZSBsaW5lLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkblwndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjAtc3ZuIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdVwncmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkXCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdVwncmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdFwncyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIGEgZmFpcmx5IGVhcmx5IHZlcnNpb24sIGlmIG5vdCBhIHJhbmsgYmV0YSByZWxlYXNlLCBhbmQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIElcJ3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yXCdzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4gIA0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjMNCiAgICAgICAgICAgICAgICAgICAgICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjINCiAgICAgICAgICAgICAgICAgICAgICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KCQkgICAgPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICYgdHN3XCdzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCgkJICAgIDxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KCQknOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xOTE5MTY3NzAxLjExOTU0MzIxNzAuMTE5NjUyMjUzNS4xMTk2NTM4ODM4LjEzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE5NjUzODgzOC4xMy43LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1ldXJvaG9sb2Qua3p8dXRtY2N0PS9hZG1pbi9pbmRleC5waHB8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhdW1sO3JieWdnYXJlbiAoRm9ybSBCdWlsZGVyKSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0YmYXVtbDtsdHR5cCBpbnRlIHZhbGQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1TbHV0IHAmYXJpbmc7IGdydXBwcnV0YSAoZmllbGRzZXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1TdGFydCBwJmFyaW5nOyBncnVwcHJ1dGEgKGZpZWxkc2V0KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ0lubWF0bmluZ3NmJmF1bWw7bHQgKHRleHQgaW5wdXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0lubWF0bmluZ3NmJmF1bWw7bHQgKGZsZXJhKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0cnV0YSAodGV4dGFyZWEpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0tyeXNzcnV0YSAoY2hlY2sgYm94KSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0tyeXNzcnV0ZWdydXBwIChjaGVjayBib3ggZ3JvdXApJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1J1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdWJmF1bWw7bGphcmUgZiZvdW1sO3IgYW1lcmlrYW5zayBzdGF0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZHYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVtdiZhdW1sO2xqYXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlkdiZhdW1sO2xqYXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnQWx0ZXJuYXRpdmtuYXBwZ3J1cHAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkUtcG9zdGEgcmVzdWx0YXQgYmFzZXJhZGUgcCZhcmluZzsgdmFsIGkgcnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU3BhcmEgcmVzdWx0YXQgdGlsbCBmaWwgYmFzZXJhZGUgcCZhcmluZzsgdmFsIGkgcnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTcGFyYSByZXN1bHRhdCB0aWxsIGZpbChlcikgYmFzZXJhZGUgcCZhcmluZzsgZmxlcmEgdmFsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypPbWRpcmlnZXJhIHRpbGwgc2lkYSBiYXNlcmF0IHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRS1wb3N0YSByZXN1bHRhdGV0IHRpbGwgYmVzdCZhdW1sO21kIGFkcmVzcy9iZXN0JmF1bWw7bWRhIGFkcmVzc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypBZHJlc3MgZiZvdW1sO3IgdmVyaWZpZXJhLXZpYS1lcG9zdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTa3JpdiByZXN1bHRhdCB0aWxsIHZhbmxpZyBmaWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlNwYXJhIHJlc3VsdGF0IGkgZGF0YWJhcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypBbnJvcCB0aWxsIGVuIGFudiZhdW1sO25kYXJkZWZpbmllcmFkIHRhZ2cgbWVkIGZvcm11bCZhdW1sO3JyZXN1bHRhdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1wb3N0YSB0aWxsIGVuIGF2IGFudiZhdW1sO25kYXJlbiBhbmdpdmVuIGUtcG9zdGFkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGJyeXRuaW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnRmlsdXBwbGFkZG5pbmcnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFLXBvc3RmJmF1bWw7bHQgZiZvdW1sO3IgJnF1b3Q7RnImYXJpbmc7bi1hZHJlc3NlbiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLW5hbW5ldCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDsmQXVtbDttbmUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbCZhdW1sO25rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTCZhdW1sO25rIChhbnYmYXVtbDtuZGFyY2VudHJlcmFkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLWcmb3VtbDttdCBmJmF1bWw7bHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLWJlciZhdW1sO2tuYXQgZiZhdW1sO2x0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLXBvc3RhZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTSZhcmluZztzdGUgdmFyYSBpa3J5c3NhZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2hhIHJlZ3VsaiZhdW1sO3J1dHRyeWNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ01hdGNoYSBpbnRlIHJlZ3VsaiZhdW1sO3J1dHRyeWNrJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdJbmdldCB2JmF1bWw7cmRlIGFuZ2F2cyBmJm91bWw7ciBldHQgZiZhdW1sO2x0IHNvbSAmYXVtbDtyIG9ibGlnYXRvcmlza3QnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdBbmdlIGV0dCB2JmF1bWw7cmRlIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0FuZ2UgZXR0IHRhbCBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdBbmdlIGV0dCBnaWx0aWd0IHYmYXVtbDtyZGUgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdBbmdlIGV0dCBoZWx0YWxzdiZhdW1sO3JkZSBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdBbmdlIGVuIGdpbHRpZyBlLXBvc3RhZHJlc3MgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgdmVya2FyIGludGUgdmFyYSBlbiBnaWx0aWcgZS1wb3N0YWRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQW5nZSBldHQgdiZhdW1sO3JkZSBzb20gaW50ZSAmYXVtbDtyIGwmYXVtbDtuZ3JlICZhdW1sO24gJXMgdGVja2VuJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVja2VuIGF0dCBhbnYmYXVtbDtuZGEgc29tIGF2Z3ImYXVtbDtuc2FyZSBpIHJlc3VsdGF0IHNvbSByZXR1cm5lcmFyIG1lciAmYXVtbDtuIGV0dCB2JmF1bWw7cmRlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdEdSBiZWgmb3VtbDt2ZXIgciZhdW1sO3R0aWdoZXRlbiAmcXVvdDslcyZxdW90OyBmJm91bWw7ciBhdHQgdXRmJm91bWw7cmEgZGVuICZhcmluZzt0ZyZhdW1sO3JkZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnVHl2JmF1bWw7cnIhIER1IGhhciBpbnRlIHRpbGxyJmF1bWw7Y2tsaWdhIHImYXVtbDt0dGlnaGV0ZXIgZiZvdW1sO3IgYXR0IGtvbW1hICZhcmluZzt0IGRlbiBoJmF1bWw7ciBzZWt0aW9uZW4uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGJmF1bWw7bHRvcmRuaW5nZW4gdXBwZGF0ZXJhZC4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsJmF1bWw7ciBib3J0dGFnZXQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGJmF1bWw7bHQgYm9ydHRhZ2V0Lic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmF0aW9uIHVwcGRhdGVyYWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRHUgbSZhcmluZztzdGUga3J5c3NhIGkgJnF1b3Q7JXMmcXVvdDsgZiZvdW1sO3IgYXR0IGZvcnRzJmF1bWw7dHRhJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nO3N0ZSBhbmdlICZhcmluZzt0bWluc3RvbmUgZW4gbW90dGFnYXJhZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGZvcm11bCZhdW1sO3JldCAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJyZBdW1sO3IgZHUgcyZhdW1sO2tlciBwJmFyaW5nOyBhdHQgZHUgdmlsbCB0YSBib3J0IGYmYXVtbDtsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuY2VyYWRlIGluc3QmYXVtbDtsbG5pbmdhciAmYXVtbDtyIGludGUgdGlsbGcmYXVtbDtuZ2xpZ2EgZiZvdW1sO3JyJmF1bWw7biBmJmF1bWw7bHR0eXBlbiBoYXIgYW5nZXR0cy4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGJmF1bWw7bHRuYW1uZXQgJnF1b3Q7JXMmcXVvdDsgYW52JmF1bWw7bmRzIHJlZGFuLiBWJmF1bWw7bmxpZ2VuIGFudiZhdW1sO25kIHVuaWthIGYmYXVtbDtsdG5hbW4gZWxsZXIgYXZtYXJrZXJhIHVuaWthIGYmYXVtbDtsdG5hbW4gaSBrb25maWd1cmF0aW9uZW4gZiZvdW1sO3IgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVuLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRiZhdW1sO2x0IG0mYXJpbmc7c3RlIGhhIGV0dCBuYW1uLCBzJmFyaW5nO3ZpZGEgZHUgaW50ZSBhdm1hcmtlcmFyIGRldHRhIGkgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyBrb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYXVtbDtuZ2Q6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgcnV0b3InOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbCc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyUgdGVja2VuLic7CiRsYW5nWydvcmRlciddID0gJ09yZG5pbmcnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbb3NwZWNpZmljZXJhdH0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxsYWdkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cHBkYXRlcmFkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnRlcmluZ3N2YWwgdmlkIG91dHB1dC91dG1hdG5pbmcnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYXVtbDtsaiBFbic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1YmYXVtbDtsaiBUeXAnOwokbGFuZ1sndG8nXSA9ICdUaWxsJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVqJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWdhcmUnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG0mb3VtbDtqbGlnYSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9uZXInOwokbGFuZ1snc2F2ZSddID0gJ1NwYXJhJzsKJGxhbmdbJ2FkZCddID0gJ0wmYXVtbDtnZyB0aWxsJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1VwcGRhdGVyYSc7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ1NwYXJhIG9jaCBmb3J0cyZhdW1sO3R0IHJlZGlnZXJhJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bCZhdW1sO3InOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bCZhdW1sO3IgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ1N0YXR1cyBmJm91bWw7ciBvYmxpZ2F0b3Jpc2t0IGYmYXVtbDtsdCB1cHBkYXRlcmFkJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01heHN0b3JsZWsnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdGaWwmYXVtbDtuZGVsc2VyJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaWxsJmFyaW5nO3RuYSBmaWx0eXBlcic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0RlbiB1cHBsYWRkYWRlIGZpbGVuICZvdW1sO3IgZiZvdW1sO3Igc3RvciEgTWF4aW1hbCBzdG9ybGVrICZhdW1sO3I6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnRGVuIGgmYXVtbDtyIGZpbHR5cGVuIGthbiBpbnRlIGxhZGRhcyB1cHAuIEtvbnRyb2xsZXJhIGF0dCBmaWwmYXVtbDtuZGVsc2VuICZhdW1sO3Iga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFkZGEgdXBwJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWwmYXVtbDtyIGltcG9ydGVyYXQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBhdiBmb3JtdWwmYXVtbDtyIG1pc3NseWNrYWRlcyEgRGV0IHZhciBwcm9ibGVtIG1lZCBYTUwtZmlsZW5zIGZvcm1hdC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJhZGVyJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW5lcic7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItdGltbWFyc2tsb2NrYSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdGltbWFyc2tsb2NrYSc7CiRsYW5nWydob3VyJ10gPSAnVGltbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUiZhdW1sO2NrdmlkZDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUYWNrISBEaXR0IGZvcm11bCZhdW1sO3IgaGFyIHNraWNrYXRzLic7CiRsYW5nWydlZGl0J10gPSAnUmVkaWdlcmEnOwokbGFuZ1snZGVsZXRlJ10gPSAnVGEgYm9ydCc7CiRsYW5nWydkYXknXSA9ICdEYWcnOwokbGFuZ1snbW9uJ10gPSAnTSZhcmluZztuYWQnOwokbGFuZ1sneWVhciddID0gJyZBcmluZztyJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlbiBhdmluc3RhbGxlcmFkLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bHZlcnNpb24gJXMgaW5zdGFsbGVyYWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlbiB1cHBncmFkZXJhZCB0aWxsIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RpbGxiYWthLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTa2lja2EgZm9ybXVsJmF1bWw7cic7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdGb3J0cyZhdW1sO3R0Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdJa3J5c3NhZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdFaiBpa3J5c3NhZCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ0h1dnVkLSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnSW5zdCZhdW1sO2xsbmluZ2FyIGYmb3VtbDtyIGZvcm11bCZhdW1sO3J2aXNuaW5nJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdTa2lja2F0IGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXIgZiZvdW1sO3IgQ2FwdGNoYSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdBdmFuY2VyYWRlIGluc3QmYXVtbDtsbG5pbmdhcic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWwmYXVtbDtybWFsbCc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU2tpY2thLW1hbGwnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHktdmFyaWFibGVyICZhdW1sO3IgaW50ZSB0aWxsJmFyaW5nO3RuYSBpIGRldCBoJmF1bWw7ciBmJmF1bWw7bHRldC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0wmYXVtbDtnZyB0aWxsIGZsZXIgdmFsJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUgdmFsJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTCZhdW1sO2dnIHRpbGwgZmxlciBrcnlzc3J1dG9yJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUga3J5c3NydXRvcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0wmYXVtbDtnZyB0aWxsIGVuIGFkcmVzcyc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1RhIGJvcnQgbWFya2VyYWRlIGFkcmVzc2VyJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0wmYXVtbDtnZyB0aWxsIG1vdHRhZ2FyZSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdUYSBib3J0IG1hcmtlcmFkZSBtb3R0YWdhcmUnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdGJm91bWw7ciBtJmFyaW5nO25nYSBlLXBvc3RtZWRkZWxhbmRlbiBnZW5lcmVyYWRlcyBmciZhcmluZztuIGRpbiBJUC1hZHJlc3MuIEFudGktc2tyJmF1bWw7cHBvc3Qta29kIGhhciBmJm91bWw7cmhpbmRyYXQgYXR0IGRlIGxldmVyZXJhdHMuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01pc3N0JmF1bWw7bmt0IHNrciZhdW1sO3Bwb3N0IGZyJmFyaW5nO24gSVAtYWRyZXNzZW4gJXMgc3RvcHBhZGVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnJkF1bWw7bmRyYSBmJmF1bWw7bHRvcmRuaW5nJzsKJGxhbmdbJ2NhbmNlbCddID0gJyZBcmluZztuZ3JhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ00mYXJpbmc7bG1hcHAgZiZvdW1sO3IgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdBbnYmYXVtbDtuZGFyZGVmaW5pZXJhZCB0YWdnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRhIGF0dCAmYXJpbmc7dGVydiZhdW1sO25kYSB0aWxsIG1lZCB1cHBsYWRkbmluZ3NsJmF1bWw7bmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTa2lja2F0IG1lZCBmb3JtdWwmYXVtbDtyYnlnZ2FyZW4nOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwcGxhZGRuaW5nc2thdGVnb3JpJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2tpY2thIGRlbm5hIGZpbCB0aWxsIHVwcGxhZGRuaW5nc21vZHVsZW4uJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0Ymb3VtbDtya2xhcmluZyc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01heGwmYXVtbDtuZ2QnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdFdGlrZXR0IGYmb3VtbDtyIGtyeXNzcnl0YSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aWtldHQgZiZvdW1sO3IgYWx0ZXJuYXRpdmtuYXBwJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWJmF1bWw7cmRlIG9tIGlrcnlzc2FkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1YmYXVtbDtyZGUgb20gZWogaWtyeXNzYWQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGtyeXNzcnV0ZWdydXBwJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1RhIGJvcnQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHQgZiZvdW1sO3IgJnF1b3Q7ViZhdW1sO2xqIEVuJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05hbW4gZiZvdW1sO3IgdXJ2YWxzdmlzbmluZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJyZBdW1sO21uZSBmJm91bWw7ciB1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmR1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkdXJ2YWwnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYW1uIGYmb3VtbDtyIGFsdGVybmF0aXYnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnViZhdW1sO3JkZXQgc2tpY2thdCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnQWx0ZXJuYXRpdiBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGl2YWwtYWx0ZXJuYXRpdic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnTW90dGFnYXJlbnMgZS1wb3N0YWRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTmFtbiBwJmFyaW5nOyBtJmFyaW5nO2xmaWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnImYXJpbmc7bi1uYW1uJnF1b3Q7IGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnQW52JmF1bWw7bmQgZW5rZWwgZS1wb3N0dmVyaWZpZXJpbmcnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQW52JmF1bWw7bmQgZW5rZWwgZS1wb3N0YWRyZXNzdmVyaWZpZXJpbmcgKHQuZXguIHRpbGwmYXJpbmc7dCAmcXVvdDt4QHkmcXVvdDsgaXN0JmF1bWw7bGxldCBmJm91bWw7ciBhdHQga3ImYXVtbDt2YSAmcXVvdDt4QHkuc2UmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0ZyJmFyaW5nO24tYWRyZXNzJnF1b3Q7IGYmb3VtbDtyIGUtcG9zdCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0UtcG9zdHRlY2tlbmtvZG5pbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1J1bGxnYXJkaW5zbWVueWJhc2VyYWRlIGUtcG9zdGRldGFsamVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbG5hbW4nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJyZBdW1sO21uZXNyYWQgZiZvdW1sO3IgZS1wb3N0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bCZhdW1sO3JuYW1uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsJmF1bWw7cnN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0YmYXVtbDtyZGlnIGF0dCBhbnYmYXVtbDtuZGFzJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdFaiBmJmF1bWw7cmRpZyc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2lkYSBhdHQgb21kaXJpZ2VyYSB0aWxsIGVmdGVyIGF0dCBmb3JtdWwmYXVtbDtyZXQgc2tpY2thdHMnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1YmYXVtbDtubGlnYSBsJmF1bWw7Z2cgdGlsbCBldHQgZiZhdW1sO2x0IHRpbGwgZm9ybXVsJmF1bWw7cmV0IHMmYXJpbmc7IGF0dCBhbnYmYXVtbDtuZGFyZW5zIGlubWF0bmluZyBrYW4gaGFudGVyYXMuIER1IGthbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2FudiZhdW1sO25kIGRlbm5hIGdlbnYmYXVtbDtnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0FsaWFzIGYmb3VtbDtyIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWwmYXVtbDtyZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRiZhdW1sO2x0LUlEJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGJmF1bWw7bHRuYW1uJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGFsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGJmF1bWw7bHR0eXAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2Ymb3VtbDtyIGF0dCBza2FwYSBldHQgZm9ybXVsJmF1bWw7cmhhbnRlcmluZ3NmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTCZhdW1sO2dnIHRpbGwgbnl0dCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Zpc2EgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyB2ZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0RldHRhIGtvbW1lciBhdHQgbCZhdW1sO2dnYSB0aWxsIHZlcnNpb25zbnVtcmV0IGYmb3VtbDtyIGRlbiB2ZXJzaW9uIGF2IEZvcm11bCZhdW1sO3JieWdnYXJtb2R1bGVuIHNvbSBkdSBoYXIgaW5zdGFsbGVyYWQgaSBlbiBrb21tZW50YXIsIGYmb3VtbDtyIGF0dCBoaiZhdW1sO2xwYSB0aWxsIG1lZCBmZWxzJm91bWw7a25pbmcuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMJmF1bWw7Z2cgdGlsbCBueXR0IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3JldHMgc2tpY2thLWtuYXBwJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTCZhdW1sO2dnYSB0aWxsIEphdmFzY3JpcHQgZiZvdW1sO3IgZGVuIHNpc3RhIHNraWNrYS1rbmFwcGVuIGYmb3VtbDtyIGF0dCBmJm91bWw7cmhpbmRyYSBhdHQgZm9ybXVsJmF1bWw7cmV0IHNraWNrYXMgZmxlcmEgZyZhcmluZztuZ2VyPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnTCZhdW1sO2dnIHRpbGwgcyZhdW1sO2tlcmhldHNzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHQgZiZvdW1sO3IgJnF1b3Q7TiZhdW1sO3N0YS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O0Ymb3VtbDtyZWcmYXJpbmc7ZW5kZS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGJmF1bWw7bHR2ZXJpZmllcmluZyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUy1rbGFzcyBmJm91bWw7ciBkZXR0YSBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUy1rbGFzcyBmJm91bWw7ciBkZXR0YSBmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgZiZvdW1sO3IgYXR0IG1hcmtlcmEgb2JsaWdhdG9yaXNrYSBmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdPYmxpZ2F0b3Jpc2t0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdHJm91bWw7ciBkZXR0YSBmJmF1bWw7bHQgb2JsaWdhdG9yaXNrdCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnRyZvdW1sO20gZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdHJm91bWw7bSBkZXR0YSBmJmF1bWw7bHRzIG5hbW4gcCZhcmluZzsgZm9ybXVsJmF1bWw7cmV0JzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNrIHRleHQgYXR0IHZpc2EnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWd1bGomYXVtbDtydXR0cnljayBmJm91bWw7ciB2ZXJpZmllcmluZyc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQW50YWwgcmFkZXIgYXR0IHZpc2EnOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0luZ2V0IHN0YW5kYXJkdmFsJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2lkYSBhdHQgb21kaXJpZ2VyYSB0aWxsIGVmdGVyIGdvZGsmYXVtbDtubmFuZGUnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ0RldHRhIHJlZ3VsaiZhdW1sO3J1dHRyeWNrIGFudiZhdW1sO25kcyBiYXJhIG9tICZxdW90O3ZlcmlmaWVyaW5nc3R5cGVuJnF1b3Q7ICZhdW1sO3Igc2F0dCB0aWxsIGV0dCByZWd1bGomYXVtbDtydXR0cnljay1yZWxhdGVyYXQgYWx0ZXJuYXRpdi4gSW5rbHVkZXJhIGV0dCBmdWxsdCByZWd1bGomYXVtbDtydXR0cnljayBpIFBlcmwtc3RpbCwgaW5rbHVzaXZlIHN0YXJ0L3N0b3Atc25lZHN0cmVja2VuIG9jaCAtZmxhZ2dvcm5hICh0LmV4LiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ09ibGlnLic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0cmb3VtbDttIGZlbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybXVsJmF1bWw7cnZpc25pbmdzdHlwJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdGJm91bWw7cmhpbmRyYSBmZWxzJm91bWw7a25pbmdzLSBvY2ggZmVsbWVkZGVsYW5kZW4gZnImYXJpbmc7biBhdHQgdmlzYXMgZiZvdW1sO3IgYW5kcmEgYW52JmF1bWw7bmRhcmUuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRS1wb3N0bWFsbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsIGZpbHN0b3JsZWsgZiZvdW1sO3IgdXBwbGFkZG5pbmcgKGtpbG9ieXRlKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0Rlbm5hIGJlZ3ImYXVtbDtuc25pbmcgJmF1bWw7ciB1dCZvdW1sO3ZlciBhbmRyYSBiZWdyJmF1bWw7bnNuaW5nYXIgc29tICZhdW1sO3Igc2F0dGEgYXYgcGhwLSBlbGxlciB3ZWJic2VydmVyaW5zdCZhdW1sO2xsbmluZ2FyLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1RpbGwmYXJpbmc7dG5hIGZpbCZhdW1sO25kZWxzZXInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1Nrcml2IGVuIGtvbW1hLXNlcGFyYXJhZCBsaXN0YSwgdXRhbiBwdW5rdCAodC5leC4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTWVsbGFuc2xhZyBpZ25vcmVyYXMuIE9tIGR1IGwmYXVtbDttbmFyIGRldHRhIGYmYXVtbDtsdGV0IGJsYW5rdCBpbm5lYiZhdW1sO3IgZGV0IGF0dCBkZXQgaW50ZSBrb21tZXIgYXR0IGZpbm5hcyBuJmFyaW5nO2dyYSByZXN0cmlrdGlvbmVyLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzYSByZXN0cmlrdGlvbmVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdWaXNhIGFsbGEgc3Rvcmxla3MtIG9jaCBmaWwmYXVtbDtuZGVsc2VyZXN0cmlrdGlvbmVyIGYmb3VtbDtyIHVwcGxhZGRuaW5nc2YmYXVtbDtsdGV0Pyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTWFsbCBhdHQgYW52JmF1bWw7bmRhIGYmb3VtbDtyIFZpc2EgRm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGEgJXMgYXYgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0YmYXVtbDtsdGV0IGhhciBpbmdhIGF2YW5jZXJhZGUgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IGF0dCByZXR1cm5lcmEgZiZvdW1sO3Igb3NwZWNpZmljZXJhZGUgZiZhdW1sO2x0diZhdW1sO3JkZW4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ00mb3VtbDtqbGlnZyZvdW1sO3IgcnVsbGdhcmRpbnNtZW55IGYmb3VtbDtyIHNuYWJiLXRpbGwmYXVtbDtnZyBhdmwgZiZhdW1sO2x0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3I/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTSZvdW1sO2psaWdnJm91bWw7ciBydWxsZ2FyZGluc21lbnkgZiZvdW1sO3Igc25hYmItdGlsbCZhdW1sO2dnPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnU25hYmItdGlsbCZhdW1sO2dnIGF2IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgcCZhcmluZzsgdGlsbCZhcmluZzt0cyBlbmRhc3QgMTAgZS1wb3N0bWVkZGVsYW5kZW4gYXR0IGdlbmVyZXJhcyBmciZhcmluZztuIGVuIGdpdmVuIElQLWFkcmVzcyAocGVyIHRpbW1lKSc7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdUaWxsJmFyaW5nO3QgcHJpbWl0aXZhIGFudGktc2tyJmF1bWw7cHBvc3RlZ2Vuc2thcGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVmlzYSBmJmF1bWw7bHQtSUQmIzAzOTtuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ04mYXVtbDtyIGRlbm5hIGtsaWNrYXMgdGlsbCZhcmluZzt0cyBmJmF1bWw7bHQtSUQmIzAzOTtuIGF0dCB2aXNhcyBuJmF1bWw7ciBtYW4gbCZhdW1sO2dnZXIgdGlsbCBlbGxlciByZWRpZ2VyYXIgZXR0IGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0xhZGRhIHVwcCBmb3JtdWwmYXVtbDtyIGZyJmFyaW5nO24gWE1MLWZpbCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQW52JmF1bWw7bmQgZGV0dGEgZm9ybXVsJmF1bWw7cm5hbW4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTC1pbXBvcnQgYXYgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ0FudiZhdW1sO25kIGRldHRhIGZvcm11bCZhdW1sO3JhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJlcmEgSFRNTC1lcG9zdG1lZGRlbGFuZGVuPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0Z5bGwgaSBhdXRvbWF0aXNrdD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJ0Z5bGwgaSBVUkwtYWRyZXNzIGYmb3VtbDtyIHNpZGFuIGQmYXVtbDtyIGZvcm11bCZhdW1sO3JldCBmaW5ucyBhdXRvbWF0aXNrdD8gKGRldHRhICZhcmluZztzaWRvcyZhdW1sO3R0ZXIgYWx0ZXJuYXRpdmV0IHNhanRzaWRlbCZhdW1sO25rIG5lZGFuKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdTdGFuZGFyZC1VUkwtYWRyZXNzIGYmb3VtbDtyIGwmYXVtbDtuayc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdTdGFuZGFyZHRleHQgZiZvdW1sO3IgbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMJmF1bWw7bmsgdGlsbCBzYWp0LXNpZGFuJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvJnF1b3Q7PmNoZWNrIHRoZSBDYXB0Y2hhIHByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0FudiZhdW1sO25kIENhcHRjaGEgZiZvdW1sO3IgYXR0IGYmb3VtbDtyZWJ5Z2dhIG8mb3VtbDtuc2thdCBmb3JtdWwmYXVtbDtyZGF0YT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ0NoZWNrIGhlcmUgdG8gcHJvdGVjdCB5b3VyIGZvcm0gd2l0aCBhIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSZxdW90OyB0YXJnZXQ9JnF1b3Q7X25ldyZxdW90Oz4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnQmVrciZhdW1sO2Z0YSBhdHQgZHUgaW50ZSAmYXVtbDtyIGV0dCBzY3JpcHQgZ2Vub20gYXR0IG1hdGEgaW4gdGV4dGVuIGkgYmlsZGVuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0NhcHRjaGEtdGV4dGVuIG1pc3NseWNrYWRlcyc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYS10ZXh0ZW4gdmFyIGludGUgciZhdW1sO3R0JzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hqJmF1bWw7bHB0ZXh0IGYmb3VtbDtyIENhcHRjaGEnOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0wmYXVtbDtua3RldGlrZXR0JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdLb250cm9sbGVyYXMgc29tIHN0YW5kYXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnQW52JmF1bWw7bmQgMjQtdGltbWFycyB0aWRzYW5naXZlbHNlPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ0JlaGFuZGxhIHNtYXJ0eS10YWc6YXIgaSBmJmF1bWw7bHQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSYWRlciAoTm90ZXJhIGF0dCBkZXR0YSBrYW4gJm91bWw7dmVyc2tyaWRhcyBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdLb2x1bW5lciAoTm90ZXJhIGF0dCBkZXR0YSBrYW4gJm91bWw7dmVyc2tyaWRhcyBhdiBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0RldGFsamVyIGYmb3VtbDtyIGh1dnVkZm9ybXVsJmF1bWw7cic7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdEZXQgaCZhdW1sO3IgZiZhdW1sO2x0ZXQga2FuIGwmYXVtbDttbmFzIHRvbXQnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVyIGYmb3VtbDtyIG1hbGwnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVGlsbGcmYXVtbDtuZ2xpZ2EgdmFyaWFibGVyJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAtdmFyaWFiZWwnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdJbnNraWNrYXQgZGF0dW0nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAtYWRyZXNzIGYmb3VtbDtyIHBlcnNvbmVuIHNvbSBhbnYmYXVtbDtudCBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGYmb3VtbDtyIHNpZGFuIHNvbSBpbm5laCZhcmluZztsbGVyIGZvcm11bCZhdW1sO3InOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGl2YSBmJmF1bWw7bHRuYW1uIGthbiBhbnYmYXVtbDtuZGFzIHV0Ynl0YmFydCAocyZhdW1sO3Jza2lsdCBhbnYmYXVtbDtuZGJhcnQgb20gU21hcnR5IGludGUgZ2lsbGFyIHRlY2tlbiB1dGFuZiZvdW1sO3IgQVNDSUkgMzItMTI2KSA8YnIgLz5BbmRyYSBmJmF1bWw7bHQgYmxpciB0aWxsZyZhdW1sO25nbGlnYSBlZnRlcmhhbmQgc29tIGR1IGwmYXVtbDtnZ2VyIHRpbGwgZGVtIHRpbGwgZm9ybXVsJmF1bWw7cmV0Lic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0YmYXVtbDtsdCBzb20gaGFyIGZsZXJhIHYmYXVtbDtyZGVuIGthbiBvY2tzJmFyaW5nOyBrb21tYXMgJmFyaW5nO3QgdmlhIHNtYXJ0eXYmYXVtbDtyZGVuYSAkZmllbGRuYW1lX2FycmF5IGVsbGVyICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90OyB0YXJnZXQ9X05FVz5waHAtbWFudWFsZW48L2E+IGYmb3VtbDtyIGhqJmF1bWw7bHAgbWVkIGZvcm1hdHRlcmluZy4uJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ1JlcHJlc2VudGVyYWRlIGYmYXVtbDtsdCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsbGJha2EgdGlsbCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCBmJm91bWw7ciBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnU2thcGEgcnVicmlrIChoZWFkZXIpJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2V0dCB0YWJ1bGF0b3ItdGVja2VuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdNYWxsIGYmb3VtbDtyIGVuIHJhZCBpIHV0ZGF0YWZpbCc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ01hbGwgZiZvdW1sO3IgaHV2dWQgcCZhcmluZzsgdXRmaWwnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBhdHQga2xpY2thIGYmb3VtbDtyIGZvcm11bCZhdW1sO3JiZWtyJmF1bWw7ZnRlbHNlJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnViZhdW1sO3JkZSAoc2UgZmxpa2VuIEF2YW5jZXJhdCBvbSBkdSBhbnYmYXVtbDtuZGVyIFNtYXJ0eS10YWdhciknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bWZvcm1hdCAodmFubGlnYTxhIGhyZWY9JnF1b3Q7aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCZxdW90Oz5waHAtZGF0dW1mb3JtYXQ8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ0FudiZhdW1sO25kIFdZU0lXWUctcmVkaWdlcmFyZSBmJm91bWw7ciB0ZXh0cnV0YW4gKGVuYmFydCBhZG1pbnNpZGFuKT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICZxdW90O1N1Ym1pc3Npb24gVGVtcGxhdGUmcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb25zc2lkYSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnT21ncnVwcGVyYSBmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xhZGRhIG1hbGwnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnTCZhdW1sO3R0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9uIE9yZGVyJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdJZiBtb3JlIHRoYW4gb25lIENvbXB1dGVkIEZpZWxkIGV4aXN0cywgdGhleSB3aWxsIGJlIGNvbXB1dGVkIGZyb20gbG93ZXN0IG9yZGVyIG51bWJlciB0byBoaWdoZXN0IG9yZGVyIG51bWJlcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnVmFsdWUgdG8gY29tcHV0ZSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHImYXVtbDtuZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRiZvdW1sO3J2YWxkIG1hbGwnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsbG1hbGwsIHRpdGxhciB0aWxsIHYmYXVtbDtuc3Rlcic7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJlbGxtYWxsLCB0aXRsYXIgJm91bWw7dmVyIGYmYXVtbDtsdCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdNYWxsIGZyJmFyaW5nO24gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW51YXJpJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyaSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFycyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWonOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0aSc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0xlZHNlbiEgRGV0IHVwcHN0b2QgZXR0IGZlbCBkJmFyaW5nOyBkaXR0IGZvcm11bCZhdW1sO3IgaGFudGVyYWRlcyc7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdLdW5kZSBpbnRlIGhpdHRhIG1vZHVsZW4gVXBsb2Fkcyc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0V0dCBmZWwgaGFyIHVwcHN0JmFyaW5nO3R0ISBLdW5kZSBpbnRlIG9yZG5hIGwmYXJpbmc7c25pbmcgcCZhcmluZzsgZmlsZW4uJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNJRC4gQW52JmF1bWw7bmRzIGF2IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdGJm91bWw7cnZhbGRhIGYmYXVtbDtsdHYmYXVtbDtyZGVuOyBzZSBoaiZhdW1sO2xwZW4gZiZvdW1sO3IgZGVuIGgmYXVtbDtyIG1vZHVsZW4nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRiZhdW1sO2x0SUQgZiZvdW1sO3IgaW50ZXJuIGhhbnRlcmluZyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybXVsJmF1bWw7cnNuYW1uJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybXVsJmF1bWw7cnNJRCBmJm91bWw7ciBpbnRlcm4gaGFudGVyaW5nJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnQWxsbSZhdW1sO25hIHBhcmFtZXRyYXIgZiZvdW1sO3IgaW50ZXJuIGhhbnRlcmluZyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIGRpc3BsYXllZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmNzc19jbGFzczwvdGQ+PHRkPnRoZSBDU1MgY2xhc3Mgc3BlY2lmaWVkIGZvciB0aGlzIGZpZWxkPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPjx0ZD4xIGlmIHRoaXMgZmllbGQgaGFzIHBhc3NlZCB2YWxpZGF0aW9uLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuYW1lIHNob3VsZCBiZSBoaWRkZW4sIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgdHlwZSBoYXMgYSBsYWJlbDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCYjMDM5O3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJiMwMzk7cyBpbnB1dCBjb250cm9sIChlLmcuLCB0aGUgaW5wdXQgZmllbGQgaXRzZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgZGF0YSB0eXBlPC90ZD48L3RyPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgY29sbGVjdGlvbiBvZiBjb250cm9scyBoYXMgc2VwYXJhdGUgbGFiZWxzIGZvciBlYWNoIGNvbnRyb2w8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+dGhpc19wYWdlPC90ZD48dGQ+bnVtYmVyIGZvIHRoZSBjdXJyZW50IHBhZ2UgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgJnF1b3Q7cGFnZSB4IG9mIHkmcXVvdDsgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4mcXVvdDtCYWNrJnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPjx0ZD4mcXVvdDtDb250aW51ZSZxdW90OyBvciAmcXVvdDtTdWJtaXQmcXVvdDsgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91JiMwMzk7ZCB3YW50IHNvbWUgb2YgdGhvc2UsIGJ1dCB0aGVyZSB5b3UgZ28uLi48L3A+DQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+TWFrZSBzdXJlIHRvIHNldCB0aGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHBlcm1pc3Npb25zDQpvbiB1c2VycyB3aG8gd2lsbCBiZSBhZG1pbmlzdGVyaW5nIGZlZWRiYWNrIGZvcm1zLiBBbHNvLCBpZiB5b3UmIzAzOTtsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXQmIzAzOTtzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4NCjxwPlRoZSBmb3JtcyBjcmVhdGVkIHVzaW5nIHRoZSBGb3JtIEJ1aWxkZXIgbWF5IGJlIGluc2VydGVkDQppbnRvIHRlbXBsYXRlcyBhbmQvb3IgY29udGVudCBwYWdlcy4gRm9ybXMgbWF5IGNvbnRhaW4gbWFueSBraW5kcyBvZiBpbnB1dHMsIGFuZCBtYXkgaGF2ZQ0KdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPg0KDQo8aDM+SG93IERvIEkgVXNlIGl0PzwvaDM+DQo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4NCklmIHlvdSBnZXQgc3R1Y2ssIGNoYXQgd2l0aCBtZSBvbiB0aGUgI2NtcyBJUkMgY2hhbm5lbCwgcG9zdCB0byB0aGUgZm9ydW0sIHNlbmQgbWUgZW1haWwsIG9yLCBpZiB5b3UmIzAzOTtyZQ0KcmVhbGx5IGRlc3BlcmF0ZSwgcmVhZCB0aGUgcmVzdCBvZiB0aGlzIHBhZ2UuPC9QPg0KDQo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2gzPg0KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzDQpzb21ldGhpbmcgbGlrZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtzYW1wbGVfZm9ybSYjMDM5O308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlJiMwMzk7cyBjb250ZW50IGlmIHlvdSB1c2UgYSBXWVNJV1lHIGVkaXRvciBzdWNoIGFzIFRpbnlNQ0UsIEZDS0VkaXQsIG9yIEhUTUxBcmVhLiBUaGVzZSBlZGl0b3JzIG1heSBzdGVhbHRoaWx5DQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzICgmcXVvdDspIGludG8gSFRNTCBlbnRpdGllcyAoJmFtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCg0KPGgzPkFkZGluZyBGaWVsZHMgdG8geW91ciBGb3JtPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdVwmIzAzOTtyZSBzZW5kaW5nIHJlc3VsdHMgdmlhIGVtYWlsKS48L2xpPg0KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPC91bD48L2xpPjwvbGk+PC91bD4NCg0KDQo8aDM+UGFzc2luZyBEZWZhdWx0IFZhbHVlcyB0byBGb3JtczwvaDM+DQo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlDQp0aGUgc2FtZSBmb3JtIGluIG11bHRpcGxlIHBsYWNlcywgYnV0IHdpdGggZGlmZmVyZW50IGRlZmF1bHQgdmFsdWVzLiBJdCBtYXkgbm90IHdvcmsgZm9yIG1vcmUgZXhvdGljIGZpZWxkIHR5cGVzLCBidXQgZm9yIGZpZWxkcyB0aGF0IGhhdmUNCmEgc2luZ2xlIHZhbHVlLCB5b3UgY2FuIHNwZWNpZnkgbGlrZTo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlXzxpPkZJRUxETkFNRTwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGlzIHdpbGwgc2V0IHRoZSBmaWVsZCB3aXRoIDxpPkZJRUxETkFNRTwvaT4gdG8gJiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5Oy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24mIzAzOTt0IHdvcmsgd2VsbCB3aXRoIFNtYXJ0eS4gU28gdGhlcmUgaXMgYW4NCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+DQo8cD57Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7Rm9ybUJ1aWxkZXImIzAzOTsgZm9ybT0mIzAzOTtteV9mb3JtJiMwMzk7IHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49JiMwMzk7ZGVmYXVsdF92YWx1ZSYjMDM5O308L3A+DQo8cD5UaGF0IHVzZXMgZmllbGQgPGk+TlVNQkVSPC9pPiwgd2hlcmUgPGk+TlVNQkVSPC9pPiBpcyB0aGUgaW50ZXJuYWwgRm9ybUJ1aWxkZXIgZmllbGQgaWQuIFlvdSBtaWdodCB3b25kZXIgaG93IHlvdSBrbm93IHdoYXQgdGhhdCBpZCBpcy4gU2ltcGx5IGdvIGludG8gdGhlIEZvcm1CdWlsZGVyIGNvbmZpZ3VyYXRpb24gdGFiLA0KYW5kIGNoZWNrICZxdW90O1Nob3cgRmllbGQgSURzJnF1b3Q7PC9wPg0KDQo8aDM+RW1haWwgYW5kIEZsYXQgRmlsZSBUZW1wbGF0ZXM8L2gzPg0KPHA+TWFueSBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBJZiB5b3Ugb3B0IG5vdCB0byBjcmVhdGUgYSB0ZW1wbGF0ZSwgdGhlIEZvcm1CdWlsZGVyIHdpbGwgdXNlIGl0JiMwMzk7cyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAmcXVvdDtDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJnF1b3Q7IGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+DQo8cD5UbyB0aGUgcmlnaHQsIHlvdSYjMDM5O2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+DQo8cD48c3Ryb25nPk5vdGUgdGhhdCBvbmNlIHlvdSYjMDM5O3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCYjMDM5O3MgdXN1YWxseSBiZXN0IHRvIGNyZWF0ZSB5b3VyIHRlbXBsYXRlcyBhcyB0aGUgbGFzdCBzdGVwIG9mIGNyZWF0aW5nIHlvdXIgZm9ybS48L3A+DQo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhICZxdW90O0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSZxdW90OyBidXR0b24gb3ZlciBpbiB0aGUgbGVnZW5kIGFyZWEuIEZvciBIVE1MIGVtYWlsLCB0aGUgZW1haWwgYm9keSB3aWxsIGFsc28gcHJvdmlkZSB0aGUgZGVmYXVsdCB0ZXh0LW9ubHkgdmFsdWVzLjwvcD4NCg0KPGgzPkNvbmZpZ3VyYXRpb248L2gzPg0KPHA+VGhlcmUgYXJlIHNvbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgRm9ybUJ1aWxkZXI6PC9wPg0KPHVsPg0KPGxpPkVuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bi4gVGhpcyBlbmFibGVzIHRoZSBwdWxsZG93biBvbiB0aGUgRm9ybSBFZGl0IHBhZ2Ugd2hpY2ggc2F2ZXMgYSBzdGVwIGluIHRoZSBjcmVhdGlvbiBvZiBuZXcgZmllbGRzLjwvbGk+DQo8bGk+SGlkZSBFcnJvcnMuIFRoaXMgaXMgc2V0IGJ5IGRlZmF1bHQuIFVuY2hlY2tpbmcgaXQgd2lsbCBjYXVzZSBtb3JlIGRldGFpbGVkIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPg0KPGxpPlVuaXF1ZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IGZpZWxkcyB0byBzaGFyZSBuYW1lcy48L2xpPg0KPGxpPlVzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24uIFRoaXMgdXNlcyBhIGxlc3MgcmVzdHJpY3RpdmUgcmVndWxhciBleHByZXNzaW9uIGZvciB2YWxpZGF0aW5nIGVtYWlsOyBlLmcuLCB4QHkgd2lsbCBiZSBhbGxvd2VkLCB3aGVyZSB0eXBpY2FsbHkgeEB5LnRsZCBpcyByZXF1aXJlZC48L2xpPg0KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSYjMDM5O3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQo8cD5Zb3UgY2FuIGVkaXQgaXQgdG8gbWFrZSB5b3VyIGZvcm0gbGF5b3V0IGxvb2sgYW55IHdheSB5b3UmIzAzOTtkIGxpa2UuDQogICBUbyBtYWtlIHRoZSBmb3JtIHdvcmssIHlvdSYjMDM5O2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXQmIzAzOTtzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm5hbWU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPnRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZCYjMDM5O3MgaW5wdXQgKHVzZWZ1bCBmb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQmIzAzOTtzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtIG5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5Gb3JtIGRhdGFiYXNlIElEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7QmFjayZxdW90OyBidXR0b24gZm9yIG11bHRpcGFydCBmb3JtczwvdGQ+PC90cj4NCjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+JnF1b3Q7Q29udGludWUmcXVvdDsgb3IgJnF1b3Q7U3VibWl0JnF1b3Q7IGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zLCBhZGp1c3RzIGF1dG9tYXRpY2FsbHk8L3RkPjwvdHI+DQo8L3RhYmxlPg0KPHA+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPg0KDQoNCjxoMz5Lbm93biBJc3N1ZXM8L2gzPg0KPHVsPg0KPGxpPkZvcm1CdWlsZGVyIGlzIG5vdCB5ZXQgaW50ZWdyYXRlZCB3aXRoIEZyb250RW5kIFVzZXJzLiBJdCB3aWxsIGJlLjwvbGk+DQo8bGk+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0mcXVvdDtodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9JnF1b3Q7bWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSZxdW90Oz48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnJnF1b3Q7PkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9JnF1b3Q7aXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zJnF1b3Q7PkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwmcXVvdDs+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAmcXVvdDtUZXh0RmllbGQgKE11bHRpcGxlKSZxdW90OyBhbmQgJnF1b3Q7Q29tcHV0ZWQgRmllbGQmcXVvdDs8L2xpPg0KCQk8bGk+QWRkZWQgZGlzcG9zaXRpb25zOiAmcXVvdDtTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biZxdW90OyBhbmQgJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyZxdW90OyhDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG5lYXQtbyBBSkFYLXkgdGVtcGxhdGUtY29weWluZyBmb3IgRm9ybSBUZW1wbGF0ZXMsIGdhdmUgdmVyc2lvbnMgb2Ygb2xkIHRhYmxlLWJhc2VkIHRlbXBsYXRlcyB0byBzb290aGUgdGhlIHJhZ2luZyBtYXNzZXMuPC9saT4NCgkJPGxpPkFkZGVkIGFiaWxpdHkgdG8gcGFzcyBkZWZhdWx0IHZhbHVlcyB0byBmb3JtIGVsZW1lbnRzIGZyb20gbW9kdWxlIHRhZyB1c2luZyB2YWx1ZV9GSUVMRE5BTUU9JnF1b3Q7dmFsdWUmcXVvdDsgc3ludGF4IChDYWxndXkpPC9saT4NCgkJPGxpPkFkZGVkIG9wdGlvbiB0byBkaXNwbGF5IGZpZWxkIGlkcyBpbiBhZG1pbiAoQ2FsZ3V5KTwvbGk+DQoJPC91bD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjMNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+DQogICAgICA8bGk+UmV3b3JrZWQgbGFiZWxpbmcgb2YgZm9ybSBlbGVtZW50cyB0byBiZSBYSFRNTCBjb21wbGlhbnQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUmIzAzOTtzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWcmIzAzOTtuJiMwMzk7RHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+DQogICAgICA8bGk+QWRkZWQgbm9uLWJsYW5rIGZpZWxkIG5hbWUgYW5kIHVuaXF1ZSBmaWVsZCBuYW1lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIHZhbGlkYXRpb248L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+DQogICAgICA8bGk+PC9saT4NCiAgIDwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNw0KICAgPHA+QmlnIHJlbGVhc2U6PHVsPg0KICAgPGxpPkFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgJnF1b3Q7VGltZVBpY2tlciZxdW90OyBmaWVsZCB0eXBlLiBTcGxpdCAmcXVvdDtMaW5rJnF1b3Q7IGZpZWxkIGludG8gYSAmcXVvdDtVc2VyLXN1cHBsaWVkIExpbmsmcXVvdDsgZmllbGQgYW5kIGEgJnF1b3Q7U3RhdGljIExpbmsmcXVvdDsgZmllbGQuPC9saT4NCiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4NCiAgIDxsaT5BZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLjwvbGk+DQogICA8bGk+QWRkZWQgWE1MLWJhc2VkIGltcG9ydCBhbmQgZXhwb3J0IG9mIGZvcm1zLjwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4zDQogICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMg0KICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICA8bGk+QWRkIFBhZ2VTZXRTdGFydCBhbmQgUGFnZVNldEVuZCBmaWVsZCB0eXBlcw0KICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZA0KICAgICAgYXNzb2NpYXRlIGEgc3R5bGUgd2l0aCB0aGVtIGFwcHJvcHJpYXRlbHkuICBUaGUgZGVmYXVsdCB0ZW1wbGF0ZSB3YXMgY2hhbmdlZA0KICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICA8L3A+DQogICAgICA8L2xpPg0KICAgICAgPGxpPkZpeGVkIGEgcHJvYmxlbSB3aXRoIERBVEVUSU1FIGZpZWxkcyBvbiBpbnN0YWxsDQogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICA8L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIgLSAxNCBOb3ZlbWJlciAyMDA2LiBDYWxndXkgJmFtcDsgdHN3JiMwMzk7cyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMTkxNDgxMjM3LjYxLjExLnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1nb29nbGUuY29tfHV0bWNjdD0vcmVhZGVyL3ZpZXcvfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjI4MDQyMTk5NC4xMTg5NDUyNjI1LjExOTE2MTg5MjIuMTE5MTY2NDUwMS42OSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRmbGRzID0gIgoJCQlmb3JtX2lkIEkgS0VZLAoJCQluYW1lIEMoMjU1KSwKCQkJYWxpYXMgQygyNTUpCgkJIjsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7Ci8vCQkkZGItPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1faWR4JywgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybScsICdhbGlhcycpOwoJCQoJCSRmbGRzID0gIgoJCQlmb3JtX2F0dHJfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDM1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfc2VxJyk7Ci8vCQkkZGItPkNyZWF0ZUluZGV4U1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cl9pZHgnLCBjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHInLCAnZm9ybV9pZCcpOwoKCQkkZmxkcyA9ICIKCQkJZmllbGRfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDI1NSksCgkJCXR5cGUgQyg1MCksCgkJCXZhbGlkYXRpb25fdHlwZSBDKDUwKSwKCQkJcmVxdWlyZWQgSTEsCgkJCWhpZGVfbGFiZWwgSTEsCgkJCW9yZGVyX2J5IEkKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCW9wdGlvbl9pZCBJIEtFWSwKCQkJZmllbGRfaWQgSSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMjU1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlmbG9ja19pZCBJIEtFWSwKCQkJZmxvY2sgVAoJCSI7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mbG9jaycsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJZmV1c2VyX2lkIEksCgkJCXVzZXJfYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJc2VjcmV0X2NvZGUgQygzNSksCgkJCWFkbWluX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCXN1Ym1pdHRlZCAiLkNNU19BRE9EQl9EVDsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfYXR0cl9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQluYW1lIEMoMzUpLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9hdHRyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cl9zZXEnKTsKCgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXJlc3BfdmFsX2lkIEkgS0VZLAoJCQlyZXNwX2lkIEksCgkJCWZpZWxkX2lkIEksCgkJCXZhbHVlIFgKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbF9zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCXNlbnRfaWQgSSBLRVksCgkJCXNyY19pcCBDKDE2KSwKCQkJc2VudF90aW1lICIuQ01TX0FET0RCX0RUOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoKCQkkZmxkcyA9ICIKCQkJCWZicl9pZCBJIEtFWSwKCQkJCWZvcm1faWQgSSwKCQkJCWluZGV4X2tleV8xIEMoODApLAoJCQkJaW5kZXhfa2V5XzIgQyg4MCksCgkJCQlpbmRleF9rZXlfMyBDKDgwKSwKCQkJCWluZGV4X2tleV80IEMoODApLAoJCQkJaW5kZXhfa2V5XzUgQyg4MCksCgkJCQlyZXNwb25zZSBYLAoJCQkJdXNlcl9hcHByb3ZlZCAiLkNNU19BRE9EQl9EVC4iLAoJCQkJc2VjcmV0X2NvZGUgQygzNSksCgkJCQlhZG1pbl9hcHByb3ZlZCAiLkNNU19BRE9EQl9EVC4iLAoJCQkJc3VibWl0dGVkICIuQ01TX0FET0RCX0RUOwoJCQkJCgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyX3NlcScpOwoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfdW5pcXVlZmllbGRfc2VxJyk7CgoJCSR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnLCAnTW9kaWZ5IEZvcm1zJyk7CgoJCSR0aGlzLT5DcmVhdGVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0JyApOwoJCSR0aGlzLT5DcmVhdGVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheScgKTsKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJyApOwoJCQoJCS8vaW5jbHVkZSAnaW5jbHVkZXMvRm9ybUJ1aWxkZXJTYW1wbGVEYXRhLmluYyc7CQoJCSRwYXRoID0gZGlybmFtZShfX0ZJTEVfXykuJy9pbmNsdWRlcyc7CgkJJGRpcj1vcGVuZGlyKCRwYXRoKTsKICAgCQl3aGlsZSAoJGZpbGVzcGVjPXJlYWRkaXIoJGRpcikpCiAgIAkJCXsKICAgCQkJJHBhcmFtcyA9IGFycmF5KCk7CiAgIAkJCSRhZWZvcm0gPSAnJzsKICAgICAgIAkJaWYgKHByZWdfbWF0Y2goJy8ueG1sJC8nLCRmaWxlc3BlYykgPiAwKQogICAgICAgCQkJewogICAgICAgCQkJJHBhcmFtc1snZmJycF94bWxfZmlsZSddID0gJHBhdGguJy8nLiRmaWxlc3BlYzsKICAgICAgIAkJCSRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKCQkJCSRyZXMgPSAkYWVmb3JtLT5JbXBvcnRYTUwoJHBhcmFtcyk7CiAgICAgICAJCQl9CiAgICAgICAJCX0KCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCdpbnN0YWxsZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0nKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfc2VxJyk7CgoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGQnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX3NlcScpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0X3NlcScpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zsb2NrJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfdmFsJyk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcCcpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cicpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2cnKTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCgkJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3NlcicpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkKCgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF9zZXEnKTsKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX3ZhbF9zZXEnKTsKCQkkZGItPkRyb3BTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX2F0dHJfc2VxJyk7CgkJJGRiLT5Ecm9wU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1icm93c2VyX3NlcScpOwoJCSRkYi0+RHJvcFNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3VuaXF1ZWZpZWxkX3NlcScpOwoKCQkkdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJyk7CgkJCgkJJHRoaXMtPlJlbW92ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnICk7CgkJJHRoaXMtPlJlbW92ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5JyApOwoJCSR0aGlzLT5SZW1vdmVFdmVudCggJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InICk7CgoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdoaWRlX2Vycm9ycycpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdzaG93X3ZlcnNpb24nKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdlbmFibGVfZmFzdGFkZCcpOwoJCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdlbmFibGVfYW50aXNwYW0nKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgncmVxdWlyZV9maWVsZG5hbWVzJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3VuaXF1ZV9maWVsZG5hbWVzJyk7CgkJJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnKTsKCQkkdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnc2hvd19maWVsZGFsaWFzZXMnKTsKCgoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJJHRoaXMtPmluaXRpYWxpemUoKTsKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCWRlYnVnX2Rpc3BsYXkoJ0N1cnJlbnQtdmVyc2lvbjogJy4kY3VycmVudF92ZXJzaW9uKTsKCQlzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKCQl7CgkJCWNhc2UgIjAuMSI6CgkJCWNhc2UgIjAuMiI6CgkJCWNhc2UgIjAuMi4yIjoKCQkJY2FzZSAiMC4yLjMiOgoJCQljYXNlICIwLjIuNCI6CgkJCQl7CgkJCQkkZmxkcyA9ICIKCQkJCQlzZW50X2lkIEkgS0VZLAoJCQkJCXNyY19pcCBDKDE2KSwKCQkJCQlzZW50X3RpbWUgIi5DTVNfQURPREJfRFQ7CgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCQkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9pcF9sb2dfc2VxJyk7CgkJCQl9CgkJCWNhc2UgIjAuMyI6CgkJCSAgIHsKICAgICAgICAgICAgLy8gcmVhZCB0aGUgb2xkIHRlbXBsYXRlcwogICAgICAgICAgICAkdGVtcF90YWJfbGVmdCA9IGZpbGVfZ2V0X2NvbnRlbnRzICggZGlybmFtZShfX0ZJTEVfXykuJy90ZW1wbGF0ZXMvUmVuZGVyRm9ybVRhYmxlVGl0bGVMZWZ0LnRwbCcpOwogICAgICAgICAgICAkdGVtcF90YWJfdG9wID0gZmlsZV9nZXRfY29udGVudHMgKCBkaXJuYW1lKF9fRklMRV9fKS4nL3RlbXBsYXRlcy9SZW5kZXJGb3JtVGFibGVUaXRsZVRvcC50cGwnKTsKICAgICAgICAgICAgJHRlbXBfdGFiX2NzcyA9ICBmaWxlX2dldF9jb250ZW50cyAoIGRpcm5hbWUoX19GSUxFX18pLicvdGVtcGxhdGVzL1JlbmRlckZvcm1DU1MudHBsJyk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyB0aGlzIHVwZ3JhZGUgc2hvdWxkIGhhdmUgYSBsb3QgbW9yZSBlcnJvciBjaGVja2luZywgYnV0IEknbSB0b28gbGF6eS4KICAgICAgICAgICAgLy8gVGhhdCdzIHRoZSBkb3duc2lkZSB0byBGcmVlIHNvZnR3YXJlIDooCgogICAgICAgICAgICAvLyB1cGRhdGUgYWxsIGZvcm1zIHRvIHVzZSBhIEN1c3RvbSBUZW1wbGF0ZQoJICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCwgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBuYW1lPSdmb3JtX2Rpc3BsYXl0eXBlJyBhbmQgdmFsdWUgPD4gJ3RlbXBsYXRlJyI7CiAgICAgICAgICAgICRzdWJzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciBTRVQgdmFsdWU9PyB3aGVyZSBuYW1lPSdmb3JtX3RlbXBsYXRlJyBhbmQgZm9ybV9pZD0/IjsKCSAgICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKICAgICAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGlmICgkcm93Wyd2YWx1ZSddID09ICd0YWInKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIC8vIHRvcCBvciBsZWZ0IHRpdGxlPyBBbm90aGVyIGRhbW4gcXVlcnkuCiAgICAgICAgICAgICAgICAgICR0b3BsZWZ0ID0gJGRiLT5HZXRPbmUoJ1NFTEVDVCB2YWx1ZSBmcm9tICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICAgICAgICAgICAgICAgICAgICJtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIG5hbWU9J3RpdGxlX3Bvc2l0aW9uJyBhbmQgZm9ybV9pZD0/IiwKICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgICAgaWYgKCR0b3BsZWZ0ID09ICdsZWZ0JykKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzdWJzcWwsYXJyYXkoJHRlbXBfdGFiX2xlZnQsJHJvd1snZm9ybV9pZCddKSk7CiAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmJfJy4kcm93Wydmb3JtX2lkJ10sJHRlbXBfdGFiX2xlZnQpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzdWJzcWwsYXJyYXkoJHRlbXBfdGFiX3RvcCwkcm93Wydmb3JtX2lkJ10pKTsKICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlNldFRlbXBsYXRlKCdmYl8nLiRyb3dbJ2Zvcm1faWQnXSwkdGVtcF90YWJfdG9wKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UgaWYgKCRyb3dbJ3ZhbHVlJ10gPT0gJ2Nzc29ubHknKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkdGVtcF90YWJfY3NzLCRyb3dbJ2Zvcm1faWQnXSkpOwogICAgICAgICAgICAgICAgICAkdGhpcy0+U2V0VGVtcGxhdGUoJ2ZiXycuJHJvd1snZm9ybV9pZCddLCR0ZW1wX3RhYl9jc3MpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgJGNsZWFudXBzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9mYl9mb3JtX2F0dHIgd2hlcmUgbmFtZT0ndGl0bGVfcG9zaXRpb24nIG9yIG5hbWU9J2Zvcm1fZGlzcGxheXR5cGUnIjsKICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkY2xlYW51cHNxbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgY2FzZSAiMC40IjoKICAgICAgICAgICAgewogICAgICAgICAgICAvLyB1cGdyYWRlIHRoZSB0ZW1wbGF0ZXMgc28gdGhleSBhdCBsZWFzdCB3b3JrLgoJICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCwgdmFsdWUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciB3aGVyZSBuYW1lPSdmb3JtX3RlbXBsYXRlJyI7CiAgICAgICAgICAgICRzdWJzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLgoJICAgICAgICAgICAgICAibW9kdWxlX2ZiX2Zvcm1fYXR0ciBTRVQgdmFsdWU9PyB3aGVyZSBuYW1lPSdmb3JtX3RlbXBsYXRlJyBhbmQgZm9ybV9pZD0/IjsKICAgICAgICAgICAgJHRlbXBfbmZoID0gZmlsZV9nZXRfY29udGVudHMgKCBkaXJuYW1lKF9fRklMRV9fKS4nL2luY2x1ZGVzL25ld19mb3JtX2hlYWRlci50cGwnKTsKICAgICAgICAgICAgJHRlbXBfbmZmID0gZmlsZV9nZXRfY29udGVudHMgKCBkaXJuYW1lKF9fRklMRV9fKS4nL2luY2x1ZGVzL25ld19mb3JtX2Zvb3Rlci50cGwnKTsKCSAgICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKCiAgICAgICAgICAgIHdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAkZml4dGVtcGwgPSAkdGVtcF9uZmguInsqIi4kdGhpcy0+TGFuZygndXBncmFkZTAzdG8wNCcpLiIqfVxuIi4kcm93Wyd2YWx1ZSddLiR0ZW1wX25mZjsKCiAgICAgICAgICAgICAgICRyZXMgPSAkZGItPkV4ZWN1dGUoJHN1YnNxbCxhcnJheSgkZml4dGVtcGwsJHJvd1snZm9ybV9pZCddKSk7CiAgICAgICAgICAgICAgICR0aGlzLT5TZXRUZW1wbGF0ZSgnZmJfJy4kcm93Wydmb3JtX2lkJ10sJGZpeHRlbXBsKTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBmaXggcm93cy9jb2xzIHByb2JsZW0gZm9yIFRleHRBcmVhcwoJICAgICAgICAgJHNxbCA9ICdTRUxFQ1QgZm9ybV9pZCwgZmllbGRfaWQsIG5hbWUsIHZhbHVlIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgICAgICAgICAgICAgIm1vZHVsZV9mYl9maWVsZF9vcHQgd2hlcmUgbmFtZT0ncm93cycgb3IgbmFtZT0nY29scyciOwogICAgICAgICAgICAkcm93cyA9IGFycmF5KCk7CiAgICAgICAgICAgICRjb2xzID0gYXJyYXkoKTsKCSAgICAgICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkc3FsKTsKICAgICAgICAgICAgd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGlmICgkcm93WyduYW1lJ10gPT0gJ3Jvd3MnKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICRjb2xzWyRyb3dbJ2Zvcm1faWQnXS4nXycuJHJvd1snZmllbGRfaWQnXV0gPSAkcm93Wyd2YWx1ZSddOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAkcm93c1skcm93Wydmb3JtX2lkJ10uJ18nLiRyb3dbJ2ZpZWxkX2lkJ11dID0gJHJvd1sndmFsdWUnXTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgICRzcWwgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLiAnbW9kdWxlX2ZiX2ZpZWxkX29wdCBzZXQgdmFsdWU9PyB3aGVyZSBmb3JtX2lkPT8gYW5kIGZpZWxkX2lkPT8gYW5kIG5hbWU9Pyc7CiAgICAgICAgICAgIGZvcmVhY2ggKCRyb3dzIGFzICRrZXk9PiR2YWwpCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgJHRoaXNSb3cgPSAkdmFsOwogICAgICAgICAgICAgICAkdGhpc0NvbCA9ICRjb2xzWyRrZXldOwogICAgICAgICAgICAgICBsaXN0KCRmb3JtX2lkLCRmaWVsZF9pZCkgPSBleHBsb2RlKCdfJywka2V5KTsKICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCR0aGlzUm93LCRmb3JtX2lkLCRmaWVsZF9pZCwncm93cycpKTsKICAgICAgICAgICAgICAgJHJlcyA9ICRkYi0+RXhlY3V0ZSgkc3FsLGFycmF5KCR0aGlzQ29sLCRmb3JtX2lkLCRmaWVsZF9pZCwnY29scycpKTsKICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoJCWNhc2UgIjAuNC4xIjoKCQljYXNlICIwLjQuMiI6CgkJY2FzZSAiMC40LjMiOgoJCWNhc2UgIjAuNC40IjoKCQkJewoJCQkkZmxkcyA9ICIKCQkJCWZicl9pZCBJIEtFWSwKCQkJCWZvcm1faWQgSSwKCQkJCWluZGV4X2tleV8xIEMoODApLAoJCQkJaW5kZXhfa2V5XzIgQyg4MCksCgkJCQlpbmRleF9rZXlfMyBDKDgwKSwKCQkJCWluZGV4X2tleV80IEMoODApLAoJCQkJaW5kZXhfa2V5XzUgQyg4MCksCgkJCQlyZXNwb25zZSBYLAoJCQkJdXNlcl9hcHByb3ZlZCAiLkNNU19BRE9EQl9EVC4iLAoJCQkJc2VjcmV0X2NvZGUgQygzNSksCgkJCQlhZG1pbl9hcHByb3ZlZCAiLkNNU19BRE9EQl9EVC4iLAoJCQkJc3VibWl0dGVkICIuQ01TX0FET0RCX0RUOwoJCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXInLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl91bmlxdWVmaWVsZF9zZXEnKTsKCQkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3Nlcl9zZXEnKTsKCQkJCQoJCQl9CgkJfQoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndXBncmFkZWQnLCR0aGlzLT5HZXRWZXJzaW9uKCkpKTsKCj8+]]></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[e2lmICRtZXNzYWdlICE9ICcnfTxoND57JG1lc3NhZ2V9PC9oND57L2lmfQp7JGJhY2t0b2Zvcm1fbmF2fTxiciAvPgp7JHN0YXJ0X2Zvcm19eyRmYl9oaWRkZW59eyRvcH17JHRhYl9zdGFydH0KeyRtYWludGFiX3N0YXJ0fQoJe2ZvcmVhY2ggZnJvbT0kbWFpbkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyRhZHZhbmNlZHRhYl9zdGFydH0KCXtmb3JlYWNoIGZyb209JGFkdkxpc3QgaXRlbT1lbnRyeX0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCQk8cCBjbGFzcz0icGFnZXRleHQiPnskZW50cnktPnRpdGxlfTo8L3A+CgkJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW50cnktPmlucHV0fTwvcD4KCQkJe2lmICRlbnRyeS0+aGVscCAhPSAnJ317JGVudHJ5LT5oZWxwfXsvaWZ9CgkJPC9kaXY+Cgl7L2ZvcmVhY2h9CnskdGFiX2VuZH0KeyR0YWJzX2VuZH0Ke2lmICRhZGQgIT0gJycgb3IgJGRlbCAhPSAnJ30KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhZGR9eyRkZWx9PC9wPgoJPC9kaXY+CnsvaWZ9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KCTwvZGl2Pgp7JGVuZF9mb3JtfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/AddEditForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp7bGl0ZXJhbH0KZnVuY3Rpb24gZ2V0VGVtcGxhdGUoKQoJewkJCgl2YXIgc2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmJfdGVtcGxhdGVfbG9hZCcpOwoJaWYgKHNlbGVjdG9yKQoJCXsKCQl2YXIgdGVtcGwgPSBzZWxlY3RvcltzZWxlY3Rvci5zZWxlY3RlZEluZGV4XS52YWx1ZTsKCgkJaWYgKHRlbXBsLmxlbmd0aCA+IDAgJiYgY29uZmlybSgney9saXRlcmFsfXskdGVtcGxhdGVfYXJlX3lvdV9zdXJlfXtsaXRlcmFsfScpKQoJCQl7CgkJCXZhciB1cmwgPSAney9saXRlcmFsfXskbW9kX3BhdGh9e2xpdGVyYWx9JzsKCQkJdmFyIHBhcnMgPSAney9saXRlcmFsfXskbW9kX3BhcmFtfXtsaXRlcmFsfSZtMV9mYnJwX3RpZD0nK3RlbXBsOwoJCQoJCQl2YXIgbXlBamF4ID0gbmV3IEFqYXguUmVxdWVzdCgKCQkJCXVybCwgCgkJCQl7CgkJCQkJbWV0aG9kOiAnZ2V0JywgCgkJCQkJcGFyYW1ldGVyczogcGFycywKCQkJCQlvbkZhaWx1cmU6IHJlcG9ydEVycm9yLAoJCQkJCW9uQ29tcGxldGU6IHJlcGxhY2VUZW1wbGF0ZQoJCQkJfSk7CQkKCQkJfQoJCX0KCX0KZnVuY3Rpb24gcmVwb3J0RXJyb3IocmVxdWVzdCkKCXsKCQlhbGVydCgnU29ycnkuIFRoZXJlIHdhcyBhbiBlcnJvci4nKTsKCX0KCmZ1bmN0aW9uIHJlcGxhY2VUZW1wbGF0ZShvcmlnaW5hbFJlcXVlc3QpCgl7CgkJLy9wdXQgcmV0dXJuZWQgdGVtcGxhdGUgaW4gdGhlIHRleHRhcmVhCgkJJCgnZmJfZm9ybV90ZW1wbGF0ZScpLnZhbHVlID0gb3JpZ2luYWxSZXF1ZXN0LnJlc3BvbnNlVGV4dDsKCX0KCnsvbGl0ZXJhbH0KPC9zY3JpcHQ+CntpZiAkbWVzc2FnZSAhPSAnJ308aDQ+eyRtZXNzYWdlfTwvaDQ+ey9pZn0KeyRmb3Jtc3RhcnR9eyRmb3JtaWR9eyRmYl9oaWRkZW59eyR0YWJfc3RhcnR9eyRtYWludGFiX3N0YXJ0fQo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX2Zvcm1fbWFpbn08L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fbmFtZX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uYW1lfTwvcD4KCTwvZGl2PgoKe2lmICRhZGRpbmcgPT0gMH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fc3RhdHVzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+e2lmICRoYXNkaXNwb3NpdGlvbiA9PSAxfXskdGV4dF9yZWFkeX17ZWxzZX17JGxpbmtfbm90cmVhZHl9ey9pZn08L3A+Cgk8L2Rpdj4Key9pZn0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fYWxpYXN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fYWxpYXN9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2Nzc19jbGFzc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9jc3NfY2xhc3N9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9pbmxpbmVfZm9ybX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaW5saW5lX2Zvcm19PC9wPgoJPC9kaXY+CjwvZmllbGRzZXQ+CntpZiAkYWRkaW5nPT0wfQo8ZmllbGRzZXQ+PGxlZ2VuZD57JHRpdGxlX2Zvcm1fZmllbGRzfTwvbGVnZW5kPgoJe2lmICRmYXN0YWRkPT0xfQoJCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mYXN0YWRkfTwvcD4KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4KCQkJCXskaW5wdXRfZmFzdGFkZH0KCQkJPC9kaXY+CgkJPC9kaXY+Cgl7L2lmfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9maWVsZHN9PC9wPgoJCTxkaXYgY2xhc3M9InBhZ2VpbnB1dCI+CgkJCTx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj4KCQkJCTx0aGVhZD48dHI+CgkgICAgICAgCXtpZiBpc3NldCgkdGl0bGVfZmllbGRfaWQpfQogICAgICAgICAgICAgICAgPHRoPnskdGl0bGVfZmllbGRfaWR9PC90aD4KCQl7L2lmfQogICAgCQkJCTx0aD57JHRpdGxlX2ZpZWxkX25hbWV9PC90aD4KICAgICAgICAgICAgICAgIAk8dGg+eyR0aXRsZV9maWVsZF90eXBlfTwvdGg+CiAgICAgICAge2lmIGlzc2V0KCR0aXRsZV9maWVsZF9hbGlhcyl9CiAgICAJCQkJPHRoPnskdGl0bGVfZmllbGRfYWxpYXN9PC90aD4KCQl7L2lmfQogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldn08L3RoPgogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2luZm9ybWF0aW9ufTwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoIGNvbHNwYW49IjIiPnskdGl0bGVfb3JkZXJ9PC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+Jm5ic3A7PC90aD48dGg+Jm5ic3A7PC90aD48L3RyPgoJCQkJPC90aGVhZD4KCQkJCTx0Ym9keT4KCQkJCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJCQkJCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+CgkJCQl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2lkKX0KCQkJCQk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4KCQkJCXsvaWZ9CgkJCQkJPHRkPnskZW50cnktPm5hbWV9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+dHlwZX08L3RkPgoJCQkJCXtpZiBpc3NldCgkdGl0bGVfZmllbGRfYWxpYXMpfQoJCQkJCQk8dGQ+eyRlbnRyeS0+YWxpYXN9PC90ZD4KCQkJCQl7L2lmfQoJCQkJCTx0ZD57JGVudHJ5LT5kaXNwb3NpdGlvbn08L3RkPgoJCQkJCTx0ZD57JGVudHJ5LT5maWVsZF9zdGF0dXN9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+dXB9PC90ZD4KCQkJCQk8dGQ+eyRlbnRyeS0+ZG93bn08L3RkPgoJCQkJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgoJCQkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CgkJCQkJPC90cj4KCQkJCXsvZm9yZWFjaH0KICAgICAgICAgICAgICAgCTx0cj48dGQgY29sc3Bhbj0iOCIgY2xhc3M9InJvdzIiPiZuYnNwOzwvdGQ+PC90cj4KICAgICAgICAgICAgICAgCTx0cj48dGQgY29sc3Bhbj0iOCIgY2xhc3M9InJvdzEiPnskYWRkX2ZpZWxkX2xpbmt9ICZuYnNwOyB7JG9yZGVyX2ZpZWxkX2xpbmt9PC90ZD48L3RyPgoJCQkJPC90Ym9keT4KICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KPC9maWVsZHNldD4Key9pZn0KeyR0YWJfZW5kfXskc3VibWl0dGFiX3N0YXJ0fQoJPGZpZWxkc2V0PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpdGxlX3N1Ym1pdF9oZWxwfTwvcD4KCTwvZGl2PgoJPC9maWVsZHNldD4KPGZpZWxkc2V0IGNsYXNzPSJtb2R1bGVfZmJfZmllbGRzZXQiPjxsZWdlbmQ+eyR0aXRsZV9zdWJtaXRfYWN0aW9uc308L2xlZ2VuZD4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9hY3Rpb259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9hY3Rpb259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZWRpcmVjdF9wYWdlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9yZWRpcmVjdF9wYWdlfTwvcD4KCTwvZGl2Pgo8L2ZpZWxkc2V0Pgo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX3N1Ym1pdF9sYWJlbHN9PC9sZWdlbmQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VibWl0X2J1dHRvbl9zYWZldHl9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fc3VibWl0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fbmV4dF9idXR0b259OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fbmV4dF9idXR0b259PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZXZfYnV0dG9ufTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3ByZXZfYnV0dG9ufTwvcD4KCTwvZGl2Pgo8L2ZpZWxkc2V0Pgp7JHRhYl9lbmR9eyRzeW1ib2x0YWJfc3RhcnR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9yZXF1aXJlZF9zeW1ib2x9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3Vuc3BlY2lmaWVkfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfbGlzdF9kZWxpbWl0ZXJ9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xpc3RfZGVsaW1pdGVyfTwvcD4KCTwvZGl2PgoJCnskdGFiX2VuZH17JGNhcHRjaGF0YWJfc3RhcnR9CntpZiAkY2FwdGNoYV9pbnN0YWxsZWR9Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV91c2VfY2FwdGNoYX06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdXNlX2NhcHRjaGF9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV90aXRsZV91c2VyX2NhcHRjaGF9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3RpdGxlX3VzZXJfY2FwdGNoYX08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3VzZXJfY2FwdGNoYV9lcnJvcn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTwvcD4KCTwvZGl2Pgp7ZWxzZX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0aXRsZV9pbnN0YWxsX2NhcHRjaGF9PC9wPgoJPC9kaXY+CnsvaWZ9CnskdGFiX2VuZH0KeyR0ZW1wbGF0ZXRhYl9zdGFydH0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2xvYWRfdGVtcGxhdGV9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xvYWRfdGVtcGxhdGV9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3RlbXBsYXRlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3RlbXBsYXRlfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGhlbHBfdGVtcGxhdGVfdmFyaWFibGVzfTwvcD4KCTwvZGl2Pgp7JHRhYl9lbmR9Cnskc3VibWl0dGVtcGxhdGV0YWJfc3RhcnR9Cgk8ZmllbGRzZXQ+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHB9PC9wPgoJPC9kaXY+Cgk8L2ZpZWxkc2V0PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc3VibWl0X3Jlc3BvbnNlfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfcmVzcG9uc2V9PC9wPgoJCXskaGVscF9zdWJtaXRfcmVzcG9uc2V9Cgk8L2Rpdj4KeyR0YWJfZW5kfQp7JHRhYnNfZW5kfQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNhdmVfYnV0dG9ufXskc3VibWl0X2J1dHRvbn08L3A+Cgk8L2Rpdj4KeyRmb3JtX2VuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfSA8aDQ+eyRtZXNzYWdlfTwvaDQ+IHsvaWZ9Cgp7JHRhYmhlYWRlcnN9Cnskc3RhcnRfZm9ybXRhYn0KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIiB3aWR0aD0iODAlIj4KPHRoZWFkPjx0cj4KICAgIDx0aD57JHRpdGxlX2Zvcm1fbmFtZX08L3RoPgogICAgPHRoPnskdGl0bGVfZm9ybV9hbGlhc308L3RoPgogICAgPHRoPiZuYnNwOzwvdGg+PHRoPiZuYnNwOzwvdGg+PHRoPiZuYnNwOzwvdGg+CjwvdHI+CjwvdGhlYWQ+Cgp7Zm9yZWFjaCBmcm9tPSRmb3JtcyBpdGVtPWVudHJ5fQoJPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iIG9ubW91c2VvdmVyPSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfSc7Ij4KCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPgoJCTx0ZD4mIzEyMztjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3skZW50cnktPnVzYWdlfScmIzEyNTs8L3RkPgoJCTx0ZD57JGVudHJ5LT54bWx9PC90ZD4KCQk8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4KCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPgoJPC90cj4Key9mb3JlYWNofQoKPHRyIGNsYXNzPSJyb3cyIj48dGQgY29sc3Bhbj0iNSI+Jm5ic3A7PC90ZD48L3RyPgo8dHIgY2xhc3M9InJvdzEiPjx0ZCBjb2xzcGFuPSI1Ij4KCntpZiAkYWRkbGluayAhPSAnJ317JGFkZGxpbmt9eyRhZGRmb3JtfXsvaWZ9CjwvdGQ+PC90cj4KPC90YWJsZT4KPGZpZWxkc2V0Pgo8bGVnZW5kPnskbGVnZW5kX3htbF9pbXBvcnR9PC9sZWdlbmQ+Cnskc3RhcnRfeG1sZm9ybX0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfeG1sX3RvX3VwbG9hZH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfeG1sX3RvX3VwbG9hZH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1uYW1lfSZuYnNwOzxlbT57JGluZm9fbGVhdmVlbXB0eX08L2VtPjwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhc30mbmJzcDs8ZW0+eyRpbmZvX2xlYXZlZW1wdHl9PC9lbT48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0eG1sfQo8L2Rpdj4KeyRlbmRfeG1sZm9ybX0KPC9maWVsZHNldD4KeyRlbmRfdGFifQp7JHN0YXJ0X2NvbmZpZ3RhYn0Ke2lmICRtYXlfY29uZmlnID09IDF9Cnskc3RhcnRfY29uZmlnZm9ybX0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2VuYWJsZV9mYXN0YWRkfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfZmFzdGFkZH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2hpZGVfZXJyb3JzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9oaWRlX2Vycm9yc308L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlcXVpcmVfZmllbGRuYW1lc306PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVxdWlyZV9maWVsZG5hbWVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VuaXF1ZV9maWVsZG5hbWVzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfcmVsYXhlZF9lbWFpbF9yZWdleH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfdmVyc2lvbn06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd192ZXJzaW9ufTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2FudGlzcGFtfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfYW50aXNwYW19PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zaG93X2ZpZWxkaWRzfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zaG93X2ZpZWxkaWRzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfc2hvd19maWVsZGFsaWFzZXN9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3Nob3dfZmllbGRhbGlhc2VzfTwvcD4KCTwvZGl2PgoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+Cgk8L2Rpdj4KeyRlbmRfY29uZmlnZm9ybX0KCntlbHNlfQoJPHA+eyRub19wZXJtaXNzaW9ufTwvcD4Key9pZn0KeyRlbmRfdGFifQp7JGVuZF90YWJzfQoK]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQogICAgICAgIAl7c3RyaXB9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTxkaXYKICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CiAgICAgICAgICAgICAgICAJCXJlcXVpcmVkCiAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KICAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+Y3NzX2NsYXNzfQogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9CiAgICAgICAgICAgIAl7L3NlY3Rpb259CiAgICAgICAgIAl7ZWxzZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPC9kaXY+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJey9zdHJpcH0KICAgICAJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CiAgICAgICAgCXtzdHJpcH0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPGRpdgogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9IgogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KICAgICAgICAgICAgICAgIAkJcmVxdWlyZWQKICAgICAgICAgICAgICAJCXsvaWZ9CiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxICYmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfQogICAgICAgICAgICAgICAgCQl7JGVudHJ5LT5jc3NfY2xhc3N9CiAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgIAkJIgogICAgICAgICAgICAJey9pZn0KICAgICAgICAgICAgCT4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KICAgICAgICAgICAgCTxsYWJlbHtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzICE9IDF9IGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9InsvaWZ9PnskZW50cnktPm5hbWV9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CiAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQogICAgICAgICAgICAJey9pZn0KICAgICAgICAgICAgCTwvbGFiZWw+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KICAgICAgICAgICAgCXtzZWN0aW9uIG5hbWU9bnVtbG9vcCBsb29wPSRlbnRyeS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+bGFiZWxfcGFydHMgPT0gMX0KICAgICAgICAgICAgICAgCQkJPGRpdj57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgIAkJe2Vsc2V9CiAgICAgICAgICAgICAgIAkJCXskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0KICAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgICAJCXtpZiBpc3NldCgkZW50cnktPmlucHV0W251bWxvb3BdLT5vcCkgJiYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9CiAgICAgICAgICAgIAl7L3NlY3Rpb259CiAgICAgICAgIAl7ZWxzZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPC9kaXY+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJey9zdHJpcH0KICAgICAJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+Cgl7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleLeft.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gTGVmdCAqfQp7KiBuZXh0IGxpbmUgc2V0cyBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpbmdzIGxpa2UgY2hlY2tib3ggZ3JvdXBzICp9Cnthc3NpZ24gdmFyPSJjb2xzIiB2YWx1ZT0iMyJ9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8dGFibGUgY2xhc3M9ImVycm9yIj4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTx0cj48dGQ+eyR0aGlzRXJyfTwvdGQ+PC90cj4KCQkJey9mb3JlYWNofQoJCQk8L3RhYmxlPgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCiAgICA8dGFibGV7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KICAgIHtpZiAkdG90YWxfcGFnZXMgZ3QgMX08dHI+PHRkIGNvbHNwYW49IjIiPnskdGl0bGVfcGFnZV94X29mX3l9PC90ZD48L3RyPnsvaWZ9CiAgICB7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCSAge2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxICYmCgkgICAgJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgU3RhcnQnICYmCgkgICAgJGVudHJ5LT50eXBlICE9ICctRmllbGRzZXQgRW5kJyB9CgkgICAgPHRyPgoJICAgIAl7c3RyaXB9CgkgICAgCTx0ZCBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIgoJICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iIAoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KCSAgICAJCQlyZXF1aXJlZAoJICAgIAkJey9pZn0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+Y3NzX2NsYXNzfQoJICAgIAkJey9pZn0KCSAgICAJCSIKCSAgICAJey9pZn0KCSAgICAJPgoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KCSAgICAJCXskZW50cnktPm5hbWV9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQoJICAgIAkJey9pZn0KCSAgICAJey9pZn0KCSAgICAJPC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIntpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskZW50cnktPmNzc19jbGFzc30iey9pZn0+CgkgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAJCTx0YWJsZT4KCQkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJICAgIAkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkgICAgCQkJICAgICAgIHtpZiBub3QgKCRzbWFydHkuc2VjdGlvbi5udW1sb29wLnJvd251bSBtb2QgJGNvbHMpfQogICAgICAgICAgICAgICAgCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgICAgICAgICAgCQk8L3RyPjx0cj4KICAgICAgICAgICAgICAgIAkJCQl7L2lmfQogICAgICAgIAkJCQkJey9pZn0KICAgICAgIAkJCQl7aWYgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgIAkJe21hdGggZXF1YXRpb24gPSAibiAtIGEgJSBuIiBuPSRjb2xzIGE9JGVudHJ5LT5pbnB1dHxAY291bnQgYXNzaWduPSJjZWxscyJ9CiAgICAgICAgICAgICAgICAJCXtpZiAkY2VsbHMgbmUgJGNvbHN9CiAgICAgICAgICAgICAgICAJCQl7c2VjdGlvbiBuYW1lPXBhZCBsb29wPSRjZWxsc30KICAgICAgICAgICAgICAgICAgICAgICAgCQk8dGQ+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICAgIAkJCXsvc2VjdGlvbn0KICAgICAgICAgICAgICAgCQkgCXsvaWZ9CiAgICAgICAgICAgICAgICAJCTwvdHI+CiAgICAgICAgCQkJey9pZn0KCSAgICAJCXsvc2VjdGlvbn0KCSAgICAJCTwvdGFibGU+CgkgICAgCXtlbHNlfQoJICAgIAkJeyRlbnRyeS0+aW5wdXR9CgkgICAgCXsvaWZ9CgkgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KCSAgICAJPC90ZD48L3RyPgoJICAgIAl7L3N0cmlwfQoJICB7L2lmfQp7L2ZvcmVhY2h9CntpZiAkaGFzX2NhcHRjaGEgPT0gMX0KPHRyPjx0ZD57JGdyYXBoaWNfY2FwdGNoYX08L3RkPjx0ZD57JGlucHV0X2NhcHRjaGF9PGJyIC8+eyR0aXRsZV9jYXB0Y2hhfTwvdGQ+PC90cj4Key9pZn0KPHRyPjx0ZD57JHByZXZ9PC90ZD48dGQ+eyRzdWJtaXR9PC90ZD48L3RyPgo8L3RhYmxlPgp7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormTableTitleTop.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogVEFCTEUgRk9STSBMQVlPVVQgLyBGaWVsZCB0aXRsZXMgb24gVG9wICp9CnsqIG5leHQgbGluZSBzZXRzIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGluZ3MgbGlrZSBjaGVja2JveCBncm91cHMgKn0Ke2Fzc2lnbiB2YXI9ImNvbHMiIHZhbHVlPSIzIn0KeyRmYl9mb3JtX2hlYWRlcn0Ke2lmICRmYl9mb3JtX2RvbmUgPT0gMX0KCXsqIFRoaXMgZmlyc3Qgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyBzdWJtaXNzaW9uIGVycm9ycyAqfQoJe2lmICRmYl9zdWJtaXNzaW9uX2Vycm9yfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPnskZmJfc3VibWlzc2lvbl9lcnJvcn08L2Rpdj4KCQl7aWYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTx0YWJsZSBjbGFzcz0iZXJyb3IiPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPHRyPjx0ZD57JHRoaXNFcnJ9PC90ZD48L3RyPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdGFibGU+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzfQoJCTxkaXYgY2xhc3M9ImVycm9yX21lc3NhZ2UiPgoJCTx1bD4KCQl7Zm9yZWFjaCBmcm9tPSRmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzIGl0ZW09dGhpc0Vycn0KCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCXsvZm9yZWFjaH0KCQk8L3VsPgoJCTwvZGl2PgoJey9pZn0KCXtpZiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoKICAgIDx0YWJsZXtpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgogICAge2lmICR0b3RhbF9wYWdlcyBndCAxfTx0cj48dGQgY29sc3Bhbj0iMiI+eyR0aXRsZV9wYWdlX3hfb2ZfeX08L3RkPjwvdHI+ey9pZn0KICAgIHtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQoJICB7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDEgJiYKCSAgICAkZW50cnktPnR5cGUgIT0gJy1GaWVsZHNldCBTdGFydCcgJiYKCSAgICAkZW50cnktPnR5cGUgIT0gJy1GaWVsZHNldCBFbmQnIH0KCSAgICA8dHI+CgkgICAgCXtzdHJpcH0KCSAgICAJPHRkIHZhbGlnbj0idG9wIgoJICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxIHx8ICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSBjbGFzcz0iIAoJICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMX0KCSAgICAJCQlyZXF1aXJlZAoJICAgIAkJey9pZn0KCSAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CgkgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+Y3NzX2NsYXNzfQoJICAgIAkJey9pZn0KCSAgICAJCSIKCSAgICAJey9pZn0KCSAgICAJPgoJICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KCSAgICAJCXskZW50cnktPm5hbWV9CgkgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CgkgICAgCQkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQoJICAgIAkJey9pZn0KCSAgICAJey9pZn0KCSAgICAJPC90ZD48L3RyPjx0cj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIntpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskZW50cnktPmNzc19jbGFzc30iey9pZn0+CgkgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAJCTx0YWJsZT4KCQkJCQk8dHI+CgkJCQl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQoJICAgIAkJCTx0ZD57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9e2lmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfTwvdGQ+CgkgICAgCQkJICAgICAgIHtpZiBub3QgKCRzbWFydHkuc2VjdGlvbi5udW1sb29wLnJvd251bSBtb2QgJGNvbHMpfQogICAgICAgICAgICAgICAgCQkJCXtpZiBub3QgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgICAgICAgICAgCQk8L3RyPjx0cj4KICAgICAgICAgICAgICAgIAkJCQl7L2lmfQogICAgICAgIAkJCQkJey9pZn0KICAgICAgIAkJCQl7aWYgJHNtYXJ0eS5zZWN0aW9uLm51bWxvb3AubGFzdH0KICAgICAgICAgICAgICAgIAkJe21hdGggZXF1YXRpb24gPSAibiAtIGEgJSBuIiBuPSRjb2xzIGE9JGVudHJ5LT5pbnB1dHxAY291bnQgYXNzaWduPSJjZWxscyJ9CiAgICAgICAgICAgICAgICAJCXtpZiAkY2VsbHMgbmUgJGNvbHN9CiAgICAgICAgICAgICAgICAJCQl7c2VjdGlvbiBuYW1lPXBhZCBsb29wPSRjZWxsc30KICAgICAgICAgICAgICAgICAgICAgICAgCQk8dGQ+Jm5ic3A7PC90ZD4KICAgICAgICAgICAgICAgIAkJCXsvc2VjdGlvbn0KICAgICAgICAgICAgICAgCQkgCXsvaWZ9CiAgICAgICAgICAgICAgICAJCTwvdHI+CiAgICAgICAgCQkJey9pZn0KCSAgICAJCXsvc2VjdGlvbn0KCSAgICAJCTwvdGFibGU+CgkgICAgCXtlbHNlfQoJICAgIAkJeyRlbnRyeS0+aW5wdXR9CgkgICAgCXsvaWZ9CgkgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KCSAgICAJPC90ZD48L3RyPgoJICAgIAl7L3N0cmlwfQoJICB7L2lmfQp7L2ZvcmVhY2h9CntpZiAkaGFzX2NhcHRjaGEgPT0gMX0KPHRyPjx0ZD57JGdyYXBoaWNfY2FwdGNoYX08L3RkPjwvdHI+PHRyPjx0ZD57JGlucHV0X2NhcHRjaGF9PGJyIC8+eyR0aXRsZV9jYXB0Y2hhfTwvdGQ+PC90cj4Key9pZn0KPHRyPjx0ZD57JHByZXZ9PC90ZD48L3RyPjx0cj48dGQ+eyRzdWJtaXR9PC90ZD48L3RyPgo8L3RhYmxlPgp7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/ReorderForm.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gc2VuZF9vcmRlcl92YXIoZm9ybV9kZXNjKQogICB7CiAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmVudDAnKTsKICAgaWYgKGVsZW0pCiAgICAgIHsKICAgICAgdmFyIHN0ciA9ICcnOwogICAgICB2YXIgbm9kZXMgPSBlbGVtLmNoaWxkTm9kZXM7CiAgICAgIGZvciAoaT0wO2k8bm9kZXMubGVuZ3RoO2krKykKICAgICAgICAgewogICAgICAgICBzdHIgPSBzdHIgKyBub2Rlc1tpXS5pZCArICcsJzsKICAgICAgICAgfQogICAgICB9CiAgIHZhciBmbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3JkZXJwYXNzJyk7CiAgIGlmIChmbGQpCgkJewoJCWZsZC52YWx1ZSA9IHN0cjsKCQl9CiAgIHJldHVybiB0cnVlOwogICB9Cjwvc2NyaXB0Pgp7L2xpdGVyYWx9Cgp7JHN0YXJ0X2Zvcm19Cjx1bCBpZD0icGFyZW50MCIgY2xhc3M9InNvcnRhYmxlTGlzdCI+Cntmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPXRoaXNGaWVsZH0KCQk8bGkgaWQ9InskdGhpc0ZpZWxkLT5pZH0iPjxzdHJvbmc+eyR0aGlzRmllbGQtPm5hbWV9PC9zdHJvbmc+IC0geyR0aGlzRmllbGQtPnR5cGV9PC9saT4Key9mb3JlYWNofQoKPC91bD4KPGJyIC8+CnskZmJfaGlkZGVufTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJvcmRlcnBhc3MiIG5hbWU9InskaWR9ZmJycF9vcmRlciIgdmFsdWU9IiIgLz4KeyRzdWJtaXR9CnskZW5kX2Zvcm19Cgp7bGl0ZXJhbH0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpTb3J0YWJsZS5jcmVhdGUoJ3BhcmVudDAnLHt0YWc6J2xpJ30pOwo8L3NjcmlwdD4Key9saXRlcmFsfQ==]]></data>
	</file>
</module>
