<?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.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+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJ3MgaW5wdXQgKHVzZWZ1bCBmb3IgbGFiZWwgZm9yPSJmb28iKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+dHlwZTwvdGQ+PHRkPnRoZSBmaWVsZCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPgo8L3RhYmxlPgoKPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+CiAgICAKPHA+QWRkaXRpb25hbCBzbWFydHkgdmFyaWFibGVzIHRoYXQgeW91IGNhbiB1c2UgaW5jbHVkZTo8L3A+Cjx0YWJsZT4KPHRyPjx0aD5WYXJpYWJsZTwvdGg+PHRoPlZhbHVlPC90aD48L3RyPgo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+bnVtYmVyIG9mIHBhZ2VzIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD48dGQ+ZGlzcGxheXMgInBhZ2UgeCBvZiB5IiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+IkJhY2siIGJ1dHRvbiBmb3IgbXVsdGlwYXJ0IGZvcm1zPC90ZD48L3RyPgo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KCgo8aDM+S25vd24gSXNzdWVzPC9oMz4KPHVsPgo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4ndCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+CjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+CjwvdWw+Cgo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UncmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+CjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUKc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPgo8bGk+IElmIHlvdSdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQncyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UncmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+CjxsaT5VbmNoZWNrIHRoZSAiSGlkZSBFcnJvcnMiIGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPgo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+CjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4KPC9vbD4gCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSd2ZSBkb25lIGFsbCBJIGNhbgp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28KYXRlIHRoZSBuZWlnaGJvcidzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8dWw+CjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LjwvbGk+CjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMgZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEgc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZsdDtzamdAY21zbW9kdWxlcy5jb20mZ3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPgo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q01TTWFpbGVyID0mZ3Q7IDEuNzM8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmJycF8qPSJudWxsIiAtIEdlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9uczwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZm9ybV9pZD0ibnVsbCIgLSBGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBmb3JtPSJudWxsIiAtIEZvcm0gTmFtZTwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gZmllbGRfaWQ9Im51bGwiIC0gRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnM8L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHZhbHVlXyo9Im51bGwiIC0gRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscDwvbGk+PGxpPjxlbT4ob3B0aW9uYWwpPC9lbT4gcmVzcG9uc2VfaWQ9Im51bGwiIC0gUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXI8L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0aG9yOiBTakcgJmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjUuNTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPgo8dWw+CjxsaT5WZXJzaW9uIDAuNS41LiAxIE9jdCAwOC4gQnVnIGZpeGVzLiBBZGRlZCBuZXcgRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQgdG8gcmVwbGFjZSBkZWZpY2llbmNpZXMgd2l0aCBFbWFpbCBBZGRyZXNzICdGcm9tJyBGaWVsZCB0eXBlLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS40LiAyOSBBdWcgMDguIFNjcmFwcGluZyBwbGFucyBmb3IgMC42LiBCdWcgZml4ZXMuIFRlZCdzIG5ldyAiRW1haWwgIkZyb20gQWRkcmVzcyIgQWdhaW4gRmllbGQiLiBBZGRlZCBkYXRhYmFzZSBpbmRpY2VzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4yLiAyNSBNYXkgMDguIEJ1Z2ZpeGVzLiBSZWxlYXNlIGluIHByZXBhcmF0aW9uIGZvciBzdWJzdGFudGlhbCByZXdvcmtpbmcgZm9yIDAuNjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4xLiAzMCBBcHJpbCAwOC4gQnVnZml4ZXMsIHJld3JvdGUgc29tZSBvZiB0aGUgRmlsZSBVcGxvYWQgY29kZSB0byBwcmV2ZW50IHdoaXRlIHNjcmVlbiBvZiBhbm5veWFuY2UuPC9saT4KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPgo8bGk+VmVyc2lvbiAwLjQuNC4gMjYgU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHJhZGlvIGJ1dHRvbiBncm91cHMsIGZpeCBmb3IgdmFsaWRhdGlvbiBvZiBEaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC40LjEuIEJ1Z2ZpeGVzIGZvciBGaWxlIERpc3Bvc2l0aW9uIFR5cGVzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNAoJPHVsPgoJCTxsaT5VcHBlZCBtaW5pbXVtIENNUyB2ZXJzaW9uIHRvIDEuMTwvbGk+CgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPgoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4KCQk8bGk+QWRkZWQgZmllbGQgdHlwZXM6ICJUZXh0RmllbGQgKE11bHRpcGxlKSIgYW5kICJDb21wdXRlZCBGaWVsZCI8L2xpPgoJCTxsaT5BZGRlZCBkaXNwb3NpdGlvbnM6ICJTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93biIgYW5kICJTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zIihDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPgoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSJ2YWx1ZSIgc3ludGF4IChDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgb3B0aW9uIHRvIGRpc3BsYXkgZmllbGQgaWRzIGluIGFkbWluIChDYWxndXkpPC9saT4KCTwvdWw+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMwogICA8dWw+CiAgICAgIDxsaT5BZGRlZCBDYXB0Y2hhIG1vZHVsZSBzdXBwb3J0LjwvbGk+CiAgICAgIDxsaT5SZXdvcmtlZCBsYWJlbGluZyBvZiBmb3JtIGVsZW1lbnRzIHRvIGJlIFhIVE1MIGNvbXBsaWFudDwvbGk+CiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJ3MgbmV3LCBpbXByb3ZlZCBjb250YWN0IGZvcm0gdGVtcGxhdGVzPC9saT4KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPgogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+CiAgICAgIDxsaT5UZXh0IEFyZWEgRmllbGQgbm93IGFsbG93cyBzcGVjaWZpY2F0aW9uIG9mIHJvd3MgYW5kIGNvbHMgaW4gdGhlIGFkbWluLCBpbnN0ZWFkIG9mIENTUzwvbGk+CiAgICAgIDxsaT5BZGRlZCBEcmFnJ24nRHJvcCByZW9yZGVyaW5nIG9mIGZvcm0gZmllbGRzLjwvbGk+CiAgICAgIDxsaT5BZGRlZCBub24tYmxhbmsgZmllbGQgbmFtZSBhbmQgdW5pcXVlIGZpZWxkIG5hbWUgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgdmFsaWRhdGlvbjwvbGk+CiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPgogICAgICA8bGk+PC9saT4KICAgPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4yLjQgLSAwOSBNYXkgMjAwNwogICA8cD5CaWcgcmVsZWFzZTo8dWw+CiAgIDxsaT5BZGRlZCAiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MiIGRpc3Bvc2l0aW9uLjwvbGk+CiAgIDxsaT5BZGRlZCAiVGltZVBpY2tlciIgZmllbGQgdHlwZS4gU3BsaXQgIkxpbmsiIGZpZWxkIGludG8gYSAiVXNlci1zdXBwbGllZCBMaW5rIiBmaWVsZCBhbmQgYSAiU3RhdGljIExpbmsiIGZpZWxkLjwvbGk+CiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPgogICA8L3VsPgogICA8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4zCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuMgogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToKICAgPHVsPgogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+CiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLgogICAgICA8L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbAogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+CiAgICAgIDwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdydzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+CjwvdWw+CjxiciAvPg==</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+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc2V0X2ZpZWxkX2xldmVsJ10pKQoJCQl7CgkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkX2xldmVsJywkcGFyYW1zWydmYnJwX3NldF9maWVsZF9sZXZlbCddKTsKCQkJfQoJCSRhZWZvcm0gPSBuZXcgZmJGb3JtKCR0aGlzLCAkcGFyYW1zLCB0cnVlKTsKCQllY2hvICRhZWZvcm0tPkFkZEVkaXRGb3JtKCRpZCwgJHJldHVybmlkLCBpc3NldCgkcGFyYW1zWydmYnJwX21lc3NhZ2UnXSk/JHRoaXMtPlNob3dNZXNzYWdlKCRwYXJhbXNbJ2ZicnBfbWVzc2FnZSddKTonJyk7Cgo/Pg==]]></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+R2V0RmllbGRzKCkgYXMgJHRoaXNGaWVsZCkKICAgewogICAkZmxkID0gbmV3IFN0ZENsYXNzKCk7CiAgICRmbGQtPmlkID0gJ2ZicnBfJy4kdGhpc0ZpZWxkLT5HZXRJZCgpOwogICAkZmxkLT5uYW1lID0gJHRoaXNGaWVsZC0+R2V0TmFtZSgpOwogICAkZmxkLT50eXBlID0gJHRoaXNGaWVsZC0+R2V0RmllbGRUeXBlKCk7CiAgIGFycmF5X3B1c2goJGZpZWxkcywgJGZsZCk7CiAgIH0KCiR0aGlzLT5zbWFydHktPmFzc2lnbignc3RhcnRfZm9ybScsJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsCgkJCSdhZG1pbl9yZW9yZGVyX3N0b3JlJywgJHJldHVybmlkLCAncG9zdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkdGhpcy0+TGFuZygncmVvcmRlcicpLCdvbmNsaWNrPSJyZXR1cm4gc2VuZF9vcmRlcl92YXIoKSInKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignZW5kX2Zvcm0nLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2lkJywkaWQpOwokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZm9ybV9pZCcsJHBhcmFtc1snZm9ybV9pZCddKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZpZWxkcycsJGZpZWxkcyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignc2NyaXB0YWN1bG91cycsCiAgICc8c2NyaXB0IHNyYz0iJy5kaXJuYW1lKGRpcm5hbWUoZGlybmFtZShfX0ZJTEVfXykpKS4KICAgJy9saWIvc2NyaXB0YWN1bG91cy9zY3JpcHRhY3Vsb3VzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PicpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdSZW9yZGVyRm9ybS50cGwnKTsKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_reorder_store.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwppZiAoISAkdGhpcy0+Q2hlY2tBY2Nlc3MoKSkgZXhpdDsKCiRvcmRlcl9saXN0ID0gZXhwbG9kZSgnLCcsJHBhcmFtc1snZmJycF9vcmRlciddKTsKJGNvdW50ID0gMTsKLy9kZWJ1Z19kaXNwbGF5KCRwYXJhbXNbJ2ZicnBfb3JkZXInXSk7CmlmICghIGlzX2FycmF5KCRvcmRlcl9saXN0KSkKCXsKCSRvcmRlcl9saXN0ID0gYXJyYXkoJG9yZGVyX2xpc3QpOwoJfQoKJGRiID0mICRnQ21zLT5HZXREYigpOwokc3FsID0gJ3VwZGF0ZSAnLmNtc19kYl9wcmVmaXgoKS4KCSdtb2R1bGVfZmJfZmllbGQgc2V0IG9yZGVyX2J5PT8gd2hlcmUgZmllbGRfaWQ9Pyc7CgkKZm9yZWFjaCAoJG9yZGVyX2xpc3QgYXMgJHRoaXNGaWVsZCkKCXsKCSRmbGRpZCA9IHN1YnN0cigkdGhpc0ZpZWxkLHN0cnBvcygkdGhpc0ZpZWxkLCdfJykrMSk7CgkkcnMgPSAkZGItPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGNvdW50LCAkZmxkaWQpKTsKCSRjb3VudCsrOwoJfQoKJGFlZm9ybSA9IG5ldyBmYkZvcm0oJHRoaXMsICRwYXJhbXMsIHRydWUpOwoKZWNobyAkYWVmb3JtLT5BZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJHRoaXMtPkxhbmcoJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnKSk7Cj8+]]></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+R2V0UGFnZU51bWJlcigpID4gMCkgfHwKICAgICAoaXNzZXQoJHBhcmFtc1snZmJycF9kb25lJ10pJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpKSkKICAgIHsKICAgICRyZXMgPSAkYWVmb3JtLT5WYWxpZGF0ZSgpOwogICAgCgkvLyBoYW5kbGUgdXBsb2FkcwogICAgJHJlczIgPSAkYWVmb3JtLT5tYW5hZ2VGaWxlVXBsb2FkcygpOwoKICAgIGlmICgkcmVzWzBdID09PSBmYWxzZSB8fCAkcmVzMlswXSA9PT0gZmFsc2UpCiAgICAgIHsKCSAgaWYgKGlzc2V0KCRyZXMyWzFdKSAmJiAhZW1wdHkoJHJlczJbMV0pKQoJCXsKCQlhcnJheV9wdXNoKCRyZXNbMV0sJHJlczJbMV0pOwoJCX0KCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX3ZhbGlkYXRpb25fZXJyb3JzJywkcmVzWzFdKTsKCSAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9ycycsMSk7CgkgIAoJICAkYWVmb3JtLT5QYWdlQmFjaygpOwogICAgICB9CiAgICBlbHNlIGlmIChpc3NldCgkcGFyYW1zWydmYnJwX2RvbmUnXSkgJiYgJHBhcmFtc1snZmJycF9kb25lJ109PTEpCiAgICAgIHsKICAgICAgJG9rID0gdHJ1ZTsKICAgICAgJGNhcHRjaGEgPSAmJHRoaXMtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICAgIGlmICgkYWVmb3JtLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKT09ICcxJyAmJiAkY2FwdGNoYSAhPSBudWxsKQogICAgICAgICB7CiAgCSAgICAgIGlmICghICRjYXB0Y2hhLT5DaGVja0NhcHRjaGEoJHBhcmFtc1snZmJycF9jYXB0Y2hhX3BocmFzZSddKSkKICAJICAgICAgICAgewogIAkgICAgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhcHRjaGFfZXJyb3InLCRhZWZvcm0tPkdldEF0dHIoJ2NhcHRjaGFfd3JvbmcnLCR0aGlzLT5MYW5nKCd3cm9uZ19jYXB0Y2hhJykpKTsKICAJICAgICAgICAgCiAgCSAgICAgICAgICRhZWZvcm0tPlBhZ2VCYWNrKCk7CiAgICAgICAgICAgICRvayA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgaWYgKCRvaykKICAgICAgICAgewogICAgICAgICAkZmluaXNoZWQgPSB0cnVlOwoJICAgICAgJHJlc3VsdHMgPSAkYWVmb3JtLT5EaXNwb3NlKCRyZXR1cm5pZCk7CgkgICAgICB9CiAgICAgIH0KICB9CgppZiAoISAkZmluaXNoZWQpCiAgIHsKICAgJHBhcm1zID0gYXJyYXkoKTsKICAgJHBhcm1zWydmb3JtX25hbWUnXSA9ICRhZWZvcm0tPkdldE5hbWUoKTsKICAgJHBhcm1zWydmb3JtX2lkJ10gPSAkYWVmb3JtLT5HZXRJZCgpOwogICAkdGhpcy0+U2VuZEV2ZW50KCdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknLCRwYXJtcyk7CgogICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX2Zvcm1fc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnZGVmYXVsdCcsICRyZXR1cm5pZCwgJ3Bvc3QnLCAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsICgkYWVmb3JtLT5HZXRBdHRyKCdpbmxpbmUnLCcwJyk9PSAnMScpLCAnJykpOwoKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2VuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfZm9ybV9kb25lJywwKTsKICAgfQplbHNlCiAgIHsKICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmYl9mb3JtX2RvbmUnLDEpOwogICBpZiAoJHJlc3VsdHNbMF0gPT0gdHJ1ZSkKICAgICAgewogICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAkcGFybXNbJ2Zvcm1fbmFtZSddID0gJGFlZm9ybS0+R2V0TmFtZSgpOwogICAgICAkcGFybXNbJ2Zvcm1faWQnXSA9ICRhZWZvcm0tPkdldElkKCk7CiAgICAgICR0aGlzLT5TZW5kRXZlbnQoJ09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0JywkcGFybXMpOwoKICAgICAgJGFjdCA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9hY3Rpb24nLCd0ZXh0Jyk7CiAgICAgIGlmICgkYWN0ID09ICd0ZXh0JykKICAgICAgICAgewogICAgICAgICAkbWVzc2FnZSA9ICRhZWZvcm0tPkdldEF0dHIoJ3N1Ym1pdF9yZXNwb25zZScsJycpOwoKCQkgJGFlZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CiAgICAgICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbWVzc2FnZSApOwogICAgICAgICB9CiAgICAgIGVsc2UgaWYgKCRhY3QgPT0gJ3JlZGlyJykKICAgICAgICAgewogICAgICAgICAkcmV0ID0gJGFlZm9ybS0+R2V0QXR0cigncmVkaXJlY3RfcGFnZScsJy0xJyk7CiAgICAgICAgIGlmICgkcmV0ICE9IC0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzLT5SZWRpcmVjdENvbnRlbnQoJHJldCk7CgkgICAJCX0KICAgICAgICAgfQogICAgICB9CiAgIGVsc2UKICAgICAgewogICAgICAkcGFybXMgPSBhcnJheSgpOwogICAgICAkcGFyYW1zWydmYnJwX2Vycm9yJ109Jyc7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZmJfc3VibWlzc2lvbl9lcnJvcicsCgkgCSR0aGlzLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yJykpOwoKICAgICAgJHNob3cgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLDApOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX3N1Ym1pc3Npb25fZXJyb3JfbGlzdCcsJHJlc3VsdHNbMV0pOwogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnMnLCRzaG93KTsKCiAgICAgICRwYXJtc1snZm9ybV9uYW1lJ10gPSAkYWVmb3JtLT5HZXROYW1lKCk7CiAgICAgICRwYXJtc1snZm9ybV9pZCddID0gJGFlZm9ybS0+R2V0SWQoKTsKICAgICAgJHRoaXMtPlNlbmRFdmVudCgnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicsJHBhcm1zKTsKICAgICAgfQogICB9CgplY2hvICRhZWZvcm0tPlJlbmRlckZvcm0oJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwo/Pg==]]></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/CatalogerItemsField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgovKiBBIGNsYXNzIHRvIHByb3ZpZGUgYSBkeW5hbWljIG11bHRpc2VsZWN0IGxpc3QgdG8gYWxsb3cgc2VsZWN0aW5nIG9uZQogKiBvciBtb3JlIGl0ZW1zIGZyb20gdGhlIGNhdGFsb2dlciAKICogdGhlIGl0ZW0gbGlzdCBpcyBmaWx0ZXJlZCBieSBhbiBhcnJheQogKiBvZiBvcHRpb25zIGFzIHNwZWNpZmllZCBpbiB0aGUgYWRtaW4uCiAqLwpjbGFzcyBmYkNhdGFsb2dlckl0ZW1zRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgogIGZ1bmN0aW9uIGZiTXVsdGlzZWxlY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnQ2F0YWxvZ2VySXRlbXNGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gZmFsc2U7CiAgICAkdGhpcy0+SGFzQWRkT3AgPSBmYWxzZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgJHRoaXMtPm9wdGlvbkFkZCA9IDA7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICB9CgoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICBnbG9iYWwgJGdDbXM7CgogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY2F0YWxvZ2VyID0mICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsKICAgIGlmKCAhJGNhdGFsb2dlciApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKTsKICAgICAgfQogICAgCiAgICAkY2F0YWxvZ2VyLT5nZXRVc2VyQXR0cmlidXRlcygpOwogICAgJHRtcF9hdHRycyA9JiAkZ0Ntcy0+dmFyaWFibGVzWydjYXRhbG9nX2F0dHJzJ107CiAgICAkbGluZXMgPSAoaW50KSR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnNScpOwogICAgJG5hbWVyZWdleCA9IHRyaW0oJHRoaXMtPkdldE9wdGlvbignbmFtZXJlZ2V4JywnJykpOwogICAgCiAgICAkYXR0cnMgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJHRtcF9hdHRycyBhcyAkb25lICkKICAgICAgewoJJHNhZmVhdHRyID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCcnLCRvbmUtPmF0dHIpKTsKCSR2YWwgPSB0cmltKCR0aGlzLT5HZXRPcHRpb24oJ2F0dHJfJy4kc2FmZWF0dHIsJycpKTsKCWlmKCBlbXB0eSgkdmFsKSApIGNvbnRpbnVlOwoJJG9uZS0+aW5wdXQgPSAkdmFsOwoJJGF0dHJzW10gPSAkb25lOwogICAgICB9CgogICAgLy8gcHV0IHRoZSBoaWRkZW4gZmllbGRzIGludG8gc21hcnR5LgogICAgaWYoICFpc3NldCgkZ0Ntcy0+dmFyaWFibGVzWydmYl9zbWFydHlfdmFyc19zZXQnXSkgKQogICAgICB7Cgkkc21hcnR5ID0mICRnQ21zLT5HZXRTbWFydHkoKTsKCSR0aGVGaWVsZHMgPSYgJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQoJZm9yKCRpID0gMDsgJGkgPCBjb3VudCgkdGhlRmllbGRzKTsgJGkrKyApCgkgIHsKCSAgICBpZiggJHRoZUZpZWxkc1skaV0tPkdldEZpZWxkVHlwZSgpICE9ICdIaWRkZW5GaWVsZCcgKSBjb250aW51ZTsKCSAgICAkc21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLCR0aGVGaWVsZHNbJGldLT5WYWx1ZSk7CgkgICAgaWYoICR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpICE9ICcnICkKCSAgICAgIHsKCQkkc21hcnR5LT5hc3NpZ24oJHRoZUZpZWxkc1skaV0tPkdldEFsaWFzKCksJHRoZUZpZWxkc1skaV0tPlZhbHVlKTsKCSAgICAgIH0KCSAgfQoKCSRnQ21zLT52YXJpYWJsZXNbJ2ZiX3NtYXJ0eV92YXJzX3NldCddID0gMTsKICAgICAgfQoKICAgIC8vIGZvciBlYWNoIGhpZXJhcmNoeSBpdGVtIChmcm9tIHRoZSByb290IGRvd24pCiAgICAkaG0gPSYgJGdDbXMtPkdldEhpZXJhcmNoeU1hbmFnZXIoKTsKICAgICRhbGxjb250ZW50ID0gJGhtLT5nZXRGbGF0TGlzdCgpOwogICAgJHJlc3VsdHMgPSBhcnJheSgpOwogICAgZm9yZWFjaCggJGFsbGNvbnRlbnQgYXMgJG9uZXBhZ2UgKQogICAgICB7CgkkY29udGVudCA9ICRvbmVwYWdlLT5HZXRDb250ZW50KCk7CgoJLy8gaWYgaXQncyBub3QgYSBjYXRhbG9nZXIgaXRlbSBjb250aW51ZQoJaWYoICRjb250ZW50LT5UeXBlKCkgIT0gJ2NhdGFsb2dpdGVtJyApIGNvbnRpbnVlOwoKCS8vIGlmIGl0J3Mgbm90IGFjdGl2ZSBvciBzaG93biBpbiBtZW51IGNvbnRpbnVlCglpZiggISRjb250ZW50LT5BY3RpdmUoKSB8fCAhJGNvbnRlbnQtPlNob3dJbk1lbnUoKSApIGNvbnRpbnVlOwoKCS8vIGlmIHRoZSBuYW1lcmVnZXggc3RyaW5nIGlzIG5vdCBlbXB0eSwgYW5kIHRoZSBuYW1lIGRvZXMgbm90IG1hdGNoIHRoZQoJLy8gICAgcmVnZXgsIGNvbnRpbnVlCglpZiggIWVtcHR5KCRuYW1lcmVnZXggKSAmJiAhcHJlZ19tYXRjaCgnLycuJG5hbWVyZWdleC4nLycsJGNvbnRlbnQtPk5hbWUoKSkgKQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCgkvLyBmb3IgZWFjaCBhdHRyaWJ1dGUKCSRwYXNzZWQgPSB0cnVlOwoJZm9yZWFjaCggJGF0dHJzIGFzICRvbmVhdHRyICkKCSAgewoJICAgIC8vIHBhcnNlIHRoZSBmaWVsZCB2YWx1ZSB0aHJvdWdoIHNtYXJ0eT8KCSAgICAkZXhwciA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRvbmVhdHRyLT5pbnB1dCk7CgkgICAgaWYoIGVtcHR5KCRleHByKSApIGNvbnRpbnVlOyAvLyBubyBleHByZXNzaW9uIGZvciB0aGlzIGZpZWxkLiBwYXNzCgkgICAgCgkgICAgLy8gZ2V0IHRoZSB2YWx1ZSBmb3IgdGhpcyBhdHRyaWJ1dGUgZm9yIHRoaXMgY29udGVudAoJICAgICRjdXJyZW50dmFsID0gJGNvbnRlbnQtPkdldFByb3BlcnR5VmFsdWUoJG9uZWF0dHItPmF0dHIpOwoJICAgIGlmKCBlbXB0eSgkY3VycmVudHZhbCkgKQoJICAgICAgewoJCS8vIG5vIHZhbHVlIGZvciB0aGlzIGZpZWxkLCBidXQgd2UgaGF2ZSBhbiBleHByZXNzaW9uCgkJLy8gdGhpcyBjYXRhbG9nIGl0ZW0gZmFpbHMuCgkJJHBhc3NlZCA9IGZhbHNlOwoJCWJyZWFrOwoJICAgICAgfQoKCSAgICBsaXN0KCR0eXBlLCRleHByKSA9IGV4cGxvZGUoJzonLCRleHByLDIpOwoJICAgICR0eXBlID0gdHJpbSgkdHlwZSk7CgkgICAgJGV4cHIgPSB0cmltKCRleHByKTsKCgkgICAgJHJlcyA9IGZhbHNlOwoJICAgIHN3aXRjaCggc3RydG9sb3dlcigkdHlwZSkgKQoJICAgICAgewoJICAgICAgY2FzZSAncmFuZ2UnOgoJCS8vIGZvciByYW5nZXM6CgkJLy8gZ3JhYiBtaW4gYW5kIG1heCB2YWx1ZXMKCQlsaXN0KCRtaW52YWwsJG1heHZhbCkgPSBleHBsb2RlKCd0bycsJGV4cHIpOwoJCSRtaW52YWwgPSB0cmltKCRtaW52YWwpOyAkbWF4dmFsID0gdHJpbSgkbWF4dmFsKTsKCQkvLyBjaGVjayBmb3IgbnVtZXJpYwoJCWlmKCAhaXNfbnVtZXJpYygkbWludmFsKSB8fCAhaXNfbnVtZXJpYygkbWF4dmFsKSApCgkJICB7CgkJICAgIC8vIGNhbid0IHRlc3QgcmFuZ2VzIHdpdGggbm9uIG51bWVyaWMgdmFsdWVzCgkJICAgIC8vIHNvIGZhaWwKCQkgICAgJHBhc3NlZCA9IGZhbHNlOwoJCSAgICBicmVhazsKCQkgIH0KCQlpZiggJG1pbnZhbCA+ICRtYXh2YWwgKQoJCSAgewoJCSAgICAkdG1wID0gJG1pbnZhbDsKCQkgICAgJG1pbnZhbCA9ICRtYXh2YWw7CgkJICAgICRtYXh2YWwgPSAkdG1wOwoJCSAgfQoJCSRyZXMgPSAoJGN1cnJlbnR2YWwgPj0gJG1pbnZhbCAmJiAkY3VycmVudHZhbCA8PSAkbWF4dmFsICk7CgkJYnJlYWs7CgoJICAgICAgY2FzZSAnbXVsdGknOgoJCS8vIGZvciBtdWx0aQoJCSR0bXAgPSBleHBsb2RlKCd8JywkZXhwcik7CgkJJHJlcyA9IGluX2FycmF5KCRjdXJyZW50dmFsLCR0bXApOwoJCWJyZWFrOwoJICAgICAgfQoKCSAgICBpZiggISRyZXMgKQoJICAgICAgewoJCSRwYXNzZWQgPSBmYWxzZTsKCQlicmVhazsKCSAgICAgIH0KCSAgfSAvLyBmb3JlYWNoIGF0dHIKCglpZiggJHBhc3NlZCApCgkgIHsKCSAgICAkcmVzdWx0c1skY29udGVudC0+TmFtZSgpXSA9ICRjb250ZW50LT5OYW1lKCk7CgkgIH0KICAgICAgfSAvLyBmb3JlYWNoIGNvbnRlbnQKICAgCgogICAgLy8gQWxsIGRvbmUsIGRvIHdlIGhhdmUgc29tZXRoaW5nIHRvIGRpc3BsYXk/CiAgICBpZiggY291bnQoJHJlc3VsdHMpICkgCiAgICAgIHsKCSRzaXplID0gbWluKCRsaW5lcyxjb3VudCgkcmVzdWx0cykpOwoJJHNpemUgPSBtaW4oNTAsJHNpemUpOyAvLyBtYXhpbXVtIDUwIGxpbmVzLCB0aG91Z2ggdGhpcyBpcyBwcm9iYWJseSBiaWcKCgkkdmFsID0gYXJyYXkoKTsKCWlmKCAkdGhpcy0+VmFsdWUgIT09IGZhbHNlICkKCSAgewoJICAgICR2YWwgPSAkdGhpcy0+VmFsdWU7CgkgICAgaWYoICFpc19hcnJheSggJHRoaXMtPlZhbHVlICkgKQoJICAgICAgewoJCSR2YWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICAgICAgfQoJICB9CglyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgJHJlc3VsdHMsICR2YWwsCgkJCQkJICAgJHNpemUpOwogICAgICB9CgogICAgcmV0dXJuICcnOyAvLyBlcnJvcgogIH0KCgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIC8vIHJldHVybiBhIHN0cmluZyBmb3IgZGlzcGxheWluZyBpbiB0aGUgb3B0aW9ucyBmaWVsZAogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY2F0YWxvZ2VyID0mICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdDYXRhbG9nZXInKTsKICAgIGlmKCAhJGNhdGFsb2dlciApCiAgICAgIHsKCXJldHVybiAkbW9kLT5MYW5nKCdlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnKTsKICAgICAgfQogICAgcmV0dXJuICcnOwogIH0KCQoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGNhdGFsb2dlciA9JiAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ2F0YWxvZ2VyJyk7CiAgICBpZiggISRjYXRhbG9nZXIgKQogICAgICB7CgkkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygnd2FybmluZycpLCRtb2QtPkxhbmcoJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZScpKTsKCSRtYWluW10gPSAkdG1wOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCWdsb2JhbCAkZ0NtczsKCSRjYXRhbG9nZXItPmdldFVzZXJBdHRyaWJ1dGVzKCk7CgkkYXR0cnMgPSYgJGdDbXMtPnZhcmlhYmxlc1snY2F0YWxvZ19hdHRycyddOwoKCSR0bXAgPSBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9oZWlnaHQnKSwKCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJICAgJ2ZicnBfb3B0X2xpbmVzJywKCQkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCdsaW5lcycsJzUnKSwzLDMpLgoJCSAgICAgJyZuYnNwOycuJG1vZC0+TGFuZygnaGVscF9maWVsZF9oZWlnaHQnKSk7CgkkbWFpbltdID0gJHRtcDsKCgkkdG1wID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbmFtZV9yZWdleCcpLAoJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAnZnJicF9vcHRfbmFtZXJlZ2V4JywKCQkJCQkgICAkdGhpcy0+R2V0T3B0aW9uKCduYW1lcmVnZXgnLCcnKSwKCQkJCQkgICAyNSwyNSkuCgkJICAgICAnJm5ic3A7Jy4kbW9kLT5MYW5nKCdoZWxwX25hbWVfcmVnZXgnKSk7CgkkbWFpbltdID0gJHRtcDsKCgkkdG1wID0gYXJyYXkoJycsJG1vZC0+TGFuZygnaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcycpKTsKCSRtYWluW10gPSAkdG1wOwoJCglmb3JlYWNoKCAkYXR0cnMgYXMgJG9uZSApCgkgIHsKCSAgICAkc2FmZWF0dHIgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJycsJG9uZS0+YXR0cikpOwoJICAgIGlmKCAkb25lLT5pc190ZXh0ICkgY29udGludWU7CgkgICAgJHRtcCA9IGFycmF5KCRvbmUtPmF0dHIsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLAoJCQkJCSAgICAgICAnZmJycF9vcHRfYXR0cl8nLiRzYWZlYXR0ciwKCQkJCQkgICAgICAgJHRoaXMtPkdldE9wdGlvbignYXR0cl8nLiRzYWZlYXR0ciwnJyksCgkJCQkJICAgICAgIDMwLDgwKSk7CgkgICAgJG1haW5bXSA9ICR0bXA7CgkgIH0KICAgICAgfQoKICAgICRhZHYgPSBhcnJheSgpOwogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybSA9ICYkdGhpcy0+Zm9ybV9wdHI7CiAgICAkdmFscyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fdmFsdWUnKTsKICAgIGlmICgkdGhpcy0+SGFzVmFsdWUoKSkKICAgICAgewoJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkgIHsKCSAgICAkdGhpcy0+VmFsdWUgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJICB9Cglmb3JlYWNoICgkdGhpcy0+VmFsdWUgYXMgJHRoaXNPbmUpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZFJldCwkdmFsc1skdGhpc09uZSAtIDFdKTsKCSAgfQoJaWYgKCRhc19zdHJpbmcpCgkgIHsKCSAgICByZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJGZpZWxkUmV0KTsKCSAgfQoJZWxzZQoJICB7CgkgICAgcmV0dXJuIGFycmF5KCRmaWVsZFJldCk7CgkgIH0JCQkKICAgICAgfQogICAgZWxzZQogICAgICB7CglpZiAoJGFzX3N0cmluZykKCSAgewoJICAgIHJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJICB9CgllbHNlCgkgIHsKCSAgICByZXR1cm4gYXJyYXkoJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkgIH0KICAgICAgfQoJCiAgfQoKfQo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94RmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJDaGVja2JveEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gICdDaGVja2JveEZpZWxkJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CgkJJHRoaXMtPlJlcXVpcmVkID0gZmFsc2U7CgkJJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX25vbmUnKT0+J25vbmUnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX211c3RfY2hlY2snKT0+J2NoZWNrZWQnCiAgICAgICAgICAgICk7CiAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRsYWJlbCA9ICcnOwoJCWlmIChzdHJsZW4oJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSkgPiAwKQoJCQl7CgkJCSRsYWJlbCA9ICcmbmJzcDs8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLiciPicuJHRoaXMtPkdldE9wdGlvbignbGFiZWwnKS4nPC9sYWJlbD4nOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UgJiYgJHRoaXMtPkdldE9wdGlvbignaXNfY2hlY2tlZCcsJzAnKT09JzEnKQoJCQl7CgkJCSR0aGlzLT5WYWx1ZSA9ICd0JzsKCQkJfQoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJ3QnLCR0aGlzLT5WYWx1ZSwnIGlkPSInLiRpZC4nXycuJHRoaXMtPklkLiciICcuJGpzKS4kbGFiZWw7Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPlZhbHVlID09PSBmYWxzZSkKCQkJewoJCQkkcmV0ID0gJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5HZXRPcHRpb24oJ2NoZWNrZWRfdmFsdWUnLCRtb2QtPkxhbmcoJ3ZhbHVlX2NoZWNrZWQnKSk7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJyZXF1aXJlZCIgZmllbGQsIHNpbmNlIHRoaXMgY2FuIG9ubHkgYmUgZG9uZSB2aWEgdmFsaWRhdGlvbgoJCSRyZXFJbmRleCA9IC0xOwoJCWZvciAoJGk9MDskaTxjb3VudCgkbWFpbkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkbWFpbkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSkKCQkJCXsKCQkJCSRyZXFJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRyZXFJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwoJCQl9Cgl9CgoKCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRyZXQgPSAgKCR0aGlzLT5HZXRPcHRpb24oJ2lzX2NoZWNrZWQnLCcwJyk9PScxJz8kbW9kLT5MYW5nKCdjaGVja2VkX2J5X2RlZmF1bHQnKTokbW9kLT5MYW5nKCd1bmNoZWNrZWRfYnlfZGVmYXVsdCcpKTsKCQlpZiAoc3RybGVuKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSk+MCkKCQkgIHsKCQkgIAkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKCQkgIH0KCQlyZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfY2hlY2tib3hfbGFiZWwnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGFiZWwnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2xhYmVsJywnJyksMjUsMjU1KSksCiAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2NoZWNrZWRfdmFsdWUnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignY2hlY2tlZF92YWx1ZScsJG1vZC0+TGFuZygndmFsdWVfY2hlY2tlZCcpKSwyNSwyNTUpKSwKICAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfdW5jaGVja2VkX3ZhbHVlJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3VuY2hlY2tlZF92YWx1ZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbigndW5jaGVja2VkX3ZhbHVlJywkbW9kLT5MYW5nKCd2YWx1ZV91bmNoZWNrZWQnKSksMjUsMjU1KSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfc2V0JyksCgkJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2lzX2NoZWNrZWQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9pc19jaGVja2VkJywgJzEnLCAkdGhpcy0+R2V0T3B0aW9uKCdpc19jaGVja2VkJywnMCcpKSkKCQkJCSk7CgkJJGFkdiA9IGFycmF5KAoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdub25lJzoKCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnY2hlY2tlZCc6CgkJICAJICAgICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQoJCSAgCSAgICAgICAgICAgewoJCSAgCSAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCSAgCSAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCd5b3VfbXVzdF9jaGVjaycsJHRoaXMtPkdldE9wdGlvbignbGFiZWwnLCcnKSk7CgkJICAJICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/CheckboxGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkNoZWNrYm94R3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGJveENvdW50OwoJdmFyICRib3hBZGQ7CgkKCWZ1bmN0aW9uIGZiQ2hlY2tib3hHcm91cEZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0NoZWNrYm94R3JvdXBGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+Tm9uUmVxdWlyYWJsZUZpZWxkID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CiAgICAgICAgJHRoaXMtPmJveEFkZCA9IDA7CiAgICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwoJfQoKCWZ1bmN0aW9uIGNvdW50Qm94ZXMoKQoJewoJCQkkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2JveF9uYW1lJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5ib3hDb3VudCA9IGNvdW50KCR0bXApOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZQoJICAgICAgICAJewoJICAgICAgICAJJHRoaXMtPmJveENvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCiAgICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKICAgICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+Y291bnRCb3hlcygpOwoJCSRyZXQgPSAkbW9kLT5MYW5nKCdib3hlcycsJHRoaXMtPmJveENvdW50KTsKCQkgcmV0dXJuICRyZXQ7Cgl9CgoJZnVuY3Rpb24gR2V0T3B0aW9uQWRkQnV0dG9uKCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gJG1vZC0+TGFuZygnYWRkX2NoZWNrYm94ZXMnKTsKCX0KCglmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCdkZWxldGVfY2hlY2tib3hlcycpOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdib3hfbmFtZScpOwoJCSRpc19zZXQgPSAmJHRoaXMtPkdldE9wdGlvblJlZignYm94X2lzX3NldCcpOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlpZiAoISBpc19hcnJheSgkbmFtZXMpKQoJCQl7CgkJCSRuYW1lcyA9IGFycmF5KCRuYW1lcyk7CgkJCX0JCgkJaWYgKCEgaXNfYXJyYXkoJGlzX3NldCkpCgkJCXsKCQkJJGlzX3NldCA9IGFycmF5KCRpc19zZXQpOwoJCQl9CgkJJGZpZWxkRGlzcCA9IGFycmF5KCk7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKCQkJewoJCQkkbGFiZWwgPSAnJzsKCQkJJHRoaXNCb3ggPSBuZXcgc3RkQ2xhc3MoKTsKCQkJaWYgKHN0cmxlbigkbmFtZXNbJGldKSA+IDApCgkJCQl7CgkJCQkkdGhpc0JveC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJ18nLiRpLiciPicuJG5hbWVzWyRpXS4nPC9sYWJlbD4nOwoJCQkJJHRoaXNCb3gtPnRpdGxlID0gJG5hbWVzWyRpXTsKCQkJCX0KCQkJJGNoZWNrX3ZhbCA9IGZhbHNlOwoJCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJCXsKCQkJCSRjaGVja192YWwgPSAkdGhpcy0+RmluZEFycmF5VmFsdWUoJGkrMSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCWlmIChpc3NldCgkaXNfc2V0WyRpXSkgJiYgJGlzX3NldFskaV0gPT0gJ3knKQoJCQkJCXsKCQkJCQkkY2hlY2tfdmFsID0gdHJ1ZTsKCQkJCQl9CgkJCQl9CgkJCSR0aGlzQm94LT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywgKCRpKzEpLAoJCQkJJGNoZWNrX3ZhbCAhPT0gZmFsc2U/KCRpKzEpOictMScsJyBpZD0iJy4kaWQuJ2ZicnBfXycuJHRoaXMtPklkLidfJy4kaS4nIiAnLiRqcyk7CgoJCQlhcnJheV9wdXNoKCRmaWVsZERpc3AsICR0aGlzQm94KTsKCQkJfQkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwoJCSRuYW1lcyA9ICYkdGhpcy0+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+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYm94X3VuY2hlY2tlZCcsICRpKTsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdib3hfaXNfc2V0JywgJGkpOwoJCQkJJGktLTsKCQkJCX0KCQkJfQoJCSR0aGlzLT5jb3VudEJveGVzKCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/ComputedField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoKICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA3IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KICAgTW9yZSBpbmZvIGF0IGh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvZm9ybWJ1aWxkZXIKICAgCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNyBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiAgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKKi8KCmNsYXNzIGZiQ29tcHV0ZWRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIGZ1bmN0aW9uIGZiQ29tcHV0ZWRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnQ29tcHV0ZWRGaWVsZCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsKICAgICR0aGlzLT5IYXNMYWJlbCA9IDE7CiAgICAkdGhpcy0+TmVlZHNEaXYgPSAwOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgICAkdGhpcy0+SXNDb21wdXRlZE9uU3VibWlzc2lvbiA9IHRydWU7CiAgfQoKICAgIGZ1bmN0aW9uIENvbXB1dGVPcmRlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5HZXRPcHRpb24oJ29yZGVyJywnMScpOyAgICAKICAgIH0KCiAgICBmdW5jdGlvbiBDb21wdXRlKCkKICAgIHsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CgogICAgICAgICRtYXBJZCA9IGFycmF5KCk7CgogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgICAgICAgIHsKCSAgICAgICAgJG1hcElkWyRvdGhlcnNbJGldLT5HZXRJZCgpXSA9ICRpOwogICAgICAgICAgICB9CgogICAgICAgICRmbGRzID0gYXJyYXkoKTsKICAgICAgICAkcHJvY3N0ciA9ICR0aGlzLT5HZXRPcHRpb24oJ3ZhbHVlJywnJyk7CiAgICAgICAgcHJlZ19tYXRjaF9hbGwoJy9cJGZsZF8oXGQrKS8nLCAkcHJvY3N0ciwgJGZsZHMpOwogICAgICAgIAogICAgICAgIGlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdHJpbmdfb3JfbnVtYmVyX2V2YWwnLCdudW1lcmljJykgPT0gJ251bWVyaWMnKQogICAgICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRmbGRzWzFdIGFzICR0RikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkbWFwSWRbJHRGXSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRyZWYgPSAkbWFwSWRbJHRGXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaXNfbnVtZXJpYygkb3RoZXJzWyRyZWZdLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSkpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHByb2NzdHIgPSBzdHJfcmVwbGFjZSgnJGZsZF8nLiR0RiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdGhlcnNbJHJlZl0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkcHJvY3N0ciA9IHN0cl9yZXBsYWNlKCckZmxkXycuJHRGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAnLCRwcm9jc3RyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICRzdHJUb0V2YWwgPSAiXCR0aGlzLT5WYWx1ZT0kcHJvY3N0cjsiOwogICAgICAgICAgICAvLyBzZWUgaWYgd2UgY2FuIHRyYXAgYW4gZXJyb3IKICAgICAgICAgICAgLy8gdGhpcyBpcyBhbGwgdnVsbmVyYWJsZSB0byBhbiBldmlsIGZvcm0gZGVzaWduZXIsIGJ1dAogICAgICAgICAgICAvLyBub3QgYW4gZXZpbCBmb3JtIHVzZXIuIAogICAgICAgICAgICBvYl9zdGFydCgpOwoJCQlpZiAoZXZhbCgnZnVuY3Rpb24gdGVzdGNmaWVsZCcucmFuZCgpLgoJCQkgICAgJygpIHsnLiRzdHJUb0V2YWwuJ30nKSA9PT0gRkFMU0UpCgkJCSAgICB7CgkJCSAgICAkdGhpcy0+VmFsdWUgPSAkbW9kLT5MYW5nKCd0aXRsZV9iYWRfZnVuY3Rpb24nLCRwcm9jc3RyKTsKCQkJICAgIH0KCQkJZWxzZQoJCQkgICAgewoJCQkgICAgZXZhbCgkc3RyVG9FdmFsKTsKCQkJICAgIH0gCgkJCW9iX2VuZF9jbGVhbigpOwogICAgICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICR0aGlzVmFsdWUgPSAnJzsKICAgICAgICAgICAgZm9yZWFjaCAoJGZsZHNbMV0gYXMgJHRGKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KCRtYXBJZFskdEZdKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHJlZiA9ICRtYXBJZFskdEZdOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZSAuPSAkb3RoZXJzWyRyZWZdLT5HZXRWYWx1ZSgpLicgJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHByb2Nlc3NUeXBlID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbnVtZXJpYycpPT4nbnVtZXJpYycsCgkJICAgICRtb2QtPkxhbmcoJ3RpdGxlX3N0cmluZycpPT4nc3RyaW5nJyk7CgkJCgkJJHJldCA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl9sZWdlbmQiPjx0cj48dGggY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nKS4nPC90aD48L3RyPic7CiAgICAgICAgJHJldCAuPSAnPHRyPjx0aD4nLiRtb2QtPkxhbmcoJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnKS4nPC90aD48dGg+Jy4kbW9kLT5MYW5nKCdoZWxwX2Zvcm1fZmllbGQnKS4nPC90aD48L3RyPic7CiAgICAgICAgJG9kZCA9IGZhbHNlOwoKICAgICAgICAkb3RoZXJzID0gJiR0aGlzLT5mb3JtX3B0ci0+R2V0RmllbGRzKCk7CiAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICBpZiAoISAkb3RoZXJzWyRpXS0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpKQogICAgICAgICAgICAgICAgewoJICAgICAgICAgICAgJHJldCAuPSAnPHRyPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJICAgICAgICAgICAgICAgICciPiRmbGRfJy4kb3RoZXJzWyRpXS0+R2V0SWQoKS4KCSAgICAgICAgICAgICAgICAnPC90ZD48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAgICAgICAgICAgICAnIj4nIC4kb3RoZXJzWyRpXS0+R2V0TmFtZSgpIC4gJzwvdGQ+PC90cj4nOwoJICAgICAgICAgICAgfQoJICAJICAgICRvZGQgPSAhICRvZGQ7CgkgICAgICAgIH0KCSAgICAkcmV0IC49ICc8dHI+PHRkIGNvbHNwYW49IjIiPicuJG1vZC0+TGFuZygnb3BlcmF0b3JzX2hlbHAnKSAuCgkgICAgICAgICc8L3RkPjwvdHI+PC90YWJsZT4nOwoJCQoJCSRtYWluID0gYXJyYXkoCgkJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jb21wdXRlX3ZhbHVlJyksCiAgICAgICAgICAgIAkJYXJyYXkoJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3ZhbHVlJywkdGhpcy0+R2V0T3B0aW9uKCd2YWx1ZScsJycpLDM1LDEwMjQpLCRyZXQpKSwKCQkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCcpLAoJCQkJJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N0cmluZ19vcl9udW1iZXJfZXZhbCcsCgkJCQkgICAgJHByb2Nlc3NUeXBlLAoJCQkJICAgICR0aGlzLT5HZXRPcHRpb24oJ3N0cmluZ19vcl9udW1iZXJfZXZhbCcsJ251bWVyaWMnKSkpLAoJCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfb3JkZXInKSwKCQkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkgICAgJ2ZicnBfb3B0X29yZGVyJywkdGhpcy0+R2V0T3B0aW9uKCdvcmRlcicsJzEnKSw1LDEwKS4KCQkJCSAgICAkbW9kLT5MYW5nKCd0aXRsZV9vcmRlcl9oZWxwJykpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/CountryPickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCi8qIA0KICAgRm9ybUJ1aWxkZXIuIENvcHlyaWdodCAoYykgMjAwNS0yMDA2IFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4NCiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyDQogICANCiAgIEEgTW9kdWxlIGZvciBDTVMgTWFkZSBTaW1wbGUsIENvcHlyaWdodCAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQoqLw0KY2xhc3MgZmJDb3VudHJ5UGlja2VyRmllbGQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7DQoNCgl2YXIgJENvdW50cmllczsNCgkNCglmdW5jdGlvbiBmYkNvdW50cnlQaWNrZXJGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykNCgl7DQogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOw0KICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsNCgkJJHRoaXMtPlR5cGUgPSAnQ291bnRyeVBpY2tlckZpZWxkJzsNCgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOw0KCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoDQogICAgICAgICAgICApOw0KDQogICAgICAgICR0aGlzLT5Db3VudHJpZXMgPSBhcnJheSgkbW9kLT5MYW5nKCdub19kZWZhdWx0Jyk9PicnLA0KICAgICAgICAnQWZnaGFuaXN0YW4nPT4nQUYnLCAnQWxhbmQgSXNsYW5kcyc9PidBWCcsIA0KICAgICAgICAnQWxiYW5pYSc9PidBTCcsICAnQWxnZXJpYSc9PidEWicsICdBbWVyaWNhbiBTYW1vYSc9PidBUycsICdBbmRvcnJhJz0+J0FEJywNCiAgICAgICAgICdBbmdvbGEnPT4nQU8nLCAnQW5ndWlsbGEnPT4nQUknLCAnQW50YXJjdGljYSc9PidBUScsICAnQW50aWd1YSBhbmQgQmFyYnVkYSc9PidBRycsDQogICAgICAgICdBcmdlbnRpbmEnPT4nQVInLCAnQXJtZW5pYSc9PidBTScsICdBcnViYSc9PidBVycsICdBdXN0cmFsaWEnPT4nQVUnLCAnQXVzdHJpYSc9PidBVCcsIAkJJ0F6ZXJiYWlqYW4nPT4nQVonLCAnQmFoYW1hcyc9PidCUycsICdCYWhyYWluJz0+J0JIJywgJ0JhcmJhZG9zJz0+JyBCQicsDQogICAgICAgICdCYW5nbGFkZXNoJz0+J0JEJywgJ0JlbGFydXMnPT4nQlknLCAnQmVsZ2l1bSc9PidCRScsDQogICAgICAgICdCZWxpemUnPT4nQlonLCAnQmVuaW4nPT4nQkonLCAnQmVybXVkYSc9PidCTScsICdCaHV0YW4nPT4nQlQnLCAnQm90c3dhbmEnPT4nQlcnLA0KICAgICAgICAnQm9saXZpYSc9PidCTycsICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJz0+J0JBJywgJ0JvdXZldCBJc2xhbmQnPT4nQlYnLA0KICAgICAgICAnQnJhemlsJz0+J0JSJywgJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeSc9PidJTycsICdCcnVuZWkgRGFydXNzYWxhbSc9PidCTicsICdCdWxnYXJpYSc9PidCRycsDQogICAgICAgICdCdXJraW5hIEZhc28nPT4nQkYnLCAnQnVydW5kaSc9PidCSScsICdDYW1ib2RpYSc9PidLSCcsDQogICAgICAgICdDYW1lcm9vbic9PidDTScsICdDYW5hZGEnPT4nQ0EnICwgJ0NhcGUgVmVyZGUnPT4nQ1YnLCAnQ2F5bWFuIElzbGFuZHMnPT4nS1knLCANCiAgICAgICAgJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYyc9PidDRicsICdDaGFkJz0+J1REJywNCiAgICAgICAgJ0NoaWxlJz0+J0NMJywgJ0NoaW5hJz0+J0NOJywgJ0NocmlzdG1hcyBJc2xhbmQnPT4nQ1gnLCANCiAgICAgICAgJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJz0+J0NDJywgJ0NvbG9tYmlhJz0+J0NPJywgJ0NvbW9yb3MnPT4nS00nLA0KICAgICAgICAnQ29uZ28nPT4nQ0cnLCAnQ29uZ28sICBEZW1vY3JhdGljIFJlcHVibGljJz0+J0NEJywgICdDb29rIElzbGFuZHMnPT4nQ0snLA0KICAgICAgICAnQ29zdGEgUmljYSc9PidDUicsICdDb3RlIERcJ0l2b2lyZSAoSXZvcnkgQ29hc3QpJz0+J0NJJywgJ0Nyb2F0aWEgKEhydmF0c2thKSc9PidIUicsICAnQ3ViYSc9PidDVScsDQogICAgICAgICdDeXBydXMnPT4nQ1knLCAnQ3plY2ggUmVwdWJsaWMnPT4nQ1onLCAnRGVubWFyayc9PidESycsDQogICAgICAgICdEamlib3V0aSc9PidESicsICdEb21pbmljYSc9PidETSAnLCAgJ0RvbWluaWNhbiBSZXB1YmxpYyc9PidETycsDQogICAgICAgICdFYXN0IFRpbW9yJz0+J1RQJywgJ0VjdWFkb3InPT4nRUMnLA0KICAgICAgICAnRWd5cHQnPT4nRUcnLCAnRWwgU2FsdmFkb3InPT4nU1YnLCAnRXF1YXRvcmlhbCBHdWluZWEnPT4nR1EnLA0KICAgICAgICAnRXJpdHJlYSc9PidFUicsICdFc3RvbmlhJz0+J0VFJywgJ0V0aGlvcGlhJz0+J0VUJywgJ0ZhbGtsYW5kIElzbGFuZHMgKE1hbHZpbmFzKSc9PidGSycsDQogICAgICAgICdGYXJvZSBJc2xhbmRzJz0+J0ZPJywgJ0ZpamknPT4nRkonLA0KICAgICAgICAnRmlubGFuZCc9PidGSScsICdGcmFuY2UnPT4nRlInLCAnRnJhbmNlLCAgTWV0cm9wb2xpdGFuJz0+J0ZYJywNCiAgICAgICAgICdGcmVuY2ggR3VpYW5hJz0+J0dGJywgJ0ZyZW5jaCBQb2x5bmVzaWEnPT4nUEYnLCAnRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzJz0+J1RGJywNCiAgICAgICAgICdGLlkuUi5PLk0uIChNYWNlZG9uaWEpJz0+J01LJywNCiAgICAgICAgJ0dhYm9uJz0+J0dBJywgJ0dhbWJpYSc9PidHTScsICdHZW9yZ2lhJz0+J0dFJywgJ0dlcm1hbnknPT4nREUnLA0KICAgICAgICAgJ0doYW5hJz0+J0dIJywgJ0dpYnJhbHRhcic9PidHSScsICdHcmVhdCBCcml0YWluIChVSyknPT4nR0InLA0KICAgICAgICAnR3JlZWNlJz0+J0dSJywgJ0dyZWVubGFuZCc9PidHTCcsICAnR3JlbmFkYSc9PidHRCcsDQogICAgICAgICdHdWFkZWxvdXBlJz0+J0dQJywgICdHdWFtJz0+J0dVJywgICdHdWF0ZW1hbGEnPT4nR1QnLA0KICAgICAgICAnR3Vlcm5zZXknPT4nR0YnLCAgJ0d1aW5lYSc9PidHTicsICAnR3VpbmVhLUJpc3NhdSc9PidHVycsDQogICAgICAgICdHdXlhbmEnPT4nR1knLCAgJ0hhaXRpJz0+J0hUJywgICdIZWFyZCBhbmQgTWNEb25hbGQgSXNsYW5kcyc9PidITScsDQogICAgICAgICdIb25kdXJhcyc9PidITicsICAnSG9uZyBLb25nJz0+J0hLJywNCiAgICAgICAgJ0h1bmdhcnknPT4nSFUnLCAgJ0ljZWxhbmQnPT4nSVMnLCAgJ0luZGlhJz0+J0lOJywNCiAgICAgICAgJ0luZG9uZXNpYSc9PidJRCcsICAnSXJhbic9PidJUicsICAnSXJhcSc9PidJUScsIA0KICAgICAgICAnSXJlbGFuZCc9PidJRScsICdJc3JhZWwnPT4nSUwnLCAgJ0lzbGUgb2YgTWFuJz0+J0lNJywgDQogICAgICAgICdJdGFseSc9PidJVCcsICdKZXJzZXknPT4nSkUnLCAgJ0phbWFpY2EnPT4nSk0nLCAgJ0phcGFuJz0+J0pQJywNCiAgICAgICAgICdKb3JkYW4nPT4nSk8nLCAnS2F6YWtoc3Rhbic9PidLWicsICAnS2VueWEnPT4nS0UnLCANCiAgICAgICAgJ0tpcmliYXRpJz0+J0tJJywgICdLb3JlYSAoTm9ydGgpJz0+J0tQJywgICdLb3JlYSAoU291dGgpJz0+J0tSJywgDQogICAgICAgICdLdXdhaXQnPT4nS1cnLCAnS3lyZ3l6c3Rhbic9PidLRycsIA0KICAgICAgICAnTGFvcyc9PidMQScsICAnTGF0dmlhJz0+J0xWJywgJ0xlYmFub24nPT4nTEInLCANCiAgICAgICAgJ0xpZWNodGVuc3RlaW4nPT4nTEknLCAgJ0xpYmVyaWEnPT4nTFInLCAnTGlieWEnPT4nTFknLCANCiAgICAgICAgJ0xlc290aG8nPT4nTFMnLCAgJ0xpdGh1YW5pYSc9PidMVCcsICdMdXhlbWJvdXJnJz0+J0xVJywgDQogICAgICAgICdNYWNhdSc9PidNTycsICAnTWFkYWdhc2Nhcic9PidNRycsICdNYWxhd2knPT4nTVcnLCANCiAgICAgICAgJ01hbGF5c2lhJz0+J01ZJywgICdNYWxkaXZlcyc9PidNVicsICdNYWxpJz0+J01MJywgDQogICAgICAgICdNYWx0YSc9PidNVCcsICAnTWFyc2hhbGwgSXNsYW5kcyc9PidNSCcsICdNYXJ0aW5pcXVlJz0+J01RJywgDQogICAgICAgICdNYXVyaXRhbmlhJz0+J01SJywgICdNYXVyaXRpdXMnPT4nTVUnLCAnTWF5b3R0ZSc9PidZVCcsIA0KICAgICAgICAnTWV4aWNvJz0+J01YJywgICdNaWNyb25lc2lhJz0+J0ZNJywgJ01vbmFjbyc9PidNQycsIA0KICAgICAgICAnTW9sZG92YSc9PidNRCcsICAnTW9yb2Njbyc9PidNQScsICdNb25nb2xpYSc9PidNTicsIA0KICAgICAgICAnTW9udHNlcnJhdCc9PidNUycsICAnTW96YW1iaXF1ZSc9PidNWicsICdNeWFubWFyJz0+J01NJywgDQogICAgICAgICdOYW1pYmlhJz0+J05BJywgICdOYXVydSc9PidOUicsICAnTmVwYWwnPT4nTlAnLA0KICAgICAgICAnTmV0aGVybGFuZHMnPT4nTkwnLCAgJ05ldGhlcmxhbmRzIEFudGlsbGVzJz0+J0FOJywgICdOZXV0cmFsIFpvbmUnPT4nTlQnLA0KICAgICAgICAnTmV3IENhbGVkb25pYSc9PidOQycsICAnTmV3IFplYWxhbmQgKEFvdGVhcm9hKSc9PidOWicsICAnTmljYXJhZ3VhJz0+J05JJywgICdOaWdlcic9PidORScsDQogICAgICAgICdOaWdlcmlhJz0+J05HJywgICdOaXVlJz0+J05VJywgICdOb3Jmb2xrIElzbGFuZCc9PidORicsIA0KICAgICAgICAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJz0+J01QJywgICdOb3J3YXknPT4nTk8nLCANCiAgICAgICAgJ09tYW4nPT4nT00nLCAnUGFraXN0YW4nPT4nUEsnLCAgJ1BhbGF1Jz0+J1BXJywgICdQYWxlc3RpbmlhbiBUZXJyaXRvcnknPT4nUFMnLA0KICAgICAgICAnUGFuYW1hJz0+J1BBJywgICdQYXB1YSBOZXcgR3VpbmVhJz0+J1BHJywgDQogICAgICAgICdQYXJhZ3VheSc9PidQWScsICdQZXJ1Jz0+J1BFJywgICdQaGlsaXBwaW5lcyc9PidQSCcsIA0KICAgICAgICAnUGl0Y2Fpcm4nPT4nUE4nLCAnUG9sYW5kJz0+J1BMJywgICdQb3J0dWdhbCc9PidQVCcsICAnUHVlcnRvIFJpY28nPT4nUFInLA0KICAgICAgICAnUWF0YXInPT4nUUEnLCAgJ1JldW5pb24nPT4nUkUnLCAgJ1JvbWFuaWEnPT4nUk8nLCANCiAgICAgICAgJ1J1c3NpYW4gRmVkZXJhdGlvbic9PidSVScsICAnUndhbmRhJz0+J1JXJywgICdTLiBHZW9yZ2lhIGFuZCBTLiBTYW5kd2ljaCBJc2xzLic9PidHUycsDQogICAgICAgICdTYWludCBLaXR0cyBhbmQgTmV2aXMnPT4nS04nLCAgJ1NhaW50IEx1Y2lhJz0+J0xDJywgICdTYWludCBWaW5jZW50ICZhbXA7IHRoZSBHcmVuYWRpbmVzJz0+J1ZDJywNCiAgICAgICAgJ1NhbW9hJz0+J1dTJywgICdTYW4gTWFyaW5vJz0+J1NNJywgICdTYW8gVG9tZSBhbmQgUHJpbmNpcGUnPT4nU1QnLA0KICAgICAgICAgJ1NhdWRpIEFyYWJpYSc9PidTQScsICAnU2VuZWdhbCc9PidTTicsDQogICAgICAgICdTZXljaGVsbGVzJz0+J1NDJywgICdTaWVycmEgTGVvbmUnPT4nU0wnLCAgJ1NpbmdhcG9yZSc9PidTRycsDQogICAgICAgICdTbG92ZW5pYSc9PidTSScsICAnU2xvdmFrIFJlcHVibGljJz0+J1NLJywgICdTb2xvbW9uIElzbGFuZHMnPT4nU0InLCAgJ1NvbWFsaWEnPT4nU08nLCANCiAgICAgICAgJ1NvdXRoIEFmcmljYSc9PidaQScsDQogICAgICAgICdTcGFpbic9PidFUycsICAnU3JpIExhbmthJz0+J0xLJywgICdTdC4gSGVsZW5hJz0+J1NIJywgICdTdC4gUGllcnJlIGFuZCBNaXF1ZWxvbiAnPT4nUE0nLA0KICAgICAgICAnU3VkYW4nPT4nU0QnLCAgJ1N1cmluYW1lJz0+J1NSJywNCiAgICAgICAgJ1N2YWxiYXJkICZhbXA7IEphbiBNYXllbiBJc2xhbmRzJz0+J1NKJywgICdTd2F6aWxhbmQnPT4nU1onLA0KICAgICAgICAnU3dlZGVuJz0+J1NFJywgICdTd2l0emVybGFuZCc9PidDSCcsICAnU3lyaWEnPT4nU1knLA0KICAgICAgICAnVGFpd2FuJz0+J1RXJywgICdUYWppa2lzdGFuJz0+J1RKJywgICdUYW56YW5pYSc9PidUWicsDQogICAgICAgICdUaGFpbGFuZCc9PidUSCcsICAnVG9nbyc9PidURycsICAnVG9rZWxhdSc9PidUSycsIA0KICAgICAgICAnVG9uZ2EnPT4nVE8nLCAnVHJpbmlkYWQgYW5kIFRvYmFnbyc9PidUVCcsICAnVHVuaXNpYSc9PidUTicsIA0KICAgICAgICAnVHVya2V5Jz0+J1RSJywgJ1R1cmttZW5pc3Rhbic9PidUTScsICAnVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzJz0+J1RDJywNCiAgICAgICAgJ1R1dmFsdSc9PidUVicsICAnVWdhbmRhJz0+J1VHJywgDQogICAgICAgICdVa3JhaW5lJz0+J1VBJywgICdVbml0ZWQgQXJhYiBFbWlyYXRlcyc9PidBRScsICAnVW5pdGVkIEtpbmdkb20nPT4nVUsnLA0KICAgICAgICAnVW5pdGVkIFN0YXRlcyc9PidVUycsICdVUyBNaW5vciBPdXRseWluZyBJc2xhbmRzJz0+J1VNJywgICdVcnVndWF5Jz0+J1VZJywgDQogICAgICAgICdVemJla2lzdGFuJz0+J1VaJywgDQogICAgICAgICdWYW51YXR1Jz0+J1ZVJywgICdWYXRpY2FuIENpdHkgU3RhdGUgKEhvbHkgU2VlKSc9PidWQScsIA0KICAgICAgICAnVmVuZXp1ZWxhJz0+J1ZFJywgICdWaWV0IE5hbSc9PidWTicsICAnVmlyZ2luIElzbGFuZHMgKEJyaXRpc2gpJz0+J1ZHJywNCiAgICAgICAgJ1ZpcmdpbiBJc2xhbmRzIChVLlMuKSc9PidWSScsICAnV2FsbGlzIGFuZCBGdXR1bmEgSXNsYW5kcyc9PidXRicsIA0KICAgICAgICAnV2VzdGVybiBTYWhhcmEnPT4nRUgnLCAnWWVtZW4nPT4nWUUnLCANCiAgICAgICAgJ1l1Z29zbGF2aWEnPT4nWVUnLCAgJ1phbWJpYSc9PidaTScsICdaaW1iYWJ3ZSc9PidaVycgKTsNCgl9DQoNCg0KICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQ0KCXsNCgkJcmV0dXJuICcnOw0KCX0NCg0KCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpDQoJew0KCQkkcmV0ID0gYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWx1ZSwkdGhpcy0+Q291bnRyaWVzKTsNCgkJaWYgKCRhc19zdHJpbmcpDQoJCQl7DQoJCQlyZXR1cm4gJHJldDsNCgkJCX0NCgkJZWxzZQ0KCQkJew0KCQkJcmV0dXJuIGFycmF5KCRyZXQpOw0KCQkJfQ0KCX0NCg0KCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQ0KCXsNCgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQoNCgkJdW5zZXQoJHRoaXMtPkNvdW50cmllc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsNCgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOw0KCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQ0KCQkJew0KCQkJJHRoaXMtPkNvdW50cmllcyA9IGFycmF5X21lcmdlKGFycmF5KCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpLCR0aGlzLT5Db3VudHJpZXMpOw0KCQkJfQ0KCQllbHNlDQoJCQl7DQoJCQkkdGhpcy0+Q291bnRyaWVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPkNvdW50cmllcyk7DQoJCQl9DQoNCgkJaWYgKCEgJHRoaXMtPkhhc1ZhbHVlKCkgJiYgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpICE9ICcnKQ0KCQkgIHsNCgkJICAkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKTsNCgkJICB9DQoNCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICR0aGlzLT5Db3VudHJpZXMsIC0xLCAkdGhpcy0+VmFsdWUsICdpZD0iJy4kaWQuICdmYnJwX18nLiR0aGlzLT5JZC4nIiAnLiRqcyk7DQoJfQ0KDQoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQ0KCXsNCgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7DQoJCWtzb3J0KCR0aGlzLT5Db3VudHJpZXMpOw0KDQoJCSRtYWluID0gYXJyYXkoDQoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5JyksDQogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdCcsDQogICAgICAgICAgICAJCSR0aGlzLT5Db3VudHJpZXMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JywnJykpKSwNCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZScpLA0KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsDQogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSkpKQ0KCQkpOw0KCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbixhcnJheSgpKTsNCgl9DQoNCg0KfQ0KDQo/Pg0K]]></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+R2V0T3B0aW9uKCdkZWZhdWx0X3llYXInLCctMScpICE9ICctMScpCgkJICAgewogICAgICAgICAkdG9kYXlbJ3llYXInXSA9ICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfeWVhcicsJy0xJyk7CiAgICAgICAgIH0KCiAgICAgICRyZXQgPSBhcnJheSgpOwogICAgICAkZGF5ID0gbmV3IHN0ZENsYXNzKCk7CgkgICRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCiAgICAgICRkYXktPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkRGF5cywgLTEsICR0b2RheVsnbWRheSddLCAnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLidfMSIgJy4kanMpOwogCQkkZGF5LT50aXRsZSA9ICRtb2QtPkxhbmcoJ2RheScpOwogCQkkZGF5LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18xIj4nLiRtb2QtPkxhbmcoJ2RheScpLic8L2xhYmVsPic7CiAJCWFycmF5X3B1c2goJHJldCwgJGRheSk7CgogICAgICAkbW9uID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICRtb24tPmlucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAkdGhpcy0+TW9udGhzLCAtMSwgJHRvZGF5Wydtb24nXSwgJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nXzIiICcuJGpzKTsKIAkJJG1vbi0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtb24nKTsKIAkJJG1vbi0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiI+Jy4kbW9kLT5MYW5nKCdtb24nKS4nPC9sYWJlbD4nOwogCQlhcnJheV9wdXNoKCRyZXQsICRtb24pOwoKICAgICAgJHlyID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICR5ci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICRZZWFyLCAtMSwgJHRvZGF5Wyd5ZWFyJ10sJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nXzMiICcuJGpzKTsKICAgICAgJHlyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+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+UmVxdWlyZWQgPSAxOwoJfQoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksCiAgICAgICAgICAgMjUsMTI4LCRqcyk7Cgl9CgoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewogICAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkgIT0gZmFsc2UpCiAgICAgICAgIHsKCQkgICByZXR1cm4gJHRoaXMtPlNlbmRGb3JtKCR0aGlzLT5WYWx1ZSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JykpOwoJCSAgIH0KCQllbHNlCgkJICAgewogICAgICAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7CiAgICAgICAgIH0KCX0KCgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJcmV0dXJuICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwoJfQoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQlsaXN0KCRtYWluLCRhZHYpID0gJHRoaXMtPlByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCS8vJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSwgZmFsc2UpOwoJfQoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCiAgCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJHJlc3VsdCA9IHRydWU7CgkJJG1lc3NhZ2UgPSAnJzsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICB7CiAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgfQoKCQlyZXR1cm4gYXJyYXkoJHRoaXMtPnZhbGlkYXRlZCwgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQpOwoJfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpyZXF1aXJlX29uY2UoJ0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkRpcmVjdG9yIGV4dGVuZHMgZmJEaXNwb3NpdGlvbkVtYWlsQmFzZSB7CgoJdmFyICRhZGRyZXNzQ291bnQ7Cgl2YXIgJGFkZHJlc3NBZGQ7CgoJZnVuY3Rpb24gZmJEaXNwb3NpdGlvbkRpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgJHRoaXMtPmZiRGlzcG9zaXRpb25FbWFpbEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkRpcmVjdG9yJzsKCQkkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CgkJJHRoaXMtPkhhc0RlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAJCSk7CiAgICAgICAJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIEdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9kZXN0aW5hdGlvbicpOwoJfQoKCWZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQoJewoJCSR0aGlzLT5hZGRyZXNzQWRkID0gMTsKCX0KCglmdW5jdGlvbiBEb09wdGlvbkRlbGV0ZSgmJHBhcmFtcykKCXsKCQkkZGVsY291bnQgPSAwOwoJCWZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQoJCQl7CgkJCWlmIChzdWJzdHIoJHRoaXNLZXksMCw5KSA9PSAnZmJycF9kZWxfJykKCQkJCXsKCQkJCSR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9hZGRyZXNzJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJCQkJJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkJCQkkZGVsY291bnQrKzsKCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIGNvdW50QWRkcmVzc2VzKCkKCXsKCQkJJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9hZGRyZXNzJyk7CgkJCWlmIChpc19hcnJheSgkdG1wKSkKCQkJCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSBjb3VudCgkdG1wKTsKCSAgICAgICAgCX0KCSAgICAgICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKCSAgICAgICAgCXsKCSAgICAgICAgCSR0aGlzLT5hZGRyZXNzQ291bnQgPSAxOwoJICAgICAgICAJfQoJICAgICAgICBlbHNlCgkgICAgICAgIAl7CgkgICAgICAgIAkkdGhpcy0+YWRkcmVzc0NvdW50ID0gMDsKCSAgICAgICAgCX0KCX0KCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgoJCS8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQoJCS8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgoJCSRzb3J0ZWQgPWFycmF5KCk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkc29ydGVkWycgJy4kdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyldPScnOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKV09Jyc7CgkJCX0KCQkkc3ViamVjdHMgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fc3ViamVjdCcpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyIgJy4kanMpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCcnKTsKCQkKCQlpZiAoaXNfYXJyYXkoJG9wdCkpCgkJICB7CgkJICAgICAgJG51bSA9IGNvdW50KCRvcHQpOwoJCSAgfQoJCWVsc2VpZiAoJG9wdCAhPSAnJykKCQkJewoJCQkkbnVtID0gMTsKCQkJfQoJCWVsc2UKCQkgIHsKICAgICAgICAgICRudW0gPSAwOwogICAgICAgICAgfQogICAgICAgICAkcmV0PSAkbW9kLT5MYW5nKCdkZXN0aW5hdGlvbl9jb3VudCcsJG51bSk7CiAgICAgICAgJHJldC49ICR0aGlzLT5UZW1wbGF0ZVN0YXR1cygpOwogICAgICAgIHJldHVybiAkcmV0OwoJfQoJCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSR0aGlzLT5jb3VudEFkZHJlc3NlcygpOwoJCWlmICgkdGhpcy0+YWRkcmVzc0FkZCA+IDApCgkJCXsKCQkJJHRoaXMtPmFkZHJlc3NDb3VudCArPSAkdGhpcy0+YWRkcmVzc0FkZDsKCQkJJHRoaXMtPmFkZHJlc3NBZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcycpLic8L3RoPjx0aD4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4nPC90aD48L3RyPic7CgoKCQlmb3IgKCRpPTA7JGk8KCR0aGlzLT5hZGRyZXNzQ291bnQ+MT8kdGhpcy0+YWRkcmVzc0NvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9zdWJqZWN0W10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9zdWJqZWN0JywkaSksMjUsMTI4KS4KICAgICAgICAgICAgCQknPC90ZD48dGQ+Jy4KICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fYWRkcmVzc1tdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fYWRkcmVzcycsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCWxpc3QoJG1haW4sJGFkdikgPSAkdGhpcy0+UHJlUG9wdWxhdGVBZG1pbkZvcm1CYXNlKCRmb3JtRGVzY3JpcHRvcik7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJCQkkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywkbW9kLT5MYW5nKCdzZWxlY3Rfb25lJykpLDI1LDEyOCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnKSwKCQkJJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9zdWJqZWN0X292ZXJyaWRlJywnMCcpLgoJCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3N1YmplY3Rfb3ZlcnJpZGUnLAogICAgICAgICAgICAgICAgJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3N1YmplY3Rfb3ZlcnJpZGUnLCcwJykpLgoJCQkJJG1vZC0+TGFuZygndGl0bGVfYWxsb3dfc3ViamVjdF9vdmVycmlkZV9sb25nJykpKTsJCQoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZGlyZWN0b3JfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAiZW1haWwgc3ViamVjdCIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9zdWJqZWN0JykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCS8vIHJlbW92ZSB0aGUgImhpZGUgY3NzIiBmaWVsZAoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkYWR2QXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9jc3NfY2xhc3MnKSkKCQkJCXsKCQkJCSRoaWRlSW5kZXggPSAkaTsKCQkJCX0KCQkJfQoJCWlmICgkaGlkZUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkYWR2QXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQlpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQoJCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQkJfQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCSRyZXQgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkcmV0ID0gJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKTsKCQkJfQkKCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCX0KCQoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQoJewoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzdWJqZWN0X292ZXJyaWRlJywnMCcpID09ICcxJyAmJiAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0JywnJykgIT0gJycpCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9zdWJqZWN0Jyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHN1YmplY3QgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fc3ViamVjdCcsKCR0aGlzLT5WYWx1ZSAtIDEpKTsKCQkJfQoJCXJldHVybiAkdGhpcy0+U2VuZEZvcm0oJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnLCgkdGhpcy0+VmFsdWUgLSAxKSksCgkJCSRzdWJqZWN0KTsKCX0KCgoJZnVuY3Rpb24gQWRtaW5WYWxpZGF0ZSgpCiAgICB7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ2Rlc3RpbmF0aW9uX2FkZHJlc3MnKTsKICAJCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CgkJaWYgKCRyZXQpCgkJCXsKCQkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJCX0JCQoKCQlpZiAoY291bnQoJG9wdCkgPT0gMCkKCQkJewoJCQkkcmV0ID0gZmFsc2U7CgkJCSRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nKS4nPC9icj4nOwoJCQl9CgkJaWYgKCEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9mcm9tX2FkZHJlc3MnKSkpCgkJCXsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJykpIC4gJzxici8+JzsKCQkJfQogICAgICAgIGZvcigkaT0wOyRpPGNvdW50KCRvcHQpOyRpKyspCiAgICAJICAgewoJCQlpZiAoISBwcmVnX21hdGNoKCRtb2QtPmVtYWlsX3JlZ2V4LCAkb3B0WyRpXSkpCiAgICAJICAgICAgIHsKICAgIAkgICAgICAgCSRyZXQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRtb2QtPkxhbmcoJ25vdF92YWxpZF9lbWFpbCcsJG9wdFskaV0pLic8YnIvPic7CiAgICAJICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGFycmF5KCRyZXQsJG1lc3NhZ2UpOwogICAgfQogICAgCiAgICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgICB7CiAgICAgICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgICAgICAkcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgJG1lc3NhZ2UgPSAnJzsKCiAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwogICAgICAgICAgICAkbWVzc2FnZSAuPQokbW9kLT5MYW5nKCdtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJykuJzwvYnI+JzsKICAgICAgICAgICAgfQogICAgICAgIHJldHVybiBhcnJheSgkcmVzdWx0LCRtZXNzYWdlKTsKICAgIH0KCn0KPz4K]]></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+TGFuZygnbG9nX3N1c3BlY3RlZF9zcGFtJywkX1NFUlZFUlsnUkVNT1RFX0FERFInXSkpOwogICAgICByZXR1cm4gYXJyYXkoZmFsc2UsJG1zZyk7CiAgICAgIH0KICAgIH0KCiAgICAkbWFpbCA9JiAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnQ01TTWFpbGVyJyk7CiAgICBpZiAoJG1haWwgPT0gRkFMU0UpCiAgICAgIHsKICAkbXNnID0gJyc7CiAgaWYgKCEgJG1vZC0+R2V0UHJlZmVyZW5jZSgnaGlkZV9lcnJvcnMnLDApKQogICAgewogICAgICAkbXNnID0gJzxociAvPicuJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykuICc8aHIgLz4nOwogICAgfQogIGF1ZGl0KC0xLCAkbW9kLT5HZXROYW1lKCksJG1vZC0+TGFuZygnbWlzc2luZ19jbXNfbWFpbGVyJykpOwogIHJldHVybiBhcnJheShmYWxzZSwkbXNnKTsKICAgICAgfQogICAgJG1haWwtPnJlc2V0KCk7CiAgICBpZiAoJHRoaXMtPlNldEZyb21BZGRyZXNzKCkpCiAgICAgIHsKICAJICAvLyRtYWlsLT5TZXRGcm9tKCR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycpKTsKICAgICAgJG1haWwtPkFkZFJlcGx5VG8oJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJyksJHRoaXMtPlNldEZyb21OYW1lKCk/JHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJyk6JycpOwogICAgICB9CiAgICBpZiAoJHRoaXMtPlNldEZyb21OYW1lKCkpCiAgICAgIHsKICAkbWFpbC0+U2V0RnJvbU5hbWUoJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJykpOwogICAgICB9CiAgICAkbWFpbC0+U2V0Q2hhclNldCgkdGhpcy0+R2V0T3B0aW9uKCdlbWFpbF9lbmNvZGluZycsJ3V0Zi04JykpOwoKICAgICRtZXNzYWdlID0gJHRoaXMtPkdldE9wdGlvbignZW1haWxfdGVtcGxhdGUnLCcnKTsKICAgICRodG1sZW1haWwgPSAoJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSA9PSAnMScpOwogICAgaWYgKCRodG1sZW1haWwpCiAgICAgewogICAgJG1haWwtPklzSFRNTCh0cnVlKTsKICAgIH0KICAgaWYgKHN0cmxlbigkbWVzc2FnZSkgPCAxKQogICAgICB7CiAgICAkbWVzc2FnZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZShmYWxzZSk7CiAgICAgIGlmICgkaHRtbGVtYWlsKQogICAgICAgewogICAgICAkbWVzc2FnZTIgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUodHJ1ZSk7CiAgICAgIH0KICAgICAgfQogICAgZWxzZWlmICgkaHRtbGVtYWlsKQogICAgICB7CiAgICAkbWVzc2FnZTIgPSAkbWVzc2FnZTsKICAgIH0KICAgICRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKCiAgICAkdGhlRmllbGRzID0gJiRmb3JtLT5HZXRGaWVsZHMoKTsKCiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhlRmllbGRzKTskaSsrKQoJCXsKIAkJaWYgKHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGVGaWVsZHNbJGldKSkgPT0gJ2ZiZmlsZXVwbG9hZGZpZWxkJyApCiAgICAJCXsKICAgIAkJaWYoISAkdGhlRmllbGRzWyRpXS0+R2V0T3B0aW9uKCdzZW5kdG9fdXBsb2FkcycpICkKICAgICAgCQkJewogICAgICAgIAkJLy8gd2UgaGF2ZSBhIGZpbGUgd2Ugd2lzaCB0byBhdHRhY2gKCQkJCSR0aGlzQXR0ID0gJHRoZUZpZWxkc1skaV0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZShmYWxzZSk7CgkJCQoJCQkJaWYgKGlzX2FycmF5KCR0aGlzQXR0KSkKCQkJCQl7CgkJCQkJaWYgKGZ1bmN0aW9uX2V4aXN0cygnZmluZm9fb3BlbicpKQoJCQkJCQl7CgkJCQkJCSRmaW5mbyA9IGZpbmZvX29wZW4oRklMRUlORk9fTUlNRSk7IC8vIHJldHVybiBtaW1lIHR5cGUgYWxhIG1pbWV0eXBlIGV4dGVuc2lvbgoJCQkJCQkkdGhpc1R5cGUgPSBmaW5mb19maWxlKCRmaW5mbywgJHRoaXNBdHRbMF0pOwoJCQkJCQlmaW5mb19jbG9zZSgkZmluZm8pOwoJCQkJCQl9CgkJCQkJZWxzZSBpZiAoZnVuY3Rpb25fZXhpc3RzKCdtaW1lX2NvbnRlbnRfdHlwZScpKQoJCQkJCQl7CgkJCQkJCSR0aGlzVHlwZSA9IG1pbWVfY29udGVudF90eXBlKCR0aGlzQXR0WzBdKTsKCQkJCQkJfQoJCQkJCWVsc2UKCQkJCQkJewoJCQkJCQkkdGhpc1R5cGUgPSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJzsKCQkJCQkJfQoJCQkJCSR0aGlzTmFtZXMgPSBzcGxpdCgnWy86XFxdJywkdGhpc0F0dFswXSk7CgkJCQkJJHRoaXNOYW1lID0gYXJyYXlfcG9wKCR0aGlzTmFtZXMpOwogICAgCQkJCWlmICghICRtYWlsLT5BZGRBdHRhY2htZW50KCR0aGlzQXR0WzBdLCAkdGhpc05hbWUsICJiYXNlNjQiLCAkdGhpc1R5cGUpKQogICAgICAgICAgCQkJCXsKICAgICAgCQkJCQkvLyBmYWlsZWQgdXBsb2FkIGtpbGxzIHRoZSBzZW5kLgogICAgICAJCQkJCWF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKICAgICAgCQkJCQlyZXR1cm4gYXJyYXkoJHJlcywgJG1vZC0+TGFuZygndXBsb2FkX2F0dGFjaF9lcnJvcicsCiAgICAgICAgICAgICAgICAgIAkJCQlhcnJheSgkdGhpc0F0dFswXSwkdGhpc0F0dFswXSAsJHRoaXNUeXBlKSkpOwogICAgICAgICAgCQkJCX0KCQkJCQl9CiAgICAgIAkJCX0KICAgICAJCX0KICAgIAl9CgoKICAgICRtZXNzYWdlID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRtZXNzYWdlICk7CiAgICAkc3ViamVjdCA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkc3ViamVjdCApOwogICAgJG1haWwtPlNldFN1YmplY3QoJHN1YmplY3QpOwogICAgIGlmICgkaHRtbGVtYWlsKQogICAgIHsKICAgICRtZXNzYWdlMiA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRtZXNzYWdlMik7CiAgICAkbWFpbC0+U2V0QWx0Qm9keShzdHJpcF90YWdzKGh0bWxfZW50aXR5X2RlY29kZSgkbWVzc2FnZSkpKTsKICAgICRtYWlsLT5TZXRCb2R5KCRtZXNzYWdlMik7CiAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgJG1haWwtPlNldEJvZHkoaHRtbF9lbnRpdHlfZGVjb2RlKCRtZXNzYWdlKSk7CiAgICB9CiAgICAvLyBzZW5kIHRoZSBtZXNzYWdlLi4uCiAgICBpZiAoISBpc19hcnJheSgkZGVzdGluYXRpb25fYXJyYXkpKQogICAgICB7CiAgJGRlc3RpbmF0aW9uX2FycmF5ID0gYXJyYXkoJGRlc3RpbmF0aW9uX2FycmF5KTsKICAgICAgfQogICAgZm9yZWFjaCAoJGRlc3RpbmF0aW9uX2FycmF5IGFzICR0aGlzRGVzdCkKICAgICAgewogICRtYWlsLT5BZGRBZGRyZXNzKCR0aGlzRGVzdCk7CiAgICAgIH0KCiAgICAkcmVzID0gJG1haWwtPlNlbmQoKTsKICAgIGlmICgkcmVzID09PSBmYWxzZSkKICAgICAgewogIGF1ZGl0KC0xLCAoaXNzZXQoJG5hbWUpPyRuYW1lOiIiKSwgJG1vZC0+TGFuZygnc3VibWl0X2Vycm9yJywkbWFpbC0+R2V0RXJyb3JJbmZvKCkpKTsKICAgICAgfQogICAgZWxzZSBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2FudGlzcGFtJywxKSkKICAgICB7CiAgICAkZGIgPSYgJGdDbXMtPkdldERiKCk7CgogICAgJHJlY19pZCA9ICRkYi0+R2VuSUQoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nX3NlcScpOwogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX2lwX2xvZyAoc2VudF9pZCwgc3JjX2lwLCBzZW50X3RpbWUpIFZBTFVFUyAoPywgPywgPyknOwoKICAgICRkYnJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRyZWNfaWQsICRfU0VSVkVSWydSRU1PVEVfQUREUiddLAogICAgICAgICAgICAgICB0cmltKCRkYi0+REJUaW1lU3RhbXAodGltZSgpKSwiJyIpKSk7CiAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlcywgJG1haWwtPkdldEVycm9ySW5mbygpKTsKICB9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtQmFzZSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWVzc2FnZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2VtYWlsX3RlbXBsYXRlJywnJyk7CgoJJHBhcm0gPSBhcnJheSgpOwoJJHBhcm1bJ29wdF9lbWFpbF90ZW1wbGF0ZSddWydodG1sX2J1dHRvbiddID0gdHJ1ZTsKCSRwYXJtWydvcHRfZW1haWxfdGVtcGxhdGUnXVsndGV4dF9idXR0b24nXSA9IHRydWU7CgkkcGFybVsnb3B0X2VtYWlsX3RlbXBsYXRlJ11bJ2lzX2VtYWlsJ10gPSB0cnVlOwogICAgcmV0dXJuIGFycmF5KAogICAgIGFycmF5KAogICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX3N1YmplY3QnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZW1haWxfc3ViamVjdCcsJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcsJycpLDUwKS4nPGJyLz4nLiRtb2QtPkxhbmcoJ2NhbnVzZV9zbWFydHknKSksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZnJvbV9uYW1lJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fbmFtZScsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJywkbW9kLT5MYW5nKCdmcmllbmRseW5hbWUnKSksMjUsMTI4KSksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJyksJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZnJvbV9hZGRyZXNzJywnJyksMjUsMTI4KS4nPGJyIC8+Jy4KCQkkbW9kLT5MYW5nKCdlbWFpbF9mcm9tX2FkZHJfaGVscCcsYXJyYXkoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSksCiAgICAgICAgICAgKSwKICAgICBhcnJheSgKICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2h0bWxfZW1haWwnKSwKICAgICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCdmYnJwX29wdF9odG1sX2VtYWlsJywnMCcpLiRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfaHRtbF9lbWFpbCcsCiAgICAgICAgICAgICAgICAnMScsJHRoaXMtPkdldE9wdGlvbignaHRtbF9lbWFpbCcsJzAnKSkpLAogICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJyksCiAgICAgICAgICAgYXJyYXkoJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKICAgICAgICAgICAgICAvKigkdGhpcy0+R2V0T3B0aW9uKCdodG1sX2VtYWlsJywnMCcpPT0nMSc/JG1lc3NhZ2U6aHRtbHNwZWNpYWxjaGFycygkbWVzc2FnZSkpKi8KCQkJICRtZXNzYWdlLCdmYnJwX29wdF9lbWFpbF90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV93aWRlJywgJycsJycsMCwwKSwKICAgICAgICAgICAgICAkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybSkpKSwKICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9lbWFpbF9lbmNvZGluZycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9lbWFpbF9lbmNvZGluZycsJHRoaXMtPkdldE9wdGlvbignZW1haWxfZW5jb2RpbmcnLCd1dGYtOCcpLDI1LDEyOCkpCiAgICAgICAgICAgKQogICAgICk7CiAgfQoKfQoKLy8gRU9GCj8+Cg==]]></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+RGlzcGxheUluRm9ybSA9IHRydWU7CgkJJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5IYXNBZGRPcCA9IGZhbHNlOwoJCSR0aGlzLT5IYXNEZWxldGVPcCA9IGZhbHNlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgIAkJKTsKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkgICAgZ2xvYmFsICRnQ21zOwoJICAgICR1c2Vyb3BzID0mICRnQ21zLT5HZXRVc2VyT3BlcmF0aW9ucygpOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJLy8gd2h5IGFsbCB0aGlzPyBBc3NvY2lhdGl2ZSBhcnJheXMgYXJlIG5vdCBndWFyYW50ZWVkIHRvIHByZXNlcnZlCgkJLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCgkJJHNvcnRlZCA9YXJyYXkoKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSRzb3J0ZWRbJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKV09Jyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFsnICcuJG1vZC0+TGFuZygnc2VsZWN0X29uZScpXT0nJzsKCQkJfQoJCQkKCQlpZiAoJHRoaXMtPkdldE9wdGlvbigncmVzdHJpY3RfdG9fZ3JvdXAnLCcwJyk9PScxJykKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzSW5Hcm91cCgkdGhpcy0+R2V0T3B0aW9uKCdncm91cCcpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdXNlcmxpc3QgPSAkdXNlcm9wcy0+TG9hZFVzZXJzKCk7CgkJCX0KCQlmb3IoJGk9MDskaTxjb3VudCgkdXNlcmxpc3QpOyRpKyspCgkJCXsKCQkJJG5hbWUgPSBhcnJheSgpOwoJCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2hvd191c2VyZmlyc3RuYW1lJywnMCcpPT0nMScpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRuYW1lLCR1c2VybGlzdFskaV0tPmZpcnN0bmFtZSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJsYXN0bmFtZScsJzAnKT09JzEnKQoJCQkJewoJCQkJYXJyYXlfcHVzaCgkbmFtZSwkdXNlcmxpc3RbJGldLT5sYXN0bmFtZSk7CgkJCQl9CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzaG93X3VzZXJuYW1lJywnMCcpPT0nMScpCgkJCQl7CgkJCQlhcnJheV9wdXNoKCRuYW1lLCcgKCcuJHVzZXJsaXN0WyRpXS0+dXNlcm5hbWUuJyknKTsKCQkJCX0KCQkJJHNuYW1lID0gaW1wbG9kZSgnICcsJG5hbWUpOwoJCQkkc29ydGVkWyRzbmFtZV09KCRpKzEpOwoJCQl9CgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICRzb3J0ZWQsIC0xLCAkdGhpcy0+VmFsdWUsICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyIgJy4kanMpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkgICAgZ2xvYmFsICRnQ21zOwoJICAgICRncm91cG9wcyA9JiAkZ0Ntcy0+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+XG4KCQkvKiA8IVtDREFUQVsgKi8KZnVuY3Rpb24gcG9wdWxhdGVfZmlsZShmb3JtbmFtZSkKICAgIHsKICAgIHZhciBmbmFtZSA9ICdJRGZicnBfb3B0X2ZpbGVfdGVtcGxhdGUnOwogICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQogICAgLyogXV0+ICovCjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4kbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJykuIlwiIG9uY2xpY2s9XCJqYXZhc2NyaXB0OnBvcHVsYXRlX2ZpbGUodGhpcy5mb3JtKVwiIC8+IjsKICAgICR0aGlzLT5zYW1wbGVIZWFkZXIgPSAiPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+XG4KCQkvKiA8IVtDREFUQVsgKi8KZnVuY3Rpb24gcG9wdWxhdGVfaGVhZGVyKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEZmJycF9vcHRfZmlsZV9oZWFkZXInOwogICAgZm9ybW5hbWVbZm5hbWVdLnZhbHVlPVRFTVBMQVRFOwogICAgfQogICAgLyogXV0+ICovCjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4kbW9kLT5MYW5nKCd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcicpLiJcIiBvbmNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZV9oZWFkZXIodGhpcy5mb3JtKVwiIC8+IjsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgICRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CiAgfQoKICBmdW5jdGlvbiBEaXNwb3NlRm9ybSgkcmV0dXJuaWQpCiAgewoJZ2xvYmFsICRnQ21zOwoJJG9wdGlvbnMgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkZm9ybT0mJHRoaXMtPmZvcm1fcHRyOwogICAgJGNvdW50ID0gMDsKICAgIHdoaWxlICghICRtb2QtPkdldEZpbGVMb2NrKCkgJiYgJGNvdW50PDIwMCkKICAgICAgewoJJGNvdW50Kys7Cgl1c2xlZXAoNTAwKTsKICAgICAgfQogICAgaWYgKCRjb3VudCA9PSAyMDApCiAgICAgIHsKCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snKSk7CiAgICAgIH0KCiAgICAkZmlsZXNwZWMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlcm9vdCcsJG9wdGlvbnNbJ3VwbG9hZHNfcm9vdCddKS4nLycuCiAgICAgIHByZWdfcmVwbGFjZSgiL1teXHdcZFwuXXxcLlwuLyIsICJfIiwgJHRoaXMtPkdldE9wdGlvbignZmlsZXNwZWMnLCdmb3JtX3N1Ym1pc3Npb25zLnR4dCcpKTsKCiAgICAkbGluZSA9ICcnOwogICAgaWYgKCEgZmlsZV9leGlzdHMoJGZpbGVzcGVjKSkKICAgICAgewoJJGhlYWRlciA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfaGVhZGVyJywnJyk7CglpZiAoJGhlYWRlciA9PSAnJykKCSAgewoJICAgICRoZWFkZXIgPSAkZm9ybS0+Y3JlYXRlU2FtcGxlSGVhZGVyKCk7CgkgIH0gCgkkaGVhZGVyIC49ICJcbiI7CiAgICAgIH0KICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKTsKICAgIGlmICgkdGVtcGxhdGUgPT0gJycpCiAgICAgIHsKCSR0ZW1wbGF0ZSA9ICRmb3JtLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwogICAgICB9CiAgICAkbGluZSA9ICR0ZW1wbGF0ZTsKCiAgICAkZm9ybS0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CiAgICAkbmV3bGluZSA9ICRtb2QtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCAkbGluZSApOwoJJHJlcGxjaGFyID0gJHRoaXMtPkdldE9wdGlvbignbmV3bGluZWNoYXInLCcnKTsKCWlmICgkcmVwbGNoYXIgIT0gJycpCgkJewoJCSRuZXdsaW5lID0gcnRyaW0oJG5ld2xpbmUsIlxyXG4iKTsKICAgIAkkbmV3bGluZSA9IHByZWdfcmVwbGFjZSgnL1tcblxyXS8nLCRyZXBsY2hhciwkbmV3bGluZSk7CgkJfQogICAgaWYgKHN1YnN0cigkbmV3bGluZSwtMSwxKSAhPSAiXG4iKQogICAgICB7CgkgICRuZXdsaW5lIC49ICJcbiI7CiAgICAgIH0KICAgICRmMiA9IGZvcGVuKCRmaWxlc3BlYywiYSIpOwogICAgZndyaXRlKCRmMiwkaGVhZGVyLiRuZXdsaW5lKTsKICAgIGZjbG9zZSgkZjIpOyAKICAgICRtb2QtPlJldHVybkZpbGVMb2NrKCk7CiAgICByZXR1cm4gYXJyYXkodHJ1ZSwnJyk7ICAgICAgICAKICB9CgogIGZ1bmN0aW9uIE1ha2VWYXIoJHN0cmluZykKICB7CiAgICAkbWF4dmFybGVuID0gMjQ7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9ccysvJywnXycsJHN0cmluZykpOwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXFcvJywnXycsJHN0cmluZykpOwogICAgaWYgKHN0cmxlbigkc3RyaW5nKSA+ICRtYXh2YXJsZW4pCiAgICAgIHsKCSRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRtYXh2YXJsZW4pOwoJJHBvcyA9IHN0cnJwb3MoJHN0cmluZywnXycpOwoJaWYgKCRwb3MgIT09IGZhbHNlKQoJICB7CgkgICAgJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJHBvcyk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuICRzdHJpbmc7CiAgfQoKCiAgZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQogIHsKCWdsb2JhbCAkZ0NtczsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJJGNvbmZpZyA9ICRnQ21zLT5HZXRDb25maWcoKTsKCiAgICAkbWFpbiA9IGFycmF5KCk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgICRwYXJtTWFpbiA9IGFycmF5KCk7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX3RlbXBsYXRlJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfb25lbGluZSddPXRydWU7CiAgICAkcGFybU1haW5bJ29wdF9maWxlX2hlYWRlciddWydpc19oZWFkZXInXT10cnVlOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWxlX3Jvb3QnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpbGVyb290JywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVyb290JywkY29uZmlnWyd1cGxvYWRzX3BhdGgnXSksNDUsMjU1KS4nPGJyIC8+Jy4KCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJykpKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9uYW1lJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWxlc3BlYycsCgkJCQkJCSAkdGhpcy0+R2V0T3B0aW9uKCdmaWxlc3BlYycsJ2Zvcm1fc3VibWlzc2lvbnMudHh0JyksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnKSwKCQkJICBhcnJheSgkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAoJCQkJCQkgICAgIGh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpKSwnZmJycF9vcHRfZmlsZV90ZW1wbGF0ZScsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCksJHRoaXMtPmZvcm1fcHRyLT5BZG1pblRlbXBsYXRlSGVscCgkZm9ybURlc2NyaXB0b3IsJHBhcm1NYWluKSkpKTsKCQkJCQkJCQkJCQkJCiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV9oZWFkZXInKSwKCQkJICAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGZvcm1EZXNjcmlwdG9yLAoJCQkJCSAgICAgICBodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfaGVhZGVyJywnJykpLCdmYnJwX29wdF9maWxlX2hlYWRlcicsICdtb2R1bGVfZmJfYXJlYV9zaG9ydCcsICcnLCcnLDAsMCkpKTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCcpLAoJCQkgICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbmV3bGluZWNoYXInLAoJCQkJCQkgJHRoaXMtPkdldE9wdGlvbignbmV3bGluZWNoYXInLCcnKSw1LDE1KS4nPGJyIC8+Jy4KCQkJCQkJJG1vZC0+TGFuZygndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJykpKTsKCiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKICBmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCiAgewogICAgJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CiAgfQp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yIGV4dGVuZHMgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uRmlsZURpcmVjdG9yKCYkZm9ybV9wdHIsICYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkdGhpcy0+VHlwZSA9ICdEaXNwb3NpdGlvbkZpbGVEaXJlY3Rvcic7CiAgICAkdGhpcy0+SXNEaXNwb3NpdGlvbiA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkhhc0FkZE9wID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNEZWxldGVPcCA9IHRydWU7CiAgICAkdGhpcy0+c29ydGFibGUgPSBmYWxzZTsKICAgICR0aGlzLT5maWxlQWRkID0gMDsKCiAgICBnbG9iYWwgJGdDbXM7CiAgICAkY29uZmlnID0mICRnQ21zLT5nZXRDb25maWcoKTsKICAgICR0aGlzLT5kZmx0X2ZpbGVwYXRoID0gJGNvbmZpZ1sndXBsb2Fkc19wYXRoJ107CiAgfQoKCiAgZnVuY3Rpb24gRG9PcHRpb25BZGQoJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZpbGVBZGQgPSAxOwogIH0KCiAgZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCiAgewogICAgJGRlbGNvdW50ID0gMDsKICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICRkZWxjb3VudCsrOwoJICB9CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIGNvdW50RmlsZXMoKQogIHsKICAgICR0bXAgPSAmJHRoaXMtPkdldE9wdGlvblJlZignZGVzdGluYXRpb25fZmlsZW5hbWUnKTsKICAgIGlmIChpc19hcnJheSgkdG1wKSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IGNvdW50KCR0bXApOwogICAgICB9CiAgICBlbHNlaWYgKCR0bXAgIT09IGZhbHNlKQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+ZmlsZUNvdW50ID0gMDsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkKICAgIC8vIHdoeSBhbGwgdGhpcz8gQXNzb2NpYXRpdmUgYXJyYXlzIGFyZSBub3QgZ3VhcmFudGVlZCB0byBwcmVzZXJ2ZQogICAgLy8gb3JkZXIsIGV4Y2VwdCBpbiAiY2hyb25vbG9naWNhbCIgY3JlYXRpb24gb3JkZXIuCiAgICAkc29ydGVkID1hcnJheSgpOwogICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKICAgICAgewoJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKICAgICAgfQogICAgZWxzZQogICAgICB7Cgkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwogICAgICB9CiAgICAkZGlzcGxheW5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJyk7CiAgICAKICAgIGlmIChjb3VudCgkZGlzcGxheW5hbWVzKSA+IDEpCiAgICAgIHsKCWZvcigkaT0wOyRpPGNvdW50KCRkaXNwbGF5bmFtZXMpOyRpKyspCgkgIHsKCSAgICAkc29ydGVkWyRkaXNwbGF5bmFtZXNbJGldXT0oJGkrMSk7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7Cgkkc29ydGVkWyRkaXNwbGF5bmFtZXNdID0gJzEnOwogICAgICB9CiAgICByZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHNvcnRlZCwgLTEsICR0aGlzLT5WYWx1ZSwgJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIiAnLiRqcyk7CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgJG1vZD0mJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHJldD0gJG1vZC0+TGFuZygnZmlsZV9jb3VudCcsJHRoaXMtPmZpbGVDb3VudCk7CiAgICByZXR1cm4gJHJldDsKICB9CgogIGZ1bmN0aW9uIERpc3Bvc2VGb3JtKCRyZXR1cm5pZCkKICB7CglnbG9iYWwgJGdDbXM7Cgkkb3B0aW9ucyA9ICRnQ21zLT5HZXRDb25maWcoKTsKICAgICRtb2Q9JiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRmb3JtPSYkdGhpcy0+Zm9ybV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKCiAgICAkZGlyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCkuJy8nOwogICAgJGZpbGVzcGVjID0gJGRpci4KICAgICAgcHJlZ19yZXBsYWNlKCIvW15cd1xkXC5dfFwuXC4vIiwgIl8iLCAKCQkgICAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLAoJCQkJCSAgICgkdGhpcy0+VmFsdWUgLSAxKSkpOwoKICAgICRsaW5lID0gJyc7CiAgICBpZiAoISBmaWxlX2V4aXN0cygkZmlsZXNwZWMpKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKCWlmICgkaGVhZGVyID09ICcnKQoJICB7CgkgICAgJGhlYWRlciA9ICRmb3JtLT5jcmVhdGVTYW1wbGVIZWFkZXIoKTsKCSAgfSAKCSRoZWFkZXIgLj0gIlxuIjsKICAgICAgfQogICAgJHRlbXBsYXRlID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV90ZW1wbGF0ZScsJycpOwogICAgaWYgKCR0ZW1wbGF0ZSA9PSAnJykKICAgICAgewoJJHRlbXBsYXRlID0gJGZvcm0tPmNyZWF0ZVNhbXBsZVRlbXBsYXRlKCk7CiAgICAgIH0KICAgICRsaW5lID0gJHRlbXBsYXRlOwoKCSRmb3JtLT5zZXRGaW5pc2hlZEZvcm1TbWFydHkoKTsKICAgICRuZXdsaW5lID0gJG1vZC0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoICRsaW5lICk7CgkkcmVwbGNoYXIgPSAkdGhpcy0+R2V0T3B0aW9uKCduZXdsaW5lY2hhcicsJycpOwoJaWYgKCRyZXBsY2hhciAhPSAnJykKCQl7CgkJJG5ld2xpbmUgPSBydHJpbSgkbmV3bGluZSwiXHJcbiIpOwogICAgCSRuZXdsaW5lID0gcHJlZ19yZXBsYWNlKCcvW1xuXHJdLycsJHJlcGxjaGFyLCRuZXdsaW5lKTsKCQl9CiAgICBpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCiAgICAgIHsKCSAgJG5ld2xpbmUgLj0gIlxuIjsKICAgICAgfQogICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CiAgICBmY2xvc2UoJGYyKTsgCiAgICAkbW9kLT5SZXR1cm5GaWxlTG9jaygpOwogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOyAgICAgICAgCiAgfQoKICBmdW5jdGlvbiBNYWtlVmFyKCRzdHJpbmcpCiAgewogICAgJG1heHZhcmxlbiA9IDI0OwogICAgJHN0cmluZyA9IHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKCcvXHMrLycsJ18nLCRzdHJpbmcpKTsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xXLycsJ18nLCRzdHJpbmcpKTsKICAgIGlmIChzdHJsZW4oJHN0cmluZykgPiAkbWF4dmFybGVuKQogICAgICB7Cgkkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkbWF4dmFybGVuKTsKCSRwb3MgPSBzdHJycG9zKCRzdHJpbmcsJ18nKTsKCWlmICgkcG9zICE9PSBmYWxzZSkKCSAgewoJICAgICRzdHJpbmcgPSBzdWJzdHIoJHN0cmluZywwLCRwb3MpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiAkc3RyaW5nOwogIH0KCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlSGVhZGVyKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJG90aGVycyk7JGkrKykKICAgICAgewoJaWYgKCRvdGhlcnNbJGldLT5EaXNwbGF5SW5TdWJtaXNzaW9uKCkpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRmaWVsZHMsJG90aGVyc1skaV0tPkdldE5hbWUoKSk7CgkgIH0KICAgICAgfQogICAgcmV0dXJuIGltcGxvZGUoJ3skVEFCfScsJGZpZWxkcyk7CiAgfQoKCiAgZnVuY3Rpb24gY3JlYXRlU2FtcGxlVGVtcGxhdGUoKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJG90aGVycyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICAgIGFycmF5X3B1c2goJGZpZWxkcywneyQnIC4gJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkgLiAnfScpOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBpbXBsb2RlKCd7JFRBQn0nLCRmaWVsZHMpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfZGVsZXRlJykuJzwvdGg+PC90cj4nOwoKICAgIGZvciAoJGk9MDskaTwoJHRoaXMtPmZpbGVDb3VudD4xPyR0aGlzLT5maWxlQ291bnQ6MSk7JGkrKykKICAgICAgewoJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fZGlzcGxheW5hbWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZXN0aW5hdGlvbl9maWxlbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCRpKSwyNSwxMjgpLgoJICAnPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCgkgICc8L3RkPjwvdHI+JzsKICAgICAgfQogICAgJGRlc3RzIC49ICc8L3RhYmxlPic7CgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICAkcGFybU1haW4gPSBhcnJheSgpOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV90ZW1wbGF0ZSddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfaGVhZGVyJ109dHJ1ZTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwKCQkJCQkgICAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX2hlYWRlcicsJycpKSwnZmJycF9vcHRfZmlsZV9oZWFkZXInLCAnbW9kdWxlX2ZiX2FyZWFfc2hvcnQnLCAnJywnJywwLDApKSk7CiAgICBhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnQnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X25ld2xpbmVjaGFyJywKCQkJCQkJICR0aGlzLT5HZXRPcHRpb24oJ25ld2xpbmVjaGFyJywnJyksNSwxNSkuJzxiciAvPicuCgkJCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCcpKSk7CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICAgIC8vJHRoaXMtPkhpZGRlbkRpc3Bvc2l0aW9uRmllbGRzKCRtYWluQXJyYXksICRhZHZBcnJheSk7CiAgfQp9Cgo/Pgo=]]></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/DispositionFromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCnJlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4nL0Rpc3Bvc2l0aW9uRW1haWxCYXNlLmNsYXNzLnBocCcpOwoKY2xhc3MgZmJEaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRGlzcG9zaXRpb25FbWFpbEJhc2UgewoKCWZ1bmN0aW9uIGZiRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CiAgICAgICR0aGlzLT5mYkRpc3Bvc2l0aW9uRW1haWxCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJzsKICAgICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCgkJCSRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICApOwoJJHRoaXMtPm1vZGlmaWVzT3RoZXJGaWVsZHMgPSB0cnVlOwoJJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwoJCgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCSRyZXRzdHIgPSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKCQkJaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+VmFsdWVbMF0sIEVOVF9RVU9URVMpLAogICAgICAgICAgIDI1LDEyOCwkanMpOwogCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2NvcHknLCduJykgPT0gJ2MnKQoJCQl7CgkJCSRyZXRzdHIgLj0gJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLCAxLAoJCQkJCTAsJyBpZD0iJy4kdGhpcy0+SWQuJ18yIicpOwoJCQkkcmV0c3RyIC49ICc8bGFiZWwgZm9yPSInLiR0aGlzLT5JZC4nXzIiPicuJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2xhYmVsJywKCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX3NlbmRfbWVfYV9jb3B5JykpLic8L2xhYmVsPic7CgkJCX0KCQlyZXR1cm4gJHJldHN0cjsKCX0KCiAgCWZ1bmN0aW9uIEdldFZhbHVlKCkKICAJewogICAgCXJldHVybiAkdGhpcy0+VmFsdWVbMF07CiAgCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCXJldHVybiAkdGhpcy0+VmFsdWVbMF07Cgl9CgoJZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQoJewogICAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkgIT0gZmFsc2UgJiYgCgkJCSgKCQkJCSR0aGlzLT5HZXRPcHRpb24oJ3NlbmRfdXNlcl9jb3B5JywnbicpID09ICdhJwoJCQkJfHwKCQkJCSgkdGhpcy0+R2V0T3B0aW9uKCdzZW5kX3VzZXJfY29weScsJ24nKSA9PSAnYycgJiYgaXNzZXQoJHRoaXMtPlZhbHVlWzFdKSAmJiAkdGhpcy0+VmFsdWVbMV0gPT0gMSkKCQkJKQoJCSApCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5TZW5kRm9ybSgkdGhpcy0+VmFsdWVbMF0sJHRoaXMtPkdldE9wdGlvbignZW1haWxfc3ViamVjdCcpKTsKCQkJfQoJICBlbHNlCgkJewogICAgICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsKICAgICAgICB9Cgl9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAkdGhpcy0+VGVtcGxhdGVTdGF0dXMoKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJbGlzdCgkbWFpbiwkYWR2KSA9ICR0aGlzLT5QcmVQb3B1bGF0ZUFkbWluRm9ybUJhc2UoJGZvcm1EZXNjcmlwdG9yKTsKCQkkb3B0cyA9IGFycmF5KCRtb2QtPkxhbmcoJ29wdGlvbl9uZXZlcicpPT4nbicsJG1vZC0+TGFuZygnb3B0aW9uX3VzZXJfY2hvaWNlJyk9PidjJywkbW9kLT5MYW5nKCdvcHRpb25fYWx3YXlzJyk9PidhJyk7CgkJYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZW5kX3VzZXJjb3B5JyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VuZF91c2VyX2NvcHknLCAkb3B0cywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ3NlbmRfdXNlcl9jb3B5JywnbicpKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCcpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VuZF91c2VyX2xhYmVsJywgJHRoaXMtPkdldE9wdGlvbignc2VuZF91c2VyX2xhYmVsJywKCQkJCSRtb2QtPkxhbmcoJ3RpdGxlX3NlbmRfbWVfYV9jb3B5JykpLDI1LDEyNSkpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJG1haW5BcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcycpKQoJCQkJewoJCQkJJGhpZGVJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRoaWRlSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRtYWluQXJyYXksICRoaWRlSW5kZXgsMSk7CgkJCX0KCQkvLyByZW1vdmUgdGhlICJoaWRlIGNzcyIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfY3NzX2NsYXNzJykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPlZhbHVlWzBdKTsKCQkJCQl9CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgogIAkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CiAgCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRyZXN1bHQgPSB0cnVlOwoJCSRtZXNzYWdlID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSAhPSAnbm9uZScpCgkJCXsKCQkgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgoJCSAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlWzBdKSkKCQkgICAgICAgICB7CgkJICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJCSAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CgkJICAgICAgICAgfQoJCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/DispositionMultiselectFileDirector.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCgogICBUaGlzIGZpbGU6IENvcHlyaWdodCAoYykgMjAwNyBSb2JlcnQgQ2FtcGJlbGwgPGNhbGd1eTEwMDBAaG90bWFpbC5jb20+CiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiovCgpjbGFzcyBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IgZXh0ZW5kcyAgZmJGaWVsZEJhc2UgCnsKICB2YXIgJGZpbGVDb3VudDsKICB2YXIgJGZpbGVBZGQ7CiAgdmFyICRzYW1wbGVUZW1wbGF0ZUNvZGU7CiAgdmFyICRzYW1wbGVIZWFkZXI7CiAgdmFyICRkZmx0X2ZpbGVwYXRoOwoKICBmdW5jdGlvbiBmYkRpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3IoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InOwogICAgJHRoaXMtPklzRGlzcG9zaXRpb24gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwogICAgJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb24gPSBmYWxzZTsKICAgICR0aGlzLT5EaXNwbGF5SW5TdWJtaXNzaW9uID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwogICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwogICAgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgICAkdGhpcy0+ZmlsZUFkZCA9IDA7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJGNvbmZpZyA9JiAkZ0Ntcy0+Z2V0Q29uZmlnKCk7CiAgICAkdGhpcy0+ZGZsdF9maWxlcGF0aCA9ICRjb25maWdbJ3VwbG9hZHNfcGF0aCddOwogIH0KCgogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5maWxlQWRkID0gMTsKICB9CgogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICAgICRkZWxjb3VudCA9IDA7CiAgICBmb3JlYWNoICgkcGFyYW1zIGFzICR0aGlzS2V5PT4kdGhpc1ZhbCkKICAgICAgewoJaWYgKHN1YnN0cigkdGhpc0tleSwwLDkpID09ICdmYnJwX2RlbF8nKQoJICB7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsICR0aGlzVmFsIC0gJGRlbGNvdW50KTsKCSAgICAkZGVsY291bnQrKzsKCSAgfQogICAgICB9CiAgfQoKICBmdW5jdGlvbiBjb3VudEZpbGVzKCkKICB7CiAgICAkdG1wID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJyk7CiAgICBpZiAoaXNfYXJyYXkoJHRtcCkpCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgPSBjb3VudCgkdG1wKTsKICAgICAgfQogICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDE7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHRoaXMtPmZpbGVDb3VudCA9IDA7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCiAgICAvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKICAgIC8vIG9yZGVyLCBleGNlcHQgaW4gImNocm9ub2xvZ2ljYWwiIGNyZWF0aW9uIG9yZGVyLgogICAgJGRpc3BsYXluYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScpOwogICAgJGRpc3BsYXlmaWxlcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdkZXN0aW5hdGlvbl9maWxlbmFtZScpOwoKICAgICRmaWVsZHMgPSBhcnJheSgpOwogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRpc3BsYXluYW1lcyk7ICRpKysgKQogICAgICB7CgkkbGFiZWwgPSAnJzsKCSRjdHJsID0gbmV3IHN0ZENsYXNzKCk7CgkkY3RybC0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfJy4kaS4nIj4nLiRkaXNwbGF5bmFtZXNbJGldLic8L2xhYmVsPic7CgkkY3RybC0+dGl0bGUgPSAkZGlzcGxheW5hbWVzWyRpXTsKCSRjdHJsLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLAoJCQkJCQkgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsIAoJCQkJCQkgJGkrMSwnLTEnLAoJCQkJCQkgc3ByaW50ZignIGlkPSIlc18lc18lcyIgJywKCQkJCQkJCSAkaWQsICR0aGlzLT5JZCwkaSkuJGpzKTsKCSRmaWVsZHNbXSA9ICRjdHJsOwogICAgICB9CiAgICByZXR1cm4gJGZpZWxkczsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwogICAgJHRtcCA9IGFycmF5KCk7CiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSApCiAgICAgIHsKCWZvcmVhY2goICR0aGlzLT5WYWx1ZSBhcyAkaWR4ICkKCSAgewoJICAgIGlmKCBlbXB0eSgkaWR4KSApIGNvbnRpbnVlOwoJICAgIAoJICAgICRpZHgtLTsKCSAgICAKCSAgICAkc3RyID0gJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3ZhbHVlJywkaWR4KTsKCSAgICBpZiggZW1wdHkoJHN0cikgKQoJICAgICAgewoJCSRzdHIgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZGlzcGxheW5hbWUnLCRpZHgpOwoJICAgICAgfQoJICAgICR0bXBbXSA9ICRzdHI7CgkgIH0gLy8gZm9yZWFjaAogICAgICB9IC8vIGlmCgoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkdG1wKTsKCQl9CgllbHNlCgkJewogICAgCXJldHVybiAkdG1wOwoJCX0KICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgICR0aGlzLT5jb3VudEZpbGVzKCk7CiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkcmV0PSAkbW9kLT5MYW5nKCdmaWxlX2NvdW50JywkdGhpcy0+ZmlsZUNvdW50KTsKICAgIHJldHVybiAkcmV0OwogIH0KCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oJHJldHVybmlkKQogIHsKCiAgICAkbW9kPSYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkY291bnQgPSAwOwogICAgd2hpbGUgKCEgJG1vZC0+R2V0RmlsZUxvY2soKSAmJiAkY291bnQ8MjAwKQogICAgICB7CgkkY291bnQrKzsKCXVzbGVlcCg1MDApOwogICAgICB9CiAgICBpZiAoJGNvdW50ID09IDIwMCkKICAgICAgewoJcmV0dXJuIGFycmF5KGZhbHNlLCAkbW9kLT5MYW5nKCdzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jaycpKTsKICAgICAgfQoKCiAgICAkZGlyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9wYXRoJywkdGhpcy0+ZGZsdF9maWxlcGF0aCkuJy8nOwoKCSR0aGlzLT5mb3JtX3B0ci0+c2V0RmluaXNoZWRGb3JtU21hcnR5KCk7CiAgICAkaGVhZGVyID0gJHRoaXMtPkdldE9wdGlvbignZmlsZV9oZWFkZXInLCcnKTsKICAgIGlmICgkaGVhZGVyID09ICcnKQogICAgICB7CgkkaGVhZGVyID0gJHRoaXMtPmNyZWF0ZVNhbXBsZUhlYWRlcigpOwogICAgICB9IAogICAgJGhlYWRlciAuPSAiXG4iOwoKICAgICR0ZW1wbGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpbGVfdGVtcGxhdGUnLCcnKTsKICAgIGlmICgkdGVtcGxhdGUgPT0gJycpCiAgICAgIHsKCSR0ZW1wbGF0ZSA9ICR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgpOwogICAgICB9CgogICAgLy8gQmVnaW4gb3V0cHV0IHRvIGZpbGVzCiAgICBpZiggaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSApCiAgICAgIHsKCWZvcmVhY2goICR0aGlzLT5WYWx1ZSBhcyAkaWR4ICkKCSAgewoJICAgIC8vIEkgZHVubm8gd2h5IGl0J3MgZW1wdHkgc29tZXRpbWVzLCBidXQuLi4KCSAgICBpZiggZW1wdHkoJGlkeCkgKSBjb250aW51ZTsKCSAgICAKCSAgICAkaWR4LS07CgkgICAgCgkgICAgLy8gZ2V0IHRoZSBmaWxlbmFtZQoJICAgICRmaWxlc3BlYyA9ICRkaXIuCgkgICAgICBwcmVnX3JlcGxhY2UoIi9bXlx3XGRcLl18XC5cLi8iLCAiXyIsIAoJCQkgICAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnZGVzdGluYXRpb25fZmlsZW5hbWUnLCRpZHgpKTsKCSAgICAKCSAgICAkbGluZSA9ICR0ZW1wbGF0ZTsKCSAgICBpZiAoISBmaWxlX2V4aXN0cygkZmlsZXNwZWMpKQoJICAgICAgewoJCSRsaW5lID0gJGhlYWRlci4kdGVtcGxhdGU7CgkgICAgICB9CgkgICAgCgkgICAgJG5ld2xpbmUgPSAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSggJGxpbmUgKTsKCSAgICBpZiAoc3Vic3RyKCRuZXdsaW5lLC0xLDEpICE9ICJcbiIpCgkgICAgICB7CgkJJG5ld2xpbmUgLj0gIlxuIjsKCSAgICAgIH0JCgkgICAgCgkgICAgJGYyID0gZm9wZW4oJGZpbGVzcGVjLCJhIik7CgkgICAgZndyaXRlKCRmMiwkbmV3bGluZSk7CgkgICAgZmNsb3NlKCRmMik7IAoJICAgIAoJICB9IC8vIGZvcmVhY2gKICAgICAgfSAvLyBpZgogICAgJG1vZC0+UmV0dXJuRmlsZUxvY2soKTsKICAgIHJldHVybiBhcnJheSh0cnVlLCcnKTsgICAgICAgIAogIH0KCiAgZnVuY3Rpb24gTWFrZVZhcigkc3RyaW5nKQogIHsKICAgICRtYXh2YXJsZW4gPSAyNDsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xzKy8nLCdfJywkc3RyaW5nKSk7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCdfJywkc3RyaW5nKSk7CiAgICBpZiAoc3RybGVuKCRzdHJpbmcpID4gJG1heHZhcmxlbikKICAgICAgewoJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJG1heHZhcmxlbik7CgkkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CglpZiAoJHBvcyAhPT0gZmFsc2UpCgkgIHsKCSAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHN0cmluZzsKICB9CgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCiAgICAkdGhpcy0+Y291bnRGaWxlcygpOwogICAgaWYoICR0aGlzLT5maWxlQWRkID4gMCApCiAgICAgIHsKCSR0aGlzLT5maWxlQ291bnQgKz0gJHRoaXMtPmZpbGVBZGQ7CgkkdGhpcy0+ZmlsZUFkZCA9IDA7CiAgICAgIH0KCiAgICAkZGVzdHMgPSAnPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPjx0cj48dGg+Jy4kbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJykuJzwvdGg+PHRoPicuCiAgICAgICRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5maWxlQ291bnQ+MT8kdGhpcy0+ZmlsZUNvdW50OjEpOyRpKyspCiAgICAgIHsKCSRkZXN0cyAuPSAgJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2Rpc3BsYXluYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9kaXNwbGF5bmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVzdGluYXRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2Rlc3RpbmF0aW9uX3ZhbHVlJywkaSksMjUsMTI4KS4nPC90ZD48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2Rlc3RpbmF0aW9uX2ZpbGVuYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdkZXN0aW5hdGlvbl9maWxlbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkZGVzdHMgLj0gJzwvdGFibGU+JzsKCgogICAgJG1haW4gPSBhcnJheSgpOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICAkcGFybU1haW4gPSBhcnJheSgpOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV90ZW1wbGF0ZSddWydpc19vbmVsaW5lJ109dHJ1ZTsKICAgICRwYXJtTWFpblsnb3B0X2ZpbGVfaGVhZGVyJ11bJ2lzX29uZWxpbmUnXT10cnVlOwogICAgJHBhcm1NYWluWydvcHRfZmlsZV9oZWFkZXInXVsnaXNfaGVhZGVyJ109dHJ1ZTsKICAgIGFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCSAgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgJ2ZicnBfb3B0X3NlbGVjdF9vbmUnLAoJICAgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSkpOwogICAgYXJyYXlfcHVzaCgkbWFpbixhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJyksJGRlc3RzKSk7CgogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfcGF0aCcpLAoJCQkgICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSdmYnJwX29wdF9maWxlX3BhdGgnLAoJCQkJCQkkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3BhdGgnLCR0aGlzLT5kZmx0X2ZpbGVwYXRoKSw0MCwxMjgpKSk7CiAgICBhcnJheV9wdXNoKCRhZHYsYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmlsZV90ZW1wbGF0ZScpLAoJCQkgIGFycmF5KCRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+R2V0T3B0aW9uKCdmaWxlX3RlbXBsYXRlJywnJykpLCdmYnJwX29wdF9maWxlX3RlbXBsYXRlJywgJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywgJycsJycsMCwwKSwkdGhpcy0+Zm9ybV9wdHItPkFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkcGFybU1haW4pKSkpOwogICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpbGVfaGVhZGVyJyksCgkJCSAgJG1vZC0+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+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpCgkJCXsKCQkJJHNvcnRlZFsnICcuJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpXT0nJzsKCQkJfQoJCWVsc2UKCQkJewoJCQkkc29ydGVkWycgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyldPScnOwoJCQl9CgkJJHN1YmplY3RzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2Rlc3RpbmF0aW9uX3N1YmplY3QnKTsKCgkJaWYgKGNvdW50KCRzdWJqZWN0cykgPiAxKQoJCQl7CgkJCWZvcigkaT0wOyRpPGNvdW50KCRzdWJqZWN0cyk7JGkrKykKCQkJCXsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkc29ydGVkLCAtMSwgJHRoaXMtPlZhbHVlLCAkanMpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+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+RGlzcG9zaXRpb25QZXJtaXR0ZWQgPSAkcGVybWl0dGVkOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIGlmIHlvdSBuZWVkIHRvIGRvIHNvbWV0aGluZyBhZnRlciB0aGUgZm9ybSBoYXMgYmVlbiBkaXNwb3NlZAogIGZ1bmN0aW9uIFBvc3REaXNwb3NpdGlvbkFjdGlvbigpCiAgewoJcmV0dXJuOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUgaWYgeW91J3JlIGp1c3QgdHdlYWtpbmcgb3RoZXIgZmllbGRzIGJlZm9yZSBkaXNwb3NpdGlvbgogIGZ1bmN0aW9uIE1vZGlmeU90aGVyRmllbGRzKCkKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZSB3aXRoIGEgZm9ybSBpbnB1dCBzdHJpbmcgb3Igc29tZXRoaW5nCiAgLy8gdGhpcyBzaG91bGQganVzdCBiZSB0aGUgaW5wdXQgcG9ydGlvbi4gVGhlIHRpdGxlCiAgLy8gYW5kIGFueSB3cmFwcGluZyBkaXZzIHdpbGwgYmUgcHJvdmlkZWQgYnkgdGhlIGZvcm0KICAvLyByZW5kZXJlci4KICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICByZXR1cm4gJyc7CiAgfQoJCiAgLy8gb3ZlcnJpZGUgbWUgd2l0aCBzb21ldGhpbmcgdG8gc2hvdyB1c2VycwogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIERlYnVnRGlzcGxheSgpCiAgewogICAgJHRtcCA9ICR0aGlzLT5mb3JtX3B0cjsKICAgICR0aGlzLT5mb3JtX3B0ciA9ICdbZnJtcHRyOiAnLiR0bXAtPkdldElkKCkuJ10nOwogICAgZGVidWdfZGlzcGxheSgkdGhpcyk7CiAgICAkdGhpcy0+Zm9ybV9wdHIgPSAkdG1wOwogIH0KCiAgZnVuY3Rpb24gR2V0SWQoKQogIHsKICAgIHJldHVybiAkdGhpcy0+SWQ7CiAgfQoKICBmdW5jdGlvbiBIYXNBZGRPcCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNBZGRPcDsKICB9CgogIC8vIG92ZXJyaWRlIG1lLCB3aGVuIG5lY2Vzc2FyeSBvciB1c2VmdWwKICBmdW5jdGlvbiBEb09wdGlvbkFkZCgmJHBhcmFtcykKICB7CiAgfQoKICAvLyBvdmVycmlkZSBtZQogIGZ1bmN0aW9uIEdldE9wdGlvbkFkZEJ1dHRvbigpCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHJldHVybiAkbW9kLT5MYW5nKCdhZGRfb3B0aW9ucycpOwogIH0KCQogIGZ1bmN0aW9uIEhhc0RlbGV0ZU9wKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkhhc0RlbGV0ZU9wOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIHdoZW4gbmVjZXNzYXJ5IG9yIHVzZWZ1bAogIGZ1bmN0aW9uIERvT3B0aW9uRGVsZXRlKCYkcGFyYW1zKQogIHsKICB9CgogIC8vIG92ZXJyaWRlIG1lCiAgZnVuY3Rpb24gR2V0T3B0aW9uRGVsZXRlQnV0dG9uKCkKICB7CiAgICAkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7CiAgfQoKICBmdW5jdGlvbiBTZXROYW1lKCRuYW1lKQogIHsKICAJJHRoaXMtPk5hbWUgPSAkbmFtZTsKICB9CiAgCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5OYW1lOwogIH0KCiAgZnVuY3Rpb24gR2V0QWxpYXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwogIH0KCiAgZnVuY3Rpb24gU2V0QWxpYXMoJGFsaWFzKQogIHsKICAgICR0aGlzLT5TZXRPcHRpb24oJ2ZpZWxkX2FsaWFzJywkYWxpYXMpOwogIH0KCgogIGZ1bmN0aW9uIFNldFNtYXJ0eUV2YWwoJGJvb2wpCiAgewogIAkkdGhpcy0+U21hcnR5RXZhbCA9ICRib29sOwogIH0KICAKICBmdW5jdGlvbiBHZXRTbWFydHlFdmFsKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlNtYXJ0eUV2YWw7CiAgfQoKICBmdW5jdGlvbiBHZXRPcmRlcigpCiAgewogICAgcmV0dXJuICR0aGlzLT5PcmRlckJ5OwogIH0KCiAgZnVuY3Rpb24gU2V0T3JkZXIoJG9yZGVyKQogIHsKICAgICR0aGlzLT5PcmRlckJ5ID0gJG9yZGVyOwogIH0KCQogIGZ1bmN0aW9uIEdldEZpZWxkVHlwZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0RmllbGRUeXBlKCR0eXBlKQogIHsKICAgIHJldHVybiAkdGhpcy0+VHlwZSA9ICR0eXBlOwogIH0KCgkKICBmdW5jdGlvbiBJc0Rpc3Bvc2l0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPklzRGlzcG9zaXRpb247CiAgfQoKICBmdW5jdGlvbiBIYXNMYWJlbCgpCiAgewogICAgcmV0dXJuICR0aGlzLT5IYXNMYWJlbDsKICB9CgogIGZ1bmN0aW9uIE5lZWRzRGl2KCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5lZWRzRGl2OwogIH0KCgogIGZ1bmN0aW9uIFNldEhpZGVMYWJlbCgkaGlkZSkKICB7CiAgCSR0aGlzLT5IaWRlTGFiZWwgPSAkaGlkZT8xOjA7CiAgfQogIAkKICBmdW5jdGlvbiBIaWRlTGFiZWwoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPkhpZGVMYWJlbD09MT90cnVlOmZhbHNlKTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJbkZvcm0oKQogIHsKICAgIHJldHVybiAkdGhpcy0+RGlzcGxheUluRm9ybTsKICB9CgogIGZ1bmN0aW9uIERpc3BsYXlJblN1Ym1pc3Npb24oKQogIHsKICAgIC8vcmV0dXJuICgkdGhpcy0+RGlzcGxheUluRm9ybSAmJiAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbik7CiAgICByZXR1cm4gJHRoaXMtPkRpc3BsYXlJblN1Ym1pc3Npb247CiAgfQoKCQogIGZ1bmN0aW9uIElzTm9uUmVxdWlyYWJsZUZpZWxkKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZDsKICB9CgogIGZ1bmN0aW9uIElzUmVxdWlyZWQoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlJlcXVpcmVkID09IDE/dHJ1ZTpmYWxzZSk7CiAgfQoKICBmdW5jdGlvbiBTZXRSZXF1aXJlZCgkcmVxdWlyZWQpCiAgewogICAgJHRoaXMtPlJlcXVpcmVkID0gKCRyZXF1aXJlZD8xOjApOwogIH0KCiAgZnVuY3Rpb24gVG9nZ2xlUmVxdWlyZWQoKQogIHsKICAgICR0aGlzLT5SZXF1aXJlZCA9ICgkdGhpcy0+UmVxdWlyZWQ/MDoxKTsKICB9CgoKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uVHlwZXMoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsaWRhdGlvblR5cGVzOwogIH0KCQogIGZ1bmN0aW9uIEdldFZhbGlkYXRpb25UeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPlZhbGlkYXRpb25UeXBlOwogIH0KCiAgZnVuY3Rpb24gU2V0VmFsaWRhdGlvblR5cGUoJHRoZVR5cGUpCiAgewogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlID0gJHRoZVR5cGU7CiAgfQoKICBmdW5jdGlvbiBJc1ZhbGlkKCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGVkOwogIH0KICAKICBmdW5jdGlvbiBHZXRWYWxpZGF0aW9uRXJyb3JUZXh0KCkKICB7CiAgCXJldHVybiAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dDsKICB9CgoKICAvLyBvdmVycmlkZSBtZSB3aXRoIGEgZGlzcGxheWFibGUgdHlwZQogIGZ1bmN0aW9uIEdldERpc3BsYXlUeXBlKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyLT5MYW5nKCdmaWVsZF90eXBlXycuJHRoaXMtPlR5cGUpOwogIH0KCgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQmFzZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IsJGRpc3Bvc2VPbmx5PTApCiAgewogICAgJG1vZCA9ICR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+VHlwZSA9PSAnJykKICAgICAgewoJaWYgKCRkaXNwb3NlT25seSA9PSAxKQoJICB7CgkgICAgJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZGlzcF9maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9InRoaXMuZm9ybS5zdWJtaXQoKSInKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHR5cGVJbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJyxhcnJheV9tZXJnZShhcnJheSgkbW9kLT5MYW5nKCdzZWxlY3RfdHlwZScpPT4nJyksJG1vZC0+ZmllbGRfdHlwZXMpLCAtMSwnJywgJ29uY2hhbmdlPSJ0aGlzLmZvcm0uc3VibWl0KCkiJyk7CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdHlwZUlucHV0ID0gJHRoaXMtPkdldERpc3BsYXlUeXBlKCkuJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF90eXBlJywgJHRoaXMtPlR5cGUpOwogICAgICB9CgkJCiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfbmFtZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9maWVsZF9uYW1lJywgJHRoaXMtPkdldE5hbWUoKSwgNTApKSwKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSwkdHlwZUlucHV0KSwKCQkgICk7CgkJCiAgICAkYWR2ID0gYXJyYXkoKTsKCiAgICAvLyBpZiB3ZSBrbm93IG91ciB0eXBlLCB3ZSBjYW4gbG9hZCB1cCB3aXRoIGFkZGl0aW9uYWwgb3B0aW9ucwogICAgaWYgKCR0aGlzLT5UeXBlICE9ICcnKQogICAgICB7CgkJCQoJLy8gdmFsaWRhdGlvbiB0eXBlcz8KCWlmIChjb3VudCgkdGhpcy0+R2V0VmFsaWRhdGlvblR5cGVzKCkpID4gMSkKCSAgewoJICAgICR2YWxpZElucHV0ID0gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsICdmYnJwX3ZhbGlkYXRpb25fdHlwZScsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZXMoKSwgLTEsICR0aGlzLT5HZXRWYWxpZGF0aW9uVHlwZSgpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJHZhbGlkSW5wdXQgPSAkbW9kLT5MYW5nKCdhdXRvbWF0aWMnKTsKCSAgfQoJCQkJCglpZiAoISR0aGlzLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkbWFpbiwgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfZmllbGRfcmVxdWlyZWQnKSwkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfcmVxdWlyZWQnLCAxLCAkdGhpcy0+SXNSZXF1aXJlZCgpKS4kbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJykpKTsKCSAgfQoJCQkJCglhcnJheV9wdXNoKCRtYWluLCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF92YWxpZGF0aW9uJyksJHZhbGlkSW5wdXQpKTsKCglpZiggJHRoaXMtPkhhc0xhYmVsID09IDEgKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9oaWRlX2xhYmVsJyksJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2hpZGVfbGFiZWwnLCAxLCAkdGhpcy0+SGlkZUxhYmVsKCkpLiRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZycpKSk7CgkgIH0KCgkkYWxpYXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF9hbGlhcycsJycpOwoJaWYgKCRhbGlhcyA9PSAnJykKCQl7CgkJJGFsaWFzID0gJ2ZsZCcuJHRoaXMtPkdldElkKCk7CgkJfQoJYXJyYXlfcHVzaCgkYWR2LCBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9hbGlhcycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9maWVsZF9hbGlhcycsICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX2FsaWFzJyksIDUwKSkpOwkJCQoKCWlmICgkdGhpcy0+RGlzcGxheUluRm9ybSgpKQoJICB7CgkgICAgYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jc3NfY2xhc3MnLCAkdGhpcy0+R2V0T3B0aW9uKCdjc3NfY2xhc3MnKSwgNTApKSk7CgkJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnKSwKCQkJJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRmb3JtRGVzY3JpcHRvciwgJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpLAoJCQkJCQkgICAnZmJycF9vcHRfamF2YXNjcmlwdCcsJ21vZHVsZV9mYl9hcmVhX3Nob3J0JykuJzxiciAvPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZycpKSk7CgkgIH0KCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIG5vIGFkdmFuY2VkIG9wdGlvbnMgdW50aWwgd2Uga25vdyBvdXIgdHlwZQoJYXJyYXlfcHVzaCgkYWR2LGFycmF5KCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpLCRtb2QtPkxhbmcoJ25vdGljZV9zZWxlY3RfdHlwZScpKSk7CiAgICAgIH0KCQkJCQogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sICdhZHYnPT4kYWR2KTsKICB9CgkKCQogIC8vIG92ZXJyaWRlIG1lLgogIC8vIEkgcmV0dXJuIGFuIHVnbHkgZGF0YSBzdHJ1Y3R1cmU6CiAgLy8gSXQncyBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHR3byBpdGVtcywgJ21haW4nIGFuZCAnYWR2JyAoZm9yIHRoZQogIC8vIG1haW4gYW5kIGFkdmFuY2VkIHNldHRpbmcgdGFicykuCiAgLy8gRWFjaCBvZiB0aGVzZSBpcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBUaXRsZSAvIElucHV0IHZhbHVlcy4KICAvLyBUaGUgVGl0bGUgd2lsbCBiZSBkaXNwbGF5ZWQgaWYgaXQgaGFzIGEgbGVuZ3RoOwogIC8vIHRoZSAiSW5wdXQiIHNob3VsZCBiZSBhIEZvcm0gaW5wdXQgZm9yIHRoYXQgZmllbGQgYXR0cmlidXRlL29wdGlvbgogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICByZXR1cm4gYXJyYXkoKTsKICB9CgogIC8vIG92ZXJyaWRlIG1lLgogIC8vIFRoaXMgZ2l2ZXMgeW91IGEgY2hhbmNlIHRvIGFsdGVyIHRoZSBhcnJheSBjb250ZW50cyBiZWZvcmUKICAvLyB0aGV5IGdldCByZW5kZXJlZC4gCiAgZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQogIHsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBhcyBuZWNlc3NhcnkKICBmdW5jdGlvbiBQb3N0QWRtaW5TdWJtaXRDbGVhbnVwKCkKICB7CiAgfQoKICAvLyBjbGVhciBmaWVsZHMgdW51c2VkIGJ5IGludmlzaWJsZSBkaXNwb3NpdGlvbnMKICBmdW5jdGlvbiBIaWRkZW5EaXNwb3NpdGlvbkZpZWxkcygmJG1haW5BcnJheSwgJiRhZHZBcnJheSwgJGhpZGVSZXE9dHJ1ZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIGlmICgkaGlkZVJlcSkKICAgIAl7CiAgICAJLy8gcmVtb3ZlIHRoZSAicmVxdWlyZWQiIGZpZWxkCiAgICAJJHJlcUluZGV4ID0gLTE7CiAgICAJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCiAgICAgIAkJewoJCQlpZiAoJG1haW5BcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJykpCgkgIAkJCXsKCSAgICAJCSRyZXFJbmRleCA9ICRpOwoJICAJCQl9CiAgICAgIAkJfQogICAgCWlmICgkcmVxSW5kZXggIT0gLTEpCiAgICAgIAkJewoJCQlhcnJheV9zcGxpY2UoJG1haW5BcnJheSwgJHJlcUluZGV4LDEpOwogICAgICAJCX0KICAgICAJfQogICAgLy8gcmVtb3ZlIHRoZSAiaGlkZSBuYW1lIiBmaWVsZAogICAgJGhpZGVJbmRleCA9IC0xOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKICAgICAgewoJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2hpZGVfbGFiZWwnKSkKCSAgewoJICAgICRoaWRlSW5kZXggPSAkaTsKCSAgfQogICAgICB9CiAgICBpZiAoJGhpZGVJbmRleCAhPSAtMSkKICAgICAgewoJYXJyYXlfc3BsaWNlKCRhZHZBcnJheSwgJGhpZGVJbmRleCwxKTsKICAgICAgfQogICAgLy8gcmVtb3ZlIHRoZSAiY3NzIiBmaWVsZAogICAgJGhpZGVJbmRleCA9IC0xOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKICAgICAgewoJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcycpKQoJICB7CgkgICAgJGhpZGVJbmRleCA9ICRpOwoJICB9CiAgICAgIH0KICAgIGlmICgkaGlkZUluZGV4ICE9IC0xKQogICAgICB7CglhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwogICAgICB9CiAgICBpZiAoY291bnQoJGFkdkFycmF5KSA9PSAwKQogICAgICB7CgkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkkYWR2QXJyYXlbMF0tPmlucHV0ID0gJG1vZC0+TGFuZygndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucycpOwogICAgICB9CiAgfQoJCgogIC8vIG92ZXJyaWRlIG1lLiBSZXR1cm5zIGFuIGFycmF5OiBmaXJzdCB2YWx1ZSBpcyBhIHRydWUgb3IgZmFsc2UgKHdoZXRoZXIgb3Igbm90CiAgLy8gdGhlIHZhbHVlIGlzIHZhbGlkKSwgdGhlIHNlY29uZCBpcyBhIG1lc3NhZ2UKICBmdW5jdGlvbiBWYWxpZGF0ZSgpCiAgewogIAkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKICAJJHRoaXMtPnZhbGlkYXRlZEVycm9yVGV4dCA9ICcnOwogICAgcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0ZWRFcnJvclRleHQpOwogIH0KCgogIC8vIG92ZXJyaWRlIG1lIQogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKICAgICAgewoJCSRyZXQgPSAkdGhpcy0+VmFsdWU7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJICAkcmV0ID0gJHRoaXMtPmZvcm1fcHRyLT5HZXRBdHRyKCd1bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkgIH0KCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gJHJldDsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9CiAgfQoKCiAgLy8gb3ZlcnJpZGUgdGhpcyBpZiB5b3UgaGF2ZSBzb21lIHVudXN1YWwgZm9ybWF0IGZvciB2YWx1ZXMsCiAgLy8gZXNwZWNpYWxseSBpZiAiZmFsc2UiIGlzIGEgdmFsaWQgdmFsdWUhCiAgZnVuY3Rpb24gSGFzVmFsdWUoKQogIHsKICAgIHJldHVybiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSk7CiAgfQoJCiAgLy8gcHJvYmFibHkgZG9uJ3QgbmVlZCB0byBvdmVycmlkZSB0aGlzCiAgZnVuY3Rpb24gR2V0VmFsdWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+VmFsdWU7CiAgfQoKICAvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0aGUgKHBvc3NpYmx5IGNvbnZlcnRlZCkgdmFsdWUgb2YgdGhlIGZpZWxkLgogIGZ1bmN0aW9uIEdldEFycmF5VmFsdWUoJGluZGV4KQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgIGlmIChpc3NldCgkdGhpcy0+VmFsdWVbJGluZGV4XSkpCgkgICAgICB7CgkJcmV0dXJuICR0aGlzLT5WYWx1ZVskaW5kZXhdOwoJICAgICAgfQoJICB9CgllbHNlaWYgKCRpbmRleCA9PSAwKQoJICB7CgkgICAgcmV0dXJuICR0aGlzLT5WYWx1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvLyBvdmVycmlkZSBtZT8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBjb250YWluZWQgaW4gdGhlIFZhbHVlIGFycmF5CiAgZnVuY3Rpb24gRmluZEFycmF5VmFsdWUoJHZhbHVlKQogIHsKICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlKQogICAgICB7CglpZiAoaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgIHJldHVybiBhcnJheV9zZWFyY2goJHZhbHVlLCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWVsc2VpZiAoJHRoaXMtPlZhbHVlID09ICR2YWx1ZSkKCSAgewoJICAgIHJldHVybiB0cnVlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9CgogIGZ1bmN0aW9uIFJlc2V0VmFsdWUoKQogIHsKICAgICR0aGlzLT5WYWx1ZSA9IGZhbHNlOwogIH0KCiAgLy8gb3ZlcnJpZGUgbWUsIGlmIG5lY2Vzc2FyeSB0byBjb252ZXJ0IHR5cGUgb3Igc29tZXRoaW5nLgogIGZ1bmN0aW9uIFNldFZhbHVlKCR2YWxTdHIpCiAgewogICAgJGZtID0gJiR0aGlzLT5mb3JtX3B0cjsKICAgIGlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlKQogICAgICB7CiAgICAgIGlmIChpc19hcnJheSgkdmFsU3RyKSkKICAgICAgICAgewogICAgICAgICAkdGhpcy0+VmFsdWUgPSAkdmFsU3RyOwogICAgICAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPlZhbHVlKTskaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlICggJHRoaXMtPlZhbHVlWyRpXSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZVskaV0gPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR0aGlzLT5WYWx1ZVskaV0pOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgd2hpbGUgKCR0aGlzLT5WYWx1ZSAhPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpKQogICAgICAgICAgICB7CgkgICAgICAgICAkdGhpcy0+VmFsdWUgPSAkZm0tPnVubXlfaHRtbGVudGl0aWVzKCR2YWxTdHIpOwoJICAgICAgICAgfQoJICAgICAgfQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAgd2hpbGUgKCR2YWxTdHIgIT0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKSkKICAgICAgICAgewogICAgICAgICAkdmFsU3RyID0gJGZtLT51bm15X2h0bWxlbnRpdGllcygkdmFsU3RyKTsKICAgICAgICAgfQoJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgewoJICAgICR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkgIH0KCWFycmF5X3B1c2goJHRoaXMtPlZhbHVlLCR2YWxTdHIpOwogICAgICB9CiAgfQoKICAvLyBvdmVycmlkZSBtZSwgYXMgbmVjZXNzYXJ5CiAgZnVuY3Rpb24gQ29tcGFyZVRvKCR2YWwpCiAgewogICAgcmV0dXJuIHN0cmNtcCgkdmFsLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKSwgJHRoaXMtPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpKTsKICB9CgogIGZ1bmN0aW9uIFJlcXVpcmVzVmFsaWRhdGlvbigpCiAgewogICAgaWYgKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9PSAnbm9uZScpCiAgICAgIHsKCXJldHVybiBmYWxzZTsKICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gdHJ1ZTsKICAgICAgfQogIH0KCiAgZnVuY3Rpb24gRG9lc0ZpZWxkTmFtZUV4aXN0KCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkKICAgIC8vIGZpZWxkIG5hbWUgaW4gdXNlPz8KICAgIGlmICgkbW9kLT5HZXRQcmVmZXJlbmNlKCd1bmlxdWVfZmllbGRuYW1lcycsJzEnKSA9PSAnMScgJiYKICAgIAkkdGhpcy0+Zm9ybV9wdHItPkhhc0ZpZWxkTmFtZWQoJHRoaXMtPkdldE5hbWUoKSkgIT0gJHRoaXMtPklkKQogICAgICB7CgkJcmV0dXJuIGFycmF5KGZhbHNlLCRtb2QtPkxhbmcoJ2ZpZWxkX25hbWVfaW5fdXNlJywkdGhpcy0+R2V0TmFtZSgpKS4KCQknPGJyIC8+Jyk7CiAgICAgIH0JCQogICAgcmV0dXJuIGFycmF5KHRydWUsJycpOwogIH0KCgogICBmdW5jdGlvbiBEb2VzRmllbGRIYXZlTmFtZSgpCiAgIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogIAlpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVxdWlyZV9maWVsZG5hbWVzJywnMScpID09ICcxJyAmJgogIAkJc3RybGVuKCR0aGlzLT5HZXROYW1lKCkpIDwgMSkKICAJCXsKICAJCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygnZmllbGRfbm9fbmFtZScpLic8YnIgLz4nKTsKICAJCX0KCXJldHVybiBhcnJheSh0cnVlLCcnKTsgICAKICAgfQoKICAvLyBvdmVycmlkZSBtZSwgaWYgbmVlZGVkLiBSZXR1cm5zIGFuIGFycmF5OiBmaXJzdCB2YWx1ZSBpcyBhIHRydWUgb3IKICAvLyBmYWxzZSAod2hldGhlciBvciBub3QgdGhlIHZhbHVlIGlzIHZhbGlkKSwgdGhlIHNlY29uZCBpcyBhIG1lc3NhZ2UKICBmdW5jdGlvbiBBZG1pblZhbGlkYXRlKCkKICB7CiAgCWxpc3QoJHJldCwgJG1lc3NhZ2UpID0gJHRoaXMtPkRvZXNGaWVsZEhhdmVOYW1lKCk7CglpZiAoJHJldCkKCQl7CgkJbGlzdCgkcmV0LCAkbWVzc2FnZSkgPSAkdGhpcy0+RG9lc0ZpZWxkTmFtZUV4aXN0KCk7CgkJfQoJcmV0dXJuIGFycmF5KCRyZXQsICRtZXNzYWdlKTsKICB9CgoKICAvLyBvdmVycmlkZSBtZSBpZiB5b3UncmUgYSBGb3JtIERpc3Bvc2l0aW9uIHBzZXVkby1maWVsZC4KICAvLyBUaGlzIG1ldGhvZCBjYW4gZG8ganVzdAogIC8vIGFib3V0IGFueXRoaW5nIHlvdSB3YW50IGl0IHRvLCBpbiBvcmRlciB0byBoYW5kbGUgZm9ybSBjb250ZW50cy4KICAvLyBpdCByZXR1cm5zIGFuIGFycmF5LCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVudCBpcyB0cnVlIG9uIHN1Y2Nlc3MsCiAgLy8gb3IgZmFsc2Ugb24gZmFpbHVyZSwgYW5kIHRoZSBzZWNvbmQgZWxlbWVudCBpcyBleHBsYW5hdG9yeQogIC8vIHRleHQgZm9yIHRoZSBmYWlsdXJlCiAgZnVuY3Rpb24gRGlzcG9zZUZvcm0oKQogIHsKICAgIHJldHVybiBhcnJheSh0cnVlLCAnJyk7CiAgfQkKCiAgZnVuY3Rpb24gRXhwb3J0WE1MKCRleHBvcnRWYWx1ZXMgPSBmYWxzZSkKICB7CgkkeG1sc3RyID0gIlx0PGZpZWxkIGlkPVwiIi4kdGhpcy0+SWQuIlwiXG4iOwoJJHhtbHN0ciAuPSAiXHRcdHR5cGU9XCIiLiR0aGlzLT5UeXBlLiJcIlxuIjsKCS8vJHhtbHN0ciAuPSAiXHRcdG5hbWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPk5hbWUpLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHR2YWxpZGF0aW9uX3R5cGU9XCIiLiR0aGlzLT5WYWxpZGF0aW9uVHlwZS4iXCJcbiI7CgkkeG1sc3RyIC49ICJcdFx0b3JkZXJfYnk9XCIiLiR0aGlzLT5PcmRlckJ5LiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRyZXF1aXJlZD1cIiIuJHRoaXMtPlJlcXVpcmVkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRoaWRlX2xhYmVsPVwiIi4kdGhpcy0+SGlkZUxhYmVsLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0XHRhbGlhcz1cIiIuJHRoaXMtPkdldE9wdGlvbignZmllbGRfYWxpYXMnLCcnKS4iXCI+XG4iOwoJJHhtbHN0ciAuPSAiXHRcdFx0PGZpZWxkX25hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+TmFtZS4iXV0+PC9maWVsZF9uYW1lPlxuIjsKCSR4bWxzdHIgLj0gJHRoaXMtPk9wdGlvbnNBc1hNTCgpOwoJaWYgKCRleHBvcnRWYWx1ZXMpCgkJewoJCQkkeG1sc3RyIC49ICJcdFx0XHQ8aHVtYW5fcmVhZGJsZV92YWx1ZT48IVtDREFUQVsiLiR0aGlzLT5HZXRIdW1hblJlYWRhYmxlVmFsdWUoKS4iXV0+PC9odW1hbl9yZWFkYmxlX3ZhbHVlPlxuIjsKCQl9CgoJJHhtbHN0ciAuPSAiPC9maWVsZD5cbiI7CglyZXR1cm4gJHhtbHN0cjsKICB9CgoKCS8vIG92ZXJyaWRlIGFzIG5lY2Vzc2FyeQogICBmdW5jdGlvbiBPcHRpb25Gcm9tWE1MKCR0aGVBcnJheSkKCXsKCQlpZiAoJHRoZUFycmF5WyduYW1lJ10gIT0gJ29wdGlvbicpCgkJCXsKCQkJcmV0dXJuOwoJCQl9CgkJaWYgKCEgaXNzZXQoJHRoaXMtPk9wdGlvbnMpKQoJCQl7CgkJCSR0aGlzLT5PcHRpb25zID0gYXJyYXkoKTsJCgkJCX0KCQlpZiAoaXNzZXQoJHRoaXMtPk9wdGlvbnNbJHRoZUFycmF5WydhdHRyaWJ1dGVzJ11bJ25hbWUnXV0pKQoJCQl7CgkJCWlmICghIGlzX2FycmF5KCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dKSkKCQkJCXsKCQkJCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dID0gYXJyYXkoJHRoaXMtPk9wdGlvbnNbJHRoZUFycmF5WydhdHRyaWJ1dGVzJ11bJ25hbWUnXV0pOwoJCQkJfQoJCQlhcnJheV9wdXNoKCR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dLCAkdGhlQXJyYXlbJ2NvbnRlbnQnXSk7CgkJCX0KCQllbHNlCgkJCXsKCS8vCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnbmFtZSddXSA9ICR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ107CgkJCSR0aGlzLT5PcHRpb25zWyR0aGVBcnJheVsnYXR0cmlidXRlcyddWyduYW1lJ11dID0gJHRoZUFycmF5Wydjb250ZW50J107CgkJCX0KCX0KCiAgIC8vIG92ZXJyaWRlIGFzIG5lY2Vzc2FyeQogICBmdW5jdGlvbiBPcHRpb25zQXNYTUwoKQoJewoJCSR4bWxzdHIgPSAiIjsKCQlmb3JlYWNoKCR0aGlzLT5PcHRpb25zIGFzICRuYW1lPT4kdmFsdWUpCgkJCXsKCQkJaWYgKCEgaXNfYXJyYXkoJHZhbHVlKSkKCQkJCXsKCQkJCSR2YWx1ZSA9IGFycmF5KCR2YWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR2YWx1ZSBhcyAkdGhpc1ZhbCkKCQkJCXsKCQkJCSR4bWxzdHIgLj0gIlx0XHRcdDxvcHRpb24gbmFtZT1cIiRuYW1lXCI+PCFbQ0RBVEFbJHRoaXNWYWxdXT48L29wdGlvbj5cbiI7CgkJCQl9CgkJCX0KCQlpZiAoaXNzZXQoJHRoaXMtPlZhbHVlKSkKCQkJewoJCQlpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQkJewoJCQkJJHRoaXNWYWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwkKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHRoaXNWYWwgPSAmJHRoaXMtPlZhbHVlOwoJCQkJfQoJCQlmb3JlYWNoICgkdGhpc1ZhbCBhcyAkdGhpc1ZhbE91dCkKCQkJCXsKCQkJCSR4bWxzdHIgLj0gIlx0XHRcdDx2YWx1ZT4kdGhpc1ZhbE91dDwvdmFsdWU+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+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAiamF2YXNjcmlwdCIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKQoJCQkJewoJCQkJJGhpZGVJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRoaWRlSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRhZHZBcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCWlmIChjb3VudCgkYWR2QXJyYXkpID09IDApCgkJCXsKCQkJJGFkdkFycmF5WzBdLT50aXRsZSA9ICRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpOwoJCQkkYWR2QXJyYXlbMF0tPmlucHV0ID0gJG1vZC0+TGFuZygndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucycpOwoJCQl9Cgl9CgoKfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FieldsetStart.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZpZWxkc2V0U3RhcnQgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgogIGZ1bmN0aW9uIGZiRmllbGRzZXRTdGFydCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnRmllbGRzZXRTdGFydCc7CiAgICAkdGhpcy0+RGlzcGxheUluRm9ybSA9IHRydWU7CiAgICAkdGhpcy0+RGlzcGxheUluU3VibWlzc2lvbiA9IGZhbHNlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IHRydWU7CiAgICAkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoKTsgICAgCiAgICAkdGhpcy0+SGFzTGFiZWwgPSAwOwogICAgJHRoaXMtPk5lZWRzRGl2ID0gMDsKICAgICR0aGlzLT5zb3J0YWJsZSA9IGZhbHNlOwogIH0KCiAgZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCiAgewoJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwogICAgJHN0ciA9ICc8ZmllbGRzZXQnOwogICAgJGNsYXNzID0gJHRoaXMtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7CiAgICAkbGVnZW5kID0gJHRoaXMtPkdldE9wdGlvbignbGVnZW5kJyk7CiAgICBpZiggJGNsYXNzICE9ICcnICkKICAgICAgewoJJHN0ciAuPSAiIGNsYXNzPVwiJGNsYXNzXCIiOwogICAgICB9CiAgICBpZiAoJGpzICE9ICcnKQoJCXsKCQkkc3RyIC49ICcgJy4kanM7CgkJfQogICAgJHN0ciAuPSAnPic7CiAgICBpZiggJGxlZ2VuZCAhPSAnJyApCiAgICAgIHsKCSRzdHIgLj0gJzxsZWdlbmQ+Jy4kbGVnZW5kLic8L2xlZ2VuZD4nOwogICAgICB9CiAgICByZXR1cm4gJHN0cjsKICB9CgogIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQogIHsKICAgIHJldHVybiAnJzsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgLy8gdGhlcmUncyBub3RoaW5nIGh1bWFuIHJlYWRhYmxlIGFib3V0IGEgZmllbGRzZXQuCiAgICAkcmV0ID0gJ1tCZWdpbiBGaWVsZHNldDogJy4kdGhpcy0+VmFsdWUuJ10nOwoJaWYgKCRhc19zdHJpbmcpCgkJewoJCXJldHVybiAkcmV0OwoJCX0KCWVsc2UKCQl7CgkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCX0KICB9CgkKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkbWFpbiA9IGFycmF5KAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbGVnZW5kJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfbGVnZW5kJywKCQkJCQkgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZWdlbmQnLCcnKSwgNTApKSk7CiAgICAkYWR2ID0gYXJyYXkoKTsKICAgIHJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKICB9Cgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/FileUploadField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8gRmVlZGJhY2sgRm9ybS4gMDIvMjAwNSBTakcgPGZlZWRiYWNrZm9ybV9jbXNtb2R1bGVAZm9nYm91bmQubmV0PgovLyBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCAoYykyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKLy8gVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKCmNsYXNzIGZiRmlsZVVwbG9hZEZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKICBmdW5jdGlvbiBmYkZpbGVVcGxvYWQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCiAgewogICAgJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CiAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5UeXBlID0gJ0ZpbGVVcGxvYWQnOwogICAgLy8gICAgJHRoaXMtPkRpc3BsYXlUeXBlID0gJG1vZC0+TGFuZygnZmllbGRfdHlwZV9maWxlX3VwbG9hZCcpOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAoJCQkJICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJyk7CgkgJHRoaXMtPnNvcnRhYmxlID0gZmFsc2U7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKICAgICR0eHQgPSAkbW9kLT5DcmVhdGVGaWxlVXBsb2FkSW5wdXQoJGlkLCdmYnJwX18nLiR0aGlzLT5JZCwnIGlkPSInLiRpZC4nZmJycF9fJy4kdGhpcy0+SWQuJyIgJy4kanMpOwoJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfZGV0YWlscycsJzAnKSA9PSAnMScpCgkJewoJCSAkbXMgPSAkdGhpcy0+R2V0T3B0aW9uKCdtYXhfc2l6ZScpOwoJCSBpZiAoJG1zICE9ICcnKQoJCQl7CgkJCSR0eHQgLj0gJyAnLiRtb2QtPkxhbmcoJ21heGltdW1fc2l6ZScpLic6ICcuJG1zLidrYic7CQoJCQl9CgkJICRleHRzID0gJHRoaXMtPkdldE9wdGlvbigncGVybWl0dGVkX2V4dGVuc2lvbnMnKTsKCQkgaWYgKCRleHRzICE9ICcnKQoJCQl7CgkgICAgCSR0eHQgLj0gJyAnLiRtb2QtPkxhbmcoJ3Blcm1pdHRlZF9leHRlbnNpb25zJykgLiAnOiAnLiRleHRzOwoJCQl9CgkJfQogICAgcmV0dXJuICR0eHQ7CiAgfQoKICBmdW5jdGlvbiBMb2FkKCRpZCwgJiRwYXJhbXMsICRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgIHBhcmVudDo6TG9hZCgkaWQsJHBhcmFtcywkbG9hZERlZXApOwogICAgaWYoIGlzc2V0KCAkX0ZJTEVTICkgJiYgaXNzZXQoICRfRklMRVNbJG1vZC0+bW9kdWxlX2lkLidmYnJwX18nLiR0aGlzLT5JZF0gKSAmJgogICAgICAkX0ZJTEVTWyRtb2QtPm1vZHVsZV9pZC4nZmJycF9fJy4kdGhpcy0+SWRdWydzaXplJ10gPiAwICkKICAgICAgewoJCS8vIE9rYXksIGEgZmlsZSB3YXMgdXBsb2FkZWQKCQkkdGhpcy0+U2V0VmFsdWUoJG1vZC0+bW9kdWxlX2lkLidmYnJwX18nLiR0aGlzLT5JZCk7CiAgICAgIH0KICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkgICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCRhc19zdHJpbmcgJiYgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSAmJiBpc3NldCgkdGhpcy0+VmFsdWVbMV0pKQoJCQl7CgkJCXJldHVybiAkdGhpcy0+VmFsdWVbMV07CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuICR0aGlzLT5WYWx1ZTsKCQkJfQoJfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkcmV0ID0gJyc7CiAgICAkcmV0IC49ICRtb2QtPkxhbmcoJ21heGltdW1fc2l6ZScpLic6ICcuJG1zLidrYic7CiAgICAkcmV0IC49ICcsICc7CiAgICAkcmV0IC49ICRtb2QtPkxhbmcoJ3Blcm1pdHRlZF9leHRlbnNpb25zJykgLiAnOiAnLiRleHRzOwogICAgcmV0dXJuICRyZXQ7CiAgfQogIAogIAogIGZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRtcyA9ICR0aGlzLT5HZXRPcHRpb24oJ21heF9zaXplJyk7CiAgICAkZXh0cyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Blcm1pdHRlZF9leHRlbnNpb25zJyk7CiAgICAkc2hvdyA9ICR0aGlzLT5HZXRPcHRpb24oJ3Nob3dfZGV0YWlscycsJzAnKTsKICAgICRzZW5kdG9fdXBsb2FkcyA9ICR0aGlzLT5HZXRPcHRpb24oJ3NlbmR0b191cGxvYWRzJywnZmFsc2UnKTsKICAgICR1cGxvYWRzX2NhdGVnb3J5ID0gJHRoaXMtPkdldE9wdGlvbigndXBsb2Fkc19jYXRlZ29yeScpOwogICAgJHVwbG9hZHNfZGVzdHBhZ2UgPSAkdGhpcy0+R2V0T3B0aW9uKCd1cGxvYWRzX2Rlc3RwYWdlJyk7CgogICAgJG1haW4gPSBhcnJheSgKCQkgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX21heGltdW1fc2l6ZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICAgICAnZmJycF9vcHRfbWF4X3NpemUnLCAkbXMsIDUsIDUpLgoJCQknICcuJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnKSksCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucycpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICAgICAnZmJycF9vcHRfcGVybWl0dGVkX2V4dGVuc2lvbnMnLAoJCQkJCSAgICAgICRleHRzLDI1LDgwKS4nPGJyLz4nLgoJCQkkbW9kLT5MYW5nKCd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJykpLAoJCSAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2hvd19saW1pdGF0aW9ucycpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X3Nob3dfZGV0YWlscycsJzAnKS4KCQkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkgICdmYnJwX29wdF9zaG93X2RldGFpbHMnLCAnMScsICRzaG93KS4KCQkJJyAnLiRtb2QtPkxhbmcoJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZycpKQoJCSApOwoKICAgICR1cGxvYWRzID0mICRtb2QtPkdldE1vZHVsZUluc3RhbmNlKCdVcGxvYWRzJyk7CiAgICAkc2VuZHRvX3VwbG9hZHNfbGlzdCA9IGFycmF5KCRtb2QtPkxhbmcoJ25vJyk9PjAsCgkJCQkgJG1vZC0+TGFuZygneWVzJyk9PjEpOwogICAgaWYoICR1cGxvYWRzICkKICAgICAgewoJCSRjYXRlZ29yeWxpc3QgPSAkdXBsb2Fkcy0+Z2V0Q2F0ZWdvcnlMaXN0KCk7CgkJJGFkdiA9IGFycmF5KAoJCSAgICAgYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VuZHRvX3VwbG9hZHMnKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgJ2ZicnBfb3B0X3NlbmR0b191cGxvYWRzJywkc2VuZHRvX3VwbG9hZHNfbGlzdCwKCQkJCQkJICAgICAkc2VuZHRvX3VwbG9hZHMpKSwKCQkgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknKSwKCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkZm9ybURlc2NyaXB0b3IsCgkJCQkJCSAgICAgJ2ZicnBfb3B0X3VwbG9hZHNfY2F0ZWdvcnknLCRjYXRlZ29yeWxpc3QsCgkJCQkJCSAgICAgJHVwbG9hZHNfY2F0ZWdvcnkpKSwKCQkgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnKSwKCQkJICAgJG1vZC0+Q3JlYXRlUGFnZURyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF91cGxvYWRzX2Rlc3RwYWdlJywkdXBsb2Fkc19kZXN0cGFnZSkpCgkJCQkJCSAgCgkJICAgICApOwogICAgICB9CgllbHNlCgkJewoJCSRhZHYgPSBhcnJheSgpOwoJCWFycmF5X3B1c2goJG1haW4sIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJyksCgkJCSRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfcmVtb3ZlX2ZpbGUnLCcwJykuCgkJCSRtb2QtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGZvcm1EZXNjcmlwdG9yLCAKCQkJCQkgICdmYnJwX29wdF9yZW1vdmVfZmlsZScsICcxJywgCgkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZW1vdmVfZmlsZScsJzAnKSkpKTsKCQl9CgogICAgcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwogIH0KCgogIGZ1bmN0aW9uIFBvc3REaXNwb3NpdGlvbkFjdGlvbigpCiAgewoJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3JlbW92ZV9maWxlJywnMCcpID09ICcxJykKCQl7CgkJaWYgKGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJCXsKCQkJJGRlc3QgPSAkdGhpcy0+VmFsdWVbMF07CQoJCQlpZiAoZmlsZV9leGlzdHMoJGRlc3QpKQoJCQkJewoJCQkJdW5saW5rKCRkZXN0KTsKCQkJCX0KCQkJfQoJCX0KICB9CgogIGZ1bmN0aW9uIFZhbGlkYXRlKCkKICB7CiAgCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwogIAkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwogICAgJG1zID0gJHRoaXMtPkdldE9wdGlvbignbWF4X3NpemUnKTsKICAgICRleHRzID0gJHRoaXMtPkdldE9wdGlvbigncGVybWl0dGVkX2V4dGVuc2lvbnMnKTsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJGZ1bGxBbGlhcyA9ICR0aGlzLT5HZXRWYWx1ZSgpOwogICAgaWYgKCRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA8IDEgJiYgISAkdGhpcy0+UmVxdWlyZWQpCiAgICAgIHsKCXJldHVybiBhcnJheSh0cnVlLCcnKTsKICAgICAgfQogICAgaWYgKCRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA8IDEgJiYgJHRoaXMtPlJlcXVpcmVkICkKICAgICAgewogCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKIAkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnKTsKICAgICAgfQogICAgZWxzZSBpZiAoJG1zICE9ICcnICYmICRfRklMRVNbJGZ1bGxBbGlhc11bJ3NpemUnXSA+ICgkbXMgKiAxMDI0KSkKICAgICAgewoJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdmaWxlX3Rvb19sYXJnZScpLiAnICcuKCRtcyAqIDEwMjQpLidrYic7CgkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgIH0KICAgIGVsc2UgaWYgKCRleHRzKQogICAgICB7CgkkbWF0Y2ggPSBmYWxzZTsKCSRsZWdhbEV4dHMgPSBleHBsb2RlKCcsJywkZXh0cyk7Cglmb3JlYWNoICgkbGVnYWxFeHRzIGFzICR0aGlzRXh0KQoJICB7CgkgICAgaWYgKHByZWdfbWF0Y2goJy9cLicudHJpbSgkdGhpc0V4dCkuJyQvaScsJF9GSUxFU1skZnVsbEFsaWFzXVsnbmFtZSddKSkKCSAgICAgIHsKCQkkbWF0Y2ggPSB0cnVlOwoJICAgICAgfQoJICAgIGVsc2UgaWYgKHByZWdfbWF0Y2goJy8nLnRyaW0oJHRoaXNFeHQpLicvaScsJF9GSUxFU1skZnVsbEFsaWFzXVsndHlwZSddKSkKCSAgICAgIHsKCQkkbWF0Y2ggPSB0cnVlOwoJICAgICAgfQoJICB9CglpZiAoISAkbWF0Y2gpCgkgIHsKCSAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ2lsbGVnYWxfZmlsZV90eXBlJyk7CgkgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwoJICB9CiAgICAgIH0KICAgIHJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7CiAgfQogIAp9Cgo/Pgo=]]></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+dGVtcGxhdGVWYXJpYWJsZXNbJHRoZUtleV0gPSAkZGVmOwogIH0KCiAgZnVuY3Rpb24gTWFrZVZhcigkc3RyaW5nKQogIHsKICAgICRtYXh2YXJsZW4gPSAyNDsKICAgICRzdHJpbmcgPSBzdHJ0b2xvd2VyKHByZWdfcmVwbGFjZSgnL1xzKy8nLCdfJywkc3RyaW5nKSk7CiAgICAkc3RyaW5nID0gc3RydG9sb3dlcihwcmVnX3JlcGxhY2UoJy9cVy8nLCdfJywkc3RyaW5nKSk7CiAgICBpZiAoc3RybGVuKCRzdHJpbmcpID4gJG1heHZhcmxlbikKICAgICAgewoJJHN0cmluZyA9IHN1YnN0cigkc3RyaW5nLDAsJG1heHZhcmxlbik7CgkkcG9zID0gc3RycnBvcygkc3RyaW5nLCdfJyk7CglpZiAoJHBvcyAhPT0gZmFsc2UpCgkgIHsKCSAgICAkc3RyaW5nID0gc3Vic3RyKCRzdHJpbmcsMCwkcG9zKTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJHN0cmluZzsKICB9CgogIGZ1bmN0aW9uIGNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgkZmllbGROYW1lPSdvcHRfZW1haWxfdGVtcGxhdGUnLCAkYnV0dG9uX3RleHQ9JycsICRzdWZmaXg9JycpCiAgewoJJGZsZEFsaWFzID0gcHJlZ19yZXBsYWNlKCcvW15cd1xkXS8nLCdfJywkZmllbGROYW1lKS4kc3VmZml4OwogICAgJGpzQ29kZSA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cbgovKiA8IVtDREFUQVsgKi8KZnVuY3Rpb24gcG9wdWxhdGUiLiRmbGRBbGlhcy4iKGZvcm1uYW1lKQogICAgewogICAgdmFyIGZuYW1lID0gJ0lEZmJycF8iLiRmaWVsZE5hbWUuIic7CiAgICBmb3JtbmFtZVtmbmFtZV0udmFsdWU9fFRFTVBMQVRFfDsKICAgIH0KLyogXV0+ICovCjwvc2NyaXB0PiI7CgkkanNDb2RlIC49ICI8aW5wdXQgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIi4KJGJ1dHRvbl90ZXh0LiJcIiBvbmNsaWNrPVwiamF2YXNjcmlwdDpwb3B1bGF0ZSIuJGZsZEFsaWFzLiIodGhpcy5mb3JtKVwiIC8+IjsKICByZXR1cm4gJGpzQ29kZTsKICB9CgoKICBmdW5jdGlvbiBjcmVhdGVTYW1wbGVUZW1wbGF0ZSgkaHRtbGlzaD1mYWxzZSwkZW1haWw9dHJ1ZSwgJG9uZWxpbmU9ZmFsc2UsJGhlYWRlcj1mYWxzZSkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICIiOwoJaWYgKCRlbWFpbCkKCQl7CiAgICAJaWYgKCRodG1saXNoKQogICAgCQl7CgkJCSRyZXQgLj0gIjxoMT4iLiRtb2QtPkxhbmcoJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnKS4iPC9oMT5cbiI7CgkJCX0KCSAJZWxzZQoJIAkJewoJCQkkcmV0IC49ICRtb2QtPkxhbmcoJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnKS4iXG4iOwoJCQl9CiAgICAJZm9yZWFjaCgkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICAJCXsKCQkJaWYgKCRodG1saXNoKQoJCQkJewoJCQkJJHJldCAuPSAnPHN0cm9uZz4nLiR0aGlzVmFsLic8L3N0cm9uZz46ICcuJHRoaXNLZXkuIjxiciAvPlxuIjsKCQkJCX0KCQkJZWxzZQoJCQkJewoJCQkJJHJldCAuPSAkdGhpc1ZhbC4nOiAnLiR0aGlzS2V5LiJcbiI7CgkJCQl9CiAgICAgIAkJfQogICAgIAlpZiAoJGh0bWxpc2gpCiAgICAgCSAgCXsKCQkgIAkkcmV0IC49ICJcbjxociAvPlxuIjsKCSAgCSAgCX0KCSAgCWVsc2UKCSAgCSAgCXsKICAgIAkgIAkkcmV0IC49ICJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CiAgICAJICAJfQogICAgCX0KCWVsc2VpZiAoISAkb25lbGluZSkKCQl7CgkJaWYgKCRodG1saXNoKQoJCQl7CgkJCSRyZXQgLj0gJzxoMj4nOwoJCQl9CgkJJHJldCAuPSAkbW9kLT5MYW5nKCd0aGFua3MnKTsKCQlpZiAoJGh0bWxpc2gpCgkJCXsKCQkJJHJldCAuPSAnPC9oMj4nOwoJCQl9CgkJfQogICAgJG90aGVycyA9ICYkdGhpcy0+R2V0RmllbGRzKCk7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQogICAgICB7CglpZiAoJG90aGVyc1skaV0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCSAgewoJICBpZiAoJG90aGVyc1skaV0tPkdldEFsaWFzKCkgIT0gJycpCgkJewoJCSRmbGRyZWYgPSAneyQnLiAkb3RoZXJzWyRpXS0+R2V0QWxpYXMoKS4gJ30nOwoJCX0KCSAgZWxzZQoJCXsKCQkkZmxkcmVmID0gJ3skZmxkXycuICRvdGhlcnNbJGldLT5HZXRJZCgpLiAnfSc7CgkJfQoJICBpZiAoJGh0bWxpc2gpCiAgICAgCSAgewogIAkJICAkcmV0IC49ICc8c3Ryb25nPicuJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc8L3N0cm9uZz46ICcgLiAkZmxkcmVmLiAiPGJyIC8+XG4iOwogIAkJICB9CiAgCSAgZWxzZWlmICgkb25lbGluZSAmJiAhJGhlYWRlcikKCQkgIHsKCQkgICRyZXQgLj0gJGZsZHJlZi4gJ3skVEFCfSc7CgkJICB9CgkgIGVsc2VpZiAoJG9uZWxpbmUgJiYgJGhlYWRlcikKCQkgewoJCSAkcmV0IC49ICRvdGhlcnNbJGldLT5HZXROYW1lKCkuJ3skVEFCfSc7CgkJIH0KCSAgZWxzZQogIAkgIAkgIHsKCSAgICAgICRyZXQgLj0gJG90aGVyc1skaV0tPkdldE5hbWUoKSAuICc6ICcgLiRmbGRyZWYuICJcbiI7CgkgICAgICB9CgkgIH0KICAgICAgfQogICAgaWYgKCRvbmVsaW5lKQoJCXsKCQkkcmV0ID0gc3Vic3RyKCRyZXQsMCxzdHJsZW4oJHJldCkgLSA2KS4gIlxuIjsKCQl9CiAgICByZXR1cm4gJHJldDsKICB9CgoKLy8gIGZ1bmN0aW9uIEFkbWluVGVtcGxhdGVIZWxwKCRmb3JtRGVzY3JpcHRvciwkZmllbGRzPSdvcHRfZW1haWxfdGVtcGxhdGUnLAovLyAgCSRpbmNsdWRlSFRNTD10cnVlLCAkaW5jbHVkZVRleHQ9dHJ1ZSwgJG9uZWxpbmUgPSBmYWxzZSwgJGhlYWRlck5hbWU9JycpCiAgZnVuY3Rpb24gQWRtaW5UZW1wbGF0ZUhlbHAoJGZvcm1EZXNjcmlwdG9yLCRmaWVsZFN0cnVjdCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5tb2R1bGVfcHRyOwogICAgJHJldCA9ICc8dGFibGUgY2xhc3M9Im1vZHVsZV9mYl9sZWdlbmQiPjx0cj48dGggY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnKS4nPC90aD48L3RyPic7CiAgICAkcmV0IC49ICc8dHI+PHRoPicuJG1vZC0+TGFuZygnaGVscF92YXJpYWJsZV9uYW1lJykuJzwvdGg+PHRoPicuJG1vZC0+TGFuZygnaGVscF9mb3JtX2ZpZWxkJykuJzwvdGg+PC90cj4nOwogICAgJG9kZCA9IGZhbHNlOwogICAgZm9yZWFjaCgkdGhpcy0+dGVtcGxhdGVWYXJpYWJsZXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CgkJJHJldCAuPSAnPHRyPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJCSciPicuJHRoaXNLZXkuJzwvdGQ+PHRkIGNsYXNzPSInLigkb2RkPydvZGQnOidldmVuJykuCgkJJyI+Jy4kdGhpc1ZhbC4nPC90ZD48L3RyPic7CiAgICAgICRvZGQgPSAhICRvZGQ7CiAgICAgIH0KCiAgICAkb3RoZXJzID0gJiR0aGlzLT5HZXRGaWVsZHMoKTsKICAgIGZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCiAgICAgIHsKCWlmICgkb3RoZXJzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJICB7ICAgICAgICAgICAgICAgIAoJICAgICRyZXQgLj0gJzx0cj48dGQgY2xhc3M9IicuKCRvZGQ/J29kZCc6J2V2ZW4nKS4KCSAgICAnIj57JCcuJHRoaXMtPk1ha2VWYXIoJG90aGVyc1skaV0tPkdldE5hbWUoKSkuCgkgICAgJ30gLyB7JGZsZF8nLgoJICAgICRvdGhlcnNbJGldLT5HZXRJZCgpLid9JzsKCQlpZiAoJG90aGVyc1skaV0tPkdldEFsaWFzKCkgIT0gJycpCgkJCXsKCQkJJHJldCAuPSAnIC8geyQnLiRvdGhlcnNbJGldLT5HZXRBbGlhcygpLid9JzsJCgkJCX0KCSAgICAkcmV0IC49ICc8L3RkPjx0ZCBjbGFzcz0iJy4oJG9kZD8nb2RkJzonZXZlbicpLgoJICAgICciPicgLiRvdGhlcnNbJGldLT5HZXROYW1lKCkgLiAnPC90ZD48L3RyPic7CgkgIAkkb2RkID0gISAkb2RkOwoJICB9CiAgICAgIH0KICAgICAgIAkKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX2FycmF5X2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKICAgICRyZXQgLj0gJzx0cj48dGQgY29sc3Bhbj0iMiI+Jy4kbW9kLT5MYW5nKCdoZWxwX290aGVyX2ZpZWxkcycpLic8L3RkPjwvdHI+JzsKCiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gJyc7CiAgICBmb3JlYWNoICgkZmllbGRTdHJ1Y3QgYXMgJGtleT0+JHZhbCkKCQl7CgkJJGh0bWxfYnV0dG9uID0gKGlzc2V0KCR2YWxbJ2h0bWxfYnV0dG9uJ10pICYmICR2YWxbJ2h0bWxfYnV0dG9uJ10pOwoJCSR0ZXh0X2J1dHRvbiA9IChpc3NldCgkdmFsWyd0ZXh0X2J1dHRvbiddKSAmJiAkdmFsWyd0ZXh0X2J1dHRvbiddKTsKCQkkaXNfb25lbGluZSA9IChpc3NldCgkdmFsWydpc19vbmVsaW5lJ10pICYmICR2YWxbJ2lzX29uZWxpbmUnXSk7CgkJJGlzX2VtYWlsID0gKGlzc2V0KCR2YWxbJ2lzX2VtYWlsJ10pICYmICR2YWxbJ2lzX2VtYWlsJ10pOwoJCSRpc19oZWFkZXIgPSAoaXNzZXQoJHZhbFsnaXNfaGVhZGVyJ10pICYmICR2YWxbJ2lzX2hlYWRlciddKTsKCQlpZiAoJGh0bWxfYnV0dG9uKQoJCQl7CgkJCSRidXR0b25fdGV4dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZScpOwoJCQl9CgkJZWxzZWlmICgkaXNfaGVhZGVyKQoJCQl7CgkJCSRidXR0b25fdGV4dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJGJ1dHRvbl90ZXh0ID0gJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpOwoJCQl9CgoJCWlmICgkaHRtbF9idXR0b24gJiYgJHRleHRfYnV0dG9uKQoJCQl7CgkJCSRzYW1wbGUgPSAkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoZmFsc2UsICRpc19lbWFpbCwgJGlzX29uZWxpbmUsICRpc19oZWFkZXIpOwoJCQkkc2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkc2FtcGxlKTsKCQkJJHNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJHNhbXBsZSk7CgkJCSRzYW1wbGVUZW1wbGF0ZUNvZGUgLj0gcHJlZ19yZXBsYWNlKCcvXHxURU1QTEFURVx8LycsIiciLiRzYW1wbGUuIiciLAoJCQkgICAgCSR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZUphdmFzY3JpcHQoJGtleSwgJG1vZC0+TGFuZygndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZScpLCd0ZXh0JykpOwoJCQl9CgkJCgkJJHNhbXBsZSA9ICR0aGlzLT5jcmVhdGVTYW1wbGVUZW1wbGF0ZSgkaHRtbF9idXR0b24sJGlzX2VtYWlsLCAkaXNfb25lbGluZSwkaXNfaGVhZGVyKTsKCQkkc2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkc2FtcGxlKTsKCQkkc2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXG4vJywiXFxuJytcbiciLCAkc2FtcGxlKTsKCQkkc2FtcGxlVGVtcGxhdGVDb2RlIC49IHByZWdfcmVwbGFjZSgnL1x8VEVNUExBVEVcfC8nLCInIi4kc2FtcGxlLiInIiwKCSAgICAJJHRoaXMtPmNyZWF0ZVNhbXBsZVRlbXBsYXRlSmF2YXNjcmlwdCgka2V5LCAkYnV0dG9uX3RleHQpKTsKCQl9Ci8qICAgICRlc2NhcGVkU2FtcGxlID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUoZmFsc2UsdHJ1ZSwkb25lbGluZSkpOwogICAgJGVzY2FwZWRTYW1wbGVIVE1MID0gcHJlZ19yZXBsYWNlKCcvXCcvJywiXFwnIiwkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGUodHJ1ZSx0cnVlLCRvbmVsaW5lKSk7CiAgICAkZXNjYXBlZFNhbXBsZSA9IHByZWdfcmVwbGFjZSgnL1xuLycsIlxcbicrXG4nIiwgJGVzY2FwZWRTYW1wbGUpOwogICAgJGVzY2FwZWRTYW1wbGVIVE1MID0gcHJlZ19yZXBsYWNlKCcvXG4vJywiXFxuJytcbiciLCAkZXNjYXBlZFNhbXBsZUhUTUwpOwogICAgCiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvXHxURU1QTEFURVx8LycsIiciLiRlc2NhcGVkU2FtcGxlLiInIiwKICAgIAkkdGhpcy0+Y3JlYXRlU2FtcGxlVGVtcGxhdGVKYXZhc2NyaXB0KCRmaWVsZE5hbWUsICRpbmNsdWRlSFRNTCwgJGluY2x1ZGVUZXh0KSk7CiAgICAkc2FtcGxlVGVtcGxhdGVDb2RlID0gcHJlZ19yZXBsYWNlKCcvXHxIVE1MVEVNUExBVEVcfC8nLCInIi4kZXNjYXBlZFNhbXBsZUhUTUwuIiciLAogICAgCSRzYW1wbGVUZW1wbGF0ZUNvZGUpOyAqLwogICAgJHNhbXBsZVRlbXBsYXRlQ29kZSA9IHByZWdfcmVwbGFjZSgnL0lELycsJGZvcm1EZXNjcmlwdG9yLAogICAgCSRzYW1wbGVUZW1wbGF0ZUNvZGUpOwogICAgJHJldCAuPSAnPHRyPjx0ZCBjb2xzcGFuPSIyIj4nLiRzYW1wbGVUZW1wbGF0ZUNvZGUuJzwvdGQ+PC90cj4nOwogICAgJHJldCAuPSAnPC90YWJsZT4nOwogICAgcmV0dXJuICRyZXQ7CiAgfQoKCiAgZnVuY3Rpb24gVmFsaWRhdGUoKQogIHsKICAgICR2YWxpZGF0ZWQgPSB0cnVlOwogICAgJG1lc3NhZ2UgPSBhcnJheSgpOwogICAgJGZvcm1QYWdlQ291bnQ9MTsKICAgICR2YWxQYWdlID0gJHRoaXMtPlBhZ2UgLSAxOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRGaWVsZFR5cGUoKSA9PSAnUGFnZUJyZWFrRmllbGQnKQoJICB7CgkgICAgJGZvcm1QYWdlQ291bnQrKzsKCSAgfQoJaWYgKCR2YWxQYWdlICE9ICRmb3JtUGFnZUNvdW50KQoJICB7CgkgICAgY29udGludWU7CgkgIH0KCWlmICgvKiEgJHRoaXMtPkZpZWxkc1skaV0tPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkgJiYgKi8KCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+SXNSZXF1aXJlZCgpICYmCgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPkhhc1ZhbHVlKCkgPT0gZmFsc2UpCgkgIHsKCSAgICBhcnJheV9wdXNoKCRtZXNzYWdlLAoJICAgIAkkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpKTsKCSAgICAkdmFsaWRhdGVkID0gZmFsc2U7CgkgICAgJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKCSAgICAkdGhpcy0+RmllbGRzWyRpXS0+dmFsaWRhdGlvbkVycm9yVGV4dCA9IAkkdGhpcy0+bW9kdWxlX3B0ci0+TGFuZygncGxlYXNlX2VudGVyX2FfdmFsdWUnLCR0aGlzLT5GaWVsZHNbJGldLT5HZXROYW1lKCkpOwoJICAgICR0aGlzLT5GaWVsZHNbJGldLT52YWxpZGF0ZWQgPSBmYWxzZTsKCSAgfQoJZWxzZSBpZiAoJHRoaXMtPkZpZWxkc1skaV0tPkdldFZhbHVlKCkgIT0gJHRoaXMtPm1vZHVsZV9wdHItPkxhbmcoJ3Vuc3BlY2lmaWVkJykpCgkgIHsgCgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5WYWxpZGF0ZSgpOwoJICAgIGlmICgkcmVzWzBdICE9IHRydWUpCgkgICAgICB7CgkJYXJyYXlfcHVzaCgkbWVzc2FnZSwkcmVzWzFdKTsKCQkkdmFsaWRhdGVkID0gZmFsc2U7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLGZhbHNlKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJHRoaXMtPkZpZWxkc1skaV0tPlNldE9wdGlvbignaXNfdmFsaWQnLHRydWUpOwoJICAgICAgfQoJICB9CiAgICAgIH0KICAgIHJldHVybiBhcnJheSgkdmFsaWRhdGVkLCAkbWVzc2FnZSk7CiAgfQoKCiAgZnVuY3Rpb24gSGFzRGlzcG9zaXRpb24oKQogIHsKICAgICRoYXNEaXNwID0gZmFsc2U7CiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSkKCSAgewoJICAgICRoYXNEaXNwID0gdHJ1ZTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGhhc0Rpc3A7CiAgfQoKICAvLyByZXR1cm4gYW4gYXJyYXk6IGVsZW1lbnQgMCBpcyB0cnVlIGZvciBzdWNjZXNzLCBmYWxzZSBmb3IgZmFpbHVyZQogIC8vIGVsZW1lbnQgMSBpcyBhbiBhcnJheSBvZiByZWFzb25zLCBpbiB0aGUgZXZlbnQgb2YgZmFpbHVyZS4KICBmdW5jdGlvbiBEaXNwb3NlKCRyZXR1cm5pZCkKICB7CiAgICAvLyBmaXJzdCwgd2UgcnVuIGFsbCBmaWVsZCBtZXRob2RzIHRoYXQgd2lsbCBtb2RpZnkgb3RoZXIgZmllbGRzCiAgICAkY29tcHV0ZXMgPSBhcnJheSgpOwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZpZXNPdGhlckZpZWxkcygpKQoJICAJewoJICAgIAkkdGhpcy0+RmllbGRzWyRpXS0+TW9kaWZ5T3RoZXJGaWVsZHMoKTsKCSAgCX0KCSAgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT25TdWJtaXNzaW9uKCkpCgkgIAl7CgkgIAkJJGNvbXB1dGVzWyRpXSA9ICR0aGlzLT5GaWVsZHNbJGldLT5Db21wdXRlT3JkZXIoKTsKCSAgCX0KICAgICAgfQogICAgICAKICAgIGFzb3J0KCRjb21wdXRlcyk7CiAgICBmb3JlYWNoKCRjb21wdXRlcyBhcyAkY0tleT0+JGNWYWwpCiAgICAJewogICAgCSR0aGlzLT5GaWVsZHNbJGNLZXldLT5Db21wdXRlKCk7CiAgICAJfQoKICAgICRyZXNBcnJheSA9IGFycmF5KCk7CiAgICAkcmV0Q29kZSA9IHRydWU7CiAgICAvLyBmb3IgZWFjaCBmb3JtIGRpc3Bvc2l0aW9uIHBzZXVkby1maWVsZCwgZGlzcG9zZSB0aGUgZm9ybSByZXN1bHRzCiAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhpcy0+RmllbGRzKTskaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPklzRGlzcG9zaXRpb24oKSAmJiAkdGhpcy0+RmllbGRzWyRpXS0+RGlzcG9zaXRpb25Jc1Blcm1pdHRlZCgpKQoJICB7CgkgICAgJHJlcyA9ICR0aGlzLT5GaWVsZHNbJGldLT5EaXNwb3NlRm9ybSgkcmV0dXJuaWQpOwoJICAgIGlmICgkcmVzWzBdID09IGZhbHNlKQoJICAgICAgewoJCSRyZXRDb2RlID0gZmFsc2U7CgkJYXJyYXlfcHVzaCgkcmVzQXJyYXksJHJlc1sxXSk7CgkgICAgICB9CgkgIH0KICAgICAgfQoKCS8vIGhhbmRsZSBhbnkgbGFzdCBjbGVhbnVwIGZ1bmN0aW9ucwogICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKICAgICAgewoJCSR0aGlzLT5GaWVsZHNbJGldLT5Qb3N0RGlzcG9zaXRpb25BY3Rpb24oKTsKCSAgfQogICAgcmV0dXJuIGFycmF5KCRyZXRDb2RlLCRyZXNBcnJheSk7CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtSGVhZGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gU3RhcnQgRm9ybUJ1aWxkZXIgTW9kdWxlICgiLiR0aGlzLT5tb2R1bGVfcHRyLT5HZXRWZXJzaW9uKCkuIikgLS0+XG4iOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBSZW5kZXJGb3JtRm9vdGVyKCkKICB7CiAgICBpZiAoJHRoaXMtPm1vZHVsZV9wdHItPkdldFByZWZlcmVuY2UoJ3Nob3dfdmVyc2lvbicsMCkgPT0gMSkKICAgICAgewoJcmV0dXJuICJcbjwhLS0gRW5kIEZvcm1CdWlsZGVyIE1vZHVsZSAtLT5cbiI7CiAgICAgIH0KICB9CgoKICAvLyByZXR1cm5zIGEgc3RyaW5nLgogIGZ1bmN0aW9uIFJlbmRlckZvcm0oJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQogIHsKICAgICRtb2QgPSAkdGhpcy0+bW9kdWxlX3B0cjsKICAgIGlmICgkdGhpcy0+SWQgPT0gLTEpCiAgICAgIHsKCXJldHVybiAiPCEtLSBubyBmb3JtIC0tPlxuIjsKICAgICAgfQogICAgaWYgKCR0aGlzLT5sb2FkZWQgIT0gJ2Z1bGwnKQogICAgICB7CgkkdGhpcy0+TG9hZCgkdGhpcy0+SWQsJHBhcmFtcyx0cnVlKTsKICAgICAgfQoKICAgICRyZXFTeW1ib2wgPSAkdGhpcy0+R2V0QXR0cigncmVxdWlyZWRfZmllbGRfc3ltYm9sJywnKicpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9wYWdlX3hfb2ZfeScsJG1vZC0+TGFuZygndGl0bGVfcGFnZV94X29mX3knLGFycmF5KCR0aGlzLT5QYWdlLCR0aGlzLT5mb3JtVG90YWxQYWdlcykpKTsKCQkKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjc3NfY2xhc3MnLCR0aGlzLT5HZXRBdHRyKCdjc3NfY2xhc3MnLCcnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndG90YWxfcGFnZXMnLCR0aGlzLT5mb3JtVG90YWxQYWdlcyk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGhpc19wYWdlJywkdGhpcy0+UGFnZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9uYW1lJywkdGhpcy0+TmFtZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9pZCcsJHRoaXMtPklkKTsKCiAgICAkaGlkZGVuID0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZm9ybV9pZCcsICR0aGlzLT5JZCk7CglpZiAoaXNzZXQoJHBhcmFtc1snbGFuZyddKSkKCQl7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdsYW5nJywgJHBhcmFtc1snbGFuZyddKTsKCQl9CiAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfY29udGludWUnLCAoJHRoaXMtPlBhZ2UgKyAxKSk7CiAgICBpZiAoaXNzZXQoJHBhcmFtc1snZmJycF9icm93c2VyX2lkJ10pKQogICAgICB7CgkkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9icm93c2VyX2lkJywkcGFyYW1zWydmYnJwX2Jyb3dzZXJfaWQnXSk7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+UGFnZSA+IDEpCiAgICAgIHsKCSRoaWRkZW4gLj0gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9wcmV2aW91cycsICgkdGhpcy0+UGFnZSAtIDEpKTsKICAgICAgfQogICAgaWYgKCR0aGlzLT5QYWdlID09ICR0aGlzLT5mb3JtVG90YWxQYWdlcykKICAgICAgewoJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX2RvbmUnLCAxKTsKICAgICAgfQogICAgJGZpZWxkcyA9IGFycmF5KCk7CiAgICAkZm9ybVBhZ2VDb3VudCA9IDE7CiAgICBmb3IgKCRpPTA7ICRpIDwgY291bnQoJHRoaXMtPkZpZWxkcyk7ICRpKyspCiAgICAgIHsKCSR0aGlzRmllbGQgPSAmJHRoaXMtPkZpZWxkc1skaV07CglpZiAoJHRoaXNGaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJ1BhZ2VCcmVha0ZpZWxkJykKCSAgewoJICAgICRmb3JtUGFnZUNvdW50Kys7CgkgIH0KCWlmICgkZm9ybVBhZ2VDb3VudCAhPSAkdGhpcy0+UGFnZSkKCSAgewoJICAgICR0ZXN0SW5kZXggPSAnZmJycF9fJy4kdGhpcy0+RmllbGRzWyRpXS0+R2V0SWQoKTsKCSAgICBpZiAoIWlzc2V0KCRwYXJhbXNbJHRlc3RJbmRleF0pKQoJICAgICAgewoJCS8vIGRvIHdlIG5lZWQgdG8gd3JpdGUgc29tZXRoaW5nPwoJICAgICAgfQoJICAgIGVsc2VpZiAoaXNfYXJyYXkoJHBhcmFtc1skdGVzdEluZGV4XSkpCgkgICAgICB7CgkJZm9yZWFjaCAoJHBhcmFtc1skdGVzdEluZGV4XSBhcyAkdmFsKQoJCSAgewoJCSAgICAkaGlkZGVuIC49ICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwKCQkJCQkJICAgICAgICR0ZXN0SW5kZXguJ1tdJywKCQkJCQkJICAgICAgIC8qaHRtbHNwZWNpYWxjaGFycygkdmFsLEVOVF9RVU9URVMpKi8gJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCR2YWwpKTsKCQkgIH0KCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJGhpZGRlbiAuPSAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsCgkJCQkJCSAgICR0ZXN0SW5kZXgsCgkJCQkJCSAgIC8qaHRtbHNwZWNpYWxjaGFycygkcGFyYW1zWyR0ZXN0SW5kZXhdLEVOVF9RVU9URVMpKi8gJHRoaXMtPnVubXlfaHRtbGVudGl0aWVzKCRwYXJhbXNbJHRlc3RJbmRleF0pKTsKCSAgICAgIH0KCSAgICBjb250aW51ZTsKCSAgfQoJJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJJG9uZXNldC0+ZGlzcGxheSA9ICR0aGlzRmllbGQtPkRpc3BsYXlJbkZvcm0oKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZCA9ICR0aGlzRmllbGQtPklzUmVxdWlyZWQoKT8xOjA7Cgkkb25lc2V0LT5yZXF1aXJlZF9zeW1ib2wgPSAkdGhpc0ZpZWxkLT5Jc1JlcXVpcmVkKCk/JHJlcVN5bWJvbDonJzsKCSRvbmVzZXQtPmNzc19jbGFzcyA9ICR0aGlzRmllbGQtPkdldE9wdGlvbignY3NzX2NsYXNzJyk7Ci8vCSRvbmVzZXQtPnZhbGlkID0gJHRoaXNGaWVsZC0+R2V0T3B0aW9uKCdpc192YWxpZCcsdHJ1ZSk/MTowOwoJJG9uZXNldC0+dmFsaWQgPSAkdGhpc0ZpZWxkLT52YWxpZGF0ZWQ/MTowOwoJJG9uZXNldC0+ZXJyb3IgPSAkdGhpc0ZpZWxkLT5HZXRPcHRpb24oJ2lzX3ZhbGlkJyx0cnVlKT8nJzokdGhpc0ZpZWxkLT52YWxpZGF0aW9uRXJyb3JUZXh0OwoJJG9uZXNldC0+aGlkZV9uYW1lID0gMDsKCWlmKCAoISR0aGlzRmllbGQtPkhhc0xhYmVsKCkpIHx8ICR0aGlzRmllbGQtPkhpZGVMYWJlbCgpICkKCSAgewoJICAgICRvbmVzZXQtPmhpZGVfbmFtZSA9IDE7CgkgIH0KCSRvbmVzZXQtPmhhc19sYWJlbCA9ICR0aGlzRmllbGQtPkhhc0xhYmVsKCk7Cgkkb25lc2V0LT5uZWVkc19kaXYgPSAkdGhpc0ZpZWxkLT5OZWVkc0RpdigpOwoJJG9uZXNldC0+bmFtZSA9ICR0aGlzRmllbGQtPkdldE5hbWUoKTsKCSRvbmVzZXQtPmlucHV0ID0gJHRoaXNGaWVsZC0+R2V0RmllbGRJbnB1dCgkaWQsICRwYXJhbXMsICRyZXR1cm5pZCk7Cgkkb25lc2V0LT5zbWFydHlfZXZhbCA9ICR0aGlzRmllbGQtPkdldFNtYXJ0eUV2YWwoKT8xOjA7CgoJJG9uZXNldC0+aW5wdXRfaWQgPSAkaWQuJ2ZicnBfXycuJHRoaXNGaWVsZC0+R2V0SUQoKTsKCSRvbmVzZXQtPm11bHRpcGxlX3BhcnRzID0gJHRoaXNGaWVsZC0+SGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cygpPzE6MDsKCSRvbmVzZXQtPmxhYmVsX3BhcnRzID0gJHRoaXNGaWVsZC0+TGFiZWxTdWJDb21wb25lbnRzKCk/MTowOwoJJG9uZXNldC0+dHlwZSA9ICR0aGlzRmllbGQtPkdldERpc3BsYXlUeXBlKCk7CgkkbW9kLT5zbWFydHktPmFzc2lnbigkdGhpc0ZpZWxkLT5HZXROYW1lKCksJG9uZXNldCk7CglpZiAoJHRoaXNGaWVsZC0+R2V0QWxpYXMoKSAhPSAnJykKCQl7CgkJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXNGaWVsZC0+R2V0QWxpYXMoKSwkb25lc2V0KTsKCQl9CglhcnJheV9wdXNoKCRmaWVsZHMsJG9uZXNldCk7CiAgICAgIH0KCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZiX2hpZGRlbicsJGhpZGRlbik7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbl9ieV9yZWYoJ2ZpZWxkcycsJGZpZWxkcyk7CgogICAgJGpzU3RyID0gJyc7CiAgICAkanNUcmlnZ2VyID0gJyc7CiAgICBpZiAoJHRoaXMtPkdldEF0dHIoJ2lucHV0X2J1dHRvbl9zYWZldHknLCcwJykgPT0gJzEnKQogICAgICB7CgkkanNTdHIgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJLyogPCFbQ0RBVEFbICovCiAgICB2YXIgc3VibWl0dGVkID0gMDsKICAgIGZ1bmN0aW9uIExvY2tCdXR0b24gKCkKICAgICAgIHsKICAgICAgIHZhciByZXQgPSBmYWxzZTsKICAgICAgIGlmICggISBzdWJtaXR0ZWQgKQogICAgICAgICAgewogICAgICAgICAgIHZhciBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZic3VibWl0Jy4kdGhpcy0+SWQuJyIpOwogICAgICAgICAgIGlmIChpdGVtICE9IG51bGwpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2l0ZW0uZGlzYWJsZWQgPSB0cnVlfSwgMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgc3VibWl0dGVkID0gMTsKICAgICAgICAgICByZXQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgfQovKiBdXT4gKi8KPC9zY3JpcHQ+JzsKICAgICAgJGpzVHJpZ2dlciA9ICIgb25jbGljaz0ncmV0dXJuIExvY2tCdXR0b24oKSciOwogICAgICB9CgogICAgJGpzID0gJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9qYXZhc2NyaXB0Jyk7CgogICAgaWYgKCR0aGlzLT5QYWdlID4gMSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfcHJldicsCgkJCQkJCQkgICAgJHRoaXMtPkdldEF0dHIoJ3ByZXZfYnV0dG9uX3RleHQnKSwKCQkJCQkJCSAgICAnY2xhc3M9ImZic3VibWl0X3ByZXYiICcuJGpzKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3ByZXYnLCcnKTsKICAgICAgfQoKICAgIGlmICgkdGhpcy0+UGFnZSA8ICRmb3JtUGFnZUNvdW50KQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0JywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmYnJwX3N1Ym1pdCcsCgkJCQkJCQkgICAgICAkdGhpcy0+R2V0QXR0cignbmV4dF9idXR0b25fdGV4dCcpLAoJCQkJCQkJICAgICAgJ2NsYXNzPSJmYnN1Ym1pdF9uZXh0IiAnLiRqcykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKICAgICAgJGNhcHRjaGEgPSAmJG1vZC0+Z2V0TW9kdWxlSW5zdGFuY2UoJ0NhcHRjaGEnKTsKICAgICAgaWYgKCR0aGlzLT5HZXRBdHRyKCd1c2VfY2FwdGNoYScsJzAnKT09ICcxJyAmJiAkY2FwdGNoYSAhPSBudWxsKQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdncmFwaGljX2NhcHRjaGEnLCRjYXB0Y2hhLT5nZXRDYXB0Y2hhKCkpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfY2FwdGNoYScsJHRoaXMtPkdldEF0dHIoJ3RpdGxlX3VzZXJfY2FwdGNoYScsJG1vZC0+TGFuZygndGl0bGVfdXNlcl9jYXB0Y2hhJykpKTsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2NhcHRjaGEnLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2NhcHRjaGFfcGhyYXNlJywnJykpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaGFzX2NhcHRjaGEnLCcxJyk7CiAgICAgICAgIH0KICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoYXNfY2FwdGNoYScsJzAnKTsKICAgICAgICAgfQoJICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJGpzU3RyIC4gJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLAoJCQkJJHRoaXMtPkdldEF0dHIoJ3N1Ym1pdF9idXR0b25fdGV4dCcpLAoJCQkJJ2NsYXNzPSJmYnN1Ym1pdCIgaWQ9ImZic3VibWl0Jy4kdGhpcy0+SWQuJyInLiRqc1RyaWdnZXIuJyAnLiRqcykpOwogICAgICB9CgkgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ2ZiXycuJHRoaXMtPklkKTsKICB9CgogIGZ1bmN0aW9uIExvYWRGb3JtKCRsb2FkRGVlcD1mYWxzZSkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxvYWQoJHRoaXMtPklkLCBhcnJheSgpLCAkbG9hZERlZXApOwogIH0KCmZ1bmN0aW9uIHVubXlfaHRtbGVudGl0aWVzKCR2YWwpCnsKCWlmICgkdmFsID09ICIiKQoJewoJCXJldHVybiAiIjsKCX0KCSR2YWwgPSBodG1sX2VudGl0eV9kZWNvZGUoJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiZhbXA7IiwiJiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjNjA7JiMzMzstLSIsIjwhLS0iLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCItLSYjNjI7IiwiLS0+IiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJmd0OyIsIj4iLCAkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJmx0OyIsIjwiLCR2YWwpOwoJJHZhbCA9IHN0cl9yZXBsYWNlKCImcXVvdDsiLCJcIiIsJHZhbCk7CgkkdmFsID0gc3RyX3JlcGxhY2UoIiYjMDM2OyIsIlwkIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiMzMzsiLCIhIiwkdmFsKTsKCSR2YWwgPSBzdHJfcmVwbGFjZSgiJiMzOTsiLCInIiwkdmFsKTsKCgkvLyBVbmNvbW1lbnQgaWYgeW91IG5lZWQgdG8gY29udmVydCB1bmljb2RlIGNoYXJzCglyZXR1cm4gJHZhbDsKfQoKCgoKCiAgZnVuY3Rpb24gTG9hZCgkZm9ybUlkLCAmJHBhcmFtcywgJGxvYWREZWVwPWZhbHNlKQogIHsKCi8vZXJyb3JfbG9nKCJlbnRlcmluZyBGb3JtIExvYWQgd2l0aCB1c2FnZSAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CiAgICAkc3FsID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoJGZvcm1JZCkpOwogICAgaWYoJHJzICYmICRycy0+UmVjb3JkQ291bnQoKSA+IDApCiAgICAgIHsKCSRyZXN1bHQgPSAkcnMtPkZldGNoUm93KCk7CgkkdGhpcy0+SWQgPSAkcmVzdWx0Wydmb3JtX2lkJ107CglpZiAoIWlzc2V0KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfZm9ybV9uYW1lJ10pKQoJICB7CgkgICAgJHRoaXMtPk5hbWUgPSAkcmVzdWx0WyduYW1lJ107CgkgIH0KCWlmICghaXNzZXQoJHBhcmFtc1snZmJycF9mb3JtX2FsaWFzJ10pIHx8IGVtcHR5KCRwYXJhbXNbJ2ZicnBfZm9ybV9hbGlhcyddKSkKCSAgewoJICAgICR0aGlzLT5BbGlhcyA9ICRyZXN1bHRbJ2FsaWFzJ107CgkgIH0KICAgICAgfQogICAgZWxzZQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICRzcWwgPSAnU0VMRUNUIG5hbWUsdmFsdWUgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgJ21vZHVsZV9mYl9mb3JtX2F0dHIgV0hFUkUgZm9ybV9pZD0/JzsKICAgICRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CiAgICB3aGlsZSAoJHJzICYmICRyZXN1bHQ9JHJzLT5GZXRjaFJvdygpKQogICAgICB7CgkkdGhpcy0+QXR0cnNbJHJlc3VsdFsnbmFtZSddXSA9ICRyZXN1bHRbJ3ZhbHVlJ107CiAgICAgIH0KICAgICAgICAgIAogICAgJHRoaXMtPmxvYWRlZCA9ICdzdW1tYXJ5JzsKCiAgICBpZiAoaXNzZXQoJHBhcmFtc1sncmVzcG9uc2VfaWQnXSkpCiAgICAgIHsKCSRsb2FkRGVlcCA9IHRydWU7CiAgICAgIH0KCQkJCiAgICBpZiAoJGxvYWREZWVwKQogICAgICB7CgkvLyBpZiBpdCdzIGEgc3RvcmVkIGZvcm0sIGxvYWQgdGhlIHJlc3VsdHMgLS0gYnV0IHdlIG5lZWQgdG8gbWFudWFsbHkgbWVyZ2UgdGhlbSwKCS8vIHNpbmNlICRwYXJhbXNbXSBzaG91bGQgb3ZlcnJpZGUgdGhlIGRhdGFiYXNlIHZhbHVlIChzYXkgd2UncmUgcmVzdWJtaXR0aW5nIGEgZm9ybSkKCWlmIChpc3NldCgkcGFyYW1zWydyZXNwb25zZV9pZCddKSkKCSAgewoJICAgICRsb2FkUGFyYW1zID0gYXJyYXkoJ3Jlc3BvbnNlX2lkJz0+JHBhcmFtc1sncmVzcG9uc2VfaWQnXSk7CgkgICAgJHRoaXMtPkxvYWRSZXNwb25zZVZhbHVlcygkbG9hZFBhcmFtcyk7CgkgICAgZm9yZWFjaCAoJGxvYWRQYXJhbXMgYXMgJHRoaXNQYXJhbUtleT0+JHRoaXNQYXJhbVZhbHVlKQoJICAgICAgewoJCWlmICghIGlzc2V0KCRwYXJhbXNbJHRoaXNQYXJhbUtleV0pKQoJCSAgewoJCSAgICAkcGFyYW1zWyR0aGlzUGFyYW1LZXldID0gJHRoaXNQYXJhbVZhbHVlOwoJCSAgfQoJICAgICAgfQoJICB9CgoJJHNxbCA9ICdTRUxFQ1QgKiBGUk9NICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZmllbGQgV0hFUkUgZm9ybV9pZD0/IE9SREVSIEJZIG9yZGVyX2J5JzsKCSRycyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkZm9ybUlkKSk7CgkkcmVzdWx0ID0gYXJyYXkoKTsKCWlmICgkcnMgJiYgJHJzLT5SZWNvcmRDb3VudCgpID4gMCkKCSAgewoJICAgICRyZXN1bHQgPSAkcnMtPkdldEFycmF5KCk7CgkgIH0KCSRmaWVsZENvdW50ID0gMDsKCWlmIChjb3VudCgkcmVzdWx0KSA+IDApCgkgIHsKCSAgICBmb3JlYWNoKCRyZXN1bHQgYXMgJHRoaXNSZXMpCgkgICAgICB7Ci8vZXJyb3JfbG9nKCJJbnN0YW50aWF0aW5nIEZpZWxkLiB1c2FnZSAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CgoJCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkdGhpc1Jlc1sndHlwZSddLCAnJyk7CgkJLy8gY3JlYXRlIHRoZSBmaWVsZCBvYmplY3QKCQlpZiAoCgkJICAgICggCgkJICAgICBpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgICAoCgkJICAgICAgIGlzc2V0KCRwYXJhbXNbJ2ZicnBfXycuJHRoaXNSZXNbJ2ZpZWxkX2lkJ11dKSB8fAoJCSAgICAgICBpc3NldCgkcGFyYW1zWydmYnJwX19fJy4kdGhpc1Jlc1snZmllbGRfaWQnXV0pCgkJICAgICAgICkKCQkgICAgICApIHx8CgkJICAgIChpc3NldCgkdGhpc1Jlc1snZmllbGRfaWQnXSkgJiYKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ3ZhbHVlXycuJHRoaXNSZXNbJ25hbWUnXV0pKSB8fAoJCSAgICAoaXNzZXQoJHRoaXNSZXNbJ2ZpZWxkX2lkJ10pICYmCgkJICAgICBpc3NldCgkcGFyYW1zWyd2YWx1ZV9mbGQnLiR0aGlzUmVzWydmaWVsZF9pZCddXSkpIHx8CgkJICAgICgKCQkgICAgIGlzc2V0KCRwYXJhbXNbJ2ZpZWxkX2lkJ10pICYmIGlzc2V0KCR0aGlzUmVzWydmaWVsZF9pZCddKSAmJgoJCSAgICAgJHBhcmFtc1snZmllbGRfaWQnXSA9PSAkdGhpc1Jlc1snZmllbGRfaWQnXQoJCSAgICAgKQoJCSAgICApCgkJICB7CgkJICAgICR0aGlzUmVzID0gYXJyYXlfbWVyZ2UoJHRoaXNSZXMsJHBhcmFtcyk7CgkJICB9CgkJJHRoaXMtPkZpZWxkc1skZmllbGRDb3VudF0gPSAmJHRoaXMtPk5ld0ZpZWxkKCR0aGlzUmVzKTsKCQkkZmllbGRDb3VudCsrOwoJICAgICAgfQoJICB9CgkkdGhpcy0+bG9hZGVkID0gJ2Z1bGwnOwogICAgICB9CgoJCQogICAgZm9yICgkaT0wOyAkaSA8IGNvdW50KCR0aGlzLT5GaWVsZHMpOyAkaSsrKQogICAgICB7CglpZiAoJHRoaXMtPkZpZWxkc1skaV0tPlR5cGUgPT0gJ1BhZ2VCcmVha0ZpZWxkJykKCSAgewoJICAgICR0aGlzLT5mb3JtVG90YWxQYWdlcysrOwoJICB9CiAgICAgIH0KCiAgICByZXR1cm4gdHJ1ZTsKICB9CgovKiBub3RhYmxlIHBhcmFtczoKICBmYnJwX3htbF9maWxlIC0tIHNvdXJjZSBmaWxlIGZvciB0aGUgWE1MCiAgeG1sX3N0cmluZyAtLSBzb3VyY2Ugc3RyaW5nIGZvciB0aGUgWE1MCiovCgogIGZ1bmN0aW9uIEltcG9ydFhNTCgmJHBhcmFtcykKICB7CiAgCS8vIHhtbF9wYXJzZXJfY3JlYXRlLCB4bWxfcGFyc2VfaW50b19zdHJ1Y3QKICAJJHBhcnNlciA9IHhtbF9wYXJzZXJfY3JlYXRlKCcnKTsKICAgeG1sX3BhcnNlcl9zZXRfb3B0aW9uKCAkcGFyc2VyLCBYTUxfT1BUSU9OX0NBU0VfRk9MRElORywgMCApOwogICB4bWxfcGFyc2VyX3NldF9vcHRpb24oICRwYXJzZXIsIFhNTF9PUFRJT05fU0tJUF9XSElURSwgMCApOyAvLyB3YXMgMQogICAgaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkgJiYgISBlbXB0eSgkcGFyYW1zWydmYnJwX3htbF9maWxlJ10pKQoJCXsKCQl4bWxfcGFyc2VfaW50b19zdHJ1Y3QoJHBhcnNlciwgZmlsZV9nZXRfY29udGVudHMoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSwgJHZhbHMpOwoJCX0KCWVsc2VpZiAoaXNzZXQoJHBhcmFtc1sneG1sX3N0cmluZyddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ3htbF9zdHJpbmcnXSkpCgkJewoJCXhtbF9wYXJzZV9pbnRvX3N0cnVjdCgkcGFyc2VyLCAkcGFyYW1zWyd4bWxfc3RyaW5nJ10sICR2YWxzKTsKCQl9CgllbHNlCgkJewoJCXJldHVybiBmYWxzZTsKCQl9Cgl4bWxfcGFyc2VyX2ZyZWUoJHBhcnNlcik7CgkkZWxlbWVudHMgPSBhcnJheSgpOwoJJHN0YWNrID0gYXJyYXkoKTsKCSRmaWVsZE1hcCA9IGFycmF5KCk7Cglmb3JlYWNoICggJHZhbHMgYXMgJHRhZyApCgkJewoJCSRpbmRleCA9IGNvdW50KCAkZWxlbWVudHMgKTsKCQlpZiAoICR0YWdbJ3R5cGUnXSA9PSAiY29tcGxldGUiIHx8ICR0YWdbJ3R5cGUnXSA9PSAib3BlbiIgKQoJCQl7CgkJCSRlbGVtZW50c1skaW5kZXhdID0gYXJyYXkoKTsKCQkJJGVsZW1lbnRzWyRpbmRleF1bJ25hbWUnXSA9ICR0YWdbJ3RhZyddOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnYXR0cmlidXRlcyddID0gZW1wdHkoJHRhZ1snYXR0cmlidXRlcyddKSA/ICIiIDogJHRhZ1snYXR0cmlidXRlcyddOwoJCQkkZWxlbWVudHNbJGluZGV4XVsnY29udGVudCddICAgID0gZW1wdHkoJHRhZ1sndmFsdWUnXSkgPyAiIiA6ICR0YWdbJ3ZhbHVlJ107CgkJCWlmICggJHRhZ1sndHlwZSddID09ICJvcGVuIiApCgkJCQl7CgkJCQkjIHB1c2gKCQkJCSRlbGVtZW50c1skaW5kZXhdWydjaGlsZHJlbiddID0gYXJyYXkoKTsKCQkJCSRzdGFja1tjb3VudCgkc3RhY2spXSA9ICYkZWxlbWVudHM7CgkJCQkkZWxlbWVudHMgPSAmJGVsZW1lbnRzWyRpbmRleF1bJ2NoaWxkcmVuJ107CgkJCQl9CiAgICAgICAgfQoJCWlmICggJHRhZ1sndHlwZSddID09ICJjbG9zZSIgKQoJCQl7ICAgICMgcG9wCgkJCSRlbGVtZW50cyA9ICYkc3RhY2tbY291bnQoJHN0YWNrKSAtIDFdOwoJCQl1bnNldCgkc3RhY2tbY291bnQoJHN0YWNrKSAtIDFdKTsKCQkJfQoJCX0KCglpZiAoIWlzc2V0KCRlbGVtZW50c1swXSkgfHwgIWlzc2V0KCRlbGVtZW50c1swXSkgfHwgIWlzc2V0KCRlbGVtZW50c1swXVsnYXR0cmlidXRlcyddKSkKCQl7CgkJLy9wYXJzaW5nIGZhaWxlZCwgb3IgaW52YWxpZCBmaWxlLgoJCXJldHVybiBmYWxzZTsKCQl9CgkkcGFyYW1zWydmb3JtX2lkJ10gPSAtMTsgLy8gb3ZlcnJpZGUgYW55IGZvcm1faWQgdmFsdWVzIHRoYXQgbWF5IGJlIGFyb3VuZAoJJGZvcm1BdHRycyA9ICYkZWxlbWVudHNbMF1bJ2F0dHJpYnV0ZXMnXTsKCWlmICgkdGhpcy0+aW5YTUwoJGZvcm1BdHRyc1snYWxpYXMnXSkpCgkJewoJCSR0aGlzLT5TZXRBbGlhcygkZm9ybUF0dHJzWydhbGlhcyddKTsKCQl9CgkkZm91bmRmaWVsZHMgPSBmYWxzZTsKCS8vIHBvcHVsYXRlIHRoZSBhdHRyaWJ1dGVzIGFuZCBmaWVsZCBuYW1lIGZpcnN0LiBXaGVuIHdlIHNlZSBhIGZpZWxkLCB3ZSBzYXZlIHRoZSBmb3JtIGFuZCB0aGVuIHN0YXJ0IGFkZGluZyB0aGUgZmllbGRzIHRvIGl0LgoJZm9yZWFjaCAoJGVsZW1lbnRzWzBdWydjaGlsZHJlbiddIGFzICR0aGlzQ2hpbGQpCgkJewoJCWlmICgkdGhpc0NoaWxkWyduYW1lJ10gPT0gJ2Zvcm1fbmFtZScpCgkJCXsKCQkJJHRoaXMtPlNldE5hbWUoJHRoaXNDaGlsZFsnY29udGVudCddKTsKCQkJfQoJCWVsc2VpZiAoJHRoaXNDaGlsZFsnbmFtZSddID09ICdhdHRyaWJ1dGUnKQoJCQl7CgkJCSR0aGlzLT5TZXRBdHRyKCR0aGlzQ2hpbGRbJ2F0dHJpYnV0ZXMnXVsna2V5J10sICR0aGlzQ2hpbGRbJ2NvbnRlbnQnXSk7CgkJCX0KCQllbHNlCgkJCXsKCQkJLy8gd2UgZ290IHVzIGEgZmllbGQKCQkJaWYgKCEgJGZvdW5kZmllbGRzKQoJCQkJewoJCQkJLy8gZmlyc3QgZmllbGQKCQkJCSRmb3VuZGZpZWxkcyA9IHRydWU7CgkJCQlpZiggaXNzZXQoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybW5hbWUnXSkgJiYgCgkJCQkgICAgdHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAhPSAnJykKCQkJCSAgewoJCQkJICAgICR0aGlzLT5TZXROYW1lKHRyaW0oJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybW5hbWUnXSkpOwoJCQkJICB9CgkJCQlpZiggaXNzZXQoJHBhcmFtc1snZmJycF9pbXBvcnRfZm9ybWFsaWFzJ10pICYmCgkJCQkgICAgdHJpbSgkcGFyYW1zWydmYnJwX2ltcG9ydF9mb3JtbmFtZSddKSAhPSAnJykKCQkJCSAgewoJCQkJICAgICR0aGlzLT5TZXRBbGlhcyh0cmltKCRwYXJhbXNbJ2ZicnBfaW1wb3J0X2Zvcm1hbGlhcyddKSk7CgkJCQkgIH0KCQkJCSR0aGlzLT5TdG9yZSgpOwoJCQkJJHBhcmFtc1snZm9ybV9pZCddID0gJHRoaXMtPkdldElkKCk7CgkJCQl9CgkJCQkvL2RlYnVnX2Rpc3BsYXkoJHRoaXNDaGlsZCk7CgkJCSRmaWVsZEF0dHJzID0gJiR0aGlzQ2hpbGRbJ2F0dHJpYnV0ZXMnXTsKCQkJJGNsYXNzTmFtZSA9ICR0aGlzLT5NYWtlQ2xhc3NOYW1lKCRmaWVsZEF0dHJzWyd0eXBlJ10sICcnKTsKCQkgICAgJG5ld0ZpZWxkID0gbmV3ICRjbGFzc05hbWUoJHRoaXMsICRwYXJhbXMpOwoJCQkkb2xkSWQgPSAkZmllbGRBdHRyc1snaWQnXTsKCgkJCWlmICgkdGhpcy0+aW5YTUwoJGZpZWxkQXR0cnNbJ2FsaWFzJ10pKQoJCQkJewoJCQkJJG5ld0ZpZWxkLT5TZXRBbGlhcygkZmllbGRBdHRyc1snYWxpYXMnXSk7CgkJCQl9CgkJCSRuZXdGaWVsZC0+U2V0VmFsaWRhdGlvblR5cGUoJGZpZWxkQXR0cnNbJ3ZhbGlkYXRpb25fdHlwZSddKTsKCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1snb3JkZXJfYnknXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldE9yZGVyKCRmaWVsZEF0dHJzWydvcmRlcl9ieSddKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1sncmVxdWlyZWQnXSkpCgkJCQl7CgkJCQkkbmV3RmllbGQtPlNldFJlcXVpcmVkKCRmaWVsZEF0dHJzWydyZXF1aXJlZCddKTsKCQkJCX0KCQkJaWYgKCR0aGlzLT5pblhNTCgkZmllbGRBdHRyc1snaGlkZV9sYWJlbCddKSkKCQkJCXsKCQkJCSRuZXdGaWVsZC0+U2V0SGlkZUxhYmVsKCRmaWVsZEF0dHJzWydoaWRlX2xhYmVsJ10pOwoJCQkJfQoJCQlmb3JlYWNoICgkdGhpc0NoaWxkWydjaGlsZHJlbiddIGFzICR0aGlzT3B0KQoJCQkJewkKCQkJCWlmICgkdGhpc09wdFsnbmFtZSddID09ICdmaWVsZF9uYW1lJykKCQkJCQl7CgkJCQkJJG5ld0ZpZWxkLT5TZXROYW1lKCR0aGlzT3B0Wydjb250ZW50J10pOwoJCQkJCX0KCQkJCWVsc2UKCQkJCQl7CgkJCQkJJG5ld0ZpZWxkLT5PcHRpb25Gcm9tWE1MKCR0aGlzT3B0KTsKCQkJCQl9CgkJCQl9CgkJCSRuZXdGaWVsZC0+U3RvcmUodHJ1ZSk7CgkJCSRmaWVsZE1hcFskbmV3RmllbGQtPkdldElkKCldID0gJG9sZElkOwoJCQkJCgkJCX0KCQl9Ci8qCWZvcmVhY2ggKCRlbGVtZW50c1swXVsnY2hpbGRyZW4nXSBhcyAkdGhpc0NoaWxkKQoJCXsKCQlpZiAoJHRoaXNDaGlsZFsnbmFtZSddID09ICdmaWVsZCcpCgkJCXsKCQkJfQoJCX0KKi8JCglpZiAoaXNzZXQoJHBhcmFtc1snZmJycF94bWxfZmlsZSddKSAmJiAhIGVtcHR5KCRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSkpCgkJewoJCS8vIG5lZWQgdG8gdXBkYXRlIG1hcHBpbmdzIGluIHRlbXBsYXRlcy4KCQkKCQl9CgkKCXJldHVybiB0cnVlOwkKICB9CgogIGZ1bmN0aW9uIGluWE1MKCYkdmFyKQogIHsKICAJCWlmIChpc3NldCgkdmFyKSAmJiBzdHJsZW4oJHZhcikgPiAwKQogIAkJCXsKCQkJcmV0dXJuIHRydWU7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCQl9CiAgfQoKICAvLyBzdG9yZURlZXAgYWxzbyBzdG9yZXMgYWxsIGZpZWxkcyBhbmQgb3B0aW9ucyBmb3IgYSBmb3JtCiAgZnVuY3Rpb24gU3RvcmUoJHN0b3JlRGVlcD1mYWxzZSkKICB7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CgkkdGhpcy0+SWQgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkdlbklEKGNtc19kYl9wcmVmaXgoKS4KCQkJCQkJICAgICAgICdtb2R1bGVfZmJfZm9ybV9zZXEnKTsKCSRzcWwgPSAnSU5TRVJUIElOVE8gJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9mb3JtIChmb3JtX2lkLCBuYW1lLCBhbGlhcykgJy4KCSAgJ1ZBTFVFUyAoPywgPywgPyknOwoJJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLAoJCQkJCQkgICAgYXJyYXkoJHRoaXMtPklkLCAkdGhpcy0+TmFtZSwgJHRoaXMtPkFsaWFzKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJHNxbCA9ICdVUERBVEUgJyAuIGNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9mb3JtIHNldCBuYW1lPT8sIGFsaWFzPT8gd2hlcmUgZm9ybV9pZD0/JzsKCSRyZXMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwKCQkJCQkJICAgIGFycmF5KCR0aGlzLT5OYW1lLCAkdGhpcy0+QWxpYXMsICR0aGlzLT5JZCkpOwogICAgICB9CiAgICAvLyBzYXZlIG91dCB0aGUgYXR0cnMKICAgICRzcWwgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuCiAgICAgICdtb2R1bGVfZmJfZm9ybV9hdHRyIFdIRVJFIGZvcm1faWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwogICAgZm9yZWFjaCAoJHRoaXMtPkF0dHJzIGFzICR0aGlzQXR0cktleT0+JHRoaXNBdHRyVmFsdWUpCiAgICAgIHsKCSRmb3JtQXR0cklkID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5HZW5JRChjbXNfZGJfcHJlZml4KCkuCgkJCQkJCQkgJ21vZHVsZV9mYl9mb3JtX2F0dHJfc2VxJyk7Cgkkc3FsID0gJ0lOU0VSVCBJTlRPICcgLiBjbXNfZGJfcHJlZml4KCkuCgkgICdtb2R1bGVfZmJfZm9ybV9hdHRyIChmb3JtX2F0dHJfaWQsIGZvcm1faWQsIG5hbWUsIHZhbHVlKSAnLgoJICAnVkFMVUVTICg/LCA/LCA/LCA/KSc7CgkkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsCgkJCQkJCSAgICBhcnJheSgkZm9ybUF0dHJJZCwgJHRoaXMtPklkLCAkdGhpc0F0dHJLZXksCgkJCQkJCQkgICR0aGlzQXR0clZhbHVlKSk7CglpZiAoJHRoaXNBdHRyS2V5ID09ICdmb3JtX3RlbXBsYXRlJykKCSAgewoJICAgICR0aGlzLT5tb2R1bGVfcHRyLT5TZXRUZW1wbGF0ZSgnZmJfJy4kdGhpcy0+SWQsJHRoaXNBdHRyVmFsdWUpOwoJICB9CiAgICAgIH0KCQkKICAgIHJldHVybiAkcmVzOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlKCkKICB7CiAgICBpZiAoJHRoaXMtPklkID09IC0xKQogICAgICB7CglyZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIGlmICgkdGhpcy0+bG9hZGVkICE9ICdmdWxsJykKICAgICAgewoJJHRoaXMtPkxvYWQoJHRoaXMtPklkLGFycmF5KCksdHJ1ZSk7CiAgICAgIH0KICAgIGZvcmVhY2ggKCR0aGlzLT5GaWVsZHMgYXMgJGZpZWxkKQogICAgICB7CgkkZmllbGQtPkRlbGV0ZSgpOwogICAgICB9CiAgICAkdGhpcy0+bW9kdWxlX3B0ci0+RGVsZXRlVGVtcGxhdGUoJ2ZiXycuJHRoaXMtPklkKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZm9ybSB3aGVyZSBmb3JtX2lkPT8nOwogICAgJHJlcyA9ICR0aGlzLT5tb2R1bGVfcHRyLT5kYkhhbmRsZS0+RXhlY3V0ZSgkc3FsLCBhcnJheSgkdGhpcy0+SWQpKTsKICAgICRzcWwgPSAnREVMRVRFIEZST00gJyAuIGNtc19kYl9wcmVmaXgoKSAuICdtb2R1bGVfZmJfZm9ybV9hdHRyIHdoZXJlIGZvcm1faWQ9Pyc7CiAgICAkcmVzID0gJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlLT5FeGVjdXRlKCRzcWwsIGFycmF5KCR0aGlzLT5JZCkpOwogICAgcmV0dXJuIHRydWU7CiAgfQoKICAvLyByZXR1cm5zIGEgY2xhc3MgbmFtZSwgYW5kIG1ha2VzIHN1cmUgdGhlIGZpbGUgd2hlcmUgdGhlIGNsYXNzIGlzCiAgLy8gZGVmaW5lZCBoYXMgYmVlbiBsb2FkZWQuCiAgZnVuY3Rpb24gTWFrZUNsYXNzTmFtZSgkdHlwZSwgJGNsYXNzRGlyUHJlZml4KQogIHsKICAgIC8vIHBlcmZvcm0gcnVkaW1lbnRhcnkgc2VjdXJpdHksIHNpbmNlIFR5cGUgY291bGQgY29tZSBpbiBmcm9tIGEgZm9ybQogICAgJHR5cGUgPSBwcmVnX3JlcGxhY2UoIi9bXFddfFwuXC4vIiwgIl8iLCAkdHlwZSk7CiAgICBpZiAoJHR5cGUgPT0gJycgfHwgc3RybGVuKCR0eXBlKSA8IDEpCiAgICAgIHsKCSR0eXBlID0gJ0ZpZWxkJzsKICAgICAgfQogICAgJGNsYXNzRmlsZT0nJzsKICAgIGlmIChzdHJsZW4oJGNsYXNzRGlyUHJlZml4KSA+IDApCiAgICAgIHsKCSRjbGFzc0ZpbGUgPSAkY2xhc3NEaXJQcmVmaXggLicvJy4kdHlwZS4nLmNsYXNzLnBocCc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJGNsYXNzRmlsZSA9ICR0eXBlLicuY2xhc3MucGhwJzsKICAgICAgfQogICAgcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvJy4kY2xhc3NGaWxlOwogICAgLy8gY2xhc3MgbmFtZXMgYXJlIHByZXBlbmRlZCB3aXRoICJmYiIgdG8gcHJldmVudCBuYW1lc3BhY2UgY2xhc2guCiAgICByZXR1cm4gKCAnZmInLiR0eXBlICk7CiAgfQoKICBmdW5jdGlvbiBBZGRFZGl0Rm9ybSgkaWQsICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCiAgewogICAgZ2xvYmFsICRnQ21zOwogICAgJG1vZCA9ICYkdGhpcy0+bW9kdWxlX3B0cjsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywkbWVzc2FnZSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkJICRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9zdG9yZV9mb3JtJywgJHJldHVybmlkKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybWlkJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2Zvcm1faWQnLCAkdGhpcy0+SWQpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiSGVhZGVycygpLgogICAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ21haW50YWInLCRtb2QtPkxhbmcoJ3RhYl9tYWluJykpLgogICAgICAgICAkbW9kLT5TZXRUYWJIZWFkZXIoJ3N1Ym1pdHRhYicsJG1vZC0+TGFuZygndGFiX3N1Ym1pdCcpKS4KICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdzeW1ib2x0YWInLCRtb2QtPkxhbmcoJ3RhYl9zeW1ib2wnKSkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcignY2FwdGNoYXRhYicsJG1vZC0+TGFuZygndGFiX2NhcHRjaGEnKSkuCiAgICAgICAgICRtb2QtPlNldFRhYkhlYWRlcigndGVtcGxhdGVsYXlvdXQnLCRtb2QtPkxhbmcoJ3RhYl90ZW1wbGF0ZWxheW91dCcpKS4KICAgICAgICAgJG1vZC0+U2V0VGFiSGVhZGVyKCdzdWJtaXR0ZW1wbGF0ZScsJG1vZC0+TGFuZygndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZScpKS4KCQkJJG1vZC0+RW5kVGFiSGVhZGVycygpIC4gJG1vZC0+U3RhcnRUYWJDb250ZW50KCkpOwoJICAKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWludGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigibWFpbnRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXR0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJzdWJtaXR0YWIiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ltYm9sdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigic3ltYm9sdGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRldGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigidGVtcGxhdGVsYXlvdXQiKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0dGVtcGxhdGV0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiKCJzdWJtaXR0ZW1wbGF0ZSIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhdGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigiY2FwdGNoYXRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfZW5kJywkbW9kLT5FbmRUYWIoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZm9ybV9lbmQnLCRtb2QtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV9uYW1lJywkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX25hbWUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9uYW1lJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1fbmFtZScsCgkJCQkJICAgICAgICR0aGlzLT5OYW1lLCA1MCkpOwoJCgkKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnLCRtb2QtPkxhbmcoJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZScpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9sb2FkX3RlbXBsYXRlJywkbW9kLT5MYW5nKCd0aXRsZV9sb2FkX3RlbXBsYXRlJykpOwoJJG1vZExpbmsgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2dldF90ZW1wbGF0ZScsICRyZXR1cm5pZCwgJycsIGFycmF5KCksICcnLCB0cnVlKTsKCWxpc3QoJG1vZF9wYXRoLCAkbW9kX3BhcmFtKSA9IGV4cGxvZGUoJz8nLCRtb2RMaW5rKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtb2RfcGF0aCcsJG1vZF9wYXRoKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtb2RfcGFyYW0nLCRtb2RfcGFyYW0pOwoJCgkkdGVtcGxhdGVMaXN0ID0gYXJyYXkoJyc9PicnLCRtb2QtPkxhbmcoJ2RlZmF1bHRfdGVtcGxhdGUnKT0+J1JlbmRlckZvcm1EZWZhdWx0LnRwbCcsCgkJJG1vZC0+TGFuZygndGFibGVfbGVmdF90ZW1wbGF0ZScpPT4nUmVuZGVyRm9ybVRhYmxlVGl0bGVMZWZ0LnRwbCcsCgkJJG1vZC0+TGFuZygndGFibGVfdG9wX3RlbXBsYXRlJyk9PidSZW5kZXJGb3JtVGFibGVUaXRsZVRvcC50cGwnKTsKCQkKCSRhbGxGb3JtcyA9ICRtb2QtPkdldEZvcm1zKCk7Cglmb3JlYWNoICgkYWxsRm9ybXMgYXMgJHRoaXNGb3JtKQoJCXsKCQlpZiAoJHRoaXNGb3JtWydmb3JtX2lkJ10gIT0gJHRoaXMtPklkKQoJCQl7CgkJCSR0ZW1wbGF0ZUxpc3RbJG1vZC0+TGFuZygnZm9ybV90ZW1wbGF0ZV9uYW1lJywkdGhpc0Zvcm1bJ25hbWUnXSldID0KCQkJCSR0aGlzRm9ybVsnZm9ybV9pZCddOwoJCQl9CgkJfQoJCgkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfbG9hZF90ZW1wbGF0ZScsJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsCgkJJ2ZicnBfZmJfdGVtcGxhdGVfbG9hZCcsICR0ZW1wbGF0ZUxpc3QsIC0xLCAnJywgJ2lkPSJmYl90ZW1wbGF0ZV9sb2FkIiBvbmNoYW5nZT0iZ2V0VGVtcGxhdGUoKSInKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignaGVscF90ZW1wbGF0ZV92YXJpYWJsZXMnLCRtb2QtPkxhbmcoJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV91bnNwZWNpZmllZCcsJG1vZC0+TGFuZygndGl0bGVfZm9ybV91bnNwZWNpZmllZCcpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9mb3JtX3Vuc3BlY2lmaWVkJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX3Vuc3BlY2lmaWVkJywKCQkJCQkgICAgICAgJHRoaXMtPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKSwgNTApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX3N0YXR1cycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3N0YXR1cycpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0ZXh0X3JlYWR5JywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50JykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fYWxpYXMnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fYWxpYXMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZm9ybV9hbGlhcycsCgkJCSAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9mb3JtX2FsaWFzJywKCQkJCQkgICAgICAgJHRoaXMtPkFsaWFzLCA1MCkpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X2Zvcm1fY3NzX2NsYXNzJywKCQkJICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX2Zvcm1hX2Nzc19jbGFzcycsCgkJCQkJICAgICAgICR0aGlzLT5HZXRBdHRyKCdjc3NfY2xhc3MnLCdmb3JtYnVpbGRlcmZvcm0nKSwgNTAsNTApKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX2ZpZWxkcycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX2ZpZWxkcycpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9mb3JtX21haW4nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZm9ybV9tYWluJykpOwogICAgaWYoICRtb2QtPkdldFByZWZlcmVuY2UoJ3Nob3dfZmllbGRpZHMnLDApICE9IDAgKQogICAgICB7CgkgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9pZCcsCgkJCSAgICAgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfaWQnKSk7CiAgICAgIH0KICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkYWxpYXNlcycsMCkgIT0gMCApCiAgICAgIHsKCSAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX2FsaWFzJywKCQkJICAgICAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9hbGlhcycpKTsKICAgICAgfQoKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZmllbGRfbmFtZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9uYW1lJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2ZpZWxkX3R5cGUnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfZmllbGRfdHlwZScpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF90eXBlJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3R5cGUnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfZm9ybV90ZW1wbGF0ZScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9mb3JtX3RlbXBsYXRlJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJywKCQkJICRtb2QtPkxhbmcoJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfcmVkaXJlY3RfcGFnZScpKTsKCQkJIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2FjdGlvbicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X3Jlc3BvbnNlJykpOwoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9pbmxpbmVfZm9ybScsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9pbmxpbmVfZm9ybScpKTsKCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2FjdGlvbnMnLAoJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2FjdGlvbnMnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2xhYmVscycsCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfbGFiZWxzJykpOwoJICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCcsCgkJCQkgJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnKSk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfc3VibWl0X2hlbHAnLAokbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9pbmZvLmdpZicsJ3RydWUnLCcnLCcnLCdzeXN0ZW1pY29uJykuCgkJCSAkbW9kLT5MYW5nKCd0aXRsZV9zdWJtaXRfaGVscCcpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCcsCiRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2luZm8uZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKS4KCQkJJG1vZC0+TGFuZygndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnKSk7CgogICAgJHN1Ym1pdEFjdGlvbnMgPSBhcnJheSgkbW9kLT5MYW5nKCdkaXNwbGF5X3RleHQnKT0+J3RleHQnLAogICAgICAgICAkbW9kLT5MYW5nKCdyZWRpcmVjdF90b19wYWdlJyk9PidyZWRpcicpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9hY3Rpb24nLAogICAgICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwKCRpZCwgJ2ZicnBfZm9ybWFfc3VibWl0X2FjdGlvbicsICRzdWJtaXRBY3Rpb25zLCAkdGhpcy0+R2V0QXR0cignc3VibWl0X2FjdGlvbicsJ3RleHQnKSkpOwoKICAgICRjYXB0Y2hhID0gJiRtb2QtPmdldE1vZHVsZUluc3RhbmNlKCdDYXB0Y2hhJyk7CiAgICBpZiAoJGNhcHRjaGEgPT0gbnVsbCkKICAgICAgICAgewogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5zdGFsbF9jYXB0Y2hhJywKCQkJICAgJG1vZC0+TGFuZygndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJykpOwogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignY2FwdGNoYV9pbnN0YWxsZWQnLDApOwogICAgICAgICB9CiAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX3VzZV9jYXB0Y2hhJywKCQkJICAgJG1vZC0+TGFuZygndGl0bGVfdXNlX2NhcHRjaGEnKSk7CiAgICAgICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdjYXB0Y2hhX2luc3RhbGxlZCcsMSk7CgogICAgICAgICAkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfdXNlX2NhcHRjaGEnLCRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9mb3JtYV91c2VfY2FwdGNoYScsJzAnKS4KCQkJICAgJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2ZicnBfZm9ybWFfdXNlX2NhcHRjaGEnLCcxJywkdGhpcy0+R2V0QXR0cigndXNlX2NhcHRjaGEnLCcwJykpLgoJCQkgICAkbW9kLT5MYW5nKCd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJykpOwoJCQl9CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbigndGl0bGVfaW5mb3JtYXRpb24nLCRtb2QtPkxhbmcoJ2luZm9ybWF0aW9uJykpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX29yZGVyJywkbW9kLT5MYW5nKCdvcmRlcicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnLCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldicpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoYXNkaXNwb3NpdGlvbicsJHRoaXMtPkhhc0Rpc3Bvc2l0aW9uKCk/MTowKTsKICAgICRtYXhPcmRlciA9IDE7CiAgICBpZigkdGhpcy0+SWQgPiAwKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignc3VibWl0X2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLAoJCQkJCQkgICAgICRtb2QtPkxhbmcoJ3NhdmVfYW5kX2NvbnRpbnVlJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLAoJCQkgICAgICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZicnBfZm9ybV9vcCcsJG1vZC0+TGFuZygndXBkYXRlZCcpKSk7CgkkbW9kLT5zbWFydHktPmFzc2lnbignYWRkaW5nJywwKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzYXZlX2J1dHRvbicsCgkJCSAgICAgJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9zdWJtaXQnLCAkbW9kLT5MYW5nKCdzYXZlJykpKTsKCSRmaWVsZExpc3QgPSBhcnJheSgpOwoJJGN1cnJvdyA9ICJyb3cxIjsKCSRjb3VudCA9IDE7CgkkbGFzdCA9ICR0aGlzLT5HZXRGaWVsZENvdW50KCk7Cglmb3JlYWNoICgkdGhpcy0+RmllbGRzIGFzICR0aGlzRmllbGQpCgkgIHsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+cm93Y2xhc3MgPSAkY3Vycm93OwoJICAgICRvbmVzZXQtPm5hbWUgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJycsICR0aGlzRmllbGQtPkdldE5hbWUoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgIGlmKCAkbW9kLT5HZXRQcmVmZXJlbmNlKCdzaG93X2ZpZWxkaWRzJywwKSAhPSAwICkKCSAgICAgIHsKCQkkb25lc2V0LT5pZCA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJHRoaXNGaWVsZC0+R2V0SWQoKSwgYXJyYXkoJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSwnZm9ybV9pZCc9PiR0aGlzLT5JZCkpOwoJICAgICAgfQoJICAgICRvbmVzZXQtPnR5cGUgPSAkdGhpc0ZpZWxkLT5HZXREaXNwbGF5VHlwZSgpOwoJICAgICRvbmVzZXQtPmFsaWFzID0gJHRoaXNGaWVsZC0+R2V0QWxpYXMoKTsKCSAgICBpZiAoLyokdGhpc0ZpZWxkLT5Jc0Rpc3Bvc2l0aW9uKCkgfHwqLwoJCSEkdGhpc0ZpZWxkLT5EaXNwbGF5SW5Gb3JtKCkgfHwKCQkkdGhpc0ZpZWxkLT5Jc05vblJlcXVpcmFibGVGaWVsZCgpKQoJICAgICAgewoJCSRvbmVzZXQtPmRpc3Bvc2l0aW9uID0gJy4nOwoJICAgICAgfQoJICAgIGVsc2UgaWYgKCR0aGlzRmllbGQtPklzUmVxdWlyZWQoKSkKCSAgICAgIHsKCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL3RydWUuZ2lmJywndHJ1ZScsJycsJycsJ3N5c3RlbWljb24nKSwgYXJyYXkoJ2Zvcm1faWQnPT4kdGhpcy0+SWQsJ2ZicnBfYWN0aXZlJz0+J29mZicsJ2ZpZWxkX2lkJz0+JHRoaXNGaWVsZC0+R2V0SWQoKSkpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5kaXNwb3NpdGlvbiA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fdXBkYXRlX2ZpZWxkX3JlcXVpcmVkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsJ2ZhbHNlJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9hY3RpdmUnPT4nb24nLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpKTsKCSAgICAgIH0KCSAgICAkb25lc2V0LT5maWVsZF9zdGF0dXMgPSAkdGhpc0ZpZWxkLT5TdGF0dXNJbmZvKCk7CgkgICAgaWYgKCRjb3VudCA+IDEpCgkgICAgICB7CgkJJG9uZXNldC0+dXAgPSAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9vcmRlcicsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy11LmdpZicsJ3VwJywnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwnZmJycF9kaXInPT4ndXAnLCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCkpKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+dXAgPSAnJm5ic3A7JzsKCSAgICAgIH0KCSAgICBpZiAoJGNvdW50IDwgJGxhc3QpCgkgICAgICB7CgkJJG9uZXNldC0+ZG93bj0kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3VwZGF0ZV9maWVsZF9vcmRlcicsICcnLCAkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9hcnJvdy1kLmdpZicsJ2Rvd24nLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCdmYnJwX2Rpcic9Pidkb3duJywnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpKSk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmRvd24gPSAnJm5ic3A7JzsKCSAgICAgIH0KCSAgICAkb25lc2V0LT5lZGl0bGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fYWRkX2VkaXRfZmllbGQnLCAnJywgJG1vZC0+Y21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLCRtb2QtPkxhbmcoJ2VkaXQnKSwnJywnJywnc3lzdGVtaWNvbicpLCBhcnJheSgnZmllbGRfaWQnPT4kdGhpc0ZpZWxkLT5HZXRJZCgpLCdmb3JtX2lkJz0+JHRoaXMtPklkKSk7CgkgICAgJG9uZXNldC0+ZGVsZXRlbGluayA9ICRtb2QtPkNyZWF0ZUxpbmsoJGlkLCAnYWRtaW5fZGVsZXRlX2ZpZWxkJywgJycsICRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL2RlbGV0ZS5naWYnLCRtb2QtPkxhbmcoJ2RlbGV0ZScpLCcnLCcnLCdzeXN0ZW1pY29uJyksIGFycmF5KCdmaWVsZF9pZCc9PiR0aGlzRmllbGQtPkdldElkKCksJ2Zvcm1faWQnPT4kdGhpcy0+SWQpLCRtb2QtPkxhbmcoJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnLGh0bWxzcGVjaWFsY2hhcnMoJHRoaXNGaWVsZC0+R2V0TmFtZSgpKSkpOwoJICAgICgkY3Vycm93ID09ICJyb3cxIj8kY3Vycm93PSJyb3cyIjokY3Vycm93PSJyb3cxIik7CgkgICAgJGNvdW50Kys7CgkgICAgaWYgKCR0aGlzRmllbGQtPkdldE9yZGVyKCkgPj0gJG1heE9yZGVyKQoJICAgICAgewoJCSRtYXhPcmRlciA9ICR0aGlzRmllbGQtPkdldE9yZGVyKCkgKyAxOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJGZpZWxkTGlzdCwgJG9uZXNldCk7CgkgIH0KCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmaWVsZHMnLCRmaWVsZExpc3QpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZF9maWVsZF9saW5rJywKCQkJICAgICAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPmNtcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPkRpc3BsYXlJbWFnZSgnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9uZXdfZmllbGQnKSwnJywnJywnc3lzdGVtaWNvbicpLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCBmYWxzZSkgLiAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCRtb2QtPkxhbmcoJ3RpdGxlX2FkZF9uZXdfZmllbGQnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfb3JkZXJfYnknPT4kbWF4T3JkZXIpLCAnJywgZmFsc2UpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdvcmRlcl9maWVsZF9saW5rJywKCQkJICAgICAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3Jlb3JkZXJfZm9ybScsICRyZXR1cm5pZCwkbW9kLT5jbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS9yZW9yZGVyLmdpZicsJG1vZC0+TGFuZygndGl0bGVfcmVvcmRlcl9mb3JtJyksJycsJycsJ3N5c3RlbWljb24nKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCksICcnLCBmYWxzZSkgLiAkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX3Jlb3JkZXJfZm9ybScsICRyZXR1cm5pZCwkbW9kLT5MYW5nKCd0aXRsZV9yZW9yZGVyX2Zvcm0nKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCksICcnLCBmYWxzZSkpOwoJCQkgICAgIAkJCSAgICAgCglpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnZW5hYmxlX2Zhc3RhZGQnLDEpID09IDEpCgkgIHsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignZmFzdGFkZCcsMSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlX2Zhc3RhZGQnLCRtb2QtPkxhbmcoJ3RpdGxlX2Zhc3RhZGQnKSk7CgkgICAgJHR5cGVJbnB1dCA9ICI8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4KLyogPCFbQ0RBVEFbICovCmZ1bmN0aW9uIGZhc3RfYWRkKGZpZWxkX3R5cGUpCnsKCXZhciB0eXBlPWZpZWxkX3R5cGUub3B0aW9uc1tmaWVsZF90eXBlLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwoJdmFyIGxpbmsgPSAnIi4kbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2ZpZWxkJywgJHJldHVybmlkLCcnLGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkLCAnZmJycF9vcmRlcl9ieSc9PiRtYXhPcmRlciksICcnLCB0cnVlLHRydWUpLiImIi4kaWQuImZicnBfZmllbGRfdHlwZT0nK3R5cGU7Cgl0aGlzLmxvY2F0aW9uPWxpbms7CglyZXR1cm4gdHJ1ZTsKfQovKiBdXT4gKi8KPC9zY3JpcHQ+IjsKCSAgICAkdHlwZUlucHV0ID0gc3RyX3JlcGxhY2UoJyZhbXA7JywnJicsJHR5cGVJbnB1dCk7IAoJICAgICRtb2QtPmluaXRpYWxpemUoKTsKCSAgICBpZiAoJG1vZC0+R2V0UHJlZmVyZW5jZSgnc2hvd19maWVsZF9sZXZlbCcsJ2Jhc2ljJykgPT0gJ2Jhc2ljJykKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZmFzdGFkZCcsJHR5cGVJbnB1dC4kbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPnN0ZF9maWVsZF90eXBlcyksIC0xLCcnLCAnb25jaGFuZ2U9ImZhc3RfYWRkKHRoaXMpIicpLgoJCQkJJG1vZC0+TGFuZygndGl0bGVfc3dpdGNoX2FkdmFuY2VkJykuCgkJCQkkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfc2V0X2ZpZWxkX2xldmVsJz0+J2FkdmFuY2VkJykpKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkbW9kLT5zbWFydHktPmFzc2lnbignaW5wdXRfZmFzdGFkZCcsJHR5cGVJbnB1dC4kbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfZmllbGRfdHlwZScsYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X3R5cGUnKT0+JycpLCRtb2QtPmZpZWxkX3R5cGVzKSwgLTEsJycsICdvbmNoYW5nZT0iZmFzdF9hZGQodGhpcykiJykuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX3N3aXRjaF9iYXNpYycpLgoJCQkkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkcmV0dXJuaWQsJG1vZC0+TGFuZygndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnKSxhcnJheSgnZm9ybV9pZCc9PiR0aGlzLT5JZCwgJ2ZicnBfc2V0X2ZpZWxkX2xldmVsJz0+J2Jhc2ljJykpKTsKCQkJfQoJICB9CQkJCQkJCQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+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+YXNzaWduKCdpbnB1dF9mb3JtX3RlbXBsYXRlJywKCQkJICRtb2QtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCAkaWQsCgkJCQkJICAgICAgJHRoaXMtPkdldEF0dHIoJ2Zvcm1fdGVtcGxhdGUnLCR0aGlzLT5EZWZhdWx0VGVtcGxhdGUoKSksICdmYnJwX2Zvcm1hX2Zvcm1fdGVtcGxhdGUnLCcnLCdmYl9mb3JtX3RlbXBsYXRlJykpOwoKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdpbnB1dF9zdWJtaXRfamF2YXNjcmlwdCcsCgkJJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsICRpZCwKCQkJCSR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfamF2YXNjcmlwdCcsJycpLCAnZmJycF9mb3JtYV9zdWJtaXRfamF2YXNjcmlwdCcsJ21vZHVsZV9mYl9hcmVhX3Nob3J0JywnZmJfc3VibWl0X2phdmFzY3JpcHQnKS4KCQkJCSc8YnIgLz4nLiRtb2QtPkxhbmcoJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnKSk7CgoJCQkJCSAgICAgIAogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2lucHV0X3N1Ym1pdF9yZXNwb25zZScsCgkJCSAkbW9kLT5DcmVhdGVUZXh0QXJlYShmYWxzZSwgJGlkLAoJCQkJCSAgICAgICR0aGlzLT5HZXRBdHRyKCdzdWJtaXRfcmVzcG9uc2UnLCcnKSwgJ2ZicnBfZm9ybWFfc3VibWl0X3Jlc3BvbnNlJywnbW9kdWxlX2ZiX2FyZWFfd2lkZScpKTsKCgkkcGFybXMgPSBhcnJheSgpOwoJJHBhcm1zWydmb3JtYV9zdWJtaXRfcmVzcG9uc2UnXVsnaHRtbF9idXR0b24nXSA9IHRydWU7CgkkcGFybXNbJ2Zvcm1hX3N1Ym1pdF9yZXNwb25zZSddWyd0eHRfYnV0dG9uJ10gPSBmYWxzZTsKCSRwYXJtc1snZm9ybWFfc3VibWl0X3Jlc3BvbnNlJ11bJ2lzX29uZV9saW5lJ10gPSBmYWxzZTsKCSRwYXJtc1snZm9ybWFfc3VibWl0X3Jlc3BvbnNlJ11bJ2lzX2VtYWlsJ10gPSBmYWxzZTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdoZWxwX3N1Ym1pdF9yZXNwb25zZScsCgkJJHRoaXMtPkFkbWluVGVtcGxhdGVIZWxwKCRpZCwkcGFybXMpKTsKICAgIHJldHVybiAkbW9kLT5Qcm9jZXNzVGVtcGxhdGUoJ0FkZEVkaXRGb3JtLnRwbCcpOwogIH0KCiAgICBmdW5jdGlvbiAmTmV3RmllbGQoJiRwYXJhbXMpCiAgICAgIHsKCS8vJGFlZmllbGQgPSBuZXcgZmJGaWVsZEJhc2UoJHRoaXMsJHBhcmFtcyk7CgkkYWVmaWVsZCA9IGZhbHNlOwogICAgICAgIGlmIChpc3NldCgkcGFyYW1zWydmaWVsZF9pZCddKSAmJiAkcGFyYW1zWydmaWVsZF9pZCddICE9IC0xICkKCSAgewogICAgICAgICAgICAvLyB3ZSdyZSBsb2FkaW5nIGFuIGV4dGFudCBmaWVsZAoJICAgICRzcWwgPSAnU0VMRUNUIHR5cGUgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpIC4gJ21vZHVsZV9mYl9maWVsZCBXSEVSRSBmaWVsZF9pZD0/JzsKCSAgICAkcnMgPSAkdGhpcy0+bW9kdWxlX3B0ci0+ZGJIYW5kbGUtPkV4ZWN1dGUoJHNxbCwgYXJyYXkoICRwYXJhbXNbJ2ZpZWxkX2lkJ10pKTsKCSAgICBpZigkcnMgJiYgJHJlc3VsdCA9ICRycy0+RmV0Y2hSb3coKSkKCSAgICAgIHsJCQkJCgkJaWYgKCRyZXN1bHRbJ3R5cGUnXSAhPSAnJykKCQkgIHsKCQkgICAgJGNsYXNzTmFtZSA9ICR0aGlzLT5NYWtlQ2xhc3NOYW1lKCRyZXN1bHRbJ3R5cGUnXSAsICcnKTsKCQkgICAgJGFlZmllbGQgPSBuZXcgJGNsYXNzTmFtZSgkdGhpcywgJHBhcmFtcyk7CgkJICAgICRhZWZpZWxkLT5Mb2FkRmllbGQoJHBhcmFtcyk7CgkJICB9CgkgICAgICB9CgkgIH0KCWlmICgkYWVmaWVsZCA9PT0gZmFsc2UpCgkgIHsKCSAgICAvLyBuZXcgZmllbGQKCSAgICBpZiAoISBpc3NldCgkcGFyYW1zWydmYnJwX2ZpZWxkX3R5cGUnXSkpCgkgICAgICB7CgkJLy8gdW5rbm93biBmaWVsZCB0eXBlCgkJJGFlZmllbGQgPSBuZXcgZmJGaWVsZEJhc2UoJHRoaXMsJHBhcmFtcyk7CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCS8vIHNwZWNpZmllZCBmaWVsZCB0eXBlIHZpYSBwYXJhbXMKICAgICAgICAgICAgCSRjbGFzc05hbWUgPSAkdGhpcy0+TWFrZUNsYXNzTmFtZSgkcGFyYW1zWydmYnJwX2ZpZWxkX3R5cGUnXSwgJycpOwogICAgICAgICAgICAJJGFlZmllbGQgPSBuZXcgJGNsYXNzTmFtZSgkdGhpcywgJHBhcmFtcyk7CgkgICAgICB9CgkgIH0KCXJldHVybiAkYWVmaWVsZDsKICAgICAgfQoKCgogIGZ1bmN0aW9uIEFkZEVkaXRGaWVsZCgkaWQsICYkYWVmaWVsZCwgJGRpc3Bvc2Vfb25seSwgJHJldHVybmlkLCAkbWVzc2FnZT0nJykKICB7CiAgICAkbW9kID0gJHRoaXMtPm1vZHVsZV9wdHI7CgkJCiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsJG1lc3NhZ2UpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2JhY2t0b2Zvcm1fbmF2JywkbW9kLT5DcmVhdGVMaW5rKCRpZCwgJ2FkbWluX2FkZF9lZGl0X2Zvcm0nLCAkcmV0dXJuaWQsICRtb2QtPkxhbmcoJ2xpbmtfYmFja190b19mb3JtJyksIGFycmF5KCdmb3JtX2lkJz0+JHRoaXMtPklkKSkpOwogICAgJG1haW5MaXN0ID0gYXJyYXkoKTsKICAgICRhZHZMaXN0ID0gYXJyYXkoKTsKICAgICRiYXNlTGlzdCA9ICRhZWZpZWxkLT5QcmVQb3B1bGF0ZUJhc2VBZG1pbkZvcm0oJGlkLCAkZGlzcG9zZV9vbmx5KTsKICAgIGlmICgkYWVmaWVsZC0+R2V0RmllbGRUeXBlKCkgPT0gJycpCiAgICAgIHsKCS8vIHN0aWxsIG5lZWQgdHlwZQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCkpOwkJCQoJJGZpZWxkTGlzdCA9IGFycmF5KCdtYWluJz0+YXJyYXkoKSwnYWR2Jz0+YXJyYXkoKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJLy8gd2UgaGF2ZSBvdXIgdHlwZQoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N0YXJ0X2Zvcm0nLCRtb2QtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdhZG1pbl9hZGRfZWRpdF9maWVsZCcsICRyZXR1cm5pZCkpOwkKCSRmaWVsZExpc3QgPSAkYWVmaWVsZC0+UHJlUG9wdWxhdGVBZG1pbkZvcm0oJGlkKTsKICAgICAgfQogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2VuZF9mb3JtJywgJG1vZC0+Q3JlYXRlRm9ybUVuZCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJfc3RhcnQnLCRtb2QtPlN0YXJ0VGFiSGVhZGVycygpLgoJCQkgJG1vZC0+U2V0VGFiSGVhZGVyKCdtYWludGFiJywkbW9kLT5MYW5nKCd0YWJfbWFpbicpKS4KCQkJICRtb2QtPlNldFRhYkhlYWRlcignYWR2YW5jZWR0YWInLCRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpKS4KCQkJICRtb2QtPkVuZFRhYkhlYWRlcnMoKSAuICRtb2QtPlN0YXJ0VGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCd0YWJzX2VuZCcsJG1vZC0+RW5kVGFiQ29udGVudCgpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdtYWludGFiX3N0YXJ0JywkbW9kLT5TdGFydFRhYigibWFpbnRhYiIpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZHZhbmNlZHRhYl9zdGFydCcsJG1vZC0+U3RhcnRUYWIoImFkdmFuY2VkdGFiIikpOwogICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3RhYl9lbmQnLCRtb2QtPkVuZFRhYigpKTsKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdub3RpY2Vfc2VsZWN0X3R5cGUnLCRtb2QtPkxhbmcoJ25vdGljZV9zZWxlY3RfdHlwZScpKTsKCiAgICBpZigkYWVmaWVsZC0+R2V0SWQoKSAhPSAtMSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ29wJywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX29wJywkbW9kLT5MYW5nKCd1cGRhdGVkJykpKTsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfYWVmX3VwZCcsICRtb2QtPkxhbmcoJ3VwZGF0ZScpKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ29wJywkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmYnJwX29wJywgJG1vZC0+TGFuZygnYWRkZWQnKSkpOwoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZmJycF9hZWZfYWRkJywgJG1vZC0+TGFuZygnYWRkJykpKTsKICAgICAgfQoKICAgIGlmICgkYWVmaWVsZC0+SGFzQWRkT3AoKSkKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2FkZCcsJG1vZC0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdmYnJwX2FlZl9vcHRhZGQnLCRhZWZpZWxkLT5HZXRPcHRpb25BZGRCdXR0b24oKSkpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdhZGQnLCcnKTsKICAgICAgfQogICAgaWYgKCRhZWZpZWxkLT5IYXNEZWxldGVPcCgpKQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbignZGVsJywkbW9kLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2ZicnBfYWVmX29wdGRlbCcsJGFlZmllbGQtPkdldE9wdGlvbkRlbGV0ZUJ1dHRvbigpKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2RlbCcsJycpOwogICAgICB9CgoKICAgICRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmYl9oaWRkZW4nLCAkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdmb3JtX2lkJywgJHRoaXMtPklkKSAuICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ2ZpZWxkX2lkJywgJGFlZmllbGQtPkdldElkKCkpIC4gJG1vZC0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnZmJycF9vcmRlcl9ieScsICRhZWZpZWxkLT5HZXRPcmRlcigpKS4KCQkJICRtb2QtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnZmJycF9zZXRfZnJvbV9mb3JtJywnMScpKTsKCiAgICBpZiAoLyohJGFlZmllbGQtPklzRGlzcG9zaXRpb24oKSAmJiAqLyAhJGFlZmllbGQtPklzTm9uUmVxdWlyYWJsZUZpZWxkKCkpCiAgICAgIHsKCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdyZXF1aXJhYmxlJywxKTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkbW9kLT5zbWFydHktPmFzc2lnbigncmVxdWlyYWJsZScsMCk7CiAgICAgIH0KCQkJCiAgICBpZiAoaXNzZXQoJGJhc2VMaXN0WydtYWluJ10pKQogICAgICB7Cglmb3JlYWNoICgkYmFzZUxpc3RbJ21haW4nXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0cj0kaXRlbVswXTsKCSAgICAkaW5wdXRTdHI9JGl0ZW1bMV07CgkgICAgJG9uZXNldCA9IG5ldyBzdGRDbGFzcygpOwoJICAgICRvbmVzZXQtPnRpdGxlID0gJHRpdGxlU3RyOwoJICAgIGlmIChpc19hcnJheSgkaW5wdXRTdHIpKQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyWzBdOwoJCSRvbmVzZXQtPmhlbHAgPSAkaW5wdXRTdHJbMV07CgkgICAgICB9CgkgICAgZWxzZQoJICAgICAgewoJCSRvbmVzZXQtPmlucHV0ID0gJGlucHV0U3RyOwoJCSRvbmVzZXQtPmhlbHA9Jyc7CgkgICAgICB9CgkgICAgYXJyYXlfcHVzaCgkbWFpbkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQkKICAgIGlmIChpc3NldCgkYmFzZUxpc3RbJ2FkdiddKSkKICAgICAgewoJZm9yZWFjaCAoJGJhc2VMaXN0WydhZHYnXSBhcyAkaXRlbSkKCSAgewoJICAgICR0aXRsZVN0ciA9ICRpdGVtWzBdOwoJICAgICRpbnB1dFN0ciA9ICRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJGFkdkxpc3QsJG9uZXNldCk7CgkgIH0KICAgICAgfQkKICAgIGlmIChpc3NldCgkZmllbGRMaXN0WydtYWluJ10pKQogICAgICB7Cglmb3JlYWNoICgkZmllbGRMaXN0WydtYWluJ10gYXMgJGl0ZW0pCgkgIHsKCSAgICAkdGl0bGVTdHI9JGl0ZW1bMF07CgkgICAgJGlucHV0U3RyPSRpdGVtWzFdOwoJICAgICRvbmVzZXQgPSBuZXcgc3RkQ2xhc3MoKTsKCSAgICAkb25lc2V0LT50aXRsZSA9ICR0aXRsZVN0cjsKCSAgICBpZiAoaXNfYXJyYXkoJGlucHV0U3RyKSkKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0clswXTsKCQkkb25lc2V0LT5oZWxwID0gJGlucHV0U3RyWzFdOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkkb25lc2V0LT5pbnB1dCA9ICRpbnB1dFN0cjsKCQkkb25lc2V0LT5oZWxwPScnOwoJICAgICAgfQoJICAgIGFycmF5X3B1c2goJG1haW5MaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0KICAgIGlmIChpc3NldCgkZmllbGRMaXN0WydhZHYnXSkpCiAgICAgIHsKCWZvcmVhY2ggKCRmaWVsZExpc3RbJ2FkdiddIGFzICRpdGVtKQoJICB7CgkgICAgJHRpdGxlU3RyPSRpdGVtWzBdOwoJICAgICRpbnB1dFN0cj0kaXRlbVsxXTsKCSAgICAkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkgICAgJG9uZXNldC0+dGl0bGUgPSAkdGl0bGVTdHI7CgkgICAgaWYgKGlzX2FycmF5KCRpbnB1dFN0cikpCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHJbMF07CgkJJG9uZXNldC0+aGVscCA9ICRpbnB1dFN0clsxXTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJJG9uZXNldC0+aW5wdXQgPSAkaW5wdXRTdHI7CgkJJG9uZXNldC0+aGVscD0nJzsKCSAgICAgIH0KCSAgICBhcnJheV9wdXNoKCRhZHZMaXN0LCRvbmVzZXQpOwoJICB9CiAgICAgIH0KCQkKICAgICRhZWZpZWxkLT5Qb3N0UG9wdWxhdGVBZG1pbkZvcm0oJG1haW5MaXN0LCAkYWR2TGlzdCk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignbWFpbkxpc3QnLCRtYWluTGlzdCk7CiAgICAkbW9kLT5zbWFydHktPmFzc2lnbignYWR2TGlzdCcsJGFkdkxpc3QpOwogICAgcmV0dXJuICRtb2QtPlByb2Nlc3NUZW1wbGF0ZSgnQWRkRWRpdEZpZWxkLnRwbCcpOwogIH0KCiAgZnVuY3Rpb24gTWFrZUFsaWFzKCRzdHJpbmcsICRpc0Zvcm09ZmFsc2UpCiAgewogICAgJHN0cmluZyA9IHRyaW0oaHRtbHNwZWNpYWxjaGFycygkc3RyaW5nKSk7CiAgICBpZiAoJGlzRm9ybSkKICAgICAgewoJcmV0dXJuIHN0cnRvbG93ZXIoJHN0cmluZyk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuICdmYicuc3RydG9sb3dlcigkc3RyaW5nKTsKICAgICAgfQogIH0KICAgIAogIGZ1bmN0aW9uIFN3YXBGaWVsZHNCeUluZGV4KCRzcmNfZmllbGRfaW5kZXgsICRkZXN0X2ZpZWxkX2luZGV4KQogIHsKICAgICRzcmNGaWVsZCA9ICYkdGhpcy0+R2V0RmllbGRCeUluZGV4KCRzcmNfZmllbGRfaW5kZXgpOwogICAgJGRlc3RGaWVsZCA9ICYkdGhpcy0+R2V0RmllbGRCeUluZGV4KCRkZXN0X2ZpZWxkX2luZGV4KTsKICAgICR0bXBPcmRlckJ5ID0gJGRlc3RGaWVsZC0+R2V0T3JkZXIoKTsKICAgICRkZXN0RmllbGQtPlNldE9yZGVyKCRzcmNGaWVsZC0+R2V0T3JkZXIoKSk7CiAgICAkc3JjRmllbGQtPlNldE9yZGVyKCR0bXBPcmRlckJ5KTsKICAgIC8vaXQgc2VlbXMgdGhpcyBtYWtlcyBwaHA0IGdvIGNyYXp5IGZpeGVkIGJ5IHJlbG9hZGluZyBmb3JtIGJlZm9yZSBzaG93aW5nIGl0IGFnYWluCiAgICAjICAgICAgICAkdGhpcy0+RmllbGRzWyRkZXN0X2ZpZWxkX2luZGV4XSA9ICRzcmNGaWVsZDsKICAgICMgICAgICAgICR0aGlzLT5GaWVsZHNbJHNyY19maWVsZF9pbmRleF0gPSAkZGVzdEZpZWxkOwogICAgJHNyY0ZpZWxkLT5TdG9yZSgpOwogICAgJGRlc3RGaWVsZC0+U3RvcmUoKTsKICB9CgogIGZ1bmN0aW9uICZHZXRGaWVsZHMoKQogICAgewogICAgICByZXR1cm4gJHRoaXMtPkZpZWxkczsKICAgIH0KCiAgZnVuY3Rpb24gJkdldEZpZWxkQnlJZCgkZmllbGRfaWQpCiAgICB7CiAgICAgICRpbmRleCA9IC0xOwogICAgICBmb3IgKCRpPTA7JGk8Y291bnQoJHRoaXMtPkZpZWxkcyk7JGkrKykKCXsKCSAgaWYgKCR0aGlzLT5GaWVsZHNbJGldLT5HZXRJZCgpID09ICRmaWVsZF9pZCkKCSAgICB7CgkgICAgICAkaW5kZXggPSAkaTsKCSAgICB9Cgl9CiAgICAgIGlmICgkaW5kZXggIT0gLTEpCgl7CgkgIHJldHVybiAkdGhpcy0+RmllbGRzWyRpbmRleF07Cgl9CiAgICAgIGVsc2UKCXsKCSAgcmV0dXJuIGZhbHNlOwoJfQogICAgfQoKICBmdW5jdGlvbiAmR2V0RmllbGRCeUluZGV4KCRmaWVsZF9pbmRleCkKICAgIHsKICAgICAgcmV0dXJuICR0aGlzLT5GaWVsZHNbJGZpZWxkX2luZGV4XTsKICAgIH0KCgogIGZ1bmN0aW9uIEdldEZpZWxkSW5kZXhGcm9tSWQoJGZpZWxkX2lkKQogIHsKICAgICRpbmRleCA9IC0xOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCWlmICgkdGhpcy0+RmllbGRzWyRpXS0+R2V0SWQoKSA9PSAkZmllbGRfaWQpCgkgIHsKCSAgICAkaW5kZXggPSAkaTsKCSAgfQogICAgICB9CiAgICByZXR1cm4gJGluZGV4OwogIH0KCgogIGZ1bmN0aW9uIERlZmF1bHRUZW1wbGF0ZSgpCiAgewogICAgcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKGRpcm5hbWUoX19GSUxFX18pLicvLi4vdGVtcGxhdGVzL1JlbmRlckZvcm1EZWZhdWx0LnRwbCcpOwogIH0KCiAgZnVuY3Rpb24gRGVsZXRlRmllbGQoJGZpZWxkX2lkKQogIHsKICAgICRpbmRleCA9ICR0aGlzLT5HZXRGaWVsZEluZGV4RnJvbUlkKCRmaWVsZF9pZCk7CiAgICBpZiAoJGluZGV4ICE9IC0xKQogICAgICB7CgkkdGhpcy0+RmllbGRzWyRpbmRleF0tPkRlbGV0ZSgpOwoJYXJyYXlfc3BsaWNlKCR0aGlzLT5GaWVsZHMsJGluZGV4LDEpOwogICAgICB9CiAgfSAKCiAgZnVuY3Rpb24gUmVzZXRGaWVsZHMoKQogIHsKICAgIGZvcigkaT0wOyRpPGNvdW50KCR0aGlzLT5GaWVsZHMpOyRpKyspCiAgICAgIHsKCSR0aGlzLT5GaWVsZHNbJGldLT5SZXNldFZhbHVlKCk7CiAgICAgIH0KICB9CiAgICAKICAvLyB0aGlzIHdpbGwgaW5zdGFudGlhdGUgdGhlIGZvcm0sIGFuZCBsb2FkIHRoZSByZXN1bHRzCiAgZnVuY3Rpb24gTG9hZFJlc3BvbnNlKCRyZXNwb25zZV9pZCkKICB7CiAgICAkZGIgPSAmJHRoaXMtPm1vZHVsZV9wdHItPmRiSGFuZGxlOwogICAgLy8gbG9hZGluZyBhIHJlc3BvbnNlIC0tIGF0IHRoaXMgcG9pbnQsIHdlIGNoZWNrIHRoYXQgdGhlIHJlc3BvbnNlCiAgICAvLyBpcyBmb3IgdGhlIGNvcnJlY3QgZm9ybV9pZCEKICAgICRzcWwgPSAnU0VMRUNUIGZvcm1faWQgRlJPTSAnIC4gY21zX2RiX3ByZWZpeCgpLgogICAgICAnbW9kdWxlX2ZiX3Jlc3Agd2hlcmUgcmVzcF9pZD0/JzsKICAgIGlmKCRyZXN1bHQgPSAkZGItPkdldFJvdygkc3FsLCBhcnJheSgkcmVzcG9uc2VfaWQpKSkKICAgICAgewoJaWYgKCRyZXN1bHRbJ2Zvcm1faWQnXSAhPSAkdGhpcy0+R2V0SWQoKSkKCSAgewoJICAgIHJldHVybiBmYWxzZTsKCSAgfQoJCSAgICAKCSR0aGlzLT5SZXNldEZpZWxkcygpOwoKCSRzcWwgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KCSAgJ21vZHVsZV9mYl9yZXNwX3ZhbCBXSEVSRSByZXNwX2lkPT8gb3JkZXIgYnkgcmVzcF92YWxfaWQnOwoJJGRicmVzdWx0ID0gJGRiLT5FeGVjdXRlKCRzcWwsIGFycmF5KCRyZXNwb25zZV9pZCkpOwoJd2hpbGUgKCRkYnJlc3VsdCAmJiAkcm93ID0gJGRicmVzdWx0LT5GZXRjaFJvdygpKQoJICB7CgkgICAgJGluZGV4ID0gJHRoaXMtPkdldEZpZWxkSW5kZXhGcm9tSWQoJHJvd1snZmllbGRfaWQnXSk7CiAgICAgICAgICAgIGlmKCRpbmRleCAhPSAtMSAmJiAgaXNfb2JqZWN0KCR0aGlzLT5GaWVsZHNbJGluZGV4XSkgKQogICAgICAgICAgICAgewoJICAgICAgICR0aGlzLT5GaWVsZHNbJGluZGV4XS0+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+TGFuZygndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJyxhcnJheSgkcmVzcG9uc2VfaWQsJGFwcHJvdmVyKSkpOwogICAgICB9CiAgICBpZiAoISAkbmV3cmVjKQogICAgICB7CgkgICRzcWwgPSAnVVBEQVRFICcgLiBjbXNfZGJfcHJlZml4KCkuCgkJCSdtb2R1bGVfZmJfZm9ybWJyb3dzZXIgc2V0IGluZGV4X2tleV8xPT8sIGluZGV4X2tleV8yPT8sIGluZGV4X2tleV8zPT8sIGluZGV4X2tleV80PT8sIGluZGV4X2tleV81PT8sIHJlc3BvbnNlPT8gd2hlcmUgZmJyX2lkPT8nOwoJICAkcmVzID0gJGRiLT5FeGVjdXRlKCRzcWwsCgkJCSAgICBhcnJheSgkc29ydGZpZWxkMSwkc29ydGZpZWxkMiwkc29ydGZpZWxkMywkc29ydGZpZWxkNCwkc29ydGZpZWxkNSwkeG1sLCRyZXNwb25zZV9pZCkpOwogICAgICB9CiAgICByZXR1cm4gYXJyYXkoJHJlc3BvbnNlX2lkLCRzZWNyZXRfY29kZSk7CiAgfSAgIAoKCiAgZnVuY3Rpb24gY2xlYW5fZGF0ZXRpbWUoJGR0KQogIHsKICAgIHJldHVybiBzdWJzdHIoJGR0LDEsc3RybGVuKCRkdCktMik7CiAgfQogIAogIGZ1bmN0aW9uIEV4cG9ydFhNTCgkZXhwb3J0VmFsdWVzID0gZmFsc2UpCiAgewoJJHhtbHN0ciA9ICI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtOFwiPz5cbiI7CgkkeG1sc3RyIC49ICI8Zm9ybSBpZD1cIiIuJHRoaXMtPklkLiJcIlxuIjsKCSR4bWxzdHIgLj0gIlx0YWxpYXM9XCIiLiR0aGlzLT5BbGlhcy4iXCI+XG4iOwoJJHhtbHN0ciAuPSAiXHRcdDxmb3JtX25hbWU+PCFbQ0RBVEFbIi4kdGhpcy0+TmFtZS4iXV0+PC9mb3JtX25hbWU+XG4iOwogICBmb3JlYWNoICgkdGhpcy0+QXR0cnMgYXMgJHRoaXNBdHRyS2V5PT4kdGhpc0F0dHJWYWx1ZSkKICAgICAgewoJCSR4bWxzdHIgLj0gIlx0XHQ8YXR0cmlidXRlIGtleT1cIiR0aGlzQXR0cktleVwiPjwhW0NEQVRBWyR0aGlzQXR0clZhbHVlXV0+PC9hdHRyaWJ1dGU+XG4iOwoJCX0KCWZvcmVhY2goJHRoaXMtPkZpZWxkcyBhcyAkdGhpc0ZpZWxkKQoJCXsKCQkJJHhtbHN0ciAuPSAkdGhpc0ZpZWxkLT5FeHBvcnRYTUwoJGV4cG9ydFZhbHVlcyk7CgkJfQoJJHhtbHN0ciAuPSAiPC9mb3JtPlxuIjsKCXJldHVybiAkeG1sc3RyOwogIH0KICAKICBmdW5jdGlvbiBzZXRGaW5pc2hlZEZvcm1TbWFydHkoKQoJewoJCSRtb2QgPSAmJHRoaXMtPm1vZHVsZV9wdHI7CgkgICAKCSAgICAkdGhlRmllbGRzID0gJiR0aGlzLT5HZXRGaWVsZHMoKTsKCSAgICAkdW5zcGVjID0gJHRoaXMtPkdldEF0dHIoJ3Vuc3BlY2lmaWVkJywkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpKTsKCgkJJGZvcm1JbmZvID0gYXJyYXkoKTsKCQkKCSAgICBmb3IoJGk9MDskaTxjb3VudCgkdGhlRmllbGRzKTskaSsrKQoJICAgICAgewoJCQkkcmVwbFZhbCA9ICR1bnNwZWM7CgkJCSRyZXBsVmFscyA9IGFycmF5KCk7CgkJCWlmICgkdGhlRmllbGRzWyRpXS0+RGlzcGxheUluU3VibWlzc2lvbigpKQoJCSAgCQl7CgkJICAgIAkJJHJlcGxWYWwgPSAkdGhlRmllbGRzWyRpXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkJICAgIAkJaWYgKCRodG1sZW1haWwpCgkJICAgICAgICAJCXsKCQkJCQkJLy8gYWxsb3cgPEJSPiBhcyBkZWxpbWl0ZXIgb3IgaW4gY29udGVudAoJCQkJCQkkcmVwbFZhbCA9IHByZWdfcmVwbGFjZSgnLzxicihccykqKFwvKSo+L2knLCd8QlJ8JywkcmVwbFZhbCk7CgkgICAgICAgICAgICAJCSRyZXBsVmFsID0gaHRtbHNwZWNpYWxjaGFycygkcmVwbFZhbCk7CgkJCQkJCSRyZXBsVmFsID0gcHJlZ19yZXBsYWNlKCcvXHxCUlx8LycsJzxiciAvPicsJHJlcGxWYWwpOwoJICAgICAgICAgICAgCQl9CgkJICAgIAkJaWYgKCRyZXBsVmFsID09ICcnKQoJCSAgICAgIAkJCXsKCQkJCQkJJHJlcGxWYWwgPSAkdW5zcGVjOwoJCSAgICAgIAkJCX0KCQkgIAkJfQoJCQoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJHRoaXMtPk1ha2VWYXIoJHRoZUZpZWxkc1skaV0tPkdldE5hbWUoKSksJHJlcGxWYWwpOwoJCSAJJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZsZF8nLiR0aGVGaWVsZHNbJGldLT5HZXRJZCgpLCRyZXBsVmFsKTsKCQkJJGZsZG9iaiA9ICR0aGVGaWVsZHNbJGldLT5FeHBvcnRPYmplY3QoKTsKCQkgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5NYWtlVmFyKCR0aGVGaWVsZHNbJGldLT5HZXROYW1lKCkpLidfb2JqJywkZmxkb2JqKTsKCQkgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdmbGRfJy4kdGhlRmllbGRzWyRpXS0+R2V0SWQoKS4nX29iaicsJGZsZG9iaik7CgkJCWlmICgkdGhlRmllbGRzWyRpXS0+R2V0QWxpYXMoKSAhPSAnJykKCQkJCXsKCQkgICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpLCRyZXBsVmFsKTsKCQkgICAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCR0aGVGaWVsZHNbJGldLT5HZXRBbGlhcygpLidfb2JqJywkZmxkb2JqKTsKCQkJCX0KCSAgICAgIH0KCQkvLyBnZW5lcmFsIGZvcm0gZGV0YWlscwoJCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfZm9ybV9uYW1lJywkdGhpcy0+R2V0TmFtZSgpKTsKCSAgICAkbW9kLT5zbWFydHktPmFzc2lnbignc3ViX2RhdGUnLGRhdGUoJ3InKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9ob3N0JywkX1NFUlZFUlsnU0VSVkVSX05BTUUnXSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ3N1Yl9zb3VyY2VfaXAnLCRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKCSAgCSRtb2QtPnNtYXJ0eS0+YXNzaWduKCdzdWJfdXJsJywoZW1wdHkoJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKT8kbW9kLT5MYW5nKCdub19yZWZlcnJlcl9pbmZvJyk6JF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ2ZiX3ZlcnNpb24nLCRtb2QtPkdldFZlcnNpb24oKSk7CgkgICAgJG1vZC0+c21hcnR5LT5hc3NpZ24oJ1RBQicsIlx0Iik7Cgl9IAoKCWZ1bmN0aW9uIG1hbmFnZUZpbGVVcGxvYWRzKCkKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJHRoZUZpZWxkcyA9ICYkdGhpcy0+R2V0RmllbGRzKCk7CgkJJG1vZCA9ICYkdGhpcy0+bW9kdWxlX3B0cjsKCgkgICAgZm9yKCRpPTA7JGk8Y291bnQoJHRoZUZpZWxkcyk7JGkrKykKCSAgICAgIHsKCSAgCQlpZiAoc3RydG9sb3dlcihnZXRfY2xhc3MoJHRoZUZpZWxkc1skaV0pKSA9PSAnZmJmaWxldXBsb2FkZmllbGQnICkKCSAgICAJCXsKCSAJCSAgICAgIC8vIEhhbmRsZSBmaWxlIHVwbG9hZHMKCQkJICAgICAgLy8gaWYgdGhlIHVwbG9hZHMgbW9kdWxlIGlzIGZvdW5kLCBhbmQgdGhlIG9wdGlvbiBpcyBjaGVja2VkIGluCgkJCSAgICAgIC8vIHRoZSBmaWVsZCwgdGhlbiB0aGUgZmlsZSBpcyBhZGRlZCB0byB0aGUgdXBsb2FkcyBtb2R1bGUKCQkJICAgICAgLy8gYW5kIGEgbGluayBpcyBhZGRlZCB0byB0aGUgcmVzdWx0cwoJCQkgICAgICAvLyBpZiB0aGUgb3B0aW9uIGlzIG5vdCBjaGVja2VkLCB0aGVuIHRoZSBmaWxlIGlzIG1lcmVseSB1cGxvYWRlZCB0bwoJCQkJICAvLyB0aGUgInVwbG9hZHMiIGRpcmVjdG9yeQoJCQkgICAgICAvLwoJICAgICAgCQkkX2lkID0gJHRoZUZpZWxkc1skaV0tPkdldFZhbHVlKCk7CgkgICAgICAJCWlmKCBpc3NldCggJF9GSUxFU1skX2lkXSApICYmICRfRklMRVNbJF9pZF1bJ3NpemUnXSA+IDAgKQoJICAgICAgICAJCXsKCSAgICAJCQkkdGhpc0ZpbGUgPSYgJF9GSUxFU1skX2lkXTsKCSAgICAJCQlpZiggJHRoZUZpZWxkc1skaV0tPkdldE9wdGlvbignc2VuZHRvX3VwbG9hZHMnKSApCgkgICAgICAJCQkJewoJICAgICAgICAJCQkvLyB3ZSBoYXZlIGEgZmlsZSB3ZSBjYW4gc2VuZCB0byB0aGUgdXBsb2FkcwoJICAgICAgICAJCQkkdXBsb2FkcyA9JiAkbW9kLT5HZXRNb2R1bGVJbnN0YW5jZSgnVXBsb2FkcycpOwoJICAgICAgICAJCQlpZiggISR1cGxvYWRzICkKCSAgICAgICAgICAJCQkJewoJICAgICAgCQkJCQkvLyBubyB1cGxvYWRzIG1vZHVsZQoJICAgICAgCQkJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InKSwkbWFpbC0+R2V0RXJyb3JJbmZvKCkpOwoJICAgICAgICAgICAgCQkJcmV0dXJuIGFycmF5KCRyZXMsICRtb2QtPkxhbmcoJ25vdXBsb2Fkc19lcnJvcicpKTsKCSAgICAgICAgICAJCQkJfQoKCSAgICAgICAgCQkJJHBhcm1zID0gYXJyYXkoKTsKCSAgICAgICAgCQkJJHBhcm1zWydpbnB1dF9hdXRob3InXSA9ICRtb2QtPkxhbmcoJ2Fub255bW91cycpOwoJICAgICAgICAJCQkkcGFybXNbJ2lucHV0X3N1bW1hcnknXSA9ICRtb2QtPkxhbmcoJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5Jyk7CgkgICAgICAgIAkJCSRwYXJtc1snY2F0ZWdvcnlfaWQnXSA9ICR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ3VwbG9hZHNfY2F0ZWdvcnknKTsKCSAgICAgICAgCQkJJHBhcm1zWydmaWVsZF9uYW1lJ10gPSAkX2lkOwoJICAgICAgICAJCQkkcmVzID0gJHVwbG9hZHMtPkF0dGVtcHRVcGxvYWQoLTEsJHBhcm1zLC0xKTsKCSAgICAgICAgCQkJaWYoICRyZXNbMF0gPT0gZmFsc2UgKQoJICAgICAgICAgIAkJCQl7CgkgICAgICAJCQkJCS8vIGZhaWxlZCB1cGxvYWQga2lsbHMgdGhlIHNlbmQuCgkgICAgICAJCQkJCWF1ZGl0KC0xLCAkbW9kLT5HZXROYW1lKCksICRtb2QtPkxhbmcoJ3N1Ym1pdF9lcnJvcicsJHJlc1sxXSkpOwoJICAgICAgCQkJCQlyZXR1cm4gYXJyYXkoJHJlc1swXSwgJG1vZC0+TGFuZygndXBsb2Fkc19lcnJvcicsJHJlc1sxXSkpOwoJICAgICAgICAgIAkJCQl9CgoJICAgICAgICAJCQkkdXBsb2Fkc19kZXN0cGFnZSA9ICR0aGVGaWVsZHNbJGldLT5HZXRPcHRpb24oJ3VwbG9hZHNfZGVzdHBhZ2UnKTsKCSAgICAgICAgCQkJJHVybCA9ICR1cGxvYWRzLT5DcmVhdGVMaW5rICgtMSwgJ2dldGZpbGUnLCAkdXBsb2Fkc19kZXN0cGFnZSwgJycsCgkgICAgICAgICAgICAgCQkJCWFycmF5ICgndXBsb2FkX2lkJyA9PiAkcm93Wyd1cGxvYWRfaWQnXSksICcnLCB0cnVlKTsKCQkJCQkJJHRoZUZpZWxkc1skaV0tPlJlc2V0VmFsdWUoKTsKCSAgICAgICAgCQkJJHRoZUZpZWxkc1skaV0tPlNldFZhbHVlKCR1cmwpOwoJICAgICAgCQkJCX0KCSAgICAJCQllbHNlCgkgICAgICAJCQkJewoJICAgICAgICAJCQkvLyBIYW5kbGUgdGhlIHVwbG9hZCBvdXJzZWx2ZXMKCQkJCQkJJHNyYyA9ICR0aGlzRmlsZVsndG1wX25hbWUnXTsKCQkJCQkJLy8gdGhpcyBpcyBzYWZlWz9dIHNpbmNlIHdlIHZhbGlkYXRlZCBpbiBGaWxlVXBsb2FkRmllbGQncyB2YWxpZGF0ZSBtZXRob2QuCgkJCQkJCSRkZXN0ID0gJGdDbXMtPmNvbmZpZ1sndXBsb2Fkc19wYXRoJ10uJy8nLiR0aGlzRmlsZVsnbmFtZSddOwoJCQkJCQlpZiAoISBtb3ZlX3VwbG9hZGVkX2ZpbGUoJHNyYywkZGVzdCkpCgkJCQkJCQl7CgkJCQkJCQlhdWRpdCgtMSwgJG1vZC0+R2V0TmFtZSgpLCAkbW9kLT5MYW5nKCdzdWJtaXRfZXJyb3InLCcnKSk7CgkJICAgICAgCQkJCXJldHVybiBhcnJheShmYWxzZSwgJG1vZC0+TGFuZygndXBsb2Fkc19lcnJvcicsJycpKTsKCQkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQkJewoJCQkJCQkJJHVybCA9ICRnQ21zLT5jb25maWdbJ3VwbG9hZHNfdXJsJ10uJy8nLiR0aGlzRmlsZVsnbmFtZSddOwoJCQkJCQkJJHRoZUZpZWxkc1skaV0tPlJlc2V0VmFsdWUoKTsKCQkJCQkJCSR0aGVGaWVsZHNbJGldLT5TZXRWYWx1ZShhcnJheSgkZGVzdCwkdXJsKSk7CgkJCQkJCQl9CgkgICAgICAJCQkJfQoJICAgICAgICAJCX0KCSAgICAJCX0KCSAgICAgIAl9CgkJcmV0dXJuIGFycmF5KHRydWUsJycpOwoJfQoKCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressAgainField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkIGV4dGVuZHMgZmJGaWVsZEJhc2UgewoKCWZ1bmN0aW9uIGZiRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQoJiRmb3JtX3B0ciwgJiRwYXJhbXMpCgl7CgkJJHRoaXMtPmZiRmllbGRCYXNlKCRmb3JtX3B0ciwgJHBhcmFtcyk7CgkJJG1vZCA9ICYkZm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHRoaXMtPlR5cGUgPSAnRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCgkJCSRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAoJCQkpOwoJCSR0aGlzLT5tb2RpZmllc090aGVyRmllbGRzID0gZmFsc2U7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLAoJCQlodG1sc3BlY2lhbGNoYXJzKCR0aGlzLT5WYWx1ZSwgRU5UX1FVT1RFUyksCgkJCTI1LDEyOCwkanMpOwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCXJldHVybiAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9pZCcpIC4gJzogJyAuICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkZmxkcyA9ICYkdGhpcy0+Zm9ybV9wdHItPkdldEZpZWxkcygpOwoJCSRvcHRzID0gYXJyYXkoKTsKCQlmb3JlYWNoICgkZmxkcyBhcyAkdGYpCgkJCXsKCQkJJG9wdHNbJHRmLT5HZXROYW1lKCldPSR0Zi0+R2V0TmFtZSgpOwoJCQl9CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoCgkJCQkkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF90b192YWxpZGF0ZScpLAoJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2ZpZWxkX3RvX3ZhbGlkYXRlJywgJG9wdHMsIC0xLCAkdGhpcy0+R2V0T3B0aW9uKCdmaWVsZF90b192YWxpZGF0ZScpKQoJCQkpCgkJKTsKCgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4pOwoJfQoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJqYXZhc2NyaXB0IiBmaWVsZAoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQoJCXsKCQkJaWYgKCRhZHZBcnJheVskaV0tPnRpdGxlID09ICRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnKSkKCQkJewoJCQkJJGhpZGVJbmRleCA9ICRpOwoJCQl9CgkJfQoJCWlmICgkaGlkZUluZGV4ICE9IC0xKQoJCXsKCQkJYXJyYXlfc3BsaWNlKCRhZHZBcnJheSwgJGhpZGVJbmRleCwxKTsKCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQl7CgkJCSRhZHZBcnJheVswXS0+dGl0bGUgPSAkbW9kLT5MYW5nKCd0YWJfYWR2YW5jZWQnKTsKCQkJJGFkdkFycmF5WzBdLT5pbnB1dCA9ICRtb2QtPkxhbmcoJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnKTsKCQl9Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCSRmaWVsZF90b192YWxpZGF0ZSA9ICR0aGlzLT5HZXRPcHRpb24oJ2ZpZWxkX3RvX3ZhbGlkYXRlJywnJyk7CgoJCWlmICgkZmllbGRfdG9fdmFsaWRhdGUgIT0gJycpCgkJewoJCQlmb3JlYWNoICgkdGhpcy0+Zm9ybV9wdHItPkZpZWxkcyBhcyAkb25lX2ZpZWxkKQoJCQl7CgkJCQlpZiAoJG9uZV9maWVsZC0+TmFtZSA9PSAkZmllbGRfdG9fdmFsaWRhdGUpCgkJCQl7CgkJCQkJJHZhbHVlID0gJG9uZV9maWVsZC0+R2V0VmFsdWUoKTsKCQkJCQlpZiAoJHZhbHVlICE9ICR0aGlzLT5WYWx1ZSkKCQkJCQl7CgkJCQkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJywgJGZpZWxkX3RvX3ZhbGlkYXRlKTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailAddressField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbEFkZHJlc3NGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxBZGRyZXNzRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICApOwogICAgICAgICR0aGlzLT5WYWxpZGF0aW9uVHlwZSA9ICdlbWFpbCc7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzKTsKCX0KCQoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewoJCQlmb3IoJGk9MDskaTxjb3VudCgkb3RoZXJzKTskaSsrKQoJCQkJewoJCQkJJHJlcGxWYWwgPSAnJzsKCQkJCWlmICgkb3RoZXJzWyRpXS0+SXNEaXNwb3NpdGlvbigpICYmIGlzX3N1YmNsYXNzX29mKCRvdGhlcnNbJGldLCdmYkRpc3Bvc2l0aW9uRW1haWxCYXNlJykpCgkJCQkJewoJCQkJCSRvdGhlcnNbJGldLT5TZXRPcHRpb24oJ2VtYWlsX2Zyb21fYWRkcmVzcycsJHRoaXMtPlZhbHVlKTsKCQkJCQl9CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9CgoJZnVuY3Rpb24gVmFsaWRhdGUoKQoJewoJCSR0aGlzLT52YWxpZGF0ZWQgPSB0cnVlOwoJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJyc7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJc3dpdGNoICgkdGhpcy0+VmFsaWRhdGlvblR5cGUpCgkJICB7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCgkbW9kLT5HZXRQcmVmZXJlbmNlKCdyZWxheGVkX2VtYWlsX3JlZ2V4JywnMCcpPT0wPyRtb2QtPmVtYWlsX3JlZ2V4OiRtb2QtPmVtYWlsX3JlZ2V4X3JlbGF4ZWQpLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5fZW1haWwnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailNameField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbE5hbWVGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbE5hbWVGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxOYW1lRmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzKTsKCX0KCQoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewkJCgkJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCQl7CgkJCQkkcmVwbFZhbCA9ICcnOwoJCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCQl7CgkJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfZnJvbV9uYW1lJywkdGhpcy0+VmFsdWUpOwoJCQkJCX0KCQkJCX0KCQkJfQoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJCXJldHVybiAnJzsKCX0KCn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/FromEmailSubjectField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYkZyb21FbWFpbFN1YmplY3RGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdGcm9tRW1haWxTdWJqZWN0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICk7CgkgICAkdGhpcy0+bW9kaWZpZXNPdGhlckZpZWxkcyA9IHRydWU7Cgl9CgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCWh0bWxzcGVjaWFsY2hhcnMoJHRoaXMtPlZhbHVlLCBFTlRfUVVPVEVTKSwKICAgICAgICAgICAyNSwxMjgsJGpzKTsKCX0KCQoJZnVuY3Rpb24gTW9kaWZ5T3RoZXJGaWVsZHMoKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRvdGhlcnMgPSAmJHRoaXMtPmZvcm1fcHRyLT5HZXRGaWVsZHMoKTsKCQlpZiAoJHRoaXMtPlZhbHVlICE9PSBmYWxzZSkKCQkJewkJCgkJCWZvcigkaT0wOyRpPGNvdW50KCRvdGhlcnMpOyRpKyspCgkJCQl7CgkJCQkkcmVwbFZhbCA9ICcnOwoJCQkJaWYgKCRvdGhlcnNbJGldLT5Jc0Rpc3Bvc2l0aW9uKCkgJiYgaXNfc3ViY2xhc3Nfb2YoJG90aGVyc1skaV0sJ2ZiRGlzcG9zaXRpb25FbWFpbEJhc2UnKSkKCQkJCQl7CgkJCQkJJG90aGVyc1skaV0tPlNldE9wdGlvbignZW1haWxfc3ViamVjdCcsJHRoaXMtPlZhbHVlKTsKCQkJCQl9CgkJCQl9CgkJCX0KCX0KCglmdW5jdGlvbiBTdGF0dXNJbmZvKCkKCXsKCQlyZXR1cm4gJyc7Cgl9Cgp9Cgo/Pgo=]]></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+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJCgkJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJewoJCQkkdmFsID0gJiR0aGlzLT5WYWx1ZTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdmFsID0gYXJyYXkoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rJywnJyksJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdF9saW5rX3RpdGxlJywnJykpOwoJCQl9IAoJCSRmaWVsZERpc3AgPSBhcnJheSgpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzEiPicuJG1vZC0+TGFuZygnbGlua19kZXN0aW5hdGlvbicpLic8L2xhYmVsPic7CgkJJHRoaXNCb3gtPnRpdGxlID0gJG1vZC0+TGFuZygnbGlua19kZXN0aW5hdGlvbicpOwoJCSR0aGlzQm94LT5pbnB1dCA9ICR0aGlzLT5UZXh0RmllbGQoJGlkLCAnXycuJHRoaXMtPklkLidbXScsICR2YWxbMF0sJycsJycsJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSIgJy4kanMpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwoJCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CgkJJHRoaXNCb3gtPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiPicuJG1vZC0+TGFuZygnbGlua19sYWJlbCcpLic8L2xhYmVsPic7CgkJJHRoaXNCb3gtPnRpdGxlID0gJG1vZC0+TGFuZygnbGlua19sYWJlbCcpOwoJCSR0aGlzQm94LT5pbnB1dCA9ICR0aGlzLT5UZXh0RmllbGQoJGlkLCAnXycuJHRoaXMtPklkLidbXScsICR2YWxbMV0sJycsJycsJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiIgJy4kanMpOwoJCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwkJCQoJCXJldHVybiAkZmllbGREaXNwOwoJCQoJfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgoJCWlmICgkdGhpcy0+VmFsdWUgPT09IGZhbHNlIHx8ICEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJewoJCQkkcmV0ID0gJyc7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHJldCA9ICc8YSBocmVmPSInLiR0aGlzLT5WYWx1ZVswXS4nIj4nLiR0aGlzLT5WYWx1ZVsxXS4nPC9hPic7CgkJCX0KCQlpZiAoJGFzX3N0cmluZykKCQkJewoJCQlyZXR1cm4gJHJldDsKCQkJfQoJCWVsc2UKCQkJewoJCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJCX0KCgl9CgoKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCS8vIHJlbW92ZSB0aGUgInJlcXVpcmVkIiBmaWVsZCwgc2luY2UgdGhpcyBjYW4gb25seSBiZSBkb25lIHZpYSB2YWxpZGF0aW9uCgkJJHJlcUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRtYWluQXJyYXkpOyRpKyspCgkJCXsKCQkJaWYgKCRtYWluQXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9yZXF1aXJlZCcpKQoJCQkJewoJCQkJJHJlcUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJHJlcUluZGV4ICE9IC0xKQoJCQl7CgkJCWFycmF5X3NwbGljZSgkbWFpbkFycmF5LCAkcmVxSW5kZXgsMSk7CgkJCX0KCX0KCgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCiAgICAgICAgICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X2xpbmsnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdF9saW5rJywkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0X2xpbmsnLCcnKSwyNSwxMjgpKSwKICAgICAgICAgICAgIGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZScpLCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9kZWZhdWx0X2xpbmtfdGl0bGUnLCR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHRfbGlua190aXRsZScsJycpLDI1LDEyOCkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9Cgp9Cj8+]]></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+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCSRzdWJqZWN0cyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoKCQlpZiAoY291bnQoJHN1YmplY3RzKSA+IDEpCgkJCXsKCQkJZm9yKCRpPTA7JGk8Y291bnQoJHN1YmplY3RzKTskaSsrKQoJCQkJewoJCQkJJHNvcnRlZFskc3ViamVjdHNbJGldXT0oJGkrMSk7CgkJCQl9CgkJCX0KCQllbHNlCgkJCXsKCQkJJHNvcnRlZFskc3ViamVjdHNdID0gJzEnOwoJCQl9CgkJaWYgKCR0aGlzLT5WYWx1ZSA9PT0gZmFsc2UpCgkJCXsKCQkJJHZhbCA9IGFycmF5KCk7CgkJCX0KCQllbHNlaWYgKCFpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJCQl7CgkJCSR2YWwgPSBhcnJheSgkdGhpcy0+VmFsdWUpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSR2YWwgPSAkdGhpcy0+VmFsdWU7CgkJCX0KCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXRTZWxlY3RMaXN0KCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsICRzb3J0ZWQsJHZhbCwgJHRoaXMtPkdldE9wdGlvbignbGluZXMnLCczJyksCiAgICAgICAgICdpZD0iJy4kaWQuICdfJy4kdGhpcy0+SWQuJyIgJy4kanMpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2xpbmVzX3RvX3Nob3cnKSwkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfbGluZXMnLCR0aGlzLT5HZXRPcHRpb24oJ2xpbmVzJywnMycpLDEwLDEwKSkpOwoJCWFycmF5X3B1c2goJG1haW4sYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscycpLCRkZXN0cykpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZz10cnVlKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRmb3JtID0gJiR0aGlzLT5mb3JtX3B0cjsKCQkkdmFscyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fdmFsdWUnKTsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJGZpZWxkUmV0ID0gYXJyYXkoKTsKCQkJaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCQkJCXsKCQkJCSR0aGlzLT5WYWx1ZSA9IGFycmF5KCR0aGlzLT5WYWx1ZSk7CgkJCQl9CgkJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc09uZSkKCQkJCXsKCQkJCWFycmF5X3B1c2goJGZpZWxkUmV0LCR2YWxzWyR0aGlzT25lIC0gMV0pOwoJCQkJfQoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiBqb2luKCRmb3JtLT5HZXRBdHRyKCdsaXN0X2RlbGltaXRlcicsJywnKSwkZmllbGRSZXQpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJGZpZWxkUmV0KTsKCQkJCX0JCQkKCQkJfQoJCWVsc2UKCQkJewoJCQlpZiAoJGFzX3N0cmluZykKCQkJCXsKCQkJCXJldHVybiAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQlyZXR1cm4gYXJyYXkoJG1vZC0+TGFuZygndW5zcGVjaWZpZWQnKSk7CgkJCQl9CgkJCX0KCQoJfQkKfQo/Pgo=]]></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+VmFsdWUsJHRoaXMtPlByb3ZpbmNlcyk7CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRqcyA9ICR0aGlzLT5HZXRPcHRpb24oJ2phdmFzY3JpcHQnLCcnKTsKCgkJdW5zZXQoJHRoaXMtPlByb3ZpbmNlc1skbW9kLT5MYW5nKCdub19kZWZhdWx0JyldKTsKCQlpZiAoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpICE9ICcnKQoJCQl7CgkJCSR0aGlzLT5Qcm92aW5jZXMgPSBhcnJheV9tZXJnZShhcnJheSgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJyk9PicnKSwkdGhpcy0+UHJvdmluY2VzKTsKCQkJfQoJCWVsc2UKCQkJewoJCQkkdGhpcy0+UHJvdmluY2VzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJG1vZC0+TGFuZygnc2VsZWN0X29uZScpPT4nJyksJHRoaXMtPlByb3ZpbmNlcyk7CgkJCX0KCgoJCWlmICghICR0aGlzLT5IYXNWYWx1ZSgpICYmICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSAhPSAnJykKCQkgIHsKCQkgICR0aGlzLT5TZXRWYWx1ZSgkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JywnJykpOwoJCSAgfQoKCQlyZXR1cm4gJG1vZC0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdmYnJwX18nLiR0aGlzLT5JZCwgJHRoaXMtPlByb3ZpbmNlcywgLTEsICR0aGlzLT5WYWx1ZSwnaWQ9IicuJGlkLiAnXycuJHRoaXMtPklkLiciICcuJGpzKTsKCX0KCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+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+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoKCQkvLyB3aHkgYWxsIHRoaXM/IEFzc29jaWF0aXZlIGFycmF5cyBhcmUgbm90IGd1YXJhbnRlZWQgdG8gcHJlc2VydmUKCQkvLyBvcmRlciwgZXhjZXB0IGluICJjaHJvbm9sb2dpY2FsIiBjcmVhdGlvbiBvcmRlci4KCQkkc29ydGVkID1hcnJheSgpOwoJCSRzdWJqZWN0cyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdvcHRpb25fbmFtZScpOwoJCWlmIChjb3VudCgkc3ViamVjdHMpID4gMSkgewoJCQlmb3IoJGk9MDskaTxjb3VudCgkc3ViamVjdHMpOyRpKyspIHsKCQkJCSRzb3J0ZWRbJHN1YmplY3RzWyRpXV09KCRpKzEpOwoJCQl9CgkJCWlmKCAkdGhpcy0+R2V0T3B0aW9uKCdzb3J0JykgPT0gJzEnICkgewoJCQkJa3NvcnQoJHNvcnRlZCk7CgkJCX0KCQl9CgkJZWxzZSB7CgkJCSRzb3J0ZWRbJHN1YmplY3RzXSA9ICcxJzsKCQl9CgoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdzZWxlY3Rfb25lJywnJykgIT0gJycpIHsKCQkJLy8kc29ydGVkID0gYXJyYXlfbWVyZ2UoYXJyYXkoJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpLCRzb3J0ZWQpOwoJCQkkc29ydGVkID0gYXJyYXkoJyAnLiR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKT0+JycpICsgJHNvcnRlZDsKCQl9CgkJZWxzZSB7CgkJCS8vJHNvcnRlZCA9IGFycmF5X21lcmdlKGFycmF5KCcgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSwkc29ydGVkKTsKCQkJJHNvcnRlZCA9IGFycmF5KCcgJy4kbW9kLT5MYW5nKCdzZWxlY3Rfb25lJyk9PicnKSArICRzb3J0ZWQ7CgkJfQoJCXJldHVybiAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLCAkc29ydGVkLCAtMSwgJHRoaXMtPlZhbHVlLCAnaWQ9IicuJGlkLiAnZmJycF9fJy4kdGhpcy0+SWQuJyIgJy4kanMpOwoJfQoKCgogICAgZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG9wdCA9ICR0aGlzLT5HZXRPcHRpb24oJ29wdGlvbl9uYW1lJywnJyk7CgkJCgkJaWYgKGlzX2FycmF5KCRvcHQpKQoJCSAgewoJCSAgICAgICRudW0gPSBjb3VudCgkb3B0KTsKCQkgIH0KCQllbHNlaWYgKCRvcHQgIT0gJycpCgkJCXsKCQkJJG51bSA9IDE7CgkJCX0KCQllbHNlCgkJICB7CiAgICAgICAgICAkbnVtID0gMDsKICAgICAgICAgIH0KICAgICAgICAgJHJldD0gJG1vZC0+TGFuZygnb3B0aW9ucycsJG51bSk7CiAgICAgICAgcmV0dXJuICRyZXQ7Cgl9CgkKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCgkJJHRoaXMtPmNvdW50SXRlbXMoKTsKCQlpZiAoJHRoaXMtPm9wdGlvbkFkZCA+IDApCgkJCXsKCQkJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkJCSR0aGlzLT5vcHRpb25BZGQgPSAwOwoJCQl9CgkJJGRlc3RzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX25hbWUnKS4nPC90aD48dGg+Jy4KCQkJJG1vZC0+TGFuZygndGl0bGVfb3B0aW9uX3ZhbHVlJykuJzwvdGg+PHRoPicuCgkJCSRtb2QtPkxhbmcoJ3RpdGxlX2RlbGV0ZScpLic8L3RoPjwvdHI+JzsKCgoJCWZvciAoJGk9MDskaTwoJHRoaXMtPm9wdGlvbkNvdW50PjE/JHRoaXMtPm9wdGlvbkNvdW50OjEpOyRpKyspCgkJCXsKCQkJJGRlc3RzIC49ICAnPHRyPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fbmFtZVtdJywkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnb3B0aW9uX25hbWUnLCRpKSwyNSwxMjgpLgogICAgICAgICAgICAJCSc8L3RkPjx0ZD4nLgogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9vcHRpb25fdmFsdWVbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ29wdGlvbl92YWx1ZScsJGkpLDI1LDEyOCkuCiAgICAgICAgICAgIAkJJzwvdGQ+PHRkPicuCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX2RlbF8nLiRpLCAkaSwtMSkuCiAgICAgICAgICAgICAJCSc8L3RkPjwvdHI+JzsKCQkJfQoJCSRkZXN0cyAuPSAnPC90YWJsZT4nOwoJCSRtYWluID0gYXJyYXkoKTsKCQkkYWR2ID0gYXJyYXkoKTsKCQkkbWFpbltdID0gYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJyksCgkJCQkJCSRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zZWxlY3Rfb25lJywKCQkJCQkJCQkJCQkgICR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKSksMjUsMTI4KSk7CgkJJG1haW5bXSA9IGFycmF5KCRtb2QtPkxhbmcoJ3NvcnRfb3B0aW9ucycpLAoJCQkJCQkkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRmb3JtRGVzY3JpcHRvciwnZmJycF9vcHRfc29ydCcsCgkJCQkJCQkJCQkJCSAgYXJyYXkoJ1llcyc9PjEsJ05vJz0+MCksLTEsCgkJCQkJCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbignc29ydCcsMCkpKTsKCQlhcnJheV9wdXNoKCRtYWluLGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnKSwkZGVzdHMpKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoJZnVuY3Rpb24gUG9zdFBvcHVsYXRlQWRtaW5Gb3JtKCYkbWFpbkFycmF5LCAmJGFkdkFycmF5KQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmIChjb3VudCgkYWR2QXJyYXkpID09IDApCgkJCXsKCQkJJGFkdkFycmF5WzBdLT50aXRsZSA9ICRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpOwoJCQkkYWR2QXJyYXlbMF0tPmlucHV0ID0gJG1vZC0+TGFuZygndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucycpOwoJCQl9Cgl9CgoJZnVuY3Rpb24gR2V0SHVtYW5SZWFkYWJsZVZhbHVlKCRhc19zdHJpbmc9dHJ1ZSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHJldCA9ICR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdvcHRpb25fdmFsdWUnLCgkdGhpcy0+VmFsdWUtMSkpOwoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9Cgp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/RadioGroupField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlJhZGlvR3JvdXBGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIAp7CgogIHZhciAkb3B0aW9uQ291bnQ7CiAgdmFyICRvcHRpb25BZGQ7CgkKICBmdW5jdGlvbiBmYlJhZGlvR3JvdXBGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKICB7CiAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgJHRoaXMtPlR5cGUgPSAnUmFkaW9Hcm91cEZpZWxkJzsKICAgICR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKICAgICR0aGlzLT5IYXNBZGRPcCA9IHRydWU7CiAgICAkdGhpcy0+SGFzRGVsZXRlT3AgPSB0cnVlOwogICAgJHRoaXMtPk5vblJlcXVpcmFibGVGaWVsZCA9IGZhbHNlOwogICAgJHRoaXMtPlZhbGlkYXRpb25UeXBlcyA9IGFycmF5KAogICAgICAgICAgICApOwogICAgJHRoaXMtPm9wdGlvbkFkZCA9IDA7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CgogIH0KCiAgZnVuY3Rpb24gY291bnRCb3hlcygpCiAgewogICAgJHRtcCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25fbmFtZScpOwogICAgaWYgKGlzX2FycmF5KCR0bXApKQogICAgICB7CgkkdGhpcy0+b3B0aW9uQ291bnQgPSBjb3VudCgkdG1wKTsKICAgICAgfQogICAgZWxzZWlmICgkdG1wICE9PSBmYWxzZSkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ID0gMTsKICAgICAgfQogICAgZWxzZQogICAgICB7CgkkdGhpcy0+b3B0aW9uQ291bnQgPSAwOwogICAgICB9CiAgfQoKICBmdW5jdGlvbiBTdGF0dXNJbmZvKCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICR0aGlzLT5jb3VudEJveGVzKCk7CiAgICAkcmV0ID0gJG1vZC0+TGFuZygnb3B0aW9ucycsJHRoaXMtPm9wdGlvbkNvdW50KTsKICAgIGlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQogICAgICB7CgkkcmV0IC49ICIsICIuYXJyYXlfc2VhcmNoKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSwkdGhpcy0+VmFsaWRhdGlvblR5cGVzKTsKICAgICAgfQogICAgcmV0dXJuICRyZXQ7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25BZGRCdXR0b24oKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2FkZF9vcHRpb25zJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRPcHRpb25EZWxldGVCdXR0b24oKQogIHsKICAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwogICAgcmV0dXJuICRtb2QtPkxhbmcoJ2RlbGV0ZV9vcHRpb25zJyk7CiAgfQoKICBmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKICB7CiAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKICAgICRuYW1lcyA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25fbmFtZScpOwogICAgJGlzX3NldCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25faXNfc2V0Jyk7CgkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgogICAgJGZpZWxkRGlzcCA9IGFycmF5KCk7CiAgICBmb3IgKCRpPTA7JGk8Y291bnQoJG5hbWVzKTskaSsrKQogICAgICB7CgkkbGFiZWwgPSAnJzsKCSR0aGlzQm94ID0gbmV3IHN0ZENsYXNzKCk7CglpZiAoc3RybGVuKCRuYW1lc1skaV0pID4gMCkKCSAgewoJICAgICR0aGlzQm94LT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nXycuJGkuJyI+Jy4kbmFtZXNbJGldLic8L2xhYmVsPic7CgkgICAgJHRoaXNCb3gtPnRpdGxlID0gJG5hbWVzWyRpXTsKCSAgfQoJJGNoZWNrX3ZhbCA9IGZhbHNlOwoJaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UpCgkgIHsKCSAgICAkY2hlY2tfdmFsID0gJHRoaXMtPkZpbmRBcnJheVZhbHVlKCRpKzEpOwoJICB9CgllbHNlCgkgIHsKCSAgICBpZiAoaXNzZXQoJGlzX3NldFskaV0pICYmICRpc19zZXRbJGldID09ICd5JykKCSAgICAgIHsKCQkkY2hlY2tfdmFsID0gdHJ1ZTsKCSAgICAgIH0JCQkJCgkgIH0KCSR0aGlzQm94LT5pbnB1dCA9ICc8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IicuJGlkLidmYnJwX18nLiR0aGlzLT5JZC4nIiB2YWx1ZT0iJy4oJGkrMSkuJyInOwoJaWYgKCRjaGVja192YWwpCgkgIHsKCSAgICAkdGhpc0JveC0+aW5wdXQgLj0gJyBjaGVja2VkPSJjaGVja2VkIic7CgkgIH0KCSR0aGlzQm94LT5pbnB1dCAuPSAnIGlkPSInLiRpZC4gJ2ZicnBfXycuJHRoaXMtPklkLidfJy4kaS4nICcuJGpzLiciIC8+JzsKCWFycmF5X3B1c2goJGZpZWxkRGlzcCwgJHRoaXNCb3gpOwogICAgICB9CiAgICByZXR1cm4gJGZpZWxkRGlzcDsKICB9CgogIGZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCiAgICAgIHsKCSAgICRyZXQgPSAkdGhpcy0+R2V0T3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCgkdGhpcy0+VmFsdWUgLSAxKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJICAgJHJldCA9ICR0aGlzLT5mb3JtX3B0ci0+R2V0QXR0cigndW5zcGVjaWZpZWQnLCRtb2QtPkxhbmcoJ3Vuc3BlY2lmaWVkJykpOwogICAgICB9CglpZiAoJGFzX3N0cmluZykKCQl7CgkJcmV0dXJuICRyZXQ7CgkJfQoJZWxzZQoJCXsKCQlyZXR1cm4gYXJyYXkoJHJldCk7CgkJfQogIH0KCgogIGZ1bmN0aW9uIERvT3B0aW9uQWRkKCYkcGFyYW1zKQogIHsKICAgICR0aGlzLT5vcHRpb25BZGQgPSAxOwogIH0KCiAgZnVuY3Rpb24gRG9PcHRpb25EZWxldGUoJiRwYXJhbXMpCiAgewogICAgJGRlbGNvdW50ID0gMDsKICAgIGZvcmVhY2ggKCRwYXJhbXMgYXMgJHRoaXNLZXk9PiR0aGlzVmFsKQogICAgICB7CglpZiAoc3Vic3RyKCR0aGlzS2V5LDAsOSkgPT0gJ2ZicnBfZGVsXycpCgkgIHsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX25hbWUnLCAkdGhpc1ZhbCAtICRkZWxjb3VudCk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25faXNfc2V0JywgJHRoaXNWYWwgLSAkZGVsY291bnQpOwoJICAgICRkZWxjb3VudCsrOwoJICB9CiAgICAgIH0KICB9CgoKICBmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCiAgewogICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CiAgICAkeWVzTm8gPSBhcnJheSgkbW9kLT5MYW5nKCdubycpPT4nbicsJG1vZC0+TGFuZygneWVzJyk9Pid5Jyk7CgogICAgJHRoaXMtPmNvdW50Qm94ZXMoKTsKICAgIGlmICgkdGhpcy0+b3B0aW9uQWRkID4gMCkKICAgICAgewoJJHRoaXMtPm9wdGlvbkNvdW50ICs9ICR0aGlzLT5vcHRpb25BZGQ7CgkkdGhpcy0+b3B0aW9uQWRkID0gMDsKICAgICAgfQogICAgJGJveGVzID0gJzx0YWJsZSBjbGFzcz0ibW9kdWxlX2ZiX3RhYmxlIj48dHI+PHRoPicuJG1vZC0+TGFuZygndGl0bGVfcmFkaW9fbGFiZWwnKS4nPC90aD48dGg+Jy4KICAgICAgJG1vZC0+TGFuZygndGl0bGVfY2hlY2tlZF92YWx1ZScpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZWZhdWx0X3NldCcpLic8L3RoPjx0aD4nLgogICAgICAkbW9kLT5MYW5nKCd0aXRsZV9kZWxldGUnKS4KICAgICAgJzwvdGg+PC90cj4nOwoKCiAgICBmb3IgKCRpPTA7JGk8KCR0aGlzLT5vcHRpb25Db3VudD4xPyR0aGlzLT5vcHRpb25Db3VudDoxKTskaSsrKQogICAgICB7CgkkYm94ZXMgLj0gJzx0cj48dGQ+Jy4KCSAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2J1dHRvbl9uYW1lW10nLCR0aGlzLT5HZXRPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsJGkpLDI1LDEyOCkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2NoZWNrZWRbXScsJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9jaGVja2VkJywkaSksMjUsMTI4KS4KCSAgJzwvdGQ+PHRkPicuCgkgICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfYnV0dG9uX2lzX3NldFtdJywgJHllc05vLCAtMSwgJHRoaXMtPkdldE9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCRpKSkuCgkgICc8L3RkPjx0ZD4nLgoJICAkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfZGVsXycuJGksICRpLC0xKS4KCSAgJzwvdGQ+PC90cj4nOwogICAgICB9CiAgICAkYm94ZXMgLj0gJzwvdGFibGU+JzsKICAgICRtYWluID0gYXJyYXkoCgkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnKSwkYm94ZXMpCgkJICApOwogICAgJGFkdiA9IGFycmF5KCk7CiAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7CiAgfQoKCiAgZnVuY3Rpb24gUG9zdEFkbWluU3VibWl0Q2xlYW51cCgpCiAgewogICAgJG5hbWVzID0gJiR0aGlzLT5HZXRPcHRpb25SZWYoJ2J1dHRvbl9uYW1lJyk7CiAgICAkY2hlY2tlZCA9ICYkdGhpcy0+R2V0T3B0aW9uUmVmKCdidXR0b25fY2hlY2tlZCcpOwogICAgZm9yICgkaT0wOyRpPGNvdW50KCRuYW1lcyk7JGkrKykKICAgICAgewoJaWYgKCRuYW1lc1skaV0gPT0gJycgJiYgJGNoZWNrZWRbJGldID09ICcnICkKCSAgewoJICAgICR0aGlzLT5SZW1vdmVPcHRpb25FbGVtZW50KCdidXR0b25fbmFtZScsICRpKTsKCSAgICAkdGhpcy0+UmVtb3ZlT3B0aW9uRWxlbWVudCgnYnV0dG9uX2NoZWNrZWQnLCAkaSk7CgkgICAgJHRoaXMtPlJlbW92ZU9wdGlvbkVsZW1lbnQoJ2J1dHRvbl9pc19zZXQnLCAkaSk7CgkgICAgJGktLTsKCSAgfQogICAgICB9CiAgICAkdGhpcy0+Y291bnRCb3hlcygpOwogIH0KfQoKPz4K]]></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+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgoJCXVuc2V0KCR0aGlzLT5TdGF0ZXNbJG1vZC0+TGFuZygnbm9fZGVmYXVsdCcpXSk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ3NlbGVjdF9vbmUnLCcnKSAhPSAnJykKCQkJewoJCQkkdGhpcy0+U3RhdGVzID0gYXJyYXlfbWVyZ2UoYXJyYXkoJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJycpPT4nJyksJHRoaXMtPlN0YXRlcyk7CgkJCX0KCQllbHNlCgkJCXsKCQkJJHRoaXMtPlN0YXRlcyA9IGFycmF5X21lcmdlKGFycmF5KCRtb2QtPkxhbmcoJ3NlbGVjdF9vbmUnKT0+JycpLCR0aGlzLT5TdGF0ZXMpOwoJCQl9CgoKCQlpZiAoISAkdGhpcy0+SGFzVmFsdWUoKSAmJiAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JywnJykgIT0gJycpCgkJICB7CgkJICAkdGhpcy0+U2V0VmFsdWUoJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcsJycpKTsKCQkgIH0KCgkJcmV0dXJuICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsICR0aGlzLT5TdGF0ZXMsIC0xLCAkdGhpcy0+VmFsdWUsJ2lkPSInLiRpZC4gJ18nLiR0aGlzLT5JZC4nIiAnLiRqcyk7Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWtzb3J0KCR0aGlzLT5TdGF0ZXMpOwoKCQkkbWFpbiA9IGFycmF5KAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZScpLAogICAgICAgICAgICAJCSRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfZGVmYXVsdCcsCiAgICAgICAgICAgIAkJJHRoaXMtPlN0YXRlcywgLTEsICR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnLCcnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGZvcm1EZXNjcmlwdG9yLCAnZmJycF9vcHRfc2VsZWN0X29uZScsCiAgICAgICAgICAgIAkJJHRoaXMtPkdldE9wdGlvbignc2VsZWN0X29uZScsJG1vZC0+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+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9zbWFydHlfZXZhbCcsCiAgICAgICAgICAgIAkJJzEnLCR0aGlzLT5HZXRPcHRpb24oJ3NtYXJ0eV9ldmFsJywnMCcpKSkKCQkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLCdhZHYnPT4kYWR2KTsKCX0KCglmdW5jdGlvbiBQb3N0UG9wdWxhdGVBZG1pbkZvcm0oJiRtYWluQXJyYXksICYkYWR2QXJyYXkpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJLy8gcmVtb3ZlIHRoZSAiamF2YXNjcmlwdCIgZmllbGQKCQkkaGlkZUluZGV4ID0gLTE7CgkJZm9yICgkaT0wOyRpPGNvdW50KCRhZHZBcnJheSk7JGkrKykKCQkJewoJCQlpZiAoJGFkdkFycmF5WyRpXS0+dGl0bGUgPT0gJG1vZC0+TGFuZygndGl0bGVfZmllbGRfamF2YXNjcmlwdCcpKQoJCQkJewoJCQkJJGhpZGVJbmRleCA9ICRpOwoJCQkJfQoJCQl9CgkJaWYgKCRoaWRlSW5kZXggIT0gLTEpCgkJCXsKCQkJYXJyYXlfc3BsaWNlKCRhZHZBcnJheSwgJGhpZGVJbmRleCwxKTsKCQkJfQoJCWlmIChjb3VudCgkYWR2QXJyYXkpID09IDApCgkJCXsKCQkJJGFkdkFycmF5WzBdLT50aXRsZSA9ICRtb2QtPkxhbmcoJ3RhYl9hZHZhbmNlZCcpOwoJCQkkYWR2QXJyYXlbMF0tPmlucHV0ID0gJG1vZC0+TGFuZygndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucycpOwoJCQl9Cgl9CgoKfQoKPz4K]]></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+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CQogICAgICAgJHJldCA9ICRtb2QtPkNyZWF0ZVRleHRBcmVhKAoJCQkJICAoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMSc/dHJ1ZTpmYWxzZSksCgkJCQkgICAkaWQsCgkJCQkgICgkdGhpcy0+VmFsdWU/JHRoaXMtPlZhbHVlOiR0aGlzLT5HZXRPcHRpb24oJ2RlZmF1bHQnKSksCgkJCQkgICAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCQkgICcnLAoJCQkJICAkaWQuJ2ZicnBfXycuJHRoaXMtPklkLAoJCQkJICAnJywKCQkJCSAgJycsCiAgICAgICAgICAgICAgIAkgICR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpLAoJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyb3dzJywnMTUnKSk7CgkJaWYgKCR0aGlzLT5HZXRPcHRpb24oJ2NsZWFyX2RlZmF1bHQnLCcwJyk9PScxJykKCQkJewoJCQkkcmV0IC49ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCQkJJHJldCAuPSAiXG52YXIgZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCciLiRpZC4iZmJycF9fIi4kdGhpcy0+SWQuIicpO1xuIjsKCQkJJHJldCAuPSAiaWYgKGYpXG57XG5mLm9uY2xpY2s9ZnVuY3Rpb24oKXtcbmlmICh0aGlzLnZhbHVlPT0nIjsKCQkJJHJldCAuPSBwcmVnX3JlcGxhY2UoJy8oXHIpP1xuLycsJ1xcbicsJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpKS4iJykge3RoaXMudmFsdWU9Jyc7fVxufVxuIjsKCQkJJHJldCAuPSAifVxuOyI7CgkJCSRyZXQgLj0gIjwvc2NyaXB0PlxuIjsKCQkJfQoKCQlyZXR1cm4gJHJldDsKCS8vQ3JlYXRlVGV4dEFyZWEoJGVuYWJsZXd5c2l3eWcsICRpZCwgJHRleHQsICRuYW1lLCAkY2xhc3NuYW1lPScnLCAkaHRtbGlkPScnLCAkZW5jb2Rpbmc9JycsICRzdHlsZXNoZWV0PScnLCAkd2lkdGg9JzgwJywgJGNvbHM9JzE1JywkZm9yY2V3eXNpd3lnPSIiLCR3YW50ZWRzeW50YXg9IiIpCgogICB9CgoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJICAgJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJHJldCA9ICcnOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgPSBhcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJCSBpZiAoJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSA9PSAnMScpCgkJIAl7CgkJIAkkcmV0IC49ICcgd3lzaXd5Zyc7CgkJIAl9CgkJIGVsc2UKCQkgCXsKCQkgCSRyZXQgLj0gJyBub24td3lzaXd5Zyc7CgkJIAl9CgkJICRyZXQgLj0gICcsICcuJG1vZC0+TGFuZygncm93cycsJHRoaXMtPkdldE9wdGlvbigncm93cycsJzE1JykpOwoJCSAkcmV0IC49ICAnLCAnLiRtb2QtPkxhbmcoJ2NvbHMnLCR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpKTsKCQkgcmV0dXJuICRyZXQ7Cgl9CgoKCWZ1bmN0aW9uIFByZVBvcHVsYXRlQWRtaW5Gb3JtKCRmb3JtRGVzY3JpcHRvcikKCXsKCSAgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJICAgJG1haW4gPSBhcnJheSgKICAgICAgICAgCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX3VzZV93eXNpd3lnJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF93eXNpd3lnJywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignd3lzaXd5ZycsJzAnKSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0YXJlYV9yb3dzJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X3Jvd3MnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ3Jvd3MnLCcxNScpLDUsNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV90ZXh0YXJlYV9jb2xzJyksCiAgICAgICAgICAgIAkJJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0X2NvbHMnLAogICAgICAgICAgICAJCSR0aGlzLT5HZXRPcHRpb24oJ2NvbHMnLCc4MCcpLDUsNSkpCiAgICAgICAgICAgICApOwoJICAgJGFkdiA9IGFycmF5KGFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnKSwKCQkJCSAgJG1vZC0+Q3JlYXRlVGV4dEFyZWEoZmFsc2UsCgkJCQkJCQkJICAgJGZvcm1EZXNjcmlwdG9yLCAkdGhpcy0+R2V0T3B0aW9uKCdkZWZhdWx0JyksCgkJCQkJCQkJICAgJ2ZicnBfb3B0X2RlZmF1bHQnCgkJCQkgICAgICAgICAgICAgICApKSwKCQkJCQkKCQkJCQkKCQkJCQkKICAgICAgCQkJICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0JyksCgkJIAkJIAlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSksJG1vZC0+TGFuZygndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJykKCQkJCQkpKSk7CgogICAgICAgICByZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgkKCWZ1bmN0aW9uIFBvc3RQb3B1bGF0ZUFkbWluRm9ybSgmJG1haW5BcnJheSwgJiRhZHZBcnJheSkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkvLyByZW1vdmUgdGhlICJqYXZhc2NyaXB0IiBmaWVsZAoJCSRoaWRlSW5kZXggPSAtMTsKCQlmb3IgKCRpPTA7JGk8Y291bnQoJGFkdkFycmF5KTskaSsrKQoJCQl7CgkJCWlmICgkYWR2QXJyYXlbJGldLT50aXRsZSA9PSAkbW9kLT5MYW5nKCd0aXRsZV9maWVsZF9qYXZhc2NyaXB0JykpCgkJCQl7CgkJCQkkaGlkZUluZGV4ID0gJGk7CgkJCQl9CgkJCX0KCQlpZiAoJGhpZGVJbmRleCAhPSAtMSkKCQkJewoJCQlhcnJheV9zcGxpY2UoJGFkdkFycmF5LCAkaGlkZUluZGV4LDEpOwoJCQl9CgkJaWYgKGNvdW50KCRhZHZBcnJheSkgPT0gMCkKCQkJewoJCQkkYWR2QXJyYXlbMF0tPnRpdGxlID0gJG1vZC0+TGFuZygndGFiX2FkdmFuY2VkJyk7CgkJCSRhZHZBcnJheVswXS0+aW5wdXQgPSAkbW9kLT5MYW5nKCd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJyk7CgkJCX0KCX0KCgp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/classes/TextField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCglmdW5jdGlvbiBmYlRleHRGaWVsZCgmJGZvcm1fcHRyLCAmJHBhcmFtcykKCXsKICAgICAgICAkdGhpcy0+ZmJGaWVsZEJhc2UoJGZvcm1fcHRyLCAkcGFyYW1zKTsKICAgICAgICAkbW9kID0gJiRmb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkdGhpcy0+VHlwZSA9ICdUZXh0RmllbGQnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fdXNwaG9uZScpPT4ndXNwaG9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKCgl9CgoKCWZ1bmN0aW9uIEdldEZpZWxkSW5wdXQoJGlkLCAmJHBhcmFtcywgJHJldHVybmlkKQoJewoJICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgJGpzID0gJHRoaXMtPkdldE9wdGlvbignamF2YXNjcmlwdCcsJycpOwoJCgkgIHJldHVybiAkbW9kLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQsCgkJCQkgICAgKCR0aGlzLT5WYWx1ZT8kdGhpcy0+VmFsdWU6JHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpKSwKICAgICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk8MjU/JHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJyk6MjUsCiAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpLAogICAgICAgICAgICAoJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKT09MT8oJ29uY2xpY2s9ImlmICh0aGlzLnZhbHVlPT1cJycuJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLidcJykge3RoaXMudmFsdWU9XCdcJzt9IiAnKTonICcpLiRqcyk7Cgl9CgoJZnVuY3Rpb24gU3RhdHVzSW5mbygpCgl7CgkgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJICAkcmV0ID0gJG1vZC0+TGFuZygnYWJicmV2aWF0aW9uX2xlbmd0aCcsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSk7CgkJaWYgKHN0cmxlbigkdGhpcy0+VmFsaWRhdGlvblR5cGUpPjApCgkJICB7CgkJICAJJHJldCAuPSAiLCAiLmFycmF5X3NlYXJjaCgkdGhpcy0+VmFsaWRhdGlvblR5cGUsJHRoaXMtPlZhbGlkYXRpb25UeXBlcyk7CgkJICB9CgkJIHJldHVybiAkcmV0OwoJfQoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJCSAgICAnZmJycF9vcHRfbGVuZ3RoJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSwyNSwyNSkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksCgkJCSAgICAgIGFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkJICAnZmJycF9vcHRfcmVnZXgnLAoJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDI1NSksJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSksCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJCQkgICdmYnJwX29wdF9kZWZhdWx0JywKCQkJCQkJCSAgJHRoaXMtPkdldE9wdGlvbignZGVmYXVsdCcpLDI1LDI1NSkpLAogICAgICBhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0JyksCgkJIAkJIAlhcnJheSgkbW9kLT5DcmVhdGVJbnB1dEhpZGRlbigkZm9ybURlc2NyaXB0b3IsJ2ZicnBfb3B0X2NsZWFyX2RlZmF1bHQnLCcwJykuJG1vZC0+Q3JlYXRlSW5wdXRDaGVja2JveCgkZm9ybURlc2NyaXB0b3IsICdmYnJwX29wdF9jbGVhcl9kZWZhdWx0JywKICAgICAgICAgICAgCQknMScsJHRoaXMtPkdldE9wdGlvbignY2xlYXJfZGVmYXVsdCcsJzAnKSksCiAgICAgICAgICAkbW9kLT5MYW5nKCd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnKSkpCQoJCSk7CgkJcmV0dXJuIGFycmF5KCdtYWluJz0+JG1haW4sJ2Fkdic9PiRhZHYpOwoJfQoKCglmdW5jdGlvbiBWYWxpZGF0ZSgpCgl7CgkJJHRoaXMtPnZhbGlkYXRlZCA9IHRydWU7CgkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAnJzsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgIHsKCQkgIAkgICBjYXNlICdub25lJzoKCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnbnVtZXJpYyc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goIi9eKFtcZFwuXCxdKSskL2kiLCAkdGhpcy0+VmFsdWUpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgIAkhIHByZWdfbWF0Y2goIi9eKFtcZF0pKyQvaSIsICR0aGlzLT5WYWx1ZSkgfHwKICAgICAgICAgICAgICAgICAgICAgIGludHZhbCgkdGhpcy0+VmFsdWUpICE9ICR0aGlzLT5WYWx1ZSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2ludGVnZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgICAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ2VtYWlsJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgoJG1vZC0+R2V0UHJlZmVyZW5jZSgncmVsYXhlZF9lbWFpbF9yZWdleCcsJzAnKT09MD8kbW9kLT5lbWFpbF9yZWdleDokbW9kLT5lbWFpbF9yZWdleF9yZWxheGVkKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICd1c3Bob25lJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5WYWx1ZSAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgnXihbMC05XVtcc1wuLV0/KT8oXCg/WzAtOV17M31cKT98WzAtOV17M30pW1xzXC4tXT8oWzAtOV17M31bXHNcLi1dP1swLTldezR9fFthLXpBLVowLTldezd9KShccz8oeHxleHR8ZXh0Lilccz9bYS16QS1aMC05XSspPyQnLAogICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl9hX3Bob25lJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goJHRoaXMtPkdldE9wdGlvbigncmVnZXgnLCcvLiovJyksICR0aGlzLT5WYWx1ZSkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICRtb2QtPkxhbmcoJ3BsZWFzZV9lbnRlcl92YWxpZCcsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAJICAgYnJlYWs7CgkJICAJICAgY2FzZSAncmVnZXhfbm9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+VmFsdWUgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXMtPlZhbHVlKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX3ZhbGlkJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgIAkgICBicmVhazsKCQkgIH0KCQlpZiAoJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSA+IDAgJiYgc3RybGVuKCR0aGlzLT5WYWx1ZSkgPiAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKQoJCQl7CgkJCSR0aGlzLT52YWxpZGF0ZWQgPSBmYWxzZTsKCQkJJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJywkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApKTsKCQkJfQoJCXJldHVybiBhcnJheSgkdGhpcy0+dmFsaWRhdGVkLCAkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCk7Cgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/classes/TextFieldExpandable.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRleHRGaWVsZEV4cGFuZGFibGUgZXh0ZW5kcyBmYkZpZWxkQmFzZSB7CgoJZnVuY3Rpb24gZmJUZXh0RmllbGRFeHBhbmRhYmxlKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RleHRGaWVsZEV4cGFuZGFibGUnOwoJCSR0aGlzLT5EaXNwbGF5SW5Gb3JtID0gdHJ1ZTsKCQkkdGhpcy0+SGFzVXNlckFkZE9wID0gdHJ1ZTsKCQkkdGhpcy0+SGFzVXNlckRlbGV0ZU9wID0gdHJ1ZTsKCQkkdGhpcy0+VmFsaWRhdGlvblR5cGVzID0gYXJyYXkoCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbm9uZScpPT4nbm9uZScsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fbnVtZXJpYycpPT4nbnVtZXJpYycsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25faW50ZWdlcicpPT4naW50ZWdlcicsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcycpPT4nZW1haWwnLAogICAgICAgICAgICAkbW9kLT5MYW5nKCd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJyk9PidyZWdleF9tYXRjaCcsCiAgICAgICAgICAgICRtb2QtPkxhbmcoJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCcpPT4ncmVnZXhfbm9tYXRjaCcKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmhhc011bHRpcGxlRm9ybUNvbXBvbmVudHMgPSB0cnVlOwoKCX0KCgoJZnVuY3Rpb24gR2V0RmllbGRJbnB1dCgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQpCgl7CgkgICRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJIC8vZGVidWdfZGlzcGxheSgkdGhpcy0+VmFsdWUpOwoJICAkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkKCiAgICAgaWYgKCEgaXNfYXJyYXkoJHRoaXMtPlZhbHVlKSkKCSAgICAgIHsKCSAgICAgICR2YWxzID0gMTsKCSAgICAgIH0KCSAgZWxzZQoJICAgICAgewoJICAgICAgJHZhbHMgPSBjb3VudCgkdGhpcy0+VmFsdWUpOwoJICAgICAgfQogICAgICBmb3JlYWNoICgkcGFyYW1zIGFzICRwS2V5PT4kcFZhbCkKICAgICAgICAgewogICAgICAgICBpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVYXycpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHB0cyA9IGV4cGxvZGUoJ18nLCRwS2V5KTsKICAgICAgICAgICAgaWYgKCRwdHNbMl0gPT0gJHRoaXMtPklkKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIC8vIGV4cGFuZAogICAgICAgICAgICAgICAkdGhpcy0+VmFsdWVbJHZhbHNdPScnOwogICAgICAgICAgICAgICAkdmFscysrOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoc3Vic3RyKCRwS2V5LDAsOSkgPT0gJ2ZicnBfRmVEXycpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgJHB0cyA9IGV4cGxvZGUoJ18nLCRwS2V5KTsKICAgICAgICAgICAgaWYgKCRwdHNbMl0gPT0gJHRoaXMtPklkKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIC8vIGRlbGV0ZSByb3cKICAgICAgICAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5WYWx1ZVskcHRzWzJdXSkpCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgYXJyYXlfc3BsaWNlKCR0aGlzLT5WYWx1ZSwgJHB0c1syXSwgMSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgJHZhbHMtLTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgIH0KCgkgICRyZXQgPSBhcnJheSgpOwoJICBmb3IgKCRpPTA7JGk8JHZhbHM7JGkrKykKCSAgICB7CgkgICAgJHRoaXNSb3cgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAkdGhpc1Jvdy0+bmFtZSA9ICcnOwogICAgICAgICR0aGlzUm93LT50aXRsZSA9ICcnOwoJICAgICR0aGlzUm93LT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdmYnJwX18nLiR0aGlzLT5JZC4nW10nLAoJCQkJICAgICAgICR0aGlzLT5WYWx1ZVskaV0sCiAgICAgICAgICAgICR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpPDI1PyR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcpOjI1LAogICAgICAgICAgICAkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnKSwkanMpOwogICAgICAgICR0aGlzUm93LT5vcCA9ICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfRmVEXycuJHRoaXMtPklkLidfJy4kaSwgJHRoaXMtPkdldE9wdGlvbignZGVsX2J1dHRvbicsJ1gnKSk7CiAgICAgICAgYXJyYXlfcHVzaCgkcmV0LCAkdGhpc1Jvdyk7CiAgICAgICAgfQogICAgICAkdGhpc1JvdyA9IG5ldyBzdGRDbGFzcygpOwogICAgICAkdGhpc1Jvdy0+bmFtZSA9ICcnOwogICAgICAkdGhpc1Jvdy0+dGl0bGUgPSAnJzsKICAgICAgJHRoaXNSb3ctPmlucHV0ID0gJyc7CiAgICAgICR0aGlzUm93LT5vcCA9ICRtb2QtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2ZicnBfRmVYXycuJHRoaXMtPklkLCAkdGhpcy0+R2V0T3B0aW9uKCdhZGRfYnV0dG9uJywnKycpKTsKICAgICAgYXJyYXlfcHVzaCgkcmV0LCAkdGhpc1Jvdyk7CiAgICAgIHJldHVybiAkcmV0OwoJfQoKCWZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewoJICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCSAgJHJldCA9ICRtb2QtPkxhbmcoJ2FiYnJldmlhdGlvbl9sZW5ndGgnLCR0aGlzLT5HZXRPcHRpb24oJ2xlbmd0aCcsJzgwJykpOwoJCWlmIChzdHJsZW4oJHRoaXMtPlZhbGlkYXRpb25UeXBlKT4wKQoJCSAgewoJCSAgCSRyZXQgLj0gIiwgIi5hcnJheV9zZWFyY2goJHRoaXMtPlZhbGlkYXRpb25UeXBlLCR0aGlzLT5WYWxpZGF0aW9uVHlwZXMpOwoJCSAgfQoJCSByZXR1cm4gJHJldDsKCX0KCglmdW5jdGlvbiBHZXRIdW1hblJlYWRhYmxlVmFsdWUoJGFzX3N0cmluZyA9IHRydWUpCgl7CgkJJGZvcm0gPSAmJHRoaXMtPmZvcm1fcHRyOwogICAgICBpZiAoISBpc19hcnJheSgkdGhpcy0+VmFsdWUpKQoJICAgICAgewoJICAgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCSAgICAgIH0KCWlmICgkYXNfc3RyaW5nKQoJCXsKCQlyZXR1cm4gam9pbigkZm9ybS0+R2V0QXR0cignbGlzdF9kZWxpbWl0ZXInLCcsJyksJHRoaXMtPlZhbHVlKTsKCQl9CgllbHNlCgkJewoJCXJldHVybiBhcnJheSgkcmV0KTsKCQl9Cgl9CgoKCglmdW5jdGlvbiBQcmVQb3B1bGF0ZUFkbWluRm9ybSgkZm9ybURlc2NyaXB0b3IpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJJG1haW4gPSBhcnJheSgKCQkJYXJyYXkoJG1vZC0+TGFuZygndGl0bGVfbWF4aW11bV9sZW5ndGgnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwgCgkJCQkJCSAgICAnZmJycF9vcHRfbGVuZ3RoJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywnODAnKSwyNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9hZGRfYnV0dG9uX3RleHQnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF9hZGRfYnV0dG9uJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignYWRkX2J1dHRvbicsJysnKSwxNSwyNSkpLAoJCQlhcnJheSgkbW9kLT5MYW5nKCd0aXRsZV9kZWxfYnV0dG9uX3RleHQnKSwKCQkJICAgICAgJG1vZC0+Q3JlYXRlSW5wdXRUZXh0KCRmb3JtRGVzY3JpcHRvciwKCQkJCQkJICAgICdmYnJwX29wdF9kZWxfYnV0dG9uJywKCQkJICAgICAgICAgJHRoaXMtPkdldE9wdGlvbignZGVsX2J1dHRvbicsJ1gnKSwxNSwyNSkpCgkJKTsKCQkkYWR2ID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlX2ZpZWxkX3JlZ2V4JyksCgkJCSAgICAgIGFycmF5KCRtb2QtPkNyZWF0ZUlucHV0VGV4dCgkZm9ybURlc2NyaXB0b3IsIAoJCQkJCQkJICAnZmJycF9vcHRfcmVnZXgnLAoJCQkJCQkJICAkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcpLDI1LDI1NSksJG1vZC0+TGFuZygndGl0bGVfcmVnZXhfaGVscCcpKSkJCgkJKTsKCQlyZXR1cm4gYXJyYXkoJ21haW4nPT4kbWFpbiwnYWR2Jz0+JGFkdik7Cgl9CgoKCWZ1bmN0aW9uIFZhbGlkYXRlKCkKCXsKCQkkdGhpcy0+dmFsaWRhdGVkID0gdHJ1ZTsKCQkkdGhpcy0+dmFsaWRhdGlvbkVycm9yVGV4dCA9ICcnOwoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCWlmICghIGlzX2FycmF5KCR0aGlzLT5WYWx1ZSkpCgkJICAgIHsKCQkgICAgJHRoaXMtPlZhbHVlID0gYXJyYXkoJHRoaXMtPlZhbHVlKTsKCQkgICAgfQoJCWZvcmVhY2ggKCR0aGlzLT5WYWx1ZSBhcyAkdGhpc1ZhbCkKCQkgICAgewoJCSAgICBzd2l0Y2ggKCR0aGlzLT5WYWxpZGF0aW9uVHlwZSkKCQkgICAgewoJCSAgCSAgIGNhc2UgJ25vbmUnOgoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdudW1lcmljJzoKICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzVmFsICE9PSBmYWxzZSAmJgogICAgICAgICAgICAgICAgICAgICAgISBwcmVnX21hdGNoKCIvXihbXGRcLlwsXSkrJC9pIiwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYV9udW1iZXInLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnaW50ZWdlcic6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgCSEgcHJlZ19tYXRjaCgiL14oW1xkXSkrJC9pIiwgJHRoaXNWYWwpIHx8CiAgICAgICAgICAgICAgICAgICAgICBpbnR2YWwoJHRoaXNWYWwpICE9ICR0aGlzVmFsKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfYW5faW50ZWdlcicsJHRoaXMtPk5hbWUpOwogICAgICAgICAgICAgICAgICAgIH0KCQkgIAkgICAgICAgYnJlYWs7CgkJICAJICAgY2FzZSAnZW1haWwnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXNWYWwgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAhIHByZWdfbWF0Y2goKCRtb2QtPkdldFByZWZlcmVuY2UoJ3JlbGF4ZWRfZW1haWxfcmVnZXgnLCcwJyk9PTA/JG1vZC0+ZW1haWxfcmVnZXg6JG1vZC0+ZW1haWxfcmVnZXhfcmVsYXhlZCksICR0aGlzVmFsKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX2FuX2VtYWlsJywkdGhpcy0+TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgfQoJCSAgCSAgICAgICBicmVhazsKCQkgIAkgICBjYXNlICdyZWdleF9tYXRjaCc6CiAgICAgICAgICAgICAgICAgIGlmICgkdGhpc1ZhbCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgICAgICAgICAgICEgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgCSAgIGNhc2UgJ3JlZ2V4X25vbWF0Y2gnOgogICAgICAgICAgICAgICAgICBpZiAoJHRoaXNWYWwgIT09IGZhbHNlICYmCiAgICAgICAgICAgICAgICAgICAgICAgcHJlZ19tYXRjaCgkdGhpcy0+R2V0T3B0aW9uKCdyZWdleCcsJy8uKi8nKSwgJHRoaXNWYWwpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbGlkYXRpb25FcnJvclRleHQgPSAkbW9kLT5MYW5nKCdwbGVhc2VfZW50ZXJfdmFsaWQnLCR0aGlzLT5OYW1lKTsKICAgICAgICAgICAgICAgICAgICB9CgkJICAJICAgCSAgIGJyZWFrOwoJCSAgfQoJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCdsZW5ndGgnLDApID4gMCAmJiBzdHJsZW4oJHRoaXNWYWwpID4gJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSkKCQkJewoJCQkkdGhpcy0+dmFsaWRhdGVkID0gZmFsc2U7CgkJCSR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0ID0gJG1vZC0+TGFuZygncGxlYXNlX2VudGVyX25vX2xvbmdlcicsJHRoaXMtPkdldE9wdGlvbignbGVuZ3RoJywwKSk7CgkJCX0KCQl9CgkJcmV0dXJuIGFycmF5KCR0aGlzLT52YWxpZGF0ZWQsICR0aGlzLT52YWxpZGF0aW9uRXJyb3JUZXh0KTsKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/classes/TimePickerField.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDYgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCgpjbGFzcyBmYlRpbWVQaWNrZXJGaWVsZCBleHRlbmRzIGZiRmllbGRCYXNlIHsKCgl2YXIgJGZsYWcxMmhvdXI7CgkKCWZ1bmN0aW9uIGZiVGltZVBpY2tlckZpZWxkKCYkZm9ybV9wdHIsICYkcGFyYW1zKQoJewogICAgICAgICR0aGlzLT5mYkZpZWxkQmFzZSgkZm9ybV9wdHIsICRwYXJhbXMpOwogICAgICAgICRtb2QgPSAmJGZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSR0aGlzLT5UeXBlID0gJ1RpbWVQaWNrZXJGaWVsZCc7CgkJJHRoaXMtPkRpc3BsYXlJbkZvcm0gPSB0cnVlOwoJCSR0aGlzLT5WYWxpZGF0aW9uVHlwZXMgPSBhcnJheSgKICAgICAgICAgICAgJG1vZC0+TGFuZygndmFsaWRhdGlvbl9ub25lJyk9Pidub25lJywKICAgICAgICAgICAgKTsKICAgICAgJHRoaXMtPmZsYWcxMmhvdXIgPSBhcnJheSgKCQkgIAkkbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpPT4kbW9kLT5MYW5nKCd0aXRsZV9iZWZvcmVfbm9vbicpLAogICAgICAgIAkkbW9kLT5MYW5nKCd0aXRsZV9hZnRlcl9ub29uJyk9PiRtb2QtPkxhbmcoJ3RpdGxlX2FmdGVyX25vb24nKSk7CiAgICAkdGhpcy0+aGFzTXVsdGlwbGVGb3JtQ29tcG9uZW50cyA9IHRydWU7CiAgICAkdGhpcy0+bGFiZWxTdWJDb21wb25lbnRzID0gZmFsc2U7Cgl9CgoKICAgIGZ1bmN0aW9uIFN0YXR1c0luZm8oKQoJewogICAgICAkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQlyZXR1cm4gKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnPyRtb2QtPkxhbmcoJzEyX2hvdXInKTokbW9kLT5MYW5nKCcyNF9ob3VyJykpOwoJfQoKCglmdW5jdGlvbiBHZXRGaWVsZElucHV0KCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCkKCXsKCQkkbW9kID0gJiR0aGlzLT5mb3JtX3B0ci0+bW9kdWxlX3B0cjsKCQkkanMgPSAkdGhpcy0+R2V0T3B0aW9uKCdqYXZhc2NyaXB0JywnJyk7CgkJCiAgICAgICAkbm93ID0gbG9jYWx0aW1lKHRpbWUoKSx0cnVlKTsKICAgICAgICRNaW5zID0gYXJyYXkoKTsKICAgICAgICRIb3VycyA9IGFycmF5KCk7CiAgICAgICAkcmV0ID0gYXJyYXkoKTsKICAgICAgIGZvciAoJGk9MDskaTw2MDskaSsrKQogICAgICAgCXsKCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkkTWluc1skbW9dPSRtbzsKCQkJfQogICAgICAgaWYgKCR0aGlzLT5HZXRPcHRpb24oJzI0X2hvdXInLCcwJykgPT0gJzAnKQogICAgICAgCQl7CiAgICAgICAJCWZvciAoJGk9MTskaTwxMzskaSsrKQogICAgICAgCQl7CgkJCQkJJG1vID0gc3ByaW50ZigiJTAyZCIsJGkpOwoJCQkJCSRIb3Vyc1skbW9dPSRtbzsKCQkJCX0KCQkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQkJewoJCQkJJG5vd1sndG1faG91ciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCQkkbm93WydtZXJpZCddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMik7CgkJCQkkbm93Wyd0bV9taW4nXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkbm93WydtZXJpZCddID0gJG1vZC0+TGFuZygndGl0bGVfYmVmb3JlX25vb24nKTsKCQkJCWlmICgkbm93Wyd0bV9ob3VyJ10gPiAxMikKCQkJCQl7CgkJCQkJJG5vd1sndG1faG91ciddIC09IDEyOwoJCQkJCSRub3dbJ21lcmlkJ10gPSAkbW9kLT5MYW5nKCd0aXRsZV9hZnRlcl9ub29uJyk7CgkJCQkJfQoJCQkJZWxzZWlmICgkbm93Wyd0bV9ob3VyJ10gPT0gMCkKCQkJCQl7CgkJCQkJJG5vd1sndG1faG91ciddID0gMTI7CgkJCQkJfQoJCQkJfQoKICAgICAgICAgICAgJGhyID0gbmV3IHN0ZENsYXNzKCk7CiAgICAgICAgICAgICRoci0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkSG91cnMsIC0xLCAkbm93Wyd0bV9ob3VyJ10sJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSIgJy4kanMpOwogICAgICAgCQkkaHItPnRpdGxlID0gJG1vZC0+TGFuZygnaG91cicpOwogICAgICAgCQkkaHItPm5hbWUgPSAnPGxhYmVsIGZvcj0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzEiPicuJG1vZC0+TGFuZygnaG91cicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJGhyKTsKICAgICAgIAkJCiAgICAgICAgICAgICRtaW4gPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJG1pbi0+aW5wdXQgPSAkbW9kLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ2ZicnBfXycuJHRoaXMtPklkLidbXScsCiAgICAgICAJCQkkTWlucywgLTEsICRub3dbJ3RtX21pbiddLCdpZD0iJy4kaWQuJ18nLiR0aGlzLT5JZC4nXzIiICcuJGpzKTsKICAgICAgIAkJJG1pbi0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtaW4nKTsKICAgICAgIAkJJG1pbi0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiI+Jy4kbW9kLT5MYW5nKCdtaW4nKS4nPC9sYWJlbD4nOwogICAgICAgCQlhcnJheV9wdXNoKCRyZXQsICRtaW4pOwoKICAgICAgICAgICAgJG1lciA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkbWVyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSR0aGlzLT5mbGFnMTJob3VyLCAtMSwgJG5vd1snbWVyaWQnXSwgJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMyIgJy4kanMpOwogICAgICAgICAgICAkbWVyLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18zIj4nLiRtb2QtPkxhbmcoJ21lcmlkJykuJzwvbGFiZWw+JzsKICAgICAgICAgICAgJG1lci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdtZXJpZCcpOwogICAgICAgICAgICBhcnJheV9wdXNoKCRyZXQsJG1lcik7CiAgICAgICAgICAgIHJldHVybiAkcmV0OwogICAgICAgCQl9CiAgICAgICBlbHNlCiAgICAgICAJCXsKICAgICAgIAkJZm9yICgkaT0wOyRpPDI0OyRpKyspCiAgICAgICAJCXsKCQkJCQkkbW8gPSBzcHJpbnRmKCIlMDJkIiwkaSk7CgkJCQkJJEhvdXJzWyRtb109JG1vOwoJCQkJfQoKCQkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQkJewoJCQkJJG5vd1sndG1faG91ciddID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCk7CgkJCQkkbm93Wyd0bV9taW4nXSA9ICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQogICAgICAgICAgICAkaHIgPSBuZXcgc3RkQ2xhc3MoKTsKICAgICAgICAgICAgJGhyLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRIb3VycywgLTEsICRub3dbJ3RtX2hvdXInXSwnaWQ9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18xIiAnLiRqcyk7CiAgICAgICAJCSRoci0+dGl0bGUgPSAkbW9kLT5MYW5nKCdob3VyJyk7CiAgICAgICAJCSRoci0+bmFtZSA9ICc8bGFiZWwgZm9yPSInLiRpZC4nXycuJHRoaXMtPklkLidfMSI+Jy4kbW9kLT5MYW5nKCdob3VyJykuJzwvbGFiZWw+JzsKICAgICAgIAkJYXJyYXlfcHVzaCgkcmV0LCAkaHIpOwogICAgICAgCQkKICAgICAgICAgICAgJG1pbiA9IG5ldyBzdGRDbGFzcygpOwogICAgICAgICAgICAkbWluLT5pbnB1dCA9ICRtb2QtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnZmJycF9fJy4kdGhpcy0+SWQuJ1tdJywKICAgICAgIAkJCSRNaW5zLCAtMSwgJG5vd1sndG1fbWluJ10sJ2lkPSInLiRpZC4nXycuJHRoaXMtPklkLidfMiIgJy4kanMpOwogICAgICAgCQkkbWluLT50aXRsZSA9ICRtb2QtPkxhbmcoJ21pbicpOwogICAgICAgCQkkbWluLT5uYW1lID0gJzxsYWJlbCBmb3I9IicuJGlkLidfJy4kdGhpcy0+SWQuJ18yIj4nLiRtb2QtPkxhbmcoJ21pbicpLic8L2xhYmVsPic7CiAgICAgICAJCWFycmF5X3B1c2goJHJldCwgJG1pbik7CgogICAgICAgICAgICByZXR1cm4gJHJldDsKICAgICAgIAkJfQoKCgl9CgogICBmdW5jdGlvbiBDb21wYXJlVG8oJHZhbCkKICAgewogICAgICAkdHQgPSAwOwogICAgICAkb3QgPSAwOwogICAgICBpZiAoJHRoaXMtPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJHR0ID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkgKiA2MCArICR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQl9CgkJJG8gPSAkdmFsLT5HZXRWYWx1ZSgpOwogICAgICBpZiAoJG8tPkhhc1ZhbHVlKCkpCgkJCXsKCQkJJG90ID0gJG8tPkdldEFycmF5VmFsdWUoMCkgKiA2MCArICRvLT5HZXRBcnJheVZhbHVlKDEpOwoJCQl9CiAgICAgIGlmICgkdHQgPT0gJG90KQogICAgICAgICB7CiAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgIHJldHVybiAoJHR0IDwgJG90KSA/IC0xIDogMTsKICAgfQoKCWZ1bmN0aW9uIEdldEh1bWFuUmVhZGFibGVWYWx1ZSgkYXNfc3RyaW5nPXRydWUpCgl7CgkJJG1vZCA9ICYkdGhpcy0+Zm9ybV9wdHItPm1vZHVsZV9wdHI7CgkJaWYgKCR0aGlzLT5IYXNWYWx1ZSgpKQoJCQl7CgkJCWlmICgkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpID09ICcwJykKCQkJCXsKCQkJCSRyZXQgPSAkdGhpcy0+R2V0QXJyYXlWYWx1ZSgwKS4nOicuCgkJCQkJJHRoaXMtPkdldEFycmF5VmFsdWUoMSkuJyAnLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDIpOwoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkcmV0ID0gJHRoaXMtPkdldEFycmF5VmFsdWUoMCkuJzonLgoJCQkJCSR0aGlzLT5HZXRBcnJheVZhbHVlKDEpOwoJCQkJfQoJCQl9CgkJZWxzZQoJCQl7CgkJCSRyZXQgPSAkbW9kLT5MYW5nKCd1bnNwZWNpZmllZCcpOwoJCQl9CgkJaWYgKCRhc19zdHJpbmcpCgkJCXsKCQkJcmV0dXJuICRyZXQ7CgkJCX0KCQllbHNlCgkJCXsKCQkJcmV0dXJuIGFycmF5KCRyZXQpOwoJCQl9Cgl9CgoJZnVuY3Rpb24gUHJlUG9wdWxhdGVBZG1pbkZvcm0oJGZvcm1EZXNjcmlwdG9yKQoJewoJCSRtb2QgPSAmJHRoaXMtPmZvcm1fcHRyLT5tb2R1bGVfcHRyOwoJCSRtYWluID0gYXJyYXkoCgkJCWFycmF5KCRtb2QtPkxhbmcoJ3RpdGxlXzI0X2hvdXInKSwKICAgICAgICAgICAgCQkkbW9kLT5DcmVhdGVJbnB1dENoZWNrYm94KCRmb3JtRGVzY3JpcHRvciwgJ2ZicnBfb3B0XzI0X2hvdXInLAogICAgICAgICAgICAJCScxJywkdGhpcy0+R2V0T3B0aW9uKCcyNF9ob3VyJywnMCcpKSkpOwoJCXJldHVybiBhcnJheSgnbWFpbic9PiRtYWluLGFycmF5KCkpOwoJfQoKfQoKPz4K]]></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[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IEZvcm1CdWlsZGVyCiMgVmVyc2lvbjogMC42LCByZWxlYXNlZCAyMDA4CiMKIyBDb3B5cmlnaHQgKGMpIDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPHNqZ0BjbXNtb2R1bGVzLmNvbT4KIyBGb3IgSW5mb3JtYXRpb24sIFN1cHBvcnQsIEJ1ZyBSZXBvcnRzLCBldGMsIHBsZWFzZSB2aXNpdCB0aGUKIyBDTVMgTWFkZSBTaW1wbGUgRm9yZ2U6CiMgaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9mb3JtYnVpbGRlci8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNiBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIwojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIENNU01vZHVsZQp7CgoJdmFyICRmaWVsZF90eXBlczsKCXZhciAkZGlzcF9maWVsZF90eXBlczsKCXZhciAkc3RkX2ZpZWxkX3R5cGVzOwoJdmFyICRhbGxfdmFsaWRhdGlvbl90eXBlczsKCXZhciAkbW9kdWxlX3B0cjsKCXZhciAkbW9kdWxlX2lkOwoJdmFyICRlbWFpbF9yZWdleDsKCXZhciAkZW1haWxfcmVnZXhfcmVsYXhlZDsKCXZhciAkZGJIYW5kbGU7CgoJZnVuY3Rpb24gRm9ybUJ1aWxkZXIoKQoJewoJCWdsb2JhbCAkZ0NtczsKCQkkdGhpcy0+Q01TTW9kdWxlKCk7Ci8vZXJyb3JfbG9nKCJNb2R1bGUgTG9hZDogIi5tZW1vcnlfZ2V0X3VzYWdlKCkpOwoJCQoJCSR0aGlzLT5tb2R1bGVfcHRyID0gJiR0aGlzOwoJCSR0aGlzLT5kYkhhbmRsZSA9ICYkZ0Ntcy0+R2V0RGIoKTsKCQkkdGhpcy0+bW9kdWxlX2lkID0gJyc7CgkJJHRoaXMtPmVtYWlsX3JlZ2V4ID0gIi9eKFtcd1xkXC5cLVxfXSkrXEAoW1x3XGRcLlwtXF9dKylcLihcdyspJC9pIjsKCQkkdGhpcy0+ZW1haWxfcmVnZXhfcmVsYXhlZD0iL14oW1x3XGRcLlwtXF9dKStcQChbXHdcZFwuXC1cX10pKyQvaSI7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9Gb3JtLmNsYXNzLnBocCc7CgkJcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19GSUxFX18pLicvY2xhc3Nlcy9GaWVsZEJhc2UuY2xhc3MucGhwJzsKCQkvLyR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwovL2Vycm9yX2xvZygibGVhdmluZyBtb2R1bGUgaW5zdGFudGlhdGlvbiB3aXRoOiAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CgkJCgl9CgoKCWZ1bmN0aW9uIGluaXRpYWxpemUoKQoJewovL2Vycm9yX2xvZygiZW50ZXJpbmcgaW5pdGlhbGl6ZSB3aXRoICIubWVtb3J5X2dldF91c2FnZSgpKTsKCQkkZGlyPW9wZW5kaXIoZGlybmFtZShfX0ZJTEVfXykuJy9jbGFzc2VzJyk7CiAgIAkJJHRoaXMtPmZpZWxkX3R5cGVzID0gYXJyYXkoKTsKICAgCQl3aGlsZSgkZmlsZXNwZWM9cmVhZGRpcigkZGlyKSkKICAgCQkJewogICAgICAgCQlpZihzdHJwb3MoJGZpbGVzcGVjLCdGaWVsZCcpID09PSBmYWxzZSAmJiBzdHJwb3MoJGZpbGVzcGVjLCdEaXNwb3NpdGlvbicpID09PSBmYWxzZSkKICAgICAgIAkJCXsKICAgICAgIAkJCWNvbnRpbnVlOwogICAgICAgCQkJfQogICAgICAgCQkkc2hvcnRuYW1lID0gc3Vic3RyKCRmaWxlc3BlYywwLHN0cnBvcygkZmlsZXNwZWMsJy4nKSk7CiAgICAgICAJCWlmIChzdWJzdHIoJHNob3J0bmFtZSwtNCkgPT0gJ0Jhc2UnKQogICAgICAgCQkJewogICAgICAgCQkJY29udGludWU7CiAgICAgICAJCQl9CiAgICAgICAJCSR0aGlzLT5maWVsZF90eXBlc1skdGhpcy0+TGFuZygnZmllbGRfdHlwZV8nLiRzaG9ydG5hbWUpXSA9ICRzaG9ydG5hbWU7CgkJCX0gICAgICAgIAoJCQogICAgICAgIGZvcmVhY2ggKCR0aGlzLT5maWVsZF90eXBlcyBhcyAkdE5hbWU9PiR0VHlwZSkKICAgICAgICAJewogICAgICAgIAlpZiAoc3Vic3RyKCR0VHlwZSwwLDExKSA9PSAnRGlzcG9zaXRpb24nKQogICAgICAgIAkJewogICAgICAgIAkJJHRoaXMtPmRpc3BfZmllbGRfdHlwZXNbJHROYW1lXT0kdFR5cGU7CiAgICAgICAgCQl9CiAgICAgICAgCX0KCQkkdGhpcy0+YWxsX3ZhbGlkYXRpb25fdHlwZXMgPSBhcnJheSgpOwoJCWtzb3J0KCR0aGlzLT5maWVsZF90eXBlcyk7CgkJJHRoaXMtPnN0ZF9maWVsZF90eXBlcyA9IGFycmF5KAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9UZXh0RmllbGQnKT0+J1RleHRGaWVsZCcsCgkJCSR0aGlzLT5MYW5nKCdmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnKT0+J1RleHRBcmVhRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJyk9PidDaGVja2JveEZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJyk9PidDaGVja2JveEdyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJyk9PidQdWxsZG93bkZpZWxkJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJyk9PidSYWRpb0dyb3VwRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJyk9PidEaXNwb3NpdGlvbkVtYWlsJywKCQkJJHRoaXMtPkxhbmcoJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJyk9PidEaXNwb3NpdGlvbkZpbGUnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCcpPT4nUGFnZUJyZWFrRmllbGQnLAoJCQkkdGhpcy0+TGFuZygnZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnKT0+J1N0YXRpY1RleHRGaWVsZCcpOwoJCWtzb3J0KCR0aGlzLT5zdGRfZmllbGRfdHlwZXMpOwkJCgkJCgkJCi8vZXJyb3JfbG9nKCJsZWF2aW5nIGluaXRpYWxpemUgd2l0aCAiLm1lbW9yeV9nZXRfdXNhZ2UoKSk7CgoJfQoKCWZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKQoJewoJICByZXR1cm4gRkFMU0U7Cgl9CgoJZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpCgl7CgkgIHJldHVybiBGQUxTRTsKCX0KCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ0Zvcm1CdWlsZGVyJzsKCX0KCQoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwoJfQoKCWZ1bmN0aW9uIEdldFZlcnNpb24oKQoJewoJCXJldHVybiAnMC41LjUnOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvcigpCgl7CgkJcmV0dXJuICdTakcnOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ3NqZ0BjbXNtb2R1bGVzLmNvbSc7Cgl9CgogICAgZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCiAgICB7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdhZG1pbmRlc2MnKTsKICAgIH0KCglmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7Cgl9CgoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKQoJewoJCXJldHVybiB0cnVlOwoJfQoKCWZ1bmN0aW9uIEhhc0FkbWluKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQoJewoJCXJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgRm9ybXMnKTsKCX0KCiAgICBmdW5jdGlvbiBBZG1pblN0eWxlKCkKICAgIHsKICAgICAgcmV0dXJuICJcbi5tb2R1bGVfZmJfdGFibGUge2ZvbnQtc2l6ZTogMTBweDt9XG4ubW9kdWxlX2ZiX2FyZWFfd2lkZSB7d2lkdGg6IDUwMHB4O31cbi5tb2R1bGVfZmJfbGVnZW5ke2ZvbnQtc2l6ZTogOXB4OyBtYXJnaW46IDZweDsgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7fS5tb2R1bGVfZmJfYXJlYV9zaG9ydCB7d2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDEwMHB4O31cbi5tb2R1bGVfZmJfbGluayB7dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuLm1vZHVsZV9mYl9maWVsZHNldCB7bWFyZ2luLWJvdHRvbToyZW07fVxuLm9kZCB7YmFja2dyb3VuZC1jb2xvcjogI2ZmZjt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ25tZW50OiB0b3A7fVxuLmV2ZW4ge2JhY2tncm91bmQtY29sb3I6ICNkZGQ7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWdubWVudDogdG9wO31cbiI7CiAgICB9CgoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CiAgICAJJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwogICAgCSR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ2ZicnBfKicsJ251bGwnLCR0aGlzLT5MYW5nKCdmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCcpKTsKCQkkdGhpcy0+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+R2V0SWQoKV1dID0gJGZpZWxkc1skal0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAJfQogICAgICAgIAkKCQlyZXR1cm4gJG9uZXNldDsKCX0KLy8gU3RhcnQgQUxCWQpmdW5jdGlvbiBHZXRSZXNwb25zZXMoJGZvcm1faWQsICRzdGFydF9wb2ludCwgJG51bWJlciwgJGFkbWluX2FwcHJvdmVkPWZhbHNlLCAkdXNlcl9hcHByb3ZlZD1mYWxzZSwgJGZpZWxkX2xpc3Q9YXJyYXkoKSwgJGRhdGVGbXQ9J2QgRiB5JywgJiRwYXJhbXMpCi8vIEVuZCBBTEJZCgl7CgkJZ2xvYmFsICRnQ21zOwoJCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCQkkbmFtZXMgPSBhcnJheSgpOwoJCSR2YWx1ZXMgPSBhcnJheSgpOwoJCSRzcWwgPSAnRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4KICAgICAgICAJCQknbW9kdWxlX2ZiX3Jlc3AgV0hFUkUgZm9ybV9pZD0/JzsKICAgICAgICBpZiAoJHVzZXJfYXBwcm92ZWQpCiAgICAgICAgCXsKICAgICAgICAJICRzcWwgLj0gJyBhbmQgdXNlcl9hcHByb3ZlZCBpcyBub3QgbnVsbCc7CiAgICAgICAgCSB9CiAgICAgICAgaWYgKCRhZG1pbl9hcHByb3ZlZCkKICAgICAgICAJewogICAgICAgIAkkc3FsIC49ICcgYW5kIGFkbWluX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKICAgICAgICAJfQovLyBTdGFydCBBTEJZCmlmKCAoISBlbXB0eSgkcGFyYW1zWydmYnJwX3Jlc3BvbnNlX3NlYXJjaCddKSkgJiYgKGlzX2FycmF5KCRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pKSApCiAkc3FsIC49ICcgQU5EIHJlc3BfaWQgSU4gKCcuIGltcGxvZGUoJywnLCAkcGFyYW1zWydmYnJwX3Jlc3BvbnNlX3NlYXJjaCddKSAuJyknOwovLyBFbmQgQUxCWQogICAgICAgICRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQnOwogICAgICAgICRkYmNvdW50ID0gJGRiLT5FeGVjdXRlKCdTRUxFQ1QgQ09VTlQoKikgYXMgbnVtICcuJHNxbCxhcnJheSgkZm9ybV9pZCkpOwogICAKICAgICAgICAkcmVjb3JkcyA9IDA7CiAgICAgICAgaWYgKCRkYmNvdW50ICYmICRyb3cgPSAkZGJjb3VudC0+RmV0Y2hSb3coKSkKICAgICAgICAJeyAgIAogICAgICAgIAkkcmVjb3JkcyA9ICRyb3dbJ251bSddOwogICAgICAgIAl9CiAgICAgICAJJGRicmVzdWx0ID0gJGRiLT5TZWxlY3RMaW1pdCgnU0VMRUNUICogJy4kc3FsLCAkbnVtYmVyLCAkc3RhcnRfcG9pbnQsIGFycmF5KCRmb3JtX2lkKSk7CgoJCXdoaWxlICgkZGJyZXN1bHQgJiYgJHJvdyA9ICRkYnJlc3VsdC0+RmV0Y2hSb3coKSkKCQkJewoJCQkkb25lc2V0ID0gbmV3IHN0ZENsYXNzKCk7CgkJCSRvbmVzZXQtPmlkID0gJHJvd1sncmVzcF9pZCddOwoJCQkkb25lc2V0LT51c2VyX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ3VzZXJfYXBwcm92ZWQnXSk/Jyc6ZGF0ZSgkZGF0ZUZtdCwkZGItPlVuaXhUaW1lU3RhbXAoJHJvd1sndXNlcl9hcHByb3ZlZCddKSkpOyAKIAkJCSRvbmVzZXQtPmFkbWluX2FwcHJvdmVkID0gKGVtcHR5KCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pPycnOmRhdGUoJGRhdGVGbXQsJGRiLT5Vbml4VGltZVN0YW1wKCRyb3dbJ2FkbWluX2FwcHJvdmVkJ10pKSk7IAoJCQkkb25lc2V0LT5zdWJtaXR0ZWQgPSBkYXRlKCRkYXRlRm10LCRkYi0+VW5peFRpbWVTdGFtcCgkcm93WydzdWJtaXR0ZWQnXSkpOwoJCQkkb25lc2V0LT5maWVsZHMgPSBhcnJheSgpOwoJCSAgICBhcnJheV9wdXNoKCR2YWx1ZXMsJG9uZXNldCk7CgkJICAgIH0KCQkkcG9wdWxhdGVfbmFtZXMgPSB0cnVlOwoJCSRmbSA9IC0xOwoJCSRhbGxfZmllbGRzID0gZmFsc2U7CgkJaWYgKGNvdW50KCRmaWVsZF9saXN0KSA9PSAwKQoJCQl7CgkJCSRhbGxfZmllbGRzID0gdHJ1ZTsKCQkJfQoJCWZvcigkaT0wOyRpPGNvdW50KCR2YWx1ZXMpOyRpKyspCgkJCXsKCQkJJHBhcmFtU2V0ID0gYXJyYXkoJ2Zvcm1faWQnPT4kZm9ybV9pZCwgJ3Jlc3BvbnNlX2lkJz0+JHZhbHVlc1skaV0tPmlkKTsKCQkJaWYgKGdldHR5cGUoJGZtKSA9PSAiaW50ZWdlciIpIC8vIGZpeCB0aGlzLCBmb3IgYmV0dGVyIGVmZmljaWVuY3khCgkJCQl7CgkJCQkkZm0gPSAkdGhpcy0+R2V0Rm9ybUJ5UGFyYW1zKCRwYXJhbVNldCwgdHJ1ZSk7CgkJCQl9CgkJCWVsc2UKCQkJCXsKCQkJCSRmbS0+TG9hZFJlc3BvbnNlKCR2YWx1ZXNbJGldLT5pZCk7CgkJCQl9CgkJCSRmaWVsZHMgPSAmJGZtLT5HZXRGaWVsZHMoKTsKCQkJJGluZCA9IDA7CgkJCWZvcigkaj0wOyRqPGNvdW50KCRmaWVsZHMpOyRqKyspCgkJCQl7CgkJCQlpZiAoJGZpZWxkc1skal0tPkRpc3BsYXlJblN1Ym1pc3Npb24oKSkKCQkJCQl7CgkJCQkJaWYgKGlzc2V0KCRmaWVsZF9saXN0WyRmaWVsZHNbJGpdLT5HZXRJZCgpXSkKCQkJCQkJJiYgJGZpZWxkX2xpc3RbJGZpZWxkc1skal0tPkdldElkKCldID4gLTEpCgkJCQkJCXsKCQkJCQkJaWYgKCRwb3B1bGF0ZV9uYW1lcykKCQkJCQkJCXsKCQkJCQkJCSRuYW1lc1skZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV1dID0gJGZpZWxkc1skal0tPkdldE5hbWUoKTsKCQkJCQkJCX0KICAgICAgICAgICAgICAgIAkJJHZhbHVlc1skaV0tPmZpZWxkc1skZmllbGRfbGlzdFskZmllbGRzWyRqXS0+R2V0SWQoKV1dID0gJGZpZWxkc1skal0tPkdldEh1bWFuUmVhZGFibGVWYWx1ZSgpOwogICAgICAgICAgICAgICAgCQl9CgkJCQkJZWxzZSBpZiAoJGFsbF9maWVsZHMpCgkJCQkJCXsKCQkJCQkJaWYgKCRwb3B1bGF0ZV9uYW1lcykKCQkJCQkJCXsKCQkJCQkJCSRuYW1lc1skaW5kXSA9ICRmaWVsZHNbJGpdLT5HZXROYW1lKCk7CgkJCQkJCQl9CgkJCQkJCSR2YWx1ZXNbJGldLT5maWVsZHNbJGluZF0gPSAkZmllbGRzWyRqXS0+R2V0SHVtYW5SZWFkYWJsZVZhbHVlKCk7CgkJCQkJCSRpbmQrKzsKCQkJCQkJfQogICAgICAgICAgICAgICAgCX0KICAgICAgICAJCX0KICAgICAgICAJJHBvcHVsYXRlX25hbWVzID0gZmFsc2U7CgkJCX0KCQlyZXR1cm4gYXJyYXkoJHJlY29yZHMsICRuYW1lcywgJHZhbHVlcyk7Cgl9CgoKCWZ1bmN0aW9uIEdldFNvcnRlZFJlc3BvbnNlcygkZm9ybV9pZCwgJHN0YXJ0X3BvaW50LCAkbnVtYmVyLCAkYWRtaW5fYXBwcm92ZWQ9ZmFsc2UsICR1c2VyX2FwcHJvdmVkPWZhbHNlLCAkZmllbGRfbGlzdD1hcnJheSgpLCAkZGF0ZUZtdD0nZCBGIHknLCAmJHBhcmFtcykKCXsKCQlnbG9iYWwgJGdDbXM7CgkJJGRiID0mICRnQ21zLT5HZXREYigpOwoJCSRuYW1lcyA9IGFycmF5KCk7CgkJJHZhbHVlcyA9IGFycmF5KCk7CgkJJHNxbCA9ICdGUk9NICcuY21zX2RiX3ByZWZpeCgpLgogICAgICAgIAkJCSdtb2R1bGVfZmJfcmVzcCBXSEVSRSBmb3JtX2lkPT8nOwogICAgICAgIGlmICgkdXNlcl9hcHByb3ZlZCkKICAgICAgICAJewogICAgICAgIAkgJHNxbCAuPSAnIGFuZCB1c2VyX2FwcHJvdmVkIGlzIG5vdCBudWxsJzsKICAgICAgICAJIH0KICAgICAgICBpZiAoJGFkbWluX2FwcHJvdmVkKQogICAgICAgIAl7CiAgICAgICAgCSRzcWwgLj0gJyBhbmQgYWRtaW5fYXBwcm92ZWQgaXMgbm90IG51bGwnOwogICAgICAgIAl9Ci8vIFN0YXJ0IEFMQlkKaWYoICghIGVtcHR5KCRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pKSAmJiAoaXNfYXJyYXkoJHBhcmFtc1snZmJycF9yZXNwb25zZV9zZWFyY2gnXSkpICkKICRzcWwgLj0gJyBBTkQgcmVzcF9pZCBJTiAoJy4gaW1wbG9kZSgnLCcsICRwYXJhbXNbJ2ZicnBfcmVzcG9uc2Vfc2VhcmNoJ10pIC4nKSc7Ci8vIEVuZCBBTEJZCiAgICAgICAgCgkJaWYgKCEgaXNzZXQoJHBhcmFtc1snZmJycF9zb3J0X2ZpZWxkJ10pIHx8ICRwYXJhbXNbJ2ZicnBfc29ydF9maWVsZCddPT0nc3VibWl0ZGF0ZScpCgkJCXsKCQkJaWYgKGlzc2V0KCRwYXJhbXNbJ2ZicnBfc29ydF9kaXInXSkgJiYgJHBhcmFtc1snZmJycF9zb3J0X2RpciddID09ICdkJykKCQkJCXsKCQkJCSRzcWwgLj0gJyBvcmRlciBieSBzdWJtaXR0ZWQgZGVzYyc7CQoJCQkJfQoJCQllbHNlCgkJCQl7CgkJCQkkc3FsIC49ICcgb3JkZXIgYnkgc3VibWl0dGVkIGFzYyc7CgkJCQl9CgkJCX0KICAgICAgICAkZGJjb3VudCA9ICRkYi0+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[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjEiCglhbGlhcz0iY29udGFjdCI+Cgk8Zm9ybV9uYW1lPjwhW0NEQVRBW0NvbnRhY3QgVXNdXT48L2Zvcm1fbmFtZT4KCQk8YXR0cmlidXRlIGtleT0iY3NzX2NsYXNzIj48IVtDREFUQVtjb250YWN0Zm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJjYXB0Y2hhX3dyb25nIj48IVtDREFUQVtDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV90ZW1wbGF0ZSI+PCFbQ0RBVEFbeyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiAkZmJfc3VibWlzc2lvbl9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGZiX3N1Ym1pc3Npb25fZXJyb3J9PC9kaXY+CgkJe2lmICRmYl9zaG93X3N1Ym1pc3Npb25fZXJyb3JzfQoJCQk8ZGl2IGNsYXNzPSJlcnJvciI+CgkJCTx1bD4KCQkJe2ZvcmVhY2ggZnJvbT0kZmJfc3VibWlzc2lvbl9lcnJvcl9saXN0IGl0ZW09dGhpc0Vycn0KCQkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQkJey9mb3JlYWNofQoJCQk8L3VsPgoJCTwvZGl2PgoJCXsvaWZ9Cgl7L2lmfQp7ZWxzZX0KCXsqIHRoaXMgc2VjdGlvbiBpcyBmb3IgZGlzcGxheWluZyB0aGUgZm9ybSAqfQoJeyogd2Ugc3RhcnQgd2l0aCB2YWxpZGF0aW9uIGVycm9ycyAqfQoJe2lmICRmYl9mb3JtX2hhc192YWxpZGF0aW9uX2Vycm9yc30KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj4KCQk8dWw+CgkJe2ZvcmVhY2ggZnJvbT0kZmJfZm9ybV92YWxpZGF0aW9uX2Vycm9ycyBpdGVtPXRoaXNFcnJ9CgkJCTxsaT57JHRoaXNFcnJ9PC9saT4KCQl7L2ZvcmVhY2h9CgkJPC91bD4KCQk8L2Rpdj4KCXsvaWZ9Cgl7aWYgJGNhcHRjaGFfZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRjYXB0Y2hhX2Vycm9yfTwvZGl2PgoJey9pZn0KCgl7KiBhbmQgbm93IHRoZSBmb3JtIGl0c2VsZiAqfQoJeyRmYl9mb3JtX3N0YXJ0fQoJPGRpdj57JGZiX2hpZGRlbn08L2Rpdj4KCTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQogICAgICAgIAl7c3RyaXB9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTxkaXYKICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9CiAgICAgICAgICAgICAgICAJCXJlcXVpcmVkCiAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSAmJiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30gey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmNzc19jbGFzcyAhPSAnJ30KICAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+Y3NzX2NsYXNzfQogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXsvaWZ9CiAgICAgICAgICAgIAl7L3NlY3Rpb259CiAgICAgICAgIAl7ZWxzZX0KICAgICAgICAgICAgCXtpZiAkZW50cnktPnNtYXJ0eV9ldmFsID09ICcxJ317ZXZhbCB2YXI9JGVudHJ5LT5pbnB1dH17ZWxzZX17JGVudHJ5LT5pbnB1dH17L2lmfQogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPnZhbGlkID09IDB9ICZsdDstLS0geyRlbnRyeS0+ZXJyb3J9ey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPC9kaXY+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJey9zdHJpcH0KICAgICAJey9pZn0KCXsvZm9yZWFjaH0KCXtpZiAkaGFzX2NhcHRjaGEgPT0gMX0KCQk8ZGl2IGNsYXNzPSJjYXB0Y2hhIj57JGdyYXBoaWNfY2FwdGNoYX17JHRpdGxlX2NhcHRjaGF9PGJyIC8+eyRpbnB1dF9jYXB0Y2hhfTwvZGl2PgoJey9pZn0KCTxkaXYgY2xhc3M9InN1Ym1pdCI+eyRwcmV2fXskc3VibWl0fTwvZGl2PgoJPC9kaXY+Cgl7JGZiX2Zvcm1fZW5kfQp7L2lmfQp7JGZiX2Zvcm1fZm9vdGVyfV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ1c2VfY2FwdGNoYSI+PCFbQ0RBVEFbMF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYWN0aW9uIj48IVtDREFUQVt0ZXh0XV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3VzZXJfY2FwdGNoYSI+PCFbQ0RBVEFbUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ibmV4dF9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQ29udGludWUuLi5dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0icHJldl9idXR0b25fdGV4dCI+PCFbQ0RBVEFbQmFjay4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJyZXF1aXJlZF9maWVsZF9zeW1ib2wiPjwhW0NEQVRBWypdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idW5zcGVjaWZpZWQiPjwhW0NEQVRBW1t1bnNwZWNpZmllZF1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtTdWJtaXQgRm9ybV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InN1Ym1pdF9yZXNwb25zZSI+PCFbQ0RBVEFbPHA+VGhhbmsgeW91LCA8c3Ryb25nPnskeW91cl9uYW1lfTwvc3Ryb25nPi48L3A+CjxwPllvdXIgc3VibWlzc2lvbiBoYXMgYmVlbiBzdWNjZXNzZnVsLiBZb3UgbWF5IHdpc2ggdG8gcHJpbnQgdGhpcyBwYWdlIGFzIGEgcmVmZXJlbmNlLjwvcD4KPGgzPkNvbnRhY3QgRGV0YWlsczwvaDM+CjxwPgo8c3Ryb25nPk5hbWU8L3N0cm9uZz46IHskeW91cl9uYW1lfTxiciAvPgo8c3Ryb25nPkVtYWlsPC9zdHJvbmc+OiA8YSBocmVmPSJtYWlsdG86eyR5b3VyX2VtYWlsX2FkZHJlc3N9Ij57JHlvdXJfZW1haWxfYWRkcmVzc308L2E+PGJyIC8+CjwvcD4KPGgzPkZlZWRiYWNrIERldGFpbHM8L2gzPgo8cD4KPHN0cm9uZz5TdWJqZWN0PC9zdHJvbmc+OiB7JHN1YmplY3R9PGJyIC8+CjxzdHJvbmc+Q29tbWVudHM8L3N0cm9uZz46PGJyIC8+CnskbWVzc2FnZX0KPC9wPiAKPGg0Pk90aGVyIGluZm9ybWF0aW9uPC9oND4KPHA+CjxzdHJvbmc+RGF0ZSBvZiBTdWJtaXNzaW9uPC9zdHJvbmc+OiB7JHN1Yl9kYXRlfTxiciAvPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPgo8c3Ryb25nPkRvbWFpbjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5Zb3VyIElQIGFkZHJlc3M8L3N0cm9uZz46IHskc3ViX3NvdXJjZV9pcH0KPC9wPiBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ibGlzdF9kZWxpbWl0ZXIiPjwhW0NEQVRBWyxdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idXNlX2NhcHRjaGEiPjwhW0NEQVRBW11dPjwvYXR0cmlidXRlPgoJPGZpZWxkIGlkPSIxIgoJCXR5cGU9IkRpc3Bvc2l0aW9uRW1haWwiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjEiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBWyoqVVBEQVRFIFRISVMgRklFTEQqKl1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9zdWJqZWN0Ij48IVtDREFUQVtObyBTdWJqZWN0IFNldF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fbmFtZSI+PCFbQ0RBVEFbTm8gTmFtZSBHaXZlbl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2Zyb21fYWRkcmVzcyI+PCFbQ0RBVEFbbm9ib2R5QHNhbXBsZS5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVt5b3VAeW91cmRvbWFpbi5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGh0bWw+CjxoZWFkPgp7bGl0ZXJhbH0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPCEtLQpib2R5IHtmb250Ojg1JS8xLjMgVmVyZGFuYSxBcmlhbCxzYW5zfQpoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHsgbWFyZ2luOiAwcHggfQpoMSB7IGZvbnQtc2l6ZTogMi4yZW07IHBhZGRpbmc6IDBweDsgfQpoMiB7IGZvbnQtc2l6ZTogMS44ZW07IGZvbnQtd2VpZ2h0OiBub3JtYWwgfQpoMiwgaDMsIGg0LCBoNSB7IGZvbnQtZmFtaWx5OiBBcmlhbCwgR2VuZXZhOyBtYXJnaW4tdG9wOiAxZW07IH0KaDMgewogICBmb250LXNpemU6IDEuNjVlbTsKICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICAgZm9udC1zdHlsZTppdGFsaWM7CiAgIGNvbG9yOiAjRjYwOwogICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDsKfQpoNCB7CiAgIGZvbnQtc2l6ZTogMS4yNWVtOwogICBwYWRkaW5nOiAwZW0gMC4yZW07CiAgIGNvbG9yOiMwMDVDQUI7CiAgIGJvcmRlci10b3A6MXB4IHNvbGlkICMwMDA7CiAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICMwMDA7CiAgIG1hcmdpbi10b3A6IDAKfQpoNSB7IGZvbnQtc2l6ZTogMS4yZW07IGZvbnQtc3R5bGU6aXRhbGljOyBjb2xvcjojMDA1Q0FCfQpoNiB7IGZvbnQtc2l6ZTogMC45ZW07IGNvbG9yOiM2NjY7IGZvbnQtdmFyaWFudDpzbWFsbC1jYXBzfQpwIHsgbWFyZ2luOiAwLjVlbSAwIDFlbTsgbGluZS1oZWlnaHQ6IDEuNDsgfQpociB7IGJvcmRlcjowOyBib3JkZXItdG9wOjFweCBzb2xpZCAjRjYwOyBoZWlnaHQ6MXB4OyAgZm9udC1zaXplOjFweDsgYmFja2dyb3VuZDogI0Y2MDsgY29sb3I6ICNmZmZ9Ci5kb3R0ZWQtYm9yZGVyIHtib3JkZXI6IDFweCBkb3R0ZWQgI0Y2MDsgcGFkZGluZzogMC41ZW19Ci0tPgo8L3N0eWxlPgp7L2xpdGVyYWx9CjxiYXNlZm9udCBmYWNlPSJWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmIiBjb2xvcj0iIzAwMDAwMCIgc2l6ZT0iMyIgLz4KPC9oZWFkPgo8Ym9keT4KPGgxPkZlZWRiYWNrIGZyb20geyRzdWJfaG9zdH0teyRzdWJfZm9ybV9uYW1lfTwvaDE+CjxoMj5Db250YWN0IERldGFpbHM8L2gyPgo8ZGl2IGNsYXNzPSJkb3R0ZWQtYm9yZGVyIj4KPHN0cm9uZz5OYW1lPC9zdHJvbmc+OiB7JHlvdXJfbmFtZX08YnIgLz4KPHN0cm9uZz5FbWFpbDwvc3Ryb25nPjogeyR5b3VyX2VtYWlsX2FkZHJlc3N9PGJyIC8+CjwvZGl2Pgo8aDI+RmVlZGJhY2sgRGV0YWlsczwvaDI+CjxkaXYgY2xhc3M9ImRvdHRlZC1ib3JkZXIiPgo8c3Ryb25nPlN1YmplY3Q8L3N0cm9uZz46IHskc3ViamVjdH08YnIgLz4KPHN0cm9uZz5Db21tZW50czwvc3Ryb25nPjo8YnIgLz4KeyRtZXNzYWdlfQo8L2Rpdj4KPGgzPk90aGVyIGluZm9ybWF0aW9uPC9oMz4KPHA+CjxzdHJvbmc+RGF0ZSBvZiBTdWJtaXNzaW9uPC9zdHJvbmc+OiB7JHN1Yl9kYXRlfTxiciAvPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPlVSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybTwvc3Ryb25nPjogeyRzdWJfdXJsfTxiciAvPgo8c3Ryb25nPkRvbWFpbjo8L3N0cm9uZz4geyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5TZW5kZXIncyBJUDwvc3Ryb25nPjogeyRzdWJfc291cmNlX2lwfQo8L3A+CjwvYm9keT4KPC9odG1sPiBdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9lbmNvZGluZyI+PCFbQ0RBVEFbdXRmLThdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJodG1sX2VtYWlsIj48IVtDREFUQVsxXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjIiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIyIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0NTU11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVs8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgouY29udGFjdGZvcm0gZmllbGRzZXQge3BhZGRpbmc6IDFlbTsgYmFja2dyb3VuZC1jb2xvcjogI2VlZTt9Ci5jb250YWN0Zm9ybSBmaWVsZHNldCBsZWdlbmQge2ZvbnQtd2VpZ2h0OiBib2xkO30KLmNvbnRhY3Rmb3JtIGRpdiB7d2lkdGg6IDEwMCU7IHBhZGRpbmc6IDAuMjVlbSAwIDAuMjVlbSAwO30KLmNvbnRhY3Rmb3JtIGRpdiBsYWJlbCB7ZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMGVtOyB9Ci5jb250YWN0Zm9ybSBkaXYucmVxdWlyZWQge2NvbG9yOiAjZjAwO30KPC9zdHlsZT5dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIzIgoJCXR5cGU9IkZpZWxkc2V0U3RhcnQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjMiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbQ29udGFjdCBGaWVsZHNldF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbiBuYW1lPSJsZWdlbmQiPjwhW0NEQVRBW0NvbnRhY3RdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI0IgoJCXR5cGU9IkZyb21FbWFpbE5hbWVGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNCIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbWW91ciBOYW1lXV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjUiCgkJdHlwZT0iRnJvbUVtYWlsQWRkcmVzc0ZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iZW1haWwiCgkJb3JkZXJfYnk9IjUiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1lvdXIgRW1haWwgQWRkcmVzc11dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI2IgoJCXR5cGU9IkZyb21FbWFpbFN1YmplY3RGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNiIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbU3ViamVjdF1dPjwvZmllbGRfbmFtZT4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSI3IgoJCXR5cGU9IlRleHRBcmVhRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjciCgkJcmVxdWlyZWQ9IjEiCgkJaGlkZV9sYWJlbD0iMCI+CgkJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW01lc3NhZ2VdXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb24gbmFtZT0icm93cyI+PCFbQ0RBVEFbNV1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNvbHMiPjwhW0NEQVRBWzYwXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iOCIKCQl0eXBlPSJGaWVsZHNldEVuZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iOCIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbQ29udGFjdCBGaWVsZHNldCBFbmRdXT48L2ZpZWxkX25hbWU+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[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGZvcm0gaWQ9IjIiCglhbGlhcz0ic2FtcGxlX2Zvcm0iPgoJPGZvcm1fbmFtZT48IVtDREFUQVtTYW1wbGUgRm9ybV1dPjwvZm9ybV9uYW1lPgoJCTxhdHRyaWJ1dGUga2V5PSJwcmV2X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtCYWNrLi4uXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlcXVpcmVkX2ZpZWxkX3N5bWJvbCI+PCFbQ0RBVEFbKl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJ1bnNwZWNpZmllZCI+PCFbQ0RBVEFbW3Vuc3BlY2lmaWVkXV1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJsaXN0X2RlbGltaXRlciI+PCFbQ0RBVEFbIC0gXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InRpdGxlX3Bvc2l0aW9uIj48IVtDREFUQVtsZWZ0XV0+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+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KCTwvZGl2PgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn1dXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0ic3VibWl0X2FjdGlvbiI+PCFbQ0RBVEFbdGV4dF1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJpbnB1dF9idXR0b25fc2FmZXR5Ij48IVtDREFUQVswXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InVzZV9jYXRjaGEiPjwhW0NEQVRBWzBdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0idGl0bGVfdXNlcl9jYXB0Y2hhIj48IVtDREFUQVtQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJuZXh0X2J1dHRvbl90ZXh0Ij48IVtDREFUQVtDb250aW51ZS4uLl1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfYnV0dG9uX3RleHQiPjwhW0NEQVRBW1NlbmQgRmVlZGJhY2tdXT48L2F0dHJpYnV0ZT4KCQk8YXR0cmlidXRlIGtleT0iZm9ybV9kaXNwbGF5dHlwZSI+PCFbQ0RBVEFbdGFiXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9InJlZGlyZWN0X3BhZ2UiPjwhW0NEQVRBWy0xXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNzc19jbGFzcyI+PCFbQ0RBVEFbZm9ybWJ1aWxkZXJmb3JtXV0+PC9hdHRyaWJ1dGU+CgkJPGF0dHJpYnV0ZSBrZXk9ImNhcHRjaGFfd3JvbmciPjwhW0NEQVRBW0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Ll1dPjwvYXR0cmlidXRlPgoJCTxhdHRyaWJ1dGUga2V5PSJzdWJtaXRfcmVzcG9uc2UiPjwhW0NEQVRBWzxoMT5UaGFua3MhPC9oMT4KCjxwPllvdXIgZmVlZGJhY2sgaGVscHMgbWUgbWFrZSB0aGlzIGEgYmV0dGVyIG1vZHVsZS48L3A+XV0+PC9hdHRyaWJ1dGU+Cgk8ZmllbGQgaWQ9IjkiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSIxIgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW2Nzc11dPjwvZmllbGRfbmFtZT4KCQkKCQkJPG9wdGlvbiBuYW1lPSJ0ZXh0Ij48IVtDREFUQVs8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgouZm9ybWJ1aWxkZXJmb3JtIGZpZWxkc2V0IHtwYWRkaW5nOiAxZW07IGJhY2tncm91bmQtY29sb3I6ICNlZWU7fQouZm9ybWJ1aWxkZXJmb3JtIGZpZWxkc2V0IGxlZ2VuZCB7Zm9udC13ZWlnaHQ6IGJvbGQ7fQouZm9ybWJ1aWxkZXJmb3JtIGRpdiB7cGFkZGluZzogMC4yNWVtIDAgMC4yNWVtIDA7fQo8L3N0eWxlPl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEwIgoJCXR5cGU9IkZpZWxkc2V0U3RhcnQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjIiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbRmllbGRzZXQgU3RhcnRdXT48L2ZpZWxkX25hbWU+CgkJCgkJCTxvcHRpb24gbmFtZT0ibGVnZW5kIj48IVtDREFUQVtIZWxwIEltcHJvdmUgRm9ybSBCdWlsZGVyXV0+PC9vcHRpb24+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTEiCgkJdHlwZT0iRGlzcG9zaXRpb25FbWFpbCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iMyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQk8ZmllbGRfbmFtZT48IVtDREFUQVtTZW5kIEl0XV0+PC9maWVsZF9uYW1lPgoJCQoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX3N1YmplY3QiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyIFNhbXBsZSBGb3JtIFN1Ym1pc3Npb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX25hbWUiPjwhW0NEQVRBW0Zvcm0gQnVpbGRlciBJbnN0YWxsYXRpb25dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF9mcm9tX2FkZHJlc3MiPjwhW0NEQVRBW3lvdUB5b3VyaG9zdC5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJkZXN0aW5hdGlvbl9hZGRyZXNzIj48IVtDREFUQVtzamdAY21zbW9kdWxlcy5jb21dXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJlbWFpbF90ZW1wbGF0ZSI+PCFbQ0RBVEFbPGgxPlNvbWVvbmUncyBUZXN0aW5nIGEgRm9ybUJ1aWxkZXIgU3VibWlzc2lvbiE8L2gxPgo8c3Ryb25nPkZvcm0gTmFtZTwvc3Ryb25nPjogeyRzdWJfZm9ybV9uYW1lfTxiciAvPgo8c3Ryb25nPkRhdGUgb2YgU3VibWlzc2lvbjwvc3Ryb25nPjogeyRzdWJfZGF0ZX08YnIgLz4KPHN0cm9uZz5Zb3VyIHNlcnZlcjwvc3Ryb25nPjogeyRzdWJfaG9zdH08YnIgLz4KPHN0cm9uZz5JUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl9zb3VyY2VfaXB9PGJyIC8+CjxzdHJvbmc+VVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtPC9zdHJvbmc+OiB7JHN1Yl91cmx9PGJyIC8+Cgo8aHIgLz4KPHN0cm9uZz5Nb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcjwvc3Ryb25nPjogeyRtb2R1bGVzX3lvdV9sbF9iZV91c2luZ308YnIgLz4KPHN0cm9uZz5XaGF0IHdpbGwgeW91IHBlcnNvbmFsbHkgYmUgZG9pbmcgb24geW91ciBDTVMgTVMgc2l0ZT88L3N0cm9uZz46IHskd2hhdF93aWxsX3lvdX08YnIgLz4KPHN0cm9uZz5XaGVyZSBhcmUgeW91IGZyb20/PC9zdHJvbmc+OiB7JHdoZXJlX2FyZV95b3VfZnJvbV99PGJyIC8+CjxzdHJvbmc+RG8geW91IGhhdmUgYW55IGNvbW1lbnRzIC8gZmVlZGJhY2sgZm9yIG1lPzwvc3Ryb25nPjogeyRkb195b3VfaGF2ZV9hbnl9PGJyIC8+Cl1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImVtYWlsX2VuY29kaW5nIj48IVtDREFUQVt1dGYtOF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9Imh0bWxfZW1haWwiPjwhW0NEQVRBWzFdXT48L29wdGlvbj4KPC9maWVsZD4KCTxmaWVsZCBpZD0iMTIiCgkJdHlwZT0iU3RhdGljVGV4dEZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI0IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW1dlbGNvbWUhXV0+PC9maWVsZF9uYW1lPgoJCQoJCQk8b3B0aW9uIG5hbWU9InRleHQiPjwhW0NEQVRBW1RoYW5rcyBmb3IgdHJ5aW5nIG91dCBGb3JtQnVpbGRlci4gWW91IGNhbiB1c2UgdGhpcyBmb3JtIHRvIHByb3ZpZGUgbWUgd2l0aCBmZWVkYmFjayBhYm91dCBob3cgeW91IHdpbGwgYmUgdXNpbmcgRm9ybSBCdWlsZGVyLCBzbyBJIGNhbiBiZXN0IGFsbG9jYXRlIHJlc291cmNlcyBmb3IgZnV0dXJlIGRldmVsb3BtZW50LiBUaGFua3MsIF9fX1NhbXVlbF9fX11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjEzIgoJCXR5cGU9IkNoZWNrYm94R3JvdXBGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNSIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQk8ZmllbGRfbmFtZT48IVtDREFUQVtNb2R1bGVzIHlvdSdsbCBiZSB1c2luZyB0b2dldGhlcl1dPjwvZmllbGRfbmFtZT4KCQk8b3B0aW9uIG5hbWU9Im5vX2VtcHR5Ij48IVtDREFUQVswXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbRm9ybUJ1aWxkZXJdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtGb3JtQnJvd3Nlcl1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0Zyb250IEVuZCBVc2Vyc11dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW05ld3NsZXR0ZXIgTWFkZSBTaW1wbGUgKE5NUyldXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtPdGhlcihzKV1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW0Zvcm1CdWlsZGVyXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbRm9ybUJyb3dzZXJdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtGRVVdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtOTVNdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtDYXRhbG9nZXJdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtPdGhlcihzKV1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBGb3JtQnVpbGRlcildXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBWyhub3QgRm9ybUJyb3dzZXIpXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVsobm90IEZFVSldXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBWyhub3QgTk1TKV1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbKG5vdCBDYXRhbG9nZXIpXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVsobm8gT3RoZXJzKV1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbeV1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2lzX3NldCI+PCFbQ0RBVEFbbl1dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNCIKCQl0eXBlPSJDaGVja2JveEdyb3VwRmllbGQiCgkJdmFsaWRhdGlvbl90eXBlPSIiCgkJb3JkZXJfYnk9IjYiCgkJcmVxdWlyZWQ9IjAiCgkJaGlkZV9sYWJlbD0iMCI+CgkJPGZpZWxkX25hbWU+PCFbQ0RBVEFbV2hhdCB3aWxsIHlvdSBwZXJzb25hbGx5IGJlIGRvaW5nIG9uIHlvdXIgQ01TIE1TIHNpdGU/XV0+PC9maWVsZF9uYW1lPgkJCgkJPG9wdGlvbiBuYW1lPSJub19lbXB0eSI+PCFbQ0RBVEFbMV1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0dyYXBoaWNhbCBEZXNpZ25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtIVE1MIGFuZCBDU1NdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtXcml0ZSAvIE1haW50YWluIENvbnRlbnRdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtFZGl0IFNtYXJ0eSBUZW1wbGF0ZXNdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9uYW1lIj48IVtDREFUQVtXcml0ZSBNb2R1bGVzXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfbmFtZSI+PCFbQ0RBVEFbV3JpdGUgQ29yZSBDTVMgY29kZV1dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X25hbWUiPjwhW0NEQVRBW0RvbmF0ZSB0byBDb3JlL01vZHVsZSBEZXZlbG9wZXNdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtHcmFwaGljYWwgRGVzaWduXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbSFRNTC9DU1NdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtDb250ZW50XV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbU21hcnR5XV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfY2hlY2tlZCI+PCFbQ0RBVEFbTW9kdWxlc11dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X2NoZWNrZWQiPjwhW0NEQVRBW0NvcmVdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9jaGVja2VkIj48IVtDREFUQVtkb25hdGUhXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF91bmNoZWNrZWQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCTxvcHRpb24gbmFtZT0iYm94X3VuY2hlY2tlZCI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CgkJPG9wdGlvbiBuYW1lPSJib3hfdW5jaGVja2VkIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImJveF9pc19zZXQiPjwhW0NEQVRBW25dXT48L29wdGlvbj4KCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjE1IgoJCXR5cGU9IkNvdW50cnlQaWNrZXJGaWVsZCIKCQl2YWxpZGF0aW9uX3R5cGU9IiIKCQlvcmRlcl9ieT0iNyIKCQlyZXF1aXJlZD0iMCIKCQloaWRlX2xhYmVsPSIwIj4KCQk8ZmllbGRfbmFtZT48IVtDREFUQVtXaGVyZSBhcmUgeW91IGZyb20/XV0+PC9maWVsZF9uYW1lPgoJCQk8b3B0aW9uIG5hbWU9ImRlZmF1bHQiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9InNlbGVjdF9vbmUiPjwhW0NEQVRBW1NlbGVjdCBPbmVdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJjc3NfY2xhc3MiPjwhW0NEQVRBW11dPjwvb3B0aW9uPgo8L2ZpZWxkPgoJPGZpZWxkIGlkPSIxNiIKCQl0eXBlPSJUZXh0QXJlYUZpZWxkIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI4IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0RvIHlvdSBoYXZlIGFueSBjb21tZW50cyAvIGZlZWRiYWNrIGZvciBtZT9dXT48L2ZpZWxkX25hbWU+CgkJCTxvcHRpb24gbmFtZT0iY3NzX2NsYXNzIj48IVtDREFUQVtdXT48L29wdGlvbj4KCQkJPG9wdGlvbiBuYW1lPSJyb3dzIj48IVtDREFUQVsxMF1dPjwvb3B0aW9uPgoJCQk8b3B0aW9uIG5hbWU9ImNvbHMiPjwhW0NEQVRBWzYwXV0+PC9vcHRpb24+CjwvZmllbGQ+Cgk8ZmllbGQgaWQ9IjE3IgoJCXR5cGU9IkZpZWxkc2V0RW5kIgoJCXZhbGlkYXRpb25fdHlwZT0iIgoJCW9yZGVyX2J5PSI5IgoJCXJlcXVpcmVkPSIwIgoJCWhpZGVfbGFiZWw9IjAiPgoJCTxmaWVsZF9uYW1lPjwhW0NEQVRBW0ZpZWxkc2V0IEVuZF1dPjwvZmllbGRfbmFtZT4JCQoJCQk8b3B0aW9uIG5hbWU9ImNzc19jbGFzcyI+PCFbQ0RBVEFbXV0+PC9vcHRpb24+CjwvZmllbGQ+CjwvZm9ybT4K]]></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[PD9waHAKLy8gRW5nbGlzaF9VUyBMb2NhbGl6YXRpb24gRmlsZQokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnRm9ybSBCdWlsZGVyJzsKCi8vIGZpZWxkIHR5cGVzCiRsYW5nWydmaWVsZF90eXBlXyddPSdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0IG9uZSAob3IgbW9yZSkgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddPSctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXT0nVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXT0nVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddPSdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ109J0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddPSdDaGVjayBCb3ggR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ109J1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddPSdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXT0nVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ109J0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddPSdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddPSdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddPSdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddPSdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ109JypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ109JypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddPScqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ109JypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ109JypFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddPScqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ109JypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddPScqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddPScqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddPScqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddPScqRW1haWwgdG8gQ01TIEFkbWluIFVzZXInOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddPSctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddPSdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddPSdFbWFpbCAiRnJvbSBBZGRyZXNzIiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgIkZyb20gQWRkcmVzcyIgQWdhaW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXT0nRW1haWwgIkZyb20gTmFtZSIgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXT0nRW1haWwgIlN1YmplY3QiIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ109Jy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddPSctU3RhdGljIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXT0nTGluayAoVXNlci1lbnRlcmVkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLUhpZGRlbiBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXT0nLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKCi8vIHZhbGlkYXRpb24gdHlwZXMKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddPSdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddPSdOdW1lcmljJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddPSdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddPSdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddPSdQaG9uZSBOdW1iZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXT0nTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXT0nTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddPSdEb2VzblwndCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwoKLy8gdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcyBhbmQgb3RoZXIgYWxlcnRzCiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ109J1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddPSdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW50cnkgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXT0nUGxlYXNlIGVudGVyIGFuIGludGVnZXIgdmFsdWUgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ109J1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICIlcyInOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddPSdFbWFpbCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIHZhbHVlIGluICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXT0nUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIGZvciAiJXMiJzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddPSciJXMiIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXT0nUGxlYXNlIGVudGVyIGEgdmFsdWUgdGhhdCBpcyBubyBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXT0nWW91IG5lZWQgdGhlICIlcyIgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgb3BlcmF0aW9uLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddPSdTb3JyeSEgWW91IGRvblwndCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddPSdGaWVsZCBvcmRlciB1cGRhdGVkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXT0nRm9ybSBkZWxldGVkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ109J0ZpZWxkIGRlbGV0ZWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddPSdDb25maWd1cmF0aW9uIFVwZGF0ZWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ109J1lvdSBtdXN0IGNoZWNrICIlcyIgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXT0nWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ109J0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddPSdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXT0nVGhlIGZpZWxkIG5hbWUgIiVzIiBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHVzZSB1bmlxdWUgZmllbGQgbmFtZXMsIG9yIGRpc2FibGUgdW5pcXVlIGZpZWxkIG5hbWVzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZpZWxkcyBtdXN0IGJlIG5hbWVkLCB1bmxlc3MgeW91IGRpc2FibGUgdGhpcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKCi8vIGFiYnJldmlhdGlvbnMsIHZlcmJzLCBhbmQgb3RoZXIgZ2VuZXJhbCB0ZXJtcwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXT0nTGVuOiAlcyc7CiRsYW5nWydib3hlcyddPSclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ109JyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXT0nJXMgY2hhcnMuJzsKJGxhbmdbJ29yZGVyJ109J09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ109J1t1bnNwZWNpZmllZF0nOwokbGFuZ1snYWRkZWQnXT0nYWRkZWQnOwokbGFuZ1sndXBkYXRlZCddPSd1cGRhdGVkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQgb3B0aW9ucyBvbiBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddPSdTZWxlY3QgT25lJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ109J1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ109J1RvJzsKJGxhbmdbJ3llcyddPSdZZXMnOwokbGFuZ1snbm8nXT0nTm8nOwokbGFuZ1sncmVjaXBpZW50cyddPSdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ109J1NhdmUnOwokbGFuZ1snYWRkJ109J0FkZCc7CiRsYW5nWyd1cGRhdGUnXT0nVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ109J1NhdmUgYW5kIENvbnRpbnVlIEVkaXRpbmcnOwokbGFuZ1snaW5mb3JtYXRpb24nXT0nSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ109J0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddPSdGb3Jtcyc7CiRsYW5nWydmb3JtJ109J0Zvcm0gJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddPSdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXT0nTWF4LiBTaXplJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ109J0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddPSdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXT0nVXBsb2FkZWQgZmlsZSBpcyB0b28gbGFyZ2UhIE1heGltdW0gc2l6ZSBpczonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXT0nVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdVcGxvYWQnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcm93cyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29scyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgSG91ciBDbG9jayc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgSG91ciBDbG9jayc7CiRsYW5nWydob3VyJ10gPSAnSG91cic7CiRsYW5nWydtaW4nXSA9ICdNaW51dGUnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUmFuZ2U6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RheSddID0gJ0RheSc7CiRsYW5nWydtb24nXSA9ICdNb250aCc7CiRsYW5nWyd5ZWFyJ10gPSAnWWVhcic7CiRsYW5nWydub25lJ10gPSAnKG5vbmUpJzsKCiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CgokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQmFjay4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWUuLi4nOwoKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdDaGVja2VkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuY2hlY2tlZCc7CgokbGFuZ1sndGFiX21haW4nXT0nTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ109J0Zvcm0gRGlzcGxheSBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfc3VibWl0J109J0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddPSdDYXB0Y2hhIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddPSdBZHZhbmNlZCBTZXR0aW5ncyc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtIFRlbXBsYXRlJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKCgokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVzIGFyZSB2YWxpZCBpbiB0aGlzIGZpZWxkLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWRkIE1vcmUgT3B0aW9ucyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0RlbGV0ZSBNYXJrZWQgT3B0aW9ucyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FkZCBNb3JlIENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdEZWxldGUgTWFya2VkIENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZGQgQW5vdGhlciBBZGRyZXNzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRGVsZXRlIE1hcmtlZCBBZGRyZXNzZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWRkIEFub3RoZXIgRGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRGVsZXRlIE1hcmtlZCBEZXN0aW5hdGlvbnMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUb28gbWFueSBlbWFpbHMgZ2VuZXJhdGVkIGZyb20geW91ciBJUCBhZGRyZXNzLiBBbnRpLVNwYW0gY29kZSBoYXMgcHJldmVudGVkIGRlbGl2ZXJ5Lic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdTdXNwZWN0ZWQgc3BhbSBmcm9tIElQICVzIHN0b3BwZWQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsdWUgc2V0OiAlcyc7CgovLyBGaWVsZCBBdHRyaWJ1dGUgVGl0bGVzCiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSA8PDxFT1QKQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPgo8YnIvPgo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPgpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4KPGJyLz4KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPgo8YnIvPgo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPgpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7XCRmbGRfaWR9PGJyLz4KPGJyLz4KRU9UOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0ZpZWxkIEhlaWdodCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1VzZXIgRGVmaW5lZCBUYWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ109J01heGltdW0gTGVuZ3RoJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ109J0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ109J1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ109J1ZhbHVlIHdoZW4gY2hlY2tlZCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXT0nVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddPSdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ109JyJTZWxlY3QgT25lIiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlvbiBWYWx1ZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J109J1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXT0nRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXT0iT3B0aW9uIE5hbWUiOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ109IlZhbHVlIFN1Ym1pdHRlZCI7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ109J1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddPSdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXT0nRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXT0nIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXT0nVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXT0nVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAieEB5IiBpbnN0ZWFkIG9mIHJlcXVpcmluZyAieEB5LnRsZCIpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddPSciRnJvbSBhZGRyZXNzIiBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXT0nRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ109J1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXT0nRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXT0nRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddPSdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXT0nRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXT0nUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddPSdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddPSdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ109J1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddPSd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ109J0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXT0nRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXT0nRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXT0nU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXT0nQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ109J0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXT0nRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ109J1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXT0nRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ109J3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXT0nRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXT0nQWRkIE5ldyBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddPSdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddPSdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddPSdBZGQgTmV3IEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddPSdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddPSdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXT0nQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddPSdGb3JtICJOZXh0IiBCdXR0b24gVGV4dCAodXNlZCBmb3IgbXVsdGlwYWdlIGZvcm1zKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnRm9ybSAiUHJldmlvdXMiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXT0nRmllbGQgVmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZpZWxkIHRvIFZhbGlkYXRlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ109J0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddPSdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXT0nU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ109J1JlcXVpcmVkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXT0nUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXT0nSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXT0nSGlkZSB0aGlzIGZpZWxkXCdzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J109J1N0YXRpYyB0ZXh0IHRvIGRpc3BsYXknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXT0nVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddPSdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ109J1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddPSdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAidmFsaWRhdGlvbiB0eXBlIiBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAiL2ltYWdlXC4oXGQrKS9pIiknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J109J1JlcVwnZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddPSdIaWRlIEVycm9ycyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddPSdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddPSdFbWFpbCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXT0nTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ109J1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXT0nRW50ZXIgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCwgZXhjbHVkaW5nIHRoZSBkb3QgKGUuZy4sICJqcGcsZ2lmLGpwZWciKS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ109J0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXT0nRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXT0nVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddPSdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddPSdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXT0nRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ109J0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXT0nQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXT0nRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddPSdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIEltcG9ydCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddPSdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddPSdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ109J0F1dG9tYXRpY2FsbHkgcG9wdWxhdGUgd2l0aCB0aGUgVVJMIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGZvcm0/ICh0aGlzIG92ZXJyaWRlcyBzaXRlIHBhZ2UgbGluayBvcHRpb24gYmVsb3cpJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddPSdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddPSdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ109J0xpbmsgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1lvdSBjYW4gdXNlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+IkNhcHRjaGEiPC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ109J0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uXCd0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXT0nTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ109J0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J109J0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddPSdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddPSdEaXNwbGF5IFVzZXJcJ3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ109J0Rpc3BsYXkgVXNlclwncyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddPSdEaXNwbGF5IFVzZXJcJ3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddPSdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXT0nVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXT0nVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ109J0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ109J1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddPSdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddPSdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ109J0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXT0nVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddPSdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXT0nWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+Cjx0cj48dGQgY2xhc3M9Im9kZCI+bmFtZTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkZpZWxkIE5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+Cjx0cj48dGQgY2xhc3M9Im9kZCI+aWQ8L3RkPjx0ZCBjbGFzcz0ib2RkIj5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPgo8dHI+PHRkIGNsYXNzPSJvZGQiPnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0ib2RkIj5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgInskZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddPSdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddPSdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXT0nRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXT0nJiMxNzE7IEJhY2sgdG8gRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ109J0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddPSdDcmVhdGUgU2FtcGxlIEhlYWRlciBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddPSdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXT0nYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXT0nVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ109J1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXT0nVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J109J0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXT0nVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc25cJ3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAiRGlzcG9zaXRpb24iIGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgIlN1Ym1pc3Npb24gVGVtcGxhdGUiJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAiYWR2YW5jZWQiIHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnRGVzdGluYXRpb24gUGFnZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIGEgbmFtZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1aXJlIFVuaXF1ZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xvYWQgdGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWRkIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ0RlbGV0ZSBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdJbnRlcnByZXQgdmFyaWFibGVzIGFzIGJlaW5nIG51bWJlcnMgb3Igc3RyaW5ncyc7CiRsYW5nWyd0aXRsZV9vcmRlciddPSdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ109J0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSInOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0ieW91cmZuKCkiLjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICJzYWZldHkgc2NyaXB0IiBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ109J0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ109J05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddPSdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddPSdTd2l0Y2ggdG8gQWR2YW5jZWQgTW9kZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddPSdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J109J0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddPSdOZXdsaW5lL0NhcnJpYWdlIFJldHVybiByZXBsYWNlbWVudCBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudF9oZWxwJ109J0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93IFwnRW1haWwgIlN1YmplY3QiIEZpZWxkc1wnIHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKCiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOZXZlcic7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaXZlIHVzZXIgYSBjaG9pY2UgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWx3YXlzJzsKCgokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ109JzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXT0nQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgIiVzIi4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddPSdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ109J1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddPSdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddPSdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXT0nQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwoKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7IAoKJGxhbmdbJ2RhdGVfamFudWFyeSddPSdKYW51YXJ5JzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXT0nRmVicnVhcnknOwokbGFuZ1snZGF0ZV9tYXJjaCddPSdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ109J0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J109J01heSc7CiRsYW5nWydkYXRlX2p1bmUnXT0nSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXT0nSnVseSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddPSdBdWd1c3QnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXT0nU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddPSdPY3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXT0nTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddPSdEZWNlbWJlcic7CgokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddPSdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddPSdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J109J0RlZmF1bHQ6IGNoZWNrZWQnOwoKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICJGb3JtQnVpbGRlciBTdWJtaXNzaW9uIjsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7ICAgICAgCiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOyAgCQkKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddPSdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CgokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddPSdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddPSdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J109J0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwoKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8bGk+PGVtPnZhbHVlXyZsdDtuYW1lJmd0OzwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+CjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXT0nPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4KPGg0PlBhcmFtZXRlcnM8L2g0Pgo8dWw+CjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+CjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J109JzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+CjxoND5QYXJhbWV0ZXJzPC9oND4KPHVsPgo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+CjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPgo8L3VsPiAnOwoKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKCiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAiCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+CjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSdkIGxpa2UuCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91J2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlICYjMTIzO1wkZmJfaGlkZGVufSBhbmQgJiMxMjM7XCRzdWJtaXR9CiAgIHRhZ3MuPC9wPgoKPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlIFwkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICYjMTIzO1wkbXlmaWVsZC0+aW5wdXR9ICk8L3A+CgoKPHA+RWFjaCBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KPHRhYmxlPgo8dHI+PHRoPkZpZWxkPC90aD48dGg+VmFsdWU8L3RoPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgZGlzcGxheWVkLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPnRoZSBzeW1ib2wgZm9yIHJlcXVpcmVkIGZpZWxkczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+dGhlIENTUyBjbGFzcyBzcGVjaWZpZWQgZm9yIHRoaXMgZmllbGQ8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD48dGQ+VGV4dCBvZiB0aGUgdmFsaWRhdGlvbiBwcm9ibGVtLCBpbiB0aGUgZXZlbnQgdGhhdCB0aGlzIGZpZWxkIGRpZCBub3QgdmFsaWRhdGU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhpZGVfbmFtZTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5hbWUgc2hvdWxkIGJlIGhpZGRlbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm5lZWRzX2RpdjwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIHdyYXBwZWQgaW4gYSBESVYgKG9yIHRhYmxlIHJvdywgaWYgdGhhdCdzIHRoZSB3YXkgeW91IHN3aW5nKTwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZCdzIG5hbWU8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPmlucHV0PC90ZD48dGQ+dGhlIGZpZWxkJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+YSBjb250cm9sIGJ1dHRvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkIGlmIGFwcGxpY2FibGUgKGUuZy4sIHRoZSBkZWxldGUgYnV0dG9uIGZvciBleHBhbmRhYmxlIHRleHQgaW5wdXQpPC90ZD48L3RyPgo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQncyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9XCJmb29cIik8L3RkPjwvdHI+Cjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD50aGUgZmllbGQncyBkYXRhIHR5cGU8L3RkPjwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjx0cj48dGQ+ZmllbGQtPm11bHRpcGxlX3BhcnRzPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGEgY29sbGVjdGlvbiBvZiBjb250cm9sczwvdGQ+PC90cj4KPHRyPjx0ZD5maWVsZC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIGlmIHRoZSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGhhcyBzZXBhcmF0ZSBsYWJlbHMgZm9yIGVhY2ggY29udHJvbDwvdGQ+PC90cj4KPC90YWJsZT4KCjxwPkluIGNlcnRhaW4gY2FzZXMsIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBvYmplY3RzIHJhdGhlciB0aGFuIGFuIGlucHV0LiBUaGlzIGhhcHBlbnMsIGZvciBleGFtcGxlLCBpbiBDaGVja0JveEdyb3VwcyBvciBSYWRpb0J1dHRvbkdyb3Vwcy4gRm9yIHRoZW0sIHlvdSBjYW4gaXRlcmF0ZSB0aHJvdWdoIGZpZWxkLT5pbnB1dC0+bmFtZSBhbmQgZmllbGQtPmlucHV0LT5pbnB1dHMuPC9wPgogICAgCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPgo8dGFibGU+Cjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm51bWJlciBvZiBwYWdlcyBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1iZXIgZm8gdGhlIGN1cnJlbnQgcGFnZSBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzIFwicGFnZSB4IG9mIHlcIiBmb3IgbXVsdGktcGFnZSBmb3JtczwvdGQ+PC90cj4KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgQ2xhc3MgZm9yIHRoZSBmb3JtPC90ZD48L3RyPgo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybSBkYXRhYmFzZSBJRDwvdGQ+PC90cj4KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+XCJCYWNrXCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+Cjx0cj48dGQ+c3VibWl0PC90ZD48dGQ+XCJDb250aW51ZVwiIG9yIFwiU3VibWl0XCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4KPC90YWJsZT4KPHA+RHVubm8gd2h5IHlvdSdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4KIjsKCi8vIHBvc3QtaW5zdGFsbCBtZXNzYWdlCiRsYW5nWydwb3N0X2luc3RhbGwnXT0iCjxiciAvPk1ha2Ugc3VyZSB0byBzZXQgdGhlIFwiTW9kaWZ5IEZvcm1zXCIgcGVybWlzc2lvbnMKb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91J2xsIGJlIGVtYWlsaW5nIGZvcm0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48YnIgLz4KUGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUKeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUKY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjxiciAvPgpBZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdApvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuIjsKCiRsYW5nWydoZWxwJ10gPSAiPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+CjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCdzIGEgcmVwbGFjZW1lbnQgb2YgdGhlIG9yaWdpbmFsIEZlZWRiYWNrIEZvcm0gbW9kdWxlKSwgd2l0aCB0aGUgYWRkZWQgcG93ZXIgb2YgZGF0YWJhc2Ugc3RvcmFnZS4gV2l0aCBpdHMgY29tcGFuaW9uIG1vZHVsZSBGb3JtIEJyb3dzZXIsIHlvdSBjYW4gdXNlIGl0IHRvIGNyZWF0ZSBzaW1wbGUgZGF0YWJhc2UgYXBwbGljYXRpb25zLjwvcD4KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQKaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUKdmFsaWRhdGlvbiBhcHBsaWVkIHRvIHRoZXNlIGlucHV0cy4gVGhlIHJlc3VsdHMgb2YgdGhlc2UgZm9ybXMgbWF5IGJlIGhhbmRsZWQgaW4gYSB2YXJpZXR5IG9mIHdheXMuPC9wPgoKPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPgo8UD5JbnN0YWxsIGl0LCBhbmQgcG9rZSBhcm91bmQgdGhlIG1lbnVzLiBQbGF5IHdpdGggaXQuIFRyeSBjcmVhdGluZyBmb3JtcywgYW5kIGFkZGluZyB0aGVtIHRvIHlvdXIgY29udGVudC4KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSdyZQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+Cgo8aDM+SG93IERvIEkgQ3JlYXRlIGEgRm9ybTwvaDM+CjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UKdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5CkNvbmZpZ3VyYXRpb24uPC9wPgoKPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4KPHA+SW4gdGhlIG1haW4gRm9ybUJ1aWxkZXIgYWRtaW4gcGFnZSwgeW91IGNhbiBzZWUgYW4gZXhhbXBsZSBvZiB0aGUgdGFnIHVzZWQgdG8gZGlzcGxheSBlYWNoIGZvcm0uIEl0IGxvb2tzCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3NhbXBsZV9mb3JtJ308L3A+CjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLgpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnCmludG8gYSBwYWdlJ3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQpjaGFuZ2UgdGhlIHF1b3RlIG1hcmtzIChcIikgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO3F1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcKc2luZ2xlIHF1b3RlcyAoJykgb3IgZWRpdGluZyB0aGUgSFRNTCBkaXJlY3RseS48L3A+Cgo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+CjxoND5NYWluPC9oND4KPHA+VGhpcyBpcyB0aGUgbWFpbiBwbGFjZSB5b3UnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4KPHA+QmVsb3cgdGhpcywgaWYgeW91IGhhdmUgaXQgZW5hYmxlZCwgaXMgdGhlIFwiZmFzdCBmaWVsZCBhZGRlclwiIHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPgo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4KPHA+V2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQsIHlvdSBjYW4gZWl0aGVyIHJlZGlyZWN0IHRoZSB1c2VyIHRvIGFub3RoZXIgcGFnZSBvZiB5b3VyIHNpdGUsIG9yIHlvdSBjYW4gcHJlc2VudCB0aGUgdXNlciBzb21lIG1lc3NhZ2UgKHdoaWNoIGNhbiBjb250YWluIGFueSBvZiB0aGUgdXNlcidzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPgo8cD5BbHNvIG9uIHRoaXMgcGFnZSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBsYWJlbHMgb2YgdmFyaW91cyBzdWJtaXNzaW9uIGJ1dHRvbnMgKFwiUHJldmlvdXNcIiwgXCJuZXh0XCIsIFwic3VibWl0XCIpLiBZb3UgY2FuIGFsc28gb3B0IHRvIGhhdmUgc29tZSBKYXZhc2NyaXB0IGFkZGVkIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgYSBmb3JtIHRoYXQgd2lsbCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zICh1c2VmdWwgb24gc2xvdyBzZXJ2ZXJzKS48L3A+CjxoND5Gb3JtIERpc3BsYXkgT3B0aW9uczwvaDQ+CjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+CjxoND5DYXB0Y2hhIFNldHRpbmdzPC9oND4KPHA+SWYgeW91IGhhdmUgaW5zdGFsbGVkIHRoZSBDYXB0Y2hhIG1vZHVsZSwgdGhpcyB0YWIgbGV0cyB5b3UgY29uZmlndXJlIHRoZSBDYXB0Y2hhIHNldHRpbmdzIGZvciB5b3VyIGZvcm0uPC9wPgo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+CjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSdzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+CjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4KPHA+VW5sZXNzIHlvdSdyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24ndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPgo8aDQ+U3VibWlzc2lvbiBUZW1wbGF0ZTwvaDQ+CjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICdEaXNwbGF5IFwiU3VibWlzc2lvbiBUZW1wbGF0ZVwiLCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPgo8cD5JZiB5b3UncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UncmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuCjwvcD4KCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+CjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+CjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+CjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPgo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXIKc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPgo8L3VsPgo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLApidXQgaW4gdGhlIGRhdGEgd2hlbiBpdCdzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbgppcyBhIGhhbmR5IHdheSBvZiBtYWtpbmcgaXQgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdCBpcyBleHBlY3RlZC4gU2ltaWxhcmx5LCBtYW55IGZpZWxkcyBoYXZlIGJvdGggTmFtZXMgYW5kIFZhbHVlcy4KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQncyBzYWZlIHRvIHVzZSBmb3IKZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4KPHA+U29tZSBmaWVsZHMgY2FuIGhhdmUgbXVsdGlwbGUgdmFsdWVzLCBvciBtdWx0aXBsZSBuYW1lL3ZhbHVlIHBhaXJzLiBXaGVuIHlvdSBmaXJzdCBjcmVhdGUgc3VjaCBhIGZpZWxkLAp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZwp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+CjxwPkZpZWxkcyBjYW4gYmUgYXNzaWduZWQgdmFsaWRhdGlvbiBydWxlcywgd2hpY2ggdmFyeSBhY2NvcmRpbmcgdG8gdGhlIHR5cGUgb2YgdGhlIGZpZWxkLiBUaGVzZSBydWxlcyBoZWxwCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlCnNlcGFyYXRlbHkgbWFya2VkIFwiUmVxdWlyZWRcIiwgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdwpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gXCJ2aWV3IHNvdXJjZVwiIG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4Kd3JpdGUgeW91ciBDU1MuPC9wPgo8dWw+CjxsaT5TdGFuZGFyZCBJbnB1dHMKPHVsPjxsaT5UZXh0IElucHV0LiBUaGlzIGlzIGEgc3RhbmRhcmQgdGV4dCBmaWVsZC4gWW91IGNhbiBsaW1pdCB0aGUgbGVuZ3RoLCBhbmQgYXBwbHkgdmFyaW91cyB2YWxpZGF0aW9uCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4KPGxpPkNoZWNrYm94LiBUaGlzIGlzIGEgc3RhbmRhcmQgY2hlY2sgYm94LjwvbGk+CjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGEKY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPgo8bGk+UmFkaW8gR3JvdXAuIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIHJhZGlvIGJ1dHRvbnMuIE9ubHkgb25lIG9mIHRoZSBncm91cCBtYXkgYmUgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuPC9saT4KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgcmFkaW8gYnV0dG9uCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCdzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPgo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPgo8bGk+Q2FuYWRpYW4gUHJvdmluY2UuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDYW5hZGlhbiBQcm92aW5jZXMgKENvbnRyaWJ1dGVkIGJ5IE5vZWwgTWNHcmFuLiBUaGFua3MhKTwvbGk+CjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+CjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+CjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+CjxsaT5UZXh0IEZpZWxkIChNdWx0aXBsZSkuIFRoaXMgZmllbGQgY3JlYXRlcyBvbmUgb3IgbW9yZSB0ZXh0IGlucHV0cyB3aXRoIGFkZCBhbmQgZGVsZXRlIGJ1dHRvbnMsIGVmZmVjdGl2ZWx5IGdpdmluZyB0aGUgZW5kIHVzZXIgYSB3YXkgb2YgY3JlYXRpbmcgdmFyaWFibGUtbGVuZ3RoIGxpc3RzLjwvbGk+CjwvdWw+PC9saT4KCjxsaT5FbWFpbC1zcGVjaWZpYyBJbnB1dHMKPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlIFwiRnJvbVwiIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlIFwiRnJvbVwiIGZpZWxkLjwvbGk+CjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgXCJTdWJqZWN0XCIgZmllbGQuIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgd2l0aCBjZXJ0YWluIGRpc3Bvc2l0aW9ucyB0aGF0IHdhbnQgdG8gY29udHJvbCB0aGUgRW1haWwgU3ViamVjdCwgc28gdXNlIGl0IHdpdGggY2F1dGlvbi48L2xpPgo8L3VsPjwvbGk+Cgo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkczx1bD4KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcwppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPgo8bGk+LUZpZWxkc2V0IFN0YXJ0LiBDb21iaW5lZCB3aXRoIEZpZWxkc2V0IEVuZCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIHN0YXJ0IGEgZ2l2ZW4gZ3JvdXBpbmcuPC9saT4KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPgo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPgo8bGk+LVN0YXRpYyBUZXh0LiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IHRleHQgb3IgYSBsYWJlbCBpbiB0aGUgbWlkZGxlIG9mIHlvdXIgZm9ybS4gVGhpcyBpcyB1c2VmdWwgZm9yIGdpdmluZyBhZGRpdGlvbmFsIGhlbHAgdGV4dCwgZXNwZWNpYWxseSBpZiB5b3UncmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3UncmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4KPGxpPi1Db21wdXRlZCBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgY29tcHV0ZWQgZmllbGQgaW4geW91ciBmb3JtLiBJdCBpcyBub3QgdmlzaWJsZSB0byB0aGUgdXNlciB1bnRpbCBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIEl0IGFsbG93cyB5b3UgdG8gZG8gc2ltcGxlIGFyaXRobWV0aWMgb3Igc3RyaW5nIGNvbmNhdGVuYXRpb24uPC9saT4KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+CjwvdWw+PC9saT4KCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzIFwkcGFyYW1bJ2ZpZWxkX25hbWUnXS48L2xpPgo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSBcIkRpcmVjdG9yXCIgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQpmb3JtLiBUaGlzIGlucHV0IGlzIHBhcnQgb2YgdGhlIGZvcm0gdGhlIHVzZXIgc2VlcywgYWx0aG91Z2ggdGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3IKYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlCmZvcm0gdGhhdCB0aGUgdXNlciBzZWVzLiBUaGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcgphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPgo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UuIFRoaXMgd2lsbCBzdG9yZSB0aGUgZm9ybSBjb250ZW50cyBpbiBhbiBpbnRlcm5hbCBkYXRhYmFzZS4gWW91IHdpbGwgYWx3YXlzIHVzZSB0aGlzIGRpc3Bvc2l0aW9uIGlmIHlvdSB1c2UgdGhlIGZvcm0gd2l0aCBGb3JtQnJvd3Nlci48L2xpPgo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkIFwiYXBwcm92ZWQsXCIgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5CnNlbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIHNldCBpdHMgZm9ybWF0LiBUaGVzZSBmaWxlcyBhcmUgd3JpdHRlbiB0byB0aGUgXCJvdXRwdXRcIiBkaXJlY3RvcnkgdW5kZXIgdGhlCm1vZHVsZSdzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+CjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24uIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZSBvZiBhIHB1bGwtZG93biBkZXRlcm1pbmVzIHdoaWNoIGZpbGUgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPgo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPgo8bGk+KlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMuIFN0b3JlcyB0aGUgZm9ybSByZXN1bHRzIGluIGFuIFhNTCBzdHJ1Y3R1cmUgYXMgYSBzaW5nbGUgZGF0YWJhc2UgcmVjb3JkLiBUaGlzIHdpbGwgYmVjb21lIHRoZSBpbnRlcmZhY2UgdG8gRm9ybSBCcm93c2VyIGluIHRoZSBuZXh0IHJlbGVhc2UuPC9saT4KCjwvdWw+PC9saT48L2xpPjwvdWw+CgoKPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPgo8cD5DYWxndXkgYWRkZWQgYSBuaWNlIGZlYXR1cmUsIHdoaWNoIGlzIHRoYXQgeW91IGNhbiBwYXNzIGRlZmF1bHQgZmllbGQgdmFsdWVzIHRvIHlvdXIgZm9ybSB2aWEgdGhlIG1vZHVsZSB0YWcuIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPgo8cD57Y21zX21vZHVsZSBtb2R1bGU9J0Zvcm1CdWlsZGVyJyBmb3JtPSdteV9mb3JtJyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSdkZWZhdWx0X3ZhbHVlJ308L3A+CjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byAnZGVmYXVsdF92YWx1ZScuPC9wPgo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb24ndCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuCmFsdGVybmF0aXZlIGxpa2UgdGhpczo8L3A+CjxwPntjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J215X2Zvcm0nIHZhbHVlX2ZsZDxpPk5VTUJFUjwvaT49J2RlZmF1bHRfdmFsdWUnfTwvcD4KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwKYW5kIGNoZWNrIFwiU2hvdyBGaWVsZCBJRHNcIjwvcD4KCjxoMz5FbWFpbCBhbmQgRmxhdCBGaWxlIFRlbXBsYXRlczwvaDM+CjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCdzIG93biBiZXN0IGd1ZXNzLCB3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrIG91dCB0byB5b3VyIGxpa2luZy4gWW91IGNhbiBhbHdheXMgY2xpY2sgb24gdGhlIFwiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZVwiIGFuZCB0aGVuIGN1c3RvbWl6ZSB0aGUgcmVzdWx0cy48L3A+CjxwPlRvIHRoZSByaWdodCwgeW91J2xsIGZpbmQgYSBsZWdlbmQgd2hpY2ggbGlzdHMgYWxsIG9mIHRoZSB2YXJpYWJsZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHlvdSB0byB1c2UgaW4geW91ciB0ZW1wbGF0ZS4gQXMgb2YgdmVyc2lvbiAwLjMsIHZhcmlhYmxlcyBoYXZlIHR3byBuYW1lcywgb25lIGJhc2VkIG9uIHRoZSBmaWVsZCBuYW1lLCB0aGUgb3RoZXIgYmFzZWQgb24gdGhlIGZpZWxkIElELiBJZiB5b3UgdXNlIGZpZWxkIG5hbWVzIHRoYXQgaGF2ZSBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgdGhlIEFTQ0lJIDMyLTEyNiByYW5nZSwgaXQgd2lsbCBiZSBzYWZlciB0byB1c2UgdGhlIElELWJhc2VkIHZhcmlhYmxlcy48L3A+CjxwPjxzdHJvbmc+Tm90ZSB0aGF0IG9uY2UgeW91J3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdCdzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPgo8cD5BcyBvZiB2ZXJzaW9uIDAuMi40LCB5b3UgY2FuIG9wdCB0byBzZW5kIGFueSBvZiB0aGVzZSBlbWFpbHMgYXMgSFRNTCBlbWFpbC4gVGhlcmUgc2hvdWxkIGJlIGEgY2hlY2tib3ggYXQgdGhlIHRvcCBvZiB0aGUgdGVtcGxhdGUgcGFnZSBmb3IgdGhpcy4gVGhlcmUgaXMgYWxzbyBhIFwiQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlXCIgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+Cgo8aDM+Q29uZmlndXJhdGlvbjwvaDM+CjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4KPHVsPgo8bGk+RW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duLiBUaGlzIGVuYWJsZXMgdGhlIHB1bGxkb3duIG9uIHRoZSBGb3JtIEVkaXQgcGFnZSB3aGljaCBzYXZlcyBhIHN0ZXAgaW4gdGhlIGNyZWF0aW9uIG9mIG5ldyBmaWVsZHMuPC9saT4KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+CjxsaT5SZXF1aXJlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gYmUgbmFtZWQgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBIb3dldmVyLCBpbiBzb21lIGNhc2VzLCB5b3UgbWlnaHQgd2FudCB0byBoYXZlIG5hbWVsZXNzIGZpZWxkcy4gVW5jaGVjayB0aGlzIGlmIHlvdSB3YW50IHRvIGFsbG93IG5hbWVsZXNzIGZpZWxkcy48L2xpPgo8bGk+VW5pcXVlIEZpZWxkIE5hbWVzLiBUeXBpY2FsbHksIHlvdSB3aWxsIHdhbnQgZm9ybSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXMgc28geW91IGNhbiB0ZWxsIHdoaWNoIGlzIHdoaWNoLiBVbmNoZWNrIHRoaXMgaWYgeW91IHdhbnQgdG8gYWxsb3cgZmllbGRzIHRvIHNoYXJlIG5hbWVzLjwvbGk+CjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4KPGxpPlNob3cgRm9ybSBCdWlsZGVyIFZlcnNpb24uIERpc3BsYXlzIHRoZSB2ZXJzaW9uIG9mIEZvcm1CdWlsZGVyIHlvdSdyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPgo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPgo8bGk+U2hvdyBGaWVsZCBJRHMuIFdoZW4gdHVybmVkIG9uLCBGb3JtQnVpbGRlciB3aWxsIGRpc3BsYXkgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtLjwvbGk+CjwvdWw+CjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPgo8cD5QYXVsIE5vb25lIGdyYWNpb3VzbHkgcHJvdmlkZXMgdXMgYWxsIHdpdGggYSBwcmV0dHkgZ29vZCBzdGFuZGFyZCBDU1MgdGhhdCB5b3UgY2FuIHVzZSBmb3IgZm9ybXM6PC9wPgo8cHJlPgoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovCglmb3JtIHttYXJnaW4tdG9wOjB9Cglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0KCWZpZWxkc2V0IGRpdiB7CgkJbWFyZ2luLWJvdHRvbTowLjVlbTsKCQltYXJnaW4tbGVmdDoxZW07Cgl9CglmaWVsZHNldCBkaXYgZGl2IHsKCQltYXJnaW4tdG9wOjAuNWVtOwoJCW1hcmdpbi1sZWZ0OjFlbQoJfQoJZmllbGRzZXQgewoJCW1hcmdpbi1ib3R0b206MWVtOwoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsKCQlwYWRkaW5nOjAuNWVtCgl9CglmaWVsZHNldCBsYWJlbCB7CgkJd2lkdGg6YXV0bzsKCX0KCWxlZ2VuZCB7CgkJY29sb3I6I0ZGRjsKCQliYWNrZ3JvdW5kOiNGNjA7CgkJZm9udC1zdHlsZTppdGFsaWM7CgkJZm9udC1zaXplOjEuMmVtOwoJCW1hcmdpbi1ib3R0b206MC41ZW07CgkJcGFkZGluZzowLjJlbTsKCQl3aWR0aDphdXRvOwoJCWJvcmRlcjoxcHggc29saWQgI0NDQwoJfQoJdGV4dGFyZWEgewoJCW1hcmdpbjogMC41ZW0gMDsKCQl3aWR0aDo5OCU7CgkJaGVpZ2h0OiA2ZW0KCX0KCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzCgkJdG8gaGVscCBhbGlnbm1lbnQgKi8KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IHNlbGVjdCB7d2lkdGg6MTZlbX0KCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLwoJLmNhcHRjaGEgewoJCW1hcmdpbjowLjVlbSAwOwoJCXdpZHRoOjIwMHB4OwoJCXRleHQtYWxpZ246Y2VudGVyCgl9CgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0KCS5jYXB0Y2hhIGlucHV0IHt3aWR0aDoxOTZweDsgbWFyZ2luLXRvcDowLjVlbX0KCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8KCS5zdWJtaXQge21hcmdpbi10b3A6MC41ZW19CjwvcHJlPgoKPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4KIi4kbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddLiIKCjxoMz5Lbm93biBJc3N1ZXM8L2gzPgo8dWw+CjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPgo8bGk+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbid0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4KPC91bD4KCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPgo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSdyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+CjxsaT4gSWYgeW91J3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCdzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0J3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4KPGxpPlVuY2hlY2sgdGhlIFwiSGlkZSBFcnJvcnNcIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPgo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+Cjwvb2w+IAo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkndmUgZG9uZSBhbGwgSSBjYW4KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvCmF0ZSB0aGUgbmVpZ2hib3IncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+CjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHVsPgo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPVwiaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZ1wiPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mbHQ7c2pnQGNtc21vZHVsZXMuY29tJmd0OzwvYT4uPC9saT4KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ1wiPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2Ntc1wiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4KPGxpPkRvbmF0aW9ucyBhcmUgZ29vZCBtb3RpdmF0b3JzLCB0b28uIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBkb2xsYXIgaXMgd2VhaywgYW5kIGlmIHlvdSBhcmUgbm90IGluIHRoZSBVUywgeW91ciBkb25hdGlvbiBnZXRzIG1hZ25pZmllZC48L2xpPgo8L3VsPgo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgYW5kIGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHNlbmQgeW91ciBxdWVzdGlvbnMgd3JpdHRlbiBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjaGVja3Mgb3IgY2FzaCkuIEFtIEkgc291bmRpbmcgbGlrZSBhIGJyb2tlbiByZWNvcmQ/IERvIHlvdSBraWRzIHRoZXNlIGRheXMgZXZlbiBrbm93IHdoYXQgYSBicm9rZW4gcmVjb3JkIGlzPyBJIHdvdWxkIHNheSBza2lwcGluZyBDRCwgYnV0IHlvdSBtaWdodCBub3Qga25vdyB3aGF0IHRoYXQgaXMgZWl0aGVyLiBMaWtlIGEgc2FtcGxlIHRoYXQgZ290IHN0dWNrIG9uIGxvb3A/IERhbW4sIEkgYW0gZ2V0dGluZyBvbGQuIFNvIGlzIHRoaXMgcGFyYWdyYXBoLiBUaW1lIHRvIG1vdmUgb24sIGhlcmUuPC9wPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9XCJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tXCI+Jmx0O3NqZ0BjbXNtb2R1bGVzLmNvbSZndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+CjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPVwiaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMXCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4iOwoKJGxhbmdbJ2NoYW5nZWxvZyddID0gIgo8dWw+CjxsaT5WZXJzaW9uIDAuNS41LiAxIE9jdCAwOC4gQnVnIGZpeGVzLiBBZGRlZCBuZXcgRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQgdG8gcmVwbGFjZSBkZWZpY2llbmNpZXMgd2l0aCBFbWFpbCBBZGRyZXNzICdGcm9tJyBGaWVsZCB0eXBlLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS40LiAyOSBBdWcgMDguIFNjcmFwcGluZyBwbGFucyBmb3IgMC42LiBCdWcgZml4ZXMuIFRlZCdzIG5ldyBcIkVtYWlsIFwiRnJvbSBBZGRyZXNzXCIgQWdhaW4gRmllbGRcIi4gQWRkZWQgZGF0YWJhc2UgaW5kaWNlcy48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMy4gMjYgTWF5IDA4LiBCdWdmaXhlcyB0byBwcmV2aW91cyBzZXQgb2YgYnVnZml4ZXMuIE5vdyByZWFkeSBmb3IgbWFqb3IgdXBncmFkZXMgZm9yIDAuNi48L2xpPgo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPgo8bGk+VmVyc2lvbiAwLjUuMS4gMzAgQXByaWwgMDguIEJ1Z2ZpeGVzLCByZXdyb3RlIHNvbWUgb2YgdGhlIEZpbGUgVXBsb2FkIGNvZGUgdG8gcHJldmVudCB3aGl0ZSBzY3JlZW4gb2YgYW5ub3lhbmNlLjwvbGk+CjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPgo8bGk+VmVyc2lvbiAwLjQuMy4gMTggU2VwdCAwNy4gQnVnZml4ZXMgZm9yIHB1bGxkb3ducyB1c2luZyBudW1iZXJzLCBvcHRpb24gdG8gaW5saW5lIGZvcm0sIGZpeGVzIGZvciB0YWJsZS1sYXlvdXRzIHByb3ZpZGVkIGJ5IEFwIE11dGh1LCBmaXggZm9yIHJlcXVpcmFiaWxpdHkgb2YgRGlzcG9zaXRpb25zLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+CjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPgo8bGk+VmVyc2lvbiAwLjQKCTx1bD4KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPgoJCTxsaT5OdW1lcm91cyBCdWcgZml4ZXM7IHRvbyBtYW55IHRvIGVudW1lcmF0ZSBoZXJlPC9saT4KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+CgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiBcIlRleHRGaWVsZCAoTXVsdGlwbGUpXCIgYW5kIFwiQ29tcHV0ZWQgRmllbGRcIjwvbGk+CgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogXCJTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93blwiIGFuZCBcIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnNcIihDYWxndXkpPC9saT4KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPgoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPVwidmFsdWVcIiBzeW50YXggKENhbGd1eSk8L2xpPgoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPgoJPC91bD4KPC9saT4KPGxpPlZlcnNpb24gMC4zCiAgIDx1bD4KICAgICAgPGxpPkFkZGVkIENhcHRjaGEgbW9kdWxlIHN1cHBvcnQuPC9saT4KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4KICAgICAgPGxpPkFkZGVkIFBhdWwgTm9vbmUncyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPgogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+CiAgICAgIDxsaT5BZGRlZCBhZG1pbi1zcGVjaWZpYWJsZSB2YWx1ZXMgdG8gaGlkZGVuIGZpZWxkIHR5cGUsIHdoaWNoIG1heSBjb250YWluIHBhcnNhYmxlIHNtYXJ0eSB0YWdzPC9saT4KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4KICAgICAgPGxpPkFkZGVkIERyYWcnbidEcm9wIHJlb3JkZXJpbmcgb2YgZm9ybSBmaWVsZHMuPC9saT4KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4KICAgICAgPGxpPkltcGxlbWVudGVkIHRlbXBsYXRlZCBkaXNwbGF5IG9mIGZvcm0gcmVzdWx0cyB1cG9uIHN1Ym1pc3Npb24gaW4gYWRkaXRpb24gdG8gcGFnZSByZWRpcmVjdGluZzwvbGk+CiAgICAgIDxsaT48L2xpPgogICA8L3VsPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuNCAtIDA5IE1heSAyMDA3CiAgIDxwPkJpZyByZWxlYXNlOjx1bD4KICAgPGxpPkFkZGVkIFwiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3NcIiBkaXNwb3NpdGlvbi48L2xpPgogICA8bGk+QWRkZWQgXCJUaW1lUGlja2VyXCIgZmllbGQgdHlwZS4gU3BsaXQgXCJMaW5rXCIgZmllbGQgaW50byBhIFwiVXNlci1zdXBwbGllZCBMaW5rXCIgZmllbGQgYW5kIGEgXCJTdGF0aWMgTGlua1wiIGZpZWxkLjwvbGk+CiAgIDxsaT5BZGRlZCBIVE1MIGVtYWlsIG9wdGlvbiBhbmQgYXV0by10ZW1wbGF0ZXMgZm9yIGFsbCBlbWFpbCBkaXNwb3NpdGlvbnMuPC9saT4KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPgogICA8L3VsPgogICA8L3A+CjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4zCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPgo8L2xpPgo8bGk+VmVyc2lvbiAwLjIuMgogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToKICAgPHVsPgogICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+CiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlCiAgICAgIHlvdXIgZmllbGRzIGxvZ2ljYWxseSBmb3IgdGhlIHVzZXIuICBZb3UgY2FuIGV2ZW4gbmVzdCBmaWVsZHNldHMsIGFuZAogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLgogICAgICA8L3A+CiAgICAgIDwvbGk+CiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbAogICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+CiAgICAgIDwvbGk+CiAgIDwvdWw+CiAgIDwvcD4KPC9saT4KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdydzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+CjwvdWw+CiI7CgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/cs_CZ.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1R2xa9yY2UgZm9ybXVsJmFhY3V0ZTvFmcWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnVHlwIHBvbGUgbmVieWwgbmFzdGF2ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVnliZXJ0ZSBqZWRudSAobmVibyB2JmlhY3V0ZTtjZSkgcG9sb8W+ZWsgbW9kdWx1IENhdGFsb2dlcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUtvbmVjIHNrdXBpbnkgcG9sJmlhY3V0ZTvEjWVrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1aYcSNJmFhY3V0ZTt0ZWsgc2t1cGlueSBwb2wmaWFjdXRlO8SNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0b3YmZWFjdXRlOyB2c3R1cG4maWFjdXRlOyBwb2xlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHRvdiZlYWN1dGU7IHZzdHVwbiZpYWN1dGU7IHBvbGUgKHYmaWFjdXRlO2NlbiZhYWN1dGU7c29ibiZlYWN1dGU7KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0b3YmeWFjdXRlOyByJmFhY3V0ZTttZcSNZWsnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnWmEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjJmlhY3V0ZTsgcG9sJmlhY3V0ZTvEjWtvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnU2t1cGluYSB6YSZzY2Fyb247a3J0JmFhY3V0ZTt2YWMmaWFjdXRlO2NoIHBvbCZpYWN1dGU7xI1layc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdSb3piYWxvdmFjJmlhY3V0ZTsgbmFiJmlhY3V0ZTtka2EnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciB2JmlhY3V0ZTtjZSBtb8W+bm9zdCZpYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1YmeWFjdXRlO2LEm3Igc3QmYWFjdXRlO3TFryBVU0EnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBrYW5hZHNrJnlhY3V0ZTtjaCBwcm92aW5jaSZpYWN1dGU7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBzdCZhYWN1dGU7dMWvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciBkYXRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnViZ5YWN1dGU7YsSbciDEjWFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NrdXBpbmEgcMWZZXAmaWFjdXRlO25hxI3Fryc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgRmllbGQsIGFuZCBzZW5kIGNvcHknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqWmFwc2F0IHYmeWFjdXRlO3NsZWRreSBkbyB0ZXh0b3YmZWFjdXRlO2hvIHNvdWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlVsb8W+aXQgdiZ5YWN1dGU7c2xlZGt5IGRvIGRhdGFiJmFhY3V0ZTt6ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqVWxvxb5pdCB2JnlhY3V0ZTtzbGVka3kgcHJvIG1vZHVsIFByb2hsJmlhY3V0ZTvFvmXEjSBmb3JtdWwmYWFjdXRlO8WZxa8gdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdOYWhyJmFhY3V0ZTtuJmlhY3V0ZTsgc291Ym9ydSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEFnYWluIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWNrJnlhY3V0ZTsgdGV4dCAoU3RhdGljIFRleHQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpY2smeWFjdXRlOyBvZGtheiAoU3RhdGljIExpbmspJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnT2RrYXogKHZsb8W+ZW4meWFjdXRlOyB1xb5pdmF0ZWxlbSkgW0xpbmsgKFVzZXItZW50ZXJlZCldJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctU2Nob3ZhbiZlYWN1dGU7IHBvbGUgKEhpZGRlbiBGaWVsZCknOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVZ5cG/EjSZpYWN1dGU7dGFuJmVhY3V0ZTsgcG9sZSAoQ29tcHV0ZWQgRmllbGQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0JleiBvdmXFmWVuJmlhY3V0ZTsgcGxhdG5vc3RpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ8SMJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoTnVtZXJpYyknOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnQ2Vsb8SNJmlhY3V0ZTtzZWxuJmFhY3V0ZTsgaG9kbm90YSAoSW50ZWdlciknOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWxvdiZhYWN1dGU7IGFkcmVzYSAoRW1haWwgQWRkcmVzcyknOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbiZpYWN1dGU7IMSNJmlhY3V0ZTtzbG8gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXMmaWFjdXRlOyBiJnlhY3V0ZTt0IHphJnNjYXJvbjtrcnRudXRvIChNdXN0IEJlIENoZWNrZWQpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdPZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IHJlZ3VsJmFhY3V0ZTtybiZpYWN1dGU7bXUgdiZ5YWN1dGU7cmF6dSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdEb2VzbiYjMDM5O3QgbWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdWZSB2ecW+YWRvdmFuJmVhY3V0ZTttIHBvbGkgbmVieWxhIHZsb8W+ZW5hIGhvZG5vdGEnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUHJvcyZpYWN1dGU7bSB2eXBsxYh0ZSDEjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG4meWFjdXRlOyAmdWFjdXRlO2RhaiB2IHBvbGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQcm9zJmlhY3V0ZTttIHZ5cGzFiHRlIGNlbG/EjSZpYWN1dGU7c2Vsbm91IGhvZG5vdHUgdiBwb2xpICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Byb3MmaWFjdXRlO20gdnlwbMWIdGUgcGxhdG5vdSBlbWFpbG92b3UgYWRyZXN1IHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnRS1tYWlsb3YmYWFjdXRlOyBhZHJlc2EgbmVvZHBvdiZpYWN1dGU7ZCZhYWN1dGU7IGhvZG5vdMSbIHYgcG9saSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1Byb3MmaWFjdXRlO20gdmxvxb50ZSBwbGF0biZlYWN1dGU7IHRlbGVmb24maWFjdXRlOyDEjSZpYWN1dGU7c2xvIGRvIHBvbGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmV2eXBhZCZhYWN1dGU7IGpha28gcGxhdG4mYWFjdXRlOyBlbWFpbG92JmFhY3V0ZTsgYWRyZXNhISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUHJvcyZpYWN1dGU7bSB2bG/FvnRlIGhvZG5vdHUga3JhdCZzY2Fyb247JmlhY3V0ZTsgbmXFviAlcyB6bmFrxa8nOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrLCBrdGVyJnlhY3V0ZTsgYnVkZSBwb3XFvml0IGpha28gb2RkxJtsb3ZhxI0gdmUgdiZ5YWN1dGU7c2xlZGMmaWFjdXRlO2NoLCBrdGVyJmVhY3V0ZTsgdnJhY2VqJmlhY3V0ZTsgdiZpYWN1dGU7Y2UgbmXFviAxIGhvZG5vdHUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnUG/FmWFkJmlhY3V0ZTsgcG9sJmlhY3V0ZTsgYWt0dWFsaXpvdiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bCZhYWN1dGU7xZkgc21heiZhYWN1dGU7bi4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ1BvbGUgc21heiZhYWN1dGU7bm8uJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYWNlIGFrdHVhbGl6b3YmYWFjdXRlO25hLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1BybyBwb2tyYcSNb3YmYWFjdXRlO24maWFjdXRlOyBtdXMmaWFjdXRlO3RlIHphJnNjYXJvbjtrcnRub3V0ICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnTXVzJmlhY3V0ZTt0ZSB1csSNaXQgYWxlc3BvxYggamVkbnUgYWRyZXN1ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdKc3RlIHNpIGppc3QgdnltYXomYWFjdXRlO24maWFjdXRlO20gZm9ybXVsJmFhY3V0ZTvFmWUgJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdKc3RlIHNpIGppc3Qgc21heiZhYWN1dGU7biZpYWN1dGU7bSBwb2xlICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdQb2tyb8SNaWwmZWFjdXRlOyBtb8W+bm9zdGkgbmVqc291IGRvc3R1cG4mZWFjdXRlOywgZG9rdWQgbmVuJmlhY3V0ZTsgbmFzdGF2ZW4gdHlwIHBvbGUuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xlIG11c2VqJmlhY3V0ZTsgYiZ5YWN1dGU7dCBwb2ptZW5vdiZhYWN1dGU7bmEsIHBva3VkIHRvdG8gbmV2eXBuZXRlIHYgbmFzdGF2ZW4maWFjdXRlOyBUdsWvcmNlIGZvcm11bCZhYWN1dGU7xZnFry4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltbiZpYWN1dGU7JzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdEJmVhY3V0ZTtsa2E6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG1vxb5ub3N0JmlhY3V0ZTsnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyB6bmFrxa8uJzsKJGxhbmdbJ29yZGVyJ10gPSAnUG/FmWFkJmlhY3V0ZTsnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbbmV1csSNZW5vXSc7CiRsYW5nWydhZGRlZCddID0gJ3DFmWlkJmFhY3V0ZTtubyc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWt0dWFsaXpvdiZhYWN1dGU7bm8nOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnVMWZJmlhY3V0ZTtkaXQgdmxhc3Rub3N0aSBuYSB2JnlhY3V0ZTtzdHVwdSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnU2VsZWN0IE9uZSc7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1NlbGVjdCBUeXBlJzsKJGxhbmdbJ3RvJ10gPSAnUHJvJzsKJGxhbmdbJ3llcyddID0gJ0Fubyc7CiRsYW5nWydubyddID0gJ05lJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdwxZkmaWFjdXRlO2plbWPFryc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbW/Fvm4meWFjdXRlO2NoIHNvdWJvcsWvJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdVbG/Fvml0JzsKJGxhbmdbJ2FkZCddID0gJ1DFmWlkYXQnOwokbGFuZ1sndXBkYXRlJ10gPSAnQWt0dWFsaXpvdmF0JzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVWxvxb5pdCBhIHBva3JhxI1vdmF0IHYgJnVhY3V0ZTtwcmF2JmFhY3V0ZTtjaCc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjZSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aWNrJmVhY3V0ZTsnOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnVnnFvmFkb3Zhbm9zdCBwb2wmaWFjdXRlO8SNa2EgYnlsYSB1cHJhdmVuYS4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiB2ZWxpa29zdCc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTvFmWVuJmlhY3V0ZTsnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1Bvdm9sZW4mZWFjdXRlOyB0eXB5IHNvdWJvcsWvJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnTmFocmFuJnlhY3V0ZTsgc291Ym9yIGplIHDFmSZpYWN1dGU7bGkmc2Nhcm9uOyB2ZWxpayZ5YWN1dGU7LiBQb3ZvbGVuJmFhY3V0ZTsgdmVsaWtvc3QgamU6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGVudG8gdHlwIHNvdWJvcnUgbmVtxa/FvmUgYiZ5YWN1dGU7dCBuYWhyJmFhY3V0ZTtuLiBQcm9zJmlhY3V0ZTttIHprb250cm9sdWp0ZSwgxb5lIHNvdWJvciBtJmFhY3V0ZTsgc3ByJmFhY3V0ZTt2bm91IHDFmSZpYWN1dGU7cG9udS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFociZhYWN1dGU7dCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTvFmSBieWwgaW1wb3J0b3YmYWFjdXRlO24uJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0ltcG9ydCBmb3JtdWwmYWFjdXRlO8WZZSBzZWxoYWwhIFhNTCBzb3Vib3IgbmVuJmlhY3V0ZTsgdmUgc3ByJmFhY3V0ZTt2biZlYWN1dGU7bSB0dmFydS4nOwokbGFuZ1sncm93cyddID0gJyVzIMWZJmFhY3V0ZTtka8WvJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBzbG91cGPFryc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTIgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgaG9kaW5vdiZlYWN1dGU7IHBvxI0maWFjdXRlO3QmYWFjdXRlO24maWFjdXRlOyDEjWFzdSc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0YSc7CiRsYW5nWydtZXJpZCddID0gJ1BvbGVkbiZpYWN1dGU7ayc7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnUm96c2FoOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ0TEm2t1amVtZSEgViZhYWN1dGU7JnNjYXJvbjsgcMWZJmlhY3V0ZTtzcMSbdmVrIGJ5bCB6YXpuYW1lbiZhYWN1dGU7bi4nOwokbGFuZ1snZWRpdCddID0gJ1VwcmF2aXQnOwokbGFuZ1snZGVsZXRlJ10gPSAnU21hemF0JzsKJGxhbmdbJ2RheSddID0gJ0Rlbic7CiRsYW5nWydtb24nXSA9ICdNxJtzJmlhY3V0ZTtjJzsKJGxhbmdbJ3llYXInXSA9ICdSb2snOwokbGFuZ1snbm9uZSddID0gJyhuaWMpJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgb2RpbnN0YWxvdiZhYWN1dGU7bi4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyemUgJXMgYnlsIG5haW5zdGFsb3YmYWFjdXRlO24uJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWwgYnlsIHVwZ3JhZG92JmFhY3V0ZTtuIG5hIHZlcnppICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdacMSbdC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnVWxvxb5pdCBmb3JtdWwmYWFjdXRlO8WZJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1Bva3JhxI1vdmF0Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdaYSZzY2Fyb247a3J0bnV0byc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdOZXphJnNjYXJvbjtrcnRudXRvJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSGxhdm4maWFjdXRlOyc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnTmFzdGF2ZW4maWFjdXRlOyB6b2JyYXplbiZpYWN1dGU7IGZvcm11bCZhYWN1dGU7xZllJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdVa2wmYWFjdXRlO2QmYWFjdXRlO24maWFjdXRlOyBmb3JtdWwmYWFjdXRlO8WZZSc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ05hc3RhdmVuJmlhY3V0ZTsgQ2FwdGNoYSc7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdQb2tyb8SNaWwmYWFjdXRlOyBuYXN0YXZlbiZpYWN1dGU7JzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJyZTY2Fyb247YWJsb25hIGZvcm11bCZhYWN1dGU7xZllJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICcmU2Nhcm9uO2FibG9uYSB6cHImYWFjdXRlO3Z5IHBvIHZsb8W+ZW4maWFjdXRlOyBkYXQnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5WIHRvbXRvIHBvbGkgbHplIHBvdcW+JmlhY3V0ZTt0IHByb23Em25uJmVhY3V0ZTsgU21hcnR5LjxlbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdQxZlpZGF0IHYmaWFjdXRlO2NlIG1vxb5ub3N0JmlhY3V0ZTsnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdTbWF6YXQgb3puYcSNZW4mZWFjdXRlOyBtb8W+bm9zdGknOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdQxZlpZGF0IHYmaWFjdXRlO2NlIHphJnNjYXJvbjtrcnQmYWFjdXRlO3ZhYyZpYWN1dGU7Y2ggcG9sJmlhY3V0ZTvEjWVrJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnU21hemF0IG96bmHEjWVuJmFhY3V0ZTsgemEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjJmlhY3V0ZTsgcG9sJmlhY3V0ZTvEjWthJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnUMWZaWRhdCBkYWwmc2Nhcm9uOyZpYWN1dGU7IGFkcmVzdSc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NtYXphdCBvem5hxI1lbiZlYWN1dGU7IGFkcmVzeSc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdQxZlpZGF0IGRhbCZzY2Fyb247JmlhY3V0ZTsgYyZpYWN1dGU7bCc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTbWF6YXQgb3puYcSNZW4mZWFjdXRlOyBjJmlhY3V0ZTtsZSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0J5bG8gdnl0dm/FmWVubyBwxZkmaWFjdXRlO2xpJnNjYXJvbjsgbW5vaG8gZS1tYWlsxa8gcHJvIFZhJnNjYXJvbjtpIElQIGFkcmVzdS4gQW50aXNwYW0gemFiciZhYWN1dGU7bmlsIGRvcnXEjWVuJmlhY3V0ZTsuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1NlxZlhZGl0IHBvbCZpYWN1dGU7xI1rYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdTdHJvbm8nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnU2FkYSBob2Rub3Q6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdSZWd1bCZhYWN1dGU7cm4maWFjdXRlOyB2JnlhY3V0ZTtyYXosIHVtb8W+xYh1aiZpYWN1dGU7YyZpYWN1dGU7IGZpbHRyb3YmYWFjdXRlO24maWFjdXRlOyBwb2wmaWFjdXRlO8SNZWsgbW9kdWx1IENhdGFsb2dlciBwb2RsZSBqbSZlYWN1dGU7bmEnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdWJnlhY3V0ZTsmc2Nhcm9uO2thIHBvbCZpYWN1dGU7xI1rYSB0eXB1IHNlbGVjdCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSBwb2wmaWFjdXRlO8SNa2EnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQWRyZXMmYWFjdXRlO8WZLCBrYW0gYnVkb3UgdWtsJmFhY3V0ZTtkJmFhY3V0ZTtueSBvdWJvcnknOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdVxb5pdmF0ZWxlbSBkZWZpbm92YW4meWFjdXRlOyB0YWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7U2VsZWN0IE9uZSZxdW90OyBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlvbiBWYWx1ZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdTZWxlY3Rpb24gRGlzcGxheSBOYW1lJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aW9uIFN1YmplY3QnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGlvbiBOYW1lJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbHVlIFN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnUHVsbGRvd24gT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTXVsdGlzZWxlY3QgT3B0aW9ucyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGVzdGluYXRpb24gRW1haWwgQWRkcmVzcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Rlc3RpbmF0aW9uIEZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcm9tIG5hbWUmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgJnF1b3Q7eEB5JnF1b3Q7IGluc3RlYWQgb2YgcmVxdWlyaW5nICZxdW90O3hAeS50bGQmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Zyb20gYWRkcmVzcyZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybSBTdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdSZWFkeSBmb3IgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTm90IFJlYWR5JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IHRvIGFmdGVyIGZvcm0gc3VibWlzc2lvbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnUGxlYXNlIGFkZCBhIGZpZWxkIHRvIHRoZSBmb3JtIHNvIHRoYXQgdGhlIHVzZXImIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnRm9ybSBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsZCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRmllbGQgTmFtZSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZpZWxkIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGaWVsZCBUeXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICd0byBjcmVhdGUgYSBmb3JtIGhhbmRsaW5nIGZpZWxkLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBZGQgTmV3IEZvcm0nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uJ10gPSAnU2hvdyBGb3JtIEJ1aWxkZXIgVmVyc2lvbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdUaGlzIHdpbGwgZW1iZWQgeW91ciBpbnN0YWxsZWQgdmVyc2lvbiBudW1iZXIgb2YgRm9ybSBCdWlsZGVyIG1vZHVsZSBpbiBhIGNvbW1lbnQsIHRvIGFpZCBpbiBkZWJ1Z2dpbmcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FkZCBOZXcgRmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBmaW5hbCBTdWJtaXQgQnV0dG9uIHRoYXQgd2lsbCBoZWxwIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnRmllbGQgdG8gVmFsaWRhdGUnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnT3BpJnNjYXJvbjt0ZSBzcHImYWFjdXRlO3ZuxJsgem5ha3kgeiBvYnImYWFjdXRlO3prdS4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRmllbGRzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMgbWF5IGFsc28gYmUgYWNjZXNzZWQgdmlhIHRoZSBzbWFydHkgdmFsdWUgb2YgJGZpZWxkbmFtZV9hcnJheSBvciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU3dpdGNoIHRvIEFkdmFuY2VkIE1vZGUnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdBbGxvdyBzdWJqZWN0IHRvIGJlIG92ZXJyaWRkZW4/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ0FsbG93ICYjMDM5O0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGRzJiMwMzk7IHRvIG92ZXJyaWRlIHRoZSBzdWJqZWN0IHNwZWNpZmllZCBpbiB0aGUgcHVsbGRvd24uJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ05ldmVyJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpdmUgdXNlciBhIGNob2ljZSAoY2hlY2tib3gpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbHdheXMnOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnbGVkbmEnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJyZ1YWN1dGU7bm9yYSc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnYsWZZXpuYSc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnZHVibmEnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdrdsSbdG5hJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ8SNZXJ2bmEnOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnxI1lcnZlbmNlJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnc3JwbmEnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICd6JmFhY3V0ZTvFmSZpYWN1dGU7JzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ8WZJmlhY3V0ZTtqbmEnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ2xpc3RvcGFkdSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAncHJvc2luY2UnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+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+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIyMjkzNzQ2MS4yNTEuNTMudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L3NlYXJjaC98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTYwODg1NTIxMC4xMTY3OTA4MTA5LjEyMjI4OTY3NDkuMTIyMjkzNzQ2MS4yNTEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/da_DK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bGFyIEdlbmVyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZlbHQtdHlwZSBpa2tlIHNhdCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GZWx0cyZhZWxpZzt0IHNsdXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZlbHRzJmFlbGlnO3QgYmVneW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3RmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1Rla3N0ZmVsdCAoZmxlcmUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1Rla3N0ZmVsdCwgZmxlcmUgbGluaWVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0Fma3J5ZHNuaW5nc2Jva3MnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwcGUgYWYgYWZrcnlkc25pbmdzYm9rc2UnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUHVsbGRvd24tbWVudSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aS12YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgdiZhZWxpZztsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkaXNrIHByb2lucyB2JmFlbGlnO2xnZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdMYW5kZSB2YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0byBWYWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlkc3ZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBrbmFwIGdydXBwZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgcmVzdWx0YXRldCBiYXNlcmV0IHAmYXJpbmc7IHB1bGxkb3duLXZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypHZW0gcmVzdWx0YXRlciBpIGVuIGZpbCBiYXNlcmV0IHAmYXJpbmc7IG1lbnUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkdlbSByZXN1bHRhdGVyIGkgZW4gZmlsIGJhc2VyZXQgcCZhcmluZzsgZmxlcmUgdmFsZ3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlZpZGVyZXN0aWwgdGlsIHNpZGUgYmFzZXJldCBwJmFyaW5nOyBwdWxsZG93bi12YWxnJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCByZXN1bHRhdGV0IHRpbCBhbmdpdm5lIGFkcmVzc2UociknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkJmVhY3V0ZTtyIHZpYSBlbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkLCBhbmQgc2VuZCBjb3B5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0ZXIgdGlsIGFsbS4gdGVrc3QtZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypHZW0gcmVzdWx0YXRlciBpIGRhdGFiYXNlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqR2VtIHJlc3VsdGF0ZXIgdGlsIEZvcm1Ccm93c2VyIG1vZHVsIHZlcnNpb24gMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypLYWxkIGVuIGJydWdlcmRlZmluZXJldCB0YWcgaW5kZSBpIGZvcm11bGFyZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRpbCBicnVnZXItYW5naXZlbiBlbWFpbCBhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0aWwgZW4gQ01TIGFkbWluIGJydWdlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNpZGVza2lmdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbC11cGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtGcmEgbmF2biZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RW1uZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2sgdGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzayBsaW5rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnLUxpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1Ta2p1bHQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQmVyZWduZXQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrdCB0YWwgKHNlcmllbHQpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZhbGlkZXJpbmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSGVsdGFsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIGFkcmVzc2UnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbiBudW1tZXIgKFVTQSknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnU2thbCB2JmFlbGlnO3JlIHZhbGd0JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdTa2FsIG1hdGNoZSByZWd1bCZhZWxpZztyIHVkdHJ5ayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdNJmFyaW5nOyBpa2tlIG1hdGNoZSByZWd1bCZhZWxpZztyIHVkdHJ5ayc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRW4gdiZhZWxpZztyZGkgYmxldiBpa2tlIGFuZ2l2ZXQgaSBldCBwJmFyaW5nO2tyJmFlbGlnO3ZldCBmZWx0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQW5naXYgZW4gdiZhZWxpZztyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0FuZ2l2IGV0IHRhbCBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnQW5naXYgZW4gZ3lsZGlnIHYmYWVsaWc7cmRpIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0FuZ2l2IGV0IGhlbHRhbCBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnQW5naXYgZW4gZ3lsZGlnIGVtYWlsIGFkcmVzc2UgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdFbWFpbCBhZGRyZXNzIGRvZXMgbm90IG1hdGNoIHZhbHVlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBlciBpa2tlIGVuIGd5bGRpZyBlbWFpbCBhZHJlc3NlISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnQW5naXYgZW4gdiZhZWxpZztyZGkgZGVyIGlra2UgZXIgbCZhZWxpZztuZ2VyZSBlbmQgJXMgdGVnbic7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1RlZ24gZGVyIGthbiBiZW55dHRlcyB0aWwgYXQgYWRza2lsbGUgZmxlcmUgdiZhZWxpZztyZGllcic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnRHUgc2thbCBoYXZlICZxdW90OyVzJnF1b3Q7IHRpbGxhZGVsc2VuIGZvciBhdCBrdW5uZSB1ZGYmb3NsYXNoO3JlIGRlbiBvcGVyYXRpb24nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdCZWtsYWdlciEgRHUgaGFyIGlra2UgZGUgbiZvc2xhc2g7ZHZlbmRpZ2UgdGlsbGFkZWxzZXIgZm9yIGF0IHRpbGcmYXJpbmc7IGRlbiBzZWt0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdC1yJmFlbGlnO2trZWYmb3NsYXNoO2xnZW4gYmxldiBvcGRhdGVyZXQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFyZW0gYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGZWx0ZXQgYmxldiBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb25lbiBibGV2IG9wZGF0ZXJldCc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IHNrYWwgcyZhZWxpZzt0dGUga3J5ZHMgaSAmcXVvdDslcyZxdW90OyBmb3IgYXQgZm9ydHMmYWVsaWc7dHRlJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBza2FsIGFuZ2l2ZSBtaW5kc3QgZW4gbW9kdGFnZXItYWRyZXNzZSc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgZHUgdmlsIHNsZXR0ZSBmb3JtdWxhcmVuICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdVZHZpZGVkZSBpbmRzdGlsbGluZ2VyIGthbiBmJm9zbGFzaDtyc3Qgc2VzLCBuJmFyaW5nO3IgZGVyIGVyIHZhbGd0IGZlbHR0eXBlJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRmVsdG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWcuIEJlbnl0IHZlbmxpZ3N0IHVuaWtrZSBmZWx0bmF2bmUnOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0ZlbHRlciBza2FsIG5hdm5naXZlcyBtZWQgbWluZHJlIGR1IHNsJmFyaW5nOyBkZXR0ZSBmcmEgaSBGb3JtdWxhciBHZW5lcmF0b3JlbnMgaW5kc3RpbGxpbmdlcic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0wmYWVsaWc7bmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsZ211bGlnaGVkZXInOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycyc7CiRsYW5nWydvcmRlciddID0gJ1ImYWVsaWc7a2tlZiZvc2xhc2g7bGdlJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW2lra2UgYW5naXZldF0nOwokbGFuZ1snYWRkZWQnXSA9ICd0aWxmJm9zbGFzaDtqZXQnOwokbGFuZ1sndXBkYXRlZCddID0gJ29wZGF0ZXJldCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0JmVhY3V0ZTtyIHZhbGdtdWxpZ2hlZGVyIHZlZCBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1YmYWVsaWc7bGcgZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdWJmFlbGlnO2xnIHR5cGUnOwokbGFuZ1sndG8nXSA9ICdUaWwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vZHRhZ2VyZSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbXVsaWdlIGZpbGVyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25lcic7CiRsYW5nWydzYXZlJ10gPSAnR2VtJzsKJGxhbmdbJ2FkZCddID0gJ1RpbGYmb3NsYXNoO2onOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BkYXQmZWFjdXRlO3InOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdHZW0gb2cgZm9ydHMmYWVsaWc7dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXRpb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZXInOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0ZXRzIHAmYXJpbmc7a3ImYWVsaWc7dmV0LXN0YXR1cyBvcGRhdGVyZXQnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWFrcy4gc3Qmb3NsYXNoO3JyZWxzZSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1VkdmlkZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RpbGxhZHRlIGZpbHR5cGVyJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGVuIHVwbG9hZCYjMDM5O2VkZSBmaWwgZXIgZm9yIHN0b3IhIE1ha3NpbWFsIHN0Jm9zbGFzaDtycmVsc2UgZXI6ICc7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIG0mYXJpbmc7IGlra2UgdXBsb2FkZXMuIEtvbnRyb2xsJmVhY3V0ZTtyIHZlbmxpZ3N0IGF0IGZpbHR5cGVuIGVyIGtvcnJla3QuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYXIgaW1wb3J0ZXJldCc7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgYWYgZm9ybXVsYXIgZmVqbGVkZS4gRGVyIHZhciBldCBwcm9ibGVtIG1lZCBmb3JtYXRldCBhZiBYTUwtZmlsZW4nOwokbGFuZ1sncm93cyddID0gJyVzIHImYWVsaWc7a2tlcic7CiRsYW5nWydjb2xzJ10gPSAnJXMga29sb25uZXInOwokbGFuZ1snMTJfaG91ciddID0gJzEyLXRpbWVycyB0aWQnOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXRpbWVycyB0aWQnOwokbGFuZ1snaG91ciddID0gJ1RpbWUnOwokbGFuZ1snbWluJ10gPSAnTWludXQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnT21yJmFyaW5nO2RlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RhayEgRGluIGFmc2VuZGVsc2UgZXIgbW9kdGFnZXQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZyZlYWN1dGU7cic7CiRsYW5nWydkZWxldGUnXSA9ICdTbGV0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25lZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGV0IGJsZXYgYWZpbnN0YWxsZXJldCc7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJzaW9uICVzIGluc3RhbGxlcmV0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZXQgYmxldiBvcGdyYWRlcmV0IHRpbCB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdUaWxiYWdlLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTZW5kIGZvcm11bGFyJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1ZpZGVyZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnVmFsZ3QnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnSWtrZSB2YWxndCc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ01haW4nOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0Zvcm11bGFyIGZyZW12aXNuaW5ncyBpbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtdWxhciBhZnNlbmRlbHNlJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYSBpbmRzdGlsbGluZ2VyJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0F2YW5jZXJlZGUgaW5kc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdUZW1wbGF0ZSBMYXlvdXQgT3B0aW9ucyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnQWZzZW5kZWxzZXMgc2thYmVsb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVyIGthbiBiZW55dHRlcyBpIGRldHRlIGZlbHQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIHZhbGdtdWxpZ2hlZGVyJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2xldCBtYXJrZXJlZGUgdmFsZ211bGlnaGVkZXInOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdUaWxmJm9zbGFzaDtqIGZsZXJlIGNoZWNrYm94ZSc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NsZXQgbWFya2VyZWRlIGNoZWNrYm94ZSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gYWRyZXNzZSc7CiRsYW5nWydkZWxldGVfYWRkcmVzcyddID0gJ1NsZXQgZGVuIG1hcmtlcmVkZSBhZHJlc3NlJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1RpbGYmb3NsYXNoO2ogZW5kbnUgZW4gZGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnU2xldCBkZSBtYXJrZXJlZGUgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVG9vIG1hbnkgZW1haWxzIGdlbmVyYXRlZCBmcm9tIHlvdXIgSVAgYWRkcmVzcy4gQW50aS1TcGFtIGNvZGUgaGFzIHByZXZlbnRlZCBkZWxpdmVyeS4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnU3VzcGVjdGVkIHNwYW0gZnJvbSBJUCAlcyBzdG9wcGVkLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnT21hcnJhbmcmZWFjdXRlO3IgZmVsdGVyJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0ZvcnRyeWQnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsdWUgc2V0OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0ZpZWxkIEhlaWdodCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1VzZXIgRGVmaW5lZCBUYWcnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2UgdG8gcmV0dXJuIHRvIHdpdGggdXBsb2FkcyBsaW5rJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnU3VibWl0dGVkIHdpdGggZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ1VwbG9hZHMgY2F0ZWdvcnknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIHRoaXMgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTGVnZW5kJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7ViZhZWxpZztsZyBlbiZxdW90OyBUZXh0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1ZhbGd0IHYmYWVsaWc7cmRpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsZ211bGlnaGVkZW5zIG5hdm4nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0ZyYSBuYXZuJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdCZW55dCBhZnNsYXBwZXQgZW1haWwtdmFsaWRlcmluZyAoZi5la3MuLCB0aWxsYWQgJnF1b3Q7eEB5JnF1b3Q7IGkgc3RlZGV0IGZvciBhdCBrciZhZWxpZzt2ZSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFbWFpbCBjaGFyYWN0ZXIgc2V0IGVuY29kaW5nJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdQdWxsZG93bi1iYXNlZCBFbWFpbGVyIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3N1YmplY3QnXSA9ICdFbWFpbCBTdWJqZWN0IExpbmUnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsYXIgbmF2bic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm11bGFyIHN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ0tsYXIgdGlsIGJydWcnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0lra2Uga2xhcic7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU2lkZSBkZXIgc2thbCB2aWRlcmVzdGlsbGVzIHRpbCBlZnRlciBhZnNlbmRlbHNlIGFmIGZvcm11bGFyJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlclwmIzAzOTtzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2Jlbnl0IGRlbm5lIGdlbnZlaic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bGFyIGZlbHRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbHQgdmFsaWRlcmluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZlbHQgZGVyIHNrYWwgdmFsaWRlcmVzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdTa2p1bCBmZWx0ZXRzIG5hdm4gcCZhcmluZzsgZm9ybXVsYXJlbic7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzayB0ZWtzdCBkZXIgc2thbCB2aXNlcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgXCZxdW90O3ZhbGlkYXRpb24gdHlwZVwmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgXCZxdW90Oy9pbWFnZVwuKFxkKykvaVwmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1AmYXJpbmc7a3ImYWVsaWc7dmV0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnU2tqdWwgZmVqbCc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgc2thYmVsb24nOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCBcJnF1b3Q7anBnLGdpZixqcGVnXCZxdW90OykuIFNwYWNlcyB3aWxsIGJlIGlnbm9yZWQuIExlYXZpbmcgdGhpcyBibGFuayBtZWFucyB0aGVyZSB3aWxsIGJlIG5vIHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ0Rpc3BsYXkgcmVzdHJpY3Rpb25zPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdEaXNwbGF5IGFueSBzaXplIGFuZCBleHRlbnNpb24gcmVzdHJpY3Rpb25zIHdpdGggdGhlIHVwbG9hZCBmaWVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIHRvIHVzZSB0byBEaXNwbGF5IEZvcm0nOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdlICVzIG9mICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj1cImh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGFcIiB0YXJnZXQ9XCJfbmV3XCI+XCZxdW90O0NhcHRjaGFcJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj1cImh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS9cIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXdcIj4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdG8gZm9yIGFmc2VuZGVsc2UnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdPdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsYmFnZSB0aWwgZm9ybXVsYXInOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj1cImh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHBcIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzblwmIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgXCZxdW90O0Rpc3Bvc2l0aW9uXCZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnWWVhciByYW5nZSBzdGFydCc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ1llYXIgcmFuZ2UgZW5kJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RlZmF1bHQgWWVhcic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdWaXMgJnF1b3Q7YWZzZW5kZWxzZXMgc2thYmVsb24mcXVvdDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyZWN0IHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlIFwmcXVvdDthZHZhbmNlZFwmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmVuZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdEaXNwbGF5IGZvcm0gaW5saW5lPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnSW5saW5lIG1lYW5zIGFueSBmb3JtIGZvbGxvd3VwIHJlcGxhY2VzIHRoZSB7Y21zX21vZHVsZX0gdGFnLCBub24taW5saW5lIHJlcGxhY2VzIHRoZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnRGVmYXVsdCB2YWx1ZSBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0NsZWFyIGRlZmF1bHQgb24gY2xpY2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0NoZWNrIHRoaXMgdG8gY2xlYXIgdGhlIGRlZmF1bHQgdmFsdWUgd2hlbiB0aGUgdXNlciBjbGlja3MgdGhpcyBmaWVsZC4gU2luY2UgdGhpcyB1c2VzIGEgamF2YXNjcmlwdCBzdHJpbmcgY29tcGFyZSwgaXQgd2lsbCBmYWlsIGlmIHlvdSBwdXQgc2luZ2xlIHF1b3RlcyBpbiB5b3VyIGRlZmF1bHQgdGV4dC4gT3RoZXIgdW4tamF2YXNjcmlwdC1mcmllbmRseSBjaGFyYWN0ZXJzIG1heSBhbHNvIGNhdXNlIGl0IHRvIGZhaWwuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnRGVsZXRlIHVwbG9hZGVkIGZpbGUgZnJvbSBzZXJ2ZXIgYWZ0ZXIgcHJvY2Vzc2luZyAoZW1haWwgZGlzcG9zaXRpb25zKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmb3IgZmllbGQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnQnJ1ZyBmb3IgZmxlcmUgZmVsdHR5cGVyPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnRm9yIG1hbmdlIGZvcnZpcnJlbmRlIGZlbHR0eXBlcj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdTa2lmdCB0aWwgYXZhbmNlcmV0IHZpc25pbmcnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTa2lmdCB0aWwgc2ltcGxlIHZpc25pbmcnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ0FsZHJpZyc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaXZlIHVzZXIgYSBjaG9pY2UgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWx0aWQnOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ0FkdmFyc2VsJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJ0cyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWonOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuaSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgQWZzZW5kZWxzZSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+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+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj1cImh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmdcIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPVwibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbVwiPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPVwiaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnXCI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj1cImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2Ntc1wiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj1cIm1haWx0bzpzamdAY21zbW9kdWxlcy5jb21cIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9XCJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUExcIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjUuNC4gMjkgQXVnIDA4LiBTY3JhcHBpbmcgcGxhbnMgZm9yIDAuNi4gQnVnIGZpeGVzLiBUZWQmIzAzOTtzIG5ldyAmcXVvdDtFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQmcXVvdDsuIEFkZGVkIGRhdGFiYXNlIGluZGljZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPg0KPGxpPlZlcnNpb24gMC41LjEuIDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZS48L2xpPg0KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+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+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjkyNDk3Njc2LjEyMDU4MDUwNzMuMTIyMjg3NTcxNC4xMjIyODgxMzU2Ljc4JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIyMjUwNjg0MC43NS4xNC51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2Zycy9hZG1pbi9lZGl0cmVsZWFzZS5waHAnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm1CdWlsZGVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnRmVsZHR5cCB3dXJkZSBuaWNodCBkZWZpbmllcnQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVyZhdW1sO2hsZW4gU2llIGVpbmVuIChvZGVyIG1laHJlcmUpIENhdGFsb2dlci1FaW50ciZhdW1sO2dlIGF1cyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLSBGZWxkZWluc3RlbGx1bmdlbiBFbmRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy0gRmVsZGVpbnN0ZWxsdW5nZW4gU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0ZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0ZmVsZCAoTWVocmZhY2gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHRiZXJlaWNoJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0tvbnRyb2xsayZhdW1sO3N0Y2hlbi1HcnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTGlzdGVuZmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNZWhyZmFjaGF1c3dhaGwnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnQXVzd2FobCBkZXMgVS5TLi1TdGFhdGVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0F1c3dhaGwgZGVyIGthbmFkaXNjaGVuIFByb3ZpbnonOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGRlcyBMYW5kZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGRlcyBEYXR1bXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdBdXN3YWhsIGRlciBaZWl0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnT3B0aW9uc2ZlbGQtR3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFcmdlYm5pc3NlIHBlciBFbWFpbCBhbiBBdXN3YWhsIGF1cyBkZW0gTGlzdGVuZmVsZCBzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypFcmdlYm5pc3NlIGluIGVpbmUgRGF0ZWkgYXVzIGRlciBMaXN0ZW5mZWxkYXVzd2FobCBzcGVpY2hlcm4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkRpZSBFcmdlYm5pc3NlIGluIERhdGVpKGVuKSBhdXMgZGVyIE1laHJmYWNobGlzdGVuLUF1c3dhaGwgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypBdWYgZGllIFNlaXRlIGF1cyBkZW0gTGlzdGVuZmVsZCB3ZWl0ZXJsZWl0ZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVyZ2Vibmlzc2UgcGVyIEVtYWlsIGFuIHZvcmdlZ2ViZW5lIEFkcmVzc2Uobikgc2VuZGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJyomVXVtbDtiZXJwciZ1dW1sO2Z1bmcgJnV1bWw7YmVyIGRpZSBFbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKkVyZ2Vibmlzc2UgaW4gZWluZSBEYXRlaSBzY2hyZWliZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKkVyZ2Vibmlzc2UgaW4gZGVyIERhdGVuYmFuayBzcGVpY2hlcm4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKkVyZ2Vibmlzc2UgZiZ1dW1sO3IgZGFzIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMgc3BlaWNoZXJuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkVpbmVuIGJlbnV0emVyZGVmaW5pZXJ0ZW4gVGFnIG1pdCBkZW4gRXJnZWJuaXNzZW4gYWxzIFBhcmFtZXRlciBhdWZydWZlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXJnZWJuaXNzZSBwZXIgRW1haWwgYW4gZWluZSBiZW51dHplcmRlZmluaWVydGUgRW1haWwtQWRyZXNzZSB2ZXJzZW5kZW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIGFuIGRlbiBDTVMtQWRtaW5pc3RyYXRvcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLSBTZWl0ZW51bWJydWNoJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnSG9jaGxhZGVuIHZvbiBEYXRlaWVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWxmZWxkICZxdW90O1ZvbiAoRW1haWwpJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWxmZWxkICZxdW90O1ZvbiAoTmFtZSkmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbWFpbGZlbGQgJnF1b3Q7QmV0cmVmZiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0gU3RhdGlzY2hlciBUZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLSBTdGF0aXNjaGVyIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rICh2b20gQmVudXR6ZXIgZWluZ2VnZWJlbiknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy0gVmVyYm9yZ2VuZXMgRmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctIEJlcmVjaG5ldGVzIEZlbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctIEVpbmRldXRpZ2UgR2FuenphaGwgKFNlcmllKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdLZWluZSAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtbWVyaXNjaCc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdHYW56emFobCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbC1BZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNdXNzICZ1dW1sO2JlcnByJnV1bWw7ZnQgd2VyZGVuJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdFbnRzcHJpY2h0IGRlbSB6dWwmYXVtbDtzc2lnZW4gV2VydCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdFbnRzcHJpY2h0IG5pY2h0IGRlbSB6dWwmYXVtbDtzc2lnZW4gV2VydCc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnRiZ1dW1sO3IgZWluIFBmbGljaHRmZWxkIHd1cmRlIGtlaW4gV2VydCBlaW5nZWdlYmVuJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQml0dGUgZ2ViZW4gU2llIGYmdXVtbDtyICZxdW90OyVzJnF1b3Q7IGVpbmVuIFdlcnQgZWluJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lIFphaGwgZWluICc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZW4gZyZ1dW1sO2x0aWdlbiBXZXJ0IGVpbic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lbiBnYW56emFobGlnZW4gV2VydCBlaW4gJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ0JpdHRlIGdlYmVuIFNpZSBmJnV1bWw7ciAmcXVvdDslcyZxdW90OyBlaW5lIGcmdXVtbDtsdGlnZSBFbWFpbC1BZHJlc3NlIGVpbiAnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZiZ1dW1sO3IgJnF1b3Q7JXMmcXVvdDsgZWluZSBnJnV1bWw7bHRpZ2UgVGVsZWZvbm51bW1lciBlaW4nOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgc2NoZWludCBrZWluZSBnJnV1bWw7bHRpZ2UgRW1haWxhZHJlc3NlIHp1IHNlaW4hJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdCaXR0ZSBnZWJlbiBTaWUgZWluZW4gV2VydCBlaW4sIGRlciBuaWNodCBsJmF1bWw7bmdlciBhbHMgJXMgWmVpY2hlbiBpc3QgJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnWmVpY2hlbiwgZGFzIGFscyBUcmVubmVyIHZlcndlbmRldCB3aXJkLCB3ZW5uIG1laHIgYWxzIGVpbiBXZXJ0IGFscyBFcmdlYm5pcyB6dXImdXVtbDtja2dlZ2ViZW4gd2lyZCc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnU2llIGJlbiZvdW1sO3RpZ2VuIGRpZSBCZXJlY2h0aWd1bmcgJnF1b3Q7JXMmcXVvdDssIHVtIGRpZXNlIEFrdGlvbiBhdXN6dWYmdXVtbDtocmVuLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NpZSBoYWJlbiBuaWNodCBkaWUgZXJmb3JkZXJsaWNoZSBCZXJlY2h0aWd1bmcsIHVtIGF1ZiBkaWVzZW4gQmVyZWljaCB6dXp1Z3JlaWZlbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZlbGRyZWloZW5mb2xnZSBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGFyIGdlbCZvdW1sO3NjaHQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGZWxkIGdlbCZvdW1sO3NjaHQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb25lbiBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnQmV2b3IgU2llIHdlaXRlcm1hY2hlbiwgbSZ1dW1sO3NzZW4gU2llICZxdW90OyVzJnF1b3Q7ICZ1dW1sO2JlcnByJnV1bWw7ZmVuLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnU2llIG0mdXVtbDtzc2VuIGhpZXIgbWluZGVzdGVucyBlaW5lIFppZWxhZHJlc3NlIGFuZ2ViZW4hJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1dvbGxlbiBTaWUgZGFzIEZvcm11bGFyICVzIHdpcmtsaWNoIGwmb3VtbDtzY2hlbj8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ1dvbGxlbiBTaWUgZGFzIEZlbGQgJXMgd2lya2xpY2ggbCZvdW1sO3NjaGVuPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdEaWUgZXJ3ZWl0ZXJ0ZW4gT3B0aW9uZW4gc2luZCBlcnN0IHZlcmYmdXVtbDtnYmFyLCB3ZW5uIGRlciBGZWxkdHlwIGZlc3RnZWxlZ3Qgd3VyZGUuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnRGVyIEZlbGRuYW1lICZxdW90OyVzJnF1b3Q7IHdpcmQgYmVyZWl0cyB2ZXJ3ZW5kZXQuIEJpdHRlIHZlcndlbmRlbiBTaWUgZWluZGV1dGlnZSBGZWxkbmFtZW4gb2RlciBkZWFrdGl2aWVyZW4gZGllIFZlcndlbmR1bmcgZWluZGV1dGlnZXIgRmVsZG5hbWVuIGluIGRlciBGb3JtQnVpbGRlci1Lb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRGllIEZlbGRlciBtJnV1bWw7c3NlbiBlaW5lbiBOYW1lbiBlcmhhbHRlbiwgb2RlciBTaWUgZGVha3RpdmllcmVuIGRpZXMgaW4gZGVyIEZvcm1CdWlsZGVyLUtvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTCZhdW1sO25nZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBLb250cm9sbGsmYXVtbDtzdGNoZW4nOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIE9wdGlvbmVuJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgWmVpY2hlbi4nOwokbGFuZ1snb3JkZXInXSA9ICdSZWloZW5mb2xnZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJyhuaWNodCBkZWZpbmllcnQpJzsKJGxhbmdbJ2FkZGVkJ10gPSAnaGluenVnZWYmdXVtbDtndCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWt0dWFsaXNpZXJ0JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09wdGlvbmVuIHp1ciBTb3J0aWVydW5nIGJlaSBkZXIgQXVzZ2FiZSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnQml0dGUgZWluZW4gYXVzdyZhdW1sO2hsZW4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdFaW5lbiBUeXAgYXVzdyZhdW1sO2hsZW4nOwokbGFuZ1sndG8nXSA9ICdBbic7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05laW4nOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ0VtcGYmYXVtbDtuZ2VyJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyB2ZXJmJnV1bWw7Z2JhcmUgRGF0ZWllbic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIFppZWxlJzsKJGxhbmdbJ3NhdmUnXSA9ICdTcGVpY2hlcm4nOwokbGFuZ1snYWRkJ10gPSAnSGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGlzaWVyZW4nOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTcGVpY2hlcm4gdW5kIEJlYXJiZWl0dW5nIGZvcnRzZXR6ZW4nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNjaCc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyZSc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXIgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZlbGRzdGF0dXMgYWt0dWFsaXNpZXJ0Lic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIEdyJm91bWw7JnN6bGlnO2UnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFbmR1bmdlbic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnRXJsYXVidGUgRGF0ZWl0eXBlbic7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0RpZSBob2NoZ2VsYWRlbmUgRGF0ZWkgaXN0IHp1IGdybyZzemxpZzshIERpZSBtYXhpbWFsZSBHciZvdW1sOyZzemxpZztlIGlzdDonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEaWVzZXIgRGF0ZWl0eXAgZGFyZiBuaWNodCBob2NoZ2VsYWRlbiB3ZXJkZW4uIEJpdHRlIHByJnV1bWw7ZmVuIFNpZSwgb2IgZGllIERhdGVpZW5kdW5nIGtvcnJla3QgaXN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdIb2NobGFkZW4nOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bGFyIGltcG9ydGllcnQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm11bGFyLUltcG9ydCBhYmdlYnJvY2hlbiEgRXMgaXN0IGVpbiBQcm9ibGVtIG1pdCBkZW0gRm9ybWF0IGRlciBYTUwtRGF0ZWkgYXVmZ2V0cmV0ZW4uJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBaZWlsZW4nOwokbGFuZ1snY29scyddID0gJyVzIFNwYWx0ZW4nOwokbGFuZ1snMTJfaG91ciddID0gJzEyLVN0dW5kZW4tQW56ZWlnZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtU3R1bmRlbi1BbnplaWdlJzsKJGxhbmdbJ2hvdXInXSA9ICdTdHVuZGUnOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0JlcmVpY2g6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVmllbGVuIERhbmshIElocmUgRWluZ2FiZW4gd3VyZGVuIGVyZm9sZ3JlaWNoIHZlcnNhbmR0Lic7CiRsYW5nWydlZGl0J10gPSAnQmVhcmJlaXRlbic7CiRsYW5nWydkZWxldGUnXSA9ICdMJm91bWw7c2NoZW4nOwokbGFuZ1snZGF5J10gPSAnVGFnJzsKJGxhbmdbJ21vbiddID0gJ01vbmF0JzsKJGxhbmdbJ3llYXInXSA9ICdKYWhyJzsKJGxhbmdbJ25vbmUnXSA9ICcoa2VpbmUgQW5nYWJlKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGRlaW5zdGFsbGllcnQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsdmVyc2lvbiAlcyBpbnN0YWxsaWVydC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bCBhdWYgVmVyc2lvbiAlcyBha3R1YWxpc2llcnQuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1p1ciZ1dW1sO2NrIC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnRm9ybXVsYXIgYWJzZW5kZW4nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnV2VpdGVyIC4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnR2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ1VuZ2VwciZ1dW1sO2Z0JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSGF1cHRzZWl0ZSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRWluc3RlbGx1bmdlbiBmJnV1bWw7ciBkaWUgRm9ybXVsYXJhbnplaWdlJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtdWxhci1WZXJzYW5kJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnQ2FwdGNoYS1FaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0Vyd2VpdGVydGUgRWluc3RlbGx1bmdlbic7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdGb3JtdWxhci1UZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnVmVyc2FuZC1UZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPkluIGRpZXNlbSBGZWxkIHNpbmQgYXVjaCBTbWFydHktVmFyaWFibGVuIGcmdXVtbDtsdGlnZSBXZXJ0ZS48ZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnV2VpdGVyZSBPcHRpb25lbiBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdNYXJraWVydGUgT3B0aW9uZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnV2VpdGVyZSBLb250cm9sbGsmYXVtbDtzdGNoZW4gaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnTWFya2llcnRlIEtvbnRyb2xsayZhdW1sO3N0Y2hlbiBsJm91bWw7c2NoZW4nOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdFaW5lIHdlaXRlcmUgQWRyZXNzZSBoaW56dWYmdXVtbDtnZW4nOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdNYXJraWVydGUgQWRyZXNzZW4gbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0VpbiB3ZWl0ZXJlcyBaaWVsIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdNYXJraWVydGUgWmllbGUgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnVm9uIElocmVyIElQLUFkcmVzc2Ugd3VyZGVuIHp1IHZpZWxlIEVtYWlscyBnZW5lcmllcnQuIEVzIHd1cmRlIGRhaGVyIGVpbiBBbnRpLVNwYW0tQ29kZSBhdXNnZWdlYmVuLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdWZXJkJmF1bWw7Y2h0aWdlciBTcGFtIHZvbiBkZXIgSVAgJXMgd3VyZGUgZ2VzdG9wcHQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdGZWxkZXIgbmV1IG9yZG5lbic7CiRsYW5nWydjYW5jZWwnXSA9ICdBYmJyZWNoZW4nOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnV2VydCBnZXNldHp0OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnRGllIEgmb3VtbDtoZSBkZXMgTXVsdGlzZWxlY3QgRmVsZGVzJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGZWxkIEgmb3VtbDtoZSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdaaWVsdmVyemVpY2huaXMgZiZ1dW1sO3IgZGllIGF1c2dlZ2ViZW5lbiBEYXRlaWVuJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnQmVudXR6ZXJkZWZpbmllcnRlIFRhZ3MnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1NlaXRlLCBhdWYgZGVyIGRlciBVcGxvYWRzLUxpbmsgZGFyZ2VzdGVsbHQgd2VyZGVuIHNvbGwnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdNaXQgZGVtIEZvcm1CdWlsZGVyLU1vZHVsIHZlcnNhbmR0ICc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2Fkcy1LYXRlZ29yaWUnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdEaWVzZSBEYXRlaSBhbiBkYXMgVXBsb2Fkcy1Nb2R1bCAmdXVtbDtiZXJnZWJlbic7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW1hbGUgTCZhdW1sO25nZSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyBkZXMgS29udHJvbGxrJmF1bWw7c3RjaGVucyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0Jlc2NocmlmdHVuZyBkZXMgT3B0aW9uc2ZlbGRlcyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnV2VydCBuYWNoIGVyZm9sZ3RlciBBa3RpdmllcnVuZyc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdXZXJ0IG9obmUgZXJmb2xndGUgQWt0aXZpZXJ1bmcnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldGFpbHMgenVyIEtvbnRyb2xsayZhdW1sO3N0Y2hlbi1HcnVwcGUnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnTCZvdW1sO3NjaGVuPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXh0IGYmdXVtbDtyICZxdW90O0JpdHRlIGF1c3cmYXVtbDtobGVuJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ0F1c3dhaGwgV2VydCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdBdXN3YWhsIGRlcyBhbmdlemVpZ3RlbiBOYW1lbnMnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBdXN3YWhsIGRlcyAmcXVvdDtCZXRyZWZmcyZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnU3RhbmRhcmRhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTmFtZSBkZXIgT3B0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJyZVdW1sO2Jlcm1pdHRlbHRlciBXZXJ0JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdMaXN0ZW5mZWxkLU9wdGlvbmVuJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdPcHRpb25lbiB6dXIgTWVocmZhY2hhdXN3YWhsJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdaaWVsLUVtYWlsYWRyZXNzZSc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ05hbWUgZGVyIFppZWxkYXRlaSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtWb24gKE5hbWUpJnF1b3Q7IGRlciBFbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnTG9ja2VyZSBFbWFpbC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcgdmVyd2VuZGVuJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1ZlcndlbmRldCBlaW5lIGxvY2tlcmUgJlV1bWw7YmVycHImdXVtbDtmdW5nIGRlciBFbWFpbCAoZXJsYXVidCB6LiBCc3AuICZxdW90O3hAeSZxdW90OyBhbnN0YXR0IGRlcyBlcmZvcmRlcmxpY2hlbiAmcXVvdDt4QHkuZGUmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O1ZvbiAoRW1haWwtQWRyZXNzZSkmcXVvdDsgZGVyIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnWmVpY2hlbmtvZGllcnVuZyBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ0xpc3RlbmZlbGRiYXNpZXJ0ZSBFbWFpbC1EZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0RhdGVpbmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnQmV0cmVmZi1aZWlsZSBkZXIgRW1haWwnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsYXJuYW1lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnRm9ybXVsYXJzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdFaW5zYXR6YmVyZWl0JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOaWNodCBlaW5zYXR6YmVyZWl0JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTZWl0ZSwgYXVmIGRpZSBuYWNoIGRlbSBWZXJzYW5kIGdlc3BydW5nZW4gd2VyZGVuIHNvbGwnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ0JpdHRlIGYmdXVtbDtnZW4gU2llIGVpbiBGZWxkIGhpbnp1LCBtaXQgZGVtIGRpZSBCZW51dHplcmVpbmdhYmVuIHZlcmFyYmVpdGV0IHdlcmRlbi4gU2llIGsmb3VtbDtubmVuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnZGllc2UgVGFzdGVua29tYmluYXRpb24gdmVyd2VuZGVuLCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybXVsYXItQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtdWxhcmZlbGRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZlbGQtSUQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdEZW4gRmVsZC1BbGlhcyBhbnplaWdlbic7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQWt0aXZpZXJlbiBTaWUgZGllcywgd2VubiBiZWltIEJlYXJiZWl0ZW4gZGVzIEZvcm11bGFycyBkZXIgRmVsZC1BbGlhcyBhbmdlemVpZ3Qgd2VyZGVuIHNvbGwnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbGRuYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmVsZC1BbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdEZXRhaWxzIHp1ciBPcHRpb25zZmVsZC1HcnVwcGUnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZlbGR0eXAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3VtIGVpbiBGZWxkIHp1ciBGb3JtdWxhcnZlcmFyYmVpdHVuZyB6dSBlcnN0ZWxsZW4uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ05ldWVzIEZvcm11bGFyIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdWZXJzaW9uIGRlcyBGb3JtQnVpbGRlci1Nb2R1bHMgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnQWxzIEhpbGZlIHp1ciBGZWhsZXJiZXJzZWl0aWd1bmcgd2lyZCBkaWUgVmVyc2lvbnNudW1tZXIgZGVzIEZvcm1CdWlsZGVyLU1vZHVscyBpbiBlaW5lbSBLb21tZW50YXIgZWluZ2ViZXR0ZXQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdOZXVlcyBGZWxkIGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtBYnNlbmRlbiZxdW90Oy1CdXR0b24nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdTb2xsIGRlbSBWZXJzZW5kZW4tS25vcGYgZWluIEphdmFzY3JpcHQgaGluenVnZWYmdXVtbDtndCB3ZXJkZW4sIHVtIGRlbiBtZWhyZmFjaGVuIFZlcnNhbmQgZGVzIEZvcm11bGFycyB6dSB2ZXJoaW5kZXJuPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnU2ljaGVyaGVpdHNzY3JpcHQgaGluenVmJnV1bWw7Z2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtXZWl0ZXImcXVvdDstQnV0dG9uIChmJnV1bWw7ciBtZWhyc2VpdGlnZSBGb3JtdWxhcmUpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0IGYmdXVtbDtyIGRlbiAmcXVvdDtadXImdXVtbDtjayZxdW90Oy1CdXR0b24gKGYmdXVtbDtyIG1laHJzZWl0aWdlIEZvcm11bGFyZSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbGQtJlV1bWw7YmVycHImdXVtbDtmdW5nJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLUtsYXNzZSBmJnV1bWw7ciBkaWVzZXMgRm9ybXVsYXInOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLUtsYXNzZSBmJnV1bWw7ciBkaWVzZXMgRmVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB6dXIgS2VubnplaWNobnVuZyBkZXIgUGZsaWNodGZlbGRlcic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ0VyZm9yZGVybGljaCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnRXJmb3JkZXJ0IHp3aW5nZW5kIGVpbmUgQW50d29ydCBpbiBkaWVzZW0gRmVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdEaWVzZW4gRmVsZG5hbWVuIGltIEZvcm11bGFyIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnQW56dXplaWdlbmRlciBzdGF0aXNjaGVyIFRleHQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWdleC0mVXVtbDtiZXJwciZ1dW1sO2Z1bmcnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ0FuemFobCBkZXIgYW56dXplaWdlbmRlbiBaZWlsZW4nOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ0tlaW5lIFZvcmVpbnN0ZWxsdW5nJzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnU2VpdGUsIGF1ZiBkaWUgbmFjaCAmVXVtbDtiZXJwciZ1dW1sO2Z1bmcgd2VpdGVyZ2VsZWl0ZXQgd2lyZCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKHouIEJzcC4gJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdFcmZvcmRlcmwuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnRmVobGVyIHZlcmJlcmdlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnQW56ZWlnZXR5cCBkZXMgRm9ybXVsYXJzJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdGZWhsZXItTWVsZHVuZ2VuIHZvciBkZW4gQmVudXR6ZXJuIHZlcmJlcmdlbi4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbC1UZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdNYXhpbWFsZSBHciZvdW1sOyZzemxpZztlIGYmdXVtbDtyIGhvY2h6dWxhZGVuZGUgRGF0ZWllbiAoa2lsb2J5dGUpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGllc2VzIExpbWl0IGlzdCBlaW5lIEVyZyZhdW1sO256dW5nIGRlciBWb3JnYWJlbiBhdXMgZGVyIFBIUC0gb2RlciBTZXJ2ZXItS29uZmlndXJhdGlvbi4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdadWdlbGFzc2VuZSBEYXRlaS1FbmR1bmdlbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnR2ViZW4gU2llIGhpZXIgZWluZSBBdWZ6JmF1bWw7aGx1bmcgZGVyIHp1Z2VsYXNzZW5lbiBEYXRlaS1FbmR1bmdlbiBqZXdlaWxzIGdldHJlbm50IGR1Y2ggZWluIEtvbW1hIGVpbiAob2huZSBQdW5rdCAtIHouQi4gJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gTGVlcnplaWNoZW4gd2VyZGVuIGlnbm9yaWVydC4gT2huZSBFaW50cmFnIGdlbHRlbiBrZWluZSBCZXNjaHImYXVtbDtua3VuZ2VuLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnQmVzY2hyJmF1bWw7bmt1bmdlbiBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnQmVzY2hyJmF1bWw7bmt1bmdlbiBkZXIgR3Imb3VtbDsmc3psaWc7ZSB1bmQgZGVyIERhdGVpLUVuZHVuZ2VuIG1pdCBkZW0gVXBsb2FkLUZlbGQgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmJnV1bWw7ciBkaWUgRm9ybXVsYXJhbnplaWdlJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2VpdGUgJXMgdm9uICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdEYXMgRmVsZCBoYXQga2VpbmUgZXJ3ZWl0ZXJ0ZW4gT3B0aW9uZW4uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0LCBkZXIgYmVpIHVuZ2VuYXVlbiBFaW5nYWJlbiB6dXImdXVtbDtja2dlZ2ViZW4gd2lyZCc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnQWt0aXZpZXJ0IGRhcyBzY2huZWxsZSBIaW56dWYmdXVtbDtnZW4gdm9uIExpc3RlbmZlbGRlcm4gaW4gRm9ybXVsYXJlbic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0RhcyBzY2huZWxsZSBIaW56dWYmdXVtbDtnZW4gdm9uIExpc3RlbmZlbGRlcm4gYWt0aXZpZXJlbj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1NjaG5lbGxlIEZlbGRlcnN0ZWxsdW5nJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnV2VubiBTaWUgaGllciBrbGlja2VuLCBrJm91bWw7bm5lbiB2b24gZGVyIHZvcmdlZ2ViZW5lbiBJUC1BZHJlc3NlIG1heGltYWwgMTAgRW1haWxzIHZlcnNhbmR0IHdlcmRlbiAocHJvIFN0dW5kZSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VpbmZhY2hlbiBBbnRpLVNwYW0tU2NodXR6IGFrdGl2aWVyZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdGZWxkLUlEcyBhbnplaWdlbic7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdXZW5uIFNpZSBkaWVzZXMgRmVsZCBha3RpdmllcmVuLCB3ZXJkZW4gZGllIEZlbGQtSURzIGJlaW0gQmVhcmJlaXRlbiBkZXMgRm9ybXVsYXJzIGFuZ2V6ZWlndCc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnRWluIEZvcm11bGFyIGFscyBYTUwtRGF0ZWkgaG9jaGxhZGVuJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdEaWVzZW4gRm9ybXVsYXJuYW1lbiB2ZXJ3ZW5kZW4nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTC1Gb3JtdWxhci1JbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdEaWVzZW4gRm9ybXVsYXItQWxpYXMgdmVyd2VuZGVuJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdFaW5lIEhUTUwtRW1haWwgZXJ6ZXVnZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnQXV0b21hdGlzY2ggdmVyJm91bWw7ZmZlbnRsaWNoZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aXNjaCBtaXQgZGVyIFVSTCBkZXIgRm9ybXVsYXJzZWl0ZSB2ZXImb3VtbDtmZmVudGxpY2hlbj8gKGRpZXMgJnV1bWw7YmVyc2NocmVpYnQgZGllIHdlaXRlciB1bnRlbiBiZW5hbm50ZSBTZWl0ZW4tTGluay1PcHRpb24pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkLUxpbmstVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJkLUxpbmstVGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBhdWYgZGllIFNlaXRlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1dlbm4gU2llIGRhcyBDYXB0Y2hhLU1vZHVsIGluc3RhbGxpZXJlbiwgayZvdW1sO25uZW4gU2llICZ1dW1sO2JlciBlaW4gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBJaHIgRm9ybXVsYXIgdm9yIFNwYW0gc2NoJnV1bWw7dHplbi4gV2VpdGVyZSBJbmZvcm1hdGlvbmVuIGZpbmRlbiBTaWUgaW0gPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Q2FwdGNoYS1Qcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHZlcndlbmRlbiwgdW0gZGVuIEZvcm11bGFydmVyc2FuZCB6dSBzY2gmdXVtbDt0emVuPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnS2xpY2tlbiBTaWUgaGllciwgdW0gSWhyIEZvcm11bGFyIG1pdHRlbHMgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfQkxBTksiPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHZvciBTcGFtIHp1IHNjaCZ1dW1sO3R6ZW4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0JpdHRlIGJlc3QmYXVtbDt0aWdlbiBTaWUsIGRhc3MgU2llIGtlaW4gbWFzY2hpbmVsbGVzIFNjcmlwdCBzaW5kLCBpbmRlbSBTaWUgZGllIEJ1Y2hzdGFiZW4gYXVzIGRlbSBCaWxkIGVpbmdlYmVuLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdUZXh0IGJlaSBmYWxzY2ggZWluZ2VnZWJlbmVtIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0RlciBlaW5nZWdlYmVuZSBDYXB0Y2hhLVRleHQgd2FyIGZhbHNjaC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGlsZmV0ZXh0IGYmdXVtbDtyIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnQmVzY2hyaWZ0dW5nIGRlcyBMaW5rcyc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnWmllbC1VUkwgZGVzIExpbmtzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnU3RhbmRhcmRtJmF1bWw7JnN6bGlnO2lnICZ1dW1sO2JlcnByJnV1bWw7ZmVuPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnMjQtU3R1bmRlbi1BbnplaWdlIHZlcndlbmRlbj8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBLk0uJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQLk0uJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnU21hcnR5LVRhZ3MgaW4gZGVuIEZlbGRlcm4gdmVyYXJiZWl0ZW4/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdaZWlsZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ1NwYWx0ZW4gKEhpbndlaXM6IERpZXMga2FubiBkdXJjaCBDU1MgJnV1bWw7YmVyc2NocmllYmVuIHdlcmRlbiknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWlscyBkZXMgSGF1cHRmb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0RlbiBMb2dpbi1OYW1lbiBkZXMgQmVudXR6ZXJzIGFuemVpZ2VuPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEZW4gVm9ybmFtZW4gZGVzIEJlbnV0emVycyBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEZW4gTmFjaG5hbWVuIGRlcyBCZW51dHplcnMgYW56ZWlnZW4/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnRGllIEJlbnV0emVybGlzdGUgYXVmIEJlbnV0emVyIGRlciBzcGV6aWZpemllcnRlbiBHcnVwcGUgYmVzY2hyJmF1bWw7bmtlbic7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnTnVyIGluIEdydXBwZSAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEZW0gQmVudXR6ZXIgYW56ZWlnZW4/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ0RpZXNlcyBGZWxkIGthbm4gbGVlciBnZWxhc3NlbiB3ZXJkZW4nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVuIGYmdXVtbDtyIGRhcyBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWZXJmJnV1bWw7Z2JhcmUgVmFyaWFibGVuJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAtVmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdWZXJzYW5kZGF0dW0nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0lociBTZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAtQWRyZXNzZSBkZXMgRm9ybXVsYXJhYnNlbmRlcnMnOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIGRlciBGb3JtdWxhcnNlaXRlJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIFZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWItWmVpY2hlbic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0aXZlIEZlbGRuYW1lbiBrJm91bWw7bm5lbiB3ZWNoc2Vsd2Vpc2UgdmVyd2VuZGV0IHdlcmRlbiAoZGllcyBpc3QgaW5zYmVzb25kZXJlIG4mdXVtbDt0emxpY2gsIHdlbm4gU21hcnR5IFByb2JsZW1lIG1pdCBaZWljaGVuIGF1JnN6bGlnO2VyaGFsYiB2b24gQVNDSUkgMzItMTI2IGhhdCkuIDxiciAvPldlbm4gU2llIGRpZXNlIGRlbSBGb3JtdWxhciBoaW56dWYmdXVtbDtnZW4sIHNpbmQgd2VpdGVyZSBGZWxkZXIgdmVyZiZ1dW1sO2diYXIuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnQXVmIEZlbGRlciwgZGllIG1laHJlcmUgV2VydGUgaGFiZW4sIGthbm4gdmlhIFNtYXJ0eSAmdXVtbDtiZXIgJGZlbGRuYW1lX2FycmF5IG9kZXIgJGZsZF8jX2FycmF5IHp1Z2VncmlmZmVuIHdlcmRlbi4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ0luZm9ybWF0aW9uZW4genVyIEZvcm1hdGllcnVuZyBmaW5kZW4gU2llIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD0iX0JMQU5LIj5pbiBkZXIgUEhQLUJlc2NocmVpYnVuZzwvYT4uJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZlbGQgcmVwciZhdW1sO3NlbnRpZXJ0JzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmFtcDsjMTcxOyBadXImdXVtbDtjayB6dW0gRm9ybXVsYXInOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0VpbiBCZWlzcGllbC1UZW1wbGF0ZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnRWluIEJlaXNwaWVsLUhUTUwtVGVtcGxhdGUgZXJzdGVsbGVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnRWluZSBCZWlzcGllbC1IZWFkZXItVm9ybGFnZSBlcnN0ZWxsZW4nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdFaW5lbiBNdXN0ZXItSGVhZGVyIGVyc3RlbGxlbic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdlaW4gVGFiLVplaWNoZW4nOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGVpbmUgWmVpbGUgZGVyIGF1c2dlZ2ViZW5lbiBEYXRlaSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGYmdXVtbDtyIGRlbiBIZWFkZXIgZGVyIGF1c2dlZ2ViZW5lbiBEYXRlaSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHp1ciBCZXN0JmF1bWw7dGlndW5nIGRlcyBGb3JtdWxhcnMnOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdXZXJ0IChzaWVoZSBSZWdpc3RlcmthcnRlIEVyd2VpdGVydW5nZW4sIHdlbm4gU2llIFNtYXJ0eS1UYWdzIHZlcndlbmRlbiknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bXMtRm9ybWF0IChzaWVoZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9Il9ibGFuayI+UEhQIERhdHVtc2Zvcm1hdDwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnV1lTSVdZRy1FZGl0b3IgZiZ1dW1sO3IgZGVuIFRleHRiZXJlaWNoIHZlcndlbmRlbiAobnVyIGluIGRlciBBZG1pbmlzdHJhdGlvbik/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnVmVyaGFsdGVuIG5hY2ggZGVtIEZvcm11bGFyLVZlcnNhbmQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0Jlc2NocmlmdHVuZyBkZXIgVmVyc2FuZC1CdXR0b24nOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0aWVyYmFyZXMgRmVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdBdWYgZGllc2VyIFNlaXRlIGsmb3VtbDtubmVuIFNpZSBkZW4gRm9ybXVsYXJ2ZXJzYW5kIGFucGFzc2VuLiAoRXMgd2lyZCBqZWRvY2ggbmljaHQgZmVzdGdlbGVndCwgd2llIGRpZSB2ZXJzYW5kdGVuIERhdGVuIHZlcmFyYmVpdGV0IHdlcmRlbi4gRGllcyBrJm91bWw7bm5lbiBTaWUgZmVzdGxlZ2VuLCBpbmRlbSBTaWUgSWhyZW0gRm9ybXVsYXIgZWluIEZlbGQgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgaGluenVmJnV1bWw7Z2VuLiknOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0phaHJlc2JlcmVpY2ggQmVnaW5uJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnSmFocmVzYmVyZWljaCBFbmRlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ1ZvcmVpbmdlc3RlbGx0ZXMgSmFocic7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhNaXQgLTEgd2lyZCBkYXMgYWt0dWVsbGUgSmFociBhbHMgVm9yZWluc3RlbGx1bmcgdmVyd2VuZGV0KSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnTmFjaGRlbSBkYXMgRm9ybXVsYXIgdmVyc2FuZHQgd3VyZGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnQW56dXplaWdlbmRlIEFudHdvcnQnOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnJnF1b3Q7VmVyc2FuZC1UZW1wbGF0ZSZxdW90OyBhbnplaWdlbic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnV2VpdGVybGVpdGVuIGF1ZiBkaWUgU2VpdGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdEaWVzZXMgVGVtcGxhdGUgd2lyZCBhbmdlemVpZ3QsIG5hY2hkZW0gZGFzIEZvcm11bGFyIHZlcnNhbmR0IHd1cmRlLiBEaWVzZXMgVGVtcGxhdGUgd2lyZCBuaWNodCB2ZXJ3ZW5kZXQsIHVtIEVtYWlscyB6dSBlcnpldWdlbiBvZGVyIGFuZGVyZSBGb3JtdWxhci1PcHRpb25lbiBhdXN6dWYmdXVtbDtocmVuLiBGYWxscyBlcncmdXVtbDtuc2NodCwgayZvdW1sO25uZW4gU2llIGRpZXNlIFRlbXBsYXRlcyAoZmFsbHMgZXJ3JnV1bWw7bnNjaHQpIGluIGRlciAmcXVvdDtlcndlaXRlcnRlbiZxdW90OyBSZWdpc3RlcmthcnRlIGYmdXVtbDtyIGRpZXNlIEZlbGRlciBmZXN0bGVnZW4uJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdaaWVsc2VpdGUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnRXJmb3JkZXJ0IEZlbGRuYW1lbic7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1NvbGwgZiZ1dW1sO3IgZGllIEZlbGRlciBlaW4gTmFtZSBmZXN0Z2VsZWd0IHdlcmRlbj8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdFcmZvcmRlcnQgZWluZGV1dGlnZSBGZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1NvbGwgZiZ1dW1sO3IgZGllIEZlbGRlciBlaW4gZWluZGV1dGlnZXIgTmFtZSBmZXN0Z2VsZWd0IHdlcmRlbj8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnRmVsZGVyIG5ldSBvcmRuZW4nOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGxhZGVuJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0VpbmVuIEJ1dHRvbi1UZXh0IGhpbnp1ZiZ1dW1sO2dlbic7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZW4gQnV0dG9uLVRleHQgbCZvdW1sO3NjaGVuJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ1ZhcmlhYmxlbiBhbHMgWmFobCBvZGVyIFN0cmluZyBpbnRlcnByZXRpZXJlbic7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ0ludGVycHJldGF0aW9ucy1SZWloZW5mb2xnZSc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnV2VubiBtZWhyIGFscyBlaW4gRmVsZCBiZXJlY2huZXQgd2VyZGVuIG11c3MsIHdlcmRlbiBkaWUgQmVyZWNobnVuZyB2b24gZGVyIG5pZWRyaWdzdGVuIHp1ciBoJm91bWw7Y2hzdGVuIE9yZG51bmdzbnVtbWVyIGhpbiBkdXJjaGdlZiZ1dW1sO2hydCc7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnWnUgYmVyZWNobmVuZGVyIFdlcnQnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnWmVpY2hlbmtldHRlJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdaYWhsJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGFzIEZvcm11bGFyIGlubGluZSBhbnplaWdlbj8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBiZWRldXRldCwgZGFzcyBkYXMgRm9ybXVsYXIgZGVuIHtjbXNfbW9kdWxlfS1UYWcgZXJzZXR6dCwgYW5kZXJlbmZhbGxzIHdpcmQgZGVyIHtjb250ZW50fS1UYWcgZXJzZXR6dC4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ1N0YW5kYXJkd2VydCBmJnV1bWw7ciBGZWxkZXInOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdCddID0gJ0JlaSBLbGljayBhdWYgZGFzIEZlbGQgZGllIHZvcmVpbmdlc3RlbGx0ZW4gV2VydGUgZW50ZmVybmVuPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdBa3RpdmllcmVuIFNpZSBkaWVzZXMgRmVsZCwgd2VubiBkZXIgdm9yZWluZ2VzdGVsbHRlIFdlcnQgYmVpIEtsaWNrIGF1ZiBkYXMgRmVsZCBlbnRmZXJudCB3ZXJkZW4gc29sbCc7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZiZ1dW1sO3IgRmVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBmJnV1bWw7ciBkZW4gRm9ybXVsYXJ2ZXJzYW5kJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnV2VyZGVuIG1laHIgRmVsZHR5cGVuIGJlbiZvdW1sO3RpZ3Q/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1p1IHZpZWxlIHZlcndpcnJlbmRlIEZlbGR0eXBlbj8nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdadSBlcndlaXRlcnRlbiBNb2R1cyB3ZWNoc2Vsbic7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1p1IGVpbmZhY2hlbiBNb2R1cyB3ZWNoc2Vsbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEYXRlaSBpbiBmb2xnZW5kZW0gVmVyemVpY2huaXMgc3BlaWNoZXJuJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVGhpcyBuZWVkcyB0byBiZSBhIGRpcmVjdG9yeSB0aGF0IHlvdXIgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbnMgdG8gd3JpdGUgaW4uPGJyIC8+Q2htb2QgaXQgNzc3IGlmIHlvdSBoYXZlIHByb2JsZW1zL2RvdWJ0cy48YnIgLz5BbHNvLCBjaGVjayB0byBzZWUgdGhhdCB5b3UgZG8gbm90IGhhdmUgUEhQIGRpcmVjdG9yeSByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+RGFzICZxdW90O0NhdGFsb2dlciZxdW90OyBNb2R1bCBzY2hlaW50IG5pY2h0IGluc3RhbGxpZXJ0IHp1IHNlaW4uPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOVU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3RhbmRhcmQtVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmVsbGVuLVRlbXBsYXRlLCBUaXRlbCBsaW5rcyc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJlbGxlbi1UZW1wbGF0ZSwgVGl0ZWwgb2Jlbic7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSB2b24gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnV29sbGVuIFNpZSB3aXJrbGljaCBJaHIgVGVtcGxhdGUgbWl0IGRlbSBhdXNnZXcmYXVtbDtobHRlbiBUZW1wbGF0ZSAmdXVtbDtiZXJzY2hyZWliZW4/IChBdWNoLCB3ZW5uIFNpZSBkaWVzIGJlc3QmYXVtbDt0aWdlbiwgbSZ1dW1sO3NzZW4gU2llIGRpZSAmQXVtbDtuZGVydW5nIHNwZWljaGVybiknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRmVobGVyIGJlaW0gQmVyZWNobmVuIHZvbiAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0tlaW5lIEluZm9ybWF0aW9uZW4gJnV1bWw7YmVyIGRlbiBIVFRQX1JFRkVSRVIgdmVyZiZ1dW1sO2diYXIgKHdhaHJzY2hlaW5saWNoIGF1ZmdydW5kIGRlciB2ZXJ3ZW5kZXRlbiBFbWFpbC1QciZ1dW1sO2Z1bmcpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdGZWhsZXIgYmVpbSAmVXVtbDtiZXJwciZ1dW1sO2ZlbiBkZXIgUGFyYW1ldGVyLiBCaXR0ZSBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIFVSTCBhdXMgSWhyZXIgRW1haWwga29ycmVrdCBrb3BpZXJ0IHd1cmRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnRmVobGVyIGJlaSBkZXIgJlV1bWw7YmVycHImdXVtbDtmdW5nLiBCaXR0ZSBzdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIFVSTCBhdXMgSWhyZXIgRW1haWwga29ycmVrdCBrb3BpZXJ0IHd1cmRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRmVobGVyIGJlaSBkZXIgJlV1bWw7YmVycHImdXVtbDtmdW5nLiBEaWVzZXMgRm9ybXVsYXIgZW50aCZhdW1sO2x0IGtlaW4gRmVsZCB6dXIgJlV1bWw7YmVycHImdXVtbDtmdW5nIGRlciBFbWFpbCEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0hpbnp1ZiZ1dW1sO2dlbiwgQmVhcmJlaXRlbiB1bmQgVmVyd2FsdGVuIHZvbiBpbnRlcmFrdGl2ZW4gRm9ybXVsYXJlbic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudWFyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGZWJydWFyJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNJmF1bWw7cnonOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FwcmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGV6ZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0JlaSBkZXIgVmVyYXJiZWl0dW5nIGRlcyB2ZXJzYW5kdGVuIEZvcm11bGFycyBpc3QgZWluIEZlaGxlciBhdWZnZXRyZXRlbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRmVobGVyIGJlaW0gVmVyc2FuZDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0ZlaGxlciBiZWkgZGVyICZVdW1sO2JlcmdhYmUgZGVyIERhdGVpIGFuIGRhcyBVcGxvYWRzLU1vZHVsOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdLb25udGUgZGFzIFVwbG9hZHMtTW9kdWwgbmljaHQgZmluZGVuJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdGZWhsZXIgYmVpbSBIb2NobGFkZW4gZGVyIERhdGVpICVzICh0ZW1wb3ImYXVtbDtyZXIgTmFtZSAlcyBkZXMgVHlwcyAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdGZWhsZXIuIERhdGVpIGtvbm50ZSBuaWNodCBnZXNwZXJydCB3ZXJkZW4uJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnU3RhbmRhcmQ6IG5pY2h0IGF1c2dldyZhdW1sO2hsdCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogYXVzZ2V3JmF1bWw7aGx0JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlci1WZXJzYW5kJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkRhcyBFbWFpbC1UZW1wbGF0ZSB3dXJkZSBub2NoIG5pY2h0IGZlc3RnZWxlZ3QhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBLb25udGUgZGFzIGVyZm9yZGVybGljaGUgQ01TTWFpbGVyLU1vZHVsIG5pY2h0IGZpbmRlbiEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnQmVudXR6ZXJnZXByJnV1bWw7ZnRlICZVdW1sO2Jlcm1pdHRsdW5nICVzIHZvbiAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdBdXNmJnV1bWw7aHJlbiwgd2VubiBiZWltIFZlcnNhbmQgZWluZXMgRm9ybUJ1aWxkZXItRm9ybXVsYXJzIGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnQXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm1CdWlsZGVyLUZvcm11bGFyIGFuZ2V6ZWlndCB3dXJkZSc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+QXVzZiZ1dW1sO2hyZW4sIHdlbm4gZWluIEZvcm11bGFyIG1pdCBGb3JtQnVpbGRlciB2ZXJzYW5kdCB3dXJkZS48L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBkZXIgTmFtZSBkZXMgRm9ybXVsYXJzIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gZGllIGludGVybmUgSUQgZGVzIEZvcm11bGFycyAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gJnV1bWw7YmVybWl0dGVsdCBlaW5lbiB2b3JnZWdlYmVuZW4gV2VydCBhbiBlaW4gZmVzdGdlbGVndGVzIEZlbGQuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5BdXNmJnV1bWw7aHJlbiwgd2VubiBiZWltIFZlcnNhbmQgZWluZXMgRm9ybUJ1aWxkZXItRm9ybXVsYXJzIGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4gaXN0PC9wPg0KPGg0PlBhcmFtZXRlcjwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gTmFtZSBkZXMgRm9ybXVsYXJzIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gaW50ZXJuZSBJRCBkZXMgRm9ybXVsYXJzIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIGVpbmUgTGlzdGUgYWxsZXIgYmVrYW5udGUgRmVobGVyIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkF1c2YmdXVtbDtocmVuLCB3ZW5uIGVpbiBGb3JtQnVpbGRlci1Gb3JtdWxhciBhbmdlemVpZ3Qgd3VyZGU8L3A+DQo8aDQ+UGFyYW1ldGVyPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBOYW1lIGRlcyBGb3JtdWxhcnMgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpbnRlcm5lIElEIGRlcyBGb3JtdWxhcnMgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlLUlELiBXaXJkIHZvbSBGb3JtQnJvd3Nlci1Nb2R1bCB2ZXJ3ZW5kZXQnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ1N0YW5kYXJkd2VydGUgZGVyIEZlbGRlcjsgc2llaGUgTW9kdWwtSGlsZmUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmVsZC1JRCBmJnV1bWw7ciBpbnRlcm5lIE9wZXJhdGlvbmVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtdWxhci1OYW1lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybXVsYXItSUQgZiZ1dW1sO3IgaW50ZXJuZSBPcGVyYXRpb25lbic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0FsbGdlbWVpbmUgUGFyYW1ldGVyIGYmdXVtbDtyIGludGVybmUgT3BlcmF0aW9uZW4nOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5TdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIEJlcmVjaHRpZ3VuZyAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgDQpmJnV1bWw7ciBkaWUgQmVudXR6ZXIgZ2VzZXR6dCBpc3QsIHdlbGNoZSBkaWUgRmVlZGJhY2stRm9ybXVsYXJlIGFkbWluaXN0cmllcmVuIHdlcmRlbi4gU29sbGVuIGRpZSBXZXJ0ZSBhdXMgZGVtIEZvcm11bGFyIHBlciBFbWFpbCB2ZXJzYW5kdCB3ZXJkZW4sIA0Kc3RlbGxlbiBTaWUgZWJlbmZhbGxzIHNpY2hlciwgZGFzcyBkaWUgS29uZmlndXJhdGlvbiBlbnRzcHJlY2hlbmQgYWt0dWFsaXNpZXJ0IHd1cmRlLjwvcD4NCjxwPkFDSFRVTkc6IFcmYXVtbDtocmVuZCBkZXIgQmVhcmJlaXR1bmcgZGFyZiBkYXMgamV3ZWlsaWdlIEZlZWRiYWNrLUZvcm11bGFyIA0KQmVhcmJlaXR1bmcgbmljaHQgYWt0aXYgc2VpbiAoPW51dHpiYXIgZiZ1dW1sO3IgZGllIEcmYXVtbDtzdGUgSWhyZXIgSG9tZXBhZ2UpLiBTaWUgc29sbHRlbiBkYWhlciBkZW4gRmVlZGJhY2tmb3JtdWxhci1UYWcgZXJzdCBkYW5uIGluIGVpbmUgYWt0aXZlIEluaGFsdHNzZWl0ZSBlaW5mJnV1bWw7Z2VuLCB3ZW5uIGRhcyBGb3JtdWxhciBrb21wbGV0dCBlcnN0ZWxsdCBpc3QuIEFuZGVyZW5mYWxscyBrYW5uIGVzIHp1IGZlaGxlcmhhZnRlbiBFcmdlYm5pc3NlbiBrb21tZW4uPC9wPg0KPHA+SGlud2VpczogRGllc2UgVmVyc2lvbiB1bnRlcnN0JnV1bWw7dHp0IGtlaW5lIHBhcmFsbGVsZSBCZWFyYmVpdHVuZyB2b24gRm9ybXVsYXJlbiBkdXJjaCBtZWhyZXJlIEFkbWluaXN0cmF0b3Jlbi4gU3RlbGxlbiBTaWUgZGFoZXIgc2ljaGVyLCBkYXNzIGVpbiBGb3JtdWxhciBqZXdlaWxzIG51ciB2b24gZWluZW0gQWRtaW5pc3RyYXRvciBiZWFyYmVpdGV0IHdpcmQuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldhcyBtYWNodCBkaWVzZXMgTW9kdWw/PC9oMz4NCjxwPkRhcyBGb3JtQnVpbGRlci1Nb2R1bCBlcmxhdWJ0IElobmVuLCBGZWVkYmFjay1Gb3JtdWxhcmUgenUgZXJzdGVsbGVuIChsb2dpc2NoLCBlcyBpc3QgZGVyIE5hY2hmb2xnZXIgZGVzIEZlZWRiYWNrRm9ybS1Nb2R1bHMpLCBlcndlaXRlcnQgdW0gZGllIEYmYXVtbDtoaWdrZWl0LCBlaW5nZWdlYmVuZSBEYXRlbiBhdWNoIGluIGVpbmVyIERhdGVuYmFuayBhYmxlZ2VuIHp1IGsmb3VtbDtubmVuLiBadXNhbW1lbiBtaXQgZGVtIEZvcm1Ccm93c2VyLU1vZHVsIGsmb3VtbDtubmVuIFNpZSBlaW5zZXR6ZW4sIHVtIGVpbmZhY2hlIERhdGVuYmFuay1BbndlbmR1bmdlbiBzZWxic3QgenUgZXJzdGVsbGVuLjwvcD4NCjxwPkRpZSB2b24gRm9ybUJ1aWxkZXIgZXJ6ZXVndGVuIEZvcm11bGFyZSBrJm91bWw7bm5lbiBpbiBUZW1wbGF0ZXMgDQp1bmQvb2RlciBTZWl0ZW4gZWluZ2VmJnV1bWw7Z3Qgd2VyZGVuLiBJbiBkaWUgRm9ybXVsYXIgayZvdW1sO25uZW4gdmVyc2NoaWVkZW5lIEFydGVuIHZvbiBEYXRlbiBlaW5nZWdlYmVuIHdlcmRlbi4gRGllc2UgRWluZ2FiZW4gDQo8cD5Gb3JtdWxhcmZlbGRlcm4gd2VyZGVuIE5hbWVuIHp1Z2V3aWVzZW4uIERpZXNlIE5hbWVuIGlkZW50aWZpemllcmVuIElocmUgRm9ybXVsYXJmZWxkZXIsIG5pY2h0IG51ciBhdWYgZGVtIEJpbGRzY2hpcm0gYWxzIEJlemVpY2hudW5nZW4gZGllIGRlbSBCZW51dHplciBkaWVuZW4sIHNvbmRlcm4gYXVjaCBpbiBkZW4gRGF0ZW4gd2VubiBzaWUgdmVyc2NoaWNrdCB3ZXJkZW4uIERhbWl0IHdpcmQgc2ljaGVyZ2VzdGVsbHQgZGFzcyBTaWUgZGFzIHNlaGVuIHdhcyBkZXIgTnV0emVyIGVpbmdlZ2ViZW4gaGF0LiA8YnI+DQpEZW4gTmFtZW4gd2llIGVpbmUgRnJhZ2UgenUgZ2VzdGFsdGVuIGlzdCBlaW5lIHNlaHIgaGFuZGxpY2hlIEFydCB1bmQgV2Vpc2UgZGVtIE51dHplciB6dSB2ZXJtaXR0ZWxuIHdhcyBoaWVyIHZvbiBpaG0gZXJ3YXJ0ZXQgd2lyZC4gPGJyPg0KVmllbGUgRmVsZGVyIGhhYmVuIGJlaWRlcywgTmFtZW4gdW5kIFdlcnRlLiBEaWUgTmFtZW4sIGRpZSBkZW0gTnV0emVyIGFuZ2V6ZWlndCB3ZXJkZW4gdW5kIGRpZSBXZXJ0ZSwgZGFzIHNpbmQgZGllIGRpZSBnZXNwZWljaGVydCB3ZXJkZW4gd2VubiBkZXIgTnV0emVyIGRhcyBGb3JtdWxhciBhYnNjaGlja3QuIERpZSBXZXJ0ZSBzaW5kIHdlZGVyIHZvbSBCZW51dHplciBlaW5zZWhiYXIgbm9jaCBpbSBIVE1MLCBzb21pdCBpc3QgZXMgc2ljaGVyIHNpZSBmJnV1bWw7ciBFbWFpbGFkcmVzc2VuIHVzdy4genUgdmVyd2VuZGVuLiA8L3A+DQo8cD5FaW5pZ2UgRmVsZGVyIGsmb3VtbDtubmVuIG1laHJlcmUgV2VydGUgb2RlciBOYW1lbi9XZXJ0ZSBQYWFyZSBoYWJlbi4gV2VubiBTaWUgenVlcnN0IGVpbiBzb2xjaGVzIEZlbGQgZXJzdGVsbGVuLCBrYW5uIGVzIG0mb3VtbDtnbGljaCBzZWluLCBkYXNzIG5pY2h0IGdlbiZ1dW1sO2dlbmQgRWluZ2FiZWZlbGRlciB2b3JoYW5kZW4gc2luZCwgdW0gZGllIFdlcnRlIGVpbnp1dHJhZ2VuLiBVbSBtZWhyIE0mb3VtbDtnbGljaGtlaXRlbiB6dSBlcmhhbHRlbiBXZXJ0ZSBlaW56dXRyYWdlbiwgYmVudXR6ZW4gU2llIGRlbiBTY2hhbHRlciBhbSB1bnRlcmVuIEVuZGUgZGVyIFNlaXRlIGYmdXVtbDtyIHdlaXRlcmUgT3B0aW9uZW4uPC9wPg0KPHA+RmVsZGVybiBrJm91bWw7bm5lbiBWYWxpZGllcnVuZ3NyZWdlbG4genVnZXdpZXNlbiB3ZXJkZW4sIHdlbGNoZSBqZSBuYWNoIEZlbGR0eXAgdW50ZXJzY2hpZWRsaWNoIHNlaW4gayZvdW1sO25uZW4uIERpZXNlIFJlZ2VsbiBoZWxmZW4gc2ljaGVyenVzdGVsbGVuIGRhc3MgZGVyIE51dHplciBnJnV1bWw7bHRpZ2UgRGF0ZW4gZWluZ2lidC4gQXUmc3psaWc7ZXJkZW0gaXN0IGVzIG0mb3VtbDtnbGljaCwgRmVsZGVyIHNlcGVyYXQgbWl0IGVpbmVtICZxdW90O3dpcmQgYmVuJm91bWw7dGlndCZxdW90OyB6dSBtYXJraWVyZW4sIGRhbWl0IHdpcmQgZGVyIE51dHplciBzb3p1c2FnZW4gJnF1b3Q7Z2V6d3VuZ2VuJnF1b3Q7IEVpbmdhYmVuIHp1IG1hY2hlbi4gPC9wPg0KPHA+RmVsZGVybiBrJm91bWw7bm5lbiBhdWNoIENTUy1LbGFzc2VuIHp1Z2V3aWVzZW4gd2VyZGVuLiBFcyB3ZXJkZW4gZGllIEVpbmdhYmVmZWxkZXIgbWl0IGVpbmVtIERJViBUYWcgdW5kIGRhenVnZWgmb3VtbDtyaWdlciBDU1MtS2xhc3NlIHVtZ2ViZW47IHNvbWl0IGsmb3VtbDtubmVuIFNpZSBJaHIgRm9ybXVsYXIgc2VsYnN0IGdlc3RhbHRlbi4gVW0gZGllcyBlZmZpemllbnQgbnV0emVuIHp1IGsmb3VtbDtubmVuLCBzb2xsdGVuIGluIGRlbiBRdWVsbHRleHQgZGVzIEZvcm11bGFyZXMgZ2VoZW4gdW5kIGRhbm4gSWhyZW4gQ1NTLUNvZGUgc2NocmVpYmVuLiA8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgRWluZ2FiZWZlbGRlcg0KICA8dWw+DQogICAgPGxpPlRleHQgRWluZ2FiZWZlbGQuIERpZXMgaXN0IGRhcyBTdGFuZGFyZCBFaW5nYWJlZmVsZC4gU2llIGsmb3VtbDtubmVuIGRpZSBMJmF1bWw7bmdlIGRlciBlaWdlZ2ViZW5lbiBaZWljaGVuIHcmYXVtbDtobGVuIHVuZCB2ZXJzY2hpZWRlbmUgVmFsaWRpZXJ1bmdzZnVua3Rpb25lbiBhdWYgZGllc2UgRmVsZCBhbndlbmRlbi48L2xpPg0KICAgIDxsaT5UZXh0YmVyZWljaC4gRGllcyBpc3QgZWluIGdybyZzemxpZztlcyBmb3JtZnJlaWVzIFRleHRlaW5nYWJlZmVsZC48L2xpPg0KICAgIDxsaT5DaGVja2JveC4gRGFzIGlzdCBkaWUgU3RhbmRhcmQgQ2hlY2tib3guPC9saT4NCiAgICA8bGk+Q2hlY2tib3ggR3J1cHBlLiBEYXMgaXN0IGVpbmUgU2FtbWx1bmcgdm9uIENoZWNrYm94ZW4uIERlciBlaW56aWdlIFVudGVyc2NoaWVkIGJlc3RlaHQgZGFyaW4sIGRhc3MgZGllcyBlaW5lIEdydXBwZSB2b24gQ2hlY2tib3hlbiBtaXQgZWluZW0gTmFtZW4gaXN0LiBXZWl0ZXJoaW4gayZvdW1sO25uZW4gU2llIGVpbmVuIG9kZXIgbWVocmVyZSBhbHMgJnF1b3Q7d2lyZCBiZW4mb3VtbDt0aWd0JnF1b3Q7IG1hcmtpZXJlbi4gU29taXQgaXN0IGRlciBOdXR6ZXIgJnF1b3Q7Z2V6d3VuZ2VuJnF1b3Q7IGVpbmUgb2RlciBtZWhyZXJlIENoZWNrYm94ZW4gZGllc2VyIEdydXBwZSBhdXN6dXcmYXVtbDtobGVuLjwvbGk+DQogICAgPGxpPlJhZGlvIEJ1dHRvbiBHcnVwcGUuIERhcyBpc3QgZWluZSBTYW1tbHVuZyB2b24gUmFkaW8gQnV0dG9ucy4gTnVyIGVpbiBSYWRpbyBCdXR0b24gaW4gZGVyIEdydXBwZSBrYW5uIGF1c2dldyZhdW1sO2hsdCB3ZXJkZW4uPC9saT4NCiAgICA8bGk+UHVsbGRvd24uIERhcyBpc3QgZWluIFN0YW5kYXJkIFB1bGxkb3duIE1lbiZ1dW1sOy4gVm9tIEtvbnplcHQgaGVyIGdlc2VoZW4gZGFzIGdsZWljaGUgd2llIGRpZSBSYWRpbyBCdXR0b24gR3J1cHBlLCBhYmVyIGJlc3NlciB3ZW5uIFNpZSB2aWVsZSBBdXN3YWhsbSZvdW1sO2dsaWNoa2VpdGVuIGhhYmVuLjwvbGk+DQogICAgPGxpPk1laHJmYWNoYXVzd2FobC4gRGFzIGlzdCBkYXMgTWVocmZhY2hhdXN3YWhsIEZlbGQuIFZvbSBLb256ZXB0IGhlciBnZXNlaGVuIGRhcyBnbGVpY2hlIHdpZSBkaWUgUmFkaW8gQnV0dG9uIEdydXBwZSwgYWJlciBiZXNzZXIgd2VubiBTaWUgdmllbGUgQXVzd2FobG0mb3VtbDtnbGljaGtlaXRlbiBoYWJlbiB1bmQgZGllIEF1c3dhaGwgYWJlciBiZWdyZW56ZW4gbSZvdW1sO2NodGVuLjwvbGk+DQoNCiAgICA8bGk+QnVuZGVzc3RhYXQuIERpZXMgaXN0IGVpbmUgUHVsbGRvd24gTGlzdGUgbWl0IHMmYXVtbDttdGxpY2hlbiBCdW5kZXNzdGFhdGVuIGRlciBVU0EuPC9saT4NCjxsaT5MJmF1bWw7bmRlci4gRGllcyBpc3QgZWluZSBQdWxsZG93biBMaXN0ZSBzJmF1bWw7bXRsaWNoZXIgc2ljaCBhdWYgZGVyIEVyZGUgYmVmaW5kbGljaGVuIEwmYXVtbDtuZGVyLjwvbGk+DQo8bGk+RGF0dW1zYXVzd2FobC4gRGllcyBpc3QgZWluZSBkcmVpZmFjaCBQdWxsZG93biBMaXN0ZSwgZGllIGRlbSBOdXR6ZXIgZGllIE0mb3VtbDtnbGljaGtlaXQgZ2lidCBlaW4gRGF0dW0gYXV6dXcmYXVtbDtobGVuLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5FbWFpbC1zcGV6aWZpc2NoZSBFaW5nYWJlZmVsZGVyDQogIDx1bD4NCiAgICA8bGk+RW1haWwgVm9uICBBZHJlc3MgRmVsZC4gSGllciBrJm91bWw7bm5lbiBTaWUgSWhyZSBFbWFpbGFkcmVzc2UgZWluZ2ViZW4uIERpZXNlIHdpcmQgaW4gZGVyIGdlbmVyaWVydGVuIEVtYWlsIGltIEZlbGQgVm9uIChNYWlsYWRyZXNzZSk6IGFuZ2VnZWJlbi48L2xpPg0KICAgIDxsaT5FbWFpbCBWb24gTmFtZSBGZWxkLiBIaWVyIGsmb3VtbDtubmVuIFNpZSBJaHJlbiBOYW1lbiBlaW5nZWJlbi4gRGllc2Ugd2lyZCBpbiBkZXIgZ2VuZXJpZXJ0ZW4gRW1haWwgaW0gRmVsZCBOYW1lIChBYnNlbmRlcm5hbWUpOiBhbmdlZ2ViZW4uPC9saT4NCg0KPC91bD48L2xpPg0KDQo8bGk+S29udHJvbGxmZWxkZXIgZiZ1dW1sO3IgZGllIEFuemVpZ2U8dWw+DQo8bGk+U2VpdGVudW1icnVjaCAtIGRhcyBlcm0mb3VtbDtnbGljaHQgSWhuZW4gZGllIEF1ZnRlaWx1bmcgSWhyZXMgRmVlZGJhY2stRm9ybXVsYXJzIGluIG1laHJlcmUgU2VpdGVuLiBEaWUgRWluZ2FiZW4gamVkZXIgU2VpdGUgd2VyZGVuDQp1bmFiaCZhdW1sO25naWcgdm9uZWluYW5kZXIgZ2VwciZ1dW1sO2Z0LiBEYXMgaXN0IGluc2Jlc29uZGVyZSBiZWkgT25saW5lLVVtZnJhZ2VuICZhdW1sO3Umc3psaWc7ZXJzdCB2b3J0ZWlsaGFmdC48L2xpPg0KPGxpPi1TdGF0aXNjaGVyIFRleHQuIERhbWl0IGsmb3VtbDtubmVuIFNpZSBJaHJlbSBGb3JtdWxhciBlaW5mYWNoZW4gVGV4dCBoaW56dWYmdXVtbDtnZW4gb2RlciBlcyBiZXNjaHJpZnRlbi4gRGllcyBpc3QgZiZ1dW1sO3IgQXVzZiZ1dW1sO2xsaGlud2Vpc2UsIEhpbGZlbiB1c3cuIHNlaHIgbiZ1dW1sO3R6bGljaCwgaW5zYmVzb25kZXJlIHdlbm4gU2llIGYmdXVtbDtyIGRpZSBBbnplaWdlIGRlcyBGb3JtdWxhcnMga2VpbiBhbmdlcGFzc3RlcyBUZW1wbGF0ZSB2ZXJ3ZW5kZW4uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm11bGFyICYjMDM5O0hhbmRsaW5nJiMwMzk7DQogIDx1bD4NCiAgICA8bGk+KkVtYWlsIEVyZ2VibmlzIGJhc2llcmVuZCBhdWYgZGVtIFB1bGxkb3duLiBEaWVzIGlzdCBoaWxmcmVpY2ggZiZ1dW1sO3IgSW50ZXJuZXRzZWl0ZW4gd28gS29tbWVudGFyZSAmdXVtbDtiZXIgZGllIEFuZ2VsZWdlbmhlaXQgaW4gZGVuIEJldHJlZmYgZ2VzY2hyaWViZW4gd2VyZGVuLiB6LkIuIEJ1Z3Mgd2VyZGVuIHp1bSBFbnR3aWNrbGVyIGdlc2VuZGV0LCBNYXJrZXRpbmcgRnJhZ2VuIHp1IGVpbmVyIFBlcnNvbiwgRnJhZ2VuIHp1bSBWZXJrYXVmIHp1IGVpbmVyIGFuZGVyZW4gUGVzb24gdXN3LiBEYXMgUHVsbGRvd24gTWVuJnV1bWw7IHdpcmQgbWl0IEJldHJlZmZzIGhpbnRlcmxlZ3QgdW5kIGplZGVyIHdpcmQgenUgZWluZXIgc3BlemlmaXNjaGVuIE1haWxhZHJlc3NlIHZlcnNhbmR0LiBTaWUgZXJzdGVsbGVuIGRlbiBqZXdlaWxpZ2VuIEJldHJlZmYgd2VubiBTaWUgZWluIHNvbGNoZXMgRmVsZCBlcnN0ZWxsZW4gb2RlciBlZGl0aWVyZW4uIFdlbm4gU2llIGVpbiBzb2xjaGVzIFB1bGxkb3duIE1lbiZ1dW1sOyBiZW51dHplbiwgbXVzcyBkZXIgTnV0emVyIGVpbmUgQXVzd2FobCBkZXMgQmV0cmVmZnMgdyZhdW1sO2hsZW4gdW0gZGFzIEZvcm11bGFyIGFic2NoaWNrZW4genUgayZvdW1sO25uZW4uIERpZXNlcyBBdXN3YWhsZmVsZCBpc3QgZiZ1dW1sO3IgZGVuIE51dHplciBzaWNodGJhciBhYmVyIGRpZSBNYWlsYWRyZXNzZW4gZGllIGRhaGludGVyIHN0ZWhlbiB3ZXJkZW4gd2VkZXIgSWhtIG5vY2ggaW0gSFRNTCBhbmdlemVpZ3QuPC9saT4NCg0KICAgIDxsaT4qRW1haWwgRXJnZWJuaXMgYW4gQWRyZXNzZShuKSBzZW5kZW4uIERpZXMgc2VuZGV0IGRpZSBEYXRlbiBhbiBlaW5lIHZvcmhlciBhbmdlZ2ViZW5lIE1haWxhZHJlc3NlLiBEaWUgTWFpbGFkcmVzc2UobikgayZvdW1sO25uZW4gU2llIGFuZ2ViZW4gd2VubiBTaWUgZWluIHNvbGNoZXMgRmVsZCBnZW5lcmllcmVuLiBEYXMgRmVsZCB1bmQgZGVyIE5hbWUgaXN0IGYmdXVtbDtyIGRlbiBOdXR6ZXIgbmljaHQgc2ljaHRiYXIuIEF1Y2ggbmljaHQgaW0gUXVlbGx0ZXh0LjwvbGk+DQogICAgPGxpPipEYXRlbiBpbiBEYXRlbmJhbmsgc3BlaWNoZXJuLiBEaWVzIHNwZWljaGVydCBkaWUgYWJnZWdlYmVuZW4gRGF0ZW4gaW4gZWluZXIgaW50ZXJuZW4gRGF0ZW5iYW5rLiBEaWVzZSBFaW5zdGVsbHVuZyB2ZXJ3ZW5kZW4gU2llIG1laXN0ZW4gaW4gVmVyYmluZHVuZyBtaXQgZGVtIE1vZHVsIEZvcm1Ccm93c2VyLjwvbGk+DQogICAgPGxpPipWYWxpZGllcnVuZyAmdXVtbDtiZXIgZGllIE1haWxhZHJlc3NlLiBEaWVzIGlzdCBlaW4gc2VociBsZWlzdHVuZ3NmJmF1bWw7aGlnZXMgRmVsZC4gRXMgc3RlbGx0IGRlbSBCZW51dHplciBlaW4gdm9yZ2VnZWJlbmVzIEVpbmdhYmVmZWxkIGYmdXVtbDtyIHNlaW5lIE1haWxhZHJlc3NlIHp1ciBWZXJmJnV1bWw7Z3VuZy4gV2VubiBkaWVzZXIgZGFzIEZvcm11bGFyIGFic2NoaWNrdCB3aXJkIGRpZSAmVXVtbDtiZXJtaXR0bHVuZyBuaWNodCBkaXJla3QgYXVzZ2VmJnV1bWw7aHJ0LCBzb25kZXJuIHNjaGlja3QgZGVtIE51dHplciBlaW5lIE1haWwgbWl0IGVpbmVtIGNvZGllcnRlbiBMaW5rLiBFcnN0IHdlbm4gZGllc2VyIExpbmsgZ2VkciZ1dW1sO2NrdCB3aXJkIHdpcmQgZGFzIEZvcm11bGFyIHZhbGlkaWVydCB1bmQgZGllIEVpbmdhYmVuIGFiZ2VzY2hpY2t0LjwvbGk+DQogICAgPGxpPipJbiBEYXRlaSBTY2hyZWliZW4uIERpZXNlIE9wdGlvbiBncmVpZnQgZGllIERhdGVuIGFiIHVuZCBzY2hyZWlidCBzaWUgaW4gZWluZSBUZXh0ZGF0ZWkuIFNpZSBrJm91bWw7bm5lbiBkZW4gTmFtZW4gdW5kIGRhcyBEYXRlaWZvcm1hdCBiZXN0aW1tZW4uIERpZXNlIERhdGVpZW4gd2VyZGVuIGluIGRhcyBBdXNnYWJldmVyemVpY2huaXMgZGVzIE1vZHVsIEluc3RhbGxhdGlvbnMgVmVyemVpY2huaXNzZXMgZ2VzY2hyaWViZW4uIFZvcnJhdXNnZXNldHp0IGlzdCwgZGFzcyBkZXIgU2VydmVyIGRpZSBub3R3ZW5kaWdlbiBTY2hyZWlicmVjaHRlIHZlcmdlYmVuIGhhdC4NCiAgICA8L3VsPjwvbGk+PC9saT48L3VsPg0KDQo8aDM+VGVtcGxhdGVzIGYmdXVtbDtyIEVtYWlsIHVuZCBlaW5mYWNoZSBEYXRlaWVuPC9oMz4NCjxwPk1hbiBkaXNwb3NpdGlvbiB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGEgdGVtcGxhdGUgZm9yIHRoZSBlbWFpbCB0aGF0IGlzIGdlbmVyYXRlZCwgb3IgZm9yIHRoZSB3YXkgdGhlIHJlc3VsdHMgYXJlIHdyaXR0ZW4gdG8gYSBmaWxlLiBXZW5uIFNpZSBzZWxic3Qga2VpbiBUZW1wbGF0ZSBlcnN0ZWxsZW4gd29sbGVuLCB3aXJkIEZvcm1CdWlsZGVyIGRpZSBuYWNoIHNlaW5lciBFaW5zY2gmYXVtbDt0enVuZyBiZXN0ZSBMJm91bWw7c3VuZyB2ZXJ3ZW5kZW4sIGRpZSBzbyBmdW5rdGlvbmllcnQsIHdpZSBTaWUgd29sbGVuIG9kZXIgYXVjaCBuaWNodC4gU2llIGsmb3VtbDtubmVuIGplZGVyemVpdCBhdWYgJnF1b3Q7RWluIE11c3Rlci1UZW1wbGF0ZSBlcnN0ZWxsZW4mcXVvdDsga2xpY2tlbiB1bmQgZGFubiBkaWUgRXJnZWJuaXNzZSBhbnBhc3Nlbi48L3A+DQo8cD5CZWFjaHRlbiBTaWUsIGRhc3MgbmV1IGhpbnp1Z2VmJnV1bWw7Z3RlIEZlbGRlciBuaWNodCBtZWhyIGF1dG9tYXRpc2NoIGRlbSBUZW1wbGF0ZSBoaW56dWdlZiZ1dW1sO2d0IHdlcmRlbiwgd2VubiBlcyBlaW5tYWwgZ2UmYXVtbDtuZGVydCB3dXJkZS4gQXVzIGRpZXNlbSBHcnVuZCBpc3QgZXMgZGFzIEJlc3RlLCB3ZW5uIFNpZSBlcnN0IHp1bSBTY2hsdXNzIGRhcyBUZW1wbGF0ZSBmJnV1bWw7ciBkYXMgRm9ybXVsYXIgZXJzdGVsbGVuLjwvcD4NCg0KPGgzPkJla2FubnRlIFByb2JsZW1lPC9oMz4NCjx1bD4NCjxsaT5FaW5pZ2UgRmVsZHR5cGVuLCBkaWUgaW0gRmVlZGJhY2tGb3JtLU1vZHVsIGVudGhhbHRlbiB3YXJlbiwgc2luZCBpbiBGb3JtQnVpbGRlciBuaWNodCBpbXBsZW1lbnRpZXJ0LiBXZW5uIGVpbiBCZWRhcmYgZiZ1dW1sO3IgZGllc2UgRmVsZGVyIHZvcmhhbmRlbiBpc3QsIHdlcmRlIGljaCBzaWUgaGluenVnZWYmdXVtbDtnZW4uPC9saT4NCjxsaT5EYXMgRm9ybUJ1aWxkZXItTW9kdWwga2FubiBnZWdlbncmYXVtbDtydGlnIG5vY2ggbmljaHQgYXVmIGRpZSBEYXRlbiBkZXMgRnJvbnRlbmRVc2Vycy1Nb2R1bHMgenVncmVpZmVuLiBEaWVzIGlzdCBhYmVyIGdlcGxhbnQuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciB1bnRlcnN0JnV1bWw7dHp0IGdlZ2VudyZhdW1sO3J0aWcgbm9jaCBrZWluZSBQcmV0dHkgVVJMcywgZGllcyBzb2xsdGUgamVkb2NoIGtlaW4gUHJvYmxlbSBzZWluLCBkYSBkaWUgQXVzZ2FiZW4gQmVudXR6ZXJzZWl0ZSBzZWhyIGVpbmZhY2ggZ2VoYWx0ZW4gaXN0LjwvbGk+DQo8L3VsPg0KDQo8aDM+RmVobGVyc3VjaGU8L2gzPg0KPG9sPjxsaT4gQWxzIGVyc3RlcyBzb2xsdGVuIFNpZSBwciZ1dW1sO2Zlbiwgb2IgU2llIENNU21zIGluIGVpbmVyIFZlcnNpb24gPiAxLjAgdmVyd2VuZGVuLjwvbGk+DQo8bGk+IEltIHp3ZWl0ZW4gU2Nocml0dCBzb2xsdGVuIFNpZSBkaWUgUHJvYmxlbWUgYmVpIGRlciBWZXJ3ZW5kdW5nIHZvbiBXWVNJV1lHLUVkaXRvcmVuIGltIEFic2Nobml0dA0KIDxlbT5FaW4gRm9ybXVsYXIgZWluZXIgU2VpdGUgaGluenVmJnV1bWw7Z2VuPC9lbT4gbGVzZW4gdW5kIHZlcnN0ZWhlbi48L2xpPg0KPGxpPldlbm4gU2llIGluIGVpbmVyIHZvbiBGb3JtQnVpbGRlciBnZW5lcmllcnRlbiBFbWFpbCBiZXN0aW1tdGUgRmVsZGVyIHZlcm1pc3NlbiwgJnV1bWw7YmVycHImdXVtbDtmZW4gU2llLCBvYiBkaWUgRmVsZGVyIGltIFRlbXBsYXRlIGVudGhhbHRlbiBzaW5kLCB1bmQgc3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIFNpZSBkaWUgZmVobGVuZGVuIEZlbGRlciBhdWNoIHRhdHMmYXVtbDtjaGxpY2ggZGVmaW5pZXJ0IGhhYmVuLiBBdWNoIHdlbm4gZXMgbmljaHQga2xhciBlcnNpY2h0bGljaCBzY2hlaW50LCBrYW5uIGVzIGR1cmNoYXVzIG51ciBlaW4gZ2FueiBlaW5mYWNoZXIgRmVobGVyIHNlaW4uPC9saT4NCjxsaT4gVmVyc3VjaGVuIFNpZSwgYXVmIExpbmtzIHVuZCBJY29ucyB6dSBrbGlja2VuIHVuZCBiZW9iYWNodGVuIGdlbmF1LCB3YXMgcGFzc2llcnQuPC9saT4NCjxsaT4gRGllIGxldHp0ZSBNJm91bWw7Z2xpY2hrZWl0IGlzdCwgbWlyIGRhcyBQcm9ibGVtIHBlciBFbWFpbCBtaXR6dXRlaWxlbiBvZGVyIG1pY2ggaW0gSVJDLUNoYXQgYW56dXNwcmVjaGVuLCBkYW1pdCB3aXIgZGFzIFByb2JsZW0gZ2VtZWluc2FtIGJlaGViZW4uPC9saT4NCjwvb2w+IA0KPHA+RGllcyBpc3QgZWluZSBzZWhyIGZyJnV1bWw7aGUgVmVyc2lvbiwgZWluIHVuZ2V0ZXN0ZXRlcyBCZXRhLVJlbGVhc2UsIHVuZCBzZWhyIHdhaHJzY2hlaW5saWNoIGlzdCBlcyBmZWhsZXJoYWZ0LiBPYndvaGwgaWNoIGFsbGVzIGdldGFuIGhhYmUsIHdhcyBpY2gga29ubnRlLCANCnVtIHNpY2hlcnp1c3RlbGxlbiwgZGFzcyBzaWNoIGtlaW5lIGdyJm91bWw7JnN6bGlnO2VyZW4gJnF1b3Q7V2FuemVuJnF1b3Q7IGVpbmdlc2NobGljaGVuIGhhYmVuLCBtdXNzdGUgaWNoIHcmYXVtbDtocmVuZCBkZXMgVGVzdGVucyBmZXN0c3RlbGxlbiwgZGFzcyBkYXMgUHJvZ3JhbW0gDQpzaWViZW4gS2FrZXJsYWtlbiwgendlaSBPaHJ3JnV1bWw7cm1lciwgZWluZSBrbGVpbmUgRmFtaWxpZSB2b24gQmxhdHRsJmF1bWw7dXNlbiB1bmQgZWluZSBXYW5kZXJzdGFiaGV1c2NocmVja2UgZW50aGllbHQuIFNpZSBmcmEmc3psaWc7ZW4gYXVjaA0KTmFjaGJhcnMgYiZvdW1sO3NlbiBrbGVpbmVuIGtsJmF1bWw7ZmZlbmRlbiBIdW5kLCB3b2YmdXVtbDtyIGljaCB1bmVuZGxpY2ggZGFua2JhciB3YXIuPC9wPg0KPHA+RGFzIGZpbmFsZSBSZWxlYXNlIHdpcmQgQnVnZml4ZXMsIGVpbmUgRG9rdW1lbnRhdGlvbiB1bmQgdW5iZWRpbmd0ZSBMaWViZSBlbnRoYWx0ZW4uPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+RGllc2VzIE1vZHVsIGJlaW5oYWx0ZXQga2VpbmVuIGtvbW1lcnppZWxsZW4gU3VwcG9ydC4gU2llIGsmb3VtbDtubmVuIGplZG9jaCAmdXVtbDtiZXIgZGllIGZvbGdlbmRlIFdlZ2UgSGlsZmUgenUgZGVtIE1vZHVsIGVyaGFsdGVuOjwvcD4NCjx1bD4NCjxsaT5GJnV1bWw7ciBkaWUgbGV0enRlIFZlcnNpb24gZGllc2VzIE1vZHVscywgRkFRcywgZGVtIFZlcnNhbmQgZWluZXMgRmVobGVycmVwb3J0cyBvZGVyIGRlbSBLYXVmIGtvbW1lcnppZWxsZW4gU3VwcG9ydCBiZXN1Y2hlbiBzaWUgYml0dGUgY2FsZ3V5cyBIb21lcGFnZSB1bnRlciA8YSBocmVmPSJodHRwOi8vdGVjaGNvbS5keW5kbnMub3JnIj50ZWNoY29tLmR5bmRucy5vcmc8L2E+LjwvbGk+DQo8bGk+RWluZSB3ZWl0ZXJlIERpc2t1c3Npb24genUgZGllc2VtIE1vZHVsIGlzdCBhdWNoIGluIGRlbiBGb3JlbiB2b24gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGU8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkRlciBBdXRvciBjYWxndXkxMDAwLCBpc3QgaCZhdW1sO3VmaWcgaW0gPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+IHp1IGZpbmRlbi48L2xpPg0KPGxpPkxldHp0bGljaCBlcnJlaWNoZW4gU2llIGRlbiBBdXRvciBhdWNoICZ1dW1sO2JlciBlaW5lIGRpcmVrdGUgRW1haWwuPC9saT4gIA0KPC91bD4NCjxwPk5hY2ggZGVyIEdQTCB3aXJkIGRpZXNlIFNvZnR3YXJlIHNvIHZlciZvdW1sO2ZmZW50bGljaHQsIHdpZSBzaWUgaXN0LiBCaXR0ZSBsZXNlbiBTaWUgZGVuIExpemVuenRleHQgZiZ1dW1sO3IgZGVuIHZvbGxlbiBIYWZ0dW5nc2F1c3NjaGx1c3MuPC9wPg0KPGgzPkNvcHlyaWdodCB1bmQgTGl6ZW56PC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNiwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbGUgUmVjaHRlIHZvcmJlaGFsdGVuLjwvcD4NCjxwPkRpZXNlcyBNb2R1bCB3dXJkZSB1bnRlciBkZXIgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+IHZlciZvdW1sO2ZmZW50bGljaHQuIFNpZSBtJnV1bWw7c3NlbiBkaWVzZXIgTGl6ZW56IHp1c3RpbW1lbiwgYmV2b3IgU2llIGRhcyBNb2R1bCB2ZXJ3ZW5kZW4uPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjUuMy4gMjYgTWF5IDA4LiBCdWdmaXhlcyB0byBwcmV2aW91cyBzZXQgb2YgYnVnZml4ZXMuIE5vdyByZWFkeSBmb3IgbWFqb3IgdXBncmFkZXMgZm9yIDAuNi48L2xpPg0KPGxpPlZlcnNpb24gMC41LjIuIDI1IE1heSAwOC4gQnVnZml4ZXMuIFJlbGVhc2UgaW4gcHJlcGFyYXRpb24gZm9yIHN1YnN0YW50aWFsIHJld29ya2luZyBmb3IgMC42PC9saT4NCjxsaT5WZXJzaW9uIDAuNS4xLiAzMCBBcHJpbCAwOC4gQnVnZml4ZXMsIHJld3JvdGUgc29tZSBvZiB0aGUgRmlsZSBVcGxvYWQgY29kZSB0byBwcmV2ZW50IHdoaXRlIHNjcmVlbiBvZiBhbm5veWFuY2UuPC9saT4NCjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4nOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnU2luIENvbmZpZ3VyYXIgVGlwbyBkZSBDYW1wbyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY2Npb25hciB1bm8gKG8gbWFzKSBpdGVtcyBkZSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW4gZGUgRmllbGRzZXQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUNvbWllbnpvIGRlIEZpZWxkc2V0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnRW50cmFkYSBkZSBUZXh0byc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdFbnRyYWRhIGRlIFRleHRvIChNJnVhY3V0ZTtsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJyZBYWN1dGU7cmVhIGRlIFRleHRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NhamEgZGUgVGlsZGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwbyBDYWphcyBkZSBUaWxkZSc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnU2VsZWN0b3IgRXN0YWRvcyBkZSBVLlMuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1NlbGVjY2lvbmFkb3IgZGUgcHJvdmluY2lhIENhbmFkaWVuc2UnOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBQYWlzZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBGZWNoYXMnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlY3RvciBkZSBIb3Jhcyc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBvIEJvdCZvYWN1dGU7bmVzIGRlIFJhZGlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbnZpYXIgRW1haWwgZGUgUmVzdWx0YWRvcyBCYXNhZG8gZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgYSBBcmNoaXZvIEJhc2FkbyBlbiBEZXNwbGVnYWJsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqR3VhcmRhciBSZXN1bHRhZG9zIGEgQXJjaGl2byhzKSBCYXNhZG8ocykgZW4gTSZ1YWN1dGU7bHRpcGxlIFNlbGVjY2lvbmVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjY2lvbmFyIGEgUCZhYWN1dGU7Z2luYSBCYXNhZGEgZW4gRGVzcGxlZ2FibGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVudmlhciBFbWFpbCBkZSBSZXN1bHRhZG9zIGEgRGlyZWNjaSZvYWN1dGU7bihlcykgQ29uZmlndXJhZGFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGFyLXZpYS1EaXJlY2NpJm9hY3V0ZTtuIEVtYWlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqQ2FtcG8gRW1haWwgJnF1b3Q7RGUgRGlyZWNjaSZvYWN1dGU7biZxdW90OywgeSBlbnZpYXIgY29waWEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqRXNjcmliaXIgUmVzdWx0YWRvcyBhIEFyY2hpdm8gUGxhbm8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKkd1YXJkYXIgUmVzdWx0YWRvcyBlbiBCYXNlIGRlIERhdG9zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypHdWFyZGFyIFJlc3VsdGFkb3MgcGFyYSBNb2R1bG8gRm9ybUJyb3dzZXIgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkxsYW1hciBhIHVuYSBUYWcgZGVmaW5pZGEgcG9yIFVzdWFyaW8gY29uIGxvcyBSZXN1bHRhZG9zIGRlbCBGb3JtJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbnZpYXIgRW1haWwgYSBEaXJlY2Npb24gRW1haWwgU3VtaW5pc3RyYWRhIHBvciBVc3VhcmlvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbnZpYXIgRW1haWwgYSBVc3VhcmlvIEFkbWluaXN0cmF0aXZvIGRlIENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUNvcnRlIGRlIFAmYWFjdXRlO2dpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdTdWJpciBBcmNoaXZvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnQ2FtcG8gRW1haWwgJnF1b3Q7RGVzZGUgRGlyZWNjaSZvYWN1dGU7biZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnQ2FtcG8gRW1haWwgJnF1b3Q7RGUgRGlyZWNjaSZvYWN1dGU7biZxdW90OyBkZSBudWV2byc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0Rlc2RlIE5vbWJyZSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0NhbXBvIEVtYWlsICZxdW90O0FzdW50byZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZXh0byBFc3QmYWFjdXRlO3RpY28nOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctRW5sYWNlIEVzdCZhYWN1dGU7dGljbyc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0VubGFjZSAoRW50cmFkbyBwb3IgVXN1YXJpbyknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1DYW1wbyBPY3VsdG8nOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNhbXBvIENvbXB1dGFkbyc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1OdW1lcm8gZW50ZXJvIHVuaWNvIChzZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ1NpbiBWYWxpZGFyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bSZlYWN1dGU7cmljbyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdFbnRlcm8nOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICdOJnVhY3V0ZTttZXJvIGRlIFRlbCZlYWN1dGU7Zm9ubyAoVVNBKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZWJlIENoZXF1ZWFyc2UnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ0lndWFsYSBFeHByZXNpJm9hY3V0ZTtuIFJlZ3VsYXInOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTm8gSWd1YWxhIEV4cHJlc2kmb2FjdXRlO24gUmVndWxhcic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnTm8gc2UgaW5kaWMmb2FjdXRlOyBlbCB2YWxvciBwYXJhIHVuIGNhbXBvIHJlcXVlcmlkbyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnUG9yIGZhdm9yIGluZ3Jlc2UgdW4gbiZ1YWN1dGU7bWVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuYSBlbnRyYWRhIHYmYWFjdXRlO2xpZGEgcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIGVudGVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuYSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIHYmYWFjdXRlO2xpZGEgcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnTGEgZGlyZWNjaSZvYWN1dGU7biBkZSBFbWFpbCBubyBjb2luY2lkZSBjb24gbGEgZGUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQb3IgZmF2b3IgaW5ncmVzZSB1biBuJnVhY3V0ZTttZXJvIGRlIHRlbCZlYWN1dGU7Zm9ubyB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJmlleGNsOyZxdW90OyVzJnF1b3Q7IG5vIHBhcmVjZSBzZXIgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZW1haWwgdiZhYWN1dGU7bGlkYSEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BvciBmYXZvciBpbmdyZXNlIHVuIHZhbG9yIHF1ZSBubyB0ZW5nYSBtJmFhY3V0ZTtzIGRlICVzIGNhcmFjdGVyZXMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhY3RlciBhIHV0aWxpemFyIGNvbW8gZGVsaW1pdGFkb3IgZW4gcmVzdWx0YWRvcyBxdWUgb2ZyZWNlbiBtJmFhY3V0ZTtzIGRlIHVuIHZhbG9yJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdVc3RlZCBuZWNlc2l0YSB0ZW5lciBlbCBwZXJtaXNvICZxdW90OyVzJnF1b3Q7IHBhcmEgcmVhbGl6YXIgbGEgb3BlcmFjaSZvYWN1dGU7bi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICcmaWV4Y2w7UGVyZCZvYWN1dGU7biEgUGVybyB1c3RlZCBubyB0aWVuZSBwcml2aWxlZ2lvcyBhZGVjdWFkb3MgcGFyYSBpbmdyZXNhciBhICZlYWN1dGU7c3RhIHNlY2NpJm9hY3V0ZTtuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnU2UgYWN0dWFsaXomb2FjdXRlOyBlbCBvcmRlbiBkZSBsb3MgY2FtcG9zLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWxhcmlvIGVsaW1pbmFkby4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0NhbXBvIGVsaW1pbmFkby4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24gQWN0dWFsaXphZGEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnRGViZSBjb250cm9sYXIgYSAmcXVvdDslcyZxdW90OyBwYXJhIHBvZGVyIGNvbnRpbnVhci4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJyZpZXhjbDtEZWJlIGluZGljYXIgYWwgbWVub3MgdW5hIGRpcmVjY2kmb2FjdXRlO24gZGUgZGVzdGlubyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnJmlleGNsO0VzdCZhYWN1dGU7IHNlZ3VybyBxdWUgcXVpZXJlIGVsaW1pbmFyIGVsIGZvcm11bGFyaW8gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICcmaWV4Y2w7RXN0JmFhY3V0ZTsgc2VndXJvIHF1ZSBxdWllcmUgZWxpbWluYXIgZWwgY2FtcG8gJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0xhcyBvcGNpb25lcyBhdmFuemFkYXMgbm8gZXN0JmFhY3V0ZTtuIGRpc3BvbmlibGVzIGhhc3RhIHF1ZSBubyBzZSBoYXlhIGZpamFkbyBlbCB0aXBvIGRlIGNhbXBvLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0VsIG5vbWJyZSBkZSBjYW1wbyAmcXVvdDslcyZxdW90OyB5YSBlc3QmYWFjdXRlOyBlbiB1c28uIFBvciBmYXZvciB1c2Ugbm9tYnJlcyBkZSBjYW1wb3MgJnVhY3V0ZTtuaWNvcywgbyBkZXNoYWJpbGl0ZSBub21icmVzIGRlIGNhbXBvcyAmdWFjdXRlO25pY29zIGVuIGxhIGNvbmZpZ3VyYWNpJm9hY3V0ZTtuIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcy4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0xvcyBjYW1wb3MgZGViZW4gdGVuZXIgbm9tYnJlLCBzYWx2byBxdWUgbG8gZGVzaGFiaWxpdGUgZW4gbGEgY29uZmlndXJhY2kmb2FjdXRlO24gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbiZvYWN1dGU7bmltbyc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTG9uZzogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBjYWphcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3BjaW9uZXMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjYXJhY3QuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkZW4nOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbc2luIGVzcGVjaWZpY2FyXSc7CiRsYW5nWydhZGRlZCddID0gJ2FncmVnYWRvJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICdhY3R1YWxpemFkbyc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRlbmFyIG9wY2lvbmVzIGFsIHNhbGlyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdFbGVnaXIgVW5vJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnRWxlZ2lyIFRpcG8nOwokbGFuZ1sndG8nXSA9ICdBJzsKJGxhbmdbJ3llcyddID0gJ1NpJzsKJGxhbmdbJ25vJ10gPSAnTm8gJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNlcHRvcmVzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBhcmNoaXZvcyBwb3NpYmxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3Rpbm9zJzsKJGxhbmdbJ3NhdmUnXSA9ICdHdWFyZGFyJzsKJGxhbmdbJ2FkZCddID0gJ0FncmVnYXInOwokbGFuZ1sndXBkYXRlJ10gPSAnQWN0dWFsaXphcic7CiRsYW5nWydzYXZlX2FuZF9jb250aW51ZSddID0gJ0d1YXJkYXIgeSBDb250aW51YXIgRWRpdGFuZG8nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hY2kmb2FjdXRlO24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b20mYWFjdXRlO3RpY28nOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWxhcmlvcyc7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsYXJpbyAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhY2kmb2FjdXRlO24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0VzdGFkbyBkZSBjYW1wbyByZXF1ZXJpZG8gYWN0dWFsaXphZG8uJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gTSZhYWN1dGU7eC4nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbmNpb25lcyc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVGlwb3MgZGUgYXJjaGl2b3MgcGVybWl0aWRvcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJyZpZXhjbDtBcmNoaXZvIHN1YmlkbyBlcyBtdXkgZ3JhbmRlISBUYW1hJm50aWxkZTtvIG0mYWFjdXRlO3guIGVzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0VzdGUgdGlwbyBkZSBhcmNoaXZvIG5vIHB1ZWRlIHNlciBzdWJpZG8uIFBvciBmYXZvciBjb250cm9sYXIgcXVlIGxhIGV4dGVuc2kmb2FjdXRlO24gZXMgY29ycmVjdGEuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1N1YmlyJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcmlvIEltcG9ydGFkby4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnJmlleGNsO0ZhbGwmb2FjdXRlOyBsYSBpbXBvcnRhY2kmb2FjdXRlO24gZGVsIGZvcm11bGFyaW8hIE5vIGhheSBwcm9ibGVtYSBjb24gZWwgZm9ybWF0byBkZWwgYXJjaGl2byBYTUwuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyBmaWxhcyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgY29sdW1uYXMnOwokbGFuZ1snMTJfaG91ciddID0gJ1JlbG9qIGRlIDEyIEhvcmFzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICdSZWxvaiBkZSAyNCBIb3Jhcyc7CiRsYW5nWydob3VyJ10gPSAnSG9yYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dG8nOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdvOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJyZpZXhjbDtHcmFjaWFzISBTZSByZWNpYmkmb2FjdXRlOyBzdSBlbnYmaWFjdXRlO28uJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0YXInOwokbGFuZ1snZGVsZXRlJ10gPSAnRWxpbWluYXInOwokbGFuZ1snZGF5J10gPSAnRCZpYWN1dGU7YSc7CiRsYW5nWydtb24nXSA9ICdNZXMnOwokbGFuZ1sneWVhciddID0gJ0EmbnRpbGRlO28nOwokbGFuZ1snbm9uZSddID0gJyhuaW5ndW5vKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ00mb2FjdXRlO2R1bG8gZGVzaW5zdGFsYWRvLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdJbnN0YWxhZGEgdmVyc2kmb2FjdXRlO24gJXMgZGVsIG0mb2FjdXRlO2R1bG8uJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnU2UgYWN0dWFsaXpvIGVsIG0mb2FjdXRlO2R1bG8gYSBsYSB2ZXJzaSZvYWN1dGU7biAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVm9sdmVyLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdFbnZpYXIgRm9ybXVsYXJpbyc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51YXIuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZXF1ZWFkbyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdTaW4gY2hlcXVlYXInOwokbGFuZ1sndGFiX21haW4nXSA9ICdQcmluY2lwYWwnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0NvbmZpZ3VyYXIgVmlzdGEgZGVsIEZvcm0nOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0VudiZpYWN1dGU7byBkZWwgRm9ybXVsYXJpbyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NvbmZpZ3VyYWNpb25lcyBkZSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0NvbmZpZy4gQXZhbnphZGFzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1BsYW50aWxsYSBkZWwgRm9ybXVsYXJpbyc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEVudmlhZG8nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5MYXMgdmFyaWFibGVzIFNtYXJ0eSBzb24gdiZhYWN1dGU7bGlkYXMgZW4gZXN0ZSBjYW1wby48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FncmVnYXIgTSZhYWN1dGU7cyBPcGNpb25lcyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0VsaW1pbmFyIE9wY2lvbmVzIE1hcmNhZGFzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWdyZWdhciBNJmFhY3V0ZTtzIENhamFzIGRlIFRpbGRhcic7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0VsaW1pbmFyIENhamFzIGRlIFRpbGRhciBNYXJjYWRhcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FncmVnYXIgT3RyYSBEaXJlY2NpJm9hY3V0ZTtuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRWxpbWluYXIgRGlyZWNjaW9uZXMgTWFyY2FkYXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWdyZWdhciBPdHJvIERlc3Rpbm8nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRWxpbWluYXIgRGVzdGlub3MgTWFyY2Fkb3MnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdTZSBoYW4gZ2VuZXJhZG8gZGVtYXNpYWRvcyAgZW1haWxzIGRlc2RlIHN1IERpcmVjY2kmb2FjdXRlO24gSVAuIEMmb2FjdXRlO2RpZ28gQW50aS1TcGFtIGhhIHByZXZlbmlkbyBlbCBlbnYmaWFjdXRlO28uJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1NlIGludGVycnVtcGkmb2FjdXRlOyBlbnZpbyBzb3NwZWNoYWRvIHBvciBTcGFtIGRlc2RlIElQICVzLic7CiRsYW5nWydyZW9yZGVyJ10gPSAnUmVvcmRlbmFyIENhbXBvcyc7CiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWxhcic7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWxvciBjb25maWd1cmFkbzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1VuYSBleHByZXNpJm9hY3V0ZTtuIHJlZ3VsYXIgcGFyYSBwZXJtaXRpciBmaWx0cmFyIGl0ZW1zIGRlIENhdGFsb2dlciBwb3Igbm9tYnJlJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnQWx0dXJhIGRlbCBjYW1wbyBkZSBzZWxlY2NpJm9hY3V0ZTtuIG11bHRpcGxlJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYW1lIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdBbHR1cmEgZGUgY2FtcG8nOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnRGlyZWN0b3JpbyBEZXN0aW5vIGRlIGFyY2hpdm9zIGRlIHNhbGlkYSc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1RhZyBEZWZpbmlkYSBwb3IgVXN1YXJpbyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBhIGRvbmRlIHZvbHZlciBjb24gZW5sYWNlcyBzdWJpZG9zJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnRW52aWFkbyBjb24gZWwgY29uc3RydWN0b3IgZGUgZm9ybXVsYXJpb3MnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0NhdGVnb3ImaWFjdXRlO2EgZGUgc3ViaWRhcyc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ0VudmlhciBlc3RlIGFyY2hpdm8gYWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xleWVuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdMb25naXR1ZCBNJmFhY3V0ZTt4aW1hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXRpcXVldGEgZGUgQ2FqYSBkZSBUaWxkZSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0V0aXF1ZXRhIGRlIEJvdCZvYWN1dGU7biBkZSBSYWRpbyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3IgY3VhbmRvIHRpZW5lIHRpbGRlLic7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWxvciBjdWFuZG8gbm8gdGllbmUgdGlsZGUuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdEZXRhbGxlcyBkZSBHcnVwbyBkZSBDYWphIGRlIFRpbGRlJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJyZpcXVlc3Q7RWxpbWluYXI/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJ1RleHRvICZxdW90O0VsZWdpciBVbm8mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVmFsb3IgZGUgc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdOb21icmUgZGUgU2VsZWNjaSZvYWN1dGU7biBhIE1vc3RyYXInOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdBc3VudG8gZGUgU2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnU2VsZWNjaSZvYWN1dGU7biBwb3IgRGVmZWN0byc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1NlbGVjY2kmb2FjdXRlO24gcG9yIERlZmVjdG8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTZWxlY2NpJm9hY3V0ZTtuIHBvciBkZWZlY3RvJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnTm9tYnJlIGRlIE9wY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsb3IgRW52aWFkbyc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnT3BjaW9uZXMgZGUgRGVzcGxlZ2FibGUnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wY2lvbmVzIGRlIE11bHRpc2VsZWNjaSZvYWN1dGU7bic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBFbWFpbCBkZSBEZXN0aW5vJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tYnJlIGRlIEFyY2hpdm8gZGUgRGVzdGlubyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtEZXNkZSBub21icmUmcXVvdDsgcGFyYSBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNhciB2YWxpZGFjaSZvYWN1dGU7biBkZSBlbWFpbCByZWxhamFkYSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2FyIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGRpcmVjY2kmb2FjdXRlO24gZW1haWwgcmVsYWphZGEgKHAuZWouLCBwZXJtaXRlICZxdW90O3hAeSZxdW90OyBlbiB2ZXogZGUgcmVxdWVyaXIgYSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtEZXNkZSBkaXJlY2NpJm9hY3V0ZTtuJnF1b3Q7IHBhcmEgZW1haWwnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdDb25maWd1cmFjaSZvYWN1dGU7biBkZSBjJm9hY3V0ZTtkaWZpY2FjaSZvYWN1dGU7biBkZSBjYXJhY3RlcmVzIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdEZXRhbGxlcyBwYXJhIEVtaXNvci1FbWFpbCBjb24gYmFzZSBEZXNwbGVnYWJsZSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOb21icmUgZGUgYXJjaGl2byc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTCZpYWN1dGU7bmVhIEFzdW50byBkZSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb21icmUgZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0VzdGFkbyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnTGlzdG8gcGFyYSBzdSBEZXNhcnJvbGxvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdObyBlc3QmYWFjdXRlOyBMaXN0byc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUCZhYWN1dGU7Z2luYSBhIGRvbmRlIGRpcmlnaXJzZSBsdWVnbyBkZWwgZW52JmlhY3V0ZTtvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQb3IgZmF2b3IgYWdyZWd1ZSB1biBjYW1wbyBhbCBmb3JtdWxhcmlvIHBhcmEgcXVlIGxvIGluZ3Jlc2FkbyBwb3IgZWwgdXN1YXJpbyBwdWVkYSBzZXIgbWFuZWphZG8uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnUHVlZGUgdXNhciBlc3RlIGF0YWpvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2FtcG9zIGRlIEZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJZCBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ01vc3RyYXIgQWxpYXNlcyBkZSBsb3MgY2FtcG9zJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdNYXJjYXIgZXN0byB2YSBhIG1vc3RyYXIgbG9zIGFsaWFzZXMgZGUgY2FtcG9zIGN1YW5kbyBzZSBhZ3JlZ2EgbyBlZGl0YSB1bmEgZm9ybWEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ05vbWJyZSBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0FsaWFzIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsbGVzIGRlIEdydXBvIEJvdCZvYWN1dGU7biBkZSBSYWRpbyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVGlwbyBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAncGFyYSBjcmVhciB1biBjYW1wbyBkZSBtYW5lam8gZGVsIGZvcm11bGFyaW8uJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FncmVnYXIgTnVldm8gRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICcmaXF1ZXN0O01vc3RyYXIgVmVyc2kmb2FjdXRlO24gZGVsIE0mb2FjdXRlO2R1bG8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnTGEgdmVyc2kmb2FjdXRlO24gZGVsIG0mb2FjdXRlO2R1bG8gQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3MgaW5zdGFsYWRvIHNlIGluY2x1aXImYWFjdXRlOyBlbiBjb21lbnRhcmlvcywgYXl1ZGEgYWwgaGFjZXIgZGVidWcnOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0FncmVnYXIgTnVldm8gQ2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnQm90Jm9hY3V0ZTtuIGRlIFBydWViYSBFbnYmaWFjdXRlO28gZGUgRm9ybXVsYXJpbyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJyZpcXVlc3Q7QWdyZWdhbW9zIEphdmFzY3JpcHQgYWwgQm90Jm9hY3V0ZTtuIGRlIEVudiZpYWN1dGU7byBxdWUgYXl1ZGFyJmFhY3V0ZTsgYSBwcmV2ZW5pciBtJnVhY3V0ZTtsdGlwbGVzIGVudiZpYWN1dGU7b3MgZGVsIGZvcm11bGFyaW8/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZ3JlZ2FyIHNjcmlwdCBkZSBzZWd1cmlkYWQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1NpZ3VpZW50ZSZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHRvIHBhcmEgQm90Jm9hY3V0ZTtuICZxdW90O1ByZXZpbyZxdW90OyBkZWwgRm9ybSAoc2UgdXNhIGVuIGZvcm0mIzAzOTtzIG11bHRpcCZhYWN1dGU7Z2luYSknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYWNpJm9hY3V0ZTtuIGRlIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnQ2FtcG8gYSBWYWxpZGFyJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ2xhc2UgQ1NTIHBhcmEgZXN0ZSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NsYXNlIENTUyBwYXJhIGVzdGUgY2FtcG8nOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTJmlhY3V0ZTttYm9sbyBwYXJhIGlkZW50aWZpY2FyIGNhbXBvcyByZXF1ZXJpZG9zJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWVyaWRvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdTZSByZXF1aWVyZSB1bmEgcmVzcHVlc3RhIHBhcmEgZXN0ZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnT2N1bHRhciBFdGlxdWV0YSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdPY3VsdGFyIGVsIG5vbWJyZSBkZSBlc3RlIGNhbXBvIGVuIGVsIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1RleHRvIGVzdCZhYWN1dGU7dGljbyBhIG1vc3RyYXInOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGFjaSZvYWN1dGU7biBkZSBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTiZ1YWN1dGU7bWVybyBkZSBMJmlhY3V0ZTtuZWFzIGEgbW9zdHJhcic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gZXMgUG9yIERlZmVjdG8nOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQJmFhY3V0ZTtnaW5hIGEgZG9uZGUgaXIgZGVzcHUmZWFjdXRlO3MgZGUgYXByb2Jhcic7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnRXN0YSBleHByZXNpJm9hY3V0ZTtuIHJlZ3VsYXIgc2UgdXNhciZhYWN1dGU7IHMmb2FjdXRlO2xvIHNpICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBlcyBwdWVzdG8gYSB1bmEgb3BjaSZvYWN1dGU7biByZWdleC1yZWxhY2lvbmFkYS4gSW5jbHV5ZSB1biBjb21wbGV0byByZWdleCBlc3RpbG8gUGVybCwgaW5jbHV5ZW5kbyBhZGVtJmFhY3V0ZTtzIGxhcyBiYXJyYXMgZGUgY29taWVuem8vcGFyYXIgeSBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkbyc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ09jdWx0YXIgRXJyb3Jlcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVGlwbyBkZSBGb3JtdWxhcmlvIE1vc3RyYWRvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW5pciBxdWUgbWVuc2FqZXMgZGUgZGVidWcgLyBlcnJvciBsb3MgdmVhIGVsIHVzdWFyaW8uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIGRlIEVtYWlsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ1RhbWEmbnRpbGRlO28gbSZhYWN1dGU7eGltbyBkZSBhcmNoaXZvIGEgc3ViaXIgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdFc3RhIGxpbWl0YWNpJm9hY3V0ZTtuIHNlIGFncmVnYSBhIGxhcyBmaWphZGFzIHBvciBsYSBjb25maWd1cmFjaSZvYWN1dGU7biBkZSBwaHAgeSBlbCBzZXJ2aWRvciB3ZWInOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25lcyBQZXJtaXRpZGFzJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRyYXIgdW5hIGxpc3RhIHNlcGFyYWRhIHBvciBjb21hcywgZXhjbHV5ZW5kbyBlbCBwdW50byAocC5lai4sICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIExvcyBlc3BhY2lvcyBzb24gaWdub3JhZG9zLiBTaSBkZWphIGVzdG8gZW4gYmxhbmNvIHNpZ25pZmljYSBxdWUgbm8gaGF5IHJlc3RyaWNjaW9uZXMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICcmaXF1ZXN0O01vc3RyYXIgcmVzdHJpY2Npb25lcz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnJmlxdWVzdDtNb3N0cmFyIGN1YWxxdWllciByZXN0cmljY2kmb2FjdXRlO24gZGUgdGFtYSZudGlsZGU7byB5IGV4dGVuc2kmb2FjdXRlO24gY29uIGVsIGFyY2hpdm8gYSBzdWJpcj8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBhIHV0aWxpemFyIHBhcmEgTW9zdHJhciBGb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUCZhYWN1dGU7Z2luYSAlcyBkZSAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRWwgY2FtcG8gbm8gdGllbmUgb3BjaW9uZXMgYXZhbnphZGFzLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dG8gYSBkZXZvbHZlciBwYXJhIHZhbG9yZXMgZGUgY2FtcG8gc2luIGVzcGVjaWZpY2FyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICcmaXF1ZXN0O0hhYmlsaXRhIGRlc3BsZWdhYmxlIGRlIGFncmVnYWRvIHImYWFjdXRlO3BpZG8gZGUgY2FtcG9zIGVuIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJyZpcXVlc3Q7SGFiaWxpdGFtb3MgZGVzcGxlZ2FibGUgZGUgYWdyZWdhZG8gciZhYWN1dGU7cGlkbyBkZSBjYW1wb3M/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdBZ3JlZ2FyIHImYWFjdXRlO3BpZGFtZW50ZSBjYW1wb3MnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHMmb2FjdXRlO2xvIDEwIGVtYWlscyBhIHNlciBkaXNwYXJhZG9zIHBvciB1bmEgZGlyZWNjaSZvYWN1dGU7biBJUCBkYWRhIChwb3IgaG9yYSkuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJyZpcXVlc3Q7SGFiaWxpdGFyIGNhcmFjdGVyJmlhY3V0ZTtzdGljYXMgZWxlbWVudGFsZXMgcGFyYSBhbnRpLXNwYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdNb3N0cmFyIElEcyBkZSBDYW1wbyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdIYWNpZW5kbyBjbGljayBhcXUmaWFjdXRlOyBwZXJtaXRpciZhYWN1dGU7IHZlciBpZHMgZGUgY2FtcG9zIGN1YW5kbyBzZSBhZ3JlZ2EgbyBlZGl0YSB1biBmb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdTdWJpciBmb3JtdWxhcmlvIGRlc2RlIGFyY2hpdm8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2FyIGVzdGUgbm9tYnJlIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ0ltcG9ydGFyIEZvcm11bGFyaW8gWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNhciBlc3RlIGFsaWFzIGRlIGZvcm11bGFyaW8nOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJyZpcXVlc3Q7R2VuZXJhciBlbWFpbCBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJyZpcXVlc3Q7UHVibGljYXIgYXV0b20mYWFjdXRlO3RpY2FtZW50ZT8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGVfaGVscCddID0gJyZpcXVlc3Q7UHVibGljYXJsbyBhdXRvbSZhYWN1dGU7dGljYW1lbnRlIGNvbiBsYSBVUkwgZGUgbGEgcCZhYWN1dGU7Z2luYSBxdWUgY29udGllbmUgZWwgZm9ybXVsYXJpbz8gKGVzdG8gc29icmVzY3JpYmUgbGEgb3BjaSZvYWN1dGU7biBkZSBhYmFqbyBkZSBlbmxhY2UgZGUgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1VybCBwb3IgZGVmZWN0byBkZWwgZW5sYWNlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1RleHRvIHBvciBkZWZlY3RvIGRlbCBlbmxhY2UnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0VubGFjZSBhIHAmYWFjdXRlO2dpbmEgZGVsIHNpdGlvJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ1VzdGVkIHB1ZWRlIHVzYXIgYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHBhcmEgcHJvdGVnZXIgZWwgZW52JmlhY3V0ZTtvIGRlIGxvcyBmb3JtdWxhcmlvcy4gUGFyYSBlc28gaW5zdGFsZSBlbCBtJm9hY3V0ZTtkdWxvLiBQb3IgbSZhYWN1dGU7cyBpbmZvcm1hY2kmb2FjdXRlO24sIGRlIHVuYSB2dWVsdGEgcG9yIGVsIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcvcHJvamVjdHMvY2FwdGNoYS8iPnByb2plY3RvIENhcHRjaGE8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJyZpcXVlc3Q7VXNhciBDYXB0Y2hhIHBhcmEgcHJvdGVqZXIgZWwgZW52JmlhY3V0ZTtvIGRlIGZvcm11bGFyaW9zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnT2JzZXJ2ZSBhcXUmaWFjdXRlOyBwYXJhIHByb3RlZ2VyIGEgc3UgZm9ybXVsYXJpbyBjb24gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUG9yIGZhdm9yIGNvbmZpcm1lIHF1ZSB1c3RlZCBubyBlcyB1biBzY3JpcHQgaW5ncmVzYW5kbyBsb3MgY2FyYWN0ZXJlcyBkZSBsYSBpbWFnZW4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0Vycm9yIGVuIGVsIHRleHRvIHBhcmEgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnRWwgQ2FwdGNoYSBubyBlcyBjb3JyZWN0by4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVGV4dG8gZGUgYXl1ZGEgcGFyYSBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ05vIGVudmlhciB2YWxvcmVzIGRlIGNhamFzIHNpbiB0aWxkYXInOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdUaWxkYXIgZXN0byBzaSBkZXNlYSBxdWUgbGFzIGNhamFzIHRpbGRhZGFzIHJlZ3Jlc2VuIHVuIHZhbG9yJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdFdGlxdWV0YSBkZSBFbmxhY2UnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1VybCBkZSBEZXN0aW5vIGRlIEVubGFjZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJyZpcXVlc3Q7Q2hlcXVlYXIgcG9yIERlZmVjdG8/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICcmaXF1ZXN0O1VzYW1vcyByZWxvaiBkZSAyNC1ob3Jhcz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdhbSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAncG0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICcmaXF1ZXN0O1Byb2Nlc2Ftb3Mgc21hcnR5IHRhZ3MgZGVudHJvIGRlIGNhbXBvcz8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ0ZpbGFzIChub3RhOiBlc3RvIHB1ZWRlIHNlciBzb2JyZXNjcml0byBwb3IgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1uYXMgKG5vdGE6IGVzdG8gcHVlZGUgc2VyIHNvYnJlc2NyaXRvIHBvciBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ0RldGFsbGVzIGRlIEZvcm11bGFyaW8gUHJpbmNpcGFsJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdNb3N0cmFyIGVsIE5vbWJyZSBkZWwgVXN1YXJpbz8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnTW9zdHJhciBlbCBQcmltZXIgTm9tYnJlIGRlbCBVc3VhcmlvPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ01vc3RyYXIgZWwgQXBlbGxpZG8gZGVsIFVzdWFyaW8/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpbmdpciBsaXN0YSBkZSB1c3VhcmlvcyBhIHVzdWFyaW9zIGRlIHVuIGdydXBvIGVzcGVjaWZpY28nOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1NvbG8gZW4gZWwgZ3J1cG8gJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnTW9zdHJhciBhbCB1c3VhcmlvPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdFc3RlIGNhbXBvIHB1ZWRlIGRlamFyc2UgdmFjJmlhY3V0ZTtvJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBwYXJhIFBsYW50aWxsYSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgRGlzcG9uaWJsZXMnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlIFBIUCc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0ZlY2hhIGRlIEVudiZpYWN1dGU7byc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU3Ugc2Vydmlkb3InOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnRGlyZWNjaSZvYWN1dGU7biBJUCBkZSBsYSBwZXJzb25hIHF1ZSB1c2EgZWwgZm9ybXVsYXJpbyc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgZGUgbGEgcCZhYWN1dGU7Z2luYSBxdWUgY29udGllbmUgZWwgZm9ybXVsYXJpbyc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdWZXJzaSZvYWN1dGU7biBGb3JtQnVpbGRlciAnOwokbGFuZ1snaGVscF90YWInXSA9ICdTJmlhY3V0ZTttYm9sbyBkZSB0YWJ1bGFjaSZvYWN1dGU7bic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ05vbWJyZXMgZGUgY2FtcG8gYWx0ZXJuYWRvcyBzZSBwdWVkZW4gdXNhciBlbiBmb3JtYSBpbnRlcmNhbWJpYWJsZSAoZXNwZWNpYWxtZW50ZSAmdWFjdXRlO3RpbCBzaSBTbWFydHkgc2UgYXRhc2NhIGNvbiBjYXJhY3RlcmVzIGZ1ZXJhIGRlbCByYW5nbyBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdHJvcyBjYW1wb3MgZXN0YXImYWFjdXRlO24gZGlzcG9uaWJsZXMgYXMmaWFjdXRlOyBjb21vIGxvcyBhZ3JlZ3VlIGFsIGZvcm11bGFyaW8uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnQSBsb3MgY2FtcG9zIHF1ZSB0aWVuZW4gdmFsb3JlcyBtJnVhY3V0ZTtsdGlwbGVzIHNlIHB1ZWRlIHRhbWJpJmVhY3V0ZTtuIGxsZWdhciBhIGVsbG9zIHYmaWFjdXRlO2EgZWwgdmFsb3Igc21hcnR5IGRlICRmaWVsZG5hbWVfYXJyYXkgIG8gICRmbGRfI19hcnJheS4nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1ZlYSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz5lbCBNYW51YWwgUEhQPC9hPiBwYXJhIGF5dWRhIGRlIGZvcm1hdG9zLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSAnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnQ2FtcG8gUmVwcmVzZW50YWRvJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBWb2x2ZXIgYWwgRm9ybSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnQ3JlYXIgUGxhbnRpbGxhIGRlIEVqZW1wbG8nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXIgUGxhbnRpbGxhIGRlIEVqZW1wbG8gSFRNTCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWFyIFBsYW50aWxsYSBjb24gRW5jYWJlemFkbyBkZSBNdWVzdHJhJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXIgRW5jYWJlemFkbyBkZSBFamVtcGxvJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ3VuIGNhcmFjdGVyIHRhYic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBhcmEgYXJjaGl2byBkZSBzYWxpZGEgZGUgdW5hIGwmaWFjdXRlO25lYSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1BsYW50aWxsYSBwYXJhIGVsIGVuY2FiZXphZG8gZGUgYXJjaGl2byBkZSBzYWxpZGEnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBkb25kZSBoYWNlciBjbGljayBwYXJhIGNvbmZpcm1hciBlbCBmb3JtdWxhcmlvJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsb3IgKHZlYSBsYSBzb2xhcGEgQXZhbnphZG8gc2kgdXN0ZWQgdXNhIHRhZ3Mgc21hcnR5JzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRm9ybWF0byBkZSBGZWNoYSAoZXN0JmFhY3V0ZTtuZGFyIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPkZvcm1hdG9zIGRlIEZlY2hhIFBIUDwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNhciBlZGl0b3IgV1lTSVdZRyBwYXJhICZBYWN1dGU7cmVhIGRlIHRleHRvICgmaXF1ZXN0O3Mmb2FjdXRlO2xvIHBhcmEgQWRtaW4/KSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0NvbXBvcnRhbWllbnRvIGRlbCBGb3JtdWxhcmlvIGRlIEVudiZpYWN1dGU7byc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnRXRpcXVldGFzIGRlIEJvdCZvYWN1dGU7bmVzIGRlIEVudiZpYWN1dGU7byc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ0NhbXBvIE9yZGVuYWJsZSAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdFc3RhIHAmYWFjdXRlO2dpbmEgbGUgcGVybWl0ZSBhZGFwdGFyIGEgc3UgZ3VzdG8gZWwgRW52JmlhY3V0ZTtvIGRlbCBGb3JtdWxhcmlvLiBObyBkZXRlcm1pbmEgcXVlIGhhciZhYWN1dGU7IGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGNvbiBsYSBkYXRhIGVudmlhZGEuIEVzdG8gJnVhY3V0ZTtsdGltbyBsbyBwdWVkZSBlc3RhYmxlY2VyIGFncmVnYW5kbyBjYW1wb3MgZGUgICZxdW90O0Rpc3Bvc2ljaSZvYWN1dGU7biZxdW90OyBhIHN1IGZvcm11bGFyaW8uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdDb21pZW56YSByYW5nbyBkZSBhJm50aWxkZTtvJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnRmluIHJhbmdvIGRlIGEmbnRpbGRlO28nOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnQSZudGlsZGU7byBwb3IgRGVmZWN0byc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhQb25lciBhIC0xIHBhcmEgcXVlIGVsIGEmbnRpbGRlO28gcG9yIGRlZmVjdG8gc2VhIGVsIGFjdHVhbCknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0x1ZWdvIHF1ZSBlbCBmb3JtdWxhcmlvIHNlYSBlbnZpYWRvJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3B1ZXN0YSBhIG1vc3RyYXInOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnTW9zdHJhciAmcXVvdDtQbGFudGlsbGEgZGUgRW52aWFkbyZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJpZ2lyIGEgcCZhYWN1dGU7Z2luYSBkZWwgc2l0aW8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdFc3RhIHBsYW50aWxsYSBlcyBwYXJhIHNlciBtb3N0cmFkYSBhbCB1c3VhcmlvIHVuYSB2ZXogZW52aWFkbyBlbCBmb3JtdWxhcmlvLiBFc3RhIHBsYW50aWxsYSBubyBhZmVjdGEgYSBsb3MgZW1haWxzIGdlbmVyYWRvcyB1IG90cmFzIGRpc3Bvc2ljaW9uZXMgcGFyYSBlbCBmb3JtdWxhcmlvIC0tIHB1ZWRlIGNvbmZpZ3VyYXIgYSBlc3RhcyAmdWFjdXRlO2x0aW1hcyBwbGFudGlsbGFzIChkb25kZSBzZWEgYXByb3BpYWRvKSBlbiBsYSBzb2xhcGEgJnF1b3Q7YXZhbnphZG8mcXVvdDsgcGFyYSBsb3MgY2FtcG9zIHF1ZSB0aWVuZW4gbGEgZGlzcG9uaWJpbGlkYWQuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdQJmFhY3V0ZTtnaW5hIERlc3Rpbm8nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWVyaXIgTm9tYnJlIGRlIENhbXBvcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJyZpcXVlc3Q7U2UgcmVxdWllcmUgcXVlIGxvcyBjYW1wb3MgdGVuZ2FuIG5vbWJyZT8nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXMnXSA9ICdSZXF1ZXJpciBOb21icmUgZGUgQ2FtcG9zICZVYWN1dGU7bmljb3MnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJyZpcXVlc3Q7U2UgcmVxdWllcmUgcXVlIGxvcyBub21icmVzIGRlIGNhbXBvcyBzZWFuICZ1YWN1dGU7bmljb3M/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZW5hciBDYW1wb3MnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0NhcmdhciBwbGFudGlsbGEnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWdyZWdhciB0ZXh0byBkZSBCb3Qmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRWxpbWluYXIgdGV4dG8gZGUgQm90Jm9hY3V0ZTtuJzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldGFyIGxhcyB2YXJpYWJsZXMgY29tbyBzaSBmdWVyYW4gbiZ1YWN1dGU7bWVyb3MgbyBmcmFzZXMnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdPcmRlbiBkZSBJbnRlcnByZXRhY2kmb2FjdXRlO24nOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ1NpIGV4aXN0ZSBtJmFhY3V0ZTtzIGRlIHVuIENhbXBvIENvbXB1dGFkbywgZWwgb3JkZW4gZGUgbG9zIGMmYWFjdXRlO2xjdWxvcyBpciZhYWN1dGU7IGRlc2RlIGFxdWVsbG9zIGRlIG4mdWFjdXRlO21lcm8gZGUgb3JkZW4gbSZhYWN1dGU7cyBiYWpvIGEgbG9zIGRlIG4mdWFjdXRlO21lcm8gZGUgb3JkZW4gbSZhYWN1dGU7cyBhbHRvJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWxvciBhIGNvbXB1dGFyJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ0ZyYXNlJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW0mZWFjdXRlO3JpY28nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICcmaXF1ZXN0O01vc3RyYXIgZWwgZm9ybXVsYXJpbyBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgc2lnbmlmaWNhIHF1ZSBjdWFscXVpZXIgcmVzdWx0YWRvIGRlbCBmb3JtdWxhcmlvIHJlZW1wbGF6YSBlbCB0YWcge2Ntc19tb2R1bGV9LCBub24taW5saW5lIHJlZW1wbGF6YSBlbCB0YWcge2NvbnRlbnR9Lic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnVmFsb3IgcG9yIGRlZmVjdG8gcGFyYSBlbCBjYW1wbyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnJmlxdWVzdDtMaW1waWFyIHBvciBkZWZlY3RvIGFsIHNlbGVjY2lvbmFyPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdTZWxlY2Npb25lIGVzdG8gcGFyYSBsaW1waWFyIGVsIHZhbG9yIHBvciBkZWZlY3RvIGN1YW5kbyB1biB1c3VhcmlvIHNlbGVjY2lvbmUgZXN0ZSBjYW1wbyc7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0JvcnJhciBhcmNoaXZvIHN1YmlkbyBkZXNwdWVzIGRlIHByb2Nlc2FyIChkaXNwb3NpY2lvbmVzIGRlIGVtYWlsKSc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBwYXJhIGVsIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGRlIEVudmlvIGRlIEZvcm1hJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnTmVjZXNpdGEgbWFzIHRpcG9zIGRlIGFyY2hpdm9zPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdEZW1hc2lhZG9zIHRpcG9zIGRlIGFyY2hpdm9zPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkX2xpbmsnXSA9ICdDYW1iaWFyIGEgTW9kbyBBdmFuemFkbyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ0NhbWJpYXIgYSBNb2RvIFNpbXBsZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEaXJlY3RvcmlvIHBhcmEgZ3VhcmFyIGVsIGFyY2hpdm8nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ1NpbWJvbG8gZGUgcmVlbXBsYXpvIHBhcmEgcmV0b3Juby9udWV2YSBsaW5lYSc7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdEZWphciB2YWNpbyBwYXJhIHBlcm1pdGlyIGRlc3BsaWVndWUgZGUgcmV0b3Juby9udWV2YXMgbGluZWFzICc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnRW52aWFyIHVuYSBjb3BpYSBkZWwgZW52aW8gYWwgdXN1YXJpbz8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0V0aXF1ZXJhIHBhcmEgbGEgY2FqYSBkZSB0aWxkYXIgKGVsZWNjaSZvYWN1dGU7biBkZWwgdXN1YXJpbyknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdFbnZpYXJtZSB1bmEgY29waWEgZGUgbGEgZm9ybWEnOwokbGFuZ1snb3B0aW9uX25ldmVyJ10gPSAnTnVuY2EnOwokbGFuZ1snb3B0aW9uX3VzZXJfY2hvaWNlJ10gPSAnRGFyIG9wY2kmb2FjdXRlO24gYWwgdXN1YXJpbyAoY2FqYSBkZSB0aWxkYXIpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdTaWVtcHJlJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+RWwgbW9kdWxvIENhdGFsb2dlciBubyBwYXJlY2UgZXN0YXIgaW5zdGFsYWRvL2FjdGl2by48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ0FEVkVSVEVOQ0lBISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnUGxhbnRpbGxhIHBvciBEZWZlY3RvJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdQbGFudGlsbGEgZGUgVGFibGEsIFQmaWFjdXRlO3R1bG9zIGEgbGEgaXpxdWllcmRhJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1BsYW50aWxsYSBkZSBUYWJsYSwgVCZpYWN1dGU7dHVsb3MgYWwgdG9wZSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdQbGFudGlsbGEgZGUgJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnJmlxdWVzdDtFc3QmYWFjdXRlOyBzZWd1cm8gcXVlIHF1aWVyZSBzb2JyZSBlc2NyaWJpciBzdSBwbGFudGlsbGEgY29uIGxhIHBsYW50aWxsYSBzZWxlY2Npb25hZGE/IChBJnVhY3V0ZTtuIGN1YW5kbyB1c3RlZCBkaWdhIE9LLCBuZWNlc2l0YXImYWFjdXRlOyBndWFyZGFyIGxvcyBjYW1iaW9zKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciBhbCBjYWxjdWxhciAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIGhheSBpbmZvIGRpc3BvbmlibGUgZGUgSFRUUF9SRUZFUkVSIChwcm9iYWJsZW1lbnRlIGRlYmlkbyBhbCB1c28gZGUgbGEgVmFsaWRhY2kmb2FjdXRlO24gZGVsICBFbWFpbCBkZSBVc3VhcmlvKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnRXJyb3IgZGUgUGFyJmFhY3V0ZTttZXRybyBkZSBWYWxpZGFjaSZvYWN1dGU7bi4gJmlleGNsO1BvciBmYXZvciBhc2VnJnVhY3V0ZTtyZXNlIHF1ZSBoYSBjb3BpYWRvIGVsIFVSTCBkZSBzdSBkaXJlY2NpJm9hY3V0ZTtuIGVtYWlsIGNvcnJlY3RhbWVudGUhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdFcnJvciBlbiBSZXNwdWVzdGEgZGUgVmFsaWRhY2kmb2FjdXRlO24uICZpZXhjbDtQb3IgZmF2b3IgYXNlZyZ1YWN1dGU7cmVzZSBxdWUgaGEgY29waWFkbyBlbCBVUkwgZGUgc3UgZGlyZWNjaSZvYWN1dGU7biBlbWFpbCBjb3JyZWN0YW1lbnRlISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnRXJyb3IgZW4gUmVzcHVlc3RhIGRlIFZhbGlkYWNpJm9hY3V0ZTtuLiAmaWV4Y2w7Tm8gaGF5IGNhbXBvIGRlIHZhbGlkYWNpJm9hY3V0ZTtuIGRlIGVtYWlsIGVuIGVzdGUgZm9ybXVsYXJpbyEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0xhIHBsYW50aWxsYSBkZWwgZm9ybXVsYXJpbyBmdWUgcHVlc3RhIGFsIGQmaWFjdXRlO2EgYXV0b20mYWFjdXRlO3RpY2FtZW50ZSBjb21vIHBhcnRlIGRlbCBhY3R1YWxpemFkbyBkZSBsYSB2ZXJzaSZvYWN1dGU7biAwLjMgYSBsYSB2ZXJzaSZvYWN1dGU7biAwLjQuIFVzdGVkIGRlYmVyJmFhY3V0ZTsgaGFjZXIgYWxndW5vcyBhanVzdGVzLiBTaSBlc3QmYWFjdXRlOyB1dGlsaXphbmRvIGVsIGZvcm11bGFyaW8gcG9yIGRlZmVjdG8sIHNpbXBsZW1lbnRlIHJlbXBsYWNlIGVzdGEgcGxhbnRpbGxhIGNvbiAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzYW5kbyBlbCBkZXNwbGVnYWJsZSBkZSBhcnJpYmEuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FncmVndWUsIGVkaXRlIHkgYWRtaW5pc3RyZSBGb3JtdWxhcmlvcyBpbnRlcmFjdGl2b3MnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdTaSB1c3RlZCB1dGlsaXphIGV2YWx1YWNpJm9hY3V0ZTtuIGRlIFN0cmluZywgbGEgJnVhY3V0ZTtuaWNhIG9wZXJhY2kmb2FjdXRlO24gZGlzcG9uaWJsZSBlcyBjb25jYXRlbmFjaSZvYWN1dGU7biAoKyksIG1pZW50cmFzIHF1ZSBzaSB1c2EgZXZhbHVhY2kmb2FjdXRlO24gbnVtJmVhY3V0ZTtyaWNhIHVzdGVkIHRpZW5lIGMmYWFjdXRlO2xjdWxvcyBtYXRlbSZhYWN1dGU7dGljb3MgYiZhYWN1dGU7c2ljb3MgeSBtdXkgc2ltcGxlcyAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdFbmVybyc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicmVybyc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFyem8nOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0FicmlsJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWF5byc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pbyc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWxpbyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRpZW1icmUnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnT2N0dWJyZSc7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92aWVtYnJlJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEaWNpZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJyZpZXhjbDtQZXJkJm9hY3V0ZTtuISBTZSBwcmVzZW50Jm9hY3V0ZTsgdW4gZXJyb3IgZW4gZWwgbWFuZWpvIGRlbCBlbnYmaWFjdXRlO28gZGUgc3UgZm9ybXVsYXJpby4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRXJyb3IgZGUgZW52JmlhY3V0ZTtvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvczogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbWV0aWRvIHBvciBhcmNoaXZvIGFsIG0mb2FjdXRlO2R1bG8gZGUgc3ViaWRhczogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTm8gc2UgcHVkbyBoYWxsYXIgZWwgbSZvYWN1dGU7ZHVsbyBkZSBzdWJpZGFzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdTdWJpci9BZGp1bnRvLCBlcnJvciBlbiBhcmNoaXZvICVzIChub21icmVfdG1wOiAlcywgZGVsIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIE5vIHNlIHB1ZWRlIG9idGVuZXIgYmxvcXVlbyBkZSBhcmNoaXZvLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRldGVybWluYWRvOiBzaW4gdGlsZGFyJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRldGVybWluYWRvOiB0aWxkYWRvJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdFbnYmaWFjdXRlO28gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPiZpZXhjbDtMYSBwbGFudGlsbGEgZGUgZW1haWwgdG9kYXYmaWFjdXRlO2Egbm8gc2UgY29uZmlndXImb2FjdXRlOyEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnQ29uc3RydWN0b3IgZGUgRm9ybXVsYXJpb3M6ICZpZXhjbDtObyBzZSBlbmN1ZW50cmEgZWwgbSZvYWN1dGU7ZHVsbyByZXF1ZXJpZG8gQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdFbnYmaWFjdXRlO28gZGUgdXN1YXJpbyBhcHJvYmFkbyAlcyBkZXNkZSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnQWNvbnRlY2ltaWVudG8gZGlzcGFyYWRvIGN1YW5kbyB1biBmb3JtdWxhcmlvIGRlbCBDb25zdHJ1Y3RvciBkZSBGb3JtdWxhcmlvcyBlcyBlbnZpYWRvJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0Fjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBzaSBoYXkgdW4gZXJyb3IgY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG8nOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdBY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIG1vc3RyYWRvJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5BY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG8uPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBFbCBub21icmUgZGVsIGZvcm11bGFyaW8gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpZCBpbnRlcm5vIGRlbCBmb3JtdWxhcmlvIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBQcm92ZWUgdW4gdmFsb3IgcG9yIGRlZmVjdG8gYSB1biBjYW1wbyBjb24gZWwgbm9tYnJlIGVzcGVjaWZpY2Fkby48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkFjb250ZWNpbWllbnRvIGRpc3BhcmFkbyBzaSBoYXkgdW4gZXJyb3IgY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIGVudmlhZG88L3A+DQo8aDQ+UGFyJmFhY3V0ZTttZXRyb3M8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEVsIG5vbWJyZSBkZWwgZm9ybXVsYXJpbyAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIGlkIGludGVybm8gZGVsIGZvcm11bGFyaW8gKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gVW5hIGxpc3RhIGRlIHRvZG9zIGxvcyBlcnJvcmVzIGNvbm9jaWRvcyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5BY29udGVjaW1pZW50byBkaXNwYXJhZG8gY3VhbmRvIHVuIGZvcm11bGFyaW8gZGVsIENvbnN0cnVjdG9yIGRlIEZvcm11bGFyaW9zIGVzIG1vc3RyYWRvPC9wPg0KPGg0PlBhciZhYWN1dGU7bWV0cm9zPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBFbCBub21icmUgZGVsIGZvcm11bGFyaW8gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBpZCBpbnRlcm5vIGRlbCBmb3JtdWxhcmlvIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCBkZSByZXNwdWVzdGEuIFVzYWRvIHBvciBlbCBFeHBsb3JhZG9yIGRlIEZvcm11bGFyaW9zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdWYWxvciBwb3IgZGVmZWN0byBkZSBjYW1wbzsgdmVyIGF5dWRhIGRlbCBtJm9hY3V0ZTtkdWxvJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0lEIGRlIGNhbXBvIHBhcmEgb3BlcmFjaW9uZXMgaW50ZXJuYXMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ05vbWJyZSBkZSBGb3JtdWxhcmlvJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnSUQgZGUgRm9ybXVsYXJpbyBwYXJhIG9wZXJhY2lvbmVzIGludGVybmFzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnUGFyJmFhY3V0ZTttZXRyb3MgZ2VuZXJhbGVzIHBhcmEgb3BlcmFjaW9uZXMgaW50ZXJuYXMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5WYXJpYWJsZXMgZGUgUGxhbnRpbGxhIGRlIEZvcm11bGFyaW88L2gzPg0KPHA+VXN0ZWQgcHVlZGUgZWRpdGFyIGEgbGEgcGxhbnRpbGxhIHBhcmEgaGFjZXIgcXVlIGVsIGxheW91dCBkZWwgZm9ybXVsYXJpbyBzZSB2ZWEgZGUgbGEgZm9ybWEgcXVlIGEgdXN0ZWQgbSZhYWN1dGU7cyBndXN0ZS4NCiAgIFBhcmEgcXVlIGVsIGZvcm11bGFyaW8gZnVuY2lvbmUsIHVzdGVkIGRlYmUgc2llbXByZSBpbmNsdWlyIGxhcyB0YWdzIHskZmJfaGlkZGVufSB5IHskc3VibWl0fS48L3A+DQoNCjxwPlVzdGVkIHB1ZWRlIGxsZWdhciBoYXN0YSBsb3MgY2FtcG9zIGRlIHN1IGZvcm11bGFyaW8sIGJpZW4gdXNhbmRvIGVsIGFycmF5IGRlICRmaWVsZHMgbyBkaXJlY3RhbWVudGUgaW5ncmVzYXIgdXRpbGl6YW5kbyBsb3Mgbm9tYnJlcyBkZSBsb3MgY2FtcG9zIChwLmVqLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5DYWRhIGNhbXBvIHRpZW5lIGxvcyBzaWd1aWVudGVzIGF0cmlidXRvczo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPkNhbXBvPC90aD48dGg+VmFsb3I8L3RoPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5kaXNwbGF5PC90ZD48dGQ+MSBzaSBlbCBjYW1wbyBkZWJlIHNlciBtb3N0cmFkbywgMCBkZSBvdHJhIGZvcm1hPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIHNpIGVsIGNhbXBvIGRlYmUgc2VyIG1vc3RyYWRvLCAwIGRlIG90cmEgZm9ybWE8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD5lbCBzJmlhY3V0ZTttYm9sbyBwYXJhIGNhbXBvcyByZXF1ZXJpZG9zPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD4NCjx0ZD5sYSBjbGFzZSBDU1MgZXNwZWNpZmljYWRhIHBhcmEgZXN0ZSBjYW1wbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+dmFsaWQ8L3RkPg0KPHRkPjEgc2kgZWwgY2FtcG8gaGEgcGFzYWRvIGxhIHZhbGlkYWNpJm9hY3V0ZTtuLCAwIGRlIG90cmEgZm9ybWE8L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPmVycm9yPC90ZD4NCjx0ZD5UZXh0byBkZWwgcHJvYmxlbWEgZGUgdmFsaWRhY2kmb2FjdXRlO24sIGVuIGVsIGNhc28gcXVlIGVzdGUgY2FtcG8gbm8gc2VhIHZhbGlkYWRvPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPg0KPHRkPjEgc2kgZWwgbm9tYnJlIGRlbCBjYW1wbyBkZWJlIHNlciBvY3VsdGFkbywgMCBkZSBvdHJhIGZvcm1hIDwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGFzX2xhYmVsPC90ZD4NCjx0ZD4xIHNpIGVsIHRpcG8gZGUgY2FtcG8gdGllbmUgdW5hIGV0aXF1ZXRhPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPg0KPHRkPjEgc2kgZWwgY2FtcG8gbmVjZXNpdGEgc2VyIGVudnVlbHRvIHBvciB1bmEgRElWIChvIGZpbGEgZGUgdGFibGEsIHNpIGVzdGUgZXMgbGEgY2FuY2kmb2FjdXRlO24gcXVlIHVzdGVkIGJhaWxhKTwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+DQo8dGQ+ZWwgbm9tYnJlIGRlbCBjYW1wbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPg0KPHRkPmVsIGNvbnRyb2wgZGUgZW50cmFkYSBkZSBjYW1wbyAocC5lai4sIGVsIGNhbXBvIGRlIGVudHJhZGEgZW4gc2kgbWlzbW8pPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+DQo8dGQ+dW4gYm90Jm9hY3V0ZTtuIGRlIGNvbnRyb2wgYXNvY2lhZG8gYWwgY2FtcG8gc2kgZXMgYXBsaWNhYmxlIChwLmVqLiwgZWwgYm90Jm9hY3V0ZTtuIGVsaW1pbmFyIHBhcmEgZW50cmFkYXMgZGUgdGV4dG8gZXhwYW5kaWJsZXMpPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dF9pZDwvdGQ+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIDxsYWJlbCBmb3I9JnF1b3Q7JnF1b3Q7Pik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD4NCjx0ZD5lbCB0aXBvIGRlIGRhdG9zIGRlbCBjYW1wbzwvdGQ+DQo8L3RyPg0KDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+DQo8dGQ+MSBzaSBlbCBjYW1wby0+ZW50cmFkYSBlcyBlbiByZWFsaWRhZCB1bmEgY29sZWNjaSZvYWN1dGU7biBkZSBjb250cm9sZXM8L3RkPg0KPC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD4NCjx0ZD4xIHNpIGxhIGNvbGVjY2kmb2FjdXRlO24gZGUgY29udHJvbGVzIHRpZW5lIGV0aXF1ZXRhcyBzZXBhcmFkYXMgcGFyYSBjYWRhIGNvbnRyb2w8L3RkPg0KPC90cj4NCjwvdGFibGU+DQoNCjxwPkVuIGFsZ3Vub3MgY2FzbywgY2FtcG8tPmVudHJhZGEgZXMgZW4gcmVsaWRhZCB1biBhcnJheSBkZSBvYmpldG9zIG0mYWFjdXRlO3MgcXVlIHVuYSBlbnRyYWRhLiBFc3RvIHBhc2EsIHBvciBlamVtcGxvLCBlbiBHcnVwb3MgZGUgQ2FqYXMgZGUgVGlsZGUgbyBHcnVwb3MgZGUgQm90b25lcyBkZSBSYWRpby4gUGFyYSBlbGxvcywgdXN0ZWQgcHVlZGUgaGFjZXIgdW5hIGl0ZXJhY2kmb2FjdXRlO24gYSB0cmF2ZXMgZGUgY2FtcG8tPmVudHJhZGEtPm5vbWJyZSB5IGNhbXBvLT5lbnRyYWRhLT5lbnRyYWRhcy48L3A+DQoNCjxwPkFkZGl0aW9uYWwgc21hcnR5IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4gdXNlIGluY2x1ZGU6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJsZTwvdGg+DQo8dGg+VmFsb3I8L3RoPg0KPC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPg0KPHRkPm4mdWFjdXRlO21lcm9zIGRlIHAmYWFjdXRlO2dpbmFzIHBhcmEgZm9ybXVsYXJpb3MgbXVsdGlwJmFhY3V0ZTtnaW5hczwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPg0KPHRkPm4mdWFjdXRlO21lcm8gcGFyYSBsYSBjb3JyaWVudGUgcCZhYWN1dGU7Z2luYSBwYXJhIGZvcm11bGFyaW9zIG11bHRpcCZhYWN1dGU7Z2luYXMgPC90ZD4NCjwvdHI+DQo8dHI+PHRkPnRpdGxlX3BhZ2VfeF9vZl95PC90ZD4NCjx0ZD5tdWVzdHJhIGEgJnF1b3Q7cCZhYWN1dGU7Z2luYSB4IGRlIHkmcXVvdDsgcGFyYSBmb3JtdWxhcmlvcyBtdWx0aXAmYWFjdXRlO2dpbmFzPC90ZD4NCjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+DQo8dGQ+Q2xhc2UgQ1NTIHBhcmEgZWwgZm9ybXVsYXJpbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPg0KPHRkPk5vbWJyZSBkZWwgZm9ybXVsYXJpbzwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD4NCjx0ZD5JRCBkZWwgZm9ybXVsYXJpbyBlbiBsYSBiYXNlIGRlIGRhdG9zPC90ZD4NCjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPg0KPHRkPkJvdCZvYWN1dGU7biAmcXVvdDtWb2x2ZXImcXVvdDsgcGFyYSBmb3JtdWxhcmlvcyBtdWx0aXBhcnRlczwvdGQ+DQo8L3RyPg0KPHRyPjx0ZD5zdWJtaXQ8L3RkPg0KPHRkPkJvdG9uZXMgJnF1b3Q7Q29udGludWFyJnF1b3Q7IG8gJnF1b3Q7RW52aWFyJnF1b3Q7IHBhcmEgZm9ybXVsYXJpb3MgbXVsdGlwYXJ0ZXMsIHNlIGFqdXN0YSBhdXRvbSZhYWN1dGU7dGljYW1lbnRlPC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPHA+Tm8gc2UgcGFyYSBxdWUgcXVpZXJlIHVzdGVkIGFsZ3Vub3MgZGUgZXNvcywgcGVybyBhbGwmaWFjdXRlOyBlc3QmYWFjdXRlO24uLi48L3A+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPlRlbmdhIHBvciBzZWd1cm8gZW4gYWN0aXZhciBlbCBwZXJtaXNvICZxdW90O01vZGlmaWNhciBGb3JtdWxhcmlvcyZxdW90OyBwYXJhIGFxdWVsbG9zIHVzdWFyaW9zIG8gZ3J1cG9zIGRlIHVzdWFyaW9zIHF1ZSBhZG1pbmlzdHJhciZhYWN1dGU7biBsb3MgZm9ybXVsYXJpb3MgZGUgY29udGFjdG8uIFRhbWJpJmVhY3V0ZTtuLCBzaSB1c3RlZCB2YSBhIGVudmlhciBlbCByZXN1bHRhZG8gZGUgbG9zIGZvcm11bGFyaW9zIHBvciBlbWFpbCwgaGFnYSB1bmEgYWN0dWFsaXphY2kmb2FjdXRlO24gZGUgbGEgQ29uZmlndXJhY2kmb2FjdXRlO24gZW4gZm9ybWEgYXByb3BpYWRhLjwvcD4NCjxwPlBvciBmYXZvciB0ZW5nYSBlbiBjdWVudGEgcXVlIHVuIGZvcm11bGFyaW8gZGUgY29udGFjdG8gbm8gZGViZSBlc3RhciBhY3Rpdm8gKHAuZWouLCBlbiB1c28gcG9yIGVsIHAmdWFjdXRlO2JsaWNvKSBtaWVudHJhcyB1c3RlZCBlc3QmYWFjdXRlOyBlbiBlbCBwcm9jZXNvIGRlIGVkaXRhcmxvLiBVc3RlZCBkZWJlIGNyZWFyIGVsIGZvcm11bGFyaW8sIHkgbHVlZ28gY29sb2NhciBlbCB0YWcgY29ycmVzcG9uZGllbnRlIGVuIHVuYSBwJmFhY3V0ZTtnaW5hIGRlIGNvbnRlbmlkbyBhY3RpdmEgcyZvYWN1dGU7bG8gY3VhbmRvIGhheWEgdGVybWluYWRvIGRlIGVkaXRhcmxvLiBEZSBvdHJhIGZvcm1hLCBwdWVkZSBvYnRlbmVyIHJlc3VsdGFkb3MgY29uIGVycm9yZXMuPC9wPg0KPHA+QWRlbSZhYWN1dGU7cywgZXN0YSB2ZXJzaSZvYWN1dGU7biBubyBzb3BvcnRhIGVsIGVkaXRhZG8gcGFyYWxlbG8gZGUgbG9zIGZvcm11bGFyaW9zLiBQb3IgZmF2b3IgaW5zdHJ1eWEgYSBsb3MgYWRtaW5pc3RyYWRvcmVzIHBhcmEgcXVlIHRlbmdhbiBlbCBjdWlkYWRvIGRlIGVkaXRhciBlbiBmb3JtYSBleGNsdXNpdmEgdW4gZm9ybXVsYXJpbywgZXZpdGFuZG8gY29pbmNpZGlyIGVuIGxhIHRhcmVhIGNvbiBvdHJvIGFkbWluaXN0cmFkb3IuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoeWF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+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+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMzg3NDg1MDc0OTU0Nzc3NjAwMC4xMjE0ODY2ODU2LjEyMjI4ODM4MzAuMTIyMjg4NTg4My4xNDcnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjIyODE5NTY5LjE0NC4xNS51dG1jY249KG9yZ2FuaWMpfHV0bWNzcj1nb29nbGV8dXRtY3RyPWNtc21zIHByZXR0eSB1cmxzfHV0bWNtZD1vcmdhbmljJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1My4xLjEwLjEyMjI4ODU4ODMnOwo/Pg==]]></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[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0xvbWFrZSBlZGl0b3JpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfJ10gPSAnS2VudCZhdW1sO24gdHl5cHBpJmF1bWw7IGVpIG9sZSBhc2V0ZXR0dSc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdWYWxpdHNlIHlrc2kgdGFpIHVzZWFtcGlhIGNhdGFsb2dlciBpdGVtZWl0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgYWxrdSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmllbGRzZXQgbG9wcHUnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZWtzdGlrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZWtzdGlrZW50dCZhdW1sOyAodXNlaXRhKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdGlhbHVlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1ZhbGludGFsYWF0aWtrbyc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ1ZhbGludGFsYWF0aWtrbyByeWhtJmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0FsYXN2ZXRvdmFsaWtrbyc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNb25pdmFpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ09zYXZhbHRpb3ZhbGlra28gKFVTQSknOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnS2FuYWRhbiBwcm92aW5zc2l0IC12YWxpa2tvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTWFhdmFsaW50YSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1AmYXVtbDtpdiZhdW1sO3lzdmFsaW50YSc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ0Fpa2F2YWxpbnRhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnVmFsaW50YXBhbGxvcnlobSZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgdmFzdGF1a3NldCBhbGFzdmV0b3ZhbGlrb24gbXVrYWlzZXN0aSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKiBUYWxsZW5uYSB2YXN0YXVrc2V0IGFsYXN2ZXRvdmFsaWtvbiBtdWthaXNlc3RpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJyogVGFsbGVubmEgdmFzdGF1a3NldCB1c2Vpc2lpbiB0aWVkb3N0b2loaW4gZXJpIHZhbGludG9qZW4gbXVrYWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJyogT2hqYWEgc2l2dWxsZSBhbGFzdmV0b3ZhbGlrb24gbXVrYWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJyogTCZhdW1sO2hldCZhdW1sOyB2YXN0YXVrc2V0IGFzZXRldHR1aWhpbiBlbWFpbCBvc29pdHRlaXNpaW4nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKiBUYXJraXN0YSBlbWFpbCBvc29pdGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgdGllZG9zdG9vbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqIFRhbGxlbm5hIHZhc3RhdWtzZXQgdGlldG9rYW50YWFuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJyogVGFsbGVubmEgdHVsb2tzZXQgRm9ybUJyb3dzZXIgdi4zIG1vZHVsaWxsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJyogS3VzdHN1IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsmYXVtbDsgdGFnaWEgbG9tYWtrZWVuIHR1bG9rc2lsbGEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKiBMJmF1bWw7aGV0JmF1bWw7IGsmYXVtbDt5dHQmYXVtbDtqJmF1bWw7biBtJmF1bWw7JmF1bWw7cml0dGVsZW0mYXVtbDsmYXVtbDtuIGVtYWlsLW9zb2l0dGVlc2Vlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqIEwmYXVtbDtoZXQmYXVtbDsgZW1haWwgQ01TOm4geWxsJmF1bWw7cGl0b2smYXVtbDt5dHQmYXVtbDtqJmF1bWw7bGxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctIFNpdnVuIHZhaWh0byc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ1RpZWRvc3RvbiBsYXRhdXMnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtPc29pdGUmcXVvdDsga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFbWFpbCAmcXVvdDtOaW1pJnF1b3Q7IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7QWloZSZxdW90OyBrZW50dCZhdW1sOyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IHRla3N0aSc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy0gS2lpbnRlJmF1bWw7IGxpbmtraSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmtraSAoSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHN5Jm91bWw7dHQmYXVtbDttJmF1bWw7KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLSBQaWlsb3RldHR1IGtlbnR0JmF1bWw7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gTGFza2V0dHUga2VudHQmYXVtbDsnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctIFlrc2lsJm91bWw7aXYmYXVtbDsga29rb25haXNsdWt1IChzYXJqYW51bWVybyknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnRWkgdGFya2lzdHVzdGEnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZWVyaW5lbic7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdLb2tvbmFpc2x1a3UnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRW1haWwtb3NvaXRlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1B1aGVsaW5udW1lcm8gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdWYWxpbnRhIHZhYWRpdGFhbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnVGFya2lzdGEgcyZhdW1sOyZhdW1sO25uJm91bWw7bm11a2Fpc2VsbGEgbGF1c2Vra2VlbGxhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0tlbnQmYXVtbDtuIGFydm8gZWkgb2xlIG0mYXVtbDsmYXVtbDtyaXR0ZWx5biBtdWthaW5lbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnVmFhZGl0dXN0YSBrZW50JmF1bWw7c3QmYXVtbDsgcHV1dHR1dSBhcnZvJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnT2xlIGh5diZhdW1sOyBqYSBhbm5hIGFydm8ga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1N5Jm91bWw7dCZhdW1sOyBudW1lcm8ga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0Fydm9hIGVpIHNhbGxpdHR1IGtlbnQmYXVtbDtzcyZhdW1sOyAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1N5Jm91bWw7dCZhdW1sOyBrb2tvbmFpc2x1a3Uga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1N5Jm91bWw7dCZhdW1sOyBlbWFpbCBvc29pdGUga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnU3kmb3VtbDt0JmF1bWw7IHB1aGVsaW5udW1lcm8ga2VudHQmYXVtbDsmYXVtbDtuICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IGVpIG4mYXVtbDt5dCZhdW1sOyBvbGV2YW4gZW1haWwtb3NvaXRlJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdLZW50JmF1bWw7biBtYWtzaW1pcGl0dXVzIG9uICVzIG1lcmtraSZhdW1sOyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0Vyb3Rpbm1lcmtraSBrZW50aWxsZSBqb3RrYSBwYWxhdXR0YXZhdCBlbmVtbSZhdW1sO24ga3VpbiB5aGRlbiBhcnZvbic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnVGFydml0c2V0ICZxdW90OyVzJnF1b3Q7IG9pa2V1ZGV0IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDtrc2VzaSB0JmF1bWw7dCZhdW1sOyB0b2ltaW50b2EnOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTaW51bGxhIGVpIG9sZSB0YXJ2aXR0YXZpYSBvaWtldWtzaWEnOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0tlbnR0aWVuIGomYXVtbDtyamVzdHlzIHAmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdMb21ha2UgcG9pc3RldHR1JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdLZW50dCZhdW1sOyBwb2lzdGV0dHUnOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQXNldHVrc2V0IHAmYXVtbDtpdml0ZXR0eSc7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1NpbnVuIHRhcnZpdHNlZSB2YWxpdGEgJnF1b3Q7JXMmcXVvdDsgamF0a2Fha3Nlc2knOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ1YmYXVtbDtoaW50JmF1bWw7JmF1bWw7biB5a3NpIGtvaGRlIHRhcnZpdGFhbic7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdIYWx1YXRrbyB2YXJtYXN0aSBwb2lzdGFhIGxvbWFra2VlbiAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnSGFsdWF0a28gdmFybWFzdGkgcG9pc3RhYSBrZW50JmF1bWw7biAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMaXMmYXVtbDthc2V0dWtzZXQgZWl2JmF1bWw7dCBvbGUgdmFsaXR0YXZpc3NhIGVubmVuIGtlbnQmYXVtbDtuIHR5eXBpbiB2YWxpbnRhYSc7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0tlbnQmYXVtbDtuIG5pbWkgJnF1b3Q7JXMmcXVvdDsgb24gam8gayZhdW1sO3l0Jm91bWw7c3MmYXVtbDsuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdLZW50JmF1bWw7bGwmYXVtbDsgdHVsZWUgb2xsYSBuaW1pJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ1R1bnRlbWF0b24nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ3BpdHV1czogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBsYWF0aWtrb2EnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbGludGFhJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgbWVya2tpJmF1bWw7Lic7CiRsYW5nWydvcmRlciddID0gJ0omYXVtbDtyamVzdHlzJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW2VpIG0mYXVtbDsmYXVtbDtyaXRldHR5XSc7CiRsYW5nWydhZGRlZCddID0gJ2xpcyZhdW1sO3R0eSc7CiRsYW5nWyd1cGRhdGVkJ10gPSAncCZhdW1sO2l2aXRldHR5JzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ0omYXVtbDtyamVzdHlzIGFzZXR1a3NldCB0dWxvc3RlZXNzYSc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnVmFsaXRzZSB5a3NpJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmFsaXRzZSB0eXlwcGknOwokbGFuZ1sndG8nXSA9ICdUbyc7CiRsYW5nWyd5ZXMnXSA9ICdLeWxsJmF1bWw7JzsKJGxhbmdbJ25vJ10gPSAnRWknOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3Zhc3RhYW5vdHRhamF0JzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBtYWhkb2xsaXN0YSB0aWVkb3N0b2EnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBtJmF1bWw7JmF1bWw7ciZhdW1sO25wJmF1bWw7JmF1bWw7dCZhdW1sOyc7CiRsYW5nWydzYXZlJ10gPSAnVGFsbGVubmEnOwokbGFuZ1snYWRkJ10gPSAnTGlzJmF1bWw7JmF1bWw7JzsKJGxhbmdbJ3VwZGF0ZSddID0gJ1AmYXVtbDtpdml0JmF1bWw7JzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVGFsbGVubmEgamEgamF0a2EgbXVva2thdXN0YSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ1RpZXRvYSc7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWFhdHRpbmVuJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnTG9tYWtrZWV0JzsKJGxhbmdbJ2Zvcm0nXSA9ICdMb21ha2UgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0FzZXR1a3NldCc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnS2VudCZhdW1sO24gJnF1b3Q7dmFhZGl0dHUmcXVvdDsgdGlsYSBwJmF1bWw7aXZpdGV0dHknOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWFrc2ltaSBrb2tvJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUCZhdW1sOyZhdW1sO3R0ZWV0JzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdTYWxsaXR1dCB0aWVkb3N0b3R5eXBpdCc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ0xhZGF0dHUgdGllZG9zdG8gb24gbGlpYW4gc3V1cmkuIFN1dXJpbiBzYWxsaXR0dSBrb2tvIG9uOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RpZWRvc3RvbiB0eXlwcGkmYXVtbDsgZWkgb2xlIHNhbGxpdHR1LiBUYXJraXN0YSB0aWVkb3N0b24gdHl5cHBpLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYXRhYSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnTG9tYWtlIHR1b3R1JzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0xvbWFra2VlbiB0dW9udGkgZXAmYXVtbDtvbm5pc3R1aS4gWE1MLXRpZWRvc3RvdmlyaGUuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyByaXZpJmF1bWw7JzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBzYXJha2V0dGEnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIHR1bm5pbiBrZWxsbyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQgdHVubmluIGtlbGxvJzsKJGxhbmdbJ2hvdXInXSA9ICdUdW50aSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dXR0aSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFhbmknOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0FsdWU6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnS2lpdG9zLiBMb21ha2Ugb24gdGFsbGVubmV0dHUnOwokbGFuZ1snZWRpdCddID0gJ011b2trYWEnOwokbGFuZ1snZGVsZXRlJ10gPSAnUG9pc3RhJzsKJGxhbmdbJ2RheSddID0gJ1AmYXVtbDtpdiZhdW1sOyc7CiRsYW5nWydtb24nXSA9ICdLdXVrYXVzaSc7CiRsYW5nWyd5ZWFyJ10gPSAnVnVvc2knOwokbGFuZ1snbm9uZSddID0gJyhlaSBtaXQmYXVtbDsmYXVtbDtuKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHV1bGluIGFzZW5udXMgcG9pc3RldHR1JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHV1bGluIHZlcnNpbyAlcyBhc2VubmV0dHUuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdXVsaSBwJmF1bWw7aXZpdGV0dHkgdmVyc2lvb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1Rha2Fpc2luLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdMJmF1bWw7aGV0JmF1bWw7IGxvbWFrZSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdKYXRrYSc7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnVmFsaXR0dSc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdFaSB2YWxpdHR1JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUCZhdW1sOyZhdW1sO3NpdnUnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0xvbWFra2VlbiB0dWxvc3R1c2FzZXR1a3NldCc7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnTG9tYWtrZWVuIGwmYXVtbDtoZXR5cyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEtYXNldHVrc2V0JzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0xpcyZhdW1sO2FzZXR1a3NldCc7CiRsYW5nWyd0YWJfdGVtcGxhdGVsYXlvdXQnXSA9ICdMb21ha2tlZW4gcG9oamEnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ0wmYXVtbDtoZXR5c3BvaGphJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+VCZhdW1sO3NzJmF1bWw7IGtlbnQmYXVtbDtzcyZhdW1sOyB2b2l0IGsmYXVtbDt5dHQmYXVtbDsmYXVtbDsgc21hcnR5LW11dXR0dWppYTwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHZhbGludG9qYSc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1BvaXN0YSB2YWxpdHV0IHZhbGlubmF0JzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHZhbGludGFsYWF0aWtvaXRhJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnUG9pc3RhIHZhbGl0dXQgdmFsaW50YWxhYXRpa290JzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kgb3NvaXRlJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnUG9pc3RhIHZhbGl0dXQgb3NvaXR0ZWV0JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0xpcyZhdW1sOyZhdW1sOyB1dXNpIGtvaGRlJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1BvaXN0YSB2YWxpdHV0IGtvaHRlZXQnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdJUC1vc29pdHRlZXN0YXNpIG9uIHR1bGx1dCBsaWlhbiBtb250YSBlbWFpbGlhLiBSb3NrYXBvc3RpdHVubmlzdHVzIG9uIGVzdCZhdW1sO255dCBsJmF1bWw7aGV0eWtzZXQuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ01haGRvbGxpbmVuIHNwYW0tdmllc3RpdHlzIElQOnN0JmF1bWw7ICVzIGVzdGV0dHkuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdKJmF1bWw7cmplc3QmYXVtbDsga2VudHRpJmF1bWw7JzsKJGxhbmdbJ2NhbmNlbCddID0gJ1BlcnUnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnQXJ2bzogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0EgcmVndWxhciBleHByZXNzaW9uIHRvIGFsbG93IGZpbHRlcmluZyBjYXRhbG9nZXIgaXRlbXMgYnkgbmFtZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ01vbml2YWxpbnRha2VudCZhdW1sO24ga29ya2V1cyc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnS2VudCZhdW1sO24ga29ya2V1cyc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdUYWxsZW5udXNrYW5zaW8gdGllZG9zdG9pbGxlJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnSyZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR0ZWxlbSZhdW1sOyB0YWdpJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdQYWdlIHRvIHJldHVybiB0byB3aXRoIHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1N1Ym1pdHRlZCB3aXRoIGZvcm1idWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzIGNhdGVnb3J5JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ1NlbGl0ZSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ01ha3NpbWlwaXR1dXMnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdWYWxpbnRhbGFhdGlrb24gb3RzaWtrbyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1ZhbGludGFwYWxsb24gb3RzaWtrbyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnQXJ2byBrdW4gdmFsaXR0dSc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdBcnZvIGt1biBlaSB2YWxpdHR1JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdWYWxpbnRhbGFhdGlra28gcnlobSZhdW1sO24gdGllZG90JzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1BvaXN0YT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VmFsaXRzZSB5a3NpJnF1b3Q7IHRla3N0aSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnVmFsaW5uYW4gbiZhdW1sO3l0dCZvdW1sOyBuaW1pJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnVmFsaW5uYW4gb3RzaWtrbyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnT2xldHVzdmFsaW50YSc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ09sZXR1c3ZhbGludGEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdPbGV0dXN2YWxpbnRhJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnVmFsaW5uYW4gbmltaSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdBcnZvJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdBbGFzdmV0b3ZhbGlrb24gdmFsaW5uYXQnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ01vbml2YWxpbm5hbiB2YWlodG9laGRvdCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnVmFzdGFhbm90dGFqYW4gZW1haWwtb3NvaXRlJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnS29oZGV0aWVkb3N0b24gbmltaSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtOaW1pJnF1b3Q7IGVtYWlsaWluJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdLJmF1bWw7eXQmYXVtbDsgbCZvdW1sO3lzJmF1bWw7JmF1bWw7IGVtYWlsLXRhcmtpc3R1c3RhJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0smYXVtbDt5dCZhdW1sOyBsJm91bWw7eXMmYXVtbDsmYXVtbDsgZW1haWwtdGFya2lzdHVzdGEgKGVzaW0uICZxdW90O3hAeSZxdW90OyBzYWxsaXRhYW4gJnF1b3Q7eEB5LnRsZCZxdW90OyBzaWphc3RhKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtMJmF1bWw7aGV0dCZhdW1sO2omYXVtbDtuIG9zb2l0ZWwmcXVvdDsgKEZyb206KSBlbWFpbGlpbic7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsaW4gbWVya2lzdCZvdW1sO2tvb2RhdXMnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdUaWVkb3N0b25pbWknOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIGFpaGUgcml2aSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdMb21ha2tlZW4gbmltaSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0xvbWFra2VlbiB0aWxhJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnVmFsbWlzIGsmYXVtbDt5dGV0dCZhdW1sO3YmYXVtbDtrc2knOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0VpIHZhbG1pcyEnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1NpdnUsIGpvbGxlIGwmYXVtbDtoZXR5a3NlbiBqJmF1bWw7bGtlZW4gc2lpcnJ5dCZhdW1sOyZhdW1sO24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ0xvbWFrZSB0YXJ2aXRzZWUgam9ua3VuIGtvaHRlZW4gayZhdW1sO3l0dCZhdW1sO2omYXVtbDtuIHN5Jm91bWw7dHRlZWxsZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2smYXVtbDt5dHQmYXVtbDsmYXVtbDsgdCZhdW1sO3QmYXVtbDsgb2lrb3BvbGt1YSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnTG9tYWtrZWVuIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnTG9tYWtrZWVuIGtlbnQmYXVtbDt0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnS2VudCZhdW1sO24gaWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdOJmF1bWw7eXQmYXVtbDsga2VudHRpZW4gYWxpYXNuaW1ldCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnS2VudCZhdW1sO24gbmltaSc7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0tlbnQmYXVtbDtuIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1ZhbGludGFwYWxsbyByeWhtJmF1bWw7biB0aWVkb3QnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0tlbnQmYXVtbDtuIHR5eXBwaSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTGlzJmF1bWw7JmF1bWw7IHV1c2kgbG9tYWtlJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ04mYXVtbDt5dCZhdW1sOyBMb21hZ2UgZ2VuZXJhYXR0b3JpbiB2ZXJzaW8/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnVGhpcyB3aWxsIGVtYmVkIHlvdXIgaW5zdGFsbGVkIHZlcnNpb24gbnVtYmVyIG9mIEZvcm0gQnVpbGRlciBtb2R1bGUgaW4gYSBjb21tZW50LCB0byBhaWQgaW4gZGVidWdnaW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMaXMmYXVtbDsmYXVtbDsgdXVzaSBrZW50dCZhdW1sOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdMb21ha2tlZW4gbCZhdW1sO2hldCZhdW1sOyBrZW50JmF1bWw7biB0ZWtzdGknOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdMaXMmYXVtbDsmYXVtbDsgbG9tYWtrZWVuIGwmYXVtbDtoZXQmYXVtbDsgbmFwcGlpbiBqYXZhc2NyaXB0aSBrb29kaSBqb2thIGF1dHRhYSBlc3QmYXVtbDttJmF1bWw7JmF1bWw7biB0dXBsYSBsJmF1bWw7aGV0eWtzZW4nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0xpcyZhdW1sOyZhdW1sOyB0dXJ2YSBzY3JpcHRpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdMb21ha2tlZW4gJnF1b3Q7U2V1cmFhdmEmcXVvdDsgbmFwaW4gdGVrc3RpIChLJmF1bWw7eXRldCZhdW1sOyZhdW1sO24gdmFpbiB1c2VhbXBpIHNpdnVpc2lsbGEgbG9tYWtrZWlsbGEpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdMb21ha2tlZW4gJnF1b3Q7RWRlbGxpbmVuJnF1b3Q7IG5hcGluIHRla3N0aSAoSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuIHZhaW4gdXNlYW1waSBzaXZ1aXNpbGxhIGxvbWFra2VpbGxhKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnS2VudCZhdW1sO24gdmFsaWRvaW50aSc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0xvbWFra2VlbiBDU1MgY2xhc3MnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnS2VudCZhdW1sO24gQ1NTIGNsYXNzJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnVmFhZGl0dHVqZW4ga2VudHRpZW4gc3ltYm9saSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1ZhYWRpdGFhbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnVCZhdW1sO3N0JmF1bWw7IGtlbnQmYXVtbDtzdCZhdW1sOyB2YWFkaXRhYW4gc3kmb3VtbDt0ZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnUGlpbG90YSBvdHNpa2tvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1BpaWxvdGEga2VudCZhdW1sO24gbmltaSBsb21ha2tlZWxsYSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnTiZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBraWludGUmYXVtbDsgdGVrc3RpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnSyZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBzJmF1bWw7JmF1bWw7bm4mb3VtbDtubXVrYWluZW4gbGF1c2VrZSc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnS3VpbmthIG1vbnRhIHJpdmkmYXVtbDsgbiZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuJzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdFaSBvbGV0dXN0YSc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1NpdnUsIGpvbGxlIHNpaXJyeXQmYXVtbDsmYXVtbDtuIGh5diZhdW1sO2tzeW5uJmF1bWw7biBqJmF1bWw7bGtlZW4nOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICZxdW90O3ZhbGlkYXRpb24gdHlwZSZxdW90OyBpcyBzZXQgdG8gYSByZWdleC1yZWxhdGVkIG9wdGlvbi4gSW5jbHVkZSBhIGZ1bGwgUGVybC1zdHlsZSByZWdleCwgaW5jbHVkaW5nIHRoZSBzdGFydC9zdG9wIHNsYXNoZXMgYW5kIGZsYWdzIChlLmcuLCAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcSYjMDM5O2QnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdQaWlsb3RhIHZpcmhlZXQnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0xvbWFra2VlbiBuJmF1bWw7eXQmb3VtbDtuIHR5eXBwaSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnRXN0JmF1bWw7IGthaWtraWVuIGRlYnVnIHZpZXN0aWVuIG4mYXVtbDt5dHQmYXVtbDttaW5lbic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIHBvaGphJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ1NpaXJyZXR0JmF1bWw7diZhdW1sO24gdGllZG9zdG9uIG1ha3NpbWlrb2tvIChraWxvdGF2dWluYSknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdUaWVkb3N0b24gbWFrc2ltaWtva29vbiB2YWlrdXR0YWEgdCZhdW1sO20mYXVtbDtuIG0mYXVtbDsmYXVtbDtyaXR5a3NlbiBsaXMmYXVtbDtrc2kgcGhwLXR1bGtpbiBqYSB3ZWItcGFsdmVsaW1lbiBhc2V0dWtzaXNzYSBvbGV2YXQgcmFqb2l0dWtzZXQuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnU2FsbGl0dXQgcCZhdW1sOyZhdW1sO3R0ZWV0JzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdTeSZvdW1sO3QmYXVtbDsgcGlsa3VpbGxhIGVyb3RldHR1IGxpc3RhIHAmYXVtbDsmYXVtbDt0dGVpc3QmYXVtbDssIGlsbWFuIHBpc3RldHQmYXVtbDsgKGVzaW0uICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIFYmYXVtbDtsaWx5Jm91bWw7bnRlaiZhdW1sOyBlaSBodW9taW9pZGEuIEpvcyBqJmF1bWw7dCZhdW1sO3QgdCZhdW1sO20mYXVtbDtuIHR5aGomYXVtbDtrc2ksIHJham9pdHVzdGEgZWkgb2xlLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnTiZhdW1sO3l0JmF1bWw7IHJham9pdHVrc2V0JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnTG9tYWtrZWVuIG4mYXVtbDt5dHQmYXVtbDttaXNlZW4gayZhdW1sO3l0ZXR0JmF1bWw7diZhdW1sOyBwb2hqYSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpdnUgJXMgLyAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnS2VudCZhdW1sO2xsZSBlaSBvbGUgbGlzJmF1bWw7YXNldHVrc2lhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdTYWxsaSBub3BlYSBrZW50JmF1bWw7biBsaXMmYXVtbDt5cyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ1NhbGxpIG5vcGVhIGtlbnQmYXVtbDtuIGxpcyZhdW1sO3lzJzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdQaWthIGxpcyZhdW1sO3lzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnVCZhdW1sO20mYXVtbDsgdmFsaW50YSBzYWxsaWkgbWFrc2ltaXNzYWFuIDEwIGVtYWlsaWEgc2FtYXN0YSBJUCBvc29pdHRlc3RhIHR1bm5pc3NhJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0FrdGl2b2kgYW50aS1zcGFtIHRvaW1pbm5vdCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnTiZhdW1sO3l0JmF1bWw7IGtlbnR0aWVuIGlkOnQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdLJmF1bWw7eXQmYXVtbDsgdCZhdW1sO3QmYXVtbDsgbG9tYWtrZWVuIG5pbWUmYXVtbDsnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTCBGb3JtIC10dW9udGknOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdLJmF1bWw7eXQmYXVtbDsgdCZhdW1sO3QmYXVtbDsgbG9tYWtrZWVuIGFsaWFzdGEnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0smYXVtbDt5dCZhdW1sOyBIVE1MIGVtYWlsaWEnOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdUJmF1bWw7eXQmYXVtbDsgYXV0b21hYXR0aXNlc3RpJzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdPbGV0dXMgVVJMIGxpbmtpbGxlJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ09sZXR1cyB0ZWtzdGkgbGlua2lsbGUnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xpbmtraSBzaXZ1c3RvbiBzaXZ1dW4nOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnSyZhdW1sO3l0ZXQmYXVtbDsmYXVtbDtuayZvdW1sOyBDYXB0Y2hhLXN1b2phdXN0YSB0aWVkb3N0b2plbiBzaWlycm9zc2E/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0F2dXN0ZXRla3N0aSBDYXB0Y2hhbGxlJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmtpbiB0ZWtzdGknOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmtpbiBrb2hkZW9zb2l0ZSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ09sZXR1a3NlbmEgdmFsaXR0dT8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0smYXVtbDt5dCZhdW1sOyAyNCB0dW5uaW4ga2VsbG9hPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1ZhaW4gcnlobSZhdW1sO3NzJmF1bWw7ICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ04mYXVtbDt5dCZhdW1sOyBrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO2xsZT8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdQb2hqYW4gbXV1dHR1amF0JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1NhYXRhdmlsbGEgb2xldmF0IG11dXR0dWphdCc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQLW11dXR0dWphJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnTCZhdW1sO2hldHlzcHZtJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdQYWx2ZWxpbWVzaSc7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdMb21ha2VrJmF1bWw7eXR0JmF1bWw7aiZhdW1sO24gSVAtb3NvaXRlJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ0xvbWFrZXNpdnVuIFVSTCc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnU2Fya2Fpbm1lcmtraSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ0ZpZWxkcyB0aGF0IGhhdmUgbXVsdGlwbGUgdmFsdWVzIG1heSBhbHNvIGJlIGFjY2Vzc2VkIHZpYSB0aGUgc21hcnR5IHZhbHVlIG9mICRmaWVsZG5hbWVfYXJyYXkgb3IgJGZsZF8jX2FycmF5Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdLb2hkZXNpdnUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnVmFhZGkga2VudHRpZW4gbmltZXQnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdWYWFkaXRhYW5rbyBrZW50aWxsZSBuaW1pPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1ZhYWRpIHlrc2lsJm91bWw7bGxpc2V0IGtlbnR0JmF1bWw7bmltZXQnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1ZhYWRpdGFhbmtvIGtlbnRpbGxlIHlrc2lsJm91bWw7bGxpc2V0IG5pbWV0Pyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdVdWRlbGxlZW5qJmF1bWw7cmplc3QmYXVtbDsga2VudCZhdW1sO3QnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ0xhdGFhIHBvaGphJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ1RhcnZpdHNldGtvIGxpcyZhdW1sOyZhdW1sOyBrZW50dCZhdW1sO3R5eXBwZWomYXVtbDs/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnVmFpaGRhIGVkaXN0eW5lZXNlZW4gdGlsYW4nOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdWYWloZGEgcGVydXN0aWxhYW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ09sZXR1c3BvaGphJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnVGFtbWlrdXUnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0hlbG1pa3V1JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYWFsaXNrdXUnOwokbGFuZ1snZGF0ZV9hcHJpbCddID0gJ0h1aHRpa3V1JzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnVG91a29rdXUnOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnS2VzJmF1bWw7a3V1JzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0hlaW4mYXVtbDtrdXUnOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdFbG9rdXUnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTeXlza3V1JzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ0xva2FrdXUnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ01hcnJhc2t1dSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnSm91bHVrdXUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0xvbWFra2VlbiBsJmF1bWw7aGV0eWtzZXNzJmF1bWw7IHRhcGFodHVpIHZpcmhlLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdGb3JtQnVpbGRlciBzdWJtaXQgZXJyb3I6ICVzJzsKJGxhbmdbJ3VwbG9hZHNfZXJyb3InXSA9ICdFcnJvciBjb21taXR0aW5nIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdDb3VsZCBub3QgZmluZCB0aGUgdXBsb2FkcyBtb2R1bGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ1VwbG9hZC9BdHRhY2htZW50IGVycm9yIG9uIGZpbGUgJXMgKHRtcF9uYW1lOiAlcywgb2YgdHlwZSAlcyknOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvcl9maWxlX2xvY2snXSA9ICdFcnJvci4gVW5hYmxlIHRvIG9idGFpbiBsb2NrIGZvciBmaWxlLic7CiRsYW5nWyd1bmNoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IHVuY2hlY2tlZCc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiBjaGVja2VkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkVtYWlsIFRlbXBsYXRlIG5vdCB5ZXQgc2V0ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQ2Fubm90IGZpbmQgcmVxdWlyZWQgbW9kdWxlIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jlc3BvbnNlIElELiBVc2VkIGJ5IEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdEZWZhdWx0IGZpZWxkIHZhbHVlczsgc2VlIG1vZHVsZSBoZWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0ZpZWxkIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnR2VuZXJhbCBwYXJhbWV0ZXJzIGZvciBpbnRlcm5hbCBvcGVyYXRpb25zJzsKJGxhbmdbJ3RlbXBsYXRlX3ZhcmlhYmxlX2hlbHAnXSA9ICc8aDM+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+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDcsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+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+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4NCic7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE1MjQ3Mzk1NTIuMTIwMzc2ODIzMS4xMjE2NzE2NDE0LjEyMTY3MTk1NjEuMjEnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA0NDg2NzI1LjIuMi51dG1jY249KG9yZ2FuaWMpfHV0bWNzcj1nb29nbGV8dXRtY3RyPWNtc21hZGVzaW1wbGUgd2lraSBsYW5ndWFnZXx1dG1jbWQ9b3JnYW5pYyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1R5cGUgZGUgY2hhbXAgbm9uIHJlbnNlaWduJmVhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnUyZlYWN1dGU7bGVjdGlvbm5lciB1biAob3UgcGxpc2lldXJzKSBpdGVtcyBkZSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW4gZGUgY2hhbXAgcmVuc2VpZ24mZWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRCZlYWN1dGU7YnV0IGRlIGNoYW1wIHJlbnNlaWduJmVhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdMaWduZSBkZSB0ZXh0ZSBzaW1wbGUnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnTGlnbmVzIGRlIHRleHRlIG11bHRpcGxlcyc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdab25lIGRlIHRleHRlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0JvaXRlICZhZ3JhdmU7IGNvY2hlcic7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0dyb3VwZSBkZSBib2l0ZSAmYWdyYXZlOyBjb2NoZXInOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnTWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb24gbXVsdGlwbGUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnUyZlYWN1dGU7bGVjdGlvbm5lciB1biAmZWFjdXRlO3RhdCBkZXMgVVNBJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW5lIFByb3ZpbmNlIGR1IENhbmFkYSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW4gcGF5cyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXIgdW5lIGRhdGUnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTJmVhY3V0ZTtsZWN0aW9ubmVyIHVuZSBoZXVyZSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dyb3VwZSBkZSBib3V0b24gUmFkaW8nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkFkcmVzc2VyIHBhciBtYWlsIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGFwciZlZ3JhdmU7cyBjaG9peCBwYXIgbWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F1dmVnYXJkZXIgbGVzIHImZWFjdXRlO3N1bHRhdHMgdmVycyB1biBmaWNoaWVyIGFwciZlZ3JhdmU7cyBjaG9peCBwYXIgbWVudSBkJmVhY3V0ZTtyb3VsYW50JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXV2ZWdhcmRlciBlbiBmaWNoaWVyKHMpIGxlcyByJmVhY3V0ZTtzdWx0YXRzIGRlcyBzJmVhY3V0ZTtsZWN0aW9ucyBtdWx0aXBsZXMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyaWdlciB2ZXJzIGxhIHBhZ2UgJmFncmF2ZTsgcGFydGlyIGQmIzAzOTt1biBtZW51IGQmZWFjdXRlO3JvdWxhbnQnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVudm95ZXIgcGFyIG1haWwgbGVzIHImZWFjdXRlO3N1bHRhdHMgYXV4IGFkcmVzc2VzIGZvdXJuaWVzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0aW9uIHZpYSBhZHJlc3NlIG1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqJkVhY3V0ZTtjcmlyZSBsZXMgciZlYWN1dGU7c3VsdGF0cyBkYW5zIHVuIGZpY2hpZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b2NrZXIgbGVzIHImZWFjdXRlO3N1bHRhdHMgZGFucyBsYSBiYXNlIGRlIGRvbm4mZWFjdXRlO2VzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9ja2VyIGxlcyByJmVhY3V0ZTtzdWx0YXRzIHBvdXIgbGUgbW9kdWxlIEZvcm1Ccm93c2VyIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypBcHBlbGVyIHVuIHRhZyB1dGlsaXNhdGV1ciBhdmVjIGxlIGZvcm11bGFpcmUgciZlYWN1dGU7c3VsdGF0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW52b3llciBwYXIgbWFpbCBhdXggdXRpbGlzYXRldXJzIGF5YW50IGZvdXJuaSB1bmUgYWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqTWFpbCB2ZXJzIGwmIzAzOTthZG1pbnN0cmF0ZXVyIGR1IENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVNhdXQgZGUgcGFnZSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpY2hpZXIgJmFncmF2ZTsgRW52b3llcic7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0NoYW1wIGR1IG1haWwgJnF1b3Q7RnJvbSBBZHJlc3NlJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdDaGFtcCBkdSBtYWlsICZxdW90O0Zyb20gQWRyZXNzZSZxdW90OyAmYWdyYXZlOyBub3V2ZWF1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnQ2hhbXAgZHUgbWFpbCAmcXVvdDtGcm9tIE5vbSZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0NoYW1wIGR1IG1haWwgJnF1b3Q7U3VqZXQmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctVGV4dGUgc3RhdGlxdWUnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctTGllbiBzdGF0aXF1ZSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpZW4gKHV0aWxpc2F0ZXVyIGNvbm51KSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLUNoYW1wIGNhY2gmZWFjdXRlOyc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQ2hhbXAgY2FsY3VsJmVhY3V0ZTsnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctRW50aWVyIHVuaXF1ZSAoUyZlYWN1dGU7cmllKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdTYW5zIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtJmVhY3V0ZTtyaXF1ZSc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdFbnRpZXInOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnQWRyZXNzZSBtYWlsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ051bSZlYWN1dGU7cm8gZGUgdCZlYWN1dGU7bCZlYWN1dGU7cGhvbmUgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEb2l0ICZlY2lyYzt0cmUgdiZlYWN1dGU7cmlmaSZlYWN1dGU7JzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdWYWxpZGVyIGwmIzAzOTtleHByZXNzaW9uIHJlZ3VsaSZlZ3JhdmU7cmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTmUgcGFzIHZhbGlkZXIgbCYjMDM5O2V4cHJlc3Npb24gcmVndWxpJmVncmF2ZTtyZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnVW4gY2hhbXAgb2JsaWdhdG9pcmUgbiYjMDM5O2EgcGFzICZlYWN1dGU7dCZlYWN1dGU7IHJlbXBsaSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgdmFsZXVyIHBvdXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVmV1aWxsZXogZW50cmVyIHVuIG5vbWJyZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgdmFsZXVyIGNvcnJlY3RlIHBvdXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWZXVpbGxleiBlbnRyZXIgdW5lIHZhbGV1ciBlbnRpJmVncmF2ZTtyZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1ZldWlsbGV6IGVudHJlciB1bmUgYWRyZXNzZSBtYWlsIHZhbGlkZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdBZHJlc3NlIG1haWwgbmUgY29ycmVzcG9uZCBwYXMgJmFncmF2ZTsgbGEgdmFsZXVyIGRlICZxdW90OyUgcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1ZldWlsbGV6IGVudHJlciB1biBudW0mZWFjdXRlO3JvIGRlIHQmZWFjdXRlO2wmZWFjdXRlO3Bob25lIHZhbGlkZSBwb3VyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IG5lIHNlbWJsZSBwYXMgJmVjaXJjO3RyZSB1bmUgYWRyZXNzZSBtYWlsIHZhbGlkZSAhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdWZXVpbGxleiBlbnRyZXIgdW5lIHZhbGV1ciBheWFudCBtb2lucyBkZSAlcyBjYXJhY3QmZWdyYXZlO3Jlcyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NhcmFjdCZlZ3JhdmU7cmVzIHV0aWxpcyZlYWN1dGU7cyBjb21tZSAmcXVvdDtzJmVhY3V0ZTtwYXJhdGV1ciZxdW90OyBkYW5zIGxlcyBmb3JtdWxhaXJlcyByZSZjY2VkaWw7dXMgY29udGVuYW50IHBsdXMgZCYjMDM5O3VuZSB2YWxldXImbmJzcDsnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0lsIHZvdXMgZmF1dCAmcXVvdDslcyZxdW90OyBsYSBwZXJtaXNzaW9uIGQmIzAzOTsmZWFjdXRlO3gmZWFjdXRlO2N1dGVyIGNldHRlIG9wJmVhY3V0ZTtyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnRCZlYWN1dGU7c29sJmVhY3V0ZTsgISBWb3VzIG4mIzAzOTthdmV6IHBhcyBsZXMgZHJvaXRzIHN1ZmZpc2FudHMgcG91ciBhY2MmZWFjdXRlO2RlciAmYWdyYXZlOyBjZXR0ZSBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnT3JkcmUgZGVzIGNoYW1wcyBtaXMgJmFncmF2ZTsgam91ci4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYWlyZSBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdDaGFtcCBzdXBwcmltJmVhY3V0ZTsuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gbWlzZSAmYWdyYXZlOyBqb3VyLic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ1YmZWFjdXRlO3JpZmlleiAmcXVvdDslcyZxdW90OyBwb3VyIHBvdXZvaXIgY29udGludWVyLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnVm91cyBkZXZleiBwciZlYWN1dGU7Y2lzZXIgYXUgbW9pbnMgdW5lIGFkcmVzc2UgZGUgZGVzdGluYXRpb24gISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdWb3VsZXogdm91cyB2cmFpbWVudCBzdXBwcmltZXIgbGUgZm9ybXVsYWlyZSAlcyA/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdWb3VsZXogdm91cyB2cmFpbWVudCBzdXBwcmltZXIgbGUgY2hhbXAgJXMgPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdMZXMgb3B0aW9ucyBhdmFuYyZlYWN1dGU7ZXMgbmUgc2Vyb250IGRpc3BvbmlibGVzIHF1ZSBsb3JzcXVlIHF1JiMwMzk7dW4gdHlwZSBkZSBjaGFtcCBhdXJhICZlYWN1dGU7dCZlYWN1dGU7IGNob2lzaS4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdJbCBleGlzdGUgZCZlYWN1dGU7aiZhZ3JhdmU7IHVuIGNoYW1wICZxdW90OyVzJnF1b3Q7IHV0aWxpcyZlYWN1dGU7LiBVdGlsaXNleiBkZXMgbm9tcyBkZSBjaGFtcCB1bmlxdWVzIG91IGQmZWFjdXRlO3NhY3RpdmV6IGNldHRlIGZvbmN0aW9uIGRhbnMgbGEgY29uZmlndXJhdGlvbiBkZSBGb3JtIEJ1aWxkZXIuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdUb3VzIGxlcyBjaGFtcHMgZG9pdmVudCAmZWNpcmM7dHJlIG5vbW0mZWFjdXRlO3MsIHNpbm9uIGQmZWFjdXRlO3NhY3RpdmV6IGNldHRlIGZvbmN0aW9uIGRhbnMgbGEgY29uZmlndXJhdGlvbiBkZSBGb3JtIEJ1aWxkZXIuJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bWUnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xvbmd1ZXVyIDogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBibyZpY2lyYzt0ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjYXJhY3QmZWdyYXZlO3Jlcy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRyZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tub24gc3BlY2lmaWVdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnYWpvdXQmZWFjdXRlOyc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnbWlzICZhZ3JhdmU7IGpvdXInOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnVHJpZXIgbGVzIG9wdGlvbnMgJmFncmF2ZTsgbCYjMDM5O2V4JmVhY3V0ZTtjdXRpb24mbmJzcDsnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdGlvbm5lei1lbiB1bic7CiRsYW5nWydzZWxlY3RfdHlwZSddID0gJ1MmZWFjdXRlO2xlY3Rpb25uZXogbGUgdHlwZSc7CiRsYW5nWyd0byddID0gJ1BvdXInOwokbGFuZ1sneWVzJ10gPSAnT3VpJzsKJGxhbmdbJ25vJ10gPSAnTm9uJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdkZXN0aW5hdGFpcmVzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBmaWNoaWVycyBwb3NzaWJsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddID0gJ1NhdXZlZ2FyZGVyJzsKJGxhbmdbJ2FkZCddID0gJ0Fqb3V0ZXInOwokbGFuZ1sndXBkYXRlJ10gPSAnTWlzZSAmYWdyYXZlOyBqb3VyJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F1dmVnYXJkZXIgZXQgY29udGludWVyIGwmIzAzOTsmZWFjdXRlO2RpdGlvbic7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpcXVlJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsYWlyZXMnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFpcmUgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0NvbmZpZ3VyYXRpb24nOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0NoYW1wIHJlcXVpcyBtaXMgJmFncmF2ZTsgam91ci4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnVGFpbGxlIE1heGltdW0nOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUeXBlcyBkZSBmaWNoaWVyIGF1dG9yaXMmZWFjdXRlO3MnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdmaWNoaWVyIGVudm95JmVhY3V0ZTsgdHJvcCBsb3VyZCAhIExhIHRhaWxsZSBtYXhpbXVtIGVzdCBkZSA6Jm5ic3A7JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnQ2UgdHlwZSBkZSBmaWNoaWVyIG4mIzAzOTtlc3QgcGFzIGFjY2VwdCZlYWN1dGU7LiBWJmVhY3V0ZTtyaWZpZXIgbCYjMDM5O2V4dGVuc2lvbiBkZSB2b3RyZSBmaWNoaWVyLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdFbnZvaSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsYWlyZSBJbXBvcnQmZWFjdXRlOy4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnTCYjMDM5O2ltcG9ydGF0aW9uIGR1IGZvcm11bGFpcmUgYSAmZWFjdXRlO2Nob3UmZWFjdXRlOyAhIElsIHkgYSB1biBwcm9ibCZlZ3JhdmU7bWUgYXZlYyBsZSBmb3JtYXQgZHUgZmljaGllciBYTUwgLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgbGlnbmVzJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xvbm5lcyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnU3VyIDEyIEhldXJlcyc7CiRsYW5nWycyNF9ob3VyJ10gPSAnU3VyIDI0IEhldXJlcyc7CiRsYW5nWydob3VyJ10gPSAnSGV1cmUnOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpZW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ09yZHJlIDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdNZXJjaSAhIFZvdHJlIGZvcm11bGFpcmUgYSAmZWFjdXRlO3QmZWFjdXRlOyByZSZjY2VkaWw7dS4nOwokbGFuZ1snZWRpdCddID0gJ0VkaXRlcic7CiRsYW5nWydkZWxldGUnXSA9ICdTdXBwcmltZXInOwokbGFuZ1snZGF5J10gPSAnSm91cic7CiRsYW5nWydtb24nXSA9ICdNb2lzJzsKJGxhbmdbJ3llYXInXSA9ICdBbm4mZWFjdXRlO2UnOwokbGFuZ1snbm9uZSddID0gJyhBdWN1biknOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZCZlYWN1dGU7c2luc3RhbGwmZWFjdXRlOy4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbCZlYWN1dGU7ZS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgbWlzICZhZ3JhdmU7IGpvdXIgJmFncmF2ZTsgbGEgdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnUmV0b3VyLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdFbnZveWVyJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ1N1aXZhbnQuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1YmZWFjdXRlO3JpZmkmZWFjdXRlOyc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdOb24gdiZlYWN1dGU7cmlmaSZlYWN1dGU7JzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnUHJpbmNpcGFsJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdQYXJhbSZlZ3JhdmU7dHJlcyBkJiMwMzk7YWZmaWNoYWdlIGR1IEZvcm11bGFpcmUnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Vudm9pIGR1IEZvcm11bGFpcmUnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdPcHRpb25zIENhcHRjaGEgJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ09wdGlvbnMgYXZhbmMmZWFjdXRlO2VzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0dhYmFyaXQgZHUgRm9ybXVsYWlyZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnR2FiYXJpdCBkZSBsJiMwMzk7ZW52b2knOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5MZXMgdmFyaWFibGVzIFNtYXJ0eSBzb250IGFjdGl2ZXMgZGFucyBjZSBjaGFtcC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0Fqb3V0ZXIgcGx1cyBkJiMwMzk7b3B0aW9ucyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ1N1cHByaW1lciBsZXMgb3B0aW9ucyBzJmVhY3V0ZTtsZWN0aW9ubiZlYWN1dGU7ZXMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdBam91dGVyIGQmIzAzOTthdXRyZXMgYm8maWNpcmM7dGVzIGRlIHYmZWFjdXRlO3JpZmljYXRpb24nOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTdXBwcmltZXIgbGVzIGJvJmljaXJjO3RlcyBkZSB2JmVhY3V0ZTtyaWZpY2F0aW9uIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0Fqb3V0ZXIgZCYjMDM5O2F1dHJlcyBhZHJlc3NlcyBtYWlsJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU3VwcHJpbWVyIGxlcyBhZHJlc3NlcyBtYWlsIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBam91dGVyIGQmIzAzOTthdXRyZXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1N1cHByaW1lciBsZXMgZGVzdGluYXRpb25zIHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTtlcyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1Ryb3AgZGUgbWFpbHMgc29udCBnJmVhY3V0ZTtuJmVhY3V0ZTtyJmVhY3V0ZTtlcyAmYWdyYXZlOyBwYXJ0aXIgZGUgdm90cmUgYWRyZXNzZSBJUCAhIExlIHN5c3QmZWdyYXZlO21lIGFudGktc3BhbSBhICZlYWN1dGU7dCZlYWN1dGU7IGFjdGl2JmVhY3V0ZTsgZXQgbGVzIGFkbWluaXN0cmF0ZXVycyBkdSBzaXRlIGVuIG9udCAmZWFjdXRlO3QmZWFjdXRlOyBpbmZvcm0mZWFjdXRlO3MuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ0RlIHBvc3NpYmxlcyBzcGFtcyBwcm92ZW5hbnQgZGUgbCYjMDM5O0lQICVzIG9udCAmZWFjdXRlO3QmZWFjdXRlOyBzdG9wcCZlYWN1dGU7cy4nOwokbGFuZ1sncmVvcmRlciddID0gJ1ImZWFjdXRlO29yZ2FuaXNlciBsZXMgY2hhbXBzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0FubnVsJmVhY3V0ZTsnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsZXVyIGRvbm4mZWFjdXRlO2UgOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnVW5lIGV4cHJlc3Npb24gcmVndWxpJmVncmF2ZTtyZSBwb3VyIGZpbHRyZXIgcGFyIG5vbSBsZXMgaXRlbXMgZGUgQ2F0YWxvZ2VyJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnTGEgaGF1dGV1ciBkdSBjaGFtcCBtdWx0aXBsZSc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnTm9tIGRlIGwmIzAzOTtleHByZXNzaW9uIHJlZ3VsaSZlZ3JhdmU7cmUgcG91ciBDYXRhbG9nZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnSGF1dGV1ciBkdSBjaGFtcCc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEb3NzaWVyIGRlIGRlc3RpbmF0aW9uIHBvdXIgbGVzIGZpY2hpZXJzIGNyJmVhY3V0ZTtlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1RhZyB1dGlsaXNhdGV1ciZuYnNwOyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSBkZSByZXRvdXIgcG91ciBsZXMgbGllbnMgZCYjMDM5O3VwbG9hZHMgKGVudm9pcyknOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdFbnZveSZlYWN1dGU7IGF2ZWMgZm9ybWJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0NhdCZlYWN1dGU7Z29yaWUgZCYjMDM5O1VwbG9hZHMgKGVudm9pcyknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdFbnZveWVyIGNlIGZpY2hpZXIgYXUgbW9kdWxlIGQmIzAzOTt1cGxvYWQnOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnTCZlYWN1dGU7Z2VuZGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdMb25ndWV1ciBtYXhpbXVtJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnSW50aXR1bCZlYWN1dGU7IGRlIGxhICBib2l0ZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0ludGl0dWwmZWFjdXRlOyBkdSBib3V0b24gcmFkaW8nOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1ZhbGV1ciB2JmVhY3V0ZTtyaWZpJmVhY3V0ZTtlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbGV1ciBub24tdiZlYWN1dGU7cmlmaSZlYWN1dGU7ZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnRCZlYWN1dGU7dGFpbHMgZGVzIGdyb3VwZXMgZGVzIGJvaXRlcyBkZSB2JmVhY3V0ZTtyaWZpY2F0aW9ucyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTdXBwcmltZXIgPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXh0ZSBwZXJzb25uYWxpc2FibGUgJnF1b3Q7cyZlYWN1dGU7bGVjdGlvbiZxdW90OyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdWYWxldXIgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlO2UnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTm9tIGQmIzAzOTthZmZpY2hhZ2UgcyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlOyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1N1amV0IHMmZWFjdXRlO2xlY3Rpb25uJmVhY3V0ZTsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1MmZWFjdXRlO2xlY3Rpb24gcGFyIGQmZWFjdXRlO2ZhdXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTJmVhY3V0ZTtsZWN0aW9uIHBhciBkJmVhY3V0ZTtmYXV0Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnUyZlYWN1dGU7bGVjdGlvbiBwYXIgZCZlYWN1dGU7ZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05vbSBkZSBsJiMwMzk7T3B0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl92YWx1ZSddID0gJ1ZhbGV1ciBzb3VtaXNlJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcHRpb25zIHBhciBtZW51IGQmZWFjdXRlO3JvdWxhbnQmbmJzcDsnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wdGlvbnMgZGUgUyZlYWN1dGU7bGVjdGlvbiBtdWx0aXBsZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9hZGRyZXNzJ10gPSAnQWRyZXNzZSBtYWlsIGRlIGRlc3RpbmF0aW9uJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnTm9tIGR1IGZpY2hpZXIgZGUgZGVzdGluYXRpb24mbmJzcDsnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSAgTm9tJnF1b3Q7IHBvdXIgbGUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBhZHJlc3NlIG1haWwgcGx1cyBzb3VwbGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnQXV0b3Jpc2VyIGxlcyBhZHJlc3NlcyBtYWlsIHNhbnMgZXh0ZW5zaW9uIChjLmEuZCA6IGFjY2VwdGVyICZxdW90O25vbUBkb21haW5lJnF1b3Q7ICZhZ3JhdmU7IGxhIHBsYWNlIGRlICZxdW90O25vbUBkb21haW5lLmNvbSZxdW90OyByZXF1aXMgcGFyIGQmZWFjdXRlO2ZhdXQpJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fYWRkcmVzcyddID0gJyZxdW90O0Zyb20gQWRyZXNzZSZxdW90OyBwb3VyIE1haWwgZGUgbCYjMDM5O2V4cCZlYWN1dGU7ZGl0ZXVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW5jb2RhZ2UgZGVzIGNhcmFjdCZlZ3JhdmU7cmVzIGR1IG1haWwmbmJzcDsnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ01lbnUgZCZlYWN1dGU7cm91bGFudCBiYXMmZWFjdXRlOyBzdXIgbGVzIGQmZWFjdXRlO3RhaWxzIGRlIGwmIzAzOTtlbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOb20gZHUgZmljaGllciZuYnNwOyc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTGlnbmUgZHUgc3VqZXQgIGRhbnMgbGUgbWFpbCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb20gZHUgRm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXR1cyBkdSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUHImZWNpcmM7dCAmYWdyYXZlOyAmZWNpcmM7dHJlIGQmZWFjdXRlO3Bsb3kmZWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnUGFzIHByJmVjaXJjO3QnOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgZGUgcmVkaXJlY3Rpb24gYXByJmVncmF2ZTtzIGwmIzAzOTtlbnZvaSBkdSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdBam91dGVyIHVuIGNoYW1wIGF1IGZvcm11bGFpcmUgcG91ciBwb3V2b2lyIG1vZGlmaWVyIGxlcyBjb250cmlidXRpb25zIGRlcyB1dGlsaXNhdGV1cnMuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnVXRpbGlzZXIgY2UgcmFjY291cmNpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdBbGlhcyBkdSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZmllbGRzJ10gPSAnQ2hhbXBzIGR1IEZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJRCBkdSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ01vbnRyZXIgbGVzIGNoYW1wcyBBbGlhcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ29jaGVyIGNldHRlIGNhc2UgbW9udHJlcmEgbGVzIGNoYW1wcyBBbGlhcyBsb3JzIGRlIGwmIzAzOTsmZWFjdXRlO2RpdGlvbiBkZSBjZSBmb3JtdWxhaXJlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdOb20gZGUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdBbGlhcyBkdSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdEJmVhY3V0ZTt0YWlscyBkZXMgZ3JvdXBlcyBkZXMgYm91dG9ucyByYWRpbyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnVHlwZSBkZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAncG91ciBjciZlYWN1dGU7ZXIgdW4gZm9ybXVsYWlyZSByYXBpZGVtZW50Lic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdBam91dGVyIHVuIG5vdXZlYXUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdNb250cmVyIGxhIHZlcnNpb24gZGUgRm9ybSBCdWlsZGVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdDZWxhIGluZGlxdWVyYSBkYW5zIHVuIGNvbW1lbnRhaXJlIGxhIHZlcnNpb24gaW5zdGFsbCZlYWN1dGU7ZSBkdSBtb2R1bGUgRm9ybSBCdWlsZGVyLiBwYXJmb2lzIHV0aWxlIHBvdXIgZGVidWdnZXInOwokbGFuZ1sndGl0bGVfYWRkX25ld19maWVsZCddID0gJ0Fqb3V0ZXIgdW4gbm91dmVhdSBjaGFtcCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0ZSBkdSBib3V0b24gZCYjMDM5O2Vudm9pIGR1IGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBam91dGVyIGR1IEphdmFzY3JpcHQgYXUgYm91dG9uIGQmIzAzOTtlbnZvaSBmaW5hbCBwb3VyIGFpZGVyICZhZ3JhdmU7IGxhIHByJmVhY3V0ZTt2ZW50aW9uIGRlcyBlbnZvaXMgbXVsdGlwbGVzIChzcGFtKSA/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBam91dGVyIHVuIHNjcmlwdCBzJmVhY3V0ZTtjdXJpcyZlYWN1dGU7Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdUZXh0ZSBkdSBib3V0b24gJnF1b3Q7c3VpdmFudCZxdW90OyBkdSBmb3JtdWxhaXJlICh1dGlsaXMmZWFjdXRlOyBwb3VyIGxlcyBmb3JtdWxhaXJlcyBjb21wcmVuYW50IHBsdXNpZXVycyBwYWdlcykmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1RleHRlIGR1IGJvdXRvbiAmcXVvdDtwciZlYWN1dGU7YyZlYWN1dGU7ZGVudCZxdW90OyBkdSBmb3JtdWxhaXJlICh1dGlsaXMmZWFjdXRlOyBwb3VyIGxlcyBmb3JtdWxhaXJlcyBjb21wcmVuYW50IHBsdXNpZXVycyBwYWdlcykmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYXRpb24gZHUgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfdG9fdmFsaWRhdGUnXSA9ICdDaGFtcCAmYWdyYXZlOyB2YWxpZGVyJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ2xhc3NlIENTUyBkZSBjZSBGb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NsYXNzZSBDU1MgZGUgY2UgY2hhbXAmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2xlIGluZGlxdWFudCB1biBjaGFtcCBvYmxpZ2F0b2lyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ1JlcXVpcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnQ2UgY2hhbXAgZXhpZ2UgdW5lIHImZWFjdXRlO3BvbnNlIG9ibGlnYXRvaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdJbnR1dGlsJmVhY3V0ZTsgY2FjaCZlYWN1dGU7Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ01hc3F1ZXIgbGUgbm9tIGRlIGNlIGNoYW1wIGRhbnMgbGUgZm9ybXVsYWlyZSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnVGV4dGUgc3RhdGlxdWUgJmFncmF2ZTsgYWZmaWNoZXImbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdWYWxpZGF0aW9uIFJlZ2V4Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdOb21icmUgZGUgbGlnbmVzICZhZ3JhdmU7IGFmZmljaGVyJm5ic3A7JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdQYXMgZGUgcyZlYWN1dGU7bGVjdGlvbiBwYXIgZCZlYWN1dGU7ZmF1dCZuYnNwOyc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgZGUgcmVkaXJlY3Rpb24gYXByJmVncmF2ZTtzIGFjY2VwdGF0aW9uJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdDZXR0ZSBleHByZXNzaW9uIHImZWFjdXRlO2d1bGkmZWdyYXZlO3JlIHNlcmEgc2V1bGVtZW50IHV0aWxpcyZlYWN1dGU7ZSBzaSAmcXVvdDt0eXBlIGRlIHZhbGlkYXRpb24mcXVvdDsgZXN0IG1pcyBzdXIgdW5lIG9wdGlvbiBhcHBhcmVudCZlZ3JhdmU7ZSByZWdleC4gSW5jbHVzIHVuIHN0eWxlIFBlcmwgcmVnZXggY29tcGxldCwgaW5jbHVhbnQgbGVzIHNsYXNoZXMgZGUgZCZlYWN1dGU7YnV0IGV0IGZpbiBhaW5zaSBxdWUgbGVzIGZsYWdzIChleGVtcGxlIDogJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdBY3RpZic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ0NhY2hlciBsZXMgZXJyZXVycyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnVHlwZSBkJiMwMzk7YWZmaWNoYWdlIGR1IGZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0NhY2hlciBhdXggdXRpbGlzYXRldXJzIGwmIzAzOTthZmZpY2hhZ2UgZGVzIG1lc3NhZ2VzIGQmIzAzOTtlcnJldXIgb3UgZGUgZGVidWdhZ2UuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBkdSBtYWlsJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ1RhaWxsZSBNYXhpbXVtIHBvdXIgbCYjMDM5O2Vudm9pIGRlIGZpY2hpZXIgKGtpbG9ieXRlcykmbmJzcDsnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdDZXR0ZSBsaW1pdGF0aW9uIGVzdCBwcmlvcml0YWlyZSBzdXIgbGVzIGxpbWl0ZXMgcGhwIG91IHN1ciBjZWxsZXMgZGUgbGEgY29uZmlndXJhdGlvbiBkdSBzZXJ2ZXVyIHdlYic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMgYXV0b3JpcyZlYWN1dGU7ZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudHJlciB1bmUgbGlzdGUgcyZlYWN1dGU7cGFyJmVhY3V0ZTtlIHBhciB1biBjYXJhY3QmZWdyYXZlO3JlIGF1dHJlIHF1ZSBsZSBwb2ludCwgKGV4ZW1wbGUgOiAmcXVvdDtqcGcsIGdpZiwganBlZyZxdW90OykuIExlcyBlc3BhY2VzIHNlcm9udCBpZ25vciZlYWN1dGU7cy4gTGFpc3NlciB2aWVyZ2Ugc2lnbmlmaWUgJnF1b3Q7YXVjdW5lIHJlc3RyaWN0aW9uJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdBZmZpY2hlciBsZXMgcmVzdHJpY3Rpb25zID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnQWZmaWNoZXIgbGVzIHJlc3RyaWN0aW9ucyBkZSB0YWlsbGVzIGV0IGQmIzAzOTtleHRlbnNpb25zIHBvdXIgbGUgY2hhbXAgZCYjMDM5O3VwbG9hZCA/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdHYWJhcml0ICZhZ3JhdmU7IHV0aWxpc2VyIHBvdXIgYWZmaWNoZXIgbGUgZm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgJmFncmF2ZTsgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0NoYW1wIHNhbnMgb3B0aW9uIGF2YW5jJmVhY3V0ZTtlLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dGUgcmVudm95JmVhY3V0ZTsgcG91ciBsZXMgdmFsZXVycyBkZSBjaGFtcCBub24gc3AmZWFjdXRlO2NpZmkmZWFjdXRlOyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnQXV0b3Jpc2VyIGwmIzAzOTtham91dCByYXBpZGUgZGVzIGNoYW1wcyBkZSBmb3JtdWxhaXJlICZhZ3JhdmU7IGwmIzAzOTthaWRlIGQmIzAzOTt1biBtZW51IGQmZWFjdXRlO3JvdWxhbnQgPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0FjYyZlZ3JhdmU7cyByYXBpZGUgYXUgZm9ybXVsYWlyZSA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdBam91dCByYXBpZGUgZHUgY2hhbXAnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDb2NoZXIgY2V0dGUgY2FzZSBsaW1pdGVyYSAmYWdyYXZlOyAxMCBtYWlscyBwYXIgaGV1cmUgbGEgdHJhbnNtaXNzaW9uIGRlcyBmb3JtdWxhaXJlcyBwb3VyIHVuZSBtJmVjaXJjO21lIGFkcmVzc2UgSVAuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ09wdGVyIHBvdXIgZGVzIHJlc3RyaWN0aW9ucyBhbnRpLXNwYW0gPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnTW9udHJlciBsZXMgSUQgZGVzIGNoYW1wcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDb2NoZXIgY2V0dGUgY2FzZSBhdXRvcmlzZXJhIGwmIzAzOTthZmZpY2hhZ2UgZGVzIElEIGRlcyBjaGFtcHMgcGVuZGFudCBsJiMwMzk7YWpvdXQgb3UgbCYjMDM5OyZlYWN1dGU7ZGl0aW9uIGR1IGZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0ltcG9ydGVyIHVuIGZvcm11bGFpcmUgJmFncmF2ZTsgcGFydGlyIGQmIzAzOTt1biBmaWNoaWVyIFhNTCZuYnNwOyc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXRpbGlzZXIgY2Ugbm9tIGRlIGZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ0ltcG9ydGVyIHVuIGZvcm11bGFpcmUgZGUgZm9ybWF0IFhNTCZuYnNwOyc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1V0aWxpc2VyIGNldCBhbGlhcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnRyZlYWN1dGU7biZlYWN1dGU7cmVyIHVuIG1haWwgZW4gSFRNTCA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnUmVtcGxpciBhdXRvbWF0aXF1ZW1lbnQgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnUmVtcGxpciBhdXRvbWF0aXF1ZW1lbnQgYXZlYyBsJiMwMzk7VVJMIGRlIGxhIHBhZ2UgY29udGFudCBsZSBmb3JtdWxhaXJlID8gKENlY2kgciZlYWN1dGU7JmVhY3V0ZTtjcmlyYSBsZSBsaWVuIGRlIGxhIHBhZ2UgY2ktZGVzc291cyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnTGllbiBVUkwgcGFyIGQmZWFjdXRlO2ZhdXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnVGV4dGUgcGFyIGQmZWFjdXRlO2ZhdXQgZHUgbGllbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGllbiBwb3VyIGxhIHBhZ2UgZHUgc2l0ZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdWb3VzIHBvdXZleiB1dGlsaXNlcjxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gcG91ciBwcm90JmVhY3V0ZTtnZXIgbCYjMDM5O2Vudm9pIGRlIHZvcyBmb3JtdWxhaXJlcyBlbiBpbnN0YWxsYW50IGxlIG1vZHVsZSBDYXB0Y2hhLiBQb3VyIHBsdXMgZCYjMDM5O2luZm9ybWF0aW9ucywgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+c3VpdmV6IGxlIHByb2pldCBkdSBDYXB0Y2hhPC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVdGlsaXNlciBDYXB0Y2hhIHBvdXIgcHJvdCZlYWN1dGU7Z2VyIGwmIzAzOTtlbnZvaSBkZSB2b3MgZm9ybXVsYWlyZXMgPyZuYnNwOyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnViZlYWN1dGU7cmlmaWVyIGljaSBjb21tZW50IHByb3QmZWFjdXRlO2dlciB2b3MgZm9ybXVsYWlyZXMgYXZlYyA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdWZXVpbGxleiBjb25maXJtZXIgcXVlIHZvdXMgbiYjMDM5OyZlY2lyYzt0ZXMgcGFzIGF1dG9tYXRlIGVuIHJlY29waWFudCBsZXMgY2FyYWN0JmVncmF2ZTtyZXMgcHJlc2VudHMgc3VyIGwmIzAzOTtpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRWNoZWMgZGUgbGEgdiZlYWN1dGU7cmlmaWNhdGlvbiBDYXB0Y2hhJm5ic3A7JzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdJbWFnZSBldCB0ZXh0ZSBkaWZmZXJlbnQgISc7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdUZXh0ZSBkJiMwMzk7YWlkZSBjb25jZXJuYW50IENhcHRjaGEmbmJzcDsnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnTmUgcGFzIGVudm95ZXIgbGVzIHZhbGV1cnMgbm9uLWNvY2gmZWFjdXRlO2VzJmFtcDtuYnNwJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnViZlYWN1dGU7cmlmaWVyIHNldWxlbWVudCBzaSBsZXMgY2FzZXMgY29jaCZlYWN1dGU7ZXMgcmV0b3VybmVudCBkZXMgdmFsZXVycy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xhYmVsIGR1IGxpZW4mbmJzcDsnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1VSTCBkZSBkZXN0aW5hdGlvbiBkdSBsaWVuJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnUyZlYWN1dGU7bGVjdGlvbm4mZWFjdXRlOyBwYXIgZCZlYWN1dGU7ZmF1dCA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdIZXVyZXMgZGUgMCAmYWdyYXZlOyAyNCA/ICZuYnNwOyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNIGF2YW50IG1pZGknOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNIGFwciZlZ3JhdmU7cyBtaWRpJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnQXZlYyBkZXMgdGFncyBTbWFydHkgZGFucyBsZXMgY2hhbXBzID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ0xpZ25lcyAobm90ZSA6IHBldXQgJmVjaXJjO3RyZSBtb2RpZmkmZWFjdXRlOyB2aWEgQ1NTKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sb25uZXMgKG5vdGUgOiBwZXV0ICZlY2lyYzt0cmUgbW9kaWZpJmVhY3V0ZTsgdmlhIENTUykmbmJzcDsnOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnQWNjdWVpbCAtIEQmZWFjdXRlO3RhaWxzIGR1IEZvcm11bGFpcmUmbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0FmZmljaGFnZSBsb2dpbiB1dGlsaXNhdGV1ciA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0FmZmljaGFnZSBwciZlYWN1dGU7bm9tIHV0aWxpc2F0ZXVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdBZmZpY2hhZ2Ugbm9tIHV0aWxpc2F0ZXVyID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdMaXN0ZSBkZXMgdXRpbGlzYXRldXJzIHBvdXIgbGUgZ3JvdXBlIHNwJmVhY3V0ZTtjaWZpJmVhY3V0ZTsmbmJzcDsnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1NldWxlbWVudCBwb3VyIGxlIGdyb3VwZSAlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdBZmZpY2hhZ2UgdXRpbGlzYXRldXIgPyZuYnNwOyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdDZSBjaGFtcCBwZXV0ICZlY2lyYzt0cmUgbGFpc3MmZWFjdXRlOyB2aWRlJm5ic3A7JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBwb3VyIGdhYmFyaXQnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIGF1dG9yaXMmZWFjdXRlO2VzJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSBQSFAgJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBkJiMwMzk7ZW52b2knOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1ZvdHJlIHNlcnZldXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnQWRyZXNzZSBJUCBkZSBsYSBwZXJzb25uZSB1dGlsaXNhbnQgbGUgZm9ybXVsYWlyZSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgZGUgbGEgcGFnZSBjb250ZW5hbnQgbGUgZm9ybXVsYWlyZSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdWZXJzaW9uIGRlIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFidWxhdGlvbic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0xlcyBhdXRyZXMgbm9tcyBkZSBjaGFtcHMgcGV1dmVudCAmZWNpcmM7dHJlIHV0aWxpcyZlYWN1dGU7cyBkZSBmYSZjY2VkaWw7b24gaW50ZXJjaGFuZ2VhYmxlIChwYXJ0aWN1bGkmZWdyYXZlO3JlbWVudCB1dGlsZSBzaSBTbWFydHkgYmxvcXUmZWFjdXRlOyBzdXIgbGVzIGNhcmFjdCZlZ3JhdmU7cmVzIEFTQ0lJIGVuIGRlaG9ycyBkZSAzMi0xMjYpLiA8YnIgLz5sZXMgYXV0cmVzIGNoYW1wcyBzZXJvbnQgZGlzcG9uaWJsZXMgc2kgdm91cyBsZXMgYWpvdXRlciBhdSBmb3JtdWxhaXJlLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnJm5ic3A7Q29uc3VsdGVyIGxlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZnIvZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD0iX2JsYW5rIj5tYW51ZWwgUEhQPC9hPiBwb3VyIHZvdXMgYWlkZXIuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0NoYW1wIHJlcHImZWFjdXRlO3NlbnQmZWFjdXRlOyZuYnNwOyc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgUmV0b3VyIGF1IEZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyJmVhY3V0ZTtlciB1biBtb2QmZWdyYXZlO2xlIGRlIGdhYmFyaXQnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3ImZWFjdXRlO2VyIHVuIG1vZCZlZ3JhdmU7bGUgZGUgZ2FiYXJpdCBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3ImZWFjdXRlO2VyIHVuIG1vZCZlZ3JhdmU7bGUgZCYjMDM5O2VudCZlY2lyYzt0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyJmVhY3V0ZTtlciB1biBtb2QmZWdyYXZlO2xlIGQmIzAzOTtlbnQmZWNpcmM7dGUnOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAndW5lIHRhYnVsYXRpb24nOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgZCYjMDM5O3VuZSBsaWduZSBwb3VyIGxlcyBmaWNoaWVycyBjciZlYWN1dGU7ZXMmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdHYWJhcml0IGR1IGhlYWRlciAoZW4tdCZlY2lyYzt0ZSkgZGVzIGZpY2hpZXJzIGNyJmVhY3V0ZTtlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMICZhZ3JhdmU7IHN1aXZyZSBwb3VyIGNvbmZpcm1lciBsZSBmb3JtdWxhaXJlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsZXVyIChyZWdhcmRleiBkYW5zIG9uZ2xldHMgJnF1b3Q7T3B0aW9ucyBhdmFuYyZlYWN1dGU7ZSZxdW90OyBzaSB2b3VzIHV0aWxpc2V6IGRlcyBiYWxpc2VzIFNtYXJ0eSkmbmJzcDsnOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdGb3JtYXQgZGUgbGEgICg8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2ZyL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9Il9ibGFuayI+ZGF0ZSBQSFAgc3RhbmRhcmQgPC9hPikmbmJzcDsnOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVdGlsaXNlciB1biAmZWFjdXRlO2RpdGV1ciBXWVNJV1lHIHBvdXIgbGEgem9uZSBkZSB0ZXh0ZSAoY290JmVhY3V0ZTsgYWRtaW4gc2V1bGVtZW50KSA/Jm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnQ29tcG9ydGVtZW50IGxvcnMgZGUgbCYjMDM5O2Vudm9pIGR1IEZvcm11bGFpcmUnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0xhYmVscyBkZXMgYm91dG9ucyBkZSBzb3VtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnVHJpIHBhciBjaGFtcHMgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnQ2V0dGUgcGFnZSB2b3VzIHBlcm1ldCBkZSBwZXJzb25uYWxpc2VyIGxlIGZvcm11bGFpcmUuIENlbGEgbmUgZCZlYWN1dGU7ZmluaXQgcGFzIGNlIHF1ZSBsZSBtb2R1bGUgRm9ybSBCdWlsZGVyIGZhaXQgZGVzIGRvbm4mZWFjdXRlO2VzIHImZWFjdXRlO2NvbHQmZWFjdXRlO2VzLiBMYSBkZXN0aW5hdGlvbiBkZXMgZG9ubiZlYWN1dGU7ZXMgc2VyYSBkJmVhY3V0ZTtmaW5pZSBkYW5zIGxlcyBjaGFtcHMgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgKGNvbW1uZW4mY2NlZGlsO2FudCBwYXIgKi4uLi4gKS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ0FubiZlYWN1dGU7ZSBkZSBkJmVhY3V0ZTtidXQmbmJzcDsnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdBbm4mZWFjdXRlO2UgZGUgZmluJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0FubiZlYWN1dGU7ZSBwYXIgZCZlYWN1dGU7ZmF1dCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyZuYnNwOyhNZXR0ZXogLTEgcG91ciBsJiMwMzk7YW5uJmVhY3V0ZTtlIHBhciBkJmVhY3V0ZTtmYXVsdCBwb3VyIHNpZ25pZmllciBsJiMwMzk7YW5uJmVhY3V0ZTtlIGNvdXJhbnRlKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWN0aW9uIGFwciZlZ3JhdmU7cyBsJiMwMzk7ZW52b2kgZHUgZm9ybXVsYWlyZSZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSJmVhY3V0ZTtwb25zZSAmYWdyYXZlOyBhZmZpY2hlciZuYnNwOyc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdBZmZpY2hlciB1biByJmVhY3V0ZTtzdW0mZWFjdXRlOyBkdSBmb3JtdWxhaXJlIGVudm95JmVhY3V0ZTsmbmJzcDsnOwokbGFuZ1sncmVkaXJlY3RfdG9fcGFnZSddID0gJ1JlZGlyaWdlciB2ZXJzIHVuZSBwYWdlIGR1IHNpdGUnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdDZSBnYWJhcml0IHNlcnQgJmFncmF2ZTsgbCYjMDM5O2FmZmljaGFnZSBwb3VyIGwmIzAzOTt1dGlsaXNhdGV1ciBhcHImZWdyYXZlO3MgbCYjMDM5O2Vudm9pIGR1IGZvcm11bGFpcmUgLiBDZSBnYWJhcml0IG4mIzAzOTthIGF1Y3VuIGVmZmVjdCBuaSBzdXIgbGVzIG1haWxzLCBuaSBzdXIgZCYjMDM5O2F1dHJlcyBmb3JtdWxhaXJlcyAtIFZvdXMgcGxhY2VyZXogY2VzIGdhYmFyaXRzIChqdWRpY2lldXNlbWVudCkgZGFucyBsJiMwMzk7b25nbGV0ICZxdW90O29wdGlvbnMgYXZhbmMmZWFjdXRlO2VzJnF1b3Q7Lic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnUGFnZSBkZSBkZXN0aW5hdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdOb21tYWdlIGRlcyBjaGFtcHMgcmVxdWlzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnTGVzIGNoYW1wcyBkb2l2ZW50IG9ibGlnYXRvaXJlbWVudCBhdm9pciB1biBub20gPyAoY2FzZSBjb2NoJmVhY3V0ZTtlID0gb3VpKSZuYnNwOyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ0NoYW1wcyAmYWdyYXZlOyBub20gdW5pcXVlIHJlcXVpcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnTGVzIGNoYW1wcyBkb2l2ZW50IGF2b2lyIGRlcyBub21zIGRpZmYmZWFjdXRlO3JlbnRzIChjYXNlIGNvY2gmZWFjdXRlO2UgPSBvdWkpJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1ImZWFjdXRlO29yZ2FuaXNlciBsZXMgY2hhbXBzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdDaGFyZ2VyIGxlIGdhYmFyaXQgJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0Fqb3V0ZXIgdW4gYm91dG9uIHRleHRlJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1N1cHByaW1lciB1biBib3V0b24gdGV4dGUmbmJzcDsnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwciZlYWN1dGU7dGVyIGxlcyB2YXJpYWJsZXMgY29tbWUgJmVhY3V0ZTt0YW50IGRlcyBub21icmVzIG91IGRlcyBjaGEmaWNpcmM7bmVzIGRlIGNhcmFjdCZlZ3JhdmU7cmVzJm5ic3A7JzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnT3JkcmUgZCYjMDM5O2ludGVycHImZWFjdXRlO3RhdGlvbiZuYnNwOyc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnU2kgcGx1cyBkJiMwMzk7dW4gY2hhbXAgZGUgY2FsY3VsIGV4aXN0ZSwgaWxzIHNlcm9udCBjYWxjdWwmZWFjdXRlOyBkdSBwbHVzIHBldGl0IGF1IHBsdXMgZ3JhbmQnOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbGV1ciBkZSBjYWxjdWwmbmJzcDsnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnQ2hhJmljaXJjO25lcyBkZSBjYXJhY3QmZWdyYXZlO3Jlcyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpcXVlJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnTW9udHJlciBsZSBmb3JtdWxhaXJlIGVuIGxpZ25lID8mbmJzcDsnOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0NvY2gmZWFjdXRlOyBzaWduaWZpZSBxdWUgbGUgZm9ybXVsYWlyZSByZW1wbGFjZSBsZSB0YWcge2Ntc19tb2R1bGV9LCBOb24tQ29jaCZlYWN1dGU7IHJlbXBsYWNlIGxlIHRhZyB7Y29udGVudH0uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdWYWxldXIgcGFyIGQmZWFjdXRlO2ZhdXQgcG91ciBsZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnRWZmYWNlciBsYSB2YWxldXIgcGFyIGQmZWFjdXRlO2ZhdXQgcGFyIHVuIGNsaWNrID8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnVmVyaWZpZXIgY2VjaSBwb3VyIGVmZmFjZXIgbGEgdmFsZXVyIHBhciBkJmVhY3V0ZTtmYXV0IHF1YW5kIGwmIzAzOTt1dGlpc2F0ZXVyIGNsaXF1ZXJhIGNlIGNoYW1wLiBQdWlzcXVlIGNlbGEgdXRpbGlzZSBsYSBjb21wYXJhaXNvbiBkZSBjaGEmaWNpcmM7bmUgZW4gamF2YXNjcmlwdCwgdW4gZCZlYWN1dGU7ZmF1dCBhdXJhIGxpZXUgc2kgdm91cyBpbmRpcXVlciBkZXMgc2ltcGxlcyBxdW90ZXMgZGFucyB2b3RyZSB0ZXh0ZSBwYXIgZCZlYWN1dGU7ZmF1dC4gViZlYWN1dGU7cmlmaWVyIGxlcyBjYXJyYWN0JmVncmF2ZTtyZXMgdXRpbGlzZXIgcG91ciAmZWFjdXRlO3ZpdGVyIGxlcyBlcnJldXJzLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1N1cHByaW1lciBsZXMgZmljaGllcnMgdXBsb2FkZXIgZGVwdWlzIGxlIHNlcnZldXIgYXByJmVhY3V0ZTtzIGV4JmVhY3V0ZTtjdXRpb24gKGRpc3Bvc2l0aW9uIGVtYWlsICkmbmJzcDsnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgcG91ciBsZSBjaGFtcCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNZXR0cmUgbGUgY29kZSBKYXZhc2NyaXB0LCBpbmNsdSBsZXMgJmVhY3V0ZTt2JmVhY3V0ZTtuZW1lbnRzLCBleCA6IG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtdWxhaXJlIGRlIHNvdW1pc3Npb24gSmF2YXNjcmlwdCZuYnNwOyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWV0dHJlIGxlIGNvZGUgSmF2YXNjcmlwdCwgaW5jbHUgbGVzICZlYWN1dGU7diZlYWN1dGU7bmVtZW50cywgZXggOiBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ0RvIG5vdCBqdXN0IHBpY2sgYSByYW5kb20gYWRkcmVzcyBoZXJlIC0tIG1hbnkgSVNQcyB3aWxsPGJyIC8+bm90IGRlbGl2ZXIgdGhlIG1haWwgaWYgeW91IGFyZSB1c2luZyBhIGRpZmZlcmVudCBkb21haW4gbmFtZSB0aGFuIHlvdXIgYWN0dWFsPGJyIC8+aG9zdCBuYW1lIChpLmUuLCB1c2Ugc29tZXRoaW5nIGxpa2UgbmFtZUAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnQmVzb2luIGRlIHBsdXMgZGUgdHlwZXMgZGUgY2hhbXBzID8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1Ryb3AgZGUgdHlwZSBkZSBjaGFtcHMgY29uZnVzID8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnUGFzc2VyIGVuIG1vZGUgYXZhbmMmZWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1Bhc3NlciBlbiBtb2RlIHNpbXBsZSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdEb3NzaWVyIGRhbnMgbGVxdWVsIGxlIGZpY2hpZXIgc2VyYSBzYXV2ZXInOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdDZSBkb2l0ICZlY2lyYzt0cmUgdW4gZG9zc2llciBkZSB2b3RyZSBzZXJ2ZXVyIFdlYiBhdmVjIGRlcyBwZXJtaXNzaW9ucyBkJiMwMzk7JmVhY3V0ZTtjcml0dXJlPGJyIC8+Q2htb2QgNzc3IGlsIHNpIHZvdXMgYXZleiBkZXMgcHJvYmwmZWdyYXZlO21lcyBvdSBkb3V0ZXMuPGJyIC8+RGUgcGx1cywgdiZlYWN1dGU7cmlmaWV6IHF1ZSB2b3VzIG4mIzAzOTthdmV6IHBhcyByZXN0cmljdGlvbnMgZGUgciZlYWN1dGU7cGVydG9pcmUgUEhQLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTm91dmVsbGUgbGlnbmUvUmV0b3VyICZhZ3JhdmU7IGxhIGxpZ25lIGVuIHJlbXBsYWNlbWVudCBkZSBjYXJhY3QmZWdyYXZlO3JlcyZuYnNwOyc7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMYWlzc2VyIGVuIGJsYW5jIGxhIGxpZ25lIHBvdXIgcGVybWV0dHJlIHVuZSBOb3V2ZWxsZSBsaWduZS9SZXRvdXIgJmFncmF2ZTsgbGEgbGlnbmUnOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5MZSBtb2R1bGUgQ2F0YWxvZ2VyIG5lIHNlbWJsZSBwYXMgJmVjaXJjO3RyZSBpbnN0YWxsJmVhY3V0ZTsvYWN0aWYuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdBVFRFTlRJT04gISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdCBwYXIgZCZlYWN1dGU7ZmF1dCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnR2FiYXJpdCB0YWJsZWF1LCBUaXRyZXMgJmFncmF2ZTsgZ2F1Y2hlJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ0dhYmFyaXQgIHRhYmxlYXUsIFRpdHJlcyBlbiBoYXV0JzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ0dhYmFyaXQgdmVuYW50IGRlICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJyZFY2lyYzt0ZXMtdm91cyBzJnVjaXJjO3IgZGUgdm91bG9pciByZW5vbW1lciB2b3RyZSBnYWJhcml0IGF2ZWMgbGUgbm91dmVhdSA/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJldXIgZGUgY2FsY3VsICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm9ybWF0aW9uIG5vbiB2YWxhYmxlIChwcm9iYWJsZW1lbnQgIGR1IGF1IHN5c3QmZWdyYXZlO21lIGRlIHZhbGlkYXRpb24gRW1haWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdFcnJldXIgZHUgcGFyYW0mZWdyYXZlO3RyZSBkZSB2YWxpZGF0aW9uLiBWJmVhY3V0ZTtyaWZpZXIgcXVlIHZvdXMgYXZleiByZWNvcGllciBjb3JyZWN0ZW1lbnQgbCYjMDM5O2VtYWlsICEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0VycmV1ciBkZSByJmVhY3V0ZTtwb25zZSBkZSBsYSB2YWxpZGF0aW9uLiBWJmVhY3V0ZTtyaWZpZXIgcXVlIHZvdXMgYXZleiByZWNvcGllciBjb3JyZWN0ZW1lbnQgbCYjMDM5O2VtYWlsICEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0VycmV1ciBkZSByJmVhY3V0ZTtwb25zZSBkZSBsYSB2YWxpZGF0aW9uLiBBdWN1bmUgdmFsaWRhdGlvbiBkZSBjaGFtcCBlbWFpbCBkYW5zIGNlIGZvcm11bGFpcmUgISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWpvdXQsICZlYWN1dGU7ZGl0aW9uIGV0IGNvbnN0cnVjdGlvbiBpbnRlcmFjdGl2ZSBkZXMgZm9ybXVsYWlyZXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdTaSB2b3VzIHV0aWxpc2V6IHVuZSAmZWFjdXRlO3ZhbHVhdGlvbiBkZSBjaGEmaWNpcmM7bmUgZGUgY2FyYWN0JmVncmF2ZTtyZXMsIGxhIHNldWxlIG9wJmVhY3V0ZTtyYXRpb24gcG9zc2libGUgZXN0IGxhIGNvbmNhdCZlYWN1dGU7bmF0aW9uICgrKSwgYWxvcnMgcXVlIHNpIHZvdXMgdXRpbGlzZXogdW5lICZlYWN1dGU7dmFsdWF0aW9uIG51bSZlYWN1dGU7cmlxdWUsIHZvdXMgYXZleiBsZXMgc3ltYm9sZXMgZGUgYmFzZSAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdKYW52aWVyJzsKJGxhbmdbJ2RhdGVfZmVicnVhcnknXSA9ICdGJmVhY3V0ZTt2cmllcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFycyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXZyaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVpbic7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWlsbGV0JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQW8mdWNpcmM7dCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJyZSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPY3RvYnJlJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJyZSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVjZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0QmZWFjdXRlO3NvbCZlYWN1dGU7ICEgVW5lIGVycmV1ciBhIGVtcCZlYWN1dGU7Y2gmZWFjdXRlOyBsYSB0cmFuc21pc3Npb24gZHUgZm9ybXVsYWlyZS4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRXJyZXVyIEZvcm1CdWlsZGVyIDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0VycmV1ciBzdXIgbGUgZmljaGllciBkdSBtb2R1bGUgdXBsb2FkIDogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTW9kdWxlIGQmIzAzOTt1cGxvYWQgaW50cm91dmFibGUnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0VycmV1ciBzdXIgbGUgZmljaGllciBVcGxvYWQvQXR0YWNoZW1lbnQgICVzICh0bXBfbmFtZSA6ICVzLCBkZSB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0VycmV1ci4gSW1wb3NzaWJsZSBkJiMwMzk7b2J0ZW5pciBsZSBibG9jYWdlIGR1IGZpY2hpZXIuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgOiBkJmVhY3V0ZTtjb2NoJmVhY3V0ZTsnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUGFyIGQmZWFjdXRlO2ZhdXQgOiBjb2NoJmVhY3V0ZTsnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1NvdW1pc3Npb24gcGFyIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPkdhYmFyaXQgZHUgbWFpbCBub24gZW5jb3JlIGZhaXQgISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlciA6IGltcG9zc2libGUgZGUgdHJvdXZlciBsZSBtb2R1bGUgQ01TTWFpbGVyIHJlcXVpcyAhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1V0aWxpc2F0ZXVyIGFwcm91dmFudCBsYSBzb3VtaXNzaW9uICVzIGRlICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IGxvcnNxdWUgdW4gZm9ybXVsYWlyZSBGb3JtQnVpbGRlciBlc3QgZW52b3kmZWFjdXRlOyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IHMmIzAzOTtpbCB5IGEgdW5lIGVycmV1ciBsb3JzcXVlIHVuIGZvcm11bGFpcmUgRm9ybUJ1aWxkZXIgZXN0IGVudm95JmVhY3V0ZTsnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdiZlYWN1dGU7bmVtZW50IGQmZWFjdXRlO2NsZW5jaCZlYWN1dGU7IGxvcnNxdWUgRm9ybUJ1aWxkZXIgdW4gZm9ybXVsYWlyZSBlc3QgYWZmaWNoJmVhY3V0ZTsnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2JmVhY3V0ZTtuZW1lbnQgZCZlYWN1dGU7Y2xlbmNoJmVhY3V0ZTsgbG9yc3F1JiMwMzk7dW4gZm9ybXVsYWlyZSBGb3JtQnVpbGRlciBlc3QgZW52b3kmZWFjdXRlOy48L3A+DQo8aDQ+UGFyYW0mZWdyYXZlO3RyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXYmZWFjdXRlO25lbWVudCBkJmVhY3V0ZTtjbGVuY2gmZWFjdXRlOyBzJiMwMzk7aWwgeSBhIHVuZSBlcnJldXIgbG9yc3F1JiMwMzk7dW4gZm9ybXVsYWlyZSBGb3JtQnVpbGRlciBlc3QgZW52b3kmZWFjdXRlOzwvcD4NCjxoND5QYXJhbSZlZ3JhdmU7dHJlczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2JmVhY3V0ZTtuZW1lbnQgZCZlYWN1dGU7Y2xlbmNoJmVhY3V0ZTsgbG9yc3F1JiMwMzk7dW4gZm9ybXVsYWlyZSBGb3JtQnVpbGRlciBlc3QgYWZmaWNoJmVhY3V0ZTs8L3A+DQo8aDQ+UGFyYW0mZWdyYXZlO3RyZXM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnSUQuIGRlIGxhIHImZWFjdXRlO3BvbnNlIHV0aWxpcyZlYWN1dGU7ZSBwYXIgbGUgbW9kdWxlIEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdWYWxldXJzIGR1IGNoYW1wIHBhciBkJmVhY3V0ZTtmYXV0OyB2b2lyIGxlIG1vZHVsZSBkJiMwMzk7YWlkZSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdJRCBkdSBjaGFtcCBwb3VyIGxlcyBvcCZlYWN1dGU7cmF0aW9ucyBpbnRlcm5lcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTm9tIGR1IGZvcm11bGFpcmUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdJRCBkdSBmb3JtdWxhaXJlIHBvdXIgbGVzIG9wJmVhY3V0ZTtyYXRpb25zIGludGVybmVzJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19nZW5lcmFsJ10gPSAnUGFyYW0mZWdyYXZlO3RyZXMgZyZlYWN1dGU7biZlYWN1dGU7cmF1eCBwb3VyIGxlcyBvcCZlYWN1dGU7cmF0aW9ucyBpbnRlcm5lcyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPlZhcmlhYmxlcyBkdSBHYWJhcml0IGRlIEZvcm11bGFpcmU8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSB7JGZiX2hpZGRlbn0gYW5kIHskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sIHskbXlmaWVsZC0+aW5wdXR9ICk8L3A+DQoNCg0KPHA+Vm9pY2kgbGVzIGRpZmYmZWFjdXRlO3JlbnRlcyB2YWxldXJzIGFwcGxpY2FibGVzIGF1eCBjaGFtcHMgOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+Q2hhbXA8L3RoPjx0aD5WYWxldXI8L3RoPjwvdHI+DQo8dHI+PHRkPmNoYW1wLT5kaXNwbGF5PC90ZD48dGQ+MSBwb3VyIGFmZmljaGVyIGxlIGNoYW1wLCBzaW5vbiAwPC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIHNpIGxlIGNoYW1wIGVzdCByZXF1aXMsIHNpbm9uIDA8L3RkPjwvdHI+DQo8dHI+PHRkPmNoYW1wLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD5MZSBzeW1ib2xlIHNpZ25hbGFudCBsZXMgY2hhbXBzIG9ibGlnYXRvaXJlczwvdGQ+PC90cj4NCjx0cj48dGQ+Y2hhbXAtPmNzc19jbGFzczwvdGQ+PHRkPkxhIGNsYXNzZSBDU1MgZGUgY2UgY2hhbXA8L3RkPjwvdHI+DQo8dHI+PHRkPmNoYW1wLT52YWxpZDwvdGQ+PHRkPjEgc2kgbGUgY2hhbXAgJmVhY3V0ZTt0JmVhY3V0ZTsgdmFsaWRlLCBzaW5vbiAwPC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+ZXJyb3I8L3RkPjx0ZD5UZXh0ZSBwb3VyIGxlcyBwcm9ibCZlZ3JhdmU7bWVzIGRlIHZhbGlkYXRpb24sIGF1IGNhcyBvJnVncmF2ZTsgbGUgY2hhbXAgbmUgc2VyYWl0IHBhcyB2YWxpZCZlYWN1dGU7PC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBzaSBsZSBub20gZHUgY2hhbXBzIGRvaXQgcmVzdGVyIGNhY2gmZWFjdXRlOywgc2lub24gMDwvdGQ+PC90cj4NCjx0cj48dGQ+Y2hhbXAtPmhhc19sYWJlbDwvdGQ+PHRkPjEgc2kgbGUgdHlwZSBkZSBjaGFtcCBhIHVuIGxhYmVsPC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+bmVlZHNfZGl2PC90ZD48dGQ+MSBzaSBsZSBjaGFtcCBkb2l0ICZlY2lyYzt0cmUgaW50JmVhY3V0ZTtncmUgZGFucyB1biBESVYgKG91IGRhbnMgdW5lIGxpZ25lIGRlIHRhYmxlYXUsIHNpIGMmIzAzOTtlc3Qgdm90cmUgY2hvaXgpPC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+bmFtZTwvdGQ+PHRkPkxlIG5vbSBkdSBjaGFtcDwvdGQ+PC90cj4NCjx0cj48dGQ+Y2hhbXAtPmlucHV0PC90ZD48dGQ+TGEgdmFsZXVyIGRlIGNvbnRyJm9jaXJjO2xlIGR1IGNoYW1wIChleC4gOiBsYSB2YWxldXIgZHUgY2hhbXApPC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+b3A8L3RkPjx0ZD51biBib3V0b24gZGUgY29udHJvbGUgYXNzb2NpJmVhY3V0ZTsgYXUgY2hhbXAgc2kgYyYjMDM5O2VzdCBwb3NzaWJsZSAoZXguIDogbGUgYm91dG9uIHN1cHByaW1lciBwb3VyIHVuIGNoYW1wIHRleHRlKTwvdGQ+PC90cj4NCjx0cj48dGQ+Y2hhbXAtPmlucHV0X2lkPC90ZD48dGQ+bCYjMDM5OyBJRCBkdSBjaGFtcCAodXRpbGUgcG91ciB1dGlsaXNlciA8bGFiZWwgZm9yPSZxdW90OyZxdW90Oz4pPC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+dHlwZTwvdGQ+PHRkPmxlIHl5cGUgZGUgZG9ubiZlYWN1dGU7ZXMgZHUgY2hhbXA8L3RkPjwvdHI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPHRyPjx0ZD5jaGFtcC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIHNpIGxlIGNoYW1wLT5pbnB1dCBlc3QgdW5lIGNvbGxlY3Rpb24gZGUgY29udHImb2NpcmM7bGVzPC90ZD48L3RyPg0KPHRyPjx0ZD5jaGFtcC0+bGFiZWxfcGFydHM8L3RkPjx0ZD4xIHNpIGxhIGNvbGxlY3Rpb24gZGUgY29udHImb2NpcmM7bGVzIGEgZGVzIGxhYmVscyBzJmVhY3V0ZTtwYXImZWFjdXRlO3MgcG91ciBjaGFxdWUgY29udHImb2NpcmM7bGU8L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQo8cD5JbiBjZXJ0YWluIGNhc2VzLCBmaWVsZC0+aW5wdXQgaXMgYWN0dWFsbHkgYW4gYXJyYXkgb2Ygb2JqZWN0cyByYXRoZXIgdGhhbiBhbiBpbnB1dC4gVGhpcyBoYXBwZW5zLCBmb3IgZXhhbXBsZSwgaW4gQ2hlY2tCb3hHcm91cHMgb3IgUmFkaW9CdXR0b25Hcm91cHMuIEZvciB0aGVtLCB5b3UgY2FuIGl0ZXJhdGUgdGhyb3VnaCBmaWVsZC0+aW5wdXQtPm5hbWUgYW5kIGZpZWxkLT5pbnB1dC0+aW5wdXRzLjwvcD4NCiAgICANCjxwPlZvaWNpIGxlcyB2YXJpYWJsZXMgc21hcnR5IGNvbXBsJmVhY3V0ZTttZW50YWlyZXMgcXVlIHZvdXMgcG91dmV6IHV0aWxpc2VyIDo8L3A+DQo8dGFibGU+DQo8dHI+PHRoPlZhcmlhYmxlPC90aD48dGg+VmFsZXVyPC90aD48L3RyPg0KPHRyPjx0ZD50b3RhbF9wYWdlczwvdGQ+PHRkPm5vbWJyZSBkZSBwYWdlcyBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGktcGFnZXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bSZlYWN1dGU7cm8gZGUgbGEgcGFnZSBjb3VycmFudGUgcG91ciB1biBmb3JtdWxhaXJlIG11bHRpLXBhZ2VzPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmFmZmljaGUgJnF1b3Q7cGFnZSB4IGRlIHkmcXVvdDsgcG91ciB1biBmb3JtdWxhaXJlIG11bHRpLXBhZ2VzPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5MYSBjbGFzc2UgQ1NTIHBvdXIgbGUgZm9ybXVsYWlyZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9uYW1lPC90ZD48dGQ+Tm9tIGR1IGZvcm11bGFpcmU8L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1faWQ8L3RkPjx0ZD5JRCBkZSBsYSBiYXNlIGRlIGRvbm4mZWFjdXRlO2VzIGR1IGZvcm11bGFpcmU8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD5Cb3V0b24gJnF1b3Q7UmVjdWxlciZxdW90OyBwb3VyIHVuIGZvcm11bGFpcmUgbXVsdGlwbGU8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPkJvdXRvbiAmcXVvdDtTdWl2YW50JnF1b3Q7IG9yICZxdW90O0Vudm95ZXImcXVvdDsgIHBvdXIgdW4gZm9ybXVsYWlyZSBtdWx0aXBsZSwgYWRqdXN0ZXIgYXV0b21hdGlxdWVtZW50PC90ZD48L3RyPg0KPC90YWJsZT4NCjxwPkR1bm5vIHdoeSB5b3UmIzAzOTtkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVybWlzc2lvbnMNCm9uIHVzZXJzIHdobyB3aWxsIGJlIGFkbWluaXN0ZXJpbmcgZmVlZGJhY2sgZm9ybXMuIEFsc28sIGlmIHlvdSYjMDM5O2xsIGJlIGVtYWlsaW5nIGZvcm0NCnJlc3VsdHMsIGJlIHN1cmUgdG8gdXBkYXRlIHRoZSBDb25maWd1cmF0aW9uIGFwcHJvcHJpYXRlbHkuPC9wPg0KPHA+UGxlYXNlIGJlIGF3YXJlIHRoYXQgYSBmZWVkYmFjayBmb3JtIHNob3VsZCBub3QgYmUgYWN0aXZlIChlLmcuLCB1c2FibGUgYnkgdGhlIHB1YmxpYykgd2hpbGUNCnlvdSBhcmUgc3RpbGwgZWRpdGluZyB0aGUgZm9ybS4gWW91IHNob3VsZCBjcmVhdGUgdGhlIGZvcm0sIGFuZCBwbGFjZSB0aGUgdGFnIGludG8gYW4gYWN0aXZlDQpjb250ZW50IHBhZ2Ugb25seSB3aGVuIHlvdSBoYXZlIGZpbmlzaGVkIGVkaXRpbmcuIE90aGVyd2lzZSwgZXJyb25lb3VzIHJlc3VsdHMgY291bGQgYmUgcmV0dXJuZWQuPC9wPg0KPHA+QWRkaXRpb25hbGx5LCB0aGlzIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBwYXJhbGxlbCBlZGl0aW5nIG9mIGZvcm1zLiBQbGVhc2UgdGFrZSBjYXJlIHRoYXQNCm9ubHkgb25lIGFkbWluIGlzIGVkaXRpbmcgYSBnaXZlbiBmb3JtIGF0IGEgZ2l2ZW4gdGltZS48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+UXVlIGZhaXQgY2UgbW9kdWxlID88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkNvbW1lbnQgbCYjMDM5O3V0aWxpc2VyID88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkNvbW1lbnQgY3ImZWFjdXRlO2VyIHVuIGZvcm11bGFpcmUgPzwvaDM+DQo8cD5JbiB0aGUgQ01TIEFkbWluIE1lbnUsIHlvdSBzaG91bGQgZ2V0IGEgbmV3IG1lbnUgaXRlbSBjYWxsZWQgRm9ybUJ1aWxkZXIuIENsaWNrIG9uIHRoaXMuIE9uIHRoZSBwYWdlDQp0aGF0IGdldHMgc2hvd24sIHRoZXJlIGFyZSBvcHRpb25zIChhdCB0aGUgYm90dG9tIG9mIHRoZSBsaXN0IG9mIEZvcm1zKSB0byBBZGQgYSBOZXcgRm9ybSBvciBNb2RpZnkNCkNvbmZpZ3VyYXRpb24uPC9wPg0KDQo8aDM+QWpvdXRlciB1biBmb3JtdWxhaXJlICZhZ3JhdmU7IHVuZSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPlRyYXZhaWxsZXIgYXZlYyBsZXMgZm9ybXVsYWlyZXM8L2gzPg0KPHA+QnkgY2xpY2tpbmcgb24gYSBGb3JtJiMwMzk7cyBuYW1lLCB5b3UgZW50ZXIgdGhlIEZvcm0gRWRpdCBwYWdlLiBUaGVyZSBhcmUgc2V2ZXJhbCB0YWJzLCB3aGljaCBhcmUgZGVzY3JpYmVkIGJlbG93OjwvcD4NCjxoND5NYWluPC9oND4NCjxwPlRoaXMgaXMgdGhlIG1haW4gcGxhY2UgeW91JiMwMzk7bGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAmcXVvdDtmYXN0IGZpZWxkIGFkZGVyJnF1b3Q7IHB1bGxkb3duLCB0aGF0IGxldHMgeW91IHF1aWNrbHkgYWRkIGEgZmllbGQgdG8gdGhlIGVuZCBvZiB5b3VyIGZvcm0gYnkgc2VsZWN0aW5nIHRoZSBmaWVsZCB0eXBlLjwvcD4NCjxwPkJlbG93IHRoaXMgaXMgdGhlIGxpc3Qgb2YgZmllbGRzIHRoYXQgbWFrZSB1cCB5b3VyIGZvcm0uIE1vcmUgZGV0YWlsIG9uIHRoaXMgaXMgZGVzY3JpYmVkIGJlbG93LjwvcD4NCjxoND5Tb3VtaXNzaW9uIGRlcyBmb3JtdWxhaXJlczwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyJiMwMzk7cyBmb3JtIGVudHJpZXMsIG9yIGp1c3Qgc3RhdGljIHRleHQpLiBJbiB0aGlzIHRhYiwgeW91IHNlbGVjdCB3aGljaCBvZiB0aGVzZSBhcHByb2FjaGVzIHlvdSB3aXNoIHRvIHVzZSwgYW5kLCBpZiB5b3UgY2hvc2UgcmVkaXJlY3Rpb24sIGl0IGFsbG93cyB5b3UgdG8gcGljayB0aGUgcGFnZSB0byByZWRpcmVjdCB1c2VycyB0byBhZnRlciBhIHN1Y2Nlc3NmdWwgZm9ybSBzdWJtaXNzaW9uLjwvcD4NCjxwPkFsc28gb24gdGhpcyBwYWdlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGxhYmVscyBvZiB2YXJpb3VzIHN1Ym1pc3Npb24gYnV0dG9ucyAoJnF1b3Q7UHJldmlvdXMmcXVvdDssICZxdW90O25leHQmcXVvdDssICZxdW90O3N1Ym1pdCZxdW90OykuIFlvdSBjYW4gYWxzbyBvcHQgdG8gaGF2ZSBzb21lIEphdmFzY3JpcHQgYWRkZWQgdG8gdGhlIGxhc3QgcGFnZSBvZiBhIGZvcm0gdGhhdCB3aWxsIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnMgKHVzZWZ1bCBvbiBzbG93IHNlcnZlcnMpLjwvcD4NCjxoND5PcHRpb24gZCYjMDM5O2FmZmljaGFnZSBkdSBmb3JtdWxhaXJlPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+R2FiYXJpdCBkZSBmb3JtdWxhaXJlPC9oND4NCjxwPlRoaXMgaXMgd2hlcmUgeW91IGRvIHlvdXIgY3VzdG9taXphdGlvbiB3b3JrIG9mIHlvdXIgZm9ybSYjMDM5O3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3UmIzAzOTtyZSBhIFNtYXJ0eSBleHBlcnQsIHlvdSBwcm9iYWJseSBkb24mIzAzOTt0IHdhbnQgdG8gbWVzcyBhcm91bmQgd2l0aCB0aGlzLiBJZiB5b3UgYXJlIGEgU21hcnR5IGV4cGVydCwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIHVubGVhc2ggeW91ciBtYWdpYy48L3A+DQo8aDQ+U291bWlzc2lvbiBkdSBnYWJhcml0PC9oND4NCjxwPklmLCBpbiB0aGUgRm9ybSBTdWJtaXNzaW9uIHRhYiwgeW91IHNlbGVjdGVkICYjMDM5O0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90OywgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdSYjMDM5O3JlIGEgU21hcnR5IGV4cGVydCwgeW91IGNhbiBkbyBhbGwgbWFubmVyIG9mIGNyZWF0aXZlIGFuZCBwb3dlcmZ1bCB0aGluZ3MgaGVyZS4gSWYgeW91JiMwMzk7cmUgbm90IGEgU21hcnR5IGV4cGVydCwgeW91IG1pZ2h0IGp1c3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQuDQo8L3A+DQoNCjxoMz5Bam91dGVyIGRlcyBjaGFtcHMgZGFucyB2b3RyZSBmb3JtdWxhaXJlPC9oMz4NCjxwPlRoZSB0eXBlcyBvZiBmaWVsZHMgdGhhdCBhcmUgY3VycmVudGx5IHN1cHBvcnRlZCBmaXQgaW50byBmb3VyIGdyb3Vwczogc3RhbmRhcmQgaW5wdXQgZmllbGRzLCBkaXNwbGF5IGNvbnRyb2wgZmllbGRzLCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMsIGFuZCBmb3JtIHJlc3VsdCBoYW5kbGluZyBmaWVsZHMgKGFsc28gY2FsbGVkIEZvcm0gRGlzcG9zaXRpb25zIGluIHBsYWNlcyk6PC9wPg0KPHVsPg0KPGxpPlN0YW5kYXJkIElucHV0IEZpZWxkcyAtIHRoZXNlIGFyZSBpbnB1dHMgdGhhdCBhbGxvdyBlbnRyeSBvZiB0eXBpY2FsIGZvcm0gZWxlbWVudHM7IHRleHQgaW5wdXRzLCByYWRpbyBidXR0b25zLCBldGMuPC9saT4NCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzIC0gdGhlc2UgaW5wdXQgY29udHJvbCBob3cgdGhlIHVzZXIgd2lsbCBzZWUgdGhlIGRpc3BsYXkgb2YgdGhlIGZvcm07IHBhZ2UgYnJlYWtzLCBzdGF0aWMgdGV4dCwgZXRjLjwvbGk+DQo8bGk+RW1haWwtc3BlY2lmaWMgRmllbGRzIC0gc29tZSBmb3JtcyBnZW5lcmF0ZSBlbWFpbCwgYW5kIGVtYWlsLXNwZWNpZmljIGZpZWxkcyBjYW4gYWx0ZXIgYXR0cmlidXRlcyBvZiB0aGUgZW1haWxzIHNlbnQuPC9saT4NCjxsaT5Gb3JtIERpc3Bvc2l0aW9ucyAtIFRoZXNlIGRldGVybWluZSB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgdXNlcg0Kc3VibWl0cyB0aGUgZm9ybTsgZm9yIGVhY2ggcmVzdWx0IGhhbmRsaW5nIGZpZWxkLCBzb21lIG1ldGhvZCBvZiB0cmFuc21pdHRpbmcsIHNhdmluZywgb3IgZW1haWxpbmcgdGhlDQpmb3JtIGNvbnRlbnRzIHRha2VzIHBsYWNlLiBBIGZvcm0gbWF5IGhhdmUgbXVsdGlwbGUgZm9ybSBkaXNwb3NpdGlvbnMuPC9saT4NCjwvdWw+DQo8cD5Gb3JtIGZpZWxkcyBhcmUgYXNzaWduZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGlkZW50aWZ5IHRoZSBmaWVsZCwgbm90IG9ubHkgb24gdGhlIHNjcmVlbiBhcyBsYWJlbHMgZm9yIHRoZSB1c2VyLA0KYnV0IGluIHRoZSBkYXRhIHdoZW4gaXQmIzAzOTtzIHN1Ym1pdHRlZCBzbyB5b3Uga25vdyB3aGF0IHRoZSB1c2VyIGlzIHJlc3BvbmRpbmcgdG8uIFBocmFzaW5nIHRoZSBuYW1lIGxpa2UgYSBxdWVzdGlvbg0KaXMgYSBoYW5keSB3YXkgb2YgbWFraW5nIGl0IGNsZWFyIHRvIHRoZSB1c2VyIHdoYXQgaXMgZXhwZWN0ZWQuIFNpbWlsYXJseSwgbWFueSBmaWVsZHMgaGF2ZSBib3RoIE5hbWVzIGFuZCBWYWx1ZXMuDQpUaGUgTmFtZXMgYXJlIHdoYXQgZ2V0cyBzaG93biB0byB0aGUgdXNlcjsgdGhlIFZhbHVlIGlzIHdoYXQgZ2V0cyBzYXZlZCBvciB0cmFuc21pdHRlZCB3aGVuIHRoZSB1c2VyIHN1Ym1pdHMNCnRoZSBmb3JtLiBUaGUgVmFsdWVzIGFyZSBuZXZlciBzZWVuIGJ5IHRoZSB1c2VyLCBub3IgYXJlIHRoZXkgdmlzaWJsZSBpbiB0aGUgSFRNTCwgc28gaXQmIzAzOTtzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICZxdW90O1JlcXVpcmVkJnF1b3Q7LCB3aGljaCB3aWxsIGZvcmNlIHRoZSB1c2VyIHRvIGVudGVyIGEgcmVzcG9uc2UuPC9wPg0KPHA+RmllbGRzIGFsc28gbWF5IGJlIGFzc2lnbmVkIGEgQ1NTIGNsYXNzLiBUaGlzIHNpbXBseSB3cmFwcyB0aGUgaW5wdXQgaW4gYSBkaXYgd2l0aCB0aGF0IGNsYXNzLCBzbyBhcyB0byBhbGxvdw0KY3VzdG9taXplZCBsYXlvdXRzLiBUbyB1c2UgdGhpcyBlZmZlY3RpdmVseSwgeW91IG1heSBuZWVkIHRvICZxdW90O3ZpZXcgc291cmNlJnF1b3Q7IG9uIHRoZSBnZW5lcmF0ZWQgZm9ybSwgYW5kIHRoZW4NCndyaXRlIHlvdXIgQ1NTLjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dHMNCjx1bD48bGk+VGV4dCBJbnB1dC4gVGhpcyBpcyBhIHN0YW5kYXJkIHRleHQgZmllbGQuIFlvdSBjYW4gbGltaXQgdGhlIGxlbmd0aCwgYW5kIGFwcGx5IHZhcmlvdXMgdmFsaWRhdGlvbg0KZnVuY3Rpb25zIHRvIHRoZSBmaWVsZC48L2xpPg0KPGxpPlRleHQgQXJlYS4gVGhpcyBpcyBhIGJpZywgZnJlZS1mb3JtIHRleHQgaW5wdXQgZmllbGQuPC9saT4NCjxsaT5DaGVja2JveC4gVGhpcyBpcyBhIHN0YW5kYXJkIGNoZWNrIGJveC48L2xpPg0KPGxpPkNoZWNrYm94IEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiBjaGVja2JveGVzLiBUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhpcyBpbnB1dCBhbmQgYQ0KY29sbGVjdGlvbiBvZiBDaGVja2JveCBpbnB1dHMgaXMgdGhhdCB0aGV5IGFyZSBwcmVzZW50ZWQgYXMgYSBncm91cCwgd2l0aCBvbmUgbmFtZSwgYW5kIGNhbiBoYXZlIGEgdmFsaWRhdGlvbiBmdW5jdGlvbiByZXF1aXJpbmcgdGhhdCB5b3UgY2hlY2sgb25lIG9yIG1vcmUgb2YgdGhlIGJveGVzIGluIHRoZSBncm91cC48L2xpPg0KPGxpPlJhZGlvIEdyb3VwLiBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zLiBPbmx5IG9uZSBvZiB0aGUgZ3JvdXAgbWF5IGJlIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLjwvbGk+DQo8bGk+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10uPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPg0KDQo8L3VsPjwvbGk+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+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+PHNqZ0BjbXNtb2R1bGVzLmNvbT48L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjUuNC4gMjkgQXVnIDA4LiBTY3JhcHBpbmcgcGxhbnMgZm9yIDAuNi4gQnVnIGZpeGVzLiBUZWQmIzAzOTtzIG5ldyAmcXVvdDtFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQmcXVvdDsuIEFkZGVkIGRhdGFiYXNlIGluZGljZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPg0KPGxpPlZlcnNpb24gMC41LjEuIDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZS48L2xpPg0KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+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+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMTY2MDMxMTg1LjEyMjAwOTEyMTkuMTIyMDA5MTIxOS4xMjIwMDkxMjE5LjEnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMjAwOTEyMTkuMS4xLnV0bWNjbj0oZGlyZWN0KXx1dG1jc3I9KGRpcmVjdCl8dXRtY21kPShub25lKSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/it_IT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1RpcG8gZGVsIGNhbXBvIG5vbiBzZXR0YXRvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2F0YWxvZ2VySXRlbXNGaWVsZCddID0gJ1NlbGV6aW9uYSB1bm8gKG8gcGkmdWdyYXZlOykgaXRlbSBkaSBjYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaW5lIEdydXBwbyBDYW1waSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctSW5pemlvIEdydXBwbyBDYW1waSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ0lucHV0IHRlc3R1YWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ0lucHV0IFRlc3R1YWxlIChNdWx0aXBsbyknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnQXJlYSBkaSBUZXN0byc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVjayBCb3gnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdHcnVwcG8gZGkgQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ01lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZXppb25lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBTdGF0aSBVLlMuQS4nOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIHByb3ZpbmNpZSBDYW5hZGVzaSc7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ1NlbGV6aW9uZSBOYXppb25lJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnU2VsZXppb25lIERhdGEnOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdTZWxlemlvbmUgT3JhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnR3J1cHBvIGRpIFJhZGlvIEJ1dHRvbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqSW52aWEgcGVyIEVtYWlsIGkgUmlzdWx0YXRpIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiBiYXNlIGFsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYWx2YSBpIHJpc3VsdGF0aSBpbiB1biBmaWxlIGluIGJhc2UgYWwgbWVudSBhIHRlbmRpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZXppb25hIGxhIHBhZ2luYSBtb2RpZmljYW5kbyBsYSBzZWxlemlvbmUgZGVsIG1lbnUgYSB0ZW5kaW5hJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypJbnZpYSBwZXIgRW1haWwgaSByaXN1bHRhdGkgcGVyIGltcG9zdGFyZSBsJiMwMzk7aW5kaXJpenpvL2knOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYSB0cmFtaXRlIGluZGlyaXp6byBFbWFpbCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCwgYW5kIHNlbmQgY29weSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY3JpdmkgaSByaXN1bHRhdGkgaW4gdW4gZmlsZSBzZW1wbGljZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIG5lbCBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqTWVtb3JpenphIGkgcmlzdWx0YXRpIHBlciBpbCBtb2R1bG8gRm9ybUJyb3dzZXInOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqSW52b2NhIHVuIFRhZyBkZWZpbml0byBkYWxsJiMwMzk7dXRlbnRlIGNvbiBpIHJpc3VsdGF0aSBkZWwgbW9kdWxvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypJbnZpYSBwZXIgZW1haWwgYWxsJiMwMzk7aW5kaXJpenpvIGZvcm5pdG8gZGFsbCYjMDM5O3V0ZW50ZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgYWxsJiMwMzk7YWRtaW4gZGVsIENNUyc7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLUludGVycnV6aW9uZSBkaSBwYWdpbmEnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdDYXJpY2EgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0ludmlhIHBlciBFbWFpbCBpbCBjYW1wbyAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgZGkgbnVvdm8nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdJbnZpYSBwZXIgRW1haWwgaWwgY2FtcG8gJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnSW52aWEgcGVyIEVtYWlsIGlsIGNhbXBvICZxdW90O1N1YmplY3QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctVGVzdG8gU3RhdGljbyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1MaW5rIFN0YXRpY28nOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rIChpbnNlcml0byBkYWxsJiMwMzk7dXRlbnRlKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLUNhbXBvIE5hc2Nvc3RvJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1DYW1wbyBDb21waWxhdG8nOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctSW50ZXJvIFVuaWNvIChTZXJpYWxlKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdOZXNzdW5hIHZhbGlkYXppb25lJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWNvJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0ludGVybyc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdJbmRpcml6em8gRW1haWwnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnTnVtZXJvIHRlbGVmb25pY28gKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdEZXZlIGVzc2VyZSBzcHVudGF0byc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnQ29pbmNpZGUgY29uIHVuJiMwMzk7RXNwcmVzc2lvbmUgUmVnb2xhcmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnTm9uIGNvaW5jaWRlIGNvbiB1biYjMDM5O0VzcHJlc3Npb25lIFJlZ29sYXJlJzsKJGxhbmdbJ3JlcXVpcmVkX2ZpZWxkX21pc3NpbmcnXSA9ICdVbiB2YWxvcmUgbm9uICZlZ3JhdmU7IHN0YXRvIGluc2VyaXRvIHBlciB1biBjYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfdmFsdWUnXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgcGVyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ0luc2VyaXJlIHVuIG51bWVybyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnSW5zZXJpcmUgdW4gdmFsb3JlIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdJbnNlcmlyZSB1biB2YWxvcmUgaW50ZXJvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdJbnNlcmlyZSB1biBpbmRpcml6em8gZW1haWwgdmFsaWRvIHBlciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydlbWFpbF9hZGRyZXNzX2RvZXNfbm90X21hdGNoJ10gPSAnSW5kaXJpenpvIEVtYWlsIG5vbiBjb2luY2lkZSBjb24gdmFsb3JlIGluICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnSW5zZXJpcmUgdW4gbnVtZXJvIGRpIHRlbGVmb25vIHZhbGlkbyBwZXIgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbm9uIHNlbWJyYSBlc3NlcmUgdW4gaW5kaXJpenpvIGVtYWlsIHZhbGlkbyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ0luc2VyaXJlIHVuIHZhbG9yZSBsdW5nbyBub24gcGkmdWdyYXZlOyBkaSAlcyBjYXJhdHRlcmknOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDYXJhdHRlcmUgZGEgdXNhcmUgY29tZSBkZWxpbWl0YXRvcmUgbmVpIHJpc3VsdGF0aSBjaGUgcml0b3JuYW5vIGNvbiBwaSZ1Z3JhdmU7IGRpIHVuIHZhbG9yZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnQXZldGUgYmlzb2dubyBkZWwgcGVybWVzc28gJnF1b3Q7JXMmcXVvdDsgcGVyIGVzZWd1aXJlIHF1ZXN0YSBvcGVyYXppb25lLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NwaWFjZW50ZSEgTm9uIGF2ZXRlIGkgcHJpdmlsZWdpIG5lY2Vzc2FyaSBwZXIgYWNjZWRlcmUgYSBxdWVzdGEgc2V6aW9uZS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ09yZGluZSBkZWkgY2FtcGkgYWdnaW9ybmF0by4nOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybSBjYW5jZWxsYXRvLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnQ2FtcG8gY2FuY2VsbGF0by4nOwokbGFuZ1snY29uZmlndXJhdGlvbl91cGRhdGVkJ10gPSAnQ29uZmlndXJhemlvbmUgYWdnaW9ybmF0YS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEb3ZldGUgc2VsZXppb25hcmUgJnF1b3Q7JXMmcXVvdDsgcGVyIGNvbnRpbnVhcmUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEb3ZldGUgc3BlY2lmaWNhcmUgYWxtZW5vIHVuIGluZGlyaXp6byBkaSBkZXN0aW5hemlvbmUhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ1NpZXRlIHNpY3VyaSBkaSB2b2xlciBjYW5jZWxsYXJlIGlsIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXIgY2FuY2VsbGFyZSBpbCBjYW1wbyAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnT3B6aW9uaSBhdmFuemF0ZSBub24gc29ubyBkaXNwb25pYmlsaSBmaW5vIGFsbGEgc2NlbHRhIGRlbCB0aXBvIGRpIGNhbXBvLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0lsIG5vbWUgZGVsIGNhbXBvICZxdW90OyVzJnF1b3Q7ICZlZ3JhdmU7IGdpJmFncmF2ZTsgaW4gdXNvLiBTaSBwcmVnYSBkaSB1c2FyZSBub21pIGRlaSBjYW1waSB1bml2b2NpLCBvIGRpc2FiaWxpdGFyZSBub21pIGRlaSBjYW1waSB1bml2b2NpIG5lbGxhIGNvbmZpZ3VyYXppb25lIGRpIEZvcm0gQnVpbGRlci4nOwokbGFuZ1snZmllbGRfbm9fbmFtZSddID0gJ0kgY2FtcGkgZGV2b25vIGF2ZXJlIHVuIG5vbWUsIGEgbWVubyBkaSBkaXNhYmlsaXRhcmUgbCYjMDM5O29wemlvbmUgbmVsbGEgY29uZmlndXJhemlvbmUgZGkgRm9ybSBCdWlsZGVyLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW1vJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMdW5naGV6emE6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgY2FzZWxsZSc7CiRsYW5nWydvcHRpb25zJ10gPSAnJSBvcHppb25pJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJSBjYXJhdHRlcmkuJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkaW5lJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25vbiBzcGVjaWZpY2F0b10nOwokbGFuZ1snYWRkZWQnXSA9ICdhZ2dpdW50byc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYWdnaW9ybmF0byc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdPcmRpbmEgbGUgb3B6aW9uaSBuZWxsJiMwMzk7b3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlemlvbmFyZSB1bm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlemlvbmFyZSB0aXBvJzsKJGxhbmdbJ3RvJ10gPSAnQSc7CiRsYW5nWyd5ZXMnXSA9ICdTJmlncmF2ZTsnOwokbGFuZ1snbm8nXSA9ICdObyc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnZGVzdGluYXRhcmknOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyUgcG9zc2liaWxpIGZpbGUnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hemlvbmknOwokbGFuZ1snc2F2ZSddID0gJ1NhbHZhJzsKJGxhbmdbJ2FkZCddID0gJ0FnZ2l1bmdpJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FnZ2lvcm5hJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2FsdmEgZSBjb250aW51YSBjb24gbGEgbW9kaWZpY2EnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hemlvbmUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGljbyc7CiRsYW5nWydmb3JtcyddID0gJ01vZHVsaSc7CiRsYW5nWydmb3JtJ10gPSAnTW9kdWxvICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF6aW9uZSc7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnU3RhdG8gZGVsIGNhbXBvIHJpY2hpZXN0byBhZ2dpb3JuYXRvLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFc3RlbnNpb25pJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdUaXBpIGRpIGZpbGUgcGVybWVzc2knOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdJbCBmaWxlIGNhcmljYXRvICZlZ3JhdmU7IHRyb3BwbyBncmFuZGUhIExhIGRpbWVuc2lvbmUgbWFzc2ltYSAmZWdyYXZlOzonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdRdWVzdG8gdGlwbyBkaSBmaWxlIG5vbiBwdSZvZ3JhdmU7IGVzc2VyZSBjYXJpY2F0by4gU2kgcHJlZ2EgZGkgdmVyaWZpY2FyZSBjaGUgbCYjMDM5O2VzdGVuc2lvbmUgc2lhIGNvcnJldHRhLic7CiRsYW5nWyd1cGxvYWQnXSA9ICdDYXJpY2EnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0YXRvLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnRhemlvbmUgZGVsIEZvcm0gZmFsbGl0YSEgQyYjMDM5OyZlZ3JhdmU7IHVuIHByb2JsZW1hIGNvbiBpbCBmb3JtYXRvIGRlbCBmaWxlIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpZ2hlJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBjb2xvbm5lJzsKJGxhbmdbJzEyX2hvdXInXSA9ICdGb3JtYXRvIDEyIG9yZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnRm9ybWF0byAyNCBvcmUnOwokbGFuZ1snaG91ciddID0gJ09yZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGknOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbm8nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0dhbW1hIFZhbG9yaTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdHcmF6aWUhIElsIHZvc3RybyBpbnNlcmltZW50byAmZWdyYXZlOyBzdGF0byByaWNldnV0by4nOwokbGFuZ1snZWRpdCddID0gJ01vZGlmaWNhJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0VsaW1pbmEnOwokbGFuZ1snZGF5J10gPSAnR2lvcm5vJzsKJGxhbmdbJ21vbiddID0gJ01lc2UnOwokbGFuZ1sneWVhciddID0gJ0Fubm8nOwokbGFuZ1snbm9uZSddID0gJyhuZXNzdW5vKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsbyBkaXNpbnN0YWxsYXRvLic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdWZXJzaW9uZSBtb2R1bG8gJXMgaW5zdGFsbGF0YS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bG8gYWdnaW9ybmF0byBhbGxhIHZlcnNpb25lICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdJbmRpZXRyby4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnSW52aWEgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51YS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnU2VsZXppb25hdG8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnRGVzZWxlemlvbmF0byc7CiRsYW5nWyd0YWJfbWFpbiddID0gJ1ByaW5jaXBhbGUnOwokbGFuZ1sndGFiX3N5bWJvbCddID0gJ0ltcG9zdGF6aW9uaSBkaSB2aXN1YWxpenphemlvbmUgZGVsIEZvcm0nOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0ludmlvIGRlbCBGb3JtJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnSW1wb3N0YXppb25pIENhcHRjaGEnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnSW1wb3N0YXppb25pIEF2YW56YXRlJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ01vZGVsbG8gRm9ybSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnTW9kZWxsbyBwZXIgbCYjMDM5O2ludmlvJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+VmFyaWFiaWxpIHNtYXJ0eSBzb25vIHZhbGlkZSBpbiBxdWVzdG8gY2FtcG8uPGVtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0FnZ2l1bmdlcmUgcGkmdWdyYXZlOyBvcHppb25pJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnQ2FuY2VsbGFyZSBsZSBvcHppb25pIHNlbGV6aW9uYXRlJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWdnaXVuZ2VyZSBwaSZ1Z3JhdmU7IENhc2VsbGUgYSBzcHVudGEnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdFbGltaW5hcmUgbGUgQ2FzZWxsZSBzZWxlemlvbmF0ZSc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FnZ2l1bmdlcmUgYWx0cm8gSW5kaXJpenpvJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnQ2FuY2VsbGFyZSBnbGkgSW5kaXJpenppIHNlbGV6aW9uYXRpJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0FnZ2l1bmdlcmUgYWx0cm8gRGVzdGluYXRhcmlvJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ0NhbmNlbGxhcmUgaSBEZXN0aW5hdGFyaSBzZWxlemlvbmF0aSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1Ryb3BwZSBtYWlsIGdlbmVyYXRlIGRhbCBWb3N0cm8gaW5kaXJpenpvIElQLiBJbCBjb2RpY2UgQW50aS1TcGFtIGhhIGltcGVkaXRvIGxhIHNwZWRpemlvbmUuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ0Zlcm1hdG8gdW4gc29zcGV0dG8gc3BhbSBkYWxsJiMwMzk7aW5kaXJpenpvIElQICVzIC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jpb3JkaW5hIGNhbXBpJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbGxhJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1ZhbG9yZSBzZXR0YXRvOiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnTGEgYWx0ZXp6YSBkZWwgY2FtcG8gbXVsdGlzZWxlY3QnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0NhbXBvIEFsdGV6emEnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQ2FydGVsbGEgZGkgZGVzdGluYXppb25lIHBlciBpIGZpbGUgZGkgdXNjaXRhJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVGFnIERlZmluaXRvIGRhbGwmIzAzOTtVdGVudGUnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1BhZ2luYSBkaSByaXRvcm5vIGNvbiBpbCBsaW5rIGRpIHVwbG9hZCc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ0ludmlhdG8gY29uIEZvcm1CdWlkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0NhdGVnb3JpYSBkaSBVcGxvYWQnOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdJbnZpYSBxdWVzdG8gZmlsZSBhbCBtb2R1bG8gZGkgdXBsb2FkJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXNzaW1hIGx1bmdoZXp6YSc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0V0aWNoZXR0YSBkZWwgQ2hlY2tib3gnOwokbGFuZ1sndGl0bGVfcmFkaW9fbGFiZWwnXSA9ICdFdGljaGV0dGEgZGVsIFJhZGlvIEJ1dHRvbic7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsb3JlIHF1YW5kbyBzZWxlemlvbmF0byc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWYWxvcmUgcXVhbmRvIG5vbiBzZWxlemlvbmF0by4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0RldHRhZ2xpIGRlbCBHcnVwcG8gZGkgQ2hlY2tib3gnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRWxpbWluYXJlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICdUZXN0byAmcXVvdDtTZWxlemlvbmFyZSBVbm8mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVmFsb3JlIHNlbGV6aW9uYXRvJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGV6aW9uYSBpbCBub21lIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGV6aW9uZSBPZ2dldHRvJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdTZWxlemlvbmUgcHJlZGVmaW5pdGEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTZWxlemlvbmUgcHJlZGVmaW5pdGEnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTZWxlemlvbmUgcHJlZGVmaW5pdGEnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOb21lIG9wemlvbmUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsb3JlIGludmlhdG8nOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ09wemlvbmkgUHVsbGRvd24nOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ09wemlvbmkgTXVsdGlzZWxlY3QnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0luZGlyaXp6byBlbWFpbCBkaSBkZXN0aW5hemlvbmUnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdOb21lIGZpbGUgZGVzdGluYXppb25lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzYSB1bmEgdmFsaWRhemlvbmUgc2VtcGxpY2UgZGkgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNhIHVuYSB2YWxpZGF6aW9uZSBzZW1wbGljZSBkaSBlbWFpbCAoZXMuLCBwZXJtZXR0ZSAmcXVvdDt4QHkmcXVvdDsgaW52ZWNlIGRpIHJpY2hpZWRlcmUgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7SW5kaXJpenpvIEZyb20mcXVvdDsgcGVyIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnSW5zaWVtZSBkaSBjYXJhdHRlcmkgZGkgZW5jb2RpbmcgcGVyIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2RpcmVjdG9yX2RldGFpbHMnXSA9ICdUZW5kaW5hIGRlaSBkZXR0YWdsaSBkZWdsaSBFbWFpbGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ05vbWUgRmlsZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnT2dnZXR0byBkZWxsYSBFbWFpbCc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdOb21lIEZvcm0nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdTdGF0byBkZWwgRm9ybSc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1Byb250byBwZXIgRGVwbG95bWVudCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTm9uIHByb250byc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnaSBkYSByaWRpcmlnZXJlIGRvcG8gdW4gZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNhIHF1ZXN0YSBzY29yY2lhdG9pYSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0NhbXBpIEZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJZCBjYW1wbyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ01vc3RyYSBDYW1waSBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGljayBzdSBxdWVzdG8gdmlzdWFsaXp6YSBjYW1waSBhbGlhc2VzIHF1YW5kbyBhZ2dpdW5naSBvIG1vZGlmaWNoaSB1biBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdOb21lIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnQ2FtcG8gQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnRGV0dGFnbGlvIGRlbCBncnVwcG8gUmFkaW8gQnV0dG9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUaXBvIGNhbXBvJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdjcmVhIHVuIGNhbXBvIHBlciB0ZW5lcmUgaWwgZm9ybS4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnQWdnaXVuZ2VyZSBudW92byBGb3JtJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ01vc3RyYSBsYSB2ZXJzaW9uZSBkaSBGb3JtIEJ1aWxkZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnUXVlc3RvIGluc2VyaXNjZSBsYSB2ZXJzaW9uZSBpbnN0YWxsYXRhIGRpIEZvcm0gQnVpbGRlciBpbiB1biBjb21tZW50byBwZXIgYWl1dGFyZSBpbCBkZWJ1Zyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWdnaXVuZ2VyZSBudW92byBjYW1wbyc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXN0byBkZWwgYm90dG9uZSBkaSBJbnZpbyBkZWwgRm9ybSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FnZ2l1bmdvIGNvZGljZSBKYXZhc2NyaXB0IGFsIGJvdHRvbmUgZGkgSW52aW8gcGVyIGV2aXRhcmUgZXJyb3JpIGRpIGludmlpIG11bHRpcGxpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWdnaXVuZ2Ugc2NyaXB0IGluIG1vZG8gc2ljdXJvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1ZhbGlkYXppb25lIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3RvX3ZhbGlkYXRlJ10gPSAnRmllbGQgdG8gVmFsaWRhdGUnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdTdGlsZSBDU1MgcGVyIHF1ZXN0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ1N0aWxlIENTUyBwZXIgcXVlc3RvIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU2ltYm9sbyBwZXIgbWFyY2FyZSBpbCBDYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JpY2hpZWRlIHVuYSByaXNwb3N0YSBwZXIgcXVlc3RvIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdFdGljaGV0dGEgbmFzY29zdGEnOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnTmFzY29uZGUgaWwgbm9tZSBkZWwgQ2FtcG8gbmVsIEZvcm0nOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1Rlc3RvIHN0YXRpY28gZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtZXJvIGRpIGxpbmVlIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTmVzc3VuIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdpbmEgZG92ZSByZWRpcmlnZXJlIGRvcG8gbCYjMDM5O2FwcHJvdmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnUXVlc3RhIGVzcHJlc3Npb25lIHJlZ29sYXJlIHNhciZhZ3JhdmU7IHV0aWxpenphdGEgc29sbyBzZSAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgY29uZmlndXJhdG8gY29uIGwmIzAzOTtvcHppb25lIHJlZ2V4LXJlbGF0ZWQuIEluY2x1ZGUgdW4gcmVnZXggc3RpbGUgUGVybCwgaW5jbHVzbyBhbmNoZSBsZSBiYXJyZSBzdGFydC9zdG9wIGUgZmxhZ3MgKGVzLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdOb3Njb25kaSBnbGkgRXJyb3JpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdUaXBvIGRpIEZvcm0gZGEgdmlzdWFsaXp6YXJlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2aWVuZSBpIG1lc3NhZ2dpIGRpIGRlYnVnIC8gZXJyb3JlIGRhIGVzc2VyZSB2aXNpYmlsaSBhbGwmIzAzOTt1dGVudGUuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnTW9kZWxsbyBFbWFpbCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemUnXSA9ICdEaW1lbnNpb25lIG1hc3NpbWEgZGVsIGZpbGUgZGkgdXBsb2FkIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnUXVlc3RhIGxpbWl0YXppb25lIHNpIGFnZ2l1bmdlIGEgcXVhbHNpYXNpIGxpbWl0ZSBkZWxsYSBjb25maWd1cmF6aW9uZSBkaSBwaHAgbyBkZWwgd2ViIHNlcnZlcic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0VzdGVuc2lvbmkgcGVybWVzc2UnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0luc2VyaXJlIHVuYSBsaXN0YSBzZXBhcmF0YSBkYSB2aXJnb2xlLCBlc2NsdWRlbmRvIGkgcHVudGkgKGVzLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gR2xpIHNwYXppIHNhcmFubm8gaWdub3JhdGkuIExhc2NpYW5kbyB2dW90byBzaWduaWZpY2EgY2hlIG5vbiBjaSBzYXJhbm5vIHJlc3RyaXppb25pLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnVmlzdWFsaXp6YXppb25lIHJpc3RyZXR0YT8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB1c2F0byBwZXIgaWwgRm9ybSBkaSB2aXN1YWxpenphemlvbmUnOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgZGkgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0lsIGNhbXBvIG5vbiBoYSBvcHppb25pIGF2YW56YXRlLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVzdG8gZGkgcml0b3JubyBwZXIgdW4gdmFsb3JlIGRpIGNhbXBvIG5vbiBzcGVjaWZpY2F0byc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnQWJpbGl0byBsJiMwMzk7YWRkaXppb25lIHZlbG9jZSBkZWxsZSB0ZW5kaW5lIGRlaSBGb3JtPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0FiaWxpdG8gbCYjMDM5O2FkZGl6aW9uZSB2ZWxvY2UgZGVsbGEgdGVuZGluZT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0FiaWxpdG8gcHJpbWl0aXZlIGRlZ2xpIGFudGktc3BhbT8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ01vc3RyYSBJRCBkZWkgY2FtcGknOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZGEgZmlsZSBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzYSBxdWVzdG8gbm9tZSBGb3JtJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBwZXIgSW1wb3J0YXJlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNhIHF1ZXN0byBGb3JtIEFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcm8gZW1haWwgZGkgdGlwbyBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdJbmRpcml6em8gVVJMIHByZWRlZmluaXRvIGRlaSBsaW5rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1Rlc3RvIHByZWRlZmluaXRvIGRlaSBsaW5rJzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIGFkIHVuYSBwYWdpbmEgZGVsIHNpdG8nOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnUGxlYXNlIGNvbmZpcm0gdGhhdCB5b3UgYXJlIG5vdCBhIHNjcmlwdCBieSBlbnRlcmluZyB0aGUgbGV0dGVycyBmcm9tIHRoZSBpbWFnZS4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgbm9uIGVyYSBjb3JyZXR0by4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnVGVzdG8gZGkgYWl1dG8gcGVyIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVdGlsaXp6byBmb3JtYXRvIDI0LW9yZT8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpZ2hlIChub3RhOiBwdSZvZ3JhdmU7IGVzc2VyZSBzb3ZyYXNjcml0dG8gdmlhIFN0aWxlIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbG9ubmUgKG5vdGE6IHB1Jm9ncmF2ZTsgZXNzZXJlIHNvdnJhc2NyaXR0byB2aWEgU3RpbGUgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBsb2dpbiBuYW1lIGFzIHdlbGwgYXMgRmlyc3QgTmFtZS9MYXN0IE5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdTb2xvIGluIGdydXBwbyAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1F1ZXN0byBjYW1wbyBwdSZvZ3JhdmU7IGVzc2VyZSBsYXNjaWF0byB2dW90byc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJpbGkgcGVyIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmlsaSB1dGlsaXp6YWJpbGknOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ3ZhcmlhYmlsZSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRhIGRpIEludmlvJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdWb3N0cm8gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0luZGlyaXp6byBJUCBkZWxsYSBwZXJzb25hIGNoZSBzdGEgdXNhbmRvIGlsIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ1ZlcnNpb25lIEZvcm1CdWlsZGVyJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnQ2FyYXR0ZXJlIFRhYnVsYXRvcmUnOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7Pm5hbWU8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+RmllbGQgTmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+dHlwZTwvdGQ+PHRkPkZpZWxkIFR5cGU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5JbnRlcm5hbCBGaWVsZCBJRDwvdGQ+PC90cj4NCjx0cj48dGQ+dmFsdWU8L3RkPjx0ZD5IdW1hbi1yZWFkYWJsZSBWYWx1ZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PnZhbHVlQXJyYXk8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1ZlZGVyZSBpbCAgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+TWFudWFsZSBQSFA8L2E+IHBlciB1biBhaXV0byBzdWxsYSBmb3JtYXR0YXppb25lLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJpbGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnRmllbGQgUmVwcmVzZW50ZWQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IEluZGlldHJvIGFsIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICd1biBjYXJhdHRlcmUgdGFidWxhdG9yZSc7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAgRGF0ZSBGb3JtYXRzPC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdVc2UgV1lTSVdZRyBlZGl0b3IgZm9yIHRleHQgQXJlYSAoQWRtaW4gc2lkZSBvbmx5KT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtIFN1Ym1pc3Npb24gQmVoYXZpb3InOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ1N1Ym1pc3Npb24gQnV0dG9uIExhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRhYmxlIEZpZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ1RoaXMgcGFnZSBsZXRzIHlvdSBjdXN0b21pemUgRm9ybSBTdWJtaXNzaW9uLiBJdCBkb2VzbiYjMDM5O3QgZGV0ZXJtaW5lIHdoYXQgdGhlIEZvcm0gQnVpbGRlciBkb2VzIHdpdGggdGhlIHN1Ym1pdHRlZCBkYXRhLiBZb3UgY2FuIHNldCB0aGF0IHVwIGJ5IGFkZGluZyAmcXVvdDtEaXNwb3NpdGlvbiZxdW90OyBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnUGFydGVuemEgZGVsbCYjMDM5O2ludGVydmFsbG8gQW5ubyc7CiRsYW5nWyd0aXRsZV9lbmRfeWVhciddID0gJ0ZpbmUgZGVsbCYjMDM5O2ludGVydmFsbG8gQW5ubyc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdBbm5vIHByZWRlZmluaXRvJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldHRhIGEgLTEgYWZmaW5jaCZlZ3JhdmU7IGwmIzAzOTthbm5vIHByZWRlZmluaXRvIHNpYSBxdWVsbG8gY29ycmVudGUpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdEb3BvIGNoZSBpbCBmb3JtICZlZ3JhdmU7IGludmlhdG8nOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmlzdWx0YXRvIGRhIHZpc3VhbGl6emFyZSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdNb3N0cmEgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJpZ2UgYWQgdW5hIHBhZ2luYSBkZWwgc2l0byc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ1RoaXMgdGVtcGxhdGUgaXMgZm9yIGRpc3BsYXkgdG8gdGhlIHVzZXIgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBUaGlzIHRlbXBsYXRlIGRvZXMgbm90IGVmZmVjdCBlbWFpbHMgZ2VuZXJhdGVkIG9yIG90aGVyIGZvcm0gZGlzcG9zaXRpb25zIC0tIHlvdSBzZXQgdGhvc2UgdGVtcGxhdGVzICh3aGVyZSBhcHByb3ByaWF0ZSkgaW4gdGhlICZxdW90O2FkdmFuY2VkJnF1b3Q7IHRhYiBmb3IgdGhvc2UgZGlzcG9zaXRpb24gZmllbGRzLic7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9wYWdlJ10gPSAnUGFnaW5hIGRpIGRlc3RpbmF6aW9uZSc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXMnXSA9ICdOb21lIGRlbCBjYW1wbyByaWNoaWVzdG8nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSaWNoaWVkaSBjaGUgaSBjYW1iaSBhYmJpYW5vIHVuIG5vbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmljaGllZGkgbm9taSBkZWkgY2FtcGkgdW5pdm9jaSc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnSSBjYW1waSByaWNoaWVzdGkgaGFubm8gdW4gbm9tZSB1bml2b2NvPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSaW9yZGluYSBpIGNhbXBpJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdDYXJpY2EgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfYWRkX2J1dHRvbl90ZXh0J10gPSAnQWdnaXVuZ2VyZSB1biBib3R0b25lIHRlc3R1YWxlJzsKJGxhbmdbJ3RpdGxlX2RlbF9idXR0b25fdGV4dCddID0gJ1Rlc3RvIGRlbCBib3R0b25lIGRpIENhbmNlbGxhemlvbmUnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVyZSBkYSBjYWxjb2xhcmUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nYSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpY28nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdNb3N0cmEgaWwgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgc2lnbmlmaWNhIEZvcm0gY2hlIHJpcG9zaXppb25hbm8gaWwgdGFnIHtjbXNfbW9kdWxlfSwgbm9uLWlubGluZSByaXBvc2l6aW9uYW5vIGlsIHRhZyB7Y29udGVudH0uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdWYWxvcmUgcHJlZGVmaW5pdG8gcGVyIGlsIENhbXBvJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdOZWVkIG1vcmUgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1N3aXRjaCB0byBBZHZhbmNlZCBNb2RlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU3dpdGNoIHRvIFNpbXBsZSBNb2RlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1sndGl0bGVfbmV3bGluZV9yZXBsYWNlbWVudCddID0gJ05ld2xpbmUvQ2FycmlhZ2UgUmV0dXJuIHJlcGxhY2VtZW50IGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50X2hlbHAnXSA9ICdMZWF2ZSBibGFuayB0byBhbGxvdyBuZXdsaW5lcyBhbmQgY2FycmlhZ2UgcmV0dXJucyBpbiBvdXRwdXQnOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weSddID0gJ1NlbmQgVXNlciBhIENvcHkgb2YgU3VibWlzc2lvbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0xhYmVsIGZvciBDaGVja2JveCAoaWYgdXNlciBjaG9pY2UpJzsKJGxhbmdbJ3RpdGxlX3NlbmRfbWVfYV9jb3B5J10gPSAnU2VuZCBtZSBhIGNvcHkgb2YgZm9ybSc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlJ10gPSAnQWxsb3cgc3ViamVjdCB0byBiZSBvdmVycmlkZGVuPyc7CiRsYW5nWyd0aXRsZV9hbGxvd19zdWJqZWN0X292ZXJyaWRlX2xvbmcnXSA9ICdBbGxvdyAmIzAzOTtFbWFpbCAmcXVvdDtTdWJqZWN0JnF1b3Q7IEZpZWxkcyYjMDM5OyB0byBvdmVycmlkZSB0aGUgc3ViamVjdCBzcGVjaWZpZWQgaW4gdGhlIHB1bGxkb3duLic7CiRsYW5nWydvcHRpb25fbmV2ZXInXSA9ICdOZXZlcic7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHaXZlIHVzZXIgYSBjaG9pY2UgKGNoZWNrYm94KSc7CiRsYW5nWydvcHRpb25fYWx3YXlzJ10gPSAnQWx3YXlzJzsKJGxhbmdbJ2Vycm9yX2NhdGFsb2dlcl9tb2R1bGVfbm90X2F2YWlsYWJsZSddID0gJzxzdHJvbmc+Q2F0YWxvZ2VyIG1vZHVsZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGluc3RhbGxlZC9hY3RpdmUuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdXQVJOSU5HISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgcHJlZGVmaW5pdG8nOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGNvbiB0YWJlbGxlLCBUaXRvbGkgc3VsbGEgc2luaXN0cmEnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgY29uIHRhYmVsbGUsIFRpdG9sbyBpbiB0ZXN0YSc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBkYSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdTaWV0ZSBzaWN1cmkgZGkgdm9sZXIgc292cmFzY3JpdmVyZSBpbCB2b3N0cm8gTW9kZWxsbyBjb24gcXVlbGxvIHNlbGV6aW9uYXRvPyAoQW5jaGUgZGljZW5kbyBTJmlncmF2ZTssIGRvdmV0ZSBzYWx2YXJlIGlsIGNhbWJpYW1lbnRvKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05lc3N1bmEgaW5mb3JtYXppb25lIEhUVFBfUkVGRVJFUiB1dGlsaXp6YWJpbGUgKHByb2JhYmlsbWVudGUgZG92dXRhIGFsbCYjMDM5O3VzbyBkZWxsYSBWYWxpZGF6aW9uZSBFbWFpbCBVdGFudGUpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdFcnJvcmUgZGkgdmFsaWRhemlvbmUgUGFyYW1ldHJvLiBTaSBwcmVnYSBkaSBjb250cm9sbGFyZSBsJiMwMzk7ZXNhdHRlenphIGRlbGxhIGNvcGlhIGRlbGwmIzAzOTtpbmRpcml6em8gVVJMIGRhbGxhIHZvc3RyYSBlbWFpbCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0Vycm9yZSBkaSB2YWxpZGF6aW9uZSBuZWxsYSByaXNwb3N0YS4gU2kgcHJlZ2EgZGkgY29udHJvbGxhcmUgbCYjMDM5O2VzYXR0ZXp6YSBkZWxsYSBjb3BpYSBkZWxsJiMwMzk7aW5kaXJpenpvIFVSTCBkYWxsYSB2b3N0cmEgZW1haWwhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdFcnJvcmUgZGkgdmFsaWRhemlvbmUgbmVsbGEgcmlzcG9zdGEuIE5lc3N1biBjYW1wbyBlbWFpbCB2YWxpZGF0byBpbiBxdWVzdG8gZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgJmVncmF2ZTsgc3RhdG8gYWdnaW9ybmF0byBhdXRvbWF0aWNhbWVudGUgZGFsbGEgdmVyc2lvbmUgMC4zIGFsbGEgdmVyc2lvbmUgMC40LiBEb3ZldGUgcGVyJm9ncmF2ZTsgZWZmZXR0dWFyZSBhbGN1bmkgZml4LiBTZSBzdGF0ZSB1c2FuZG8gaWwgRm9ybSBkaSBkZWZhdWx0LCByaXBvc2l6aW9uYXRlIHF1ZXN0byBUZW1wbGF0ZSBjb24gJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2FuZG8gbGEgdGVuZGluYSBzZWd1ZW50ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWdnaXVuZ2VyZSwgbW9kaWZpY2FyZSBlIGdlc3RpcmUgZm9ybSBpbnRlcmF0dGl2aSc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ1NlIHN0YXRlIHVzYW5kbyBsYSB2YWx1dGF6aW9uZSBTdHJpbmdhLCBsYSBzb2xhIG9wZXJhemlvbmUgdXRpbGl6emFiaWxlICZlZ3JhdmU7IGxhIGNvbmNhdGVuYXppb25lICgrKSwgbWVudGUgc2UgdXNhdGUgbGEgdmFsdXRhemlvbmUgTnVtZXJvIGF2ZXRlIHVuIHNlbXBsaWNlIG9wZXJhemlvbmUgbWF0ZW1hdGljYSAoKywgLSwgKiwgLyknOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnR2VubmFpbyc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmViYnJhaW8nOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnpvJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbGUnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYWdnaW8nOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnR2l1Z25vJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0x1Z2xpbyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0Fnb3N0byc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NldHRlbWJyZSc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPdHRvYnJlJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdOb3ZlbWJyZSc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGljZW1icmUnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NwaWFjZW50ZSEgQyYjMDM5OyZlZ3JhdmU7IHN0YXRvIHVuIGVycm9yZSBuZWxsJiMwMzk7aW52aW8gZGVsIGZvcm0uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIGVycm9yZSBkaSBpbnZpbzogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yZSBuZWwgZmlsZSBwYXNzYXRvIGFsIG1vZHVsbyBVcGxvYWRzOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdOb24gdHJvdm8gaWwgbW9kdWxvIFVwbG9hZHMnOwokbGFuZ1sndXBsb2FkX2F0dGFjaF9lcnJvciddID0gJ0Vycm9yZSBuZWwgVXBsb2FkL0FsbGVnYXRvIHN1bCBmaWxlICVzICh0bXBfbmFtZTogJXMsIGRpIHRpcG8gJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3JlLiBOb24gcmllc2NvIGFkIG90dGVuZXJlIHVuIGxvY2sgcGVyIGlsIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZGVmaW5pdG86IG5vbiBtYXJjYXRvJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRlZmluaXRvOiBtYXJjYXRvJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtQnVpbGRlciBTdWJtaXNzaW9uJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIgLz5Nb2RlbGxvIHBlciBFbWFpbCBub24gYW5jb3JhIHNldHRhdG8hJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBub24gcG9zc28gdHJvdmFyZSBpbCBtb2R1bG8gcmljaGllc3RvIENNU01haWxlciEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnVXNlciBhcHByb3ZlZCBzdWJtaXNzaW9uICVzIGZyb20gJXMnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnRXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ0V2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQuPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPnZhbHVlXzxuYW1lPjwvZW0+IC0gU3VwcGx5IGEgZGVmYXVsdCB2YWx1ZSB0byBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIGlmIHRoZXJlIGlzIGFuIGVycm9yIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gQSBsaXN0IG9mIGFsbCBrbm93biBlcnJvcnMgKHN0cmluZyk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZDwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19yZXNwb25zZV9pZCddID0gJ1Jpc3Bvc3RhIElELiBVc2F0YSBkYSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdDYW1wbyBJRCBwZXIgb3BlcmF6aW9uaSBpbnRlcm5lJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX25hbWUnXSA9ICdOb21lIEZvcm0nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1faWQnXSA9ICdGb3JtIElEIHBlciBvcGVyYXppb25pIGludGVybmUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5Fc3NlcmUgc2ljdXJpIGRpIHNldHRhcmUgaSBwZXJtZXNzaSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcGVyIGdsaSB1dGVudGkgY2hlIGFtbWluaXN0cmFubyBpIGZvcm1zLiBTZSB2b2xldGUgZXNzZXJlIGF2dmlzYXRpIHZpYSBlbWFpbCBkZWdsaSBpbnNlcmltZW50aSwgYWdnaW9ybmFyZSBpbiBtYW5pZXJhIGFwcHJvcHJpYXRhIGxhIENvbmZpZ3VyYXppb25lLjwvcD4NCjxwPlNpIHByZWdhIGRpIHByZXN0YXJlIGF0dGVuemlvbmUgY2hlIHVuIGZvcm0gZGkgZmVlZGJhY2sgbm9uIGRvdnJlYmJlIGVzc2VyZSBhdHRpdm8gKGNpbyZlZ3JhdmU7IHB1YmJsaWNvKSBtZW50cmUgbW9kaWZpY2F0ZSBpbCBmb3JtLiBEb3ZyZXN0ZSBjcmVhcmUgaWwgZm9ybSBlIHBvaSBwb3NpemlvbmFyZSBpbCB0YWcgbmVsbGEgcGFnaW5hIHF1YW5kbyB0ZXJtaW5hdG8uIEFsdHJpbWVudGkgcG9zc29ubyB0b3JuYXJlIGRlaSByaXN1bHRhdGkgZXJyYXRpLjwvcD4NCjxwPkluIGFnZ2l1bnRhLCBxdWVzdGEgdmVyc2lvbmUgbm9uIHN1cHBvcnRhIGxlIG1vZGlmaWNoZSBpbiBwYXJhbGxlbG8gZGVpIGZvcm1zLiBTaSBwcmVnYSBxdWluZGkgY2hlIHNvbG8gdW4gYWRtaW4gYWxsYSB2b2x0YSBtb2RpZmljaGkgdW4gZGF0byBmb3JtLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHJlYWQgdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+QnkgY29weWluZyB0aGlzIHRhZyBpbnRvIHRoZSBjb250ZW50IG9mIGEgcGFnZSwgb3IgaW50byBhIHRlbXBsYXRlLCB3aWxsIGNhdXNlIHRoYXQgZm9ybSB0byBiZSBkaXNwbGF5ZWQuDQpJbiB0aGVvcnksIHlvdSBjYW4gaGF2ZSBtdWx0aXBsZSBmb3JtcyBvbiBhIHBhZ2UgaWYgeW91IHJlYWxseSB3YW50IHRvLiBCZSBjYXJlZnVsIHdoZW4gcGFzdGluZyB0aGUgdGFnDQppbnRvIGEgcGFnZSYjMDM5O3MgY29udGVudCBpZiB5b3UgdXNlIGEgV1lTSVdZRyBlZGl0b3Igc3VjaCBhcyBUaW55TUNFLCBGQ0tFZGl0LCBvciBIVE1MQXJlYS4gVGhlc2UgZWRpdG9ycyBtYXkgc3RlYWx0aGlseQ0KY2hhbmdlIHRoZSBxdW90ZSBtYXJrcyAoJnF1b3Q7KSBpbnRvIEhUTUwgZW50aXRpZXMgKCZhbXA7cXVvdDspLCBhbmQgdGhlIGZvcm1zIHdpbGwgbm90IHNob3cgdXAuIFRyeSB1c2luZw0Kc2luZ2xlIHF1b3RlcyAoJiMwMzk7KSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5Lg0KDQo8aDM+V29ya2luZyB3aXRoIEZvcm1zPC9oMz4NCjxwPkJ5IGNsaWNraW5nIG9uIGEgRm9ybSYjMDM5O3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdSYjMDM5O2xsIHdvcmsgb24geW91ciBmb3JtLiBIZXJlLCB5b3UgZ2l2ZSBpdCBhIG5hbWUsIGFuIGFsaWFzICh3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IGl0IGZvciBwbGFjaW5nIGl0IGluIGEgcGFnZSBvciB0ZW1wbGF0ZSksIGFuZCwgb3B0aW9uYWxseSwgYSBDU1MgY2xhc3Mgd2l0aCB3aGljaCB0byB3cmFwIHRoZSB3aG9sZSB0aGluZy48L3A+DQo8cD5CZWxvdyB0aGlzLCBpZiB5b3UgaGF2ZSBpdCBlbmFibGVkLCBpcyB0aGUgJnF1b3Q7ZmFzdCBmaWVsZCBhZGRlciZxdW90OyBwdWxsZG93biwgdGhhdCBsZXRzIHlvdSBxdWlja2x5IGFkZCBhIGZpZWxkIHRvIHRoZSBlbmQgb2YgeW91ciBmb3JtIGJ5IHNlbGVjdGluZyB0aGUgZmllbGQgdHlwZS48L3A+DQo8cD5CZWxvdyB0aGlzIGlzIHRoZSBsaXN0IG9mIGZpZWxkcyB0aGF0IG1ha2UgdXAgeW91ciBmb3JtLiBNb3JlIGRldGFpbCBvbiB0aGlzIGlzIGRlc2NyaWJlZCBiZWxvdy48L3A+DQo8aDQ+Rm9ybSBTdWJtaXNzaW9uPC9oND4NCjxwPldoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLCB5b3UgY2FuIGVpdGhlciByZWRpcmVjdCB0aGUgdXNlciB0byBhbm90aGVyIHBhZ2Ugb2YgeW91ciBzaXRlLCBvciB5b3UgY2FuIHByZXNlbnQgdGhlIHVzZXIgc29tZSBtZXNzYWdlICh3aGljaCBjYW4gY29udGFpbiBhbnkgb2YgdGhlIHVzZXImIzAzOTtzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgmcXVvdDtQcmV2aW91cyZxdW90OywgJnF1b3Q7bmV4dCZxdW90OywgJnF1b3Q7c3VibWl0JnF1b3Q7KS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm0mIzAzOTtzIFNtYXJ0eSBUZW1wbGF0ZS4gU2VlIHRoZSBzZWN0aW9uIGNhbGxlZCBGb3JtIFRlbXBsYXRlIFZhcmlhYmxlcyBiZWxvdy48L3A+DQo8cD5UaGUgZm9ybSBzaG91bGQgZGVmYXVsdCB0byBhIEN1c3RvbSB0ZW1wbGF0ZSB0aGF0IGRvY3VtZW50cyB0aGUgU21hcnR5IHRhZ3MgYXZhaWxhYmxlIHRvIHlvdS48L3A+DQo8cD5Vbmxlc3MgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgcHJvYmFibHkgZG9uJiMwMzk7dCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgJiMwMzk7RGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7LCB0aGlzIGlzIHdoZXJlIHlvdSBjYW4gY3JlYXRlIHRoYXQgdGVtcGxhdGUuIFRoZXJlIGlzIGEgZGlzcGxheSBvZiB3aGljaCBzbWFydHkgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8geW91LCBhbmQgYSBidXR0b24gdG8gZ2VuZXJhdGUgYSBzYW1wbGUgdGVtcGxhdGUuPC9wPg0KPHA+SWYgeW91JiMwMzk7cmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3UmIzAzOTtyZSBub3QgYSBTbWFydHkgZXhwZXJ0LCB5b3UgbWlnaHQganVzdCB3YW50IHRvIHVzZSB0aGUgZGVmYXVsdC4NCjwvcD4NCjxoMz5BZGRpbmcgRmllbGRzIHRvIHlvdXIgRm9ybTwvaDM+DQo8cD5UaGUgdHlwZXMgb2YgZmllbGRzIHRoYXQgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgZml0IGludG8gZm91ciBncm91cHM6IHN0YW5kYXJkIGlucHV0IGZpZWxkcywgZGlzcGxheSBjb250cm9sIGZpZWxkcywgZW1haWwtc3BlY2lmaWMgZmllbGRzLCBhbmQgZm9ybSByZXN1bHQgaGFuZGxpbmcgZmllbGRzIChhbHNvIGNhbGxlZCBGb3JtIERpc3Bvc2l0aW9ucyBpbiBwbGFjZXMpOjwvcD4NCjx1bD4NCjxsaT5TdGFuZGFyZCBJbnB1dCBGaWVsZHMgLSB0aGVzZSBhcmUgaW5wdXRzIHRoYXQgYWxsb3cgZW50cnkgb2YgdHlwaWNhbCBmb3JtIGVsZW1lbnRzOyB0ZXh0IGlucHV0cywgcmFkaW8gYnV0dG9ucywgZXRjLjwvbGk+DQo8bGk+RGlzcGxheSBDb250cm9sIEZpZWxkcyAtIHRoZXNlIGlucHV0IGNvbnRyb2wgaG93IHRoZSB1c2VyIHdpbGwgc2VlIHRoZSBkaXNwbGF5IG9mIHRoZSBmb3JtOyBwYWdlIGJyZWFrcywgc3RhdGljIHRleHQsIGV0Yy48L2xpPg0KPGxpPkVtYWlsLXNwZWNpZmljIEZpZWxkcyAtIHNvbWUgZm9ybXMgZ2VuZXJhdGUgZW1haWwsIGFuZCBlbWFpbC1zcGVjaWZpYyBmaWVsZHMgY2FuIGFsdGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGVtYWlscyBzZW50LjwvbGk+DQo8bGk+Rm9ybSBEaXNwb3NpdGlvbnMgLSBUaGVzZSBkZXRlcm1pbmUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHVzZXINCnN1Ym1pdHMgdGhlIGZvcm07IGZvciBlYWNoIHJlc3VsdCBoYW5kbGluZyBmaWVsZCwgc29tZSBtZXRob2Qgb2YgdHJhbnNtaXR0aW5nLCBzYXZpbmcsIG9yIGVtYWlsaW5nIHRoZQ0KZm9ybSBjb250ZW50cyB0YWtlcyBwbGFjZS4gQSBmb3JtIG1heSBoYXZlIG11bHRpcGxlIGZvcm0gZGlzcG9zaXRpb25zLjwvbGk+DQo8L3VsPg0KPHA+Rm9ybSBmaWVsZHMgYXJlIGFzc2lnbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBpZGVudGlmeSB0aGUgZmllbGQsIG5vdCBvbmx5IG9uIHRoZSBzY3JlZW4gYXMgbGFiZWxzIGZvciB0aGUgdXNlciwNCmJ1dCBpbiB0aGUgZGF0YSB3aGVuIGl0JiMwMzk7cyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0JiMwMzk7cyBzYWZlIHRvIHVzZSBmb3INCmVtYWlsIGFkZHJlc3NlcyBhbmQgc3VjaC48L3A+DQo8cD5Tb21lIGZpZWxkcyBjYW4gaGF2ZSBtdWx0aXBsZSB2YWx1ZXMsIG9yIG11bHRpcGxlIG5hbWUvdmFsdWUgcGFpcnMuIFdoZW4geW91IGZpcnN0IGNyZWF0ZSBzdWNoIGEgZmllbGQsDQp0aGVyZSBtYXkgbm90IGJlIHN1ZmZpY2llbnQgaW5wdXRzIGZvciB5b3UgdG8gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyB5b3Ugd2FudC4gVG8gZ2V0IG1vcmUgc3BhY2UgZm9yIGlucHV0dGluZw0KdGhlc2UgdmFsdWVzLCB1c2UgdGhlIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBmb3IgYWRkaW5nIG9wdGlvbnMuPC9wPg0KPHA+RmllbGRzIGNhbiBiZSBhc3NpZ25lZCB2YWxpZGF0aW9uIHJ1bGVzLCB3aGljaCB2YXJ5IGFjY29yZGluZyB0byB0aGUgdHlwZSBvZiB0aGUgZmllbGQuIFRoZXNlIHJ1bGVzIGhlbHANCmVuc3VyZSB0aGF0IHRoZSB1c2VyIGVudGVycyB2YWxpZCBkYXRhLiBUaGV5IG1heSBhbHNvIGJlDQpzZXBhcmF0ZWx5IG1hcmtlZCAmcXVvdDtSZXF1aXJlZCZxdW90Oywgd2hpY2ggd2lsbCBmb3JjZSB0aGUgdXNlciB0byBlbnRlciBhIHJlc3BvbnNlLjwvcD4NCjxwPkZpZWxkcyBhbHNvIG1heSBiZSBhc3NpZ25lZCBhIENTUyBjbGFzcy4gVGhpcyBzaW1wbHkgd3JhcHMgdGhlIGlucHV0IGluIGEgZGl2IHdpdGggdGhhdCBjbGFzcywgc28gYXMgdG8gYWxsb3cNCmN1c3RvbWl6ZWQgbGF5b3V0cy4gVG8gdXNlIHRoaXMgZWZmZWN0aXZlbHksIHlvdSBtYXkgbmVlZCB0byAmcXVvdDt2aWV3IHNvdXJjZSZxdW90OyBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSByYWRpbyBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMuPC9saT4NCjxsaT5NdWx0aXNlbGVjdC4gVGhpcyBpcyBhIG11bHRpLXNlbGVjdCBmaWVsZC4gSXQmIzAzOTtzIHJlYWxseSBjb25jZXB0dWFsbHkgdGhlIHNhbWUgdGhpbmcgYXMgYSBjaGVja2JveCBidXR0b24NCmdyb3VwLCBidXQgaXMgYmV0dGVyIHdoZW4gdGhlcmUgYXJlIGEgbGFyZ2UgbnVtYmVyIG9mIG9wdGlvbnMsIGFzIHlvdSBjYW4gbGltaXQgdGhlIG51bWJlciBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiBhdCBhbnkgb25lIHRpbWUuPC9saT4NCjxsaT5TdGF0ZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIFN0YXRlcyBvZiB0aGUgVS5TLjwvbGk+DQo8bGk+Q291bnRyaWVzLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ291bnRyaWVzIG9mIHRoZSB3b3JsZCAoYXMgb2YgSnVseSAyMDA1KS48L2xpPg0KPGxpPkRhdGUgUGlja2VyLiBUaGlzIGlzIGEgdHJpcGxlIHB1bGxkb3duIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIGRhdGUuPC9saT4NCjxsaT5UaW1lIFBpY2tlci4gVGhpcyBpcyBhIHNldCBvZiBwdWxsZG93bnMgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgdGltZSAodXNpbmcgMTIgb3IgMjQgaG91ciBjbG9jaykuPC9saT4NCjxsaT5GaWxlIFVwbG9hZC4gVGhpcyBpcyBhIGZpbGUgdXBsb2FkIGZpZWxkLjwvbGk+DQo8bGk+TGluayAoVXNlciBFbnRlcmVkKS4gVGhpcyBjcmVhdGVzIGEgZG91YmxlIGlucHV0IGZpZWxkIGZvciBnZXR0aW5nIGEgbGluayBVUkwgYW5kIGxpbmsgdGl0bGUuPC9saT4NCjwvdWw+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+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+Rm9ybUJ1aWxkZXIgY2Fubm90IHlldCBiZSBpbmxpbmVkLiBUaGF0IHNob3VsZCBiZSBhIHNpbXBsZSB1cGdyYWRlIGRvd24gdGhlIGxpbmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91JiMwMzk7cmUgcnVubmluZyBDTVMgMS4xIG9yIGxhdGVyLjwvbGk+DQo8bGk+IFNlY29uZCBzdGVwIGlzIHRvIHJlYWQgYW5kIHVuZGVyc3RhbmQgdGhlIGNhdmVhdCBhYm91dCBXWVNJV1lHIGVkaXRvcnMgdXAgaW4gdGhlDQpzZWN0aW9uIDxlbT5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvZW0+LjwvbGk+DQo8bGk+IElmIHlvdSYjMDM5O3JlIG1pc3NpbmcgZmllbGRzIGluIGFuIGVtYWlsIHRoYXQgZ2V0cyBnZW5lcmF0ZWQsIGNoZWNrIHRoZSBkaXNwb3NpdGlvbiBmaWVsZCYjMDM5O3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91JiMwMzk7cmUgc3BlY2lmeWluZyB0aGUgbWlzc2luZyBmaWVsZHMuIFNlZW1zIG9idmlvdXMsIGJ1dCBpdCYjMDM5O3MgYW4gZWFzeSBtaXN0YWtlIHRvIG1ha2UuPC9saT4NCjxsaT5VbmNoZWNrIHRoZSAmcXVvdDtIaWRlIEVycm9ycyZxdW90OyBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJJiMwMzk7dmUgZG9uZSBhbGwgSSBjYW4NCnRvIG1ha2Ugc3VyZSBubyBlZ3JlZ2lvdXMgYnVncyBoYXZlIGNyZXB0IGluLCBJIGhhdmUgdG8gYWRtaXQgdGhhdCBkdXJpbmcgZWFybHkgdGVzdGluZywgdGhpcyBwcm9ncmFtDQpyZXZlYWxlZCBzZXZlbiBjb2Nrcm9hY2hlcywgdHdvIGVhcndpZ3MsIGEgc21hbGwgZmFtaWx5IG9mIGFwaGlkcywgYW5kIGEgd2Fsa2luZy1zdGljayBpbnNlY3QuIEl0IGFsc28NCmF0ZSB0aGUgbmVpZ2hib3ImIzAzOTtzIG5hc3R5IGxpdHRsZSB5YXAgZG9nLCBmb3Igd2hpY2ggSSB3YXMgaW5hcHByb3ByaWF0ZWx5IGdyYXRlZnVsLjwvcD4NCjxwPlRoZSBmaW5hbCByZWxlYXNlIHdpbGwgaW5jbHVkZSBidWcgZml4ZXMsIGRvY3VtZW50YXRpb24sIGFuZCB1bmNvbmRpdGlvbmFsIGxvdmUuPC9wPg0KPGgzPlN1cHBvcnQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUsIEZBUXMsIG9yIHRvIGZpbGUgYSBCdWcgUmVwb3J0LCBwbGVhc2UgdmlzaXQgdGhlIENNUyBNYWRlIFNpbXBsZSAgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZyI+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA3LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICc8dWw+DQo8bGk+VmVyc2lvbiAwLjUuNS4gMSBPY3QgMDguIEJ1ZyBmaXhlcy4gQWRkZWQgLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuNC4gMjkgQXVnIDA4LiBTY3JhcHBpbmcgcGxhbnMgZm9yIDAuNi4gQnVnIGZpeGVzLiBUZWQmIzAzOTtzIG5ldyAmcXVvdDtFbWFpbCAmcXVvdDtGcm9tIEFkZHJlc3MmcXVvdDsgQWdhaW4gRmllbGQmcXVvdDsuIEFkZGVkIGRhdGFiYXNlIGluZGljZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPg0KPGxpPlZlcnNpb24gMC41LjEuIDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZS48L2xpPg0KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+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+DQo8L3VsPic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMjI4NzE0NDcuNTY4Ljk1LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L2luZGV4LnBocHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xODA3MTUxNjQwLjExODI5NjA0NTYuMTIyMjg3MTQ0Ny4xMjIyOTc1NTczLjU2OSc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/ja_JP.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBFbmQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLUZpZWxkc2V0IFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAn44OG44Kt44K544OIJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ+ODhuOCreOCueODiCAo6KSH5pWwKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICfjg4bjgq3jgrnjg4jjgqjjg6rjgqInOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAn44OB44Kn44OD44Kv44Oc44OD44Kv44K5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAn44OB44Kn44OD44Kv44Oc44OD44Kv44K544O744Kw44Or44O844OXJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ+ODl+ODq+ODgOOCpuODsyc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICfopIfmlbDpgbjmip4nOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnQ291bnRyeSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpbWUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkVtYWlsIFJlc3VsdHMgdG8gc2V0IEFkZHJlc3MoZXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGF0ZS12aWEtRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGF0YWJhc2UnXSA9ICcqU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRm9ybUJyb3dzZXInXSA9ICcqU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypDYWxsIEEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRlbGl2ZXJUb0VtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnKkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgRW1haWwgQWRkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqQ01TIEFkbWluIFVzZXLjgbjjg6Hjg7zjg6vjgZnjgosnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1QYWdlIEJyZWFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAn44OV44Kh44Kk44Or44Ki44OD44OX44Ot44O844OJJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAn44Oh44O844Or44GuICJGcm9tIEFkZHJlc3MiIOmgheebric7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ+ODoeODvOODq+OBriAiRnJvbSBOYW1lIiDpoIXnm64nOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICfjg6Hjg7zjg6vjga4gIlN1YmplY3QiIOmgheebric7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy0g6Z2Z55qE44OG44Kt44K544OIJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLSDpnZnnmoTjg6rjg7Pjgq8nOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICfjg6rjg7Pjgq8gKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy0g6Z2e6KGo56S66aCF55uuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy0gQ29tcHV0ZWQgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9VbmlxdWVJbnRlZ2VyRmllbGQnXSA9ICctVW5pcXVlIEludGVnZXIgKFNlcmlhbCknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAn5YWl5Yqb44OB44Kn44OD44Kv44Gq44GXJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ+aVsOWApCc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ+ODoeODvOODq+OCouODieODrOOCuSc7CiRsYW5nWyd2YWxpZGF0aW9uX3VzcGhvbmUnXSA9ICfpm7voqbHnlarlj7cgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICflv4XpoIjjg4Hjgqfjg4Pjgq8nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ01hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdEb2VzblwndCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1BsZWFzZSBlbnRlciBhIG51bWJlciBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbnRyeSBmb3IgIiVzIic7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAiJXMiJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MgZm9yICIlcyInOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwaG9uZSBudW1iZXIgZm9yICIlcyInOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnIiVzIiBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnUGxlYXNlIGVudGVyIGEgdmFsdWUgdGhhdCBpcyBubyBsb25nZXIgdGhhbiAlcyBjaGFyYWN0ZXJzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgIiVzIiBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb25cJ3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGaWVsZCBvcmRlciB1cGRhdGVkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICfjg5Xjgqnjg7zjg6DjgpLliYrpmaTjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ+mgheebruOCkuWJiumZpOOBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICfoqK3lrprmg4XloLHjgpLmm7TmlrDjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAiJXMiIGluIG9yZGVyIHRvIGNvbnRpbnVlLic7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZm9ybSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZpZWxkICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBZHZhbmNlZCBvcHRpb25zIGFyZSBub3QgYXZhaWxhYmxlIHVudGlsIHRoZSBmaWVsZCB0eXBlIGhhcyBiZWVuIHNldC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdUaGUgZmllbGQgbmFtZSAiJXMiIGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICfplbfjgZU6ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1t1bnNwZWNpZmllZF0nOwokbGFuZ1snYWRkZWQnXSA9ICfov73liqDjgZfjgb7jgZfjgZ/jgIInOwokbGFuZ1sndXBkYXRlZCddID0gJ+abtOaWsOOBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICfjgbLjgajjgaTjgpLpgbjmip4nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ+OBr+OBhCc7CiRsYW5nWydubyddID0gJ+OBhOOBhOOBiCc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAncmVjaXBpZW50cyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgcG9zc2libGUgZmlsZXMnOwokbGFuZ1snZGVzdGluYXRpb25fY291bnQnXSA9ICclcyBkZXN0aW5hdGlvbnMnOwokbGFuZ1snc2F2ZSddID0gJ+S/neWtmCc7CiRsYW5nWydhZGQnXSA9ICfov73liqAnOwokbGFuZ1sndXBkYXRlJ10gPSAn5pu05pawJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAn5L+d5a2Y44GX44CB57eo6ZuG44KS57aa44GR44KLJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAn5oOF5aCxJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICfoqK3lrprmg4XloLEnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ0ZpZWxkIHJlcXVpcmVkIHN0YXRlIHVwZGF0ZWQuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ+acgOWkp+OCteOCpOOCuic7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0V4dGVuc2lvbnMnOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0FsbG93ZWQgZmlsZSB0eXBlcyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1VwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlISBNYXhpbXVtIHNpemUgaXM6JzsKJGxhbmdbJ2lsbGVnYWxfZmlsZV90eXBlJ10gPSAnVGhpcyB0eXBlIG9mIGZpbGUgbWF5IG5vdCBiZSB1cGxvYWRlZC4gUGxlYXNlIGNoZWNrIHRoYXQgdGhlIGV4dGVuc2lvbiBpcyBjb3JyZWN0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICfjgqLjg4Pjg5fjg63jg7zjg4knOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm0gSW1wb3J0ZWQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ0Zvcm0gaW1wb3J0IGZhaWxlZCEgVGhlcmUgd2FzIGEgcHJvYmxlbSB3aXRoIHRoZSBmb3JtYXQgb2YgdGhlIFhNTCBmaWxlLic7CiRsYW5nWydyb3dzJ10gPSAnJXMg6KGMJzsKJGxhbmdbJ2NvbHMnXSA9ICclcyDliJcnOwokbGFuZ1snMTJfaG91ciddID0gJzEy5pmC6ZaT6KGo56S6JzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNOaZgumWk+ihqOekuic7CiRsYW5nWydob3VyJ10gPSAn5pmCJzsKJGxhbmdbJ21pbiddID0gJ+WIhic7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICfnr4Tlm7I6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnVGhhbmtzISBZb3VyIHN1Ym1pc3Npb25zIGhhdmUgYmVlbiByZWNlaXZlZC4nOwokbGFuZ1snZWRpdCddID0gJ+e3qOmbhic7CiRsYW5nWydkZWxldGUnXSA9ICfliYrpmaQnOwokbGFuZ1snZGF5J10gPSAn5pelJzsKJGxhbmdbJ21vbiddID0gJ+aciCc7CiRsYW5nWyd5ZWFyJ10gPSAn5b+1JzsKJGxhbmdbJ25vbmUnXSA9ICco44Gq44GXKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ+ODouOCuOODpeODvOODq+OCkuOCouODs+OCpOODs+OCueODiOODvOODq+OBl+OBvuOBl+OBn+OAgic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ+aIu+OCiy4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAn57aa44GR44KLLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICfjg4Hjgqfjg4Pjgq8nOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAn6Z2e44OB44Kn44OD44KvJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAn44Oh44Kk44OzJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICfjg5Xjgqnjg7zjg6Djga7ooajnpLroqK3lrponOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGHoqK3lrponOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAn44OV44Kp44O844Og44O744OG44Oz44OX44Os44O844OIJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTdWJtaXNzaW9uIFRlbXBsYXRlJzsKJGxhbmdbJ2NhbnVzZV9zbWFydHknXSA9ICc8ZW0+U21hcnR5IHZhcmlhYmxlcyBhcmUgdmFsaWQgaW4gdGhpcyBmaWVsZC48L2VtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ+OCquODl+OCt+ODp+ODs+OCkui/veWKoCc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ+mBuOaKnuOBl+OBn+OCquODl+OCt+ODp+ODs+OCkuWJiumZpCc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueOCkui/veWKoCc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ+mBuOaKnuOBl+OBn+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueOCkuWJiumZpCc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ+OCreODo+ODs+OCu+ODqyc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAicmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlIjxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggIm11bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyI8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ+mgheebruOBrumrmOOBlSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ+ODpuODvOOCtuWumue+qeOCv+OCsCc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAn44Kr44OG44K044Oq44Gu44Ki44OD44OX44Ot44O844OJJzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnU2VuZCB0aGlzIGZpbGUgdG8gdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZCc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX2xlbmd0aCddID0gJ+acgOWkp+mVtyc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ+ODgeOCp+ODg+OCr+ODnOODg+OCr+OCueODu+ODqeODmeODqyc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ+ODqeOCuOOCquODnOOCv+ODs+ODu+ODqeODmeODqyc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ+WJiumZpOOBl+OBvuOBmeOBi++8nyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICciU2VsZWN0IE9uZSIgVGV4dCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnIkZyb20gbmFtZSIgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1VzZSByZWxheGVkIGVtYWlsIGFkZHJlc3MgdmFsaWRhdGlvbiAoZS5nLiwgYWxsb3cgInhAeSIgaW5zdGVhZCBvZiByZXF1aXJpbmcgInhAeS50bGQiKSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICfjg6Hjg7zjg6vjga4iRnJvbSBhZGRyZXNzIic7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICfjg5XjgqHjgqTjg6vlkI0nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ+ODoeODvOODq+OCteODluOCuOOCp+OCr+ODiOWQjSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICfjg5Xjgqnjg7zjg6DlkI0nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICfjg5Xjgqnjg7zjg6Djgrnjg4bjg7zjgr/jgrknOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICfjg4fjg5fjg63jgqTjgafjgY3jgb7jgZnjgIInOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ+ODh+ODl+ODreOCpOOBp+OBjeOBvuOBm+OCk+OAgic7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyXCdzIGlucHV0IGdldHMgaGFuZGxlZC4gWW91IGNhbic7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ3VzZSB0aGlzIHNob3J0Y3V0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICfjg5Xjgqnjg7zjg6DjgqjjgqTjg6rjgqLjgrknOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICfjg5Xjgqnjg7zjg6DpoIXnm64nOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICfpoIXnm65JRCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1Nob3cgRmllbGQgQWxpYXNlcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAn6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAn6aCF55uu44Ko44Kk44Oq44Ki44K5JzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICfpoIXnm67lnosnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ+ODleOCqeODvOODoOOBrui/veWKoCc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAn6aCF55uu44Gu6L+95YqgJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ0Zvcm0gU3VibWl0IEJ1dHRvbiBUZXh0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnQWRkIEphdmFzY3JpcHQgdG8gZmluYWwgU3VibWl0IEJ1dHRvbiB0aGF0IHdpbGwgaGVscCBwcmV2ZW50IG11bHRpcGxlIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnQWRkIHNhZmV0eSBzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ0Zvcm0gIk5leHQiIEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICJQcmV2aW91cyIgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ+mgheebruOBruWFpeWKm+ODgeOCp+ODg+OCryc7CiRsYW5nWyd0aXRsZV9mb3JtX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2Nzc19jbGFzcyddID0gJ0NTUyBDbGFzcyBmb3IgdGhpcyBmaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCB0byBtYXJrIHJlcXVpcmVkIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ+W/hemgiCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICfpnZ7ooajnpLrjg6njg5njg6snOwokbGFuZ1sndGl0bGVfaGlkZV9sYWJlbF9sb25nJ10gPSAnSGlkZSB0aGlzIGZpZWxkXCdzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ+ihjOeVquWPt+OCkuihqOekuic7CiRsYW5nWydub19kZWZhdWx0J10gPSAnTm8gRGVmYXVsdCc7CiRsYW5nWydyZWRpcmVjdF9hZnRlcl9hcHByb3ZhbCddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgYWZ0ZXIgYXBwcm92YWwnOwokbGFuZ1sndGl0bGVfcmVnZXhfaGVscCddID0gJ1RoaXMgcmVndWxhciBleHByZXNzaW9uIHdpbGwgb25seSBiZSB1c2VkIGlmICJ2YWxpZGF0aW9uIHR5cGUiIGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICIvaW1hZ2VcXC4oXFxkKykvaSIpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ1JlcVwnZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ+OCqOODqeODvOOCkumdnuihqOekuic7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAn44Oh44O844Or44OG44Oz44OX44Os44O844OIJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgImpwZyxnaWYsanBlZyIpLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUGFnZSAlcyBvZiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRmllbGQgaGFzIG5vIGFkdmFuY2VkIG9wdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZXh0IHRvIHJldHVybiBmb3IgdW5zcGVjaWZpZWQgZmllbGQgdmFsdWVzJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGRpbmcgcHVsbGRvd24gZm9yIGZvcm1zPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZCBwdWxsZG93bj8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ0Zhc3QgZmllbGQgYWRkZXInOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgb25seSBhbGxvdyAxMCBlbWFpbHMgdG8gYmUgdHJpZ2dlcmVkIGZyb20gYSBnaXZlbiBJUCBhZGRyZXNzIChwZXIgaG91cikuJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ0VuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAn6aCF55uuSUTjgpLopovjgosnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGFsbG93IGRpc3BsYXlpbmcgZmllbGQgaWRzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybSBmcm9tIFhNTCBmaWxlJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVc2UgdGhpcyBmb3JtIG5hbWUnOwokbGFuZ1sndGl0bGVfaW1wb3J0X2xlZ2VuZCddID0gJ1hNTOODleOCqeODvOODoOOBruOCpOODs+ODneODvOODiCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1hbGlhcyddID0gJ1VzZSB0aGlzIGZvcm0gYWxpYXMnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0hUTUzjg6Hjg7zjg6vjgpLkvZzmiJDjgZfjgb7jgZnjgYvvvJ8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAn44OH44OV44Kp44Or44OI44Oq44Oz44KvVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ+ODh+ODleOCqeODq+ODiOODquODs+OCr+ODhuOCreOCueODiCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4iQ2FwdGNoYSI8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiJDYXB0Y2hhIjwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIOOBr+WIqeeUqOOBp+OBjeOBvuOBm+OCk+OAgic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uXCd0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICfjg6rjg7Pjgq/jg6njg5njg6snOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAn5Y2I5YmNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICfljYjlvownOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXJcJ3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyXCdzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyXCdzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVGhpcyBmaWVsZCBtYXkgYmUgbGVmdCBlbXB0eSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXMgRm9yIFRlbXBsYXRlJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmxlcyBBdmFpbGFibGUnOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJsZSc7CiRsYW5nWydoZWxwX3N1Ym1pc3Npb25fZGF0ZSddID0gJ0RhdGUgb2YgU3VibWlzc2lvbic7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnWW91ciBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRkcmVzcyBvZiBwZXJzb24gdXNpbmcgZm9ybSc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdVUkwgb2YgcGFnZSBjb250YWluaW5nIGZvcm0nOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnRm9ybUJ1aWxkZXIgdmVyc2lvbic7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBDaGFyYWN0ZXInOwokbGFuZ1snaGVscF9vdGhlcl9maWVsZHMnXSA9ICdBbHRlcm5hdGUgZmllbGQgbmFtZXMgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IChlc3BlY2lhbGx5IHVzZWZ1bCBpZiBTbWFydHkgaXMgY2hva2luZyBvbiBjaGFyYWN0ZXJzIG91dHNpZGUgb2YgQVNDSUkgMzItMTI2KS4gPGJyIC8+T3RoZXIgZmllbGRzIHdpbGwgYmUgYXZhaWxhYmxlIGFzIHlvdSBhZGQgdGhlbSB0byB0aGUgZm9ybS4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdZZXQgYW5vdGhlciB3YXkgb2YgYWNjZXNzaW5nIGZpZWxkIHZhbHVlcyBpcyB2aWEgJGZpZWxkbmFtZV9vYmosICRhbGlhc19vYmosIG9yICRmbGRfI19vYmosIHdoZXJlIGVhY2ggZmllbGQgaXMgYW4gb2JqZWN0IGNvbnRhaW5naW5nOjxiciAvPjx0YWJsZT4NCjx0cj48dGQgY2xhc3M9Im9kZCI+bmFtZTwvdGQ+PHRkIGNsYXNzPSJvZGQiPkZpZWxkIE5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0ib2RkIj5pZDwvdGQ+PHRkIGNsYXNzPSJvZGQiPkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0ib2RkIj52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9Im9kZCI+QXJyYXkgb2YgZmllbGQgdmFsdWUocyk8L3RkPjwvdHI+PC90YWJsZT48ZW0+ZS5nLjwvZW0+LCB5b3UgY291bGQgdXNlICJ7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnwqsg44OV44Kp44O844Og44G45oi744KLJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICfjgrXjg7Pjg5fjg6vjg4bjg7Pjg5fjg6zjg7zjg4jjga7kvZzmiJAnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAn44K144Oz44OX44OrSFRNTOODhuODs+ODl+ODrOODvOODiOOBruS9nOaIkCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ+OCteODs+ODl+ODq+ODmOODg+ODgOOBruS9nOaIkCc7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICfml6Xku5jlnosgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuXCd0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgIkRpc3Bvc2l0aW9uIiBmaWVsZHMgdG8geW91ciBmb3JtLic7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAn5bm044Gu5aeL44G+44KKJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAn5bm044Gu57WC44KP44KKJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ+ODh+ODleOCqeODq+ODiOW5tCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXJfaGVscCddID0gJyhTZXQgdG8gLTEgZm9yIGRlZmF1bHQgeWVhciB0byBiZSB0aGUgY3VycmVudCB5ZWFyKSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9uJ10gPSAnQWZ0ZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlJ10gPSAnUmVzcG9uc2UgdG8gZGlzcGxheSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIic7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAn44K144Kk44OI44G444Oq44OA44Kk44Os44Kv44OI44GZ44KLJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgImFkdmFuY2VkIiB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAn5b+F6aCI5YWl5Yqb44Gu6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAn5b+F6aCI5YWl5Yqb44CB5LiA5oSP44Gu6aCF55uu5ZCNJzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdSZXF1aXJlIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcz8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUmVvcmRlciBGaWVsZHMnOwokbGFuZ1sndGl0bGVfbG9hZF90ZW1wbGF0ZSddID0gJ+ODhuODs+ODl+ODrOODvOODiOOBruiqreOBv+i+vOOBvyc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ+aWh+Wtl+WIlyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAn5pWw5YCkJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9InlvdXJmbigpIic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ0Zvcm0gU3VibWlzc2lvbiBKYXZhc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSJ5b3VyZm4oKSIuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgInNhZmV0eSBzY3JpcHQiIG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ+ODh+ODleOCqeODq+ODiOODhuODs+ODl+ODrOODvOODiCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAn44OG44Oz44OX44Os44O844OI44OV44Kp44O844OgICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICIlcyIuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3VcJ3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAiZGVmYXVsdCIgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnMeaciCc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnMuaciCc7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnM+aciCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnNOaciCc7CiRsYW5nWydkYXRlX21heSddID0gJzXmnIgnOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnNuaciCc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICc35pyIJzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnOOaciCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJznmnIgnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnMTDmnIgnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJzEx5pyIJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICcxMuaciCc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnU29ycnkhIFRoZXJlIHdhcyBhbiBlcnJvciBoYW5kbGluZyB5b3VyIGZvcm0gc3VibWlzc2lvbi4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybUJ1aWxkZXIgc3VibWl0IGVycm9yOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRXJyb3IgY29tbWl0dGluZyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZTogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnQ291bGQgbm90IGZpbmQgdGhlIHVwbG9hZHMgbW9kdWxlJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXJyb3IuIFVuYWJsZSB0byBvYnRhaW4gbG9jayBmb3IgZmlsZS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfjg4fjg5Xjgqnjg6vjg4g6IOmdnuODgeOCp+ODg+OCryc7CiRsYW5nWydjaGVja2VkX2J5X2RlZmF1bHQnXSA9ICfjg4fjg5Xjgqnjg6vjg4g6IOODgeOCp+ODg+OCryc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zZSBJRC4gVXNlZCBieSBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRGVmYXVsdCBmaWVsZCB2YWx1ZXM7IHNlZSBtb2R1bGUgaGVscCc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZmllbGRfaWQnXSA9ICdGaWVsZCBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAn44OV44Kp44O844Og5ZCNJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19mb3JtX2lkJ10gPSAnRm9ybSBJRCBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyYWwgcGFyYW1ldGVycyBmb3IgaW50ZXJuYWwgb3BlcmF0aW9ucyc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdVwnZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3VcJ2xsIG5lZWQgdG8gYWx3YXlzIGluY2x1ZGUgdGhlIHskZmJfaGlkZGVufSBhbmQgeyRzdWJtaXR9DQogICB0YWdzLjwvcD4NCg0KPHA+WW91IGNhbiBhY2Nlc3MgeW91ciBmb3JtIGZpZWxkcyBlaXRoZXIgdXNpbmcgdGhlICRmaWVsZHMgYXJyYXkgb3IgYnkgZGlyZWN0bHkgYWNjZXNzaW5nIGZpZWxkcyBieSB0aGVpciBuYW1lcyAoZS5nLiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KDQo8cD5FYWNoIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5GaWVsZDwvdGg+PHRoPlZhbHVlPC90aD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZGlzcGxheTwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBkaXNwbGF5ZWQsIDAgb3RoZXJ3aXNlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+cmVxdWlyZWQ8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBpcyByZXF1aXJlZCwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5yZXF1aXJlZF9zeW1ib2w8L3RkPjx0ZD50aGUgc3ltYm9sIGZvciByZXF1aXJlZCBmaWVsZHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5jc3NfY2xhc3M8L3RkPjx0ZD50aGUgQ1NTIGNsYXNzIHNwZWNpZmllZCBmb3IgdGhpcyBmaWVsZDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnZhbGlkPC90ZD48dGQ+MSBpZiB0aGlzIGZpZWxkIGhhcyBwYXNzZWQgdmFsaWRhdGlvbiwgMCBvdGhlcndpc2U8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5lcnJvcjwvdGQ+PHRkPlRleHQgb2YgdGhlIHZhbGlkYXRpb24gcHJvYmxlbSwgaW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBmaWVsZCBkaWQgbm90IHZhbGlkYXRlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aGlkZV9uYW1lPC90ZD48dGQ+MSBpZiB0aGUgZmllbGQgbmFtZSBzaG91bGQgYmUgaGlkZGVuLCAwIG90aGVyd2lzZTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkIHR5cGUgaGFzIGEgbGFiZWw8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGlmIHRoZSBmaWVsZCBuZWVkcyB0byBiZSB3cmFwcGVkIGluIGEgRElWIChvciB0YWJsZSByb3csIGlmIHRoYXRcJ3MgdGhlIHdheSB5b3Ugc3dpbmcpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bmFtZTwvdGQ+PHRkPnRoZSBmaWVsZFwncyBuYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXQ8L3RkPjx0ZD50aGUgZmllbGRcJ3MgaW5wdXQgY29udHJvbCAoZS5nLiwgdGhlIGlucHV0IGZpZWxkIGl0c2VsZik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5vcDwvdGQ+PHRkPmEgY29udHJvbCBidXR0b24gYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCBpZiBhcHBsaWNhYmxlIChlLmcuLCB0aGUgZGVsZXRlIGJ1dHRvbiBmb3IgZXhwYW5kYWJsZSB0ZXh0IGlucHV0KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmlucHV0X2lkPC90ZD48dGQ+dGhlIElEIG9mIHRoZSBmaWVsZFwncyBpbnB1dCAodXNlZnVsIGZvciA8bGFiZWwgZm9yPSIiPik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT50eXBlPC90ZD48dGQ+dGhlIGZpZWxkXCdzIGRhdGEgdHlwZTwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQo8dHI+PHRkPmZpZWxkLT5tdWx0aXBsZV9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGZpZWxkLT5pbnB1dCBpcyBhY3R1YWxseSBhIGNvbGxlY3Rpb24gb2YgY29udHJvbHM8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5sYWJlbF9wYXJ0czwvdGQ+PHRkPjEgaWYgdGhlIGNvbGxlY3Rpb24gb2YgY29udHJvbHMgaGFzIHNlcGFyYXRlIGxhYmVscyBmb3IgZWFjaCBjb250cm9sPC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gY2VydGFpbiBjYXNlcywgZmllbGQtPmlucHV0IGlzIGFjdHVhbGx5IGFuIGFycmF5IG9mIG9iamVjdHMgcmF0aGVyIHRoYW4gYW4gaW5wdXQuIFRoaXMgaGFwcGVucywgZm9yIGV4YW1wbGUsIGluIENoZWNrQm94R3JvdXBzIG9yIFJhZGlvQnV0dG9uR3JvdXBzLiBGb3IgdGhlbSwgeW91IGNhbiBpdGVyYXRlIHRocm91Z2ggZmllbGQtPmlucHV0LT5uYW1lIGFuZCBmaWVsZC0+aW5wdXQtPmlucHV0cy48L3A+DQogICAgDQo8cD5BZGRpdGlvbmFsIHNtYXJ0eSB2YXJpYWJsZXMgdGhhdCB5b3UgY2FuIHVzZSBpbmNsdWRlOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmFyaWFibGU8L3RoPjx0aD5WYWx1ZTwvdGg+PC90cj4NCjx0cj48dGQ+dG90YWxfcGFnZXM8L3RkPjx0ZD5udW1iZXIgb2YgcGFnZXMgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnRoaXNfcGFnZTwvdGQ+PHRkPm51bWJlciBmbyB0aGUgY3VycmVudCBwYWdlIGZvciBtdWx0aS1wYWdlIGZvcm1zPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPmRpc3BsYXlzICJwYWdlIHggb2YgeSIgZm9yIG11bHRpLXBhZ2UgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPmNzc19jbGFzczwvdGQ+PHRkPkNTUyBDbGFzcyBmb3IgdGhlIGZvcm08L3RkPjwvdHI+DQo8dHI+PHRkPmZvcm1fbmFtZTwvdGQ+PHRkPkZvcm0gbmFtZTwvdGQ+PC90cj4NCjx0cj48dGQ+Zm9ybV9pZDwvdGQ+PHRkPkZvcm0gZGF0YWJhc2UgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnByZXY8L3RkPjx0ZD4iQmFjayIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXM8L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiJDb250aW51ZSIgb3IgIlN1Ym1pdCIgYnV0dG9uIGZvciBtdWx0aXBhcnQgZm9ybXMsIGFkanVzdHMgYXV0b21hdGljYWxseTwvdGQ+PC90cj4NCjwvdGFibGU+DQo8cD5EdW5ubyB3aHkgeW91XCdkIHdhbnQgc29tZSBvZiB0aG9zZSwgYnV0IHRoZXJlIHlvdSBnby4uLjwvcD4NCic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5NYWtlIHN1cmUgdG8gc2V0IHRoZSAiTW9kaWZ5IEZvcm1zIiBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91XCdsbCBiZSBlbWFpbGluZyBmb3JtDQpyZXN1bHRzLCBiZSBzdXJlIHRvIHVwZGF0ZSB0aGUgQ29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LjwvcD4NCjxwPlBsZWFzZSBiZSBhd2FyZSB0aGF0IGEgZmVlZGJhY2sgZm9ybSBzaG91bGQgbm90IGJlIGFjdGl2ZSAoZS5nLiwgdXNhYmxlIGJ5IHRoZSBwdWJsaWMpIHdoaWxlDQp5b3UgYXJlIHN0aWxsIGVkaXRpbmcgdGhlIGZvcm0uIFlvdSBzaG91bGQgY3JlYXRlIHRoZSBmb3JtLCBhbmQgcGxhY2UgdGhlIHRhZyBpbnRvIGFuIGFjdGl2ZQ0KY29udGVudCBwYWdlIG9ubHkgd2hlbiB5b3UgaGF2ZSBmaW5pc2hlZCBlZGl0aW5nLiBPdGhlcndpc2UsIGVycm9uZW91cyByZXN1bHRzIGNvdWxkIGJlIHJldHVybmVkLjwvcD4NCjxwPkFkZGl0aW9uYWxseSwgdGhpcyB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgcGFyYWxsZWwgZWRpdGluZyBvZiBmb3Jtcy4gUGxlYXNlIHRha2UgY2FyZSB0aGF0DQpvbmx5IG9uZSBhZG1pbiBpcyBlZGl0aW5nIGEgZ2l2ZW4gZm9ybSBhdCBhIGdpdmVuIHRpbWUuPC9wPic7CiRsYW5nWydoZWxwJ10gPSAnPGgzPldoYXQgRG9lcyBUaGlzIERvPzwvaDM+DQo8cD5UaGUgRm9ybSBCdWlsZGVyIE1vZHVsZSBhbGxvd3MgeW91IHRvIGNyZWF0ZSBmZWVkYmFjayBmb3JtcyAoaW4gZmFjdCwgaXRcJ3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdVwncmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPVwnRm9ybUJ1aWxkZXJcJyBmb3JtPVwnc2FtcGxlX2Zvcm1cJ308L3A+DQo8cD5CeSBjb3B5aW5nIHRoaXMgdGFnIGludG8gdGhlIGNvbnRlbnQgb2YgYSBwYWdlLCBvciBpbnRvIGEgdGVtcGxhdGUsIHdpbGwgY2F1c2UgdGhhdCBmb3JtIHRvIGJlIGRpc3BsYXllZC4NCkluIHRoZW9yeSwgeW91IGNhbiBoYXZlIG11bHRpcGxlIGZvcm1zIG9uIGEgcGFnZSBpZiB5b3UgcmVhbGx5IHdhbnQgdG8uIEJlIGNhcmVmdWwgd2hlbiBwYXN0aW5nIHRoZSB0YWcNCmludG8gYSBwYWdlXCdzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCIpIGludG8gSFRNTCBlbnRpdGllcyAoJnF1b3Q7KSwgYW5kIHRoZSBmb3JtcyB3aWxsIG5vdCBzaG93IHVwLiBUcnkgdXNpbmcNCnNpbmdsZSBxdW90ZXMgKFwnKSBvciBlZGl0aW5nIHRoZSBIVE1MIGRpcmVjdGx5LjwvcD4NCg0KPGgzPldvcmtpbmcgd2l0aCBGb3JtczwvaDM+DQo8cD5CeSBjbGlja2luZyBvbiBhIEZvcm1cJ3MgbmFtZSwgeW91IGVudGVyIHRoZSBGb3JtIEVkaXQgcGFnZS4gVGhlcmUgYXJlIHNldmVyYWwgdGFicywgd2hpY2ggYXJlIGRlc2NyaWJlZCBiZWxvdzo8L3A+DQo8aDQ+TWFpbjwvaDQ+DQo8cD5UaGlzIGlzIHRoZSBtYWluIHBsYWNlIHlvdVwnbGwgd29yayBvbiB5b3VyIGZvcm0uIEhlcmUsIHlvdSBnaXZlIGl0IGEgbmFtZSwgYW4gYWxpYXMgKHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgaXQgZm9yIHBsYWNpbmcgaXQgaW4gYSBwYWdlIG9yIHRlbXBsYXRlKSwgYW5kLCBvcHRpb25hbGx5LCBhIENTUyBjbGFzcyB3aXRoIHdoaWNoIHRvIHdyYXAgdGhlIHdob2xlIHRoaW5nLjwvcD4NCjxwPkJlbG93IHRoaXMsIGlmIHlvdSBoYXZlIGl0IGVuYWJsZWQsIGlzIHRoZSAiZmFzdCBmaWVsZCBhZGRlciIgcHVsbGRvd24sIHRoYXQgbGV0cyB5b3UgcXVpY2tseSBhZGQgYSBmaWVsZCB0byB0aGUgZW5kIG9mIHlvdXIgZm9ybSBieSBzZWxlY3RpbmcgdGhlIGZpZWxkIHR5cGUuPC9wPg0KPHA+QmVsb3cgdGhpcyBpcyB0aGUgbGlzdCBvZiBmaWVsZHMgdGhhdCBtYWtlIHVwIHlvdXIgZm9ybS4gTW9yZSBkZXRhaWwgb24gdGhpcyBpcyBkZXNjcmliZWQgYmVsb3cuPC9wPg0KPGg0PkZvcm0gU3VibWlzc2lvbjwvaDQ+DQo8cD5XaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwgeW91IGNhbiBlaXRoZXIgcmVkaXJlY3QgdGhlIHVzZXIgdG8gYW5vdGhlciBwYWdlIG9mIHlvdXIgc2l0ZSwgb3IgeW91IGNhbiBwcmVzZW50IHRoZSB1c2VyIHNvbWUgbWVzc2FnZSAod2hpY2ggY2FuIGNvbnRhaW4gYW55IG9mIHRoZSB1c2VyXCdzIGZvcm0gZW50cmllcywgb3IganVzdCBzdGF0aWMgdGV4dCkuIEluIHRoaXMgdGFiLCB5b3Ugc2VsZWN0IHdoaWNoIG9mIHRoZXNlIGFwcHJvYWNoZXMgeW91IHdpc2ggdG8gdXNlLCBhbmQsIGlmIHlvdSBjaG9zZSByZWRpcmVjdGlvbiwgaXQgYWxsb3dzIHlvdSB0byBwaWNrIHRoZSBwYWdlIHRvIHJlZGlyZWN0IHVzZXJzIHRvIGFmdGVyIGEgc3VjY2Vzc2Z1bCBmb3JtIHN1Ym1pc3Npb24uPC9wPg0KPHA+QWxzbyBvbiB0aGlzIHBhZ2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgbGFiZWxzIG9mIHZhcmlvdXMgc3VibWlzc2lvbiBidXR0b25zICgiUHJldmlvdXMiLCAibmV4dCIsICJzdWJtaXQiKS4gWW91IGNhbiBhbHNvIG9wdCB0byBoYXZlIHNvbWUgSmF2YXNjcmlwdCBhZGRlZCB0byB0aGUgbGFzdCBwYWdlIG9mIGEgZm9ybSB0aGF0IHdpbGwgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucyAodXNlZnVsIG9uIHNsb3cgc2VydmVycykuPC9wPg0KPGg0PkZvcm0gRGlzcGxheSBPcHRpb25zPC9oND4NCjxwPlRoaXMgdGFiIGFsbG93cyBmb3Igb3RoZXIgZm9ybSBjdXN0b21pemF0aW9ucywgbGlrZSB0aGUgc3ltYm9sIHRvIHNob3cgZm9yIHJlcXVpcmVkIGZpZWxkcy48L3A+DQo8aDQ+Q2FwdGNoYSBTZXR0aW5nczwvaDQ+DQo8cD5JZiB5b3UgaGF2ZSBpbnN0YWxsZWQgdGhlIENhcHRjaGEgbW9kdWxlLCB0aGlzIHRhYiBsZXRzIHlvdSBjb25maWd1cmUgdGhlIENhcHRjaGEgc2V0dGluZ3MgZm9yIHlvdXIgZm9ybS48L3A+DQo8aDQ+Rm9ybSBUZW1wbGF0ZTwvaDQ+DQo8cD5UaGlzIGlzIHdoZXJlIHlvdSBkbyB5b3VyIGN1c3RvbWl6YXRpb24gd29yayBvZiB5b3VyIGZvcm1cJ3MgU21hcnR5IFRlbXBsYXRlLiBTZWUgdGhlIHNlY3Rpb24gY2FsbGVkIEZvcm0gVGVtcGxhdGUgVmFyaWFibGVzIGJlbG93LjwvcD4NCjxwPlRoZSBmb3JtIHNob3VsZCBkZWZhdWx0IHRvIGEgQ3VzdG9tIHRlbXBsYXRlIHRoYXQgZG9jdW1lbnRzIHRoZSBTbWFydHkgdGFncyBhdmFpbGFibGUgdG8geW91LjwvcD4NCjxwPlVubGVzcyB5b3VcJ3JlIGEgU21hcnR5IGV4cGVydCwgeW91IHByb2JhYmx5IGRvblwndCB3YW50IHRvIG1lc3MgYXJvdW5kIHdpdGggdGhpcy4gSWYgeW91IGFyZSBhIFNtYXJ0eSBleHBlcnQsIHRoaXMgaXMgd2hlcmUgeW91IGNhbiB1bmxlYXNoIHlvdXIgbWFnaWMuPC9wPg0KPGg0PlN1Ym1pc3Npb24gVGVtcGxhdGU8L2g0Pg0KPHA+SWYsIGluIHRoZSBGb3JtIFN1Ym1pc3Npb24gdGFiLCB5b3Ugc2VsZWN0ZWQgXCdEaXNwbGF5ICJTdWJtaXNzaW9uIFRlbXBsYXRlIiwgdGhpcyBpcyB3aGVyZSB5b3UgY2FuIGNyZWF0ZSB0aGF0IHRlbXBsYXRlLiBUaGVyZSBpcyBhIGRpc3BsYXkgb2Ygd2hpY2ggc21hcnR5IHZhcmlhYmxlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdSwgYW5kIGEgYnV0dG9uIHRvIGdlbmVyYXRlIGEgc2FtcGxlIHRlbXBsYXRlLjwvcD4NCjxwPklmIHlvdVwncmUgYSBTbWFydHkgZXhwZXJ0LCB5b3UgY2FuIGRvIGFsbCBtYW5uZXIgb2YgY3JlYXRpdmUgYW5kIHBvd2VyZnVsIHRoaW5ncyBoZXJlLiBJZiB5b3VcJ3JlIG5vdCBhIFNtYXJ0eSBleHBlcnQsIHlvdSBtaWdodCBqdXN0IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0Lg0KPC9wPg0KDQo8aDM+QWRkaW5nIEZpZWxkcyB0byB5b3VyIEZvcm08L2gzPg0KPHA+VGhlIHR5cGVzIG9mIGZpZWxkcyB0aGF0IGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpdCBpbnRvIGZvdXIgZ3JvdXBzOiBzdGFuZGFyZCBpbnB1dCBmaWVsZHMsIGRpc3BsYXkgY29udHJvbCBmaWVsZHMsIGVtYWlsLXNwZWNpZmljIGZpZWxkcywgYW5kIGZvcm0gcmVzdWx0IGhhbmRsaW5nIGZpZWxkcyAoYWxzbyBjYWxsZWQgRm9ybSBEaXNwb3NpdGlvbnMgaW4gcGxhY2VzKTo8L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXQgRmllbGRzIC0gdGhlc2UgYXJlIGlucHV0cyB0aGF0IGFsbG93IGVudHJ5IG9mIHR5cGljYWwgZm9ybSBlbGVtZW50czsgdGV4dCBpbnB1dHMsIHJhZGlvIGJ1dHRvbnMsIGV0Yy48L2xpPg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHMgLSB0aGVzZSBpbnB1dCBjb250cm9sIGhvdyB0aGUgdXNlciB3aWxsIHNlZSB0aGUgZGlzcGxheSBvZiB0aGUgZm9ybTsgcGFnZSBicmVha3MsIHN0YXRpYyB0ZXh0LCBldGMuPC9saT4NCjxsaT5FbWFpbC1zcGVjaWZpYyBGaWVsZHMgLSBzb21lIGZvcm1zIGdlbmVyYXRlIGVtYWlsLCBhbmQgZW1haWwtc3BlY2lmaWMgZmllbGRzIGNhbiBhbHRlciBhdHRyaWJ1dGVzIG9mIHRoZSBlbWFpbHMgc2VudC48L2xpPg0KPGxpPkZvcm0gRGlzcG9zaXRpb25zIC0gVGhlc2UgZGV0ZXJtaW5lIHdoYXQgaGFwcGVucyB3aGVuIHRoZSB1c2VyDQpzdWJtaXRzIHRoZSBmb3JtOyBmb3IgZWFjaCByZXN1bHQgaGFuZGxpbmcgZmllbGQsIHNvbWUgbWV0aG9kIG9mIHRyYW5zbWl0dGluZywgc2F2aW5nLCBvciBlbWFpbGluZyB0aGUNCmZvcm0gY29udGVudHMgdGFrZXMgcGxhY2UuIEEgZm9ybSBtYXkgaGF2ZSBtdWx0aXBsZSBmb3JtIGRpc3Bvc2l0aW9ucy48L2xpPg0KPC91bD4NCjxwPkZvcm0gZmllbGRzIGFyZSBhc3NpZ25lZCBuYW1lcy4gVGhlc2UgbmFtZXMgaWRlbnRpZnkgdGhlIGZpZWxkLCBub3Qgb25seSBvbiB0aGUgc2NyZWVuIGFzIGxhYmVscyBmb3IgdGhlIHVzZXIsDQpidXQgaW4gdGhlIGRhdGEgd2hlbiBpdFwncyBzdWJtaXR0ZWQgc28geW91IGtub3cgd2hhdCB0aGUgdXNlciBpcyByZXNwb25kaW5nIHRvLiBQaHJhc2luZyB0aGUgbmFtZSBsaWtlIGEgcXVlc3Rpb24NCmlzIGEgaGFuZHkgd2F5IG9mIG1ha2luZyBpdCBjbGVhciB0byB0aGUgdXNlciB3aGF0IGlzIGV4cGVjdGVkLiBTaW1pbGFybHksIG1hbnkgZmllbGRzIGhhdmUgYm90aCBOYW1lcyBhbmQgVmFsdWVzLg0KVGhlIE5hbWVzIGFyZSB3aGF0IGdldHMgc2hvd24gdG8gdGhlIHVzZXI7IHRoZSBWYWx1ZSBpcyB3aGF0IGdldHMgc2F2ZWQgb3IgdHJhbnNtaXR0ZWQgd2hlbiB0aGUgdXNlciBzdWJtaXRzDQp0aGUgZm9ybS4gVGhlIFZhbHVlcyBhcmUgbmV2ZXIgc2VlbiBieSB0aGUgdXNlciwgbm9yIGFyZSB0aGV5IHZpc2libGUgaW4gdGhlIEhUTUwsIHNvIGl0XCdzIHNhZmUgdG8gdXNlIGZvcg0KZW1haWwgYWRkcmVzc2VzIGFuZCBzdWNoLjwvcD4NCjxwPlNvbWUgZmllbGRzIGNhbiBoYXZlIG11bHRpcGxlIHZhbHVlcywgb3IgbXVsdGlwbGUgbmFtZS92YWx1ZSBwYWlycy4gV2hlbiB5b3UgZmlyc3QgY3JlYXRlIHN1Y2ggYSBmaWVsZCwNCnRoZXJlIG1heSBub3QgYmUgc3VmZmljaWVudCBpbnB1dHMgZm9yIHlvdSB0byBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIHlvdSB3YW50LiBUbyBnZXQgbW9yZSBzcGFjZSBmb3IgaW5wdXR0aW5nDQp0aGVzZSB2YWx1ZXMsIHVzZSB0aGUgYnV0dG9ucyBhdCB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGZvciBhZGRpbmcgb3B0aW9ucy48L3A+DQo8cD5GaWVsZHMgY2FuIGJlIGFzc2lnbmVkIHZhbGlkYXRpb24gcnVsZXMsIHdoaWNoIHZhcnkgYWNjb3JkaW5nIHRvIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gVGhlc2UgcnVsZXMgaGVscA0KZW5zdXJlIHRoYXQgdGhlIHVzZXIgZW50ZXJzIHZhbGlkIGRhdGEuIFRoZXkgbWF5IGFsc28gYmUNCnNlcGFyYXRlbHkgbWFya2VkICJSZXF1aXJlZCIsIHdoaWNoIHdpbGwgZm9yY2UgdGhlIHVzZXIgdG8gZW50ZXIgYSByZXNwb25zZS48L3A+DQo8cD5GaWVsZHMgYWxzbyBtYXkgYmUgYXNzaWduZWQgYSBDU1MgY2xhc3MuIFRoaXMgc2ltcGx5IHdyYXBzIHRoZSBpbnB1dCBpbiBhIGRpdiB3aXRoIHRoYXQgY2xhc3MsIHNvIGFzIHRvIGFsbG93DQpjdXN0b21pemVkIGxheW91dHMuIFRvIHVzZSB0aGlzIGVmZmVjdGl2ZWx5LCB5b3UgbWF5IG5lZWQgdG8gInZpZXcgc291cmNlIiBvbiB0aGUgZ2VuZXJhdGVkIGZvcm0sIGFuZCB0aGVuDQp3cml0ZSB5b3VyIENTUy48L3A+DQo8dWw+DQo8bGk+U3RhbmRhcmQgSW5wdXRzDQo8dWw+PGxpPlRleHQgSW5wdXQuIFRoaXMgaXMgYSBzdGFuZGFyZCB0ZXh0IGZpZWxkLiBZb3UgY2FuIGxpbWl0IHRoZSBsZW5ndGgsIGFuZCBhcHBseSB2YXJpb3VzIHZhbGlkYXRpb24NCmZ1bmN0aW9ucyB0byB0aGUgZmllbGQuPC9saT4NCjxsaT5UZXh0IEFyZWEuIFRoaXMgaXMgYSBiaWcsIGZyZWUtZm9ybSB0ZXh0IGlucHV0IGZpZWxkLjwvbGk+DQo8bGk+Q2hlY2tib3guIFRoaXMgaXMgYSBzdGFuZGFyZCBjaGVjayBib3guPC9saT4NCjxsaT5DaGVja2JveCBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlY2tib3hlcy4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoaXMgaW5wdXQgYW5kIGENCmNvbGxlY3Rpb24gb2YgQ2hlY2tib3ggaW5wdXRzIGlzIHRoYXQgdGhleSBhcmUgcHJlc2VudGVkIGFzIGEgZ3JvdXAsIHdpdGggb25lIG5hbWUsIGFuZCBjYW4gaGF2ZSBhIHZhbGlkYXRpb24gZnVuY3Rpb24gcmVxdWlyaW5nIHRoYXQgeW91IGNoZWNrIG9uZSBvciBtb3JlIG9mIHRoZSBib3hlcyBpbiB0aGUgZ3JvdXAuPC9saT4NCjxsaT5SYWRpbyBHcm91cC4gVGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgcmFkaW8gYnV0dG9ucy4gT25seSBvbmUgb2YgdGhlIGdyb3VwIG1heSBiZSBzZWxlY3RlZCBieSB0aGUgdXNlci48L2xpPg0KPGxpPlB1bGxkb3duLiBUaGlzIGlzIGEgc3RhbmRhcmQgcHVsbGRvd24gbWVudS4gSXRcJ3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdFwncyByZWFsbHkgY29uY2VwdHVhbGx5IHRoZSBzYW1lIHRoaW5nIGFzIGEgY2hlY2tib3ggYnV0dG9uDQpncm91cCwgYnV0IGlzIGJldHRlciB3aGVuIHRoZXJlIGFyZSBhIGxhcmdlIG51bWJlciBvZiBvcHRpb25zLCBhcyB5b3UgY2FuIGxpbWl0IHRoZSBudW1iZXIgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gYXQgYW55IG9uZSB0aW1lLjwvbGk+DQo8bGk+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgIkZyb20iIGZpZWxkLjwvbGk+DQo8bGk+RW1haWwgRnJvbSBOYW1lIEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIHRoZWlyIG5hbWUuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBuYW1lIGluIHRoZSAiRnJvbSIgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgIlN1YmplY3QiIGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91XCdyZSBub3QgdXNpbmcgYSBDdXN0b20gVGVtcGxhdGUgdG8gcmVuZGVyIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgTGluay4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCBhIGxpbmsgdG8gYSBnaXZlbiBwYWdlIGludG8geW91ciBmb3JtLiBPcHRpb25hbGx5LCB5b3UgY2FuIGhhdmUgaXQgYXV0b3BvcHVsYXRlIHdpdGggdGhlIHBhZ2Ugd2hlcmUgdGhlIGZvcm0gaXMgZW1iZWRkZWQgKHVzZWZ1bCBpZiB5b3VcJ3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bXCdmaWVsZF9uYW1lXCddLjwvbGk+DQo8bGk+KkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgaXMgdXNlZnVsIGZvciB3ZWIgc2l0ZXMgd2hlcmUgY29tbWVudHMgZ2V0IHJvdXRlZCBiYXNlZCBvbiB0aGVpciBzdWJqZWN0IG1hdHRlciwgZS5nLiwgYnVncyBnZXQgc2VudCB0byBvbmUgcGVyc29uLCBtYXJrZXRpbmcgcXVlc3Rpb25zIHRvIGFub3RoZXIgcGVyc29uLCBzYWxlcyByZXF1ZXN0cyB0byBzb21lb25lIGVsc2UsIGV0Yy4gVGhlIHB1bGxkb3duIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBzdWJqZWN0cywgYW5kIGVhY2ggZ2V0cyBkaXJlY3RlZCB0byBhIHNwZWNpZmljIGVtYWlsIGFkZHJlc3MuIFlvdSBzZXQgdXAgdGhlc2UgbWFwcGluZ3MgaW4gdGhlIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IGEgZmllbGQgb2YgdGhpcyB0eXBlLiBJZiB5b3UgdXNlIG9uZSBvZiB0aGVzZSAiRGlyZWN0b3IiIHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAiYXBwcm92ZWQsIiBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICJvdXRwdXQiIGRpcmVjdG9yeSB1bmRlciB0aGUNCm1vZHVsZVwncyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPg0KDQo8L3VsPjwvbGk+PC9saT48L3VsPg0KDQoNCjxoMz5QYXNzaW5nIERlZmF1bHQgVmFsdWVzIHRvIEZvcm1zPC9oMz4NCjxwPkNhbGd1eSBhZGRlZCBhIG5pY2UgZmVhdHVyZSwgd2hpY2ggaXMgdGhhdCB5b3UgY2FuIHBhc3MgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgdG8geW91ciBmb3JtIHZpYSB0aGUgbW9kdWxlIHRhZy4gVGhpcyBhbGxvd3MgeW91IHRvIGhhdmUNCnRoZSBzYW1lIGZvcm0gaW4gbXVsdGlwbGUgcGxhY2VzLCBidXQgd2l0aCBkaWZmZXJlbnQgZGVmYXVsdCB2YWx1ZXMuIEl0IG1heSBub3Qgd29yayBmb3IgbW9yZSBleG90aWMgZmllbGQgdHlwZXMsIGJ1dCBmb3IgZmllbGRzIHRoYXQgaGF2ZQ0KYSBzaW5nbGUgdmFsdWUsIHlvdSBjYW4gc3BlY2lmeSBsaWtlOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT1cJ0Zvcm1CdWlsZGVyXCcgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4NCjxwPlRoaXMgd2lsbCBzZXQgdGhlIGZpZWxkIHdpdGggPGk+RklFTEROQU1FPC9pPiB0byBcJ2RlZmF1bHRfdmFsdWVcJy48L3A+DQo8cD5UaGlzIGNhbiBiZSBwcm9ibGVtYXRpYywgYXMgc29tZXRpbWVzIGZpZWxkIG5hbWVzIGFyZSB1bndlaWxkeSBvciBjb250YWluIGNoYXJhY3RlcnMgdGhhdCBkb25cJ3Qgd29yayB3ZWxsIHdpdGggU21hcnR5LiBTbyB0aGVyZSBpcyBhbg0KYWx0ZXJuYXRpdmUgbGlrZSB0aGlzOjwvcD4NCjxwPntjbXNfbW9kdWxlIG1vZHVsZT1cJ0Zvcm1CdWlsZGVyXCcgZm9ybT1cJ215X2Zvcm1cJyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PVwnZGVmYXVsdF92YWx1ZVwnfTwvcD4NCjxwPlRoYXQgdXNlcyBmaWVsZCA8aT5OVU1CRVI8L2k+LCB3aGVyZSA8aT5OVU1CRVI8L2k+IGlzIHRoZSBpbnRlcm5hbCBGb3JtQnVpbGRlciBmaWVsZCBpZC4gWW91IG1pZ2h0IHdvbmRlciBob3cgeW91IGtub3cgd2hhdCB0aGF0IGlkIGlzLiBTaW1wbHkgZ28gaW50byB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiB0YWIsDQphbmQgY2hlY2sgIlNob3cgRmllbGQgSURzIjwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdFwncyBvd24gYmVzdCBndWVzcywgd2hpY2ggbWF5IG9yIG1heSBub3Qgd29yayBvdXQgdG8geW91ciBsaWtpbmcuIFlvdSBjYW4gYWx3YXlzIGNsaWNrIG9uIHRoZSAiQ3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSIgYW5kIHRoZW4gY3VzdG9taXplIHRoZSByZXN1bHRzLjwvcD4NCjxwPlRvIHRoZSByaWdodCwgeW91XCdsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3VcJ3ZlIGNoYW5nZWQgYSB0ZW1wbGF0ZSwgaXQgd2lsbCBubyBsb25nZXIgYXV0b21hdGljYWxseSBhZGQgbmV3IGZpZWxkcy48L3N0cm9uZz4gRm9yIHRoaXMgcmVhc29uLCBpdFwncyB1c3VhbGx5IGJlc3QgdG8gY3JlYXRlIHlvdXIgdGVtcGxhdGVzIGFzIHRoZSBsYXN0IHN0ZXAgb2YgY3JlYXRpbmcgeW91ciBmb3JtLjwvcD4NCjxwPkFzIG9mIHZlcnNpb24gMC4yLjQsIHlvdSBjYW4gb3B0IHRvIHNlbmQgYW55IG9mIHRoZXNlIGVtYWlscyBhcyBIVE1MIGVtYWlsLiBUaGVyZSBzaG91bGQgYmUgYSBjaGVja2JveCBhdCB0aGUgdG9wIG9mIHRoZSB0ZW1wbGF0ZSBwYWdlIGZvciB0aGlzLiBUaGVyZSBpcyBhbHNvIGEgIkNyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSIgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3VcJ3JlIHVzaW5nIGluIGEgY29tbWVudCB3aGVuIHRoZSBmb3JtIGlzIGdlbmVyYXRlZC4gVHlwaWNhbGx5IG9ubHkgdXNlZnVsIHdoZW4gZGVidWdnaW5nLjwvbGk+DQo8bGk+RW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuIFdoZW4gdHVybmVkIG9uLCB0aGlzIGFsbG93cyBhbnkgZ2l2ZW4gSVAgYWRkcmVzcyB0byBvbmx5IGdlbmVyYXRlIDEwIGVtYWlscyBwZXIgaG91ci48L2xpPg0KPGxpPlNob3cgRmllbGQgSURzLiBXaGVuIHR1cm5lZCBvbiwgRm9ybUJ1aWxkZXIgd2lsbCBkaXNwbGF5IGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybS48L2xpPg0KPC91bD4NCjxoMz5TdHlsaW5nIGFuZCBDU1M8L2gzPg0KPHA+UGF1bCBOb29uZSBncmFjaW91c2x5IHByb3ZpZGVzIHVzIGFsbCB3aXRoIGEgcHJldHR5IGdvb2Qgc3RhbmRhcmQgQ1NTIHRoYXQgeW91IGNhbiB1c2UgZm9yIGZvcm1zOjwvcD4NCjxwcmU+DQoJLyogU2FtcGxlIEZvcm1CdWlsZGVyIENTUyBiYXNlICovDQoJZm9ybSB7bWFyZ2luLXRvcDowfQ0KCWZvcm0sIHRkLCB0aCwgbGkgeyBmb250LXNpemU6IDEwMCV9DQoJZm9ybSBkaXYge21hcmdpbi1ib3R0b206MH0NCglmaWVsZHNldCBkaXYgew0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW07DQoJfQ0KCWZpZWxkc2V0IGRpdiBkaXYgew0KCQltYXJnaW4tdG9wOjAuNWVtOw0KCQltYXJnaW4tbGVmdDoxZW0NCgl9DQoJZmllbGRzZXQgew0KCQltYXJnaW4tYm90dG9tOjFlbTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjRjYwOw0KCQlwYWRkaW5nOjAuNWVtDQoJfQ0KCWZpZWxkc2V0IGxhYmVsIHsNCgkJd2lkdGg6YXV0bzsNCgl9DQoJbGVnZW5kIHsNCgkJY29sb3I6I0ZGRjsNCgkJYmFja2dyb3VuZDojRjYwOw0KCQlmb250LXN0eWxlOml0YWxpYzsNCgkJZm9udC1zaXplOjEuMmVtOw0KCQltYXJnaW4tYm90dG9tOjAuNWVtOw0KCQlwYWRkaW5nOjAuMmVtOw0KCQl3aWR0aDphdXRvOw0KCQlib3JkZXI6MXB4IHNvbGlkICNDQ0MNCgl9DQoJdGV4dGFyZWEgew0KCQltYXJnaW46IDAuNWVtIDA7DQoJCXdpZHRoOjk4JTsNCgkJaGVpZ2h0OiA2ZW0NCgl9DQoNCgkvKiBBcHBseSB0aGlzIGNsYXNzIHRvIHRleHQvc2VsZWN0IGlucHV0IGZpZWxkcyB3aXRoIHNob3J0ZXIgbGFiZWxzDQoJCXRvIGhlbHAgYWxpZ25tZW50ICovDQoJLnNob3J0LWxhYmVsIGxhYmVsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxMGVtfQ0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgaW5wdXQsDQoJLnNob3J0LWxhYmVsIGZpZWxkc2V0IGRpdiBzZWxlY3Qge3dpZHRoOjE2ZW19DQoNCgkvKiBQcmV0dHkgdXAgeW91ciBDYXB0Y2hhIGltYWdlIG91dHB1dCAqLw0KCS5jYXB0Y2hhIHsNCgkJbWFyZ2luOjAuNWVtIDA7DQoJCXdpZHRoOjIwMHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcg0KCX0NCgkuY2FwdGNoYSBpbWcge2JvcmRlcjoxcHggc29saWQgI0Y2MDsgbWFyZ2luLWJvdHRvbTowLjVlbX0NCgkuY2FwdGNoYSBpbnB1dCB7d2lkdGg6MTk2cHg7IG1hcmdpbi10b3A6MC41ZW19DQoNCgkvKiBKdXN0IGEgYml0IG1vcmUgcm9vbSBmb3IgdGhlIFN1Ym1pdCBidXR0b24gKi8NCgkuc3VibWl0IHttYXJnaW4tdG9wOjAuNWVtfQ0KPC9wcmU+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+DQoNCjxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+DQoNCg0KPGgzPktub3duIElzc3VlczwvaDM+DQo8dWw+DQo8bGk+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuXCd0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjxsaT5GaWxlVXBsb2FkIEZpZWxkcyBtYXkgbm90IHdvcmsgY29ycmVjdGx5IHdpdGggbXVsdGlwYWdlIGZvcm1zLjwvbGk+DQo8L3VsPg0KDQo8aDM+VHJvdWJsZXNob290aW5nPC9oMz4NCjxvbD48bGk+IEZpcnN0IHN0ZXAgaXMgdG8gY2hlY2sgeW91XCdyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91XCdyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGRcJ3MgdGVtcGxhdGUsIGFuZCBtYWtlIHN1cmUgeW91XCdyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0XCdzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgIkhpZGUgRXJyb3JzIiBjaGVja2JveCBpbiB0aGUgZ2xvYmFsIG9wdGlvbnMsIGFuZCBzZWUgd2hhdCBtZXNzYWdlIGdldHMgZGlzcGxheWVkIHdoZW4geW91IHN1Ym1pdCB5b3VyIGZvcm0uPC9saT4NCjxsaT4gSnVzdCBtZXNzIGFyb3VuZCBhbmQgdHJ5IGNsaWNraW5nIG9uIGxpbmtzIGFuZCBpY29ucyBhbmQgc3R1ZmYuIFNlZSB3aGF0IGhhcHBlbnMuPC9saT4NCjxsaT4gTGFzdCByZXNwb3J0IGlzIHRvIGVtYWlsIG1lIG9yIGNhdGNoIG1lIG9uIElSQyBhbmQgd2UgY2FuIGdvIGZyb20gdGhlcmUuPC9saT4NCjwvb2w+IA0KPHA+VGhpcyBpcyBubyBsb25nZXIgYSBwYXJ0aWN1bGFybHkgZWFybHkgdmVyc2lvbiwgYnV0IGl0IGlzIHByb2JhYmx5IHN0aWxsIGJ1Z2d5LiBXaGlsZSBJXCd2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvclwncyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIG9mIGhvdXJzIGludG8gdGhlIGRldmVsb3BtZW50IG9mIHRoaXMgbW9kdWxlLiBQbGVhc2UgdGFrZSB0aGUgdGltZSB0byByZWFkIHRoZSBkb2N1bWVudGF0aW9uIGJlZm9yZSBzZW5kaW5nIHF1ZXN0aW9ucy4gRWl0aGVyIHRoYXQsIG9yIHdyaXRlIHlvdXIgcXVlc3Rpb25zIG9uIGZpbmFuY2lhbGx5IG5lZ290aWFibGUgaW5zdHJ1bWVudHMgKGkuZS4sIGNhc2gpLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgwqkgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPg0KPGxpPlZlcnNpb24gMC41LjEuIDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZS48L2xpPg0KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+VXBwZWQgbWluaW11bSBDTVMgdmVyc2lvbiB0byAxLjE8L2xpPg0KCQk8bGk+TnVtZXJvdXMgQnVnIGZpeGVzOyB0b28gbWFueSB0byBlbnVtZXJhdGUgaGVyZTwvbGk+DQoJCTxsaT5NYXNzaXZlIHJlamlnZ2VyaW5nIG9mIGNvZGUgdG8gd29yayB3aXRoIENNUyBNUyAxLjEgcGFyYW1ldGVyIHNhbml0aXppbmcgcmVnaW1lPC9saT4NCgkJPGxpPkFkZGVkIGZpZWxkIHR5cGVzOiAiVGV4dEZpZWxkIChNdWx0aXBsZSkiIGFuZCAiQ29tcHV0ZWQgRmllbGQiPC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogIlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duIiBhbmQgIlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMiKENhbGd1eSk8L2xpPg0KCQk8bGk+QWRkZWQgbmVhdC1vIEFKQVgteSB0ZW1wbGF0ZS1jb3B5aW5nIGZvciBGb3JtIFRlbXBsYXRlcywgZ2F2ZSB2ZXJzaW9ucyBvZiBvbGQgdGFibGUtYmFzZWQgdGVtcGxhdGVzIHRvIHNvb3RoZSB0aGUgcmFnaW5nIG1hc3Nlcy48L2xpPg0KCQk8bGk+QWRkZWQgYWJpbGl0eSB0byBwYXNzIGRlZmF1bHQgdmFsdWVzIHRvIGZvcm0gZWxlbWVudHMgZnJvbSBtb2R1bGUgdGFnIHVzaW5nIHZhbHVlX0ZJRUxETkFNRT0idmFsdWUiIHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lXCdzIG5ldywgaW1wcm92ZWQgY29udGFjdCBmb3JtIHRlbXBsYXRlczwvbGk+DQogICAgICA8bGk+SW1wbGVtZW50YXRpb24gb2YgRW1haWwgU3ViamVjdCBGaWVsZDwvbGk+DQogICAgICA8bGk+QWRkZWQgYWRtaW4tc3BlY2lmaWFibGUgdmFsdWVzIHRvIGhpZGRlbiBmaWVsZCB0eXBlLCB3aGljaCBtYXkgY29udGFpbiBwYXJzYWJsZSBzbWFydHkgdGFnczwvbGk+DQogICAgICA8bGk+VGV4dCBBcmVhIEZpZWxkIG5vdyBhbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiByb3dzIGFuZCBjb2xzIGluIHRoZSBhZG1pbiwgaW5zdGVhZCBvZiBDU1M8L2xpPg0KICAgICAgPGxpPkFkZGVkIERyYWdcJ25cJ0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAiRW1haWwgRm9ybSB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MiIGRpc3Bvc2l0aW9uLjwvbGk+DQogICA8bGk+QWRkZWQgIlRpbWVQaWNrZXIiIGZpZWxkIHR5cGUuIFNwbGl0ICJMaW5rIiBmaWVsZCBpbnRvIGEgIlVzZXItc3VwcGxpZWQgTGluayIgZmllbGQgYW5kIGEgIlN0YXRpYyBMaW5rIiBmaWVsZC48L2xpPg0KICAgPGxpPkFkZGVkIEhUTUwgZW1haWwgb3B0aW9uIGFuZCBhdXRvLXRlbXBsYXRlcyBmb3IgYWxsIGVtYWlsIGRpc3Bvc2l0aW9ucy48L2xpPg0KICAgPGxpPkFkZGVkIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXMuPC9saT4NCiAgIDxsaT5BZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjMNCiAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjYWxsIGEgc2VsZWN0YWJsZSB1c2VyIGRlZmluZWQgdGFnIHVwb24gZGlzcG9zaXRpb24gb2YgdGhlIGZvcm0uPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi4yDQogICA8cD5NYW55IHRoYW5rcyB0byBVdHRlciBEZXNpZ24gZm9yIHNwb25zb3Jpbmcgc29tZSBjaGFuZ2VzIGFuZCBidWdmaXhlcywgd2hpY2ggaW5jbHVkZToNCiAgIDx1bD4NCiAgICAgIDxsaT5BZGRlZCBmaWxlIHVwbG9hZCBjYXBhYmlsaXRpZXMgdG8gdGhlIGVtYWlsIGRpc3Bvc2l0aW9uPC9saT4NCiAgICAgIDxsaT5BZGQgUGFnZVNldFN0YXJ0IGFuZCBQYWdlU2V0RW5kIGZpZWxkIHR5cGVzDQogICAgICA8cD5UaGVzZSBmaWVsZCB0eXBlcyBhbGxvdyB5b3UgdG8gY3JlYXRlIGZpZWxkc2V0cyBpbiB5b3VyIGZvcm0sIGFuZCBvcmdhbmlzZQ0KICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICBhc3NvY2lhdGUgYSBzdHlsZSB3aXRoIHRoZW0gYXBwcm9wcmlhdGVseS4gIFRoZSBkZWZhdWx0IHRlbXBsYXRlIHdhcyBjaGFuZ2VkDQogICAgICB0byBwcmV2ZW50IGl0IGZyb20gd3JhcHBpbmcgYSBkaXYgYXJvdW5kIHRoZXNlIHR5cGVzIG9mIGZpZWxkcy4NCiAgICAgIDwvcD4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+Rml4ZWQgYSBwcm9ibGVtIHdpdGggREFURVRJTUUgZmllbGRzIG9uIGluc3RhbGwNCiAgICAgIDxwPlRoaXMgc29sdmVzIGEgcHJvYmxlbSB3aGVuIG9uIGluc3RhbGwgdGhlIHJlc3BvbnNlIHRhYmxlIHdvdWxkIHNvbWV0aW1lcyBub3QgZ2V0IGNyZWF0ZWQgd2hlbiB1c2luZyBhZG9kYiBsaXRlPC9saT4NCiAgICAgIDwvbGk+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmIHRzd1wncyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+DQonOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xMTkzNzU2OTY5LjExOTk2OTgyNzYuMTIxMzMxODcyMS4xMjEzMzIyOTM4LjYnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjEzMzIyOTM4LjYuNC51dG1jY249KHJlZmVycmFsKXx1dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vfHV0bWNtZD1yZWZlcnJhbCc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm3FsyBrxatyaW1hcyc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0xhdWtlbGlvIHRpcGFzIG5lbnVzdGF0eXRhcyc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3Qgb25lIChvciBtb3JlKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1GaWVsZHNldCBwYWJhaWdhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBwcmFkemlhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGV4dCBJbnB1dCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdUZXh0IElucHV0IChNdWx0aXBsZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGV4dCBBcmVhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ0NoZWNrIEJveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0NoZWNrIEJveCBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX1B1bGxkb3duRmllbGQnXSA9ICdQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdKQVYgdmFsc3RpasWzIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICcmU2Nhcm9uO2FsaWVzIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdG9zIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ0xhaWtvIHBhc2lyaW5raW1hcyc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0J5bG9zIGF0c2l1bnRpbWFzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBBZHJlc2FzJnF1b3Q7IGxhdWtlbGlzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRWwgcGEmc2Nhcm9uO3RvICZxdW90O051byBWYXJkYXMmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdFbC4gcGEmc2Nhcm9uO3RvICZxdW90O1RlbWEmcXVvdDsgbGF1a2VsaXMnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGluaXMgdGVrc3Rhcyc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aW7ElyBudW9yb2RhJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTnVvcm9kYSAoxK52ZWRhIGxhbmt5dG9qYXMpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdIaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VsIHBhJnNjYXJvbjt0byBhZHJlc2FzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ1R1cmkgYsWrdCBwYcW+eW3El3Rhcyc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgc2thacSNacWzICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1ByYSZzY2Fyb247b21lIMSvdmVzdGkgZ2FsaW9qYW7EjWnEhSByZWlrJnNjYXJvbjttxJkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnUHJhJnNjYXJvbjtvbWUgxK92ZXN0aSBnYWxpb2phbnTEryBlbCBwYSZzY2Fyb247dG8gYWRyZXPEhSZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3Bob25lJ10gPSAnUHJhJnNjYXJvbjtvbSwgxK92ZXNraXRlIHRlaXNpbmfEhSB0ZWxlZm9ubyBudW1lcsSvICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ25vdF92YWxpZF9lbWFpbCddID0gJyZxdW90OyVzJnF1b3Q7IG5lcGFuYSZzY2Fyb247dXMgxK8gZ2FsaW9qYW50xK8gZWwgcGEmc2Nhcm9uO3RvIGFkcmVzxIUhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdQcmEmc2Nhcm9uO29tZSDEr3Zlc3RpIG5lZGF1Z2lhdSBrYWlwICAlcyBzaW1ib2xpxbMnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdDaGFyYWN0ZXIgdG8gdXNlIGFzIGRlbGltaXRlciBpbiByZXN1bHRzIHRoYXQgcmV0dXJuIG1vcmUgdGhhbiBvbmUgdmFsdWUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ1lvdSBuZWVkIHRoZSAmcXVvdDslcyZxdW90OyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdGhhdCBvcGVyYXRpb24uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnU29ycnkhIFlvdSBkb24mIzAzOTt0IGhhdmUgYWRlcXVhdGUgcHJpdmlsZWdlcyB0byBhY2Nlc3MgdGhpcyBzZWN0aW9uLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnTGF1a2VsacWzIHR2YXJrYSBhdG5hdWppbnRhLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtYSBwYSZzY2Fyb247YWxpbnRhLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnTGF1a2VsaXMgcGEmc2Nhcm9uO2FsaW50YXMuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ051c3RhdHltYWkgYXRuYXVqaW50aS4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdUdXJpdGUgcGHFvnltxJd0aSAmcXVvdDslcyZxdW90OyBqZWkgbm9yaXRlIHTEmXN0aSc7CiRsYW5nWydtdXN0X3NwZWNpZnlfb25lX2Rlc3RpbmF0aW9uJ10gPSAnWW91IG5lZWQgdG8gc3BlY2lmeSBhdCBsZWFzdCBvbmUgZGVzdGluYXRpb24gYWRkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnQXIgasWrcyDEr3NpdGlraW7EmXMsIGthZCBub3JpdGUgaSZzY2Fyb247dHJpbnRpIGZvcm3EhSAlcz8nOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9maWVsZCddID0gJ0FyIGrFq3MgxK9zaXRpa2luxJlzLCBrYWQgbm9yaXRlIGkmc2Nhcm9uO3RyaW50aSBsYWlrZWzEryAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbmltYXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW25lbnVyb2R5dGFdJzsKJGxhbmdbJ2FkZGVkJ10gPSAncHJpZMSXdGEnOwokbGFuZ1sndXBkYXRlZCddID0gJ2F0bmF1amludGEnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydCBvcHRpb25zIG9uIG91dHB1dCc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnUGFzaXJpbmtpdGUgdmllbsSFJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnUGFzaXJpbmtpdGUgdGlwxIUnOwokbGFuZ1sndG8nXSA9ICdUbyc7CiRsYW5nWyd5ZXMnXSA9ICdUYWlwJzsKJGxhbmdbJ25vJ10gPSAnTmUnOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ3JlY2lwaWVudHMnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIHBvc3NpYmxlIGZpbGVzJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25zJzsKJGxhbmdbJ3NhdmUnXSA9ICdTYXVnb3RpJzsKJGxhbmdbJ2FkZCddID0gJ1ByaWTEl3RpJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0F0bmF1amludGknOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdTYXVnb3RpIGlyIHTEmXN0aSByZWRhZ2F2aW3EhSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjaWphJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1vcyc7CiRsYW5nWydmb3JtJ10gPSAnJXMgZm9ybWEnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ8WrcmFjaWphJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIGR5ZGlzJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGzEl3RpbmlhaSc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnbGVpZMW+aWFtaSBieWzFsyB0aXBhaSc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ8Sua2VsdGEgYnlsYSB5cmEgcGVyIGRpZGVsxJcuIE1ha3NpbWFsdXMgZHlkaXMgeXJhOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnxK5rZWx0aSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybWEgaW1wb3J0dW90YSc7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIGVpbHXEjWnFsyc7CiRsYW5nWydjb2xzJ10gPSAnJXMgc3R1bHBlbGnFsyc7CiRsYW5nWycxMl9ob3VyJ10gPSAnMTItb3MgdmFsYW5kxbMgbGFpa3JvZGlzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC1pxbMgdmFsYW5kxbMgbGFpa3JvZGlzJzsKJGxhbmdbJ2hvdXInXSA9ICdIb3VyJzsKJGxhbmdbJ21pbiddID0gJ01pbnV0ZSc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdSYW5nZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdBxI1pxashIErFq3PFsyBwYXRlaWtpbWFzIGJ1dm8gZ2F1dGFzLic7CiRsYW5nWydlZGl0J10gPSAnUmVkYWd1b3RpJzsKJGxhbmdbJ2RlbGV0ZSddID0gJ1RyaW50aSc7CiRsYW5nWydkYXknXSA9ICdEYXknOwokbGFuZ1snbW9uJ10gPSAnTW9udGgnOwokbGFuZ1sneWVhciddID0gJ1llYXInOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsaXMgaW5zdGFsaXVvdGFzJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsaW8gJXMgdmVyc2lqYSBpbnN0YWxpdW90YS4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGlzIGF0bmF1amludGFzIGlraSAlcyB2ZXJzaWpvcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnQXRnYWwuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1BhdGVpa3RpIGZvcm3EhSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdUxJlzdGkuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ1Bhxb55bcSXdGEnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmVwYcW+eW3El3RhJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRm9ybSBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3Jtb3MgcGF0ZWlraW1hcyc7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnVGVtcGxhdGUgTGF5b3V0IE9wdGlvbnMnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVzIGFyZSB2YWxpZCBpbiB0aGlzIGZpZWxkLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnUHJpZMSXdGkgZGF1Z2lhdSBwYXNpcmlua2ltxbMnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdUcmludGkgcGHFvnltxJd0dXMgcGFzaXJpbmtpbXVzJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ByaWTEl3RpIGtpdMSFIGFkcmVzxIUnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdJJnNjYXJvbjt0cmludGkgcGHFvnltxJd0dXMgYWRyZXN1cyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0F0JnNjYXJvbjthdWt0aSc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdCZWxvdyBpcyBhIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgYXZhaWxhYmxlIGZyb20gdGhlIENhdGFsb2dlciBtb2R1bGUuPGJyLz5Zb3UgY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB2YWxpZCByYW5nZXMsIHZhbHVlcywgb3IgbnVtZXJvdXMgdmFsdWVzIHRvIGJlIHVzZWQgaW4gZmlsdGVyaW5nIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgaXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxici8+DQo8YnIvPg0KPHN0cm9uZz5SYW5nZXM6PC9zdHJvbmc+PGJyLz4NClJhbmdlcyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNpZ25pZnlpbmcgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlIHVzaW5nIHRoaXMgc3ludGF4OiAmcXVvdDtyYW5nZTogbWludmFsdWUgdG8gbWF4dmFsdWUmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+TXVsdGlwbGUgVmFsdWVzOjwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlIHVzZSB0aGUgc3ludGF4ICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WYWx1ZXMgZnJvbSBoaWRkZW4gZmllbGRzPC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIGEgaGlkZGVuIGZpZWxkIHVzZSB0aGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBhbGxvdyBmaWx0ZXJpbmcgY2F0YWxvZ2VyIGl0ZW1zIGJ5IG5hbWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdUaGUgaGVpZ2h0IG9mIHRoZSBtdWx0aXNlbGVjdCBmaWVsZCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnRmllbGQgSGVpZ2h0JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBMZW5ndGgnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdDaGVja2JveCBsYWJlbCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlvIEJ1dHRvbiBsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBjaGVja2VkJzsKJGxhbmdbJ3RpdGxlX3VuY2hlY2tlZF92YWx1ZSddID0gJ1ZhbHVlIHdoZW4gbm90IGNoZWNrZWQuJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdDaGVja2JveCBHcm91cCBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ0RlbGV0ZT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7UGFzaXJpbmt0aSB2aWVuxIUmcXVvdDsgdGVrc3Rhcyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdTZWxlY3Rpb24gVmFsdWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnU2VsZWN0aW9uIERpc3BsYXkgTmFtZSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1NlbGVjdGlvbiBTdWJqZWN0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdPcHRpb24gTmFtZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWYWx1ZSBTdWJtaXR0ZWQnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ1B1bGxkb3duIE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ011bHRpc2VsZWN0IE9wdGlvbnMnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0Rlc3RpbmF0aW9uIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdEZXN0aW5hdGlvbiBGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9uYW1lJ10gPSAnJnF1b3Q7RnJvbSBuYW1lJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX2VtYWlsX3JlZ2V4J10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgdmFsaWRhdGlvbic7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdVc2UgcmVsYXhlZCBlbWFpbCBhZGRyZXNzIHZhbGlkYXRpb24gKGUuZy4sIGFsbG93ICZxdW90O3hAeSZxdW90OyBpbnN0ZWFkIG9mIHJlcXVpcmluZyAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcm9tIGFkZHJlc3MmcXVvdDsgZm9yIGVtYWlsJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRW1haWwgY2hhcmFjdGVyIHNldCBlbmNvZGluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ0ZpbGUgTmFtZSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRW1haWwgU3ViamVjdCBMaW5lJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm0gTmFtZSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ0Zvcm0gU3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUmVhZHkgZm9yIERlcGxveW1lbnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05vdCBSZWFkeSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnUGFnZSB0byByZWRpcmVjdCB0byBhZnRlciBmb3JtIHN1Ym1pc3Npb24nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1c2UgdGhpcyBzaG9ydGN1dCc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnRm9ybSBBbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm0gRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2lkJ10gPSAnRmllbGQgSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdTaG93IEZpZWxkIEFsaWFzZXMnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBkaXNwbGF5IGZpZWxkIGFsaWFzZXMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZpZWxkIE5hbWUnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdGaWVsZCBBbGlhcyc7CiRsYW5nWyd0aXRsZV9yYWRpb2dyb3VwX2RldGFpbHMnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWVsZF90eXBlJ10gPSAnRmllbGQgVHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAndG8gY3JlYXRlIGEgZm9ybSBoYW5kbGluZyBmaWVsZC4nOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnUHJpZMSXdGkgbmF1asSFIGZvcm3EhSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdSb2R5dGkgJnF1b3Q7Rm9ybcWzIGvFq3JpbW8mcXVvdDsgdmVyc2lqxIUgPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnUHJpZMSXdGkgbmFqxIUgbGF1a2VsxK8nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybSBTdWJtaXQgQnV0dG9uIFRleHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdBZGQgSmF2YXNjcmlwdCB0byBTdWJtaXQgQnV0dG9uIHRvIHByZXZlbnQgbXVsdGlwbGUgc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdBZGQgc2FmZXR5IHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnRm9ybSAmcXVvdDtOZXh0JnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtICZxdW90O1ByZXZpb3VzJnF1b3Q7IEJ1dHRvbiBUZXh0ICh1c2VkIGZvciBtdWx0aXBhZ2UgZm9ybXMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGaWVsZCBWYWxpZGF0aW9uJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZvcm0nOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIENsYXNzIGZvciB0aGlzIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9sIHRvIG1hcmsgcmVxdWlyZWQgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnUmVxdWlyZWQnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1JlcXVpcmUgYSByZXNwb25zZSBmb3IgdGhpcyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnSGlkZSBMYWJlbCc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsX2xvbmcnXSA9ICdIaWRlIHRoaXMgZmllbGQmIzAzOTtzIG5hbWUgb24gRm9ybSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGljIHRleHQgdG8gZGlzcGxheSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpb24gUmVnZXgnOwokbGFuZ1sndGl0bGVfbGluZXNfdG9fc2hvdyddID0gJ051bWJlciBvZiBMaW5lcyB0byBkaXNwbGF5JzsKJGxhbmdbJ25vX2RlZmF1bHQnXSA9ICdObyBEZWZhdWx0JzsKJGxhbmdbJ3JlZGlyZWN0X2FmdGVyX2FwcHJvdmFsJ10gPSAnUGFnZSB0byByZWRpcmVjdCBhZnRlciBhcHByb3ZhbCc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnUmVxJiMwMzk7ZCc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NsxJdwdGkga2xhaWRhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2Rpc3BsYXl0eXBlJ10gPSAnRm9ybSBEaXNwbGF5IFR5cGUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ1ByZXZlbnQgZGVidWcgLyBlcnJvciBtZXNzYWdlcyBmcm9tIGJlaW5nIHNlZW4gYnkgdXNlcnMuJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRW1haWwgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplJ10gPSAnTWF4aW11bSB1cGxvYWQgZmlsZSBzaXplIChraWxvYnl0ZXMpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGhpcyBsaW1pdGF0aW9uIGlzIGluIGFkZGl0aW9uIHRvIGFueSBsaW1pdHMgc2V0IGJ5IHRoZSBwaHAgb3Igd2ViIHNlcnZlciBjb25maWd1cmF0aW9uJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnUGVybWl0dGVkIEV4dGVuc2lvbnMnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ0VudGVyIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIGV4Y2x1ZGluZyB0aGUgZG90IChlLmcuLCAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBTcGFjZXMgd2lsbCBiZSBpZ25vcmVkLiBMZWF2aW5nIHRoaXMgYmxhbmsgbWVhbnMgdGhlcmUgd2lsbCBiZSBubyByZXN0cmljdGlvbnMuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdEaXNwbGF5IHJlc3RyaWN0aW9ucz8nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9uc19sb25nJ10gPSAnRGlzcGxheSBhbnkgc2l6ZSBhbmQgZXh0ZW5zaW9uIHJlc3RyaWN0aW9ucyB3aXRoIHRoZSB1cGxvYWQgZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSB0byB1c2UgdG8gRGlzcGxheSBGb3JtJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnUHVzbGFwaXMgJXMgaSZzY2Fyb247ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdGaWVsZCBoYXMgbm8gYWR2YW5jZWQgb3B0aW9ucy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgdG8gcmV0dXJuIGZvciB1bnNwZWNpZmllZCBmaWVsZCB2YWx1ZXMnOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGRfbG9uZyddID0gJ0VuYWJsZSBmYXN0IGZpZWxkIGFkZGluZyBwdWxsZG93biBmb3IgZm9ybXM/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkIHB1bGxkb3duPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnRmFzdCBmaWVsZCBhZGRlcic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW1fbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBvbmx5IGFsbG93IDEwIGVtYWlscyB0byBiZSB0cmlnZ2VyZWQgZnJvbSBhIGdpdmVuIElQIGFkZHJlc3MgKHBlciBob3VyKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnRW5hYmxlIHByaW1pdGl2ZSBhbnRpLXNwYW0gZmVhdHVyZXM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdTaG93IEZpZWxkIElEcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgYWxsb3cgZGlzcGxheWluZyBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0nOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ1VwbG9hZCBmb3JtIGZyb20gWE1MIGZpbGUnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ1VzZSB0aGlzIGZvcm0gbmFtZSc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIEZvcm0gSW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnVXNlIHRoaXMgZm9ybSBhbGlhcyc7CiRsYW5nWyd0aXRsZV9odG1sX2VtYWlsJ10gPSAnR2VuZXJhdGUgSFRNTCBlbWFpbD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGljYWxseSBwb3B1bGF0ZSB3aXRoIHRoZSBVUkwgb2YgdGhlIHBhZ2UgY29udGFpbmluZyB0aGUgZm9ybT8gKHRoaXMgb3ZlcnJpZGVzIHNpdGUgcGFnZSBsaW5rIG9wdGlvbiBiZWxvdyknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnRGVmYXVsdCBsaW5rIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmtfdGl0bGUnXSA9ICdEZWZhdWx0IGxpbmsgdGV4dCc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVXNlIENhcHRjaGEgdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnxK52ZXNraXRlIHJhaWTEl3MgaSZzY2Fyb247IHBhdmVpa3NsaXVrby4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmFpbGVkIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1snd3JvbmdfY2FwdGNoYSddID0gJ0NhcHRjaGEgd2FzIG5vdCBjb3JyZWN0Lic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIZWxwIHRleHQgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTGluayBMYWJlbCc7CiRsYW5nWydsaW5rX2Rlc3RpbmF0aW9uJ10gPSAnTGluayBEZXN0aW5hdGlvbiBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdDaGVja2VkIGJ5IERlZmF1bHQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdVc2UgMjQtaG91ciBjbG9jaz8nOwokbGFuZ1sndGl0bGVfYmVmb3JlX25vb24nXSA9ICdBTSc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0nOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdQcm9jZXNzIHNtYXJ0eSB0YWdzIHdpdGhpbiBmaWVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1Jvd3MgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnQ29sdW1ucyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbWFpbiddID0gJ01haW4gRm9ybSBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ1JvZHl0aSBuYXVkb3RvasSFPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ090aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCIgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0aW5nIGhlbHAuJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ0ZpZWxkIFJlcHJlc2VudGVkJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBCYWNrIHRvIEZvcm0nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIVE1MLUVtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdDcmVhdGUgU2FtcGxlIEhlYWRlcic7CiRsYW5nWydoZWxwX3RhYl9zeW1ib2wnXSA9ICdhIHRhYiBjaGFyYWN0ZXInOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ1RlbXBsYXRlIGZvciBvbmUgbGluZSBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9maWxlX2hlYWRlciddID0gJ1RlbXBsYXRlIGZvciB0aGUgaGVhZGVyIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2NvbmZpcm1hdGlvbl91cmwnXSA9ICdVUkwgdG8gY2xpY2sgZm9yIGZvcm0gY29uZmlybWF0aW9uJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnVmFsdWUgKHNlZSBBZHZhbmNlZCBUYWIgaWYgeW91IHVzZSBTbWFydHkgdGFncyknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRlIEZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWE/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU3dpdGNoIHRvIEFkdmFuY2VkIE1vZGUnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdTd2l0Y2ggdG8gU2ltcGxlIE1vZGUnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgZG9lcyBub3Qgc2VlbSB0byBiZSBpbnN0YWxsZWQvYWN0aXZlLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FSTklORyEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0RlZmF1bHQgVGVtcGxhdGUnOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZXMgb24gbGVmdCc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGUgb24gdG9wJzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ1RlbXBsYXRlIGZyb20gJXMnOwokbGFuZ1sndGVtcGxhdGVfYXJlX3lvdV9zdXJlJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIG92ZXJ3cml0ZSB5b3VyIHRlbXBsYXRlIHdpdGggdGhlIHNlbGVjdGVkIHRlbXBsYXRlPyAoRXZlbiBpZiB5b3Ugc2F5IE9LLCB5b3Ugd2lsbCBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGNoYW5nZSknOwokbGFuZ1sndGl0bGVfYmFkX2Z1bmN0aW9uJ10gPSAnRXJyb3Igd2hlbiBjb21wdXRpbmcgJnF1b3Q7JXMmcXVvdDsuJzsKJGxhbmdbJ25vX3JlZmVycmVyX2luZm8nXSA9ICdObyBIVFRQX1JFRkVSRVIgaW5mbyBhdmFpbGFibGUgKHByb2JhYmx5IGR1ZSB0byB1c2Ugb2YgVXNlciBFbWFpbCBWYWxpZGF0aW9uKSc7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBQYXJhbWV0ZXIgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX3Jlc3BvbnNlX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBObyBlbWFpbCB2YWxpZGF0aW9uIGZpZWxkIGluIHRoaXMgZm9ybSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0FkZCwgZWRpdCBhbmQgbWFuYWdlIGludGVyYWN0aXZlIEZvcm1zJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSWYgeW91IHVzZSBTdHJpbmcgZXZhbHVhdGlvbiwgdGhlIG9ubHkgb3BlcmF0aW9uIGF2YWlsYWJsZSBpcyBjb25jYXRlbmF0aW9uICgrKSwgd2hpbGUgaWYgeW91IHVzZSBOdW1iZXIgZXZhbHVhdGlvbiB5b3UgaGF2ZSBiYXNpYywgdmVyeSBzaW1wbGUgbWF0aCAoLCArLCAtLCAqLCAvLCApLic7CiRsYW5nWydkYXRlX2phbnVhcnknXSA9ICdTYXVzaXMnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ1Zhc2FyaXMnOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ0tvdmFzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdCYWxhbmRpcyc7CiRsYW5nWydkYXRlX21heSddID0gJ0dlZ3XFvsSXJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0JpcsW+ZWxpcyc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdMaWVwYSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ1J1Z3Bqxat0aXMnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdSdWdzxJdqaXMnOwokbGFuZ1snZGF0ZV9vY3RvYmVyJ10gPSAnU3BhbGlzJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdMYXBrcml0aXMnOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0dydW9kaXMnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBUaGVyZSB3YXMgYW4gZXJyb3IgaGFuZGxpbmcgeW91ciBmb3JtIHN1Ym1pc3Npb24uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+RW1haWwgVGVtcGxhdGUgbm90IHlldCBzZXQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+RXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfPG5hbWU+PC9lbT4gLSBTdXBwbHkgYSBkZWZhdWx0IHZhbHVlIHRvIGEgZmllbGQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBBIGxpc3Qgb2YgYWxsIGtub3duIGVycm9ycyAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIFRoZSBmb3JtIG5hbWUgKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBUaGUgaW50ZXJuYWwgZm9ybSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIFVzZWQgYnkgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RlZmF1bHQgZmllbGQgdmFsdWVzOyBzZWUgbW9kdWxlIGhlbHAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmllbGQgSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm1vcyBwYXZhZGluaW1hcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm0gSUQgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdHZW5lcmFsIHBhcmFtZXRlcnMgZm9yIGludGVybmFsIG9wZXJhdGlvbnMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+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+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwkJICAgIDx1bD4NCgkJICAgIAkJCSAgPGxpPlZlcnNpb24gMC4yLjQNCgkJCQkJCQkJPHA+QmlnIHJlbGVhc2U6DQoJCQkJCQkJCUFkZGVkICZxdW90O0VtYWlsIEZvcm0gdG8gVXNlci1TdXBwbGllZCBBZGRyZXNzJnF1b3Q7IGRpc3Bvc2l0aW9uLg0KCQkJCQkJCQlBZGRlZCAmcXVvdDtUaW1lUGlja2VyJnF1b3Q7IGZpZWxkIHR5cGUuIFNwbGl0ICZxdW90O0xpbmsmcXVvdDsgZmllbGQgaW50byBhICZxdW90O1VzZXItc3VwcGxpZWQgTGluayZxdW90OyBmaWVsZCBhbmQgYSAmcXVvdDtTdGF0aWMgTGluayZxdW90OyBmaWVsZC4NCgkJCQkJCQkJQWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLg0KCQkJCQkJCQlBZGRlZCBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLg0KCQkJCQkJCQlBZGRlZCBYTUwtYmFzZWQgaW1wb3J0IGFuZCBleHBvcnQgb2YgZm9ybXMuDQoJCQkJCQkJCTwvcD4NCgkJCQkJCSAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjMNCiAgICAgICAgICAgICAgICAgICAgICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY2FsbCBhIHNlbGVjdGFibGUgdXNlciBkZWZpbmVkIHRhZyB1cG9uIGRpc3Bvc2l0aW9uIG9mIHRoZSBmb3JtLjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPGxpPlZlcnNpb24gMC4yLjINCiAgICAgICAgICAgICAgICAgICAgICAgPHA+TWFueSB0aGFua3MgdG8gVXR0ZXIgRGVzaWduIGZvciBzcG9uc29yaW5nIHNvbWUgY2hhbmdlcyBhbmQgYnVnZml4ZXMsIHdoaWNoIGluY2x1ZGU6DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+QWRkZWQgZmlsZSB1cGxvYWQgY2FwYWJpbGl0aWVzIHRvIHRoZSBlbWFpbCBkaXNwb3NpdGlvbjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlc2UgZmllbGQgdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBmaWVsZHNldHMgaW4geW91ciBmb3JtLCBhbmQgb3JnYW5pc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91ciBmaWVsZHMgbG9naWNhbGx5IGZvciB0aGUgdXNlci4gIFlvdSBjYW4gZXZlbiBuZXN0IGZpZWxkc2V0cywgYW5kDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gcHJldmVudCBpdCBmcm9tIHdyYXBwaW5nIGEgZGl2IGFyb3VuZCB0aGVzZSB0eXBlcyBvZiBmaWVsZHMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHNvbHZlcyBhIHByb2JsZW0gd2hlbiBvbiBpbnN0YWxsIHRoZSByZXNwb25zZSB0YWJsZSB3b3VsZCBzb21ldGltZXMgbm90IGdldCBjcmVhdGVkIHdoZW4gdXNpbmcgYWRvZGIgbGl0ZTwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KCQkgICAgPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KCQkgICAgPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQogICAgICAgICAgICAgICAgICAgIDwvdWw+DQoJCSc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTc0ODM3OTIuMTMuMTIudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDIyNTY2LjAuaHRtbHx1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4zODI0NzgzNjAwNjg5NTYzNjAwLjEyMTIxMjg3NjguMTIxMzI1NTYxMC4xMjE3NDgzNzkyLjEzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1NramVtYSBCeWdnZXInOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGZWx0dHlwZSBpa2tlIHNhdHQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnVmVsZyBlbiAoZWxsZXIgZmxlcmUpIGNhdGFsb2dlciBhcnRpa2xlcic7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnRmVsdGdydXBwZSBTbHV0dCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICdGZWx0Z3J1cHBlIFN0YXJ0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnVGVrc3QgaW5uc2tyaXZpbmcnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGVrc3QgaW5uc2tyaXZpbmcgKEZsZXJlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZWtzdG9tciZhcmluZztkZSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdBdmtyeXNuaW5nc2Jva3MnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEdyb3VwRmllbGQnXSA9ICdBdmtyeXNuaW5nc2Jva3MgZ3J1cHBlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ05lZHRyZWtrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdmFsZyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdBbWVyaWthbnNrIHN0YXQgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0thbmFkaXNrIHByb3ZpbnMgdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZCB2ZWxnZXInOwokbGFuZ1snZmllbGRfdHlwZV9EYXRlUGlja2VyRmllbGQnXSA9ICdEYXRvIHZlbGdlcic7CiRsYW5nWydmaWVsZF90eXBlX1RpbWVQaWNrZXJGaWVsZCddID0gJ1RpZHMtdmVsZ2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IGJhc2VydCBwJmFyaW5nOyBOZWR0cmVrayc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbCBCYXNlcnQgcCZhcmluZzsgbmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbk11bHRpc2VsZWN0RmlsZURpcmVjdG9yJ10gPSAnKkxhZ3JlIHJlc3VsdGF0ZXQgdGlsIGZpbChlcikgQkFzZXJ0IHAmYXJpbmc7IEZsZXJlIFZhbGcnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblBhZ2VSZWRpcmVjdG9yJ10gPSAnKk9tZGlyaWdlciB0aWwgU2lkZSBCYXNlcnQgcCZhcmluZzsgTmVkdHJla2snOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKlNlbmRlIHJlc3VsdGF0ZXIgdmlhIGVwb3N0IHRpbCBiZXN0ZW10ZSBhZHJlc3Nlcic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRlcmluZy1tZWQtZXBvc3RhZHJlc3NlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgZnJhIGFkcmVzc2UmcXVvdDsgZmVsdCwgb2cgc2VuZCBrb3BpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKlNrcml2IHJlc3VsdGF0ZXIgdGlsIGZsYXQgZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypMYWdyZSByZXN1bHRhdGVyIGkgZGF0YWJhc2VuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypMYWdyZSByZXN1bHRhdGVyIGZvciBGb3JtQnJvd3NlciBtb2R1bGVuJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkthbGwgb3BwIGVuIEJydWtlcmRlZmluZXJ0IFRhZ2cgbWVkIHNramVtYSByZXN1bHRhdGVuZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRXBvc3QgdGlsIEJydWtlci1PcHBnaXR0IEVwb3N0YWRyZXNzZSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRXBvc3QgdGlsIENNUyBBZG1pbiBicnVrZXInOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1TaWRlc2tpZnQnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWwgb3BwbGFzdGluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0Vwb3N0ICZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IGZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzQWdhaW5GaWVsZCddID0gJ0Vwb3N0ICZxdW90O0ZyYSBhZHJlc3NlJnF1b3Q7IElnamVuIEZlbHQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxOYW1lRmllbGQnXSA9ICdFcG9zdCAmcXVvdDtGcmEgbmF2biZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRXBvc3QgJnF1b3Q7RW1uZSZxdW90OyBmZWx0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2sgdGVrc3QnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGlzayBsZW5rZSc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xlbmtlIChCcnVrZXItb3BwZ2l0dCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1Ta2p1bHQgRmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICctQmVyZWduZXQgZmVsdCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlrIEludGVnZXIgKFNlcmllbGwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZhbGlkZXJpbmcnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpc2snOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlciAnOwokbGFuZ1sndmFsaWRhdGlvbl9lbWFpbF9hZGRyZXNzJ10gPSAnRXBvc3RhZHJlc3NlJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb25udW1tZXIgKFVTKSc7CiRsYW5nWyd2YWxpZGF0aW9uX211c3RfY2hlY2snXSA9ICdNJmFyaW5nOyBhdmtyeXNzZXMnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1NhbXN2YXJlciB2YW5saWcgdXR0cnlrayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdTYW1zdmFyZXIgaWtrZSBtZWQgdmFubGlnIHV0dHJ5a2snOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VuIHZlcmRpIGVyIGlra2Ugb3BwZ2l0dCBmb3IgZXQgJiMwMzk7biZvc2xhc2g7ZHZlbmRpZyYjMDM5Oy1mZWx0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBlbiB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnVmVubmxpZ3N0IHNrcml2IGlubiBldCB0YWxsIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfdmFsaWQnXSA9ICdWZW5ubGlnc3Qgc2tyaXYgaW5uIGVuIGd5bGRpZyB2ZXJkaSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdWZW5ubGdpc3Qgc2tyaXYgaW5uIGVuIGludGVnZXIgdmVyZGkgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1Zlbm5saWdzdCBza3JpdiBpbm4gZW4gZ3lsZGlnIGVwb3N0YWRyZXNzZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0Vwb3N0YWRyZXNzZW4gZXIgaWtrZSBsaWsgdmVyZGllbiBzYXR0IGkgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWZW5ubGlnc3Qgb3BwZ2kgZXQgZ3lsZGlnIFVTIHRlbGVmb25udW1tZXIgZm9yJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgc2VyIGlra2UgdXQgdGlsICZhcmluZzsgdiZhZWxpZztyZSBlbiBneWxkaWcgZXBvc3RhZHJlc3NlISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnVmVubmxpZ3N0IG9wcGdpIGVuIHZlcmRpIHNvbSBpa2tlIGVyIGxlbmdyZSBlbm4gJXMgYm9rc3RhdmVyJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnVGVnbiAmYXJpbmc7IGJydWtlIHNvbSBhdmRlbGVyIGkgcmVzdWx0YXRlciBzb20gaGFyIGZsZXJlIHZlcmRpZXInOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0R1IHRyZW5nZXIgJnF1b3Q7JXMmcXVvdDsgcmV0dGlnaGV0ZW4gZm9yIGt1bm5lIHV0ZiZvc2xhc2g7cmUgZGVuIGhhbmRsaW5nZW4uJzsKJGxhbmdbJ2xhY2twZXJtaXNzaW9uJ10gPSAnQmVrbGFnZXIhIER1IGhhciBpa2tlIG5vayByZXR0aWdoZXRlciBmb3IgJmFyaW5nOyBmJmFyaW5nOyBhZGdhbmcgdGlsIGRlbiBhdmRlbGluZ2VuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnRmVsdCByZWtrZWYmb3NsYXNoO2xnZSBvcHBkYXRlcnQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ1NramVtYSBzbGV0dGV0Lic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnRmVsdCBzbGV0dGV0JzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXNqb24gb3BwZGF0ZXJ0Lic7CiRsYW5nWyd5b3VfbXVzdF9jaGVjayddID0gJ0R1IG0mYXJpbmc7IGtyeXNzZSBhdiAmcXVvdDslcyZxdW90OyBmb3IgJmFyaW5nOyBmb3J0c2V0dGUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdEdSBtJmFyaW5nOyBvcHBnaSBpIGRldCBtaW5zdGUgZW4gbSZhcmluZztsLWFkcmVzc2UhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0VyIGR1IHNpa2tlciBwJmFyaW5nOyBkdSB2aWwgc2xldHRlIHNramVtYWV0ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnRXIgZHUgc2lra2VyIHAmYXJpbmc7IGR1IHZpbCBzbGV0dGUgZmVsdGV0ICVzPyc7CiRsYW5nWydub3RpY2Vfc2VsZWN0X3R5cGUnXSA9ICdBdmFuc2VydGUgdmFsZyBlciBpa2tlIHRpbGdqZW5nZWxpZyBmJm9zbGFzaDtyIGZlbHQtdHlwZSBoYXIgYmxpdHQgc2F0dC4nOwokbGFuZ1snZmllbGRfbmFtZV9pbl91c2UnXSA9ICdGZWx0IG5hdm5ldCAmcXVvdDslcyZxdW90OyBlciBhbGxlcmVkZSBpIGJydWsuIFZlbm5saWdzdCBicnVrIHVuaWtlIGZlbHRuYXZuLCBlbGxlciBzbCZhcmluZzsgYXYga3JhdmV0IHRpbCB1bmlrZSBmZWx0bmF2biBpIFNramVtYWJ5Z2dlciBrb25maWd1cmFzam9uZW4uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGZWx0ZXIgTSZBcmluZzsgbmF2bmVzLCBvbSBkdSBkYSBpa2tlIHNsJmFyaW5nO3IgYXYgZGV0dGUgaSBGb3JtIEJ1aWxkZXIga29uZmlndXJhc2pvbmVuLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbmdkZTogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzZXInOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIHZhbGcnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBib2tzdGF2ZXInOwokbGFuZ1snb3JkZXInXSA9ICdSZWtrZWYmb3NsYXNoO2xnZSc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1t1c3Blc2lmaXNlcnRdJzsKJGxhbmdbJ2FkZGVkJ10gPSAnTGFndCB0aWwnOwokbGFuZ1sndXBkYXRlZCddID0gJ09wcGRhdGVydCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0ZXJpbmdzbXVsaWdoZXRlciBmb3IgdXRkYXRhJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWZWxnIGVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVmVsZyB0eXBlJzsKJGxhbmdbJ3RvJ10gPSAnVGlsJzsKJGxhbmdbJ3llcyddID0gJ0phJzsKJGxhbmdbJ25vJ10gPSAnTmVpJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdtb3R0YWtlcmUnOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG11bGlnZSBmaWxlcic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIG0mYXJpbmc7bCc7CiRsYW5nWydzYXZlJ10gPSAnTGFncmUnOwokbGFuZ1snYWRkJ10gPSAnTGFnZyB0aWwnOwokbGFuZ1sndXBkYXRlJ10gPSAnT3BwZGF0ZXInOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdMYWdyZSBvZyBmb3J0c2V0dCByZWRpZ2VyaW5nJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtYXNqb24nOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlzayc7CiRsYW5nWydmb3JtcyddID0gJ1NramVtYSc7CiRsYW5nWydmb3JtJ10gPSAnU2tqZW1hICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdLb25maWd1cmFzam9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGZWx0IG4mb3NsYXNoO2R2ZW5kaWctc3RhdHVzIG9wcGRhdGVydCc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYWtzLiBzdCZvc2xhc2g7cnJlbHNlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnRmlsZW5kZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ0xvdmxpZ2UgZmlsdHlwZXInOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdPcHBsYXN0ZXQgZmlsIGVyIGZvciBzdG9yISBNYWtzaW11bSBzdCZvc2xhc2g7cnJlbHNlIGVyOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0Rlbm5lIHR5cGUgZmlsIHZpbCBpa2tlIGJsaSBsYXN0ZXQgb3BwLiBWZW5ubGlnc3Qgc2pla2sgYXQgZmlsZW5kZWxzZW4gZXIga29ycmVrdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTGFzdCBvcHAnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ1NramVtYSBpbXBvcnRlcnQuJzsKJGxhbmdbJ2Zvcm1faW1wb3J0X2ZhaWxlZCddID0gJ1NramVtYSBpbXBvcnQgZmVpbGV0ISBEZXQgb3Bwc3RvZCBldCBwcm9ibGVtIG1lZCBmb3JtYXR0ZXQgcCZhcmluZzsgWE1MIGZpbGVuLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmFkZXInOwokbGFuZ1snY29scyddID0gJyVzIGtvbG9ubmVyJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiAtdGltZXJzIGtsb2trZSc7CiRsYW5nWycyNF9ob3VyJ10gPSAnMjQtdGltZXJzIGtsb2trZSc7CiRsYW5nWydob3VyJ10gPSAnVGltZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dHQnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbihBTS9QTSknOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ0ludGVydmFsbDogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUYWtrISBEaW4gaW5uc2VuZGluZyBoYXIgYmxpdHQgbW90dGF0dC4nOwokbGFuZ1snZWRpdCddID0gJ1JlZGlnZXInOwokbGFuZ1snZGVsZXRlJ10gPSAnU2xldHQnOwokbGFuZ1snZGF5J10gPSAnRGFnJzsKJGxhbmdbJ21vbiddID0gJ00mYXJpbmc7bmVkJzsKJGxhbmdbJ3llYXInXSA9ICcmQXJpbmc7cic7CiRsYW5nWydub25lJ10gPSAnKGluZ2VuKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsIGF2aW5zdGFsbGVydC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWwgdmVyc2pvbiAlcyBpbnN0YWxsZXJ0Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIG9wcGdyYWRlcnQgdGlsIHZlcnNqb24gJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RpbGJha2UuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1NlbmQgc2tqZW1hJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0ZvcnRzZXR0Li4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdBdmtyeXNzZXQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnSWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdIb3ZlZCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnU2tqZW1hdmlzbmluZ3MgaW5uc3RpbGxpbmdlcic7CiRsYW5nWyd0YWJfc3VibWl0J10gPSAnU2tqZW1hIGlubnNlbmRpbmcnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQXZhbnNlcnRlIGlubnN0aWxsaW5nZXInOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnTWFsIGxheW91dCB2YWxnJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdJbm5zZW5kaW5ncyBtYWwnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVyIGVyIGd5bGRpZ2UgaSBkZXR0ZSBmZWx0ZXQuPGVtPic7CiRsYW5nWydhZGRfb3B0aW9ucyddID0gJ0xlZ2cgdGlsIGZsZXJlIHZhbGcnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdTbGV0dCBtYXJrZXJ0ZSB2YWxnJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnTGVnZyB0aWwgZmxlcmUgYXZrcnlzbmluZ3Nib2tzZXInOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdTbGV0dCBtYXJrZXJ0ZSBhdmtyeXNuaW5nc2Jva3Nlcic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0xlZ2cgdGlsIGFubmVuIGFkcmVzc2UnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdTbGV0dCBtYXJrZXJ0IGFkcmVzc2UnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTGVnZyB0aWwgYW5uZXQgbSZhcmluZztsJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1NsZXR0IG1hcmtlcnRlIG0mYXJpbmc7bCc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0ZvciBtYW5nZSBlcG9zdGVyIGVyIGJsaXR0IGdlbmVyZXJ0IGZyYSBkaW4gSVAtYWRyZXNzZS4gQW50aS1TcGFtIGtvZGUgaGFyIHN0b3BwZXQgbGV2ZXJpbmdlbi4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnTWlzdGVua2VsaWcgc3BhbSBmcmEgSVAgJXMgYmxlIHN0b3BwZXQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdPbXNvcnRlciBmZWx0ZXInOwokbGFuZ1snY2FuY2VsJ10gPSAnQXZicnl0JzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1ZlcmRpIHNhdHQ6ICVzJzsKJGxhbmdbJ2hlbHBfY2F0YWxvZ2VyX2F0dHJpYnV0ZV9maWVsZHMnXSA9ICdOZWRlbmZvciBlciBlbiBsaXN0ZSBtZWQgYXRyaWJ1dHRlbmUgc29tIGVyIHRpbGdqZW5nZWxpZ2UgZnJhIENhdGFsb2dlciBtb2R1bGVuLjxici8+DQpEdSBrYW4gdmFsZ2ZyaXR0IHNwZXNpZmlzZXJlIGd5bGRpZ2UgdXR2YWxnLCB2ZXJkaWVyIGVsbGVyIGZsZXJlIHZlcmRpZXIgc29tIHNrYWwgYmVueXR0ZXMgZm9yICZhcmluZzsgZmlsdHJlcmUgbGlzdGVuIG1lZCBlbmhldGVyIHNvbSB2aXNlcyB0aWwgYnJ1a2VyZW4uPGJyLz4NCjxici8+DQo8c3Ryb25nPlV0dmFsZzo8L3N0cm9uZz48YnIvPg0KVXR2YWxnKFJhbmdlcykga2FuIHNwZXNpZmlzZXJlcyB2ZWQgJmFyaW5nOyBpbXBsaXNlcmUgZW4gbWluaW11bSBvZyBtYWtzaW11bSB2ZXJkaSB2ZWQgJmFyaW5nOyBiZW55dHRlIGRlbm5lIHN5bnRha3NlbjogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPkZsZXJlIHZlcmRpZXI6PC9zdHJvbmc+PGJyLz4NCkZvciAmYXJpbmc7IHNwZXNpZmlzZXJlIGZsZXJlIHZlcmRpZXIgZm9yIGVuIGF0cmlidXR0IGJlbnl0dGVyIGR1IHN5bnRha3NlbiAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmVyZGllciBmcmEgc2tqdWx0ZSBmZWx0PC9zdHJvbmc+PGJyLz4NCkZvciAmYXJpbmc7IHNwZXNpZmlzZXJlIGVuIHZlcmRpIGZyYSBldCBza2p1bHQgZmVsdCBiZW55dHRlciBkdSBzeW50YWtzZW4geyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0VuIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgJmFyaW5nOyB0aWxsYXRlIGZpbHRyZXJpbmcgYXYgY2F0YWxvZ2VyIGFydGlrbGVyIGV0dGVyIG5hdm4nOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdIJm9zbGFzaDt5ZGUgcCZhcmluZzsgZmxlcnZhbGdzIGZlbHRldCc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSB2YW5saWcgdXR0cnlrayc7CiRsYW5nWyd0aXRsZV9maWVsZF9oZWlnaHQnXSA9ICdGZWx0IGgmb3NsYXNoO3lkZSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdNJmFyaW5nO2xrYXRhbG9nIGZvciB1dHNlbmRpbmcgYXYgZmlsZXInOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdCcnVrZXJkZWZpbmVydCBUYWdnJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfZGVzdHBhZ2UnXSA9ICdTaWRlICZhcmluZzsgcmV0dXJuZXJlIHRpbCBtZWQgb3BwbGFzdGluZ3MgbGVua2VuJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZG1vZHVsZV9zdW1tYXJ5J10gPSAnSW5uc2VuZHQgbWVkIFNramVtYUJ5Z2dlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnT3BwbGFzdGluZ3MgS2F0ZWdvcmknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTZW5kIGRlbm5lIGZpbGVuIHRpbCBvcHBsYXN0aW5ncyBtb2R1bGVuJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0ZlbHRncnVwcGV0aXR0ZWwnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYWtzaW11bSBsZW5nZGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdBdmtyeXNuaW5nc2Jva3MgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ1JhZGlva25hcHAgZXRpa2V0dCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnVmVyZGkgbiZhcmluZztyIGF2a3J5c3NldCc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdWZXJkaSBuJmFyaW5nO3IgaWtrZSBhdmtyeXNzZXQnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0F2a3J5c25pbmdzYm9rcyBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnU2xldHQ/JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9vbmVfbWVzc2FnZSddID0gJyZxdW90O1ZlbGcgJmVhY3V0ZTtuJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnVXR2YWxnIHZlcmRpJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1V0dmFsZyBWaXNuaW5ncyBOYXZuJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnVXR2YWxnIGVtbmUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1N0YW5kYXJkIHV0dmFsZyc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ1ZhbGcgbmF2bic7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWZXJkaSBzZW5kdCc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnTmVkdHJla2tzIHZhbGcnOwokbGFuZ1sndGl0bGVfbXVsdGlzZWxlY3RfZGV0YWlscyddID0gJ0ZsZXJ2YWxnIHZhbGcnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ00mYXJpbmc7bCBlcG9zdGFkcmVzc2UnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdNJmFyaW5nO2wgRmlsbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGcmEgbmF2biZxdW90OyBmb3IgZXBvc3QnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ0JydWsgZW5rZWwgZXBvc3QgdmVyaWZpc2VyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0JydWsgZW5rZWwgZXBvc3RhZHJlc3NlIHZlcmlmaXNlcmluZyAoZi5la3MuIHRpbGxhdCAmcXVvdDt4QHkmcXVvdDsgaXN0ZWRldCBmb3IgJmFyaW5nOyBrcmV2ZSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtGcmEgYWRyZXNzZSZxdW90OyBmb3IgZXBvc3QnOwokbGFuZ1sndGl0bGVfZW1haWxfZW5jb2RpbmcnXSA9ICdFcG9zdCB0ZWduc2V0dCBrb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ05lZHRyZWtrLWJhc2VydGUgZXBvc3QgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsbmF2bic7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnRXBvc3QgRW1uZSBsaW5qZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGcmEgbmF2bic7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1NramVtYSBzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdGZXJkaWcgZm9yIGFudmVuZGVsc2UnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0lra2UgZmVyZGlnJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTaWRlICZhcmluZzsgdmlkZXJlc2VuZGUgdGlsIGV0dGVyIHNramVtYSBzZW5kdCc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnVmVubmxpZ3N0IGxlZ2cgdGlsIGV0IGZlbHQgdGlsIHNramVtYWV0IHMmYXJpbmc7IGJydWtlcmVucyBpbm5za3JpdmluZyBibGlyIGJlaGFuZGxldC4gRHUga2FuICc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHlfbGluayddID0gJ2JydWsgZGVubmUgc25hcnZlaWVuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdTa2plbWEgYWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdTa2plbWFmZWx0ZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGaWVsdCBJZCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlcyddID0gJ1ZpcyBmZWx0IGFsaWFzZXInOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJyZBcmluZzsgdmVsZ2UgZGV0dGUgdmlsIHZpc2UgZmVsdCBhbGlhc2VyIG4mYXJpbmc7ciBlbiBsZWdnZXIgdGlsIGVsbGVyIHJlZGlnZXJlciBldCBza2plbWEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ0ZlbHQgbmF2bic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0ZlbHQgYWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW9rbmFwcCBncnVwcGUgZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZlbHQgdHlwZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkzJ10gPSAnZm9yICZhcmluZzsgbGFnZSBldCBza2plbWEgYmVoYW5kbGluZyBmZWx0JzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0xlZ2cgdGlsIG55dHQgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1ZpcyBTa2plbWEgQnlnZ2VyIHZlcnNqb24/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbl9sb25nJ10gPSAnRGV0dGUgdmlsIGlubmthcHNsZSBkaXR0IHZlcnNqb25zbnVtbWVyIGZvciBTa2plbWEgYnlnZ2VyIG1vZHVsZW4gaSBlbiBrb21tZW50YXIsIGZvciAmYXJpbmc7IGhqZWxwZSBpIGZlaWxzJm9zbGFzaDtraW5nJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMZWdnIHRpbCBueXR0IGZlbHQnOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O1NlbmQmcXVvdDsgdGVrc3QgZm9yIGtuYXBwJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTGVnZyB0aWwgZXR0IEphdmFzY3JpcHQgdGlsIFV0ZiZvc2xhc2g7ciBrbmFwcGVuIGZvciAmYXJpbmc7IHVubmcmYXJpbmc7IGdqZW50YXR0ZSBpbm5zZW5kaW5nZXI/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5X2hlbHAnXSA9ICdMZWdnIHRpbCBTaWtrZXJoZXRzIHNjcmlwdCc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnU2tqZW1hICZxdW90O05lc3RlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ1NramVtYSAmcXVvdDtGb3JyaWdlJnF1b3Q7IHRla3N0IGZvciBrbmFwcCAoYnJ1a3QgcCZhcmluZzsgZmxlcnNpZGVycyBza2plbWFlciknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZlbHRzamVrayc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0ZlbHQgJmFyaW5nOyBzamVra2UnOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1Mga2xhc3NlIGZvciBkZXR0ZSBza2plbWEnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTIGtsYXNzZSBmb3IgZGV0dGUgZmVsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCBmb3IgJmFyaW5nOyBtZXJrZSBuJm9zbGFzaDtkdmVuZGlnZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnTiZvc2xhc2g7ZHZlbmRpZyc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnS3JldiBlbiByZXNwb25zIGZvciBkZXR0ZSBmZWx0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdTa2p1bCBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1NranVsIGRldHRlIGZlbHRldHMgbmF2biBwJmFyaW5nOyBza2plbWFldCc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdGlzayB0ZWtzdCAmYXJpbmc7IHZpc2UnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICcoUmVnZXgpIHNqZWtrJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbGwgbGluamVyICZhcmluZzsgdmlzZSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnSW5nZW4gc3RhbmRhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTaWRlICZhcmluZzsgdmlkZXJlc2VuZGUgdGlsIGV0dGVyIGdvZGtqZW5uaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdEZXR0ZSB2YW5saWdlIHV0dHJ5a2tldCB2aWwgYmFyZSBibGkgYnJ1a3Qgb20gJnF1b3Q7dmFsaWRlcmluZ3MgdHlwZSZxdW90OyBlciBzYXR0IHRpbCByZWdleC1yZWxhdGVydCB2YWxnLiBJbmtsdWRlciBmdWxsIFBlcmwtc3RpbCByZWdleCwgaW5rbHVkZXJ0IHN0YXJ0L3N0b3BwIHNsYXNoZXIgb2cgZmxhZ2cgKGYuZWtzLiAmcXVvdDsvaW1hZ2VcLihcZCspL2kmcXVvdDspJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldiddID0gJ09ibGlnLic7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9ycyddID0gJ1NranVsIGZlaWwnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ1NramVtYSB2aXNuaW5ncyB0eXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdIaW5kcmUgZmVpbHMmb3NsYXNoO2tpbmcgLyBmZWlsLW1lbGRpbmdlciBmcmEgJmFyaW5nOyB2aXNlcyB0aWwgYnJ1a2VyZW4uJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJ10gPSAnRXBvc3QgbWFsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3NpbXVtIG9wcGxhc3RpbmcgZmlsc3Qmb3NsYXNoO3JyZWxzZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ0Rlbm5lIGJlZ3JlbnNuaW5nIGVyIGV0IHRpbGxlZ2cgdGlsIGVuaHZlciBncmVuc2Ugc2F0dCBhdiBwaHAgZWxsZXIgd2Vic2VydmVyIGtvbmZpZ3VyYXNqb25lbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0dvZGtqZW50ZSBmaWxlbmRlbHNlcic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnU2tyaXYgZW4ga29tbWEtc2VwYXJlcnQgbGlzdGUsIHV0ZWxhdHQgcHVua3R1bSAoZi5la3MuICZxdW90O2pwZyxnaWYsanBlZyZxdW90OykuIE1lbGxvbXJvbSB2aWwgYmxpIGlnbm9yZXJ0LiAmQXJpbmc7IGxhIGRldHRlIHYmYWVsaWc7cmUgdG9tdCB2aWwgc2kgaW5nZW4gcmVzdHJpa3Nqb25lci4nOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1ZpcyByZXN0cmlrc2pvbmVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdWaXMgc3Qmb3NsYXNoO3JyZWxzZSBlbGxlciBmaWxlbmRlbHNlLXJlc3RyaWtzam9uZXIgcCZhcmluZzsgb3BwbGFzdGluZ3NmZWx0ZXQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdNYWwgJmFyaW5nOyBicnVrZSBmb3IgJmFyaW5nOyB2aXNlIHNramVtYSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1NpZGUgJXMgYXYgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZlbHRldCBoYXIgaW5nZW4gYXZhbnNlcnRlIHZhbGcuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdW5zcGVjaWZpZWQnXSA9ICdUZWtzdCAmYXJpbmc7IHZpc2UgZm9yIHVzcGVzaWZpc2VydGUgZmVsdCB2ZXJkaWVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdNdWxpZ2dqJm9zbGFzaDtyIHJhc2sgZmVsdC10aWxsZWdnaW5nIG1lZCBuZWR0cmVrayBmb3Igc2tqZW1hZXI/JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkJ10gPSAnTXVsaWdnaiZvc2xhc2g7ciBuZWR0cmVrayBmb3IgaHVydGlnIHRpbGxlZ2dpbmcgYXYgZmVsdGVyPyc7CiRsYW5nWyd0aXRsZV9mYXN0YWRkJ10gPSAnSHVydGlnLXRpbGxlZ2cgYXYgZmVsdGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnJkFyaW5nOyBoYWtlIGF2IGRldHRlIHZpbCBrdW4gdGlsbGF0ZSAxMCBlcG9zdGVyICZhcmluZzsgYmxpciBnZW5lcmVydCBmcmEgZW4gZ2l0dCBJUCBhZHJlc3NlIChwciB0aW1lKS4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2FudGlzcGFtJ10gPSAnU2wmYXJpbmc7IHAmYXJpbmc7IHByaW1pdGl2ZSBhbnRpc3BhbSBlZ2Vuc2thcGVyPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVmlzIEZlbHQgSURlcic7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICcmQXJpbmc7IGhha2UgYXYgZGV0dGUgdmlsIHRpbGxhdGUgdmlzbmluZyBhdiBmZWx0IGlkZXIgdW5kZXIgb3BwcmV0dGVsc2UgZWxsZXIgcmVkaWdlcmluZyBhdiBldCBza2plbWEnOwokbGFuZ1sndGl0bGVfeG1sX3RvX3VwbG9hZCddID0gJ0xhc3Qgb3BwIHNramVtYSBzb20gWE1MIGZpbCc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnQmVueXR0IGRldHRlIHNramVtYW5hdm5ldCc7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MIFNramVtYSBpbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdCZW55dHQgZGV0dGUgc2tqZW1hIGFsaWFzZXQnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVyZXIgSFRNTCBlcG9zdD8nOwokbGFuZ1sndGl0bGVfbGlua19hdXRvcG9wdWxhdGUnXSA9ICdGeWxsIHV0IGF1dG9tYXRpc2s/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdGeWxsIHV0IGF1dG9tYXRpc2sgbWVkIFVSTCYjMDM5O2VuIHRpbCBzaWRlbiBzb20gaW5uZWhvbGRlciBza2plbWFldD8gKGRldHRlIG92ZXJzdHlyZXIgTGVua2UgdGlsIG5ldHRzdGVkIHNpZGUgdmFsZ2V0IG5lZGVuZm9yKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdTdGFuZGFyZCBsZW5rZSBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnU3RhbmRhcmQgbGVua2UgdGVrc3QnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0xlbmtlIHRpbCBuZXR0c3RlZCBzaWRlJzsKJGxhbmdbJ3RpdGxlX2NhcHRjaGFfbm90X2luc3RhbGxlZCddID0gJ0R1IGthbiBiZW55dHRlIDxhIGhyZWY9Imh0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEiIHRhcmdldD0iX25ldyI+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gZm9yICZhcmluZzsgYmVza3l0dGUgc2tqZW1hIGlubnNlbmRpbmdlciBvbSBkdSBpbnN0YWxsZXJlciBDYXB0Y2hhIG1vZHVsZW4uIEZvciBtZXJlIGluZm9ybWFzam9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdCcnVrZSBDYXB0Y2hhIGZvciAmYXJpbmc7IGJlc2t5dHRlIHNramVtYSBpbm5zZW5kaW5nZXI/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdIYWsgYXYgaGVyIGZvciAmYXJpbmc7IGJlc2t5dHRlIGRpdHQgc2tqZW1hIG1lZCBlbiA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdWZW5ubGlnc3QgYmVrcmVmdCBhdCBkdSBpa2tlIGVyIGV0IHNrcmlwdCB2ZWQgJmFyaW5nOyBza3JpdmUgaW5uIGJva3N0YXZlbmUgZnJhIGJpbGRldC4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnRmVpbCB0ZWtzdCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB0ZWtzdGVuIGJsZSBpa2tlIGtvcnJla3QgaW5uc2tyZXZldC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGplbHBldGVrc3QgZm9yIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnSWtrZSBzZW5kIHZlcmRpZXIgZm9yIGlra2UtYXZrcnlzc2VkZSBib2tzZXInOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdIYWsgYXYgZGVubmUgb20gZHUga3VuIHZpbCBhdCBhdmtyeXNzZWRlIGJva3NlciBza2FsIGdpIHZlcmRpZXIuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMZW5rZSBldGlrZXR0JzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMZW5rZSBtJmFyaW5nO2wgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQXZrcnlzc2V0IHNvbSBzdGFuZGFyZD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ0Jlbnl0dCAyNC10aW1lcnMga2xva2tlPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNICc7CiRsYW5nWyd0aXRsZV9hZnRlcl9ub29uJ10gPSAnUE0gJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvc2Vzc2VyIHNtYXJ0eSB0YWdnZXIgaW5uaSBmZWx0ZXI/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSYWRlciAobWVyazogZGV0dGUga2FuIGJsaSBvdmVyc3R5cnQgYXYgQ1NTKSc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9jb2xzJ10gPSAnS29sb25uZXIgKG1lcms6IGRldHRlIGthbiBibGkgb3ZlcnN0eXJ0IGF2IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnSG92ZWQgU2tqZW1hIERldGFsamVyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdWaXMgSW5ubG9nZ2luZ3NuYXZuKGxvZ2luIG5hbWUpPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdWaXMgYnJ1a2VyZW5zIGZvcm5hdm4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnVmlzIGJydWtlcmVucyBldHRlcm5hdm4/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnQmVncmVucyBicnVrZXJsaXN0ZW4gdGlsIGJydWtlcmUgaSBlbiBzcGVzaWZpayBncnVwcGUnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ0t1biBpIGdydXBwZSAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdWaXMgdGlsIGJydWtlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGV0dGUgZmVsdGV0IGthbiBkdSBsYSB2JmFlbGlnO3JlIGJsYW5rdCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfdGVtcGxhdGUnXSA9ICdWYXJpYWJsZXIgZm9yIG1hbCc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdUaWxnamVuZ2VsaWdlIHZhcmlhYmxlcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0byBmb3IgaW5ubGV2ZXJpbmcnOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ0RpbiBzZXJ2ZXInOwokbGFuZ1snaGVscF9zdWJfc291cmNlX2lwJ10gPSAnSVAgYWRyZXNzZSB0aWwgcGVyc29uZW4gc29tIGJydWtlciBza2plbWFldCc7CiRsYW5nWydoZWxwX3N1Yl91cmwnXSA9ICdMaW5rIHRpbCBzaWRlbiBzb20gaW5uZWhvbGRlciBza2plbWFldCc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzam9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFidWxhciB0ZWduJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZW5hdGl2ZSBmZWx0bmF2biBrYW4gYmVueXR0ZXMgdXRieXR0YmFydCAoc3Blc2llbHQgbnl0dGlnIG9tIFNtYXJ0eSBwcm90ZXN0ZXJlciBwJmFyaW5nOyBib2tzdGF2ZXIgdXRlbmZvciBBU0NJSSAzMi0xMjYpLiA8YnIgLz5BbmRyZSBmZWx0IHZpbCBibGkgdGlsZ2plbmdlbGlnZSBuJmFyaW5nO3IgZHUgbGVnZ2VyIGRlbSB0aWwgc2tqZW1hZXQuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnWWV0IGFub3RoZXIgd2F5IG9mIGFjY2Vzc2luZyBmaWVsZCB2YWx1ZXMgaXMgdmlhICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCB3aGVyZSBlYWNoIGZpZWxkIGlzIGFuIG9iamVjdCBjb250YWluZ2luZzo8YnIgLz48dGFibGU+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5uYW1lPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkZpZWxkIE5hbWU8L3RkPjwvdHI+DQo8dHI+PHRkPnR5cGU8L3RkPjx0ZD5GaWVsZCBUeXBlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+aWQ8L3RkPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+SW50ZXJuYWwgRmllbGQgSUQ8L3RkPjwvdHI+DQo8dHI+PHRkPnZhbHVlPC90ZD48dGQ+SHVtYW4tcmVhZGFibGUgVmFsdWU8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkFycmF5IG9mIGZpZWxkIHZhbHVlKHMpPC90ZD48L3RyPjwvdGFibGU+PGVtPmUuZy48L2VtPiwgeW91IGNvdWxkIHVzZSAmcXVvdDt7JGZsZF8xX29iai0+bmFtZX0gPSB7JGZsZF8xX29iai0+dmFsdWV9JzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZSA8YSBocmVmPSYjMDM5O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmIzAzOTsgdGFyZ2V0PV9ORVc+dGhlIFBIUCBNYW51YWw8L2E+IGZvciBmb3JtYXR0ZXJpbmdzIGhqZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJlbCc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGZWx0IHJlcHJlc2VudGVydCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsYmFrZSB0aWwgc2tqZW1hJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdMYWcgZWtzZW1wZWxtYWwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9odG1sX3RlbXBsYXRlJ10gPSAnT3BwcmV0dCBFa3NlbXBlbCBIVE1MLWVwb3N0IG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ09wcHJldHQgRWtzZW1wZWwgSGVhZGVyIG1hbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0xhZyBla3NlbXBlbCBvdmVyc2tyaWZ0JzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2V0IHRhYnVsYXRvciB0ZWduJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdNYWwgZm9yICZlYWN1dGU7biBsaW5qZSBhdiB1dGRhdGEgZmlsZW4nOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdNYWwgZm9yIG92ZXJza3JpZnRlbiBwJmFyaW5nOyB1dGRhdGEgZmlsZW4nOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ0xpbmsgJmFyaW5nOyBrbGlra2UgZm9yIHNramVtYSBiZWtyZWZ0ZWxzZSc7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZlcmRpIChzZSBBdmFuc2VydCBmbGlrZW4gb20gZHUgYmVueXR0ZXIgU21hcnR5IHRhZ2dlciknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXRvIGZvcm1hdCAoc3RhbmRhcmQgPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnQnJ1a2UgV1lTSVdZRyByZWRpZ2VyZXIgZm9yIHRla3N0IG9tciZhcmluZztkZXQ/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnT3BwZiZvc2xhc2g7cnNlbCBmb3IgU2tqZW1hIElubnNlbmRpbmcnOwokbGFuZ1sndGl0bGVfc3VibWl0X2xhYmVscyddID0gJ0V0aWtldHQgZm9yIElubnNlbmRpbmdza25hcHBlbic7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRlcmJhcnQgZmVsdCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdEZW5uZSBzaWRlbiBsYXIgZGVnIHRpbHBhc3NlIFNramVtYSBJbm5zZW5kaW5nLiBEZXQgYmVzdGVtbWVyIGlra2UgaHZhIFNramVtYSBCeWdnZXIgZ2omb3NsYXNoO3IgbWVkIGRlIGlubnNlbmR0ZSBkYXRhLiBEZXR0ZSBrYW4gZHUgc2V0dGUgb3BwIHZlZCAmYXJpbmc7IGxlZ2dlIHRpbCAmcXVvdDtEaXNwb3Npc2pvbiZxdW90OyhnZW15dHQpIGZlbHRlciB0aWwgZGl0dCBza2plbWEuJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICcmQXJpbmc7cnNpbnRlcnZhbGwgc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICcmQXJpbmc7cnNpbnRlcnZhbGwgc2x1dHQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnU3RhbmRhcmQgJmFyaW5nO3InOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0dCB0aWwgLTEgZm9yIGF0IHN0YW5kYXJkICZhcmluZztyIHNrYWwgYmxpIG4mYXJpbmc7diZhZWxpZztyZW5kZSAmYXJpbmc7ciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0V0dGVyIHNramVtYWV0IGVyIHNlbmR0JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnMgc29tIHNrYWwgdmlzZXMnOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnVmlzICZxdW90O0lubnNlbmRpbmdzIG1hbCZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnT21kaXJpZ2VyIHRpbCBuZXR0c2lkZSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2VfaGVscCddID0gJ0Rlbm5lIG1hbGVuIGVyIGZvciBkZXQgc29tIHNrYWwgdmlzZXMgdGlsIGJydWtlcmVuIGV0dGVyIGV0IHNramVtYSBlciBpbm5zZW5kdC4gRGVubmUgbWFsZW4gaGFyIGluZ2VuIHZpcmtuaW5nIHAmYXJpbmc7IGVwb3N0IHNvbSBnZW5lcmVyZXMgZWxsZXIgYW5kcmUgc2tqZW1hZ2VteXR0ZXIgIC0tIGR1IHNldHRlciBkZSBtYWxlbmUgKGh2b3IgZGV0IGVyIHJlbGV2YW50KSBpICZxdW90O2F2YW5zZXJ0JnF1b3Q7IGZsaWtlbiBwJmFyaW5nOyBkaXNzZSBnZW15dHRlbmVzIGZlbHRlci4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ00mYXJpbmc7bCBTaWRlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ0tyZXYgRmVsdG5hdm4nOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdLcmV2IGF0IGZlbHRlciBza2FsIGhhIGV0dCBuYXZuPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ0tyZXYgdW5pa2UgZmVsbmF2bic7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnS3JldiBhdCBmZWx0ZXIgc2thbCBoYSB1bmlrZSBmZWx0bmF2bj8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnT21zb3J0ZXIgZmVsdGVyJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYXN0IG1hbCc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdMZWdnIHRpbCBLbmFwcCB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdTbGV0dCBLbmFwcCB0ZWtzdCc7CiRsYW5nWyd0aXRsZV9zdHJpbmdfb3JfbnVtYmVyX2V2YWwnXSA9ICdGb3J0b2xrIHZhcmlhYmxlciB0aWwgJmFyaW5nOyB2JmFlbGlnO3JlIG51bW1lciBlbGxlciBzdHJlbmdlcic7CiRsYW5nWyd0aXRsZV9vcmRlciddID0gJ1RvbGtuaW5nc3Jla2tlcmYmb3NsYXNoO2xnZSc7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnT20gbWVyIGVubiBldCBCZXJlZ25ldCBmZWx0IGVrc2lzdGVyZXIsIHZpbCBkZSBibGkgYmVyZWduZXQgZnJhIGRldCBsYXZlc3RlIHJla2tlZiZvc2xhc2g7bGdlbnVtbWVyZXQgdGlsIGRldCBoJm9zbGFzaDt5ZXN0ZSByZWtrZWYmb3NsYXNoO2xnZW51bW1lcmV0JzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWZXJkaSAmYXJpbmc7IGJlcmVnbmUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyZW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1tZXJpc2snOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm0nXSA9ICdWaXMgc2tqZW1hIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ01lZCBJbmxpbmUgbWVuZXMgYXQgZW5odmVyIHZpZGVyZWYmb3NsYXNoO3JpbmcgZXJzdGF0dGVyIHtjbXNfbW9kdWxlfSB0YWdnZW4sIG5vbi1pbmxpbmUgZXJzdGF0dGVyIHtjb250ZW50fSB0YWdnZW4uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdTdGFuZGFyZCB2ZXJkaSBmb3IgZmVsdCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAndCZvc2xhc2g7bSBzdGFuZGFyZCB2ZWQga2xpa2s/JzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHRfaGVscCddID0gJ0hhayBhdiBkZW5uZSBvbSBkdSB2aWwgYXQgc3RhbmRhcmQgdmVyZGkgc2thbCBmamVybmVzIG4mYXJpbmc7ciBicnVrZXJlbiBrbGlra2VyIGkgZGV0dGUgZmVsdGV0LiBTaWRlbiBkZXR0ZSBiZW55dHRlciBlbiBqYXZhc2tyaXB0IHN0cmluZyBzYW1tZW5saWduaW5nIHZpbCBkZXR0ZSBmZWlsZSBvbSBkdSBzZXR0ZXIgZW5rbGUgYW5mJm9zbGFzaDtyc2Vsc3RlZ24gaSBkaW4gc3RhbmRhcmR0ZWtzdC4gQW5kcmUgaWtrZS1qYXZhc2tyaXB0IGVnbmVkZSB0ZWduIGthbiBvZ3MmYXJpbmc7IGYmYXJpbmc7IGRldHRlIHRpbCAmYXJpbmc7IGZlaWxlLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1NsZXR0IG9wcGxhc3RlZGUgZmlsZXIgZnJhIHNlcnZlcmVuIGV0dGVyIHByb3Nlc3NlcmluZyAoZXBvc3QgZGlzcG9zaXNqb25lciknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZlbHQnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdCddID0gJ1NramVtYWlubnNlbmRpbmdzIGphdmFza3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnSWtrZSBiYXJlIHNldHQgZW4gdGlsZmVsZGlnIGFkcmVzc2UgaGVyIC0tIG1hbmdlIElTUGVyIHZpbGw8YnIgLz5pa2tlIGxldmVyZSBlcG9zdGVuIG9tIGR1IGJlbnl0dGVyIGV0IGFubmV0IGRvbWVuZW5hdm4gZW5uIGRpdHQgZmFrdGlza2U8YnIgLz52ZXJ0c25hdm4gKGYuZWtzLiBiZW55dHQgbm9lIHNvbSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdCZWhvdiBmb3IgZmxlcmUgdGVsdHR5cGVyPyAnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljJ10gPSAnRm9yIG1hbmdlIGZvcnZpcnJlbmRlIGZlbHR0eXBlcj8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnQnl0dCB0aWwgYXZhbnNlcnQgbW9kdXMnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdCeXR0IHRpbCBlbmtlbCBtb2R1cyc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3QnXSA9ICdLYXRhbG9nICZhcmluZzsgbGFncmUgZmlsZW4gaSc7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ0RldHRlIG0mYXJpbmc7IHYmYWVsaWc7cmUgZW4ga2F0YWxvZyBzb20gZGluIHdlYnNlcnZlciBoYXIgcmV0dGlnaGV0IHRpbCAmYXJpbmc7IHNrcml2ZSBpLjxiciAvPkNobW9kIGRlbiB0aWwgNzc3IG9tIGR1IGhhciBwcm9ibGVtZXIvdHZpbGVyLjxiciAvPk9nLCBzZSBldHRlciBhdCBkdSBpa2tlIGhhciBQSFAga2F0YWxvZyByZXN0cmlrc2pvbmVyLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTnkgbGluamUvTGluamVza2lmdChOZXdsaW5lL0NhcnJpYWdlIFJldHVybikgZXJzdGF0bmluZ3N0ZWduJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xhIGRldHRlIHYmYWVsaWc7cmUgYmxhbmt0IGZvciAmYXJpbmc7IHRpbGxhdGUgTnkgbGluamUvTGluamVza2lmdCBpIHJlc3VsdGF0dmlzbmluZ2VuJzsKJGxhbmdbJ3RpdGxlX3NlbmRfdXNlcmNvcHknXSA9ICdTZW5kIGJydWtpZXJlbiBlbiBrb3BpIGF2IGlubnNlbmRpbmdlbj8nOwokbGFuZ1sndGl0bGVfc2VuZF91c2VyY29weV9sYWJlbCddID0gJ0V0aWtldHQgZm9yIGF2a3J5c3NuaW5nc2Jva3MgKG9tIGJydWtlcmVuIHZlbGdlciknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lZyBlbiBrb3BpIGF2IHNramVtYWV0JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGUnXSA9ICdUaWxsYXQgRW1uZShzdWJqZWN0KSAmYXJpbmc7IGJsaSBvdmVyc3R5cnQ/JzsKJGxhbmdbJ3RpdGxlX2FsbG93X3N1YmplY3Rfb3ZlcnJpZGVfbG9uZyddID0gJ1RpbGxhdCAmIzAzOTtFcG9zdCAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZlbHRlciYjMDM5OyAmYXJpbmc7IG92ZXJzdHlyZSBFbW5lKHN1YmplY3QpIHNwZXNpZmlzZXJ0IGkgbmV0cmVra3N2YWxnZXQuJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ0FsZHJpJzsKJGxhbmdbJ29wdGlvbl91c2VyX2Nob2ljZSddID0gJ0dpIGJydWtlcmVuIGV0IHZhbGcgKGF2a3J5c3NuaW5nc2Jva3MpJzsKJGxhbmdbJ29wdGlvbl9hbHdheXMnXSA9ICdBbGx0aWQnOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlbiBzZXIgaWtrZSB1dCB0aWwgJmFyaW5nOyB2JmFlbGlnO3JlIGluc3RhbGxlcnQvYWt0aXYuPC9zdHJvbmc+JzsKJGxhbmdbJ3dhcm5pbmcnXSA9ICdBRFZBUlNFTCEnOwokbGFuZ1snZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1N0YW5kYXJkIG1hbCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsIG1hbCwgRXRpa2V0dCB0aWwgdmVuc3RyZSc7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdUYWJlbGwgbWFsLCBFdGlrZXR0IG92ZXJmb3InOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnTWFsIGZyYSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdFciBkdSBzaWtrZXIgcCZhcmluZzsgYXQgZHUgdmlsIG92ZXJza3JpdmUgZGluIG1hbCBtZWQgZGVuIHZhbGd0ZSBtYWxlbj8gKFNlbHYgb20gZHUgc3ZhcmVyIE9LLCB2aWwgZHUgZm9ydHNhdHQgbSZhcmluZzt0dGUgbGFncmUgZW5kcmluZ2VuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGZWlsIHVuZGVyIGJlcmVnbmluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0luZ2VuIEhUVFBfUkVGRVJFUiBpbmZvcm1hc2pvbiB0aWxnamVuZ2VsaWcnOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ0d5bGRpZ2hldHNzamVrayBQYXJhbWV0ZXIgZmVpbC4gVmVubmxpZ3N0IHNqZWtrIGF0IGR1IGtvcGllcnRlIGxpbmtlbiBmcmEgZGluIGVwb3N0IGtvcnJla3QhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdHeWxkaWdoZXRzc2pla2sgUmVzcG9ucyBmZWlsLiBWZW5ubGlnc3Qgc2pla2sgYXQgZHUga29waWVydGUgbGlua2VuIGZyYSBkaW4gZXBvc3Qga29ycmVrdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ0d5bGRpZ2hldHNzamVrayBSZXNwb25zIGZlaWwuIEluZ2VuIGVwb3N0LXNqZWtrIGZlbHQgaSBkZXR0ZSBza2plbWEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ1NramVtYSBtYWxlbiBibGUgb3BwZGF0ZXJ0IGF1dG9tYWdpc2sgc29tIGRlbCBhdiBvcHBncmFkZXJpbmcgZnJhIHZlcnNqb24gMC4zIHRpbCB2ZXJzam9uIDAuNC4gRHUgdHJlbmdlciBrYW5za2plICZhcmluZzsgZ2omb3NsYXNoO3JlIG5vZW4gbWFudWVsbGUgZmlrc2VyLiBPbSBkdSBiZW55dHRlciBzdGFuZGFyZHNramVtYWV0LCBrYW4gZHUgZW5rZWx0IGJ5dHRlIGRldCBtZWQgJnF1b3Q7ZGVmYXVsdCZxdW90OyB2ZWQgJmFyaW5nOyBiZW55dHRlIG5lZHRyZWtrbWVueWVuIG92ZW5mb3IuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0xlZ2cgdGlsLCByZWRpZ2VyIG9nIGgmYXJpbmc7bmR0ZXIgaW50ZXJha3RpdmUgc2tqZW1hZXInOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdPbSBkdSBiZW55dHRlciBTdHJlbmcpU3RyaW5nKSBldmFsdWVyaW5nLCBkZW4gZW5lc3RlIG9wZXJhc2pvbiB0aWxnamVuZ2VsaWcgZXIga29ibGluZyAoKyksIG1lbiBvbSBkdSBiZW55dHRlciBOdW1tZXIoTnVtYmVyKSBldmFsdWVyaW5nIHMmYXJpbmc7IGhhciBkdSBkZSBoZWx0IGVua2xlIG1hdGVtYXRpc2tlICgsKywgLSwgKiwgLywpJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnVhcic7CiRsYW5nWydkYXRlX21hcmNoJ10gPSAnTWFycyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwgJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFpJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0p1bmknOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSnVsaSc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCAnOwokbGFuZ1snZGF0ZV9zZXB0ZW1iZXInXSA9ICdTZXB0ZW1iZXIgJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyICc7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnRGVzZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ0Jla2xhZ2VyISBEZXQgc2tqZWRkZSBlbiBmZWlsIHVuZGVyIGJlaGFuZGxpbmcgYXYgZGluIHNramVtYSBpbm5zZW5kaW5nLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdTa2plbWFCeWdnZXIgU2VuZGVmZWlsOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnRmVpbCB2ZWQgb3ZlcmYmb3NsYXNoO3JpbmcgYXYgZmlsYSB0aWwgb3BwbGFzdGluZ3Ntb2R1bGVuOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdLdW5uZSBpa2tlIGZpbm5lIE9wcGxhc3RpbmdzbW9kdWxlbic7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnT3BwbGFzdGluZy9WZWRsZWdnIGZlaWwgcCZhcmluZzsgZmlsICVzICh0ZW1wX25hdm46ICVzLCBhdiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0ZlaWwuIFVtdWxpZyAmYXJpbmc7IGVydmVydmUgbCZhcmluZztzIGZvciBmaWxlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFyZDogaWtrZSBhdmhha2V0JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYXJkOiBhdmhha2V0JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTa2plbWFCeWdnZXIgaW5uc2VuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FcG9zdCBtYWwgZW5uJmFyaW5nOyAmYXJpbmc7aWtrZSBhbmdpdHQhJzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ1NramVtYUJ5Z2dlcjogS2FuIGlra2UgZmlubmUgbiZvc2xhc2g7ZHZlbmRpZyBtb2R1bCBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ0JydWtlciBnb2RramVudCBzZW5kaW5nICVzIGZyYSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdEVycm9yJ10gPSAnSGVuZGVsc2Ugc2F0dCBpIGdhbmcgb20gZGV0IHNramVyIGVuIGZlaWwgbiZhcmluZztyIGV0IFNramVtYUJ5Z2dlciBza2plbWEgYmxpciBpbm5sZXZlcnQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdIZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3QnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG4mYXJpbmc7ciBldCBTa2plbWFfQnlnZ2VyIHNramVtYSBibGlyIHNlbmR0LjwvcD4NCjxoND5QYXJhbWV0ZXJlPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBTa2plbWEgbmF2bmV0IChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gRGVuIGludGVybmUgU2tqZW1hIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+dmFsdWVfJmFtcDtsdDtuYW1lJmFtcDtndDs8L2VtPiAtIFRpbGYmb3NsYXNoO3IgZW4gc3RhbmRhcmQgdmVyZGkgdGlsIGV0IGZlbHQgbWVkIGRldCBvcGdpdHRlIG5hdm5ldC48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkhlbmRlbHNlIHNhdHQgaSBnYW5nIG9tIGRldCBza2plciBlbiBmZWlsIG4mYXJpbmc7ciBldCBTa2plbWFCeWdnZXIgc2tqZW1hIGJsaXIgc2VuZHQ8L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIERlbiBpbnRlcm5lIHNramVtYSBpZCAoaW50KTwvbGk+DQo8bGk+PGVtPmVycm9yPC9lbT4gLSBFbiBsaXN0ZSBtZWQgYWxsZSBramVudGUgZmVpbCAoc3RyaW5nKTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZXZlbnRfaGVscF9PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICc8cD5IZW5kZWxzZSBzYXR0IGkgZ2FuZyBuJmFyaW5nO3IgZXQgU2tqZW1hQnlnZ2VyIHNramVtYSBibHJpIHZpc3Q8L3A+DQo8aDQ+UGFyYW1ldGVyZTwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gU2tqZW1hIG5hdm5ldCAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIERlbiBpbnRlcm5lIHNramVtYSBpZCAoaW50KTwvbGk+DQo8L3VsPiAnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Jlc3BvbnNlX2lkJ10gPSAnUmVzcG9uc2UgSUQuIEJydWt0IGF2IFNramVtYVV0Zm9yc2tlcihGb3JtQnJvd3NlciknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ1N0YW5kYXJkIGZlbHZlcmRpZXIgLSBzZSBtb2R1bGhlbHAgZm9yIGluZm8nOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnRmVsdCBJRCBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnU2tqZW1hbmF2bic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ1NramVtYSBJRCBmb3IgaW50ZXJuZSBvcGVyYXNqb25lcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0dlbmVyZWxsZSBwYXJhbWV0cmUgZm9yIGludGVybmUgb3BlcmFzam9uZXInOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+RHVubm8gd2h5IHlvdSYjMDM5O2Qgd2FudCBzb21lIG9mIHRob3NlLCBidXQgdGhlcmUgeW91IGdvLi4uPC9wPic7CiRsYW5nWydwb3N0X2luc3RhbGwnXSA9ICc8cD5IdXNrICZhcmluZzsgc2V0dGUgJnF1b3Q7TW9kaWZ5IEZvcm1zJnF1b3Q7IHJldHRpZ2hldGVyIHRpbCBicnVrZXJlIHNvbSBza2FsIGFkbWluaXN0cmVyZSB0aWxiYWtlbWVsZGluZ3Mtc2tqZW1hZXIuIE9nIG9tIGR1IHZpbCBzZW5kZSBza2plbWEgcmVzdWx0YXRlciB2aWEgZXBvc3QsIGh1c2sgJmFyaW5nOyBvcHBkYXRlciBpbm5zdGlsbGluZ2VuZSB0aWxzdHJla2tlbGlnLjwvcD4NCg0KPHA+ViZhZWxpZztyIG9wcG1lcmtzb20gcCZhcmluZzsgYXQgdGlsYmFrZW1lbGRpbmdzIHNramVtYWV0IGlra2Ugc2thbCB2JmFlbGlnO3JlIGFrdGl2dCAoZi5la3MuIHRpbGdqZW5nZWxpZyBmb3IgcHVibGlrdW0pIG4mYXJpbmc7ciBkdSBmb3J0c2F0dCByZWRpZ2VyZXIgc2tqZW1hZXQuIER1IGImb3NsYXNoO3IgbGFnZSBza2plbWFldCwgb2cgcGxhc3NlcmUgdGFnZ2VuIGkgZW4gYWt0aXYgaW5uaG9sZHNpZGUgYmFyZSBuJmFyaW5nO3IgZHUgZXIgZmVyZGlnIG1lZCAmYXJpbmc7IHJlZGlnZXJlLiBFbGxlcnMsIGthbiBmZWlsYWt0aWdlIHJlc3VsdGF0ZXIgYmxpIHJldHVybmVydC48L3A+DQoNCjxwPk9icyEgRGVubmUgdmVyc2pvbmVuIHN0Jm9zbGFzaDt0dGVyIGlra2UgcGFyYWxsZWxsIHJlZGlnZXJpbmcgYXYgc2tqZW1hZXIuIFYmYWVsaWc7ciBzaWtrZXIgcCZhcmluZzsgYXQga3VuICZlYWN1dGU7biBhZG1pbiAgcmVkaWdlcmVyIGV0IGdpdHQgc2tqZW1hIHAmYXJpbmc7IHNhbW1lIHRpZC48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4NCjxwPlRoZSBGb3JtIEJ1aWxkZXIgTW9kdWxlIGFsbG93cyB5b3UgdG8gY3JlYXRlIGZlZWRiYWNrIGZvcm1zIChpbiBmYWN0LCBpdCYjMDM5O3MgYSByZXBsYWNlbWVudCBvZiB0aGUgb3JpZ2luYWwgRmVlZGJhY2sgRm9ybSBtb2R1bGUpLCB3aXRoIHRoZSBhZGRlZCBwb3dlciBvZiBkYXRhYmFzZSBzdG9yYWdlLiBXaXRoIGl0cyBjb21wYW5pb24gbW9kdWxlIEZvcm0gQnJvd3NlciwgeW91IGNhbiB1c2UgaXQgdG8gY3JlYXRlIHNpbXBsZSBkYXRhYmFzZSBhcHBsaWNhdGlvbnMuPC9wPg0KPHA+VGhlIGZvcm1zIGNyZWF0ZWQgdXNpbmcgdGhlIEZvcm0gQnVpbGRlciBtYXkgYmUgaW5zZXJ0ZWQNCmludG8gdGVtcGxhdGVzIGFuZC9vciBjb250ZW50IHBhZ2VzLiBGb3JtcyBtYXkgY29udGFpbiBtYW55IGtpbmRzIG9mIGlucHV0cywgYW5kIG1heSBoYXZlDQp2YWxpZGF0aW9uIGFwcGxpZWQgdG8gdGhlc2UgaW5wdXRzLiBUaGUgcmVzdWx0cyBvZiB0aGVzZSBmb3JtcyBtYXkgYmUgaGFuZGxlZCBpbiBhIHZhcmlldHkgb2Ygd2F5cy48L3A+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgaXQ/PC9oMz4NCjxQPkluc3RhbGwgaXQsIGFuZCBwb2tlIGFyb3VuZCB0aGUgbWVudXMuIFBsYXkgd2l0aCBpdC4gVHJ5IGNyZWF0aW5nIGZvcm1zLCBhbmQgYWRkaW5nIHRoZW0gdG8geW91ciBjb250ZW50Lg0KSWYgeW91IGdldCBzdHVjaywgY2hhdCB3aXRoIG1lIG9uIHRoZSAjY21zIElSQyBjaGFubmVsLCBwb3N0IHRvIHRoZSBmb3J1bSwgc2VuZCBtZSBlbWFpbCwgb3IsIGlmIHlvdSYjMDM5O3JlDQpyZWFsbHkgZGVzcGVyYXRlLCB0cnkgcmVhZGluZyB0aGUgaW5zdHJ1Y3Rpb25zIG9uIHRoZSByZXN0IG9mIHRoaXMgcGFnZS48L1A+DQoNCjxoMz5Ib3cgRG8gSSBDcmVhdGUgYSBGb3JtPC9oMz4NCjxwPkluIHRoZSBDTVMgQWRtaW4gTWVudSwgeW91IHNob3VsZCBnZXQgYSBuZXcgbWVudSBpdGVtIGNhbGxlZCBGb3JtQnVpbGRlci4gQ2xpY2sgb24gdGhpcy4gT24gdGhlIHBhZ2UNCnRoYXQgZ2V0cyBzaG93biwgdGhlcmUgYXJlIG9wdGlvbnMgKGF0IHRoZSBib3R0b20gb2YgdGhlIGxpc3Qgb2YgRm9ybXMpIHRvIEFkZCBhIE5ldyBGb3JtIG9yIE1vZGlmeQ0KQ29uZmlndXJhdGlvbi48L3A+DQoNCjxoMz5BZGRpbmcgYSBGb3JtIHRvIGEgUGFnZTwvaDM+DQo8cD5JbiB0aGUgbWFpbiBGb3JtQnVpbGRlciBhZG1pbiBwYWdlLCB5b3UgY2FuIHNlZSBhbiBleGFtcGxlIG9mIHRoZSB0YWcgdXNlZCB0byBkaXNwbGF5IGVhY2ggZm9ybS4gSXQgbG9va3MNCnNvbWV0aGluZyBsaWtlIHtjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtGb3JtQnVpbGRlciYjMDM5OyBmb3JtPSYjMDM5O3NhbXBsZV9mb3JtJiMwMzk7fTwvcD4NCjxwPkJ5IGNvcHlpbmcgdGhpcyB0YWcgaW50byB0aGUgY29udGVudCBvZiBhIHBhZ2UsIG9yIGludG8gYSB0ZW1wbGF0ZSwgd2lsbCBjYXVzZSB0aGF0IGZvcm0gdG8gYmUgZGlzcGxheWVkLg0KSW4gdGhlb3J5LCB5b3UgY2FuIGhhdmUgbXVsdGlwbGUgZm9ybXMgb24gYSBwYWdlIGlmIHlvdSByZWFsbHkgd2FudCB0by4gQmUgY2FyZWZ1bCB3aGVuIHBhc3RpbmcgdGhlIHRhZw0KaW50byBhIHBhZ2UmIzAzOTtzIGNvbnRlbnQgaWYgeW91IHVzZSBhIFdZU0lXWUcgZWRpdG9yIHN1Y2ggYXMgVGlueU1DRSwgRkNLRWRpdCwgb3IgSFRNTEFyZWEuIFRoZXNlIGVkaXRvcnMgbWF5IHN0ZWFsdGhpbHkNCmNoYW5nZSB0aGUgcXVvdGUgbWFya3MgKCZxdW90OykgaW50byBIVE1MIGVudGl0aWVzICgmYW1wO2FtcDtxdW90OyksIGFuZCB0aGUgZm9ybXMgd2lsbCBub3Qgc2hvdyB1cC4gVHJ5IHVzaW5nDQpzaW5nbGUgcXVvdGVzICgmIzAzOTspIG9yIGVkaXRpbmcgdGhlIEhUTUwgZGlyZWN0bHkuPC9wPg0KDQo8aDM+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+UHVsbGRvd24uIFRoaXMgaXMgYSBzdGFuZGFyZCBwdWxsZG93biBtZW51LiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIHJhZGlvIGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucy48L2xpPg0KPGxpPk11bHRpc2VsZWN0LiBUaGlzIGlzIGEgbXVsdGktc2VsZWN0IGZpZWxkLiBJdCYjMDM5O3MgcmVhbGx5IGNvbmNlcHR1YWxseSB0aGUgc2FtZSB0aGluZyBhcyBhIGNoZWNrYm94IGJ1dHRvbg0KZ3JvdXAsIGJ1dCBpcyBiZXR0ZXIgd2hlbiB0aGVyZSBhcmUgYSBsYXJnZSBudW1iZXIgb2Ygb3B0aW9ucywgYXMgeW91IGNhbiBsaW1pdCB0aGUgbnVtYmVyIGRpc3BsYXllZCBvbiB0aGUgc2NyZWVuIGF0IGFueSBvbmUgdGltZS48L2xpPg0KPGxpPlN0YXRlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgU3RhdGVzIG9mIHRoZSBVLlMuPC9saT4NCjxsaT5DYW5hZGlhbiBQcm92aW5jZS4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENhbmFkaWFuIFByb3ZpbmNlcyAoQ29udHJpYnV0ZWQgYnkgTm9lbCBNY0dyYW4uIFRoYW5rcyEpPC9saT4NCjxsaT5Db3VudHJpZXMuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBDb3VudHJpZXMgb2YgdGhlIHdvcmxkIChhcyBvZiBKdWx5IDIwMDUpLjwvbGk+DQo8bGk+RGF0ZSBQaWNrZXIuIFRoaXMgaXMgYSB0cmlwbGUgcHVsbGRvd24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VsZWN0IGEgZGF0ZS48L2xpPg0KPGxpPlRpbWUgUGlja2VyLiBUaGlzIGlzIGEgc2V0IG9mIHB1bGxkb3ducyBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSB0aW1lICh1c2luZyAxMiBvciAyNCBob3VyIGNsb2NrKS48L2xpPg0KPGxpPkZpbGUgVXBsb2FkLiBUaGlzIGlzIGEgZmlsZSB1cGxvYWQgZmllbGQuPC9saT4NCjxsaT5MaW5rIChVc2VyIEVudGVyZWQpLiBUaGlzIGNyZWF0ZXMgYSBkb3VibGUgaW5wdXQgZmllbGQgZm9yIGdldHRpbmcgYSBsaW5rIFVSTCBhbmQgbGluayB0aXRsZS48L2xpPg0KPGxpPlRleHQgRmllbGQgKE11bHRpcGxlKS4gVGhpcyBmaWVsZCBjcmVhdGVzIG9uZSBvciBtb3JlIHRleHQgaW5wdXRzIHdpdGggYWRkIGFuZCBkZWxldGUgYnV0dG9ucywgZWZmZWN0aXZlbHkgZ2l2aW5nIHRoZSBlbmQgdXNlciBhIHdheSBvZiBjcmVhdGluZyB2YXJpYWJsZS1sZW5ndGggbGlzdHMuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkVtYWlsLXNwZWNpZmljIElucHV0cw0KPHVsPjxsaT5FbWFpbCBGcm9tIEFkZHJlc3MgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgZW1haWwgYWRkcmVzcy4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGFkZHJlc3MgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBGcm9tIE5hbWUgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgdGhlaXIgbmFtZS4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIG5hbWUgaW4gdGhlICZxdW90O0Zyb20mcXVvdDsgZmllbGQuPC9saT4NCjxsaT5FbWFpbCBTdWJqZWN0IEZpZWxkLiBUaGlzIGFsbG93cyB1c2VycyB0byBwcm92aWRlIGEgc3ViamVjdCBmb3IgdGhlaXIgZW1haWwuIFRoZSBlbWFpbCBnZW5lcmF0ZWQgd2hlbiB0aGUgZm9ybSBnZXRzIGhhbmRsZWQgd2lsbCB1c2UgdGhpcyBpbiB0aGUgJnF1b3Q7U3ViamVjdCZxdW90OyBmaWVsZC4gVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIGNlcnRhaW4gZGlzcG9zaXRpb25zIHRoYXQgd2FudCB0byBjb250cm9sIHRoZSBFbWFpbCBTdWJqZWN0LCBzbyB1c2UgaXQgd2l0aCBjYXV0aW9uLjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5EaXNwbGF5IENvbnRyb2wgRmllbGRzPHVsPg0KPGxpPi1QYWdlIEJyZWFrLiBUaGlzIGFsbG93cyB5b3UgdG8gc3BsaXQgeW91ciBmZWVkYmFjayBmb3JtIGludG8gbXVsdGlwbGUgcGFnZXMuIEVhY2ggcGFnZSBpcw0KaW5kZXBlbmRlbnRseSB2YWxpZGF0ZWQuIFRoaXMgaXMgZ29vZCBmb3IgYXBwbGljYXRpb25zIGxpa2Ugb25saW5lIHN1cnZleXMuPC9saT4NCjxsaT4tRmllbGRzZXQgU3RhcnQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgRW5kLCB0aGlzIGFsbG93cyB5b3UgdG8gZ3JvdXAgdmFyaW91cyBmaWVsZHMgd2l0aGluIHlvdXIgZm9ybS4gVXNlIHRoaXMgdG8gc3RhcnQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1GaWVsZHNldCBFbmQuIENvbWJpbmVkIHdpdGggRmllbGRzZXQgU3RhcnQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBlbmQgYSBnaXZlbiBncm91cGluZy48L2xpPg0KPGxpPi1IaWRkZW4gRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGhpZGRlbiBmaWVsZCBpbiB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIFRleHQuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgdGV4dCBvciBhIGxhYmVsIGluIHRoZSBtaWRkbGUgb2YgeW91ciBmb3JtLiBUaGlzIGlzIHVzZWZ1bCBmb3IgZ2l2aW5nIGFkZGl0aW9uYWwgaGVscCB0ZXh0LCBlc3BlY2lhbGx5IGlmIHlvdSYjMDM5O3JlIG5vdCB1c2luZyBhIEN1c3RvbSBUZW1wbGF0ZSB0byByZW5kZXIgeW91ciBmb3JtLjwvbGk+DQo8bGk+LVN0YXRpYyBMaW5rLiBUaGlzIGFsbG93cyB5b3UgdG8gcHV0IGEgbGluayB0byBhIGdpdmVuIHBhZ2UgaW50byB5b3VyIGZvcm0uIE9wdGlvbmFsbHksIHlvdSBjYW4gaGF2ZSBpdCBhdXRvcG9wdWxhdGUgd2l0aCB0aGUgcGFnZSB3aGVyZSB0aGUgZm9ybSBpcyBlbWJlZGRlZCAodXNlZnVsIGlmIHlvdSYjMDM5O3JlIHNlbmRpbmcgcmVzdWx0cyB2aWEgZW1haWwpLjwvbGk+DQo8bGk+LUNvbXB1dGVkIEZpZWxkLiBUaGlzIGFsbG93cyB5b3UgdG8gZW1iZWQgYSBjb21wdXRlZCBmaWVsZCBpbiB5b3VyIGZvcm0uIEl0IGlzIG5vdCB2aXNpYmxlIHRvIHRoZSB1c2VyIHVudGlsIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gSXQgYWxsb3dzIHlvdSB0byBkbyBzaW1wbGUgYXJpdGhtZXRpYyBvciBzdHJpbmcgY29uY2F0ZW5hdGlvbi48L2xpPg0KPGxpPi1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKS4gVGhpcyBpcyBhbiBpbnRlZ2VyIHRoYXQgaW5jcmVhc2VzIGV2ZXJ5IHRpbWUgc29tZW9uZSBoaXRzIHlvdXIgZm9ybS4gWW91ciByZXN1bHRzIG1heSBub3QgYmUgc2VxdWVudGlhbCwgYnV0IHRoZXkgd2lsbCBpbmNyZWFzZSBtb25vdG9uaWNhbGx5LjwvbGk+DQo8L3VsPjwvbGk+DQoNCjxsaT5Gb3JtIEhhbmRsaW5nIElucHV0cyAoRGlzcG9zaXRpb25zKQ0KPHVsPjxsaT4qQ2FsbCBhIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzLiBUaGlzIHN1Ym1pdHMgYWxsIHRoZSBmb3JtIHJlc3VsdHMgdG8gdGhlIFVzZXItRGVmaW5lZCBUYWcgeW91IHNwZWNpZnkuIFRoZSBVRFQgY2FuIGhhbmRsZSB0aGUgcmVzdWx0cyBob3dldmVyIGl0IHdhbnRzLiBWYWx1ZXMgYXJlIHBhc3NlZCBhcyAkcGFyYW1bJiMwMzk7ZmllbGRfbmFtZSYjMDM5O10uPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBpcyB1c2VmdWwgZm9yIHdlYiBzaXRlcyB3aGVyZSBjb21tZW50cyBnZXQgcm91dGVkIGJhc2VkIG9uIHRoZWlyIHN1YmplY3QgbWF0dGVyLCBlLmcuLCBidWdzIGdldCBzZW50IHRvIG9uZSBwZXJzb24sIG1hcmtldGluZyBxdWVzdGlvbnMgdG8gYW5vdGhlciBwZXJzb24sIHNhbGVzIHJlcXVlc3RzIHRvIHNvbWVvbmUgZWxzZSwgZXRjLiBUaGUgcHVsbGRvd24gaXMgcG9wdWxhdGVkIHdpdGggdGhlIHN1YmplY3RzLCBhbmQgZWFjaCBnZXRzIGRpcmVjdGVkIHRvIGEgc3BlY2lmaWMgZW1haWwgYWRkcmVzcy4gWW91IHNldCB1cCB0aGVzZSBtYXBwaW5ncyBpbiB0aGUgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgYSBmaWVsZCBvZiB0aGlzIHR5cGUuIElmIHlvdSB1c2Ugb25lIG9mIHRoZXNlICZxdW90O0RpcmVjdG9yJnF1b3Q7IHB1bGxkb3ducywgdGhlIHVzZXIgbXVzdCBtYWtlIGEgc2VsZWN0aW9uIGluIG9yZGVyIHRvIHN1Ym1pdCB0aGUNCmZvcm0uIFRoaXMgaW5wdXQgaXMgcGFydCBvZiB0aGUgZm9ybSB0aGUgdXNlciBzZWVzLCBhbHRob3VnaCB0aGUgZW1haWwgYWRkcmVzc2VzIGFyZSBub3QgbWFkZSB2aXNpYmxlIG5vcg0KYXJlIHRoZXkgZW1iZWRkZWQgaW4gdGhlIEhUTUwuPC9saT4NCjxsaT4qRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcykuIFRoaXMgc2ltcGx5IHNlbmRzIHRoZSBmb3JtIHJlc3VsdHMgdG8gb25lIG9yIG1vcmUgZW1haWwgYWRkcmVzc2VzIHRoYXQgeW91IGVudGVyIHdoZW4geW91IGNyZWF0ZSBvciBlZGl0IHRoaXMgdHlwZSBvZiBmaWVsZC4gVGhpcyBmaWVsZCBhbmQgaXRzIG5hbWUgYXJlIG5vdCB2aXNpYmxlIGluIHRoZQ0KZm9ybSB0aGF0IHRoZSB1c2VyIHNlZXMuIFRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEFkZHJlc3MuIFRoaXMgcHV0cyBhbiBpbnB1dCBmaWVsZCBpbiB0aGUgZm9ybSBmb3IgdGhlIHVzZXIgdG8gcG9wdWxhdGUgd2l0aCBhbiBlbWFpbCBhZGRyZXNzLiBUaGUgZm9ybSByZXN1bHRzIGdldCBzZW50IHRvIHRoYXQgYWRkcmVzcy4gQmV3YXJlIG9mIFNwYW0gYWJ1c2UhIEFjdGl2ZSB0aGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcyBpbiB0aGUgRm9ybUJ1aWxkZXIgY29uZmlndXJhdGlvbiBzY3JlZW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBpbiBEYXRhYmFzZS4gVGhpcyB3aWxsIHN0b3JlIHRoZSBmb3JtIGNvbnRlbnRzIGluIGFuIGludGVybmFsIGRhdGFiYXNlLiBZb3Ugd2lsbCBhbHdheXMgdXNlIHRoaXMgZGlzcG9zaXRpb24gaWYgeW91IHVzZSB0aGUgZm9ybSB3aXRoIEZvcm1Ccm93c2VyLjwvbGk+DQo8bGk+KlJlZGlyZWN0IHRvIFBhZ2UgQmFzZWQgb24gUHVsbGRvd24uIFRoaXMgYWxsb3dzIHlvdSB0byByZWRpcmVjdCB0aGUgZm9ybSB0byBhIGRpZmZlcmVudCBzaXRlIHBhZ2UgZGVwZW5kaW5nIG9uIGl0cyB2YWx1ZS4gSWYgeW91IGhhdmUgbXVsdGlwbGUgZGlzcG9zaXRpb25zLCBtYWtlIHN1cmUgdGhpcyBpcyB1c2VkIGxhc3QuPC9saT4NCjxsaT4qVmFsaWRhdGUgdmlhIEVtYWlsLiBUaGlzIGlzIGEgc3RyYW5nZSBhbmQgcG93ZXJmdWwgZmllbGQuIEl0IHByb3ZpZGVzIHRoZSB1c2VyIGEgbWFuZGF0b3J5IGlucHV0IGZvciB0aGVpciBlbWFpbCBhZGRyZXNzLiBPbmNlIHRoZXkgc3VibWl0IHRoZWlyIGZvcm0sIHRoZSBzdGFuZGFyZCBmb3JtIGRpc3Bvc2l0aW9ucyBhcmUgbm90IHBlcmZvcm1lZCAtLSByYXRoZXIsIGl0IHNlbmQgdGhlIHVzZXIgYW4gZW1haWwgd2l0aCBhIHNwZWNpYWwgY29kZWQgbGluay4gSWYgdGhleSBjbGljayBvbiB0aGUgbGluaywgdGhlIG90aGVyIGZvcm0gaXMgY29uc2lkZXJlZCAmcXVvdDthcHByb3ZlZCwmcXVvdDsgYW5kIHRoZSBvdGhlciBkaXNwb3NpdGlvbnMgYXJlIGFsbCBwZXJmb3JtZWQuPC9saT4NCjxsaT4qV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUuIFRoaXMgdGFrZXMgdGhlIGZvcm0gcmVzdWx0cyBhbmQgd3JpdGVzIHRoZW0gaW50byBhIHRleHQgZmlsZS4gWW91IG1heQ0Kc2VsZWN0IHRoZSBuYW1lIG9mIHRoZSBmaWxlLCBhbmQgc2V0IGl0cyBmb3JtYXQuIFRoZXNlIGZpbGVzIGFyZSB3cml0dGVuIHRvIHRoZSAmcXVvdDtvdXRwdXQmcXVvdDsgZGlyZWN0b3J5IHVuZGVyIHRoZQ0KbW9kdWxlJiMwMzk7cyBpbnN0YWxsYXRpb24gZGlyZWN0b3J5LCBhc3N1bWluZyB0aGUgd2ViIHNlcnZlciBoYXMgcGVybWlzc2lvbiB0byB3cml0ZSB0aGVyZS48L2xpPg0KPGxpPipTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bi4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlIG9mIGEgcHVsbC1kb3duIGRldGVybWluZXMgd2hpY2ggZmlsZSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMuIExpa2UgdGhlIEZsYXQgRmlsZSBkaXNwb3NpdGlvbiwgZXhjZXB0IHRoZSB2YWx1ZShzKSBvZiBjaGVja2JveGVzICBkZXRlcm1pbmVzIHdoaWNoIGZpbGUocykgcmVzdWx0cyBnZXQgd3JpdHRlbiB0by48L2xpPg0KPGxpPipFbWFpbCB0byBDTVMgQWRtaW4gVXNlci4gUHJvdmlkZXMgYSBwdWxsLWRvd24gb2YgQ01TIEFkbWluIHVzZXJzLCBhbmQgZGlyZWN0cyB0aGUgcmVzdWx0cyBhcyBhbiBlbWFpbCB0byB0aGUgc2VsZWN0ZWQgYWRtaW4uPC9saT4NCjxsaT4qU3RvcmUgUmVzdWx0cyBmb3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMy4gU3RvcmVzIHRoZSBmb3JtIHJlc3VsdHMgaW4gYW4gWE1MIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSBkYXRhYmFzZSByZWNvcmQuIFRoaXMgd2lsbCBiZWNvbWUgdGhlIGludGVyZmFjZSB0byBGb3JtIEJyb3dzZXIgaW4gdGhlIG5leHQgcmVsZWFzZS48L2xpPg0KDQo8L3VsPjwvbGk+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+aW5wdXRfaWQ8L3RkPjx0ZD50aGUgSUQgb2YgdGhlIGZpZWxkJiMwMzk7cyBpbnB1dCAodXNlZnVsIGZvciBsYWJlbCBmb3I9JnF1b3Q7Zm9vJnF1b3Q7KTwvdGQ+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+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8bGk+RG9uYXRpb25zIGFyZSBnb29kIG1vdGl2YXRvcnMsIHRvby4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGRvbGxhciBpcyB3ZWFrLCBhbmQgaWYgeW91IGFyZSBub3QgaW4gdGhlIFVTLCB5b3VyIGRvbmF0aW9uIGdldHMgbWFnbmlmaWVkLjwvbGk+DQo8L3VsPg0KPHA+S2VlcCBpbiBtaW5kIHRoYXQgdGhlIGF1dGhvciBoYXMgcHV0IGh1bmRyZWRzIGFuZCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciBzZW5kIHlvdXIgcXVlc3Rpb25zIHdyaXR0ZW4gb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2hlY2tzIG9yIGNhc2gpLiBBbSBJIHNvdW5kaW5nIGxpa2UgYSBicm9rZW4gcmVjb3JkPyBEbyB5b3Uga2lkcyB0aGVzZSBkYXlzIGV2ZW4ga25vdyB3aGF0IGEgYnJva2VuIHJlY29yZCBpcz8gSSB3b3VsZCBzYXkgc2tpcHBpbmcgQ0QsIGJ1dCB5b3UgbWlnaHQgbm90IGtub3cgd2hhdCB0aGF0IGlzIGVpdGhlci4gTGlrZSBhIHNhbXBsZSB0aGF0IGdvdCBzdHVjayBvbiBsb29wPyBEYW1uLCBJIGFtIGdldHRpbmcgb2xkLiBTbyBpcyB0aGlzIHBhcmFncmFwaC4gVGltZSB0byBtb3ZlIG9uLCBoZXJlLjwvcD4NCjxwPkFzIHBlciB0aGUgR1BMLCB0aGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkIGFzLWlzLiBQbGVhc2UgcmVhZCB0aGUgdGV4dA0Kb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmFtcDtjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LiBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcNCjx1bD4NCjxsaT5WZXJzaW9uIDAuNS41LiAxIE9jdCAwOC4gQnVnIGZpeGVzLiBBZGRlZCAuPC9saT4NCjxsaT5WZXJzaW9uIDAuNS40LiAyOSBBdWcgMDguIFNjcmFwcGluZyBwbGFucyBmb3IgMC42LiBCdWcgZml4ZXMuIFRlZCYjMDM5O3MgbmV3ICZxdW90O0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBBZ2FpbiBGaWVsZCZxdW90Oy4gQWRkZWQgZGF0YWJhc2UgaW5kaWNlcy48L2xpPg0KPGxpPlZlcnNpb24gMC41LjMuIDI2IE1heSAwOC4gQnVnZml4ZXMgdG8gcHJldmlvdXMgc2V0IG9mIGJ1Z2ZpeGVzLiBOb3cgcmVhZHkgZm9yIG1ham9yIHVwZ3JhZGVzIGZvciAwLjYuPC9saT4NCjxsaT5WZXJzaW9uIDAuNS4yLiAyNSBNYXkgMDguIEJ1Z2ZpeGVzLiBSZWxlYXNlIGluIHByZXBhcmF0aW9uIGZvciBzdWJzdGFudGlhbCByZXdvcmtpbmcgZm9yIDAuNjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMS4gMzAgQXByaWwgMDguIEJ1Z2ZpeGVzLCByZXdyb3RlIHNvbWUgb2YgdGhlIEZpbGUgVXBsb2FkIGNvZGUgdG8gcHJldmVudCB3aGl0ZSBzY3JlZW4gb2YgYW5ub3lhbmNlLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuIDE5IEFwcmlsIDA4LiBCdWdmaXhlcywgc3VwcG9ydCBmb3IgRm9ybUJyb3dzZXIgZml4ZXMgYW5kIGZlYXR1cmVzLCBkaXNwb3NpdGlvbiB0eXBlIGZvciB1cGNvbWluZyBGb3JtQnJvd3NlciB2ZXJzaW9uLjwvbGk+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+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wO2FtcDsgdHN3JiMwMzk7cyBidWcgZml4ZXMgZm9yIGZpZWxkIHJlLW9yZGVyaW5nIGFuZCBjdXN0b20gdGVtcGxhdGVzLiBBZGRpdGlvbmFsIGJ1ZyBmaXhlcyBmb3IgZmllbGQgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjEgLSA4IEp1bHkgMjAwNi4gSW5pdGlhbCBSZWxlYXNlPC9saT4NCjwvdWw+JzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNDUxNjI1NDcyNzA3Nzc2MjAwMC4xMjE0ODI5ODk1LjEyMjI5NTg5MTUuMTIyMjk2MjUyMS4zMyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTY4MTE5NzAuMTAuMy51dG1jc3I9d2lraS5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY249KHJlZmVycmFsKXx1dG1jbWQ9cmVmZXJyYWx8dXRtY2N0PS9pbmRleC5waHAvbWFpbl9wYWdlJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlciAnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdWZWxkdHlwZSBuaWV0IGluZ2VzdGVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdTZWxlY3RlZXIgZWVuIChvZiBtZWVyKSBjYXRhbG9nZXIgaXRlbXMnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJ1ZlbGQgZWluZGUnOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnVmVsZCBzdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1Rla3N0aW52b2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1Rla3N0aW52b2VyIChtZWVyZGVyZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnVGVrc3R2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hGaWVsZCddID0gJ1NlbGVjdGlldmFrJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnU2VsZWN0aWV2YWstZ3JvZXAnOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnS2V1emVsaWpzdCc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNZWVya2V1emUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnVS5TLiBTdGF0ZS1raWV6ZXInOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRlc2UgUHJvdmluY2llLWtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0xhbmRlbmtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVta2llemVyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlqZGtpZXplcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1NlbGVjdGllcm9uZGplcy1ncm9lcCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRS1tYWlsIHJlc3VsdGF0ZW4gZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypCZXdhYXIgcmVzdWx0YXRlbiBpbiBlZW4gYmVzdGFuZCBnZWJhc2VlcmQgb3Aga2V1emVsaWpzdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqQmV3YWFyIHJlc3VsdGF0ZW4gaW4gYmVzdGFuZGVuIGdlYmFzZWVyZCBvcCBtZWVyLWtldXplbGlqc3Rlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgbmFhciBwYWdpbmEgZ2ViYXNlZXJkIG9wIGtldXplbGlqc3QnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsJ10gPSAnKkUtbWFpbCByZXN1bHRhdGVuIG5hYXIgaW5nZXN0ZWxkZSBhZHJlcyhzZW4pJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypWYWxpZGVlci12aWEtZW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZSddID0gJypTY2hyaWpmIHJlc3VsdGF0ZW4gbmFhciBiZXN0YW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypSZXN1bHRhdGVuIG9wc2xhYW4gaW4gZGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlNsYSByZXN1bHRhdGVuIG9wIHZvb3IgRm9ybUJyb3dzZXIgTW9kdWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKlN0YXJ0IGVlbiBnZWJydWlrZXJnZWRlZmluaWVlcmRlIHRhZyBtZXQgZGUgZm9ybXVsaWVycmVzdWx0YXRlbic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1tYWlsIG5hYXIgaGV0IG9wZ2VnZXZlbiBlLW1haWxhZHJlcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRW1haWwgbmFhciBDTVMgQWRtaW4gR2VicnVpa2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnaW5hc2NoZWlkaW5nJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnQmVzdGFuZCBVcGxvYWQnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxBZGRyZXNzRmllbGQnXSA9ICcmcXVvdDtWYW4gQWRyZXMmcXVvdDsgZS1tYWlsdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NBZ2FpbkZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7VmFuIEFkcmVzJnF1b3Q7IEhlcmhhbGluZ3N2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnJnF1b3Q7VmFuIE5hYW0mcXVvdDsgZS1tYWlsdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJyZxdW90O09uZGVyd2VycCZxdW90OyBlLW1haWx2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGljVGV4dEZpZWxkJ10gPSAnLVN0YXRpc2NoZSBUZWtzdCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aXNjaGUgbGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJy1MaW5rIChpbmdldm9lcmQgZG9vciBnZWJydWlrZXIpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICdWZXJib3JnZW4gdmVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0NvbXB1dGVkRmllbGQnXSA9ICdCZXJla2VuZCB2ZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaWVrIEdldGFsIChTZXJpZW51bW1lciknOwokbGFuZ1sndmFsaWRhdGlvbl9ub25lJ10gPSAnR2VlbiB2YWxpZGF0aWUnOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpZWsnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnR2VoZWVsIGdldGFsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0UtbWFpbGFkcmVzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1RlbGVmb29ubnVtbWVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTW9ldCBhYW5nZXZpbmt0IHdvcmRlbic7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTW9ldCB2b2xkb2VuIGFhbiBlZW4gcmVndWxpZXJlIGV4cHJlc3NpZSc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdWb2xkb2V0IG5pZXQgYWFuIGRlIHJlZ3VsaWVyZSBleHByZXNzaWUnOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0VlbiB3YWFyZGUgb250YnJlZWt0IHZvb3IgZGl0IHZlcnBsaWNodGUgdmVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiB2b29yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX251bWJlciddID0gJ1ZvZXIgZWVuIG51bW1lciBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnVm9lciBlZW4gZ2VsZGlnZSB3YWFyZGUgaW4gYmlqICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnVm9lciBlZW4gZ2V0YWwgaW4gYmlqICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9lbWFpbCddID0gJ1ZvZXIgZWVuIGdlbGRpZyBlLW1haWxhZHJlcyBpbiBiaWogJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snZW1haWxfYWRkcmVzc19kb2VzX25vdF9tYXRjaCddID0gJ0UtbWFpbGFkcmVzIGtvbXQgbmlldCBvdmVyZWVuIG1ldCBkZSB3YWFyZGUgJXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdWb2VyIGVlbiBnZWxkaWcgdGVsZWZvb25udW1tZXIgaXMgdm9vciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBpcyBnZWVuIGdlbGRpZyBlLW1haWxhZHJlcy4nOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1ZvZXIgZWVuIHdhYXJkZSBpbiBkaWUgbmlldCBsYW5nZXIgaXMgZGFuICVzIHRla2Vucyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ1Rla2VuIG9tIHRlIGdlYnJ1aWtlbiBhbHMgc2NoZWlkaW5nIGJpaiByZXN1bHRhdGVuIGRpZSBtZWVyIGRhbiAmZWFjdXRlOyZlYWN1dGU7biB3YWFyZGUgdGVydWdnZXZlbic7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnSGV0ICZxdW90OyVzJnF1b3Q7LXJlY2h0IGlzIHZlcmVpc3Qgdm9vciBkaWUgYmV3ZXJraW5nLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBVIGhlZWZ0IG9udm9sZG9lbmRlIHJlY2h0ZW4gb20gZGV6ZSBzZWN0aWUgdGUgYmVuYWRlcmVuLic7CiRsYW5nWydmaWVsZF9vcmRlcl91cGRhdGVkJ10gPSAnVmVsZHZvbGdvcmRlIGJpamdld2Vya3QuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm11bGllciB2ZXJ3aWpkZXJkLic7CiRsYW5nWydmaWVsZF9kZWxldGVkJ10gPSAnVmVsZCB2ZXJ3aWpkZXJkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF0aWUgYmlqZ2V3ZXJrdC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICcmcXVvdDslcyZxdW90OyBtb2V0IGdlc2VsZWN0ZWVyZCB6aWpuIG9tIGRvb3IgdGUga3VubmVuIGdhYW4uJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdFciBtb2V0IHRlbm1pbnN0ZSAmZWFjdXRlOyZlYWN1dGU7biBiZXN0ZW1taW5nc2FkcmVzIHdvcmRlbiBvcGdlZ2V2ZW4uJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0hldCBmb3JtdWxpZXIgJXMgdmVyd2lqZGVyZW4/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdIZXQgdmVsZCAlcyB2ZXJ3aWpkZXJlbj8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnR2VhdmFuY2VlcmRlIG9wdGllcyB6aWpuIG5pZXQgYmVzY2hpa2JhYXIgdm9vcmRhdCBoZXQgdmVsZHR5cGUgaW5nZXN0ZWxkIGlzLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0RlIHZlbGRuYWFtICZxdW90OyVzJnF1b3Q7IGlzIGFsIGluIGdlYnJ1aWsuIEdlYnJ1aWsgdW5pZWtlIHZlbGRuYW1lbiBvZiBzY2hha2VsIHVuaWVrZSB2ZWxkbmFtZW4gdWl0IGluIGRlIEZvcm0gQnVpbGRlci1jb25maWd1cmF0aWUuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdWZWxkZW4gbW9ldGVuIGVlbiBuYWFtIGhlYmJlbiwgYmVoYWx2ZSBhbHMgZGV6ZSB1aXRnZXNjaGFrZWxkIHppam4gaW4gZGUgRm9ybSBCdWlsZGVyLWNvbmZpZ3VyYXRpZS4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbmllbSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTGVuZ3RlOiAlcyc7CiRsYW5nWydib3hlcyddID0gJyVzIHZha2tlbic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aWVzJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJXMgdGVrZW5zJzsKJGxhbmdbJ29yZGVyJ10gPSAnVm9sZ29yZGUnOwokbGFuZ1sndW5zcGVjaWZpZWQnXSA9ICdbbmlldCBvcGdlZ2V2ZW5dJzsKJGxhbmdbJ2FkZGVkJ10gPSAndG9lZ2V2b2VnZCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAnYmlqZ2V3ZXJrdCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0ZWVyb3B0aWVzIHZhbiBkZSB1aXR2b2VyJzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdTZWxlY3RlZXIgJmVhY3V0ZTsmZWFjdXRlO24nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3RlZXIgVHlwZSc7CiRsYW5nWyd0byddID0gJ0Fhbic7CiRsYW5nWyd5ZXMnXSA9ICdKYSc7CiRsYW5nWydubyddID0gJ05lZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnb250dmFuZ2Vycyc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbW9nZWxpamtlIGJlc3RhbmRlbic7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGJlc3RlbW1pbmdlbic7CiRsYW5nWydzYXZlJ10gPSAnT3BzbGFhbic7CiRsYW5nWydhZGQnXSA9ICdUb2V2b2VnZW4nOwokbGFuZ1sndXBkYXRlJ10gPSAnQmlqd2Vya2VuJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnT3BzbGFhbiBlbiBkb29yZ2FhbiBtZXQgd2lqemlnZW4nOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGllJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpc2NoJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsaWVyZW4nOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGllciAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnQ29uZmlndXJhdGllJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdWZWxkIHZlcnBsaWNodGUgdG9lc3RhbmQgYmlqZ2V3ZXJrdC4nOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4LiBncm9vdHRlJzsKJGxhbmdbJ3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVWl0YnJlaWRpbmdlbic7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnVG9lZ2VzdGFuZSBiZXN0YW5kc3R5cGVzJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnR2V1cGxvYWQgYmVzdGFuZCBpcyB0ZSBncm9vdC4gTWF4aW11bSBncm9vdHRlIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ0RpdCB0eXBlIGJlc3RhbmQgbWFnIG5pZXQgd29yZGVuIGdldXBsb2FkLiBDb250cm9sZWVyIGRlIGJlc3RhbmRzZXh0ZW5zaWUuJzsKJGxhbmdbJ3VwbG9hZCddID0gJ1VwbG9hZCAnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bGllciBnZSZpdW1sO21wb3J0ZWVyZC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnRm9ybXVsaWVyaW1wb3J0IG1pc2x1a3QuIEVyIHdhcyBlZW4gcHJvYmxlZW0gbWV0IGRlIG9wbWFhayB2YW4gaGV0IFhNTC1iZXN0YW5kLic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmlqZW4nOwokbGFuZ1snY29scyddID0gJyVzIGtvbG9tbWVuJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi11dXJzIGtsb2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0LXV1cnMga2xvayc7CiRsYW5nWydob3VyJ10gPSAndXVyJzsKJGxhbmdbJ21pbiddID0gJ21pbnV1dCc7CiRsYW5nWydtZXJpZCddID0gJ21lcmlkaWFhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnVmVyemFtZWxpbmc6ICVzIC0gJXMnOwokbGFuZ1sndGhhbmtzJ10gPSAnQmVkYW5rdC4gVXcgYWFudnJhZ2VuIHppam4gb250dmFuZ2VuLic7CiRsYW5nWydlZGl0J10gPSAnQmV3ZXJrZW4nOwokbGFuZ1snZGVsZXRlJ10gPSAnVmVyd2lqZGVyZW4nOwokbGFuZ1snZGF5J10gPSAnZGFnJzsKJGxhbmdbJ21vbiddID0gJ21hYW5kJzsKJGxhbmdbJ3llYXInXSA9ICdqYWFyJzsKJGxhbmdbJ25vbmUnXSA9ICcoZ2VlbiknOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgZ2VkZWluc3RhbGVlcmQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsZXZlcnNpZSAlcyBnZSZpdW1sO25zdGFsbGVlcmQuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIGJpamdld2Vya3QgbmFhciB2ZXJzaWUgJXMuJzsKJGxhbmdbJ2J1dHRvbl9wcmV2aW91cyddID0gJ1RlcnVnLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdWZXJzdHVyZW4nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnVmVyZGVyLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdHZXNlbGVjdGVlcmQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnTmlldCBnZXNlbGVjdGVlcmQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdTdGFydCc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRm9ybXVsaWVyd2VlcmdhdmVpbnN0ZWxsaW5nZW4nOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm11bGllcnZlcnplbmRpbmcnOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhLWluc3RlbGxpbmdlbic7CiRsYW5nWyd0YWJfYWR2YW5jZWQnXSA9ICdHZWF2YW5jZWVyZGUgaW5zdGVsbGluZ2VuJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0Zvcm11bGllcnNqYWJsb29uJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdWZXJ6ZW5kc2phYmxvb24nOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHktdmFyaWFiZWxlbiBtb2dlbiBpbiBkaXQgdmVsZCBnZWJydWlrdCB3b3JkZW4uPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdNZWVyIG9wdGllcyB0b2V2b2VnZW4nOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdWZXJ3aWpkZXJlbiBnZW1hcmtlZXJkZSBvcHRpZXMnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdWb2VnIG1lZXIgc2VsZWN0aWV2YWtrZW4gdG9lJzsKJGxhbmdbJ2RlbGV0ZV9jaGVja2JveGVzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlciBzZWxlY3RpZXZha2tlbic7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ1ZvbGdlbmQgYWRyZXMgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnVmVyd2lqZGVyIGdlbWFya2VlcmRlIGFkcmVzc2VuJzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ1ZvbGdlbmRlIGJlc3RlbW1pbmcgdG9ldm9lZ2VuJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1ZlcndpamRlciBnZW1hcmtlZXJkZSBiZXN0ZW1taW5nZW4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdUZSB2ZWVsIGUtbWFpbHMgdmVyem9uZGVuIHZhbmFmIHV3IElQLWFkcmVzLiBBbnRpLXNwYW0gbWVjaGFuaXNtZSBibG9ra2VlcnQgZGUgdmVyemVuZGluZy4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnVmVyZGFjaHRlIHNwYW0gdmFuIElQICVzIGdlYmxva2VlcmQuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdIZXJzY2hpayB2ZWxkZW4nOwokbGFuZ1snY2FuY2VsJ10gPSAnQW5udWxlcmVuJzsKJGxhbmdbJ3ZhbHVlX3NldCddID0gJ1dhYXJkZSBnZXpldDogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0hpZXJvbmRlciBzdGFhdCBlZW4gbGlqc3QgbWV0IGF0dHJpYnV0ZW4gZGllIGJlc2NoaWtiYWFyIHppam4gdmFudWl0IGRlIENhdGFsb2dlciBtb2R1bGUuPGJyLz4JDQpVIGt1bnQgZXZlbnR1ZWVsIGdlbGRpZyByZWVrc2VuLCB3YWFyZGVuLCBvZiBlZW4gZ3Jvb3QgYWFudGFsIHdhYXJkZW4gc3BlY2lmaWNlcmVuIGRpZSB3b3JkZW4gZ2VicnVpa3QgYmlqIGhldCBmaWx0ZXJlbiB2YW4gZGUgbGlqc3QgdmFuIG9iamVjdGVuIGRpZSB3b3JkZW4gd2VlcmdlZ2V2ZW4gYWFuIGRlIGdlYnJ1aWtlci4gPGJyLz4NCjxici8+DQo8c3Ryb25nPlJlZWtzZW46PC9zdHJvbmc+PGJyLz4NClJlZWtzZW4ga3VubmVuIHdvcmRlbiBvcGdlZ2V2ZW4gZG9vciBlZW4gbWluaW1hbGUgZW4gbWF4aW1hbGUgd2FhcmRlIHZhbiBoZXQgZ2VicnVpayB2YW4gZGV6ZSBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5WZXJzY2hpbGxlbmRlIHdhYXJkZW46PC9zdHJvbmc+PGJyLz4NCk9tIGVlbiB3YWFyZGUgdGUgc3BlY2lmaWNlcmVuIHZvb3IgZWVuIGF0cmlidXV0LCBrdW4gamUgZGUgc3ludGFjICZxdW90O211bHRpOiB2YWx1ZTF8dmFsdWUyfHZhbHVlMyZxdW90OyBnZWJydWlrZW4uPGJyLz4NCjxici8+DQo8c3Ryb25nPldhYXJkZW4gaW4gdmVyYm9yZ2VuIHZlbGRlbjwvc3Ryb25nPjxici8+DQpPbSBlZW4gd2FhcmRlbiB0b2UgdGUga2VubmVuIGFhbiBlZW4gdmVyYm9yZ2VuIHZlbGQsIGdlYnJ1aWt0IHUgZGUgc3ludGF4IHskZmxkX2lkfTxici8+DQo8YnIvPic7CiRsYW5nWydoZWxwX25hbWVfcmVnZXgnXSA9ICdFZW4gcmVndWxpZXJlIGV4cHJlc3NpZSBvbSBkZSBjYXRhbG9nZXIgaXRlbXMgdGUgc29ydGVyZW4gb3AgbmFhbSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ1RoZSBoZWlnaHQgb2YgdGhlIG11bHRpc2VsZWN0IGZpZWxkJzsKJGxhbmdbJ3RpdGxlX25hbWVfcmVnZXgnXSA9ICdDYXRhbG9nZXIgSXRlbSBOYWFtIFJlZ3VsaWVyZSBFeHByZXNzaWUnOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnVmVsZCBob29ndGUnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnQmVzdGVtbWluZ3NtYXAgdm9vciB1aXR2b2VyYmVzdGFuZGVuJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnR2VicnVpa2VyZ2VkZWZpbmVlcmRlIHRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnaW5hIG9tIG5hYXIgdGVydWcgdGUga2VyZW4gbWV0IHVwbG9hZHMgbGluayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1ZlcnpvbmRlbiBtZXQgRm9ybSBCdWlsZGVyJzsKJGxhbmdbJ3RpdGxlX3VwbG9hZHNfY2F0ZWdvcnknXSA9ICdVcGxvYWRzLWNhdGVnb3JpZSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1N0dXVyIGRpdCBiZXN0YW5kIG5hYXIgZGUgdXBsb2FkLW1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4aW11bSBsZW5ndGUnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdTZWxlY3RpZXZha2xhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnU2VsZWN0aWVyb25kamVsYWJlbCc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnV2FhcmRlIGluZGllbiBnZXNlbGVjdGVlcmQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2FhcmRlIGluZGllbiBuaWV0IGdlc2VsZWN0ZWVyZCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnU2VsZWN0aWV2YWstZ3JvZXBkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2RlbGV0ZSddID0gJ1ZlcndpamRlcmVuPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3RlZXIgRWVuJnF1b3Q7IHRla3N0JzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl92YWx1ZSddID0gJ1NlbGVjdGlld2FhcmRlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlld2VlcmdhdmVuYWFtJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9zdWJqZWN0J10gPSAnU2VsZWN0aWVvbmRlcndlcnAnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYWFyZHNlbGVjdGllJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3N0YXRlJ10gPSAnU3RhbmRhYXJkc2VsZWN0aWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdTdGFuZGFhcmRzZWxlY3RpZSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ09wdGllbmFhbSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWZXJzdHV1cmRlIHdhYXJkZSc7CiRsYW5nWyd0aXRsZV9wdWxsZG93bl9kZXRhaWxzJ10gPSAnS2V1emVsaWpzdG9wdGllcyc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTWVlcmtldXplb3B0aWVzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdCZXN0ZW1taW5ncyBlLW1haWxhZHJlcyc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0Jlc3RlbW1pbmdzYmVzdGFuZHNuYWFtJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O1ZhbiBOYWFtJnF1b3Q7IHZvb3IgZS1tYWlsJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdHZWJydWlrIGVlbnZvdWRpZ2UgZS1tYWlsdmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ0dlYnJ1aWsgZWVudm91ZGlnZSBlLW1haWxhZHJlc3ZhbGlkYXRpZSAoc3RhIGJpanZvb3JiZWVsZCAmcXVvdDt4QHkmcXVvdDsgdG9lIGkucC52LiAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtWYW4gYWRyZXMmcXVvdDsgdm9vciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsdGVrZW5zZXQgZW5jb2RlcmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnS2V1emVsaWpzdGdlYmFzZWVyZGUgZS1tYWlsZGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdCZXN0YW5kc25hYW0nOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0UtbWFpbG9uZGVyd2VycHJlZ2VsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ0Zvcm11bGllcm5hYW0nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtdWxpZXJzdGF0dXMnOwokbGFuZ1sndGl0bGVfcmVhZHlfZm9yX2RlcGxveW1lbnQnXSA9ICdLbGFhciB2b29yIGdlYnJ1aWsnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZXQga2xhYXInOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2luYSBvbSB0ZSB0b25lbiBuYSB2ZXJ6ZW5kaW5nIHZhbiBoZXQgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdWb2VnIGVlbiB2ZWxkIHRvZSB6b2RhdCBkZSBpbnZvZXIgdmFuIGRlIGdlYnJ1aWtlciB2ZXJ3ZXJrdCBrYW4gd29yZGVuLiBVIGt1bnQnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdkZXplIHNuZWxrb3BwZWxpbmcgZ2VicnVpa2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fYWxpYXMnXSA9ICdGb3JtdWxpZXJhbGlhcyc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bGllcnZlbGRlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ1ZlbGQtSWQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdUb29uIHZlbGQtYWxpYXNzZW4nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ0RlemUgc2VsZWN0ZXJlbiB6b3JndCB2b29yIGhldCB0b25lbiB2YW4gdmVsZC1hbGlhc3NlbiB0aWpkZW5zIHRvZXZvZWdlbiBvZiB3aWp6aWdlbiB2YW4gZWVuIGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnVmVsZG5hYW0nOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdWZWxkLWFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1NlbGVjdGllcm9uZGplLWdyb2Vwc2RldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1ZlbGR0eXBlJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdvbSBlZW4gZm9ybXVsaWVydmVyd2Vya2luZ3N2ZWxkIHRlIG1ha2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdOaWV1dyBmb3JtdWxpZXIgdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpZSB0b25lbj8nOwokbGFuZ1sndGl0bGVfc2hvd192ZXJzaW9uX2xvbmcnXSA9ICdEaXQgdm9lZ3QgaGV0IHZlcnNpZW51bW1lciB2YW4gZGUgZ2UmaXVtbDtuc3RhbGxlZXJkZSBGb3JtQnVpbGRlci1tb2R1bGUgYWxzIGNvbW1lbnRhYXIgdG9lLCBvbSB0ZSBoZWxwZW4gYmlqIGRlYnVnZ2VuLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnTmlldXcgdmVsZCB0b2V2b2VnZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9uJ10gPSAnRm9ybXVsaWVydmVyemVuZGtub3B0ZWtzdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0phdmFzY3JpcHQgYWFuIHZlcnplbmRrbm9wIHRvZXZvZWdlbiBvbSBtZWVyZGVyZSB2ZXJ6ZW5kaW5nZW4gdGUgdm9vcmtvbWVuPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnVmVpbGlnaGVpZHNzY3JpcHQgdG9ldm9lZ2VuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtdWxpZXIgJnF1b3Q7Vm9sZ2VuZGUmcXVvdDsga25vcHRla3N0IChnZWJydWlrdCBiaWogZm9ybXVsaWVyZW4gdmFuIG1lZXJkZXJlIHBhZ2luYSYjMDM5O3MpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdGb3JtdWxpZXIgJnF1b3Q7Vm9yaWdlJnF1b3Q7IGtub3B0ZWtzdCAoZ2VicnVpa3QgYmlqIGZvcm11bGllcmVuIHZhbiBtZWVyZGVyZSBwYWdpbmEmIzAzOTtzKSc7CiRsYW5nWyd0aXRsZV9maWVsZF92YWxpZGF0aW9uJ10gPSAnVmVsZHZhbGlkYXRpZSc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ1ZlbGQgb20gdGUgdmFsaWRlcmVuJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzZSB2b29yIGRpdCBmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzZSB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcmVxdWlyZWRfc3ltYm9sJ10gPSAnU3ltYm9vbCBvbSB2ZXJlaXN0ZSB2ZWxkZW4gdGUgbWFya2VyZW4nOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdWZXJlaXN0JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkX2xvbmcnXSA9ICdWZXJlaXN0IGVlbiBhbnR3b29yZCB2b29yIGRpdCB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdWZXJiZXJnIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1ZlcmJlcmcgdmVsZG5hYW0gb3AgZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aXNjaGUgdGVrc3Qgb20gd2VlciB0ZSBnZXZlbic7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1ZhbGlkYXRpZSByZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnQWFudGFsIHdlZXJnZWdldmVuIHJlZ2Vscyc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnR2VlbiBzdGFuZGFhcmQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdUb29uIGRlemUgcGFnaW5hIG5hIGdvZWRrZXVyaW5nJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdEZXplIHJlZ3VsaWVyZSBleHByZXNzaWUgemFsIGFsbGVlbiBnZWJydWlrdCB3b3JkZW4gYWxzICZxdW90O3ZhbGlkYXRpZXR5cGUmcXVvdDsgaW5nZXN0ZWxkIGlzIG9wIGVlbiByZWdleC1nZXJlbGF0ZWVyZGUgb3B0aWUuIEJldmF0IGVlbiB2b2xsZWRpZ2UgUGVybC1hY2h0aWdlIHJlZ2V4LCBpbmNsdXNpZWYgZGUgc3RhcnQvc3RvcCBzbGFzaGVzIGVuIHZsYWdnZW4gKGIudi4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnVmVycGxpY2h0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnVmVyYmVyZyBGb3V0ZW4nOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm11bGllcndlZXJnYXZldHlwZSc7CiRsYW5nWyd0aXRsZV9oaWRlX2Vycm9yc19sb25nJ10gPSAnVm9vcmtvbSBkZWJ1Zy0gLyBmb3V0bWVsZGluZ2VuIHZvb3IgZ2VicnVpa2Vycy4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFbWFpbHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWxlIHVwbG9hZCBiZXN0YW5kc2dyb290dGUgKGtpbG9ieXRlcyknOwokbGFuZ1sndGl0bGVfbWF4aW11bV9zaXplX2xvbmcnXSA9ICdEZXplIGJlZ3JlbnppbmcgaXMgZWVuIHRvZXZvZWdpbmcgb3AgZGUgYmVncmVuemluZ2VuIGRpZSB6aWpuIGluZ2VzdGVsZCBpbiBkZSBQSFAtIG9mIHdlYnNlcnZlcmNvbmZpZ3VyYXRpZS4nOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdUb2VnZXN0YW5lIGV4dGVuc2llcyc7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnVm9lciBlZW4ga29tbWFnZXNjaGVpZGVuIGxpanN0IGluLCB6b25kZXIgZGUgcHVudCAoYi52LiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhdGllcyB3b3JkZW4gb3Zlcmdlc2xhZ2VuLiBMZWVnIGxhdGVuIGJldGVrZW50IGRhdCBlciBnZWVuIGJlcGVya2luZ2VuIHppam4uJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdCZXBlcmtpbmdlbiB3ZWVyZ2V2ZW4/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0dyb290dGUtIGVuIGV4dGVuc2llYmVwZXJraW5nZW4gdG9uZW4gYmlqIGhldCB1cGxvYWQgdmVsZD8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1NqYWJsb29uIHZvb3Igd2VlcmdhdmVmb3JtdWxpZXInOwokbGFuZ1sndGl0bGVfcGFnZV94X29mX3knXSA9ICdQYWdpbmEgJXMgdmFuICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdWZWxkIGhlZWZ0IGdlZW4gZ2VhdmFuY2VlcmRlIG9wdGllcy4nOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ0dldG9vbmRlIHRla3N0IGJpaiBvbmdlc3BlY2lmaWNlZXJkZSB2ZWxkd2FhcmRlbic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnU25lbC12ZWxkLXRvZXZvZWdlbiB1aXRrbGFwbWVudSBpbnNjaGFrZWxlbiB2b29yIGZvcm11bGllcmVuPyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZCddID0gJ1NuZWwtdmVsZC10b2V2b2VnZW4gdWl0a2xhcG1lbnUgaW5zY2hha2VsZW4/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTbmVsLXZlbGQtdG9ldm9lZ2VyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnRGl0IGFhbmtsaWtrZW4gemFsIHNsZWNodHMgMTAgZW1haWxzIHRvZXN0YWFuIHZhbnVpdCBlZW4gZ2VnZXZlbnMgSVAtYWRyZXMgKHBlciB1dXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdQcmltaXRpZXZlIGFudGktc3BhbSBtb2dlbGlqa2hlZGVuIGluc2NoYWtlbGVuPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnVG9vbiB2ZWxkLWlkJiMwMzk7cyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdEaXQgYWFua2xpa2tlbiBtYWFrdCBoZXQgdG9uZW4gdmFuIHZlbGQtaWQmIzAzOTtzIG1vZ2VsaWprIHRpamRlbnMgdG9ldm9lZ2VuIGVuIHdpanppZ2VuIHZhbiBlZW4gZm9ybXVsaWVyJzsKJGxhbmdbJ3RpdGxlX3htbF90b191cGxvYWQnXSA9ICdVcGxvYWQgZm9ybXVsaWVyIHVpdCBlZW4gWE1MLWJlc3RhbmQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZSddID0gJ0dlYnJ1aWsgZGV6ZSBmb3JtdWxpZXJuYWFtJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwtZm9ybXVsaWVyaW1wb3J0JzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnR2VicnVpayBkZXplIGZvcm11bGllcmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmVlciBIVE1MLWVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpc2NoIGxhZGVuPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnQXV0b21hdGlzY2ggbGFkZW4gbWV0IGRlIFVSTCB2YW4gZGUgcGFnaW5hIG1ldCBoZXQgZm9ybXVsaWVyPyAoZGl0IG92ZXJzY2hyaWpmdCBkZSBwYWdpbmFsaW5rLW9wdGllIGhpZXJvbmRlciknOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rJ10gPSAnU3RhbmRhYXJkbGluay1VUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9saW5rX3RpdGxlJ10gPSAnU3RhbmRhYXJkbGlua3Rla3N0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIG5hYXIgZGUgc2l0ZXBhZ2luYSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdVIGt1bnQgZ2VicnVpayBtYWtlbiB2YW4gPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBvbSB2ZXJ6ZW5kaW5nZW4gdGUgYmV2ZWlsaWdlbiBkb29yIGRlIENhcHRjaGEtbW9kdWxlIHRlIGluc3RhbGxlcmVuLiBWb29yIG1lZXIgaW5mb3JtYXRpZSwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+emllIGhldCBDYXB0Y2hhLXByb2plY3Q8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYSddID0gJ0NhcHRjaGEgZ2VicnVpa2VuIG9tIGRlIGZvcm11bGllcnZlcnplbmRpbmdlbiB0ZSBiZXNjaGVybWVuPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnVmluayBhYW4gb20gdXcgZm9ybXVsaWVyIHRlIGJlc2NoZXJtZW4gbWV0IGVlbiA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdCZXZlc3RpZyBkYXQgdSBnZWVuIHNjcmlwdCBiZW50IGRvb3IgZGUga2FyYWt0ZXJzIGluIGhldCBwbGFhdGplIGluIHRlIHZvZXJlbi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yJ10gPSAnVmVya2VlcmRlIHRla3N0IHZvb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbmlldCBnb2VkLic7CiRsYW5nWyd0aXRsZV90aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdIdWxwdGVrc3Qgdm9vciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ1ZlcnN0dXVyIGdlZW4gd2FhcmRlcyB2b29yIG5pZXQtZ2VzZWxlY3RlZXJkZSB2ZWxkZW4nOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdTZWxlY3RlZXIgZGV6ZSBhbHMgZW5rZWwgd2FhcmRlcyB2ZXJzdHV1cmQgbW9ldGVuIHdvcmRlbiB2b29yIGdlc2VsZWN0ZWVyZGUgdmVsZGVuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rbGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgZG9lbCBVUkwnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF9zZXQnXSA9ICdTdGFuZGFhcmQgZ2VzZWxlY3RlZXJkPyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnR2VicnVpayAyNC11dXJzIHRpamQ/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0gJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSAnOwokbGFuZ1sndGl0bGVfc21hcnR5X2V2YWwnXSA9ICdWb2VyIHNtYXJ0eSB0YWdzIHVpdCBpbiBoZXQgdmVsZD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JpamVuIChsZXQgb3A6IGRpdCBrYW4gd29yZGVuIG92ZXJzY2hyZXZlbiBkb29yIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbG9tbWVuIChsZXQgb3A6IGRpdCBrYW4gd29yZGVuIG92ZXJzY2hyZXZlbiBkb29yIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnSG9vZmRmb3JtdWxpZXJkZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdUb29uIHpvd2VsIGRlIGxvZ2luLW5hYW0gYWxzIGRlIHZvb3ItIGVuIGFjaHRlcm5hYW0/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ1Rvb24gZ2VicnVpa2VycyB2b29ybmFhbT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdUb29uIGdlYnJ1aWtlcnMgYWNodGVybmFhbT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdCZXBlcmsgZ2VicnVpa2Vyc2xpanN0IHRvdCBnZWJydWlrZXJzIGluIHNwZWNpZmlla2UgZ3JvZXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ0FsbGVuIGluIGdyb2VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ1Rvb24gYWFuIGdlYnJ1aWtlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGl0IHZlbGQgbWFnIGxlZWcgZ2VsYXRlbiB3b3JkZW4nOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFiZWxlbiB2b29yIHNqYWJsb29uJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1ZhcmlhYmVsZW4gYmVzY2hpa2JhYXInOwokbGFuZ1snaGVscF9waHBfdmFyaWFibGVfbmFtZSddID0gJ1BIUCB2YXJpYWJlbGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXR1bSB2YW4gdmVyemVuZGluZyc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnU2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkcmVzJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCB2YW4gZGUgcGFnaW5hJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpZSc7CiRsYW5nWydoZWxwX3RhYiddID0gJ1RhYiBrYXJha3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FuZGVyZSB2ZWxkZW4gemlqbiBiZXNjaGlrYmFhciBuYWRhdCB6ZSB6aWpuIHRvZWdldm9lZ2QnOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdWZWxkZW4gbWV0IG1lZXJkZXJlIHdhYXJkZW4ga3VubmVuIG9vayBiZW5hZGVyZCB3b3JkZW4gdmlhIGRlIHNtYXJ0eSB3YWFyZGUgdmFuICRmaWVsZG5hbWVfYXJyYXkgb2YgJGZsZF8jX2FycmF5Lic7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnWmllIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiB2b29yIGluZm9ybWF0aWUgb3ZlciBoZXQgZm9ybWF0Lic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJlbGUnOwokbGFuZ1snaGVscF9mb3JtX2ZpZWxkJ10gPSAnR2VyZXByZXNlbnRlZXJkIFZlbGQnOwokbGFuZ1snbGlua19iYWNrX3RvX2Zvcm0nXSA9ICcmbGFxdW87IFRlcnVnIG5hYXIgaGV0IGZvcm11bGllcic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnVm9vcmJlZWxkc2phYmxvb24gZ2VuZXJlcmVuJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZSZldW1sO2VyIHZvb3JiZWVsZCBIVE1MLXNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlJmV1bWw7ZXIgZWVuIHZvb3JiZWVsZCBIZWFkZXItc2phYmxvb24nOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdWb29yYmVlbGRrb3ByZWdlbCBnZW5lcmVyZW4nOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZWVuIHRhYi10ZWtlbic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnU2phYmxvb24gdm9vciBlbmtlbGUgcmVnZWwgdWl0dm9lcmJlc3RhbmQnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdTamFibG9vbiB2b29yIGRlIGtvcHJlZ2VsIHZhbiBoZXQgdWl0dm9lcmJlc3RhbmQnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBvbSB0ZSBrbGlra2VuIHZvb3IgZm9ybXVsaWVydmFsaWRhdGllJzsKJGxhbmdbJ3RpdGxlX3ZhbHVlJ10gPSAnV2FhcmRlICh6aWUgR2VhdmFuY2VlcmQgdGFiYmxhZCBhbHMgdSBTbWFydHkgdGFncyBnZWJydWlrdCknOwokbGFuZ1sndGl0bGVfZGF0ZV9mb3JtYXQnXSA9ICdEYXR1bWZvcm1hYXQgKHN0YW5kYWFyZCA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5QSFAtZGF0dW1mb3JtYXRlbjwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnR2VicnVpayBXWVNJV1lHIGVkaXRvciB2b29yIHRla3N0dmVsZD8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbnMnXSA9ICdGb3JtdWxpZXJ2ZXJ6ZW5kZ2VkcmFnJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdWZXJ6ZW5ka25vcGxhYmVscyc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1NvcnRlZXJ2ZWxkICMlcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfaGVscCddID0gJ0RlemUgcGFnaW5hIG1hYWt0IGFhbnBhc3NlbiB2YW4gRm9ybXVsaWVydmVyemVuZGluZyBtb2dlbGlqay4gSGV0IGJlcGFhbHQgbmlldCB3YXQgRm9ybSBCdWlsZGVyIG1ldCBkZSB2ZXJ6b25kZW4gZGF0YSBkb2V0LiBEaXQga3VudCB1IGluc3RlbGxlbiBkb29yICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IHZlbGRlbiB0b2UgdGUgdm9lZ2VuIGFhbiBoZXQgZm9ybXVsaWVyICc7CiRsYW5nWyd0aXRsZV9zdGFydF95ZWFyJ10gPSAnQmVnaW4gamFhcnJlZWtzJzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnRWluZGUgamFhcnJlZWtzJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ1N0YW5kYWFyZGphYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU3RlbCBvcCAtMSBpbiB2b29yIGhldCBzdGFuZGFhcmRqYWFyIGhldCBodWlkaWdlIGphYXIgdGUgbWFrZW4pJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdOYSBoZXQgZm9ybXVsaWVyIHZlcnpvbmRlbiBpcyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZWFjdGllIG9tIHRlIHRvbmVuJzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ1Rvb24gJnF1b3Q7VmVyemVuZHNqYWJsb29uJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdMYWFkIGRlIHdlYnNpdGUgcGFnaW5hJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnRGV6ZSBzamFibG9vbiBpcyBvbSB0ZSB0b25lbiBhYW4gZGUgZ2VicnVpa2VyIG5hZGF0IGhldCBmb3JtdWxpZXIgdmVyc3R1dXJkIGlzLiBIZXQgaGVlZnQgZ2VlbiBlZmZlY3Qgb3AgZGUgYWFuZ2VtYWFrdCBlbWFpbHMgb2YgYW5kZXJlIGZvcm11bGllcnJlZ2VscyAtLSBkaWUga3VudCB1IGluc3RlbGxlbiBpbiBzamFibG9uZW4gKGluZGllbiB2YW4gdG9lcGFzc2luZykgaW4gaGV0ICZxdW90O2dlYXZhbmNlZXJkJnF1b3Q7IHRhYmJsYWQgdm9vciBkZSByZWdlbHZlbGRlbi4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Jlc3RlbW1pbmdzcGFnaW5hJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1ZlcnBsaWNodGUgdmVsZG5hbWVuJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnVmVycGxpY2h0IHZlbGRlbiBvbSBlZW4gbmFhbSB0ZSBoZWJiZW4/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnVmVycGxpY2h0IHVuaWVrZSB2ZWxkbmFtZW4nOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1ZlcnBsaWNodCB2ZWxkZW4gb20gZWVuIHVuaWVrZSBuYWFtIHRlIGhlYmJlbj8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnSGVyc2NoaWsgdmVsZGVuJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYWFkIHNqYWJsb29uJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ1ZvZWcga25vcHRla3N0IHRvZSc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdWZXJ3aWpkZXIga25vcHRla3N0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldGVlciB2YXJpYWJlbGVuIGFscyBudW1tZXJzIG9mIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlldm9sZ29yZGUnOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0FscyBlciBtZWVyIGRhbiBlZW4gYmVyZWtlbmQgdmVsZCBiZXN0YWF0LCBkYW4genVsbGVuIGRlIHdvcmRlbiBiZXJla2VuZCB2YW4gaGV0IGxhYWdzdGUgcmFuZ251bW1lciB0b3QgaGV0IGhvb2dzdGUgcmFuZ251bW1lcic7CiRsYW5nWyd0aXRsZV9jb21wdXRlX3ZhbHVlJ10gPSAnV2FhcmRlIG9tIHRlIGJlcmVrZW5lbic7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICdTdHJpbmcgJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmllayc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1Rvb24gaGV0IGZvcm11bGllciBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgYmV0ZWtlbnQgZGF0IGllZGVyZSBmb3JtdWxpZXJ2ZXJ2b2xnYWN0aWUgZGUge2Ntc19tb2R1bGV9IHRhZyB2ZXJ2YW5ndCwgbm9uLWlubGluZSB2ZXJ2YW5ndCBkZSB7Y29udGVudH0gdGFnLic7CiRsYW5nWyd0aXRsZV9maWVsZF9kZWZhdWx0X3ZhbHVlJ10gPSAnU3RhbmRhYXJkd2FhcmRlIHZvb3IgdmVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnTGVlZyBzdGFuZGFhcmR3YWFyZGUgbWV0IGVlbiBrbGlrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdWaW5rIGFhbiBvbSBkZSBzdGFuZGFhcmR3YWFyZGUgdGUgdmVyd2lqZGVyZW4gYWxzIGVlbiBnZWJydWlrZXIgb3AgZGl0IHZlbGQga2xpa3QuJzsKJGxhbmdbJ3RpdGxlX3JlbW92ZV9maWxlX2Zyb21fc2VydmVyJ10gPSAnVmVyd2lqZGVyIGhldCBnZXVwbG9hZGUgYmVzdGFuZCB2YW4gZGUgc2VydmVyIG5hIGhldCBwcm9jZXMnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgdm9vciB2ZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ01lZXIgdmVsZHR5cGVzIG5vZGlnPyc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdUZXZlZWwgdmVyd2FyZW5kZSB2ZWxkdHlwZXM/JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnR2EgbmFhciBkZSBnZWF2YW5jZWVyZGUgbW9kdXMnOwokbGFuZ1sndGl0bGVfc3dpdGNoX2Jhc2ljX2xpbmsnXSA9ICdHYSBuYWFyIGRlIHNpbXBlbGUgbW9kdXMnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnTWFwIHZvb3IgaGV0IG9wc2xhYW4gdmFuIGJlc3RhbmRlbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGUgaXMgbmlldCBnZSZpdW1sO25zdGFsbGVlcmQvYWN0aWVmLjwvc3Ryb25nPic7CiRsYW5nWyd3YXJuaW5nJ10gPSAnV0FBUlNDSFVXSU5HJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdTdGFuZGFhcmRzamFibG9vbic7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxzamFibG9vbiwgdGl0ZWwgbGlua3MnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFiZWxzamFibG9vbiwgdGl0ZWwgYm92ZW4nOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU2phYmxvb24gdmFuICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ1dlZXQgdSB6ZWtlciBkYXQgdSBkZSBzamFibG9vbiB3aWx0IG92ZXJzY2hyaWp2ZW4gbWV0IGhldCBnZXNlbGVjdGVlcmRlIHNqYWJsb29uPyAoWmVsZnMgYWxzIHUgT0sgYWFuZ2VlZnQsIHp1bHQgdSBkZSB2ZXJhbmRlcmluZ2VuIG1vZXRlbiBiZXdhcmVuKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdGb3V0IGJpaiBoZXQgYmVyZWtlbmVuIHZhbiAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0dlZW4gSFRUUF9SRUZFUkVSIGluZm9ybWF0aWUgYmVzY2hpa2JhYXIgKHdhYXJzY2hpam5pamsgZG9vciBoZXQgZ2VicnVpayB2YW4gRS1tYWlsIEdlYnJ1aWtlciBWYWxpZGF0aWUpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aWUtcGFyYW1ldGVyLWZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpZS1yZWFjdGllLWZvdXQuIFpvcmcgZXJ2b29yIGRhdCBkZSBVUkwgdmFuIHV3IGVtYWlsIGNvcnJlY3QgZ2Vrb3BpZWVyZCB3b3JkdCEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24tcmVhY3RpZS1mb3V0LiBHZWVuIGVtYWlsdmFsaWRhdGlldmVsZGVuIGluIGRpdCBmb3JtdWxpZXIhJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtdWxpZXJzamFibG9vbiBpcyBhdXRvbWF0aXNjaCBiaWpnZXdlcmt0IGFscyBvbmRlcmRlZWwgdmFuIGRlIHVwZ3JhZGUgdmFuIHZlcnNpZSAwLjMgbmFhciB2ZXJzaWUgMC40LiBNb2dlbGlqayBtb2V0IHUgZWVuIGFhbnRhbCB6YWtlbiBoZXJzdGVsbGVuLiBBbHMgdSBoZXQgc3RhbmRhYXJkc2phYmxvb24gZ2VicnVpa3QsIHZlcnZhbmcgZGV6ZSBzamFibG9vbiBkYW4gbWV0IGRlIHN0YW5kYWFyZCwgZG9vciBkZSBib3ZlbnN0YWFuZGUga2V1emVsaWpzdCB0ZSBnZWJydWlrZW4uJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0JlaGVlciB2YW4gaW50ZXJhY3RpZXZlIHNmb3JtdWxpZXJlbic7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0FscyB1IHN0cmluZy1ldmFsdWF0aWUgZ2VicnVpa3QsIGlzIGRlIGVuaWdlIGJlc2NoaWtiYXJlIG9wZXJhdG9yICgrKSwgdGVyd2lqbCBiaWogaGV0IGdlYnJ1aWsgdmFuIG51bW1lci1ldmFsdWF0aWUgZWVudm91ZGlnZSB3aXNrdW5kaWdlIGJld2Vya2luZ2VuIG1vZ2VsaWprIHppam4gKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnamFudWFyaSc7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnZmVicnVhcmknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ21hYXJ0JzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdhcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ21laSc7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdqdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ2p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdhdWd1c3R1cyc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ3NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdva3RvYmVyJzsKJGxhbmdbJ2RhdGVfbm92ZW1iZXInXSA9ICdub3ZlbWJlcic7CiRsYW5nWydkYXRlX2RlY2VtYmVyJ10gPSAnZGVjZW1iZXInOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1NvcnJ5ISBFciBpcyBlZW4gZm91dCBvcGdldHJlZGVuIHRpamRlbnMgZGUgZm9ybXVsaWVydmVyd2Vya2luZy4nOwokbGFuZ1snc3VibWl0X2Vycm9yJ10gPSAnRm9ybSBCdWlsZGVyIHZlcnplbmRpbmdzZm91dDogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0ZvdXQgYmlqIGhldCB2ZXJzdHVyZW4gdmFuIGhldCBiZXN0YW5kIG5hYXIgZGUgdXBsb2FkbW9kdWxlOiAlcyc7CiRsYW5nWydub3VwbG9hZHNfZXJyb3InXSA9ICdEZSB1cGxvYWRtb2R1bGUga29uIG5pZXQgd29yZGVuIGdldm9uZGVuJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQmlqbGFnZSBmb3V0IGJpaiBiZXN0YW5kICVzICh0bXBfbmFtZTogJXMsIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRm91dC4gS2FuIGdlZW4gbG9jayB2b29yIGJlc3RhbmQga3Jpamdlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdTdGFuZGFhcmQ6IG5pZXQtZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1N0YW5kYWFyZDogZ2VzZWxlY3RlZXJkJzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGb3JtIEJ1aWxkZXIgVmVyemVuZGluZyc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbHNqYWJsb29uIG5vZyBuaWV0IGluZ2VzdGVsZCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybSBCdWlsZGVyOiBLYW4gdmVyZWlzdGUgbW9kdWxlIENNU01haWxlciBuaWV0IHZpbmRlbiEnOwokbGFuZ1sndXNlcl9hcHByb3ZlZF9zdWJtaXNzaW9uJ10gPSAnR2VicnVpa2VyZ29lZGdla2V1cmRlIHZlcnplbmRpbmcgJXMgdmFuICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdHZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIEZvcm0gQnVpbGRlci1mb3JtdWxpZXIgdmVyem9uZGVuIHdvcmR0JzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0dlYmV1cnRlbmlzIGdlYWN0aXZlZXJkIGFscyBlZW4gZm91dCBvcHRyZWVkdCBiaWogaGV0IHZlcnplbmRlbiB2YW4gZWVuIEZvcm0gQnVpbGRlci1mb3JtdWxpZXInOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdHZWJldXJ0ZW5pcyBnZWFjdGl2ZWVyZCBhbHMgZWVuIEZvcm0gQnVpbGRlci1mb3JtdWxpZXIgd29yZHQgZ2V0b29uZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+R2ViZXVydGVuaXMgZ2VhY3RpdmVlcmQgYWxzIGVlbiBGb3JtIEJ1aWxkZXItZm9ybXVsaWVyIHZlcnpvbmRlbiB3b3JkdC48L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVybmFhbSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkdlYmV1cnRlbmlzIGdlYWN0aXZlZXJkIGFscyBlZW4gZm91dCBvcHRyZWVkdCBiaWogaGV0IHZlcnplbmRlbiB2YW4gZWVuIEZvcm0gQnVpbGRlci1mb3JtdWxpZXI8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gRm9ybXVsaWVybmFhbSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIEludGVybiBmb3JtdWxpZXIgSUQgKGludCk8L2xpPg0KPGxpPjxlbT5lcnJvcjwvZW0+IC0gRWVuIGxpanN0IHZhbiBhbGxlIGJla2VuZGUgZm91dGVuIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkdlYmV1cnRlbmlzIGdlYWN0aXZlZXJkIGFscyBlZW4gRm9ybSBCdWlsZGVyLWZvcm11bGllciB3b3JkdCBnZXRvb25kPC9wPg0KPGg0PlBhcmFtZXRlcnM8L2g0Pg0KPHVsPg0KPGxpPjxlbT5mb3JtX25hbWU8L2VtPiAtIEZvcm11bGllcm5hYW0gKHN0cmluZyk8L2xpPg0KPGxpPjxlbT5mb3JtX2lkPC9lbT4gLSBJbnRlcm4gZm9ybXVsaWVyIElEIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZWFjdGllLUlELiBHZWJydWlrdCBkb29yIEZvcm1Ccm93c2VyJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19wYXNzZWRfZnJvbV90YWcnXSA9ICdTdGFuZGFhcmQgdmVsZHdhYXJkZW47IHppZSBtb2R1bGVodWxwJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ1ZlbGQtSUQgdm9vciBpbnRlcm5lIG9wZXJhdGllcyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnRm9ybXVsaWVybmFhbSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm11bGllci1JRCB2b29yIGludGVybmUgb3BlcmF0aWUnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdBbGdlbWVuZSBwYXJhbWV0ZXJzIHZvb3IgaW50ZXJuZSBvcGVyYXRpZXMnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtdWxpZXJzamFibG9vbnZhcmlhYmVsZW48L2gzPg0KPHA+SGV0IGZvcm11bGllcnNqYWJsb29uIGthbiBiZXdlcmt0IHdvcmRlbiBvbSBkZSBvcG1hYWsgYWFuIHRlIHBhc3Nlbi4gT20gaGV0IGZvcm11bGllciB0ZSBsYXRlbiB3ZXJrZW4sIG1vZXRlbiBkYWFyaW4gbWluc3RlbnMgZGUgeyRmYl9oaWRkZW59IGVuIHskc3VibWl0fQ0KICAgdGFncyB3b3JkZW4gb3BnZW5vbWVuLjwvcD4NCg0KPHA+VSBoZWVmdCB0b2VnYW5nIHRvdCBkZSB2ZWxkZW4gdmlhIGhldCAkZmllbGRzLWFycmF5IG9mIGRpcmVjdCB2aWEgZGUgdmVsZG5hbWVuOiAoYi52LiwgeyRteWZpZWxkLT5pbnB1dH0gKTwvcD4NCg0KPHA+SWVkZXIgdmVsZCBoZWVmdCBkZSB2b2xnZW5kZSBhdHRyaWJ1dGVuOjwvcD4NCjx0YWJsZT4NCjx0cj48dGg+VmVsZDwvdGg+PHRoPldhYXJkZTwvdGg+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmRpc3BsYXk8L3RkPjx0ZD4xIGFscyBoZXQgdmVsZCBnZXRvb25kIG1vZXQgd29yZGVuLCBhbmRlcnMgMDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkPC90ZD48dGQ+MSBhbHMgaGV0IHZlbGQgdmVycGxpY2h0IGlzLCBhbmRlcnMgMDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnJlcXVpcmVkX3N5bWJvbDwvdGQ+PHRkPkhldCBzeW1ib29sIG9tIHZlcnBsaWNodGUgdmVsZGVuIHRlIG1hcmtlcmVuPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+Y3NzX2NsYXNzPC90ZD48dGQ+ZGUgQ1NTIGNsYXNzIHZvb3IgZGllIHZlbGQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT52YWxpZDwvdGQ+PHRkPjEgYWxzIGhldCB2ZWxkIGRvb3IgZGUgdmFsaWRhdGllIGtvbXQsIGFuZGVycyAwPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+ZXJyb3I8L3RkPjx0ZD50ZWtzdCB2YW4gaGV0IHZhbGlkYXRpZXByb2JsZWVtIGFscyBoZXQgdmVsZCBuaWV0IGdldmFsaWRlZXJkIGtvbiB3b3JkZW48L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5oaWRlX25hbWU8L3RkPjx0ZD4xIGFscyBkZSB2ZWxkbmFhbSB2ZXJib3JnZW4gbW9ldCB6aWpuLCBhbmRlcnMgMDwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmhhc19sYWJlbDwvdGQ+PHRkPjEgYWxzIGhldCB2ZWxkdHlwZSBlZW4gbGFiZWwgaGVlZnQ8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uZWVkc19kaXY8L3RkPjx0ZD4xIGFscyBoZXQgdmVsZCBvbXNsb3RlbiBtb2V0IHdvcmRlbiBpbiBlZW4gRElWIChvZiB0YWJlbHJpaik8L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5uYW1lPC90ZD48dGQ+ZGUgdmVsZG5hYW08L3RkPjwvdHI+DQo8dHI+PHRkPmZpZWxkLT5pbnB1dDwvdGQ+PHRkPmRlIHZlbGRpbnZvZXJjb250cm9sZSAoYi52LiBoZXQgaW52b2VydmVsZCB6ZWxmKTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPm9wPC90ZD48dGQ+ZWVuIGNvbnRyb2xla25vcCBnZWtvcHBlbGQgbWV0IGhldCB2ZWxkLCBpbmRpZW4gdmFuIHRvZXBhc3NpbmcgKGIudi4gZGUgdmVyd2lqZGVya25vcCB2b29yIGVlbiB1aXRicmVpZGJhcmUgdGVrc3RpbnZvZXIpPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+aW5wdXRfaWQ8L3RkPjx0ZD5kZSBJRCB2YW4gZGUgdmVsZGludm9lciAobnV0dGlnIHZvb3IgPGxhYmVsIGZvcj0mcXVvdDsmcXVvdDs+KTwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPnR5cGU8L3RkPjx0ZD5oZXQgdmVsZGRhdGF0eXBlPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+bXVsdGlwbGVfcGFydHM8L3RkPjx0ZD4xIGFscyBmaWVsZC0+aW5wdXQgZWVuIHZlcnphbWVsaW5nIHZhbiBjb250cm9scyBpczwvdGQ+PC90cj4NCjx0cj48dGQ+ZmllbGQtPmxhYmVsX3BhcnRzPC90ZD48dGQ+MSBhbHMgZGUgdmVyemFtZWxpbmcgdmFuIGNvbnRyb2xzIGFwYXJ0ZSBsYWJlbHMgdm9vciBpZWRlciBjb250cm9sIGhlZWZ0PC90ZD48L3RyPg0KPC90YWJsZT4NCg0KPHA+SW4gYmVwYWFsZGUgZ2V2YWxsZW4gaXMgZmllbGQtPmlucHV0IGVlbiBhcnJheSB2YW4gb2JqZWN0ZW4gaW4gcGxhYXRzIHZhbiBlZW4gaW52b2VyLiBEaXQgaXMgYmlqdm9vcmJlZWxkIGhldCBnZXZhbCBpbiBDaGVja0JveEdyb3VwcyBvZiBSYWRpb0J1dHRvbkdyb3Vwcy4gSGllcmJpaiBrdW50IHUgZG9vciBmaWVsZC0+aW5wdXQtPm5hbWUgZW4gZmllbGQtPmlucHV0LT5pbnB1dHMgbG9wZW4uPC9wPg0KICAgIA0KPHA+RXh0cmEgc21hcnR5LXZhcmlhYmVsZW4gZGllIHUga3VudCB0b2V2b2VnZW46PC9wPg0KPHRhYmxlPg0KPHRyPjx0aD5WYXJpYWJlbGU8L3RoPjx0aD5XYWFyZGU8L3RoPjwvdHI+DQo8dHI+PHRkPnRvdGFsX3BhZ2VzPC90ZD48dGQ+YWFudGFsIHBhZ2luYSYjMDM5O3Mgdm9vciBtZWVycGFnaW5hLWZvcm11bGllcmVuPC90ZD48L3RyPg0KPHRyPjx0ZD50aGlzX3BhZ2U8L3RkPjx0ZD5udW1tZXIgdmFuIGRlIGh1aWRpZ2UgcGFnaW5hIGJpaiBtZWVycGFnaW5hLWZvcm11bGllcmVuPC90ZD48L3RyPg0KPHRyPjx0ZD50aXRsZV9wYWdlX3hfb2ZfeTwvdGQ+PHRkPnRvb250ICZxdW90O3BhZ2UgeCBvZiB5JnF1b3Q7IGJpaiBtZWVycGFnaW5hLWZvcm11bGllcmVuPC90ZD48L3RyPg0KPHRyPjx0ZD5jc3NfY2xhc3M8L3RkPjx0ZD5DU1MgY2xhc3Mgdm9vciBoZXQgZm9ybXVsaWVyPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX25hbWU8L3RkPjx0ZD5Gb3JtdWxpZXJuYWFtPC90ZD48L3RyPg0KPHRyPjx0ZD5mb3JtX2lkPC90ZD48dGQ+Rm9ybXVsaWVyLWRhdGFiYXNlLUlEPC90ZD48L3RyPg0KPHRyPjx0ZD5wcmV2PC90ZD48dGQ+JnF1b3Q7VGVydWcmcXVvdDsga25vcCB2b29yIG1lZXJwYWdpbmEtZm9ybXVsaWVyZW48L3RkPjwvdHI+DQo8dHI+PHRkPnN1Ym1pdDwvdGQ+PHRkPiZxdW90O1ZvbGdlbmRlJnF1b3Q7IG9yICZxdW90O1ZlcnN0dXJlbiZxdW90OyBrbm9wIHZvb3IgbWVlcnBhZ2luYS1mb3JtdWxpZXJlbiwgcGFzdCBhdXRvbWF0aXNjaCBhYW48L3RkPjwvdHI+DQo8L3RhYmxlPg0KDQonOwokbGFuZ1sncG9zdF9pbnN0YWxsJ10gPSAnPHA+VmVyZ2V3aXMgdSBlcnZhbiBvbSAmcXVvdDtNb2RpZnkgRm9ybXMmcXVvdDsgcmVjaHRlbiB0b2UgdGUga2VubmVuIGFhbiBnZWJydWlrZXJzIGRpZSBkZSBmb3JtdWxpZXJlbiBtb2V0ZW4gYmVoZXJlbi4gQWxzIHUgZGUgZm9ybXVsaWVycmVzdWx0YXRlbiB3aWx0IGVtYWlsZW4gem9yZyBlciBkYW4gdm9vciBkYXQgZGUgaW5zdGVsbGluZ2VuIGdvZWQgc3RhYW4uPC9wPg0KPHA+TGV0IGVyb3AgZGF0IGVlbiBmb3JtdWxpZXIgbmlldCBhY3RpZWYgaXMgKGR1cyBnZWJydWlrdCBrYW4gd29yZGVuIHZhbmFmIGRlIHdlYnNpdGUpIGFscyB1IG5vZyBhYW4gaGV0IGJld2Vya2VuIGJlbnQuIFUgbW9ldCBlZXJzdCBoZXQgZm9ybXVsaWVyIGFhbm1ha2VuIGVuIGRlIHRhZyBwYXMgaW4gZWVuIGFjdGlldmUgcGFnaW5hIHBsYWF0c2VuIGFscyB1IGtsYWFyIGJlbnQgbWV0IGJld2Vya2VuLiBBbmRlciBrdW5uZW4gZXIgdmVya2VlcmRlIHJlc3VsdGF0ZW4gd29yZGVuIHZlcnN0dXVyZC48L3A+DQo8cD5UZXZlbnMgb25kZXJzdGV1bmQgZGV6ZSB2ZXJzaWUgbmlldCBoZXQgZ2VsaWprdGlqZGlnIGJld2Vya2VuIHZhbiBmb3JtdWxpZXJlbi4gTGV0IGVyb3AgZGF0IHNsZWNodHMgZWVuIHBlcnNvb24gZWVuIGZvcm11bGllciBnZWxpamt0aWpkaWcgYmV3ZXJrdC48L3A+JzsKJGxhbmdbJ2hlbHAnXSA9ICdoMz5XYXQgZG9ldCBoZXQ/PC9oMz4NCjxwPkRlIEZvcm1CdWlsZGVyLW1vZHVsZSBsYWF0IHUgZm9ybXVsaWVyZW4gYWFubWFrZW4gKGluIGZlaXRlIGlzIGRpdCBkZSBvcHZvbGdlciB2YW4gZGUgb3JpZ2luZWxlIEZlZWRiYWNrRm9ybS1tb2R1bGUpIG1ldCBkZSB0b2VnZXZvZWdkZSBrcmFjaHQgdmFuIGRhdGFiYXNlLW9wc2xhZy4gU2FtZW4gbWV0IGRlIG1vZHVsZSBGb3JtIEJyb3dzZXIga3VudCB1IGhldCBnZWJydWlrZW4gb20gZWVudm91ZGlnZSBkYXRhYmFzZS1hcHBsaWNhdGllIHRlIGJvdXdlbi48L3A+DQo8cD5EZSBmb3JtdWxpZXJlbiBkaWUgYWFuZ2VtYWFrdCB6aWpuIG1ldCBGb3JtQnVpbGRlciBrdW5uZW4gaW5nZXZvZWdkIHdvcmRlbiBpbiBzamFibG9uZW4gZW4vb2Ygd2VicGFnaW5hJiMwMzk7cy4gRm9ybXVsaWVyZW4ga3VubmVuIHZlbGUgdm9ybWVuIHZhbiBpbnZvZXIgYmV2YXR0ZW4gZW4gZGUgaW52b2VyIGthbiBnZXZhbGlkZWVyZCB3b3JkZW4gdm9vciB2ZXJzdHVyZW4uIERlIHJlc3VsdGF0ZW4gdmFuIGRlemUgZm9ybXVsaWVyZW4ga3VubmVuIHZlcnNjaGlsbGVuZGUgbWFuaWVyZW4gdmVyd2Vya3Qgd29yZGVuLjwvcD4NCg0KPGgzPkhvZSBtYWFrIGlrIGVlbiBmb3JtdWxpZXIgYWFuPzwvaDM+DQo8cD5BYW4gaGV0IGJlaGVlcnBhbmVlbCBpcywgbmEgaW5zdGFsbGF0aWUgdmFuIGRlIG1vZHVsZSwgZWVuIG5pZXV3IG1lbnVpdGVtIHRvZWdldm9lZ2QsIEZvcm1CdWlsZGVyLiBEb29yIGhpZXJvcCB0ZSBrbGlra2VuIHZlcnNjaGlqbnQgZWVuIHNjaGVybSBtZXQgZGFhcmluIGRlIG1vZ2VsaWpraGVpZCBlZW4gTmlldXcgZm9ybXVsaWVyIGFhbiB0ZSBtYWtlbiBvZiBkZSBWb29ya2V1cmVuIHRlIGJld2Vya2VuLjwvcD4NCg0KPGgzPkhldCB0b2V2b2VnZW4gdmFuIGVlbiBmb3JtdWxpZXIgYWFuIGVlbiBwYWdpbmE8L2gzPg0KPHA+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+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+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+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+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj4mYW1wO2x0O3NqZ0BjbXNtb2R1bGVzLmNvbSZhbXA7Z3Q7PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+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+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjQxMjEyNjU4MjMyOTg4OTAwMC4xMjE0MDQwMzQ1LjEyMjAzNzkyMjYuMTIyMDQyMjMxNi4xMyc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTgxOTMwNjcuMTEuNi51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9L2Zycy9zaG93bm90ZXMucGhwJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pl_PL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0tyZWF0b3IgZm9ybXVsYXJ6eSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ1R5cCBwb2xhIG5pZSB6b3N0YcWCIHVzdGF3aW9ueSc7CiRsYW5nWydmaWVsZF90eXBlX0NhdGFsb2dlckl0ZW1zRmllbGQnXSA9ICdXeWJpZXJ6IGplZGVuIGx1YiB3acSZY2VqIHdwaXMmb2FjdXRlO3cgbW9kdcWCdSBDYXRhbG9nZXInOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldEVuZCddID0gJy1Lb25pZWMgcG9sYSc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctUG9jesSFdGVrIHBvbGEnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdQb2xlIHRla3N0b3dlZ28gd3Byb3dhZHphbmlhIChUZXh0IElucHV0KSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZEV4cGFuZGFibGUnXSA9ICdQb2xlIHRla3N0b3dlZ28gd3Byb3dhZHphbmlhICh3aWVsb2tyb3RuZSknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0QXJlYUZpZWxkJ10gPSAnUG9sZSB0ZWtzdG93ZSAodGV4dCBhcmVhKSc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94RmllbGQnXSA9ICdDaGVja2JveCc7CiRsYW5nWydmaWVsZF90eXBlX0NoZWNrYm94R3JvdXBGaWVsZCddID0gJ0dydXBhIGNoZWNrYm94Jm9hY3V0ZTt3JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ0xpc3RhIHJvendpamFsbmEnOwokbGFuZ1snZmllbGRfdHlwZV9NdWx0aXNlbGVjdEZpZWxkJ10gPSAnTGlzdGEgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBzdGFuJm9hY3V0ZTt3IFVTQSc7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IHJlZ2lvbiZvYWN1dGU7dyBLYW5hZHknOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdLb250cm9sa2Egd3lib3J1IGtyYWp1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBkYXR5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnS29udHJvbGthIHd5Ym9ydSBjemFzdSc7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ0dydXBhIHJhZGlvYnV0dG9uJm9hY3V0ZTt3JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EaXJlY3RvciddID0gJypXeXN5xYJhaiB3eW5pa2kgZW1haWxlbSB3eWJyYW55bSB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqWmFwaXN6IHd5bmlraSBkbyBwbGlrdSB3eWJpZXJhbmVnbyB6IGxpc3R5JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypaYXBpc3ogd3luaWtpIGRvIHBsaWt1KCZvYWN1dGU7dykgd3liaWVyYW5lZ28geiBsaXN0eSB3aWVsb2tydG9uZWdvIHd5Ym9ydSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUHJ6ZWtpZXJ1aiBkbyBzdHJvbnkgd3licmFuZWogeiBsaXN0eSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqV3nFm2xpaiB3eW5pa2kgcG9kIGVtYWlsKGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypBZHJlcyBXYWxpZGFjamktcHJ6ZXotZW1haWwnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqWmFwaXN6IHd5bmlraSBkbyB6d3lrxYJlZ28gcGxpa3UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlphcGlzeiB3eW5pa2kgZG8gYmF6eSBkYW55Y2gnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlphcGlzeiB3eW5payB3IGZvcm1hY2llIHpnb2RueW0geiBtb2R1xYJlbSBGb3JtQnJvd3NlciB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqV3l3b8WCYWogem5hY3puaWsgdcW8eXRrb3duaWthIHogd3luaWthbWkgZm9ybXVsYXJ6YSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqV3nFm2xpaiB3eW5pa2kgbmEgZW1haWwgcG9kYW55IHByemV6IHXFvHl0a293bmlrYSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqV3nFm2xpaiB3eW5payBkbyBhZG1pbmlzdHJhdG9yYSBDTVMnOwokbGFuZ1snZmllbGRfdHlwZV9QYWdlQnJlYWtGaWVsZCddID0gJy1Lb25pZWMgc3Ryb255JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmlsZVVwbG9hZEZpZWxkJ10gPSAnV2dyeXdhbmllIHBsaWt1JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnUG9sZSB3IGVtYWlsdSAmcXVvdDtBZHJlcyBvZCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ1BvbGUgdyBlbWFpbHUgJnF1b3Q7T2QmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9Gcm9tRW1haWxTdWJqZWN0RmllbGQnXSA9ICdQb2xlIHcgZW1haWx1ICZxdW90O1R5dHXFgiZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1UZWtzdCBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctTGluayBzdGF0eWN6bnknOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rICh3cHJvd2Fkem9ueSBwcnpleiB1xbx5dGtvd25pa2EpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctUG9sZSB1a3J5dGUnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLVBvbGUgb2JsaWN6ZW5pb3dlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaWthbG55IGlkZW50eWZpa2F0b3IgKG51bWVyIHNlcnlqbnkpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0JleiB3YWxpZGFjamknOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJ5Y3puZSc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdQZcWCbm8tbGljemJvd2UgKGludGVnZXIpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0FkcmVzIGVtYWlsJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ051bWVyIHRlbGVmb25pY3pueSAoZm9ybWF0IFVTQSknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzaSB6b3N0YcSHIHphem5hY3pvbmUnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ1NwcmF3ZHphaiBwb3ByYXdub8WbxIcgeiB3eXJhxbxlbmllbSByZWd1bGFybnltJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ05pZSBzcGXFgm5pYSB3YXJ1bmsmb2FjdXRlO3cgb2tyZcWbbG9ueWNoIHByemV6IHBvZGFuZSB3eXJhxbxlbmllIHJlZ3VsYXJuZSc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnV2FydG/Fm8SHIGRsYSB3eW1hZ2FuZWdvIHBvbGEgbmllIHpvc3RhxYJhIHBvZGFuYSc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1dwcm93YWTFuiB3YXJ0b8WbxIcgZGxhIHBvbGEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnV3Byb3dhZMW6IGxpY3pixJkgdyBwb2x1ICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1dwcm93YWTFuiBwb3ByYXduxIUgd2FydG/Fm8SHIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1dwcm93YWTFuiB3YXJ0b8WbxIcgcGXFgm5vLWxpY3pib3fEhSB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnV3Byb3dhZMW6IHBvcHJhd255IGVtYWlsIHcgcG9sdSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1dwcm93YWTFuiBwb3ByYXdueSBudW1lciB0ZWxlZm9uaWN6bnljaCB3IHBvbHUgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgbmllIHd5ZGFqZSBzacSZIHBvcHJhd255bSBhZHJlc2VtIGVtYWlsISc7CiRsYW5nWydwbGVhc2VfZW50ZXJfbm9fbG9uZ2VyJ10gPSAnV3Byb3dhZMW6IHdhcnRvxZvEhyBuaWUgZMWCdcW8c3rEhSBuacW8ICVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdabmFrIHXFvHl3YW55IGpha28gc2VwYXJhdG9yIHcgd3luaWthY2ggZGFqxIVjeWNoIHdpxJljZWogbmnFvCBqZWRuxIUgd2FydG/Fm8SHJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdQb3RyemVidWplc3ogdXByYXduaWVuaWUgJnF1b3Q7JXMmcXVvdDsgYnkgd3lrb25hxIcgdMSZIG9wZXJhY2rEmSc7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBOaWUgbWFzeiBvZHBvd2llZG5pY2ggdXByYXduaWXFhCBieSBrb3J6eXN0YcSHIHogdGVqIHNla2NqaS4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0tvbGVqbm/Fm8SHIHAmb2FjdXRlO2wgemFrdHVhbGl6b3dhbmEnOwokbGFuZ1snZm9ybV9kZWxldGVkJ10gPSAnRm9ybXVsYXJ6IHpvc3RhxYIgdXN1bmnEmXR5JzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdQb2xlIHpvc3RhxYJvIHVzdW5pxJl0ZSc7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdLb25maWd1cmFjamEgemFwaXNhbmEuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnTXVzaXN6IHphem5hY3p5xIcgJnF1b3Q7JXMmcXVvdDsgYnkgcHJ6ZWrFm8SHIGRhbGVqJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdNdXNpc3ogcG9kYcSHIGNvIG5ham1uaWVqIGplZGVuIGFkcmVzIGRvY2Vsb3d5ISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdOYSBwZXdubyBjaGNlc3ogdXN1bsSFxIcgZm9ybXVsYXJ6ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnTmEgcGV3bm8gY2hjZXN6IHVzdW7EhcSHIHBvbGUgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ09wY2plIHphYXdhbnNvd2FuZSBuaWUgc8SFIGRvc3TEmXBuZSwgZG9wJm9hY3V0ZTtraSBuaWUgdXN0YXdpc3ogdHlwdSBwb2xhJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnTmF6d2EgcG9sYSAmcXVvdDslcyZxdW90OyBqdcW8IGplc3QgdyBzeXN0ZW1pZS4gVcW8eXdhaiBuaWVwb3d0YXJ6YWxueWNoIG5hencgYWxibyB3ecWCxIVjeiBvZHBvd2llZG5pxIUgb3BjasSZIHcga29uZmlndXJhY2ppIG1vZHXFgnUuJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdQb2xhIG11c3rEhSBtaWXEhyBuYXp3xJksIGRvcCZvYWN1dGU7a2kgbmllIHd5xYLEhWN6eXN6IHRlaiBvcGNqaSB6IGtvbmZpZ3VyYWNqaSBtb2R1xYJ1Lic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9uaW0nOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0TFgjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib2tzJm9hY3V0ZTt3JzsKJGxhbmdbJ29wdGlvbnMnXSA9ICclcyBvcGNqaSc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIHpuYWsmb2FjdXRlO3cnOwokbGFuZ1snb3JkZXInXSA9ICdLb2xlam5vxZvEhyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tuaWV6bmFuZV0nOwokbGFuZ1snYWRkZWQnXSA9ICdkb2Rhbm8nOwokbGFuZ1sndXBkYXRlZCddID0gJ3pha3R1YWxpem93YW5vJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ09wY2plIHNvcnRvd2FuaWEgd3lqxZtjaWEnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1d5YmllcnogamVkbm8nOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdXeWJpZXJ6IHR5cCc7CiRsYW5nWyd0byddID0gJ0RvJzsKJGxhbmdbJ3llcyddID0gJ1Rhayc7CiRsYW5nWydubyddID0gJ05pZSc7CiRsYW5nWydyZWNpcGllbnRzJ10gPSAnb2RiaW9yY3knOwokbGFuZ1snZmlsZV9jb3VudCddID0gJyVzIG1vxbxsaXd5Y2ggcGxpayZvYWN1dGU7dyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGNlbCZvYWN1dGU7dyc7CiRsYW5nWydzYXZlJ10gPSAnWmFwaXN6JzsKJGxhbmdbJ2FkZCddID0gJ0RvZGFqJzsKJGxhbmdbJ3VwZGF0ZSddID0gJ0FrdHVhbGl6dWonOwokbGFuZ1snc2F2ZV9hbmRfY29udGludWUnXSA9ICdaYXBpc3ogaSBrb250eW51dWogZWR5Y2rEmSc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWFjamUnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdHljem5pZSc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm11bGFyemUnOwokbGFuZ1snZm9ybSddID0gJ0Zvcm11bGFyeiAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhY2phJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdTdGF0dXMgd3ltYWdhbG5vxZtjaSBwb2xhIHpvc3RhxYIgemFrdHVhbGl6b3dhbnkuJzsKJGxhbmdbJ21heGltdW1fc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhcic7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JvenJ6ZXN6ZW5pYSc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnRG96d29sb25lIHR5cHkgcGxpayZvYWN1dGU7dyc7CiRsYW5nWydmaWxlX3Rvb19sYXJnZSddID0gJ1dncnl3YW55IHBsaWsgamVzdCB6YSBkdcW8eSEgTWFrc3ltYWxueSByb3ptaWFyIHRvOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1BsaWtpIHRlZ28gdHlwdSAodGVnbyByb3pzemVyemVuaWEpIG5pZSBtb2fEhSBiecSHIHdncnl3YW5lIGRvIG5hc3plZ28gc3lzdGVtdS4gU3ByYXdkxbosIGN6eSByb3pzemVyemVuaWUgamVzdCBwcmF3aWTFgm93ZS4nOwokbGFuZ1sndXBsb2FkJ10gPSAnV2dyeXdhbmllJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtdWxhcnogemFpbXBvcnRvd2FueS4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnSW1wb3J0IGZvcm11bGFyemEgc2nEmSBuaWUgcG93aSZvYWN1dGU7ZMWCISBCecWCIHByb2JsZW0geiBmb3JtYXRlbSBwbGlrdSBYTUwuJzsKJGxhbmdbJ3Jvd3MnXSA9ICclcyB3aWVyc3p5JzsKJGxhbmdbJ2NvbHMnXSA9ICclcyBrb2x1bW4nOwokbGFuZ1snMTJfaG91ciddID0gJzEyLWdvZHppbm55IHplZ2FyJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC1nb2R6aW5ueSB6ZWdhcic7CiRsYW5nWydob3VyJ10gPSAnR29kemluYSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dGEnOwokbGFuZ1snbWVyaWQnXSA9ICdQb8WCdWRuaWsnOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1pha3JlczogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdEemnEmWtpISBUd29qYSB3eXN5xYJrYSB6b3N0YcWCYSBvdHJ6eW1hbmEuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZHl0dWonOwokbGFuZ1snZGVsZXRlJ10gPSAnS2FzdWonOwokbGFuZ1snZGF5J10gPSAnRHppZcWEJzsKJGxhbmdbJ21vbiddID0gJ01pZXNpxIVjJzsKJGxhbmdbJ3llYXInXSA9ICdSb2snOwokbGFuZ1snbm9uZSddID0gJyhicmFrKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHXFgiBvZGluc3RhbG93YW55JzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHXFgiB3IHdlcnNqaSAlcyB6b3N0YcWCIHphaW5zdGFsb3dhbnkuJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdcWCIHpha3R1YWxpem93YW5vIGRvIHdlcnNqaSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnUG93ciZvYWN1dGU7dC4uLic7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnV3nFm2xpaiBmb3JtdWxhcnonOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnS29udHludXVqLi4uJzsKJGxhbmdbJ3ZhbHVlX2NoZWNrZWQnXSA9ICdaYXpuYWN6b255JzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ09kem5hY3pvbnknOwokbGFuZ1sndGFiX21haW4nXSA9ICdHxYImb2FjdXRlO3duYSc7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnVXN0YXdpZW5pYSB3ecWbd2lldGxlbmlhIGZvcm11bGFyemEnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1d5c8WCYW5pZSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RhYl9jYXB0Y2hhJ10gPSAnVXN0YXdpZW5pYSBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ1VzdGF3aWVuaWEgWmFhd2Fuc293YW5lJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ1N6YWJsb24gZm9ybXVsYXJ6YSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3phYmxvbiB3eXPFgmFuaWEnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5abWllbm5lIHNtYXJ0eSBzxIUgdyB0eW0gcG9sdSBkb3p3b2xvbmUhPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdEb2RhaiB3acSZY2VqIG9wY2ppJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnU2thc3VqIHphem5hY3pvbmUgb3BjamUnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdEb2RhaiB3acSZY2VqIGNoZWNrYm94LSZvYWN1dGU7dyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ1NrYXN1aiB6YXpuYWN6b25lIGNoZWNrYm94LXknOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdEb2RhaiBrb2xlam55IGFkcmVzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnU2thc3VqIHphem5hY3pvbmUgYWRyZXN5JzsKJGxhbmdbJ2FkZF9kZXN0aW5hdGlvbiddID0gJ0RvZGFqIGtvbGVqbmVnbyBhZHJlc2F0YSAoY2VsKSc7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdTa2FzdWogd3licmFueWNoIGFkcmVzYXQmb2FjdXRlO3cgKGNlbGUpJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtJ10gPSAnWmEgZHXFvG8gZW1haWxpIHpvc3RhxYJvIHd5Z2VuZXJvd2FueWNoIHogdHdvamVnbyBhZHJlc3UgSVAuIFN5c3RlbSBhbnR5LXNwYW1vd3kganXFvCBuaWUgYsSZZHppZSBuaWMgb2QgY2llYmllIGRvc3RhcmN6YcWCLic7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbV9sb2cnXSA9ICdQb2RlanJ6YW55IHNwYW0geiBhZHJlc3UgSVAgJXMgLSB6b3N0YcWCIHphdHJ6eW1hbnkuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICdabWllxYQga29sZWpub8WbxIcgcCZvYWN1dGU7bCc7CiRsYW5nWydjYW5jZWwnXSA9ICdBbnVsdWonOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnV2FydG/Fm8SHIHVzdGF3aW9uYTogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ1d5cmHFvGVuaWUgcmVndWxhcm5lIHBvendhbGEgZmlsdHJvd2HEhyB3cGlzeSBtb2R1xYJ1IENhdGFsb2dlciBwbyBuYXp3aWUnOwokbGFuZ1snaGVscF9maWVsZF9oZWlnaHQnXSA9ICdXeXNva2/Fm2MgbGlzdHkgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ1d5cmHFvGVuaWUgcmVndWxhcm5lIGRsYSBuYXp3IHdwaXMmb2FjdXRlO3cgbW9kdcWCdSBDYXRhbG9nZXInOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnV3lzb2tvxZvEhyBwb2xhJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0RvY2Vsb3d5IGthdGFsb2cgZGxhIHBsaWsmb2FjdXRlO3cgd3l0d2FyemFueWNoIHByemV6IG1vZHXFgjonOwokbGFuZ1sndGl0bGVfdWR0X25hbWUnXSA9ICdabmFjem5payB1xbx5dGtvd25pa2EnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1N0cm9uYSBwb3dyb3R1IHogbGlua2llbSBwbyB1cGxvYWR6aWUnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdXeXPFgmFubyB6IG1vZHXFgnUgRm9ybUJ1aWxkZXInOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19jYXRlZ29yeSddID0gJ0thdGVnb3JpYSB1cGxvYWR1JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnV3nFm2xpaiBwbGlrIGRvIG1vZHXFgnUgVXBsb2Fkcyc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmRhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnRMWCdWdvxZvEhyBtYWtzeW1hbG5hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2xhYmVsJ10gPSAnRXR5a2lldGEgY2hlY2tib3hhJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnRXR5a2lldGEgcmFkaW9idXR0b25hJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZ2R5IHphem5hY3pvbm8nOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnV2FydG/Fm8SHIGdkeSBuaWV6YXpuYWN6b25vJzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdTemN6ZWcmb2FjdXRlO8WCeSBncnVweSBjaGVja2JveCZvYWN1dGU7dyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdTa2Fzb3dhxIcnOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGVrc3QgZGxhIG9wY2ppICZxdW90O1d5YmllcnogamVkZW4mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnV2FydG/Fm8SHIHphem5hY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ05hendhIHdhcnRvxZtjaSB6YXpuYWN6ZW5pYSc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fc3ViamVjdCddID0gJ1RlbWF0IHphem5hY3plbmlhJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X2NvdW50cnknXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfcHJvdmluY2UnXSA9ICdEb215xZtsbmUgemF6bmFjemVuaWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX25hbWUnXSA9ICdOYXp3YSBvcGNqaSc7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdXeXN5xYJhbmEgd2FydG/Fm8SHJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdPcGNqZSBsaXN0eSByb3p3aWphbG5laic7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnT3BjamUgbGlzdHkgd2llbG9rcm90bmVnbyB3eWJvcnUnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fYWRkcmVzcyddID0gJ0RvY2Vsb3d5IGFkcmVzIGUtbWFpbCc7CiRsYW5nWyd0aXRsZV9kZXN0aW5hdGlvbl9maWxlbmFtZSddID0gJ0RvY2Vsb3dhIG5hendhIHBsaWt1JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJ1BvbGUgJnF1b3Q7T2QmcXVvdDsgZGxhIGUtbWFpbGEnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1XFvHl3YWogdXByb3N6Y3pvbsSFIHdhbGlkYWNqxJkgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfcmVnZXhfbG9uZyddID0gJ1XFvHl3YWogc3p5YmvEhSB3YWxpZGFjasSZIGRsYSBwb2xhIGVtYWlsIChucC4sIHBvencmb2FjdXRlO2wgbmEgd3Bpc2FuaWUgJnF1b3Q7eEB5JnF1b3Q7IHphbWlhc3Qgc3ByYXdkemFuaWEgc2vFgmFkbmkgdHlwdSAmcXVvdDt4QHkudGxkJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX2FkZHJlc3MnXSA9ICcmcXVvdDtBZHJlcyBvZCZxdW90OyBkbGEgZW1haWxhJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnS29kb3dhbmllIHpuYWsmb2FjdXRlO3cgZGxhIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnU3pjemVnJm9hY3V0ZTvFgnkgbGlzdHkgcm96d2lqYWxuZWogZGxhIGVtYWlsYSc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdOYXp3YSBwbGlrdSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnTGluaWEgdHl0dcWCdSBlbWFpbGEnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnTmF6d2EgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9mb3JtX3N0YXR1cyddID0gJ1N0YXR1cyBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnR290b3d5IGRvIHdkcm/FvGVuaWEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ05pZWdvdG93eSc7CiRsYW5nWyd0aXRsZV9yZWRpcmVjdF9wYWdlJ10gPSAnU3Ryb25hIHByemVraWVyb3dhbmlhIHBvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdEb2RhaiBwb2xlIG9ic8WCdWdpIGZvcm11bGFyemEsIG9rcmXFm2xhasSFY2UgemFwaXN5d2FuaWUgd3Byb3dhZHpvbnljaCBkYW55Y2guIE1vxbxlc3onOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICd1xbx5d2FqIHRlZ28gc2tyJm9hY3V0ZTt0dSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ1BvbGEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0lEIHBvbGEnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdQb2thxbwgYWxpYXN5IHAmb2FjdXRlO2wnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXNfbG9uZyddID0gJ1phem5hY3plbmllIHRlZ28gcG9sYSBzcG93b2R1amUsIMW8ZSBhbGlhc3kgcCZvYWN1dGU7bCBixJlkxIUgcG9rYXp5d2FuZSBwb2RjemFzIGRvZGF3YW5pYSBsdWIgZWR5Y2ppIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZmllbGRfbmFtZSddID0gJ05hendhIHBvbGEnOwokbGFuZ1sndGl0bGVfZmllbGRfYWxpYXMnXSA9ICdBbGlhcyBwb2xhJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ1N6Y3plZyZvYWN1dGU7bHkgZ3J1cHkgcmFkaW9idXR0b24mb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ1R5cCBwb2xhJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTMnXSA9ICdieSBzdHdvcnp5xIcgcG9sZSBvYnPFgnVnaSBmb3JtdWxhcnphLic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdEb2RhaiBub3d5IGZvcm11bGFyeic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdQb2thenVqIHdlcnNqxJkgbW9kdcWCdSBLcmVhdG9yYSBGb3JtdWxhcnp5Pyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RhIG9wY2phIHdzdGF3aSBudW1lciB3ZXJzamkgbW9kdcWCdSBLcmVhdG9yYSBGb3JtdWxhcnp5IChGb3JtIEJ1aWxkZXIpIGpha28ga29tZW50YXJ6IHcgdHJlxZtjaSBzdHJvbnksIGNvIHXFgmF0d2kgZGVidWdvd2FuaWUgaSBhbmFsaXrEmSBzeXN0ZW11Lic7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnRG9kYWogbm93ZSBwb2xlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1Rla3N0IHByenljaXNrdSB3eXPFgmFuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0RvZGHEhyBza3J5cHQgSmF2YXNjcmlwdCBkbyBvc3RhdGVjem5lZ28gcHJ6eWNpc2t1IHd5c3nFgmFuaWEgZm9ybXVsYXJ6YSwgYnkgdW5pZW1vxbxsaXdpxIcgd2llbG9rcm90bmUgamVnbyBuYWNpxZtuacSZY2llPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnRG9kYWogc2tyeXB0IGJlenBpZWN6ZcWEc3R3YSc7CiRsYW5nWyd0aXRsZV9mb3JtX25leHRfYnV0dG9uJ10gPSAnVGVrc3QgcHJ6eWNpc2t1ICZxdW90O05hc3TEmXBuYSBzdHJvbmEmcXVvdDsgKHXFvHl3YW55IHByenkgd2llbG9zdHJvbmljb3d5Y2ggZm9ybXVsYXJ6YWNoKSc7CiRsYW5nWyd0aXRsZV9mb3JtX3ByZXZfYnV0dG9uJ10gPSAnVGVrc3QgcHJ6eWNpc2t1ICZxdW90O1BvcHJ6ZWRuaWEgc3Ryb25hJnF1b3Q7ICh1xbx5d2FueSBwcnp5IHdpZWxvc3Ryb25pY293eWNoIGZvcm11bGFyemFjaCknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ1dhbGlkYWNqYSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnS2xhc2EgQ1NTIGRsYSB0ZWdvIGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnS2xhc2EgQ1NTIGRsYSB0ZWdvIHBvbGEnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdabmFrIG96bmFjemFqxIVjeSBwb2xlIHd5bWFnYW5lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlcXVpcmVkJ10gPSAnV3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ1d5bWFnYWogd3lwZcWCbmllbmlhIHRlZ28gcG9sYSc7CiRsYW5nWyd0aXRsZV9oaWRlX2xhYmVsJ10gPSAnVWtyeWogZXR5a2lldMSZJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ1VrcnlqIG5henfEmSB0ZWdvIHBvbGEgdyB3aWRva3UgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV90ZXh0J10gPSAnU3RhdHljem55IHRla3N0IGRvIHd5xZt3aWV0bGVuaWEnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVnZXgnXSA9ICdSZWdleCAocmVndcWCa2EpIGRvIHdhbGlkYWNqaSc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTGlzdGEgbGluaWkgZG8gd3nFm3dpZXRsZW5pYSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnQmV6IHdhcnRvxZtjaSBkb215xZtsbnknOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTdHJvbmEgcHJ6ZWtpZXJvd2FuaWEgcG8gemF0d2llcmR6ZW5pdSc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnVGhpcyByZWd1bGFyIGV4cHJlc3Npb24gd2lsbCBvbmx5IGJlIHVzZWQgaWYgJnF1b3Q7dmFsaWRhdGlvbiB0eXBlJnF1b3Q7IGlzIHNldCB0byBhIHJlZ2V4LXJlbGF0ZWQgb3B0aW9uLiBJbmNsdWRlIGEgZnVsbCBQZXJsLXN0eWxlIHJlZ2V4LCBpbmNsdWRpbmcgdGhlIHN0YXJ0L3N0b3Agc2xhc2hlcyBhbmQgZmxhZ3MgKGUuZy4sICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnV3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnMnXSA9ICdVa3J5aiBixYLEmWR5JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdUeXAgd3nFm3dpZXRsYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdVc3RhdyB3aWFkb21vxZtjaSBvIGLFgsSZZGFjaCBpIGR6aWHFgmFuaXUgc3lzdGVtdSAoZGVidWcpIG5pZXdpZG9jem5lIGRsYSB1xbx5dGtvd25payZvYWN1dGU7dyc7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gZW1haWxhJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01ha3N5bWFsbnkgcm96bWlhciBwbGlrdSB3Z3J5d2FuZWdvIChraWxvYmFqdHkpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnVGVuIGxpbWl0IGplc3QgZG9kYXRrb3d5bSBsaW1pdGVtIC0gbmEgcGV3bm8gVHcmb2FjdXRlO2ogc2Vyd2VyIGx1YiBqxJl6eWsgUEhQIG1hIHN3b2plIHfFgmFzbmUgb2dyYW5pY3plbmlhLic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0RvendvbG9uZSByb3pzemVyemVuaWEnOwokbGFuZ1sndGl0bGVfcGVybWl0dGVkX2V4dGVuc2lvbnNfbG9uZyddID0gJ1dwaXN6IGxpc3TEmSByb3pzemVyemXFhCBwbyBwcnplY2lua3UsIGJleiBrcm9wZWsgKG5wLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2plIGLEmWTEhSBpZ25vcm93YW5lLiBQb3pvc3Rhd2lhasSFYyB0byBwb2xlIHB1c3RlIC0gbmllIGLEmWR6aWUgb2dyYW5pY3plxYQgdyBzeXN0ZW1pZSEnOwokbGFuZ1sndGl0bGVfc2hvd19saW1pdGF0aW9ucyddID0gJ1d5xZt3aWV0bGHEhyBkb3p3b2xvbmUgcm96c3plcnplbmlhPyc7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zX2xvbmcnXSA9ICdXecWbd2lldGwga2HFvGRlIG9ncmFuaWN6ZW5pZSByb3ptaWFydSBpIHJvenN6ZXJ6ZW5pYSBwcnp5IHBvbGFjaCB3Z3J5d2FuaWEgcGxpayZvYWN1dGU7dz8nOwokbGFuZ1sndGl0bGVfZm9ybV90ZW1wbGF0ZSddID0gJ1N6YWJsb24gZG8gdcW8eWNpYSBwcnp5IFd5xZt3aWV0bGFuaXUgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1N0cm9uYSAlcyB6ICVzJzsKJGxhbmdbJ3RpdGxlX25vX2FkdmFuY2VkX29wdGlvbnMnXSA9ICdUbyBwb2xlIG5pZSBtYSBvcGNqaSB6YWF3YW5zb3dhbnljaCc7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGVrc3QgaW5mb3JtYWNqaSBwcnp5IG5pZXdwaXNhbmVqIHdhcnRvxZtjaSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9mYXN0YWRkX2xvbmcnXSA9ICdMaXN0YSBuYWQgZm9ybXVsYXJ6ZW0sIHVzcHJhd25pYWrEhWNhIGRvZGF3YW5pZSBub3d5Y2ggcCZvYWN1dGU7bC4nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdXxYLEhWN6IGxpc3TEmSBzenlia2llZ28gd3liaWVyYW5pYSBub3dlZ28gcG9sYSBkbGEgZm9ybXVsYXJ6eT8nOwokbGFuZ1sndGl0bGVfZmFzdGFkZCddID0gJ1N6eWJraSBrcmVhdG9yIG5vd3ljaCBwJm9hY3V0ZTtsJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnWmF6bmFjemFqxIVjIHTEmSBvcGNqxJkgcG96d29saXN6IG5hIHd5c8WCYW5pZSB0eWxrbyAxMCBlbWFpbGkgeiBqZWRuZWdvIGFkcmVzdSBJUCAtIHcgY2nEhWd1IGplZG5laiBnb2R6aW55Lic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdXxYLEhWN6IHByeW1pdHl3bmUgb3BjamUgYW50eS1zcGFtb3dlPyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzJ10gPSAnUG9rYXogSUQgcCZvYWN1dGU7bCc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkaWRzX2xvbmcnXSA9ICdaYXpuYWN6YWrEhWMgdMSZIG9wY2rEmSB3ecWbd2lldGxpIG51bWVyIElEIGdkeSBkb2RhamVzeiBsdWIgZWR5dHVqZXN6IGZvcm11bGFyeic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnV2dyYWogZm9ybXVsYXJ6IHogcGxpa3UgWE1MJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdVxbx5d2FqIHRlaiBuYXp3eSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdJbXBvcnQgZm9ybXVsYXJ6YSBYTUwnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVxbx5d2FqIHRlZ28gYWxpYXN1IGZvcm11bGFyemEnOwokbGFuZ1sndGl0bGVfaHRtbF9lbWFpbCddID0gJ0dlbmVydWogZW1haWwgZm9ybWF0dSBIVE1MPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ1d5cGXFgm5pYcSHIGF1dG9tYXR5Y3puaWU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0eWN6bmllIGxpbmt1amUgZG8gc3Ryb255IG5hIGt0Jm9hY3V0ZTtyZWogamVzdCBmb3JtdWxhcnogKHRhIG9wY2phIG5hZHBpc3VqZSBwb25pxbxzesSFKSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEdW55xZtsbnkgVVJMIGxpbmt1JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RvbXnFm2xueSB0ZWtzdCBsaW5rdSc7CiRsYW5nWyd0aXRsZV9saW5rX3RvX3NpdGVwYWdlJ10gPSAnTGluayBkbyBzdHJvbnknOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnTW/FvGVzeiB1xbx5xIcgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiBkbyB6YWJlenBpZWN6bmlhIGZvcm11bGFyemEgcG8gemFpbnN0YWxvd2FuaWEgbW9kdcWCdSBDYXB0Y2hhLiBXacSZY2VqIGluZm9ybWFjamkgbW/FvGVzeiB6bmFsZcW6xIcgbmEgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+c3Ryb25pZSBwcm9qZWt0dTwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnVcW8ecSHIENhcHRjaGEgZG8gemViZXpwaWVjemVuaWEgZm9ybXVsYXJ6YT8nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGFfaGVscCddID0gJ1phem5hY3ogdMSZIG9wY2rEmSBhYnkgdcW8eXdhxIcgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnV3Bpc3ogdGVrc3QgeiBvYnJhemthIHcgdG8gcG9sZSAod2llbGtvxZvEhyBsaXRlciBtYSB6bmFjemVuaWUpJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0tvbXVuaWthdCBnZHkga29kIENhcHRjaGEgamVzdCBuaWVwb3ByYXdueSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnPHVsPjxsaT5UZWtzdCB6IG9icmF6a2EgamVzdCBuaWVwb3ByYXdueS48L2w+PC91bD4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAndGVrc3QgcG9tb2N5IHd5xZt3aWV0bGFueSB3IGZvcm11bGFyenUnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnTmllIHphcGlzdWogem1pZW5ueWNoIGRsYSBuaWV6YXpuYWN6b255Y2ggY2hlY2tib3gmb2FjdXRlO3cnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdaYXpuYWN6IHRvIHBvbGUgamXFm2xpIGNoY2VzeiBhYnkgdHlsa28gemF6bmFjem9uZSBjaGVja2JveHkgendyYWNhxYJ5IHdhcnRvxZtjaSc7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnRXR5a2lldGEgbGlua3UnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0RvY2Vsb3d5IFVSTCBsaW5rdSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ1phem5hY3pvbnkgZG9tecWbbG5pZT8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1XFvHl3YWogemVnYXJhIDI0LWdvZHppbm5lZ28/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJ6ZXR3YXJ6YcSHIHRhZ2kgU21hcnR5IHcgdHltIHBvbHUnOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1dpZXJzemUgKG1vxbxlIGJ5xIcgbmFkcGlzYW5lIHByemV6IHN0eWxlIENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbHVtbnkgKG1vxbxlIGJ5xIcgbmFkcGlzYW5lIHByemV6IHN0eWxlIENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnU3pjemVnJm9hY3V0ZTvFgnkgZ8WCb3duZSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdXecWbd2lldGxhxIcgbmF6d8SZIHXFvHl0a293bmlrYT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnV3nFm3dpZXRsYcSHIGltacSZIHXFvHl0a293bmlrYT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdXecWbd2lldGxhxIcgbmF6d2lza28gdcW8eXRrb3duaWthPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ0xpbWl0dWogbGlzdMSZIHXFvHl0a293bmlrJm9hY3V0ZTt3IGRvIGN6xYJvbmsmb2FjdXRlO3cgbmFzdMSZcHVqxIVjeWNoIGdydXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ1R5bGtvIHcgZ3J1cGllICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ1d5xZt3aWV0bGnEhyB1xbx5dGtvd25pa293aT8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnVG8gcG9sZSBtb8W8ZSBieWMgcHVzdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnWm1pZW5uZSBkbGEgc3phYmxvbnUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnRG9zdGVwbmUgem1pZW5uZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnWm1pZW5uYSBQSFAnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRhIHd5c8WCYW5pYSc7CiRsYW5nWydoZWxwX3NlcnZlcl9uYW1lJ10gPSAnVHcmb2FjdXRlO2ogc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0FkcmVzIElQIHXFvHl0a293bmlrYSwgdyBjemFzaWUgd3lzecWCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBzdHJvbnkgemF3aWVyYWrEhWNlaiBmb3JtdWxhcnonOwokbGFuZ1snaGVscF9mYl92ZXJzaW9uJ10gPSAnV2Vyc2phIG1vZHXFgnUgRm9ybUJ1aWxkZXInOwokbGFuZ1snaGVscF90YWInXSA9ICdabmFrIHRhYnVsYWNqaSc7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0eXduZSBuYXp3eSBwJm9hY3V0ZTtsIGZvcm11bGFyemEgbW9nxIUgYnnEhyB1xbx5d2FuZSB6YW1pZW5uaWUgeiBub3JtYWxueW1pIG5hendhbWkuIEplc3QgdG8gc3pjemVnJm9hY3V0ZTtsbmllIHByenlkYXRuZSBwcnp5IHV6eXdhbml1IHRhZyZvYWN1dGU7dyBTbWFydHkgKGdkecW8IHRlbiBtYSBwcm9ibGVteSB6IG9ic8WCdWfEhSB6bmFrJm9hY3V0ZTt3IEFTQ0lJIHNwb3phIHpha3Jlc3UgMzItMTI2KS4gPGJyIC8+SW5uZSBwb2xhIGLEmWTEhSBkb3N0ZXBuZSBnZHkgZG9kYXN6IGplIGRvIGZvcm11bGFyemEuJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnQWJ5IHV6eXNrYcSHIGRvc3TEmXAgZG8gd2FydG/Fm2NpIHAmb2FjdXRlO2wgZm9ybXVsYXJ6YSBtb8W8ZXN6IHXFvHnEhyBub3RhY2ppICRmaWVsZG5hbWVfb2JqLCAkYWxpYXNfb2JqLCBvciAkZmxkXyNfb2JqLCBnZHppZSBrYcW8ZGUgcG9sZSBqZXN0IG9iaWVrdGVtIHphd2llcmFqxIVjeW06PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5OYXp3YSBwb2xhPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+VHlwIHBvbGE8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5pZDwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5XZXduxJl0cnpuZSBJRCBwb2xhPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPldhcnRvxZvEhyBjenl0ZWxuxIUgZGxhIGN6xYJvd2lla2E8L3RkPjwvdHI+DQo8dHI+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz52YWx1ZUFycmF5PC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PlRhYmxpY2Egd2FydG/Fm2NpIHBvbGE8L3RkPjwvdHI+PC90YWJsZT4NCjxlbT5OYSBwcnp5a8WCYWQ6PC9lbT4sIG1vxbxlc3ogdcW8ecSHICZxdW90O3skZmxkXzFfb2JqLT5uYW1lfSA9IHskZmxkXzFfb2JqLT52YWx1ZX0nOwokbGFuZ1snaGVscF9kYXRlX2Zvcm1hdCddID0gJ1NwcmF3ZMW6IDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPmRva3VtZW50YWNqaSBQSFA8L2E+IGFieSB1enlza2HEhyBwb21vYy4nOwokbGFuZ1snaGVscF92YXJpYWJsZV9uYW1lJ10gPSAnWm1pZW5uYSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdQb2xlIHJlcHJlemVudG93YW5lJzsKJGxhbmdbJ2xpbmtfYmFja190b19mb3JtJ10gPSAnJmxhcXVvOyBXciZvYWN1dGU7xIcgZG8gZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX3RlbXBsYXRlJ10gPSAnU3R3Jm9hY3V0ZTtyeiBwcnp5a8WCYWRvd3kgc3phYmxvbic7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBzemFibG9uIEhUTUwnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXJfdGVtcGxhdGUnXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBzemFibG9uIG5hZ8WCJm9hY3V0ZTt3a2EnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdTdHcmb2FjdXRlO3J6IHByenlrxYJhZG93eSBuYWfFgiZvYWN1dGU7d2VrJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ3puYWsgdGFidWxhY2ppJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdTemFibG9uIGplZG5laiBsaW5paSBwbGlrdSB3eW5pa293ZWdvJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnU3phYmxvbiBuYWfFgiZvYWN1dGU7d2thIHBsaWt1IHd5bmlrb3dlZ28nOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCBkbyBrbGlrbm1pxJljaWEgYWJ5IHBvdHdpZXJkemnEhyBmb3JtdWxhcnonOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgKHpvYmFjeiB6YWvFgmFka8SZIFphYXdhbnNvd2FuZSwgamXFm2xpIGNoY2VzeiB1ennEhyB0YWcmb2FjdXRlO3cgU21hcnR5KSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0Zvcm1hdCBkYXR5ICg8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIj5mb3JtYXR5IGRhdHkgdyBQSFA8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1XFvHl3YcSHIGVkeXRvcmEgV1lTSVdZRyBkbGEgcCZvYWN1dGU7bCB0ZWtzdG93eWNoICh0eWxrbyB3IEFkbWluaWUpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ1BvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdQcnp5Y2lza2kgYWtjamkgZm9ybXVsYXJ6YSc7CiRsYW5nWyd0aXRsZV9zb3J0YWJsZV9maWVsZCddID0gJ1BvbGUgc29ydHVqxIVjZSAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1N0YXJ0IHpha3Jlc3UgbGF0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnS29uaWVjIHpha3Jlc3UgbGF0JzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhciddID0gJ0RvbXnFm2xueSByb2snOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoVXN0YXcgamFrbyAtMSBieSBkb215xZtsbnltIGJ5xYIgb2JlY255IHJvayknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ1BvIHd5c8WCYW5pdSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ09kcG93aWVkxbogZG8gd3nFm3dpZXRsZW5pYSc7CiRsYW5nWydkaXNwbGF5X3RleHQnXSA9ICdXecWbd2lldGwgc3phYmxvbiB3eXN5xYJhbmlhJzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdQcnpla2llcnVqIGRvIHN0cm9ueSBzZXJ3aXN1JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEb2NlbG93YSBzdHJvbmEnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnTmF6d3kgcCZvYWN1dGU7bCBzxIUgd3ltYWdhbmUnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzX2xvbmcnXSA9ICdXeW1hZ2FqLCDFvGVieSBrYcW8ZSBwb2xlIG1pYcWCbyBzd29qxIUgbmF6d8SZPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1d5bWFnYWogdW5pa2FsbnljaCBuYXp3IHAmb2FjdXRlO2wnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1d5bWFnYWosIMW8ZWJ5IHdzenlzdGtpZSBuYXp3eSBwJm9hY3V0ZTtsIGJ5xYJ5IHVuaWthbG5lIChyJm9hY3V0ZTvFvG5pxYJ5IHNpxJkgb2Qgc2llYmllKT8nOwokbGFuZ1sndGl0bGVfcmVvcmRlcl9mb3JtJ10gPSAnUHJ6ZWdydXB1aiBwb2xhJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdaYcWCYWR1aiBzemFibG9uJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ1Rla3N0IHByenljaXNrdSAmcXVvdDtEb2RhaiZxdW90Oyc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdUZWtzdCBwcnp5Y2lza3UgJnF1b3Q7U2thc3VqJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldHVqIHptaWVubmUgamFrbyBudW1lcnkgbHViIMWCYcWEY3VjaHkgem5ha293ZSAoc3RyaW5naSknOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdQb3J6xIVkZWsgaW50ZXJwcmV0b3dhbmlhJzsKJGxhbmdbJ3RpdGxlX29yZGVyX2hlbHAnXSA9ICdKZcW8ZWxpIGlzdG5pZWplIHdpxJljZWogbmnFvCBqZWRubyBwb2xlIG9ibGljemVuaW93ZSwgc8SFIG9uZSBwcnpldHdhcnphbmUgb2QgbmFqbW5pZWpzemVnbyBkbyBuYWp3acSZa3N6ZWdvIG51bWVydSB3IGtvbGVqbm/Fm2NpJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZG8gb2JsaWN6ZW5pYSc7CiRsYW5nWyd0aXRsZV9zdHJpbmcnXSA9ICfFgWHFhGN1Y2ggem5ha293eSAoc3RyaW5nKSc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJ5Y3puZSc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ1d5xZt3aWV0bGFqIGZvcm11bGFyeiB3IHRyZcWbY2kgc3Ryb255IChpbmxpbmUpPyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybV9oZWxwJ10gPSAnV3nFm3dpZXRsYW5pZSB3IHRyZcWbY2kgb3puYWN6YSwgxbxlIGZvcm11bGFyeiB6YXN0xJlwdWplIHpuYWN6bmlrIHtjbXNfbW9kdWxlfSwgYmV6IHRlZ28gdXN0YXdpZW5pYSBmb3JtdWxhcnogemFzdMSFcGkgKHtjb250ZW50fSkuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdXYXJ0b8WbxIcgZG9tecWbbG5hIGRsYSBwb2xhJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdXeWN6ecWbY2nEhyB3YXJ0b8WbxIcgZG9tecWbbG7EhSBwbyBrbGlrbmnEmWNpdT8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnWmF6bmFjeiB0xJkgb3BjasSZIGJ5IHNpbG5payB3eWthc293YcWCIGRvbXnFm2xuxIUgd2FydG/Fm8SHIGtpZWR5IHXFvHl0a293bmlrIG5hY2nFm25pZSBuYSB0byBwb2xlIHcgZm9ybXVsYXJ6dSc7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ1NrYXN1aiBwbGlrIHogc2Vyd2VyYSBwbyBwcnpldHdvcnplbml1ICh3eXPFgmFuaXUgbWFpbGEpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGRsYSB0ZWdvIHBvbGEnOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdF9sb25nJ10gPSAnVcW8eWogcGXFgm5lZ28gd3l3b8WCYW5pYSBKYXZhc2NyaXB0LHfFgsSFY3phasSFYyB3eWRhcnplbmllLCBrdCZvYWN1dGU7cmUgY2hjZXN6IMWbbGVkemnEhyAsIG5wLiBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnSmF2YXNjcmlwdCBkbGEgd3lzecWCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7LjxiciAvPlRoaXMgd2lsbCBwcm9iYWJseSBub3Qgd29yayB3ZWxsIGlmIHlvdSB1c2UgdGhlICZxdW90O3NhZmV0eSBzY3JpcHQmcXVvdDsgb3B0aW9uIGFib3ZlLic7CiRsYW5nWydlbWFpbF9mcm9tX2FkZHJfaGVscCddID0gJ05pZSB3eWJpZXJhaiB0dXRhaiBkb3dvbG5lZ28gYWRyZXN1LSB3aWVsdSBkb3N0YXdjJm9hY3V0ZTt3IGludGVybmV0b3d5Y2ggbmllIGRvc3RhcmN6eTxiciAvPndpYWRvbW/Fm2NpIGplxZtsaSB1xbx5amVzeiBkb21lbnkgaW5uZWogbmnFvCBUd29qYSB3xYJhc25hPGJyIC8+KHXFvHlqIG5hIHByemvFgmFkICBhZG1pbkAlcyknOwokbGFuZ1sndGl0bGVfc3dpdGNoX2FkdmFuY2VkJ10gPSAnUG90enJlYnVqZXN6IG5vd2VnbyB0eXB1IHBvbGE/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdaYSBkdcW8byB0eXAmb2FjdXRlO3cgcCZvYWN1dGU7bD8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnUHJ6ZcWCxIVjeiB3IFRyeWIgWmFhd2Fuc293YW55JzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnUHJ6ZcWCxIVjeiB3IFRyeWIgUHJvc3R5JzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0thdGFsb2cgZ2R6aWUgemFwaXNhbnkgYsSZZHppZSBwbGlrJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdF9oZWxwJ10gPSAnVG8gbXVzaSBiecSHIGthdGFsb2cgeiBwcmF3YW1pIHphcGlzdSBkbGEgc2Vyd2VyYS48YnIgLz5KZcWbbGkgbWFzeiB3xIV0cGxpd2/Fm2NpIHVzdGF3IG1hc2vEmSA3NzcuPGJyIC8+U3ByYXdkxbogdGFrxbxlIGN6eSBuaWUgbWFzeiB1c3Rhd2lvbnljaCByZXNydHlrY2ppIHphcGlzdSB3IGthdGFsb2dhY2ggdyBrb25maWd1cmFjamkgUEhQLic7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPk1vZHXFgiBDYXRhbG9nZXIgamVzdCBuaWV6YWluc3RhbG93YW55IGx1YiB3ecWCxIVjem9ueS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1VXQUdBISc7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnU3phYmxvbiBkb215xZtsbnknOwokbGFuZ1sndGFibGVfbGVmdF90ZW1wbGF0ZSddID0gJ1N6YWJsb24gdGFiZWxraSwgdHl0dcWCeSBwbyBsZXdlaic7CiRsYW5nWyd0YWJsZV90b3BfdGVtcGxhdGUnXSA9ICdTemFibG9uIHRhYmVsa2ksIHR5dHXFgiBuYSBnJm9hY3V0ZTtyemUnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnU3phYmxvbiB6ICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0N6eSBuYXBld25vIGNoY2VzeiBuYWRwaXNhxIcgc3cmb2FjdXRlO2ogc3phYmxvbiB3eWJyYW55bSBzemFibG9uZW0/IChOYXdldCBqZcWbbGkgbmFjacWbbmllc3ogT0ssIGLEmWR6aWVzeiBtdXNpYcWCIHphcGlzYWMgem1pYW55KSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdCxYLEhWQgcHJ6eSBvYmxpY3phbml1IHdhcnRvxZtjaSAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ0JyYWsgaW5mb3JtYWNqaSBvIEhUVFBfUkVGRVJFUic7CiRsYW5nWyd2YWxpZGF0aW9uX3BhcmFtX2Vycm9yJ10gPSAnQsWCxIVkIHdhbGlkYWNqaSEgVXBld25paiBzacSZLCDFvGUgc2tvcGlvd2HFgmXFmyBwb3ByYXduaWUgYWRyZXMgeiB3aWFkb21vxZtjaSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ0LFgsSFZCB3YWxpZGFjamkhIFVwZXduaWogc2nEmSwgxbxlIHNrb3Bpb3dhxYJlxZsgcG9wcmF3bmllIGFkcmVzIHogd2lhZG9tb8WbY2khJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9fZmllbGRfZXJyb3InXSA9ICdCxYLEhWQgd2FsaWRhY2ppISBCcmFrIHBvbGEgZS1tYWlsIHcgZm9ybXVsYXJ6dSEnOwokbGFuZ1sndXBncmFkZTAzdG8wNCddID0gJ0Zvcm0gVGVtcGxhdGUgd2FzIHVwZGF0ZWQgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIDAuMyB0byB2ZXJzaW9uIDAuNCB1cGdyYWRlLiBZb3UgbWF5IG5lZWQgdG8gbWFrZSBzb21lIGZpeGVzLiBJZiB5b3UmIzAzOTtyZSB1c2luZyB0aGUgZGVmYXVsdCBmb3JtLCBzaW1wbHkgcmVwbGFjZSB0aGlzIHRlbXBsYXRlIHdpdGggJnF1b3Q7ZGVmYXVsdCZxdW90OyB1c2luZyB0aGUgcHVsbGRvd24gYWJvdmUuJzsKJGxhbmdbJ2FkbWluZGVzYyddID0gJ0RvZGF3YWosIGVkeXR1aiBpIHphcnrEhWR6YWogaW50ZXJha3R5d255bWkgZm9ybXVsYXJ6YW1pJzsKJGxhbmdbJ29wZXJhdG9yc19oZWxwJ10gPSAnSmXFvGVsaSB1xbx5d2FzeiBld2FsdWFjamkgY2nEhWcmb2FjdXRlO3csIGplZHluxIUgb3BlcmFjasSFIGplc3QgxYLEhWN6ZW5pZSAoKyksIGplxZtsaSB6YcWbIHXFvHl3YXN6IGV3YWx1YWNqaSBudW1lcnljem5laiBtb8W8ZXN6IHNrb3J6eXN0YWMgeiBwb2RzdGF3b3d5Y2ggZHppYcWCYcWEIG1hdGVtYXR5Y3pueWNoICgrLCAtLCAqLCAvKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnU3R5Y3plxYQnOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0x1dHknOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcnplYyc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnS3dpZWNpZcWEJzsKJGxhbmdbJ2RhdGVfbWF5J10gPSAnTWFqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0N6ZXJ3aWVjJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0xpcGllYyc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ1NpZXJwaWXFhCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1dyemVzaWXFhCc7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdQYcW6ZHppZXJuaWsnOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ0xpc3RvcGFkJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdHcnVkemllxYQnOwokbGFuZ1snc3VibWlzc2lvbl9lcnJvciddID0gJ1d5c3TEhXBpxYIgYsWCxIVkIHBvZGN6YXMgcHJ6ZXR3YXJ6YW5pYSBmb3JtdWxhcnphLic7CiRsYW5nWydzdWJtaXRfZXJyb3InXSA9ICdCxYLEhWQgcG9kY3phcyB3eXN5xYJhbmlhOiAlcyc7CiRsYW5nWyd1cGxvYWRzX2Vycm9yJ10gPSAnQsWCxIVkIHBvZGN6YXMgemFwaXN1IHBsaWt1IGRvIG1vZHXFgnUgVXBsb2FkczogJXMnOwokbGFuZ1snbm91cGxvYWRzX2Vycm9yJ10gPSAnTmllIHpuYWxlemlvbm8gbW9kdcWCdSBVcGxvYWRzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdXeXN0xIVwacWCIGLFgsSFZCBwb2RjemFzIHByemV0d2FyemFuaWEgcGxpa3UgJXMgKG5hendhIHR5bWN6YXNvd2E6ICVzLCB0eXAgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnQsWCxIVkOiBOaWUgbW/FvG5hIHV6eXNrYcSHIHd5xYLEhWN6bmVnbyBkb3N0xJlwdSBkbyBwbGlrdS4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEaW15xZtsbmllOiBvZHpuYWN6aW55JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RpbXnFm2xuaWU6IHphem5hY3ppbnknOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ1d5bmlrIHd5c8WCYW5pYSBmb3JtdWxhcnphJzsKJGxhbmdbJ2VtYWlsX3RlbXBsYXRlX25vdF9zZXQnXSA9ICc8YnIvPlN6YWJsb24gZW1haWxhIGplc3pjemUgbmllIGplc3QgdXN0YXdpb255ISc7CiRsYW5nWydtaXNzaW5nX2Ntc19tYWlsZXInXSA9ICdGb3JtQnVpbGRlcjogQnJhayB3eW1hZ2FuZWdvIG1vZHXFgnUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVxbx5dGtvd25payB6YWFrY2VwdG93YcWCICVzIG9kICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdXeWRhcnplbmllIGdlbmVyb3dhbmUgZ2R5IGZvcm11bGFyeiBqZXN0IHd5c3nFgmFueSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdXeWRhcnplbmllIGdlbmVyb3dhbmUgZ2R5IHd5c3TEhXBpIGLFgsSFZCBwb2RjemFzIHd5c3nFgmFuaWEgZm9ybXVsYXJ6YSc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJ1d5ZGFyemVuaWUgZ2VuZXJvd2FuZSBnZHkgZm9ybXVsYXJ6IGplc3Qgd3nFm3dpZXRsYW55JzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdJRCBvZHBvd2llZHppLiBVxbx5d2FuZSBwcnpleiBtb2R1xYIgRm9ybUJyb3dzZXInOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX3Bhc3NlZF9mcm9tX3RhZyddID0gJ0RvbXnFm2xuZSB3YXJ0b8WbY2kgcG9sYSAoc3ByYXdkxbogdyBwb21vY3kgbW9kdcWCdSknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2ZpZWxkX2lkJ10gPSAnSUQgcG9sYSBkbGEgd2V3bsSZdHJ6bnljaCBvcGVyYWNqaSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9uYW1lJ10gPSAnTmF6d2EgZm9ybXVsYXJ6YSc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0lEIGZvcm11bGFyemEgZGxhIHdld27EmXRyem55Y2ggb3BlcmFjamknOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2dlbmVyYWwnXSA9ICdPZyZvYWN1dGU7bG5lIHBhcmFtZXRyeSBkbGEgd2V3bsSZdHJ6bnljaCBvcGVyYWNqaSc7CiRsYW5nWyd0ZW1wbGF0ZV92YXJpYWJsZV9oZWxwJ10gPSAnPGgzPkZvcm0gVGVtcGxhdGUgVmFyaWFibGVzPC9oMz4NCjxwPllvdSBjYW4gZWRpdCBpdCB0byBtYWtlIHlvdXIgZm9ybSBsYXlvdXQgbG9vayBhbnkgd2F5IHlvdSYjMDM5O2QgbGlrZS4NCiAgIFRvIG1ha2UgdGhlIGZvcm0gd29yaywgeW91JiMwMzk7bGwgbmVlZCB0byBhbHdheXMgaW5jbHVkZSB0aGUgeyRmYl9oaWRkZW59IGFuZCB7JHN1Ym1pdH0NCiAgIHRhZ3MuPC9wPg0KDQo8cD5Zb3UgY2FuIGFjY2VzcyB5b3VyIGZvcm0gZmllbGRzIGVpdGhlciB1c2luZyB0aGUgJGZpZWxkcyBhcnJheSBvciBieSBkaXJlY3RseSBhY2Nlc3NpbmcgZmllbGRzIGJ5IHRoZWlyIG5hbWVzIChlLmcuLCB7JG15ZmllbGQtPmlucHV0fSApPC9wPg0KDQoNCjxwPkVhY2ggZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+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+JzsKJGxhbmdbJ3Bvc3RfaW5zdGFsbCddID0gJzxwPk1ha2Ugc3VyZSB0byBzZXQgdGhlICZxdW90O01vZGlmeSBGb3JtcyZxdW90OyBwZXJtaXNzaW9ucw0Kb24gdXNlcnMgd2hvIHdpbGwgYmUgYWRtaW5pc3RlcmluZyBmZWVkYmFjayBmb3Jtcy4gQWxzbywgaWYgeW91JiMwMzk7bGwgYmUgZW1haWxpbmcgZm9ybQ0KcmVzdWx0cywgYmUgc3VyZSB0byB1cGRhdGUgdGhlIENvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS48L3A+DQo8cD5QbGVhc2UgYmUgYXdhcmUgdGhhdCBhIGZlZWRiYWNrIGZvcm0gc2hvdWxkIG5vdCBiZSBhY3RpdmUgKGUuZy4sIHVzYWJsZSBieSB0aGUgcHVibGljKSB3aGlsZQ0KeW91IGFyZSBzdGlsbCBlZGl0aW5nIHRoZSBmb3JtLiBZb3Ugc2hvdWxkIGNyZWF0ZSB0aGUgZm9ybSwgYW5kIHBsYWNlIHRoZSB0YWcgaW50byBhbiBhY3RpdmUNCmNvbnRlbnQgcGFnZSBvbmx5IHdoZW4geW91IGhhdmUgZmluaXNoZWQgZWRpdGluZy4gT3RoZXJ3aXNlLCBlcnJvbmVvdXMgcmVzdWx0cyBjb3VsZCBiZSByZXR1cm5lZC48L3A+DQo8cD5BZGRpdGlvbmFsbHksIHRoaXMgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IHBhcmFsbGVsIGVkaXRpbmcgb2YgZm9ybXMuIFBsZWFzZSB0YWtlIGNhcmUgdGhhdA0Kb25seSBvbmUgYWRtaW4gaXMgZWRpdGluZyBhIGdpdmVuIGZvcm0gYXQgYSBnaXZlbiB0aW1lLjwvcD4nOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IERvZXMgVGhpcyBEbz88L2gzPg0KPHA+VGhlIEZvcm0gQnVpbGRlciBNb2R1bGUgYWxsb3dzIHlvdSB0byBjcmVhdGUgZmVlZGJhY2sgZm9ybXMgKGluIGZhY3QsIGl0JiMwMzk7cyBhIHJlcGxhY2VtZW50IG9mIHRoZSBvcmlnaW5hbCBGZWVkYmFjayBGb3JtIG1vZHVsZSksIHdpdGggdGhlIGFkZGVkIHBvd2VyIG9mIGRhdGFiYXNlIHN0b3JhZ2UuIFdpdGggaXRzIGNvbXBhbmlvbiBtb2R1bGUgRm9ybSBCcm93c2VyLCB5b3UgY2FuIHVzZSBpdCB0byBjcmVhdGUgc2ltcGxlIGRhdGFiYXNlIGFwcGxpY2F0aW9ucy48L3A+DQo8cD5UaGUgZm9ybXMgY3JlYXRlZCB1c2luZyB0aGUgRm9ybSBCdWlsZGVyIG1heSBiZSBpbnNlcnRlZA0KaW50byB0ZW1wbGF0ZXMgYW5kL29yIGNvbnRlbnQgcGFnZXMuIEZvcm1zIG1heSBjb250YWluIG1hbnkga2luZHMgb2YgaW5wdXRzLCBhbmQgbWF5IGhhdmUNCnZhbGlkYXRpb24gYXBwbGllZCB0byB0aGVzZSBpbnB1dHMuIFRoZSByZXN1bHRzIG9mIHRoZXNlIGZvcm1zIG1heSBiZSBoYW5kbGVkIGluIGEgdmFyaWV0eSBvZiB3YXlzLjwvcD4NCg0KPGgzPkhvdyBEbyBJIFVzZSBpdD88L2gzPg0KPFA+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+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+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+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+PHRkPnRoZSBJRCBvZiB0aGUgZmllbGQmIzAzOTtzIGlucHV0ICh1c2VmdWwgZm9yIGxhYmVsIGZvcj0mcXVvdDtmb28mcXVvdDspPC90ZD48L3RyPg0KPHRyPjx0ZD5maWVsZC0+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+Rm9ybUJ1aWxkZXIgaXMgbm90IHlldCBpbnRlZ3JhdGVkIHdpdGggRnJvbnRFbmQgVXNlcnMuIEl0IHdpbGwgYmUuPC9saT4NCjxsaT5Gb3JtQnVpbGRlciBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBwcmV0dHkgdXJscywgYWx0aG91Z2ggdGhhdCBzaG91bGRuJiMwMzk7dCBtYXR0ZXIgc2luY2UgdGhlIHVzZXIgc2lkZSBpcyBwcmV0dHkgc2ltcGxlLjwvbGk+DQo8bGk+RmlsZVVwbG9hZCBGaWVsZHMgbWF5IG5vdCB3b3JrIGNvcnJlY3RseSB3aXRoIG11bHRpcGFnZSBmb3Jtcy48L2xpPg0KPC91bD4NCg0KPGgzPlRyb3VibGVzaG9vdGluZzwvaDM+DQo8b2w+PGxpPiBGaXJzdCBzdGVwIGlzIHRvIGNoZWNrIHlvdSYjMDM5O3JlIHJ1bm5pbmcgQ01TIDEuMSBvciBsYXRlci48L2xpPg0KPGxpPiBTZWNvbmQgc3RlcCBpcyB0byByZWFkIGFuZCB1bmRlcnN0YW5kIHRoZSBjYXZlYXQgYWJvdXQgV1lTSVdZRyBlZGl0b3JzIHVwIGluIHRoZQ0Kc2VjdGlvbiA8ZW0+QWRkaW5nIGEgRm9ybSB0byBhIFBhZ2U8L2VtPi48L2xpPg0KPGxpPiBJZiB5b3UmIzAzOTtyZSBtaXNzaW5nIGZpZWxkcyBpbiBhbiBlbWFpbCB0aGF0IGdldHMgZ2VuZXJhdGVkLCBjaGVjayB0aGUgZGlzcG9zaXRpb24gZmllbGQmIzAzOTtzIHRlbXBsYXRlLCBhbmQgbWFrZSBzdXJlIHlvdSYjMDM5O3JlIHNwZWNpZnlpbmcgdGhlIG1pc3NpbmcgZmllbGRzLiBTZWVtcyBvYnZpb3VzLCBidXQgaXQmIzAzOTtzIGFuIGVhc3kgbWlzdGFrZSB0byBtYWtlLjwvbGk+DQo8bGk+VW5jaGVjayB0aGUgJnF1b3Q7SGlkZSBFcnJvcnMmcXVvdDsgY2hlY2tib3ggaW4gdGhlIGdsb2JhbCBvcHRpb25zLCBhbmQgc2VlIHdoYXQgbWVzc2FnZSBnZXRzIGRpc3BsYXllZCB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+IEp1c3QgbWVzcyBhcm91bmQgYW5kIHRyeSBjbGlja2luZyBvbiBsaW5rcyBhbmQgaWNvbnMgYW5kIHN0dWZmLiBTZWUgd2hhdCBoYXBwZW5zLjwvbGk+DQo8bGk+IExhc3QgcmVzcG9ydCBpcyB0byBlbWFpbCBtZSBvciBjYXRjaCBtZSBvbiBJUkMgYW5kIHdlIGNhbiBnbyBmcm9tIHRoZXJlLjwvbGk+DQo8L29sPiANCjxwPlRoaXMgaXMgbm8gbG9uZ2VyIGEgcGFydGljdWxhcmx5IGVhcmx5IHZlcnNpb24sIGJ1dCBpdCBpcyBwcm9iYWJseSBzdGlsbCBidWdneS4gV2hpbGUgSSYjMDM5O3ZlIGRvbmUgYWxsIEkgY2FuDQp0byBtYWtlIHN1cmUgbm8gZWdyZWdpb3VzIGJ1Z3MgaGF2ZSBjcmVwdCBpbiwgSSBoYXZlIHRvIGFkbWl0IHRoYXQgZHVyaW5nIGVhcmx5IHRlc3RpbmcsIHRoaXMgcHJvZ3JhbQ0KcmV2ZWFsZWQgc2V2ZW4gY29ja3JvYWNoZXMsIHR3byBlYXJ3aWdzLCBhIHNtYWxsIGZhbWlseSBvZiBhcGhpZHMsIGFuZCBhIHdhbGtpbmctc3RpY2sgaW5zZWN0LiBJdCBhbHNvDQphdGUgdGhlIG5laWdoYm9yJiMwMzk7cyBuYXN0eSBsaXR0bGUgeWFwIGRvZywgZm9yIHdoaWNoIEkgd2FzIGluYXBwcm9wcmlhdGVseSBncmF0ZWZ1bC48L3A+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8bGk+VGhlIGF1dGhvciBjYW4gb2Z0ZW4gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9ImlyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyI+Q01TIElSQyBDaGFubmVsPC9hPi48L2xpPg0KPGxpPkxhc3RseSwgeW91IG1heSBoYXZlIHNvbWUgc3VjY2VzcyBlbWFpbGluZyB0aGUgYXV0aG9yIGRpcmVjdGx5IGFuZCBncm92ZWxsaW5nIGZvciBmcmVlIHN1cHBvcnQuPC9saT4NCjwvdWw+DQo8cD5LZWVwIGluIG1pbmQgdGhhdCB0aGUgYXV0aG9yIGhhcyBwdXQgaHVuZHJlZHMgb2YgaG91cnMgaW50byB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhpcyBtb2R1bGUuIFBsZWFzZSB0YWtlIHRoZSB0aW1lIHRvIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gYmVmb3JlIHNlbmRpbmcgcXVlc3Rpb25zLiBFaXRoZXIgdGhhdCwgb3Igd3JpdGUgeW91ciBxdWVzdGlvbnMgb24gZmluYW5jaWFsbHkgbmVnb3RpYWJsZSBpbnN0cnVtZW50cyAoaS5lLiwgY2FzaCkuPC9wPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmYW1wO2NvcHk7IDIwMDgsIFNhbXVlbCBHb2xkc3RlaW4gPGEgaHJlZj0ibWFpbHRvOnNqZ0BjbXNtb2R1bGVzLmNvbSI+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNS4zLiAyNiBNYXkgMDguIEJ1Z2ZpeGVzIHRvIHByZXZpb3VzIHNldCBvZiBidWdmaXhlcy4gTm93IHJlYWR5IGZvciBtYWpvciB1cGdyYWRlcyBmb3IgMC42LjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMi4gMjUgTWF5IDA4LiBCdWdmaXhlcy4gUmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3Igc3Vic3RhbnRpYWwgcmV3b3JraW5nIGZvciAwLjY8L2xpPg0KPGxpPlZlcnNpb24gMC41LjEuIDMwIEFwcmlsIDA4LiBCdWdmaXhlcywgcmV3cm90ZSBzb21lIG9mIHRoZSBGaWxlIFVwbG9hZCBjb2RlIHRvIHByZXZlbnQgd2hpdGUgc2NyZWVuIG9mIGFubm95YW5jZS48L2xpPg0KPGxpPlZlcnNpb24gMC41LiAxOSBBcHJpbCAwOC4gQnVnZml4ZXMsIHN1cHBvcnQgZm9yIEZvcm1Ccm93c2VyIGZpeGVzIGFuZCBmZWF0dXJlcywgZGlzcG9zaXRpb24gdHlwZSBmb3IgdXBjb21pbmcgRm9ybUJyb3dzZXIgdmVyc2lvbi48L2xpPg0KPGxpPlZlcnNpb24gMC40LjQuIDI2IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciByYWRpbyBidXR0b24gZ3JvdXBzLCBmaXggZm9yIHZhbGlkYXRpb24gb2YgRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZC48L2xpPg0KPGxpPlZlcnNpb24gMC40LjMuIDE4IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBwdWxsZG93bnMgdXNpbmcgbnVtYmVycywgb3B0aW9uIHRvIGlubGluZSBmb3JtLCBmaXhlcyBmb3IgdGFibGUtbGF5b3V0cyBwcm92aWRlZCBieSBBcCBNdXRodSwgZml4IGZvciByZXF1aXJhYmlsaXR5IG9mIERpc3Bvc2l0aW9ucy48L2xpPg0KPGxpPlZlcnNpb24gMC40LjIuIDE0IFNlcHQgMDcuIEJ1Z2ZpeGVzIGZvciBYTUwgZXhwb3J0LCBSYWRpb0J1dHRvbiBHcm91cCBzdWJtaXNzaW9uLCBhbmQgSFRNTCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4xLiBCdWdmaXhlcyBmb3IgRmlsZSBEaXNwb3NpdGlvbiBUeXBlcy48L2xpPg0KPGxpPlZlcnNpb24gMC40DQoJPHVsPg0KCQk8bGk+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+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjM1OTE0NTQ5Nzg3ODY3NjUwMC4xMjEzMjAwMjc4LjEyMTkwNTg2NTkuMTIxOTA2Mjc0MS44OCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTkwNTg2NTkuODcuMTYudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWRldi5jbXNtYWRlc2ltcGxlLm9yZ3x1dG1jY3Q9L3x1dG1jbWQ9cmVmZXJyYWwnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm0gQnVpbGRlcic7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0ZpZWxkIFR5cGUgTm90IFNldCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLUZpZWxkc2V0IEVuZCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0U3RhcnQnXSA9ICctRmllbGRzZXQgU3RhcnQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGQnXSA9ICdUZXh0IElucHV0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkRXhwYW5kYWJsZSddID0gJ1RleHQgSW5wdXQgKE11bHRpcGxlKSc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRBcmVhRmllbGQnXSA9ICdUZXh0IEFyZWEnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1B1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpc2VsZWN0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1UuUy4gU3RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHJvdmluY2VQaWNrZXJGaWVsZCddID0gJ0NhbmFkaWFuIFByb3ZpbmNlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0NvdW50cnlQaWNrZXJGaWVsZCddID0gJ0NvdW50cnkgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGF0ZVBpY2tlckZpZWxkJ10gPSAnRGF0ZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9UaW1lUGlja2VyRmllbGQnXSA9ICdUaW1lIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1JhZGlvR3JvdXBGaWVsZCddID0gJ1JhZGlvIEJ1dHRvbiBHcm91cCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGlyZWN0b3InXSA9ICcqRW1haWwgUmVzdWx0cyBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRmlsZURpcmVjdG9yJ10gPSAnKlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZShzKSBCYXNlZCBvbiBNdWx0aXBsZSBTZWxlY3Rpb25zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypSZWRpcmVjdCB0byBQYWdlIEJhc2VkIG9uIFB1bGxkb3duJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbCddID0gJypFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxDb25maXJtYXRpb24nXSA9ICcqVmFsaWRhdGUtdmlhLUVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqV3JpdGUgUmVzdWx0cyB0byBGbGF0IEZpbGUnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRhdGFiYXNlJ10gPSAnKlN0b3JlIFJlc3VsdHMgaW4gRGF0YWJhc2UnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlN0b3JlIFJlc3VsdHMgZm9yIEZvcm1Ccm93c2VyIE1vZHVsZSB2LjMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvblVzZXJUYWcnXSA9ICcqQ2FsbCBBIFVzZXIgRGVmaW5lZCBUYWcgV2l0aCB0aGUgRm9ybSBSZXN1bHRzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EZWxpdmVyVG9FbWFpbEFkZHJlc3NGaWVsZCddID0gJypFbWFpbCB0byBVc2VyLVN1cHBsaWVkIEVtYWlsIEFkZHJlc3MnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsU2l0ZUFkbWluJ10gPSAnKkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctUGFnZSBCcmVhayc7CiRsYW5nWydmaWVsZF90eXBlX0ZpbGVVcGxvYWRGaWVsZCddID0gJ0ZpbGUgVXBsb2FkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBBZGRyZXNzJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsTmFtZUZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7RnJvbSBOYW1lJnF1b3Q7IEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsU3ViamVjdEZpZWxkJ10gPSAnRW1haWwgJnF1b3Q7U3ViamVjdCZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRpY1RleHRGaWVsZCddID0gJy1TdGF0aWMgVGV4dCc7CiRsYW5nWydmaWVsZF90eXBlX1N5c3RlbUxpbmtGaWVsZCddID0gJy1TdGF0aWMgTGluayc7CiRsYW5nWydmaWVsZF90eXBlX0xpbmtGaWVsZCddID0gJ0xpbmsgKFVzZXItZW50ZXJlZCknOwokbGFuZ1snZmllbGRfdHlwZV9IaWRkZW5GaWVsZCddID0gJy1IaWRkZW4gRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLUNvbXB1dGVkIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ05vIFZhbGlkYXRpb24nOwokbGFuZ1sndmFsaWRhdGlvbl9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd2YWxpZGF0aW9uX2ludGVnZXInXSA9ICdJbnRlZ2VyJzsKJGxhbmdbJ3ZhbGlkYXRpb25fZW1haWxfYWRkcmVzcyddID0gJ0VtYWlsIEFkZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnUGhvbmUgTnVtYmVyIChVUyknOwokbGFuZ1sndmFsaWRhdGlvbl9tdXN0X2NoZWNrJ10gPSAnTXVzdCBCZSBDaGVja2VkJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbWF0Y2gnXSA9ICdNYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9ub21hdGNoJ10gPSAnRG9lc24mIzAzOTt0IG1hdGNoIFJlZ3VsYXIgRXhwcmVzc2lvbic7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnQSB2YWx1ZSB3YXMgbm90IHN1cHBsaWVkIGZvciBhIHJlcXVpcmVkIGZpZWxkJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnRGlnaXRlIHVtIHZhbG9yIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfbnVtYmVyJ10gPSAnRGlnaXRlIHVtIG51bWVybyBwYXJhICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ0RpZ2l0ZSB1bWEgZW50cmFkYSB2JmFhY3V0ZTtsaWRhIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2ludGVnZXInXSA9ICdQbGVhc2UgZW50ZXIgYW4gaW50ZWdlciB2YWx1ZSBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnRGlnaXRlIHVtIEUtbWFpbCB2JmFhY3V0ZTtsaWRvIHBhcmEgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FfcGhvbmUnXSA9ICdEaWdpdGUgdW0gTnVtZXJvIGRlIFRlbGVmb25lIHYmYWFjdXRlO2xpZG8gcGFyYSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyBuJmF0aWxkZTtvIHBhcmVjZSBzZXIgdW0gRS1tYWlsIHYmYWFjdXRlO2xpZG8hJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdEaWdpdGUgdW0gdmFsb3IgcXVlIG4mYXRpbGRlO28gc2VqYSBtYWlzIGRvIHF1ZSAlcyBjYXJhY3RlcmVzJzsKJGxhbmdbJ3RpdGxlX2xpc3RfZGVsaW1pdGVyJ10gPSAnQ2hhcmFjdGVyIHRvIHVzZSBhcyBkZWxpbWl0ZXIgaW4gcmVzdWx0cyB0aGF0IHJldHVybiBtb3JlIHRoYW4gb25lIHZhbHVlJzsKJGxhbmdbJ3lvdV9uZWVkX3Blcm1pc3Npb24nXSA9ICdZb3UgbmVlZCB0aGUgJnF1b3Q7JXMmcXVvdDsgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoYXQgb3BlcmF0aW9uLic7CiRsYW5nWydsYWNrcGVybWlzc2lvbiddID0gJ1NvcnJ5ISBZb3UgZG9uJiMwMzk7dCBoYXZlIGFkZXF1YXRlIHByaXZpbGVnZXMgdG8gYWNjZXNzIHRoaXMgc2VjdGlvbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0ZpZWxkIG9yZGVyIHVwZGF0ZWQuJzsKJGxhbmdbJ2Zvcm1fZGVsZXRlZCddID0gJ0Zvcm0gZGVsZXRlZC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0ZpZWxkIGRlbGV0ZWQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0NvbmZpZ3VyYXRpb24gVXBkYXRlZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdZb3UgbXVzdCBjaGVjayAmcXVvdDslcyZxdW90OyBpbiBvcmRlciB0byBjb250aW51ZS4nOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ1lvdSBuZWVkIHRvIHNwZWNpZnkgYXQgbGVhc3Qgb25lIGRlc3RpbmF0aW9uIGFkZHJlc3MhJzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZm9ybSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhlIGZvcm0gJXM/JzsKJGxhbmdbJ2FyZV95b3Vfc3VyZV9kZWxldGVfZmllbGQnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmaWVsZCAlcz8nOwokbGFuZ1snbm90aWNlX3NlbGVjdF90eXBlJ10gPSAnQWR2YW5jZWQgb3B0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSB1bnRpbCB0aGUgZmllbGQgdHlwZSBoYXMgYmVlbiBzZXQuJzsKJGxhbmdbJ2ZpZWxkX25hbWVfaW5fdXNlJ10gPSAnVGhlIGZpZWxkIG5hbWUgJnF1b3Q7JXMmcXVvdDsgaXMgYWxyZWFkeSBpbiB1c2UuIFBsZWFzZSB1c2UgdW5pcXVlIGZpZWxkIG5hbWVzLCBvciBkaXNhYmxlIHVuaXF1ZSBmaWVsZCBuYW1lcyBpbiB0aGUgRm9ybSBCdWlsZGVyIGNvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGaWVsZHMgbXVzdCBiZSBuYW1lZCwgdW5sZXNzIHlvdSBkaXNhYmxlIHRoaXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydhbm9ueW1vdXMnXSA9ICdBbm9ueW1vdXMnOwokbGFuZ1snYWJicmV2aWF0aW9uX2xlbmd0aCddID0gJ0xlbjogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBib3hlcyc7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgb3B0aW9ucyc7CiRsYW5nWyd0ZXh0X2xlbmd0aCddID0gJyVzIGNoYXJzLic7CiRsYW5nWydvcmRlciddID0gJ09yZGVyJzsKJGxhbmdbJ3Vuc3BlY2lmaWVkJ10gPSAnW3Vuc3BlY2lmaWVkXSc7CiRsYW5nWydhZGRlZCddID0gJ2FkZGVkJzsKJGxhbmdbJ3VwZGF0ZWQnXSA9ICd1cGRhdGVkJzsKJGxhbmdbJ3NvcnRfb3B0aW9ucyddID0gJ1NvcnQgb3B0aW9ucyBvbiBvdXRwdXQnOwokbGFuZ1snc2VsZWN0X29uZSddID0gJ1NlbGVjdCBPbmUnOwokbGFuZ1snc2VsZWN0X3R5cGUnXSA9ICdTZWxlY3QgVHlwZSc7CiRsYW5nWyd0byddID0gJ1RvJzsKJGxhbmdbJ3llcyddID0gJ1llcyc7CiRsYW5nWydubyddID0gJ05vJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdyZWNpcGllbnRzJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnU2F2ZSc7CiRsYW5nWydhZGQnXSA9ICdBZGQnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBkYXRlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU2F2ZSBhbmQgQ29udGludWUgRWRpdGluZyc7CiRsYW5nWydpbmZvcm1hdGlvbiddID0gJ0luZm9ybWF0aW9uJzsKJGxhbmdbJ2F1dG9tYXRpYyddID0gJ0F1dG9tYXRpYyc7CiRsYW5nWydmb3JtcyddID0gJ0Zvcm1zJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtICVzJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb24nXSA9ICdDb25maWd1cmF0aW9uJzsKJGxhbmdbJ2ZpZWxkX3JlcXVpcmVtZW50X3VwZGF0ZWQnXSA9ICdGaWVsZCByZXF1aXJlZCBzdGF0ZSB1cGRhdGVkLic7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIFNpemUnOwokbGFuZ1sncGVybWl0dGVkX2V4dGVuc2lvbnMnXSA9ICdFeHRlbnNpb25zJzsKJGxhbmdbJ3Blcm1pdHRlZF9maWxldHlwZXMnXSA9ICdBbGxvd2VkIGZpbGUgdHlwZXMnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdVcGxvYWRlZCBmaWxlIGlzIHRvbyBsYXJnZSEgTWF4aW11bSBzaXplIGlzOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnVXBsb2FkJzsKJGxhbmdbJ2Zvcm1faW1wb3J0ZWQnXSA9ICdGb3JtIEltcG9ydGVkLic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdGb3JtIGltcG9ydCBmYWlsZWQhIFRoZXJlIHdhcyBhIHByb2JsZW0gd2l0aCB0aGUgZm9ybWF0IG9mIHRoZSBYTUwgZmlsZS4nOwokbGFuZ1sncm93cyddID0gJyVzIHJvd3MnOwokbGFuZ1snY29scyddID0gJyVzIGNvbHMnOwokbGFuZ1snMTJfaG91ciddID0gJzEyIEhvdXIgQ2xvY2snOwokbGFuZ1snMjRfaG91ciddID0gJzI0IEhvdXIgQ2xvY2snOwokbGFuZ1snaG91ciddID0gJ0hvdXInOwokbGFuZ1snbWluJ10gPSAnTWludXRlJzsKJGxhbmdbJ21lcmlkJ10gPSAnTWVyaWRpYW4nOwokbGFuZ1snZGF0ZV9yYW5nZSddID0gJ1JhbmdlOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RoYW5rcyEgWW91ciBzdWJtaXNzaW9ucyBoYXZlIGJlZW4gcmVjZWl2ZWQuJzsKJGxhbmdbJ2VkaXQnXSA9ICdFZGl0JzsKJGxhbmdbJ2RlbGV0ZSddID0gJ0RlbGV0ZSc7CiRsYW5nWydkYXknXSA9ICdEYXknOwokbGFuZ1snbW9uJ10gPSAnTW9udGgnOwokbGFuZ1sneWVhciddID0gJ1llYXInOwokbGFuZ1snbm9uZSddID0gJyhub25lKSc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSB1bmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CiRsYW5nWydidXR0b25fcHJldmlvdXMnXSA9ICdCYWNrLi4uJzsKJGxhbmdbJ2J1dHRvbl9zdWJtaXQnXSA9ICdTdWJtaXQgRm9ybSc7CiRsYW5nWydidXR0b25fY29udGludWUnXSA9ICdDb250aW51ZS4uLic7CiRsYW5nWyd2YWx1ZV9jaGVja2VkJ10gPSAnQ2hlY2tlZCc7CiRsYW5nWyd2YWx1ZV91bmNoZWNrZWQnXSA9ICdVbmNoZWNrZWQnOwokbGFuZ1sndGFiX21haW4nXSA9ICdNYWluJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdGb3JtIERpc3BsYXkgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ0Zvcm0gU3VibWlzc2lvbic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0NhcHRjaGEgU2V0dGluZ3MnOwokbGFuZ1sndGFiX2FkdmFuY2VkJ10gPSAnQWR2YW5jZWQgU2V0dGluZ3MnOwokbGFuZ1sndGFiX3RlbXBsYXRlbGF5b3V0J10gPSAnRm9ybSBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJfc3VibWlzc2lvbnRlbXBsYXRlJ10gPSAnU3VibWlzc2lvbiBUZW1wbGF0ZSc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eSB2YXJpYWJsZXMgYXJlIHZhbGlkIGluIHRoaXMgZmllbGQuPC9lbT4nOwokbGFuZ1snYWRkX29wdGlvbnMnXSA9ICdBZGQgTW9yZSBPcHRpb25zJzsKJGxhbmdbJ2RlbGV0ZV9vcHRpb25zJ10gPSAnRGVsZXRlIE1hcmtlZCBPcHRpb25zJzsKJGxhbmdbJ2FkZF9jaGVja2JveGVzJ10gPSAnQWRkIE1vcmUgQ2hlY2tib3hlcyc7CiRsYW5nWydkZWxldGVfY2hlY2tib3hlcyddID0gJ0RlbGV0ZSBNYXJrZWQgQ2hlY2tib3hlcyc7CiRsYW5nWydhZGRfYWRkcmVzcyddID0gJ0FkZCBBbm90aGVyIEFkZHJlc3MnOwokbGFuZ1snZGVsZXRlX2FkZHJlc3MnXSA9ICdEZWxldGUgTWFya2VkIEFkZHJlc3Nlcyc7CiRsYW5nWydhZGRfZGVzdGluYXRpb24nXSA9ICdBZGQgQW5vdGhlciBEZXN0aW5hdGlvbic7CiRsYW5nWydkZWxldGVfZGVzdGluYXRpb24nXSA9ICdEZWxldGUgTWFya2VkIERlc3RpbmF0aW9ucyc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ1RvbyBtYW55IGVtYWlscyBnZW5lcmF0ZWQgZnJvbSB5b3VyIElQIGFkZHJlc3MuIEFudGktU3BhbSBjb2RlIGhhcyBwcmV2ZW50ZWQgZGVsaXZlcnkuJzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1N1c3BlY3RlZCBzcGFtIGZyb20gSVAgJXMgc3RvcHBlZC4nOwokbGFuZ1sncmVvcmRlciddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdWYWx1ZSBzZXQ6ICVzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcGF0aCddID0gJ0Rlc3RpbmF0aW9uIERpcmVjdG9yeSBmb3Igb3V0cHV0IGZpbGVzJzsKJGxhbmdbJ3RpdGxlX3VkdF9uYW1lJ10gPSAnVXNlciBEZWZpbmVkIFRhZyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnUGFnZSB0byByZXR1cm4gdG8gd2l0aCB1cGxvYWRzIGxpbmsnOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBsb2FkcyBjYXRlZ29yeSc7CiRsYW5nWyd0aXRsZV9zZW5kdG9fdXBsb2FkcyddID0gJ1NlbmQgdGhpcyBmaWxlIHRvIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9sZWdlbmQnXSA9ICdMZWdlbmQnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbXVtIExlbmd0aCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0NoZWNrYm94IGxhYmVsJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnUmFkaW8gQnV0dG9uIGxhYmVsJzsKJGxhbmdbJ3RpdGxlX2NoZWNrZWRfdmFsdWUnXSA9ICdWYWx1ZSB3aGVuIGNoZWNrZWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnVmFsdWUgd2hlbiBub3QgY2hlY2tlZC4nOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfZGV0YWlscyddID0gJ0NoZWNrYm94IEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnRGVsZXRlPyc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rfb25lX21lc3NhZ2UnXSA9ICcmcXVvdDtTZWxlY3QgT25lJnF1b3Q7IFRleHQnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnU2VsZWN0aW9uIFZhbHVlJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdGlvbl9kaXNwbGF5bmFtZSddID0gJ1NlbGVjdGlvbiBEaXNwbGF5IE5hbWUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdTZWxlY3Rpb24gU3ViamVjdCc7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9jb3VudHJ5J10gPSAnRGVmYXVsdCBTZWxlY3Rpb24nOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdEZWZhdWx0IFNlbGVjdGlvbic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ0RlZmF1bHQgU2VsZWN0aW9uJzsKJGxhbmdbJ3RpdGxlX29wdGlvbl9uYW1lJ10gPSAnT3B0aW9uIE5hbWUnOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnVmFsdWUgU3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdQdWxsZG93biBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXNlbGVjdCBPcHRpb25zJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1VzZSByZWxheGVkIGVtYWlsIHZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9yZWdleF9sb25nJ10gPSAnVXNlIHJlbGF4ZWQgZW1haWwgYWRkcmVzcyB2YWxpZGF0aW9uIChlLmcuLCBhbGxvdyAmcXVvdDt4QHkmcXVvdDsgaW5zdGVhZCBvZiByZXF1aXJpbmcgJnF1b3Q7eEB5LnRsZCZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnJvbSBhZGRyZXNzJnF1b3Q7IGZvciBlbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ0VtYWlsIGNoYXJhY3RlciBzZXQgZW5jb2RpbmcnOwokbGFuZ1sndGl0bGVfZGlyZWN0b3JfZGV0YWlscyddID0gJ1B1bGxkb3duLWJhc2VkIEVtYWlsZXIgRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9maWxlX25hbWUnXSA9ICdGaWxlIE5hbWUnOwokbGFuZ1sndGl0bGVfZW1haWxfc3ViamVjdCddID0gJ0VtYWlsIFN1YmplY3QgTGluZSc7CiRsYW5nWyd0aXRsZV9mb3JtX25hbWUnXSA9ICdGb3JtIE5hbWUnOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtIFN0YXR1cyc7CiRsYW5nWyd0aXRsZV9yZWFkeV9mb3JfZGVwbG95bWVudCddID0gJ1JlYWR5IGZvciBEZXBsb3ltZW50JzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTEnXSA9ICdOb3QgUmVhZHknOwokbGFuZ1sndGl0bGVfcmVkaXJlY3RfcGFnZSddID0gJ1BhZ2UgdG8gcmVkaXJlY3QgdG8gYWZ0ZXIgZm9ybSBzdWJtaXNzaW9uJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeTInXSA9ICdQbGVhc2UgYWRkIGEgZmllbGQgdG8gdGhlIGZvcm0gc28gdGhhdCB0aGUgdXNlciYjMDM5O3MgaW5wdXQgZ2V0cyBoYW5kbGVkLiBZb3UgY2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAndXNlIHRoaXMgc2hvcnRjdXQnOwokbGFuZ1sndGl0bGVfZm9ybV9hbGlhcyddID0gJ0Zvcm0gQWxpYXMnOwokbGFuZ1sndGl0bGVfZm9ybV9maWVsZHMnXSA9ICdGb3JtIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9maWVsZF9pZCddID0gJ0ZpZWxkIElkJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnU2hvdyBGaWVsZCBBbGlhc2VzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdDbGlja2luZyB0aGlzIHdpbGwgZGlzcGxheSBmaWVsZCBhbGlhc2VzIHdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgYSBmb3JtJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX25hbWUnXSA9ICdGaWVsZCBOYW1lJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnRmllbGQgQWxpYXMnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnUmFkaW8gQnV0dG9uIEdyb3VwIERldGFpbHMnOwokbGFuZ1sndGl0bGVfZmllbGRfdHlwZSddID0gJ0ZpZWxkIFR5cGUnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3RvIGNyZWF0ZSBhIGZvcm0gaGFuZGxpbmcgZmllbGQuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZm9ybSddID0gJ0FkZCBOZXcgRm9ybSc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdTaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnQWRkIE5ldyBGaWVsZCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdGb3JtIFN1Ym1pdCBCdXR0b24gVGV4dCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eSddID0gJ0FkZCBKYXZhc2NyaXB0IHRvIGZpbmFsIFN1Ym1pdCBCdXR0b24gdGhhdCB3aWxsIGhlbHAgcHJldmVudCBtdWx0aXBsZSBzdWJtaXNzaW9ucz8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ0FkZCBzYWZldHkgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4gdG8gcHJvdGVjdCBmb3JtIHN1Ym1pc3Npb25zIGlmIHlvdSBpbnN0YWxsIHRoZSBDYXB0Y2hhIG1vZHVsZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIDxhIGhyZWY9JnF1b3Q7aHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyZxdW90Oz5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cud2lraXBlZGlhLm9yZy93aWtpL0NhcHRjaGEmcXVvdDsgdGFyZ2V0PSZxdW90O19uZXcmcXVvdDs+JnF1b3Q7Q2FwdGNoYSZxdW90OzwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ1BsZWFzZSBjb25maXJtIHRoYXQgeW91IGFyZSBub3QgYSBzY3JpcHQgYnkgZW50ZXJpbmcgdGhlIGxldHRlcnMgZnJvbSB0aGUgaW1hZ2UuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0ZhaWxlZCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3dyb25nX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIHdhcyBub3QgY29ycmVjdC4nOwokbGFuZ1sndGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnSGVscCB0ZXh0IGZvciBDYXB0Y2hhJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZCddID0gJ0RvbiYjMDM5O3Qgc3VibWl0IHZhbHVlcyBmb3IgdW5jaGVja2VkIGJveGVzJzsKJGxhbmdbJ3RpdGxlX2RvbnRfc3VibWl0X3VuY2hlY2tlZF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyBpZiB5b3Ugb25seSB3YW50IGNoZWNrZWQgYm94ZXMgdG8gcmV0dXJuIHZhbHVlcy4nOwokbGFuZ1snbGlua19sYWJlbCddID0gJ0xpbmsgTGFiZWwnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ0xpbmsgRGVzdGluYXRpb24gVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfc2V0J10gPSAnQ2hlY2tlZCBieSBEZWZhdWx0Pyc7CiRsYW5nWyd0aXRsZV8yNF9ob3VyJ10gPSAnVXNlIDI0LWhvdXIgY2xvY2s/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnUHJvY2VzcyBzbWFydHkgdGFncyB3aXRoaW4gZmllbGQ/JzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX3Jvd3MnXSA9ICdSb3dzIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0NvbHVtbnMgKG5vdGU6IHRoaXMgbWF5IGJlIG92ZXJyaWRkZW4gYnkgQ1NTKSc7CiRsYW5nWyd0aXRsZV9mb3JtX21haW4nXSA9ICdNYWluIEZvcm0gRGV0YWlscyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsb2dpbiBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJmaXJzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGZpcnN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmxhc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBsYXN0IG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Jlc3RyaWN0X3RvX2dyb3VwJ10gPSAnUmVzdHJpY3QgdXNlciBsaXN0IHRvIHVzZXJzIGluIHNwZWNpZmllZCBncm91cCc7CiRsYW5nWydyZXN0cmljdGVkX3RvX2dyb3VwJ10gPSAnT25seSBpbiBncm91cCAlcyc7CiRsYW5nWyd0aXRsZV9zaG93X3RvX3VzZXInXSA9ICdEaXNwbGF5IHRvIHVzZXI/JzsKJGxhbmdbJ2hlbHBfbGVhdmVlbXB0eSddID0gJ1RoaXMgZmllbGQgbWF5IGJlIGxlZnQgZW1wdHknOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX3RlbXBsYXRlJ10gPSAnVmFyaWFibGVzIEZvciBUZW1wbGF0ZSc7CiRsYW5nWydoZWxwX3ZhcmlhYmxlc19mb3JfY29tcHV0YXRpb24nXSA9ICdWYXJpYWJsZXMgQXZhaWxhYmxlJzsKJGxhbmdbJ2hlbHBfcGhwX3ZhcmlhYmxlX25hbWUnXSA9ICdQSFAgdmFyaWFibGUnOwokbGFuZ1snaGVscF9zdWJtaXNzaW9uX2RhdGUnXSA9ICdEYXRlIG9mIFN1Ym1pc3Npb24nOwokbGFuZ1snaGVscF9zZXJ2ZXJfbmFtZSddID0gJ1lvdXIgc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQIGFkZHJlc3Mgb2YgcGVyc29uIHVzaW5nIGZvcm0nOwokbGFuZ1snaGVscF9zdWJfdXJsJ10gPSAnVVJMIG9mIHBhZ2UgY29udGFpbmluZyBmb3JtJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRlIGZpZWxkIG5hbWVzIGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSAoZXNwZWNpYWxseSB1c2VmdWwgaWYgU21hcnR5IGlzIGNob2tpbmcgb24gY2hhcmFjdGVycyBvdXRzaWRlIG9mIEFTQ0lJIDMyLTEyNikuIDxiciAvPk90aGVyIGZpZWxkcyB3aWxsIGJlIGF2YWlsYWJsZSBhcyB5b3UgYWRkIHRoZW0gdG8gdGhlIGZvcm0uJzsKJGxhbmdbJ2hlbHBfYXJyYXlfZmllbGRzJ10gPSAnRmllbGRzIHRoYXQgaGF2ZSBtdWx0aXBsZSB2YWx1ZXMgbWF5IGFsc28gYmUgYWNjZXNzZWQgdmlhIHRoZSBzbWFydHkgdmFsdWUgb2YgJGZpZWxkbmFtZV9hcnJheSBvciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZWUgPGEgaHJlZj0mcXVvdDtodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwJnF1b3Q7IHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlciddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyJzsKJGxhbmdbJ2hlbHBfdGFiX3N5bWJvbCddID0gJ2EgdGFiIGNoYXJhY3Rlcic7CiRsYW5nWyd0aXRsZV9maWxlX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgZm9yIG9uZSBsaW5lIG9mIG91dHB1dCBmaWxlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnVGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfY29uZmlybWF0aW9uX3VybCddID0gJ1VSTCB0byBjbGljayBmb3IgZm9ybSBjb25maXJtYXRpb24nOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWYWx1ZSAoc2VlIEFkdmFuY2VkIFRhYiBpZiB5b3UgdXNlIFNtYXJ0eSB0YWdzKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdGUgRm9ybWF0IChzdGFuZGFyZCA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAmcXVvdDs+UEhQIERhdGUgRm9ybWF0czwvYT4pJzsKJGxhbmdbJ3RpdGxlX3VzZV93eXNpd3lnJ10gPSAnVXNlIFdZU0lXWUcgZWRpdG9yIGZvciB0ZXh0IEFyZWEgKEFkbWluIHNpZGUgb25seSk/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uIFBhZ2UnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ1Jlb3JkZXIgRmllbGRzJzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMb2FkIHRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0FkZCBCdXR0b24gdGV4dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyaW5nJzsKJGxhbmdbJ3RpdGxlX251bWVyaWMnXSA9ICdOdW1lcmljJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWydkZWZhdWx0X3RlbXBsYXRlJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZSc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlcyBvbiBsZWZ0JzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmxlIFRlbXBsYXRlLCBUaXRsZSBvbiB0b3AnOwokbGFuZ1snZm9ybV90ZW1wbGF0ZV9uYW1lJ10gPSAnVGVtcGxhdGUgZnJvbSAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcnknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJ5JzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJjaCc7CiRsYW5nWydkYXRlX2FwcmlsJ10gPSAnQXByaWwnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNYXknOwokbGFuZ1snZGF0ZV9qdW5lJ10gPSAnSnVuZSc7CiRsYW5nWydkYXRlX2p1bHknXSA9ICdKdWx5JzsKJGxhbmdbJ2RhdGVfYXVndXN0J10gPSAnQXVndXN0JzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09jdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnRGVzY3VscGUhIEhvdXZlIHVtIGVycm8gZGUgbWFuaXB1bGEmY2NlZGlsOyZhdGlsZGU7byBubyBzZXUgZm9ybXVsJmFhY3V0ZTtyaW8uJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogdW5jaGVja2VkJzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ0RlZmF1bHQ6IGNoZWNrZWQnOwokbGFuZ1snZW1haWxfZGVmYXVsdF90ZW1wbGF0ZSddID0gJ0Zvcm1CdWlsZGVyIFN1Ym1pc3Npb24nOwokbGFuZ1snZW1haWxfdGVtcGxhdGVfbm90X3NldCddID0gJzxici8+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+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+SW4gdGhlIENNUyBBZG1pbiBNZW51LCB5b3Ugc2hvdWxkIGdldCBhIG5ldyBtZW51IGl0ZW0gY2FsbGVkIEZvcm1CdWlsZGVyLiBDbGljayBvbiB0aGlzLiBPbiB0aGUgcGFnZQ0KdGhhdCBnZXRzIHNob3duLCB0aGVyZSBhcmUgb3B0aW9ucyAoYXQgdGhlIGJvdHRvbSBvZiB0aGUgbGlzdCBvZiBGb3JtcykgdG8gQWRkIGEgTmV3IEZvcm0gb3IgTW9kaWZ5DQpDb25maWd1cmF0aW9uLjwvcD4NCg0KPGgzPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9oMz4NCjxwPkluIHRoZSBtYWluIEZvcm1CdWlsZGVyIGFkbWluIHBhZ2UsIHlvdSBjYW4gc2VlIGFuIGV4YW1wbGUgb2YgdGhlIHRhZyB1c2VkIHRvIGRpc3BsYXkgZWFjaCBmb3JtLiBJdCBsb29rcw0Kc29tZXRoaW5nIGxpa2Uge2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7c2FtcGxlX2Zvcm0mIzAzOTt9PC9wPg0KPHA+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+U3RhdGUuIFRoaXMgaXMgYSBwdWxsZG93biBsaXN0aW5nIHRoZSBTdGF0ZXMgb2YgdGhlIFUuUy48L2xpPg0KPGxpPkNhbmFkaWFuIFByb3ZpbmNlLiBUaGlzIGlzIGEgcHVsbGRvd24gbGlzdGluZyB0aGUgQ2FuYWRpYW4gUHJvdmluY2VzIChDb250cmlidXRlZCBieSBOb2VsIE1jR3Jhbi4gVGhhbmtzISk8L2xpPg0KPGxpPkNvdW50cmllcy4gVGhpcyBpcyBhIHB1bGxkb3duIGxpc3RpbmcgdGhlIENvdW50cmllcyBvZiB0aGUgd29ybGQgKGFzIG9mIEp1bHkgMjAwNSkuPC9saT4NCjxsaT5EYXRlIFBpY2tlci4gVGhpcyBpcyBhIHRyaXBsZSBwdWxsZG93biBhbGxvd2luZyB0aGUgdXNlciB0byBzZWxlY3QgYSBkYXRlLjwvbGk+DQo8bGk+VGltZSBQaWNrZXIuIFRoaXMgaXMgYSBzZXQgb2YgcHVsbGRvd25zIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNlbGVjdCBhIHRpbWUgKHVzaW5nIDEyIG9yIDI0IGhvdXIgY2xvY2spLjwvbGk+DQo8bGk+RmlsZSBVcGxvYWQuIFRoaXMgaXMgYSBmaWxlIHVwbG9hZCBmaWVsZC48L2xpPg0KPGxpPkxpbmsgKFVzZXIgRW50ZXJlZCkuIFRoaXMgY3JlYXRlcyBhIGRvdWJsZSBpbnB1dCBmaWVsZCBmb3IgZ2V0dGluZyBhIGxpbmsgVVJMIGFuZCBsaW5rIHRpdGxlLjwvbGk+DQo8bGk+VGV4dCBGaWVsZCAoTXVsdGlwbGUpLiBUaGlzIGZpZWxkIGNyZWF0ZXMgb25lIG9yIG1vcmUgdGV4dCBpbnB1dHMgd2l0aCBhZGQgYW5kIGRlbGV0ZSBidXR0b25zLCBlZmZlY3RpdmVseSBnaXZpbmcgdGhlIGVuZCB1c2VyIGEgd2F5IG9mIGNyZWF0aW5nIHZhcmlhYmxlLWxlbmd0aCBsaXN0cy48L2xpPg0KPC91bD48L2xpPg0KDQo8bGk+RW1haWwtc3BlY2lmaWMgSW5wdXRzDQo8dWw+PGxpPkVtYWlsIEZyb20gQWRkcmVzcyBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBlbWFpbCBhZGRyZXNzLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgYWRkcmVzcyBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIEZyb20gTmFtZSBGaWVsZC4gVGhpcyBhbGxvd3MgdXNlcnMgdG8gcHJvdmlkZSB0aGVpciBuYW1lLiBUaGUgZW1haWwgZ2VuZXJhdGVkIHdoZW4gdGhlIGZvcm0gZ2V0cyBoYW5kbGVkIHdpbGwgdXNlIHRoaXMgbmFtZSBpbiB0aGUgJnF1b3Q7RnJvbSZxdW90OyBmaWVsZC48L2xpPg0KPGxpPkVtYWlsIFN1YmplY3QgRmllbGQuIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHByb3ZpZGUgYSBzdWJqZWN0IGZvciB0aGVpciBlbWFpbC4gVGhlIGVtYWlsIGdlbmVyYXRlZCB3aGVuIHRoZSBmb3JtIGdldHMgaGFuZGxlZCB3aWxsIHVzZSB0aGlzIGluIHRoZSAmcXVvdDtTdWJqZWN0JnF1b3Q7IGZpZWxkLiBUaGlzIG1heSBjYXVzZSB0cm91YmxlIHdpdGggY2VydGFpbiBkaXNwb3NpdGlvbnMgdGhhdCB3YW50IHRvIGNvbnRyb2wgdGhlIEVtYWlsIFN1YmplY3QsIHNvIHVzZSBpdCB3aXRoIGNhdXRpb24uPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkRpc3BsYXkgQ29udHJvbCBGaWVsZHM8dWw+DQo8bGk+LVBhZ2UgQnJlYWsuIFRoaXMgYWxsb3dzIHlvdSB0byBzcGxpdCB5b3VyIGZlZWRiYWNrIGZvcm0gaW50byBtdWx0aXBsZSBwYWdlcy4gRWFjaCBwYWdlIGlzDQppbmRlcGVuZGVudGx5IHZhbGlkYXRlZC4gVGhpcyBpcyBnb29kIGZvciBhcHBsaWNhdGlvbnMgbGlrZSBvbmxpbmUgc3VydmV5cy48L2xpPg0KPGxpPi1GaWVsZHNldCBTdGFydC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBFbmQsIHRoaXMgYWxsb3dzIHlvdSB0byBncm91cCB2YXJpb3VzIGZpZWxkcyB3aXRoaW4geW91ciBmb3JtLiBVc2UgdGhpcyB0byBzdGFydCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUZpZWxkc2V0IEVuZC4gQ29tYmluZWQgd2l0aCBGaWVsZHNldCBTdGFydCwgdGhpcyBhbGxvd3MgeW91IHRvIGdyb3VwIHZhcmlvdXMgZmllbGRzIHdpdGhpbiB5b3VyIGZvcm0uIFVzZSB0aGlzIHRvIGVuZCBhIGdpdmVuIGdyb3VwaW5nLjwvbGk+DQo8bGk+LUhpZGRlbiBGaWVsZC4gVGhpcyBhbGxvd3MgeW91IHRvIGVtYmVkIGEgaGlkZGVuIGZpZWxkIGluIHlvdXIgZm9ybS48L2xpPg0KPGxpPi1TdGF0aWMgVGV4dC4gVGhpcyBhbGxvd3MgeW91IHRvIHB1dCB0ZXh0IG9yIGEgbGFiZWwgaW4gdGhlIG1pZGRsZSBvZiB5b3VyIGZvcm0uIFRoaXMgaXMgdXNlZnVsIGZvciBnaXZpbmcgYWRkaXRpb25hbCBoZWxwIHRleHQsIGVzcGVjaWFsbHkgaWYgeW91JiMwMzk7cmUgbm90IHVzaW5nIGEgQ3VzdG9tIFRlbXBsYXRlIHRvIHJlbmRlciB5b3VyIGZvcm0uPC9saT4NCjxsaT4tU3RhdGljIExpbmsuIFRoaXMgYWxsb3dzIHlvdSB0byBwdXQgYSBsaW5rIHRvIGEgZ2l2ZW4gcGFnZSBpbnRvIHlvdXIgZm9ybS4gT3B0aW9uYWxseSwgeW91IGNhbiBoYXZlIGl0IGF1dG9wb3B1bGF0ZSB3aXRoIHRoZSBwYWdlIHdoZXJlIHRoZSBmb3JtIGlzIGVtYmVkZGVkICh1c2VmdWwgaWYgeW91JiMwMzk7cmUgc2VuZGluZyByZXN1bHRzIHZpYSBlbWFpbCkuPC9saT4NCjxsaT4tQ29tcHV0ZWQgRmllbGQuIFRoaXMgYWxsb3dzIHlvdSB0byBlbWJlZCBhIGNvbXB1dGVkIGZpZWxkIGluIHlvdXIgZm9ybS4gSXQgaXMgbm90IHZpc2libGUgdG8gdGhlIHVzZXIgdW50aWwgYWZ0ZXIgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiBJdCBhbGxvd3MgeW91IHRvIGRvIHNpbXBsZSBhcml0aG1ldGljIG9yIHN0cmluZyBjb25jYXRlbmF0aW9uLjwvbGk+DQo8bGk+LVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpLiBUaGlzIGlzIGFuIGludGVnZXIgdGhhdCBpbmNyZWFzZXMgZXZlcnkgdGltZSBzb21lb25lIGhpdHMgeW91ciBmb3JtLiBZb3VyIHJlc3VsdHMgbWF5IG5vdCBiZSBzZXF1ZW50aWFsLCBidXQgdGhleSB3aWxsIGluY3JlYXNlIG1vbm90b25pY2FsbHkuPC9saT4NCjwvdWw+PC9saT4NCg0KPGxpPkZvcm0gSGFuZGxpbmcgSW5wdXRzIChEaXNwb3NpdGlvbnMpDQo8dWw+PGxpPipDYWxsIGEgVXNlciBEZWZpbmVkIFRhZyBXaXRoIHRoZSBGb3JtIFJlc3VsdHMuIFRoaXMgc3VibWl0cyBhbGwgdGhlIGZvcm0gcmVzdWx0cyB0byB0aGUgVXNlci1EZWZpbmVkIFRhZyB5b3Ugc3BlY2lmeS4gVGhlIFVEVCBjYW4gaGFuZGxlIHRoZSByZXN1bHRzIGhvd2V2ZXIgaXQgd2FudHMuIFZhbHVlcyBhcmUgcGFzc2VkIGFzICRwYXJhbVsmIzAzOTtmaWVsZF9uYW1lJiMwMzk7XS48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIEJhc2VkIG9uIFB1bGxkb3duLiBUaGlzIGlzIHVzZWZ1bCBmb3Igd2ViIHNpdGVzIHdoZXJlIGNvbW1lbnRzIGdldCByb3V0ZWQgYmFzZWQgb24gdGhlaXIgc3ViamVjdCBtYXR0ZXIsIGUuZy4sIGJ1Z3MgZ2V0IHNlbnQgdG8gb25lIHBlcnNvbiwgbWFya2V0aW5nIHF1ZXN0aW9ucyB0byBhbm90aGVyIHBlcnNvbiwgc2FsZXMgcmVxdWVzdHMgdG8gc29tZW9uZSBlbHNlLCBldGMuIFRoZSBwdWxsZG93biBpcyBwb3B1bGF0ZWQgd2l0aCB0aGUgc3ViamVjdHMsIGFuZCBlYWNoIGdldHMgZGlyZWN0ZWQgdG8gYSBzcGVjaWZpYyBlbWFpbCBhZGRyZXNzLiBZb3Ugc2V0IHVwIHRoZXNlIG1hcHBpbmdzIGluIHRoZSB3aGVuIHlvdSBjcmVhdGUgb3IgZWRpdCBhIGZpZWxkIG9mIHRoaXMgdHlwZS4gSWYgeW91IHVzZSBvbmUgb2YgdGhlc2UgJnF1b3Q7RGlyZWN0b3ImcXVvdDsgcHVsbGRvd25zLCB0aGUgdXNlciBtdXN0IG1ha2UgYSBzZWxlY3Rpb24gaW4gb3JkZXIgdG8gc3VibWl0IHRoZQ0KZm9ybS4gVGhpcyBpbnB1dCBpcyBwYXJ0IG9mIHRoZSBmb3JtIHRoZSB1c2VyIHNlZXMsIGFsdGhvdWdoIHRoZSBlbWFpbCBhZGRyZXNzZXMgYXJlIG5vdCBtYWRlIHZpc2libGUgbm9yDQphcmUgdGhleSBlbWJlZGRlZCBpbiB0aGUgSFRNTC48L2xpPg0KPGxpPipFbWFpbCBSZXN1bHRzIHRvIHNldCBBZGRyZXNzKGVzKS4gVGhpcyBzaW1wbHkgc2VuZHMgdGhlIGZvcm0gcmVzdWx0cyB0byBvbmUgb3IgbW9yZSBlbWFpbCBhZGRyZXNzZXMgdGhhdCB5b3UgZW50ZXIgd2hlbiB5b3UgY3JlYXRlIG9yIGVkaXQgdGhpcyB0eXBlIG9mIGZpZWxkLiBUaGlzIGZpZWxkIGFuZCBpdHMgbmFtZSBhcmUgbm90IHZpc2libGUgaW4gdGhlDQpmb3JtIHRoYXQgdGhlIHVzZXIgc2Vlcy4gVGhlIGVtYWlsIGFkZHJlc3NlcyBhcmUgbm90IG1hZGUgdmlzaWJsZSBub3INCmFyZSB0aGV5IGVtYmVkZGVkIGluIHRoZSBIVE1MLjwvbGk+DQo8bGk+KkVtYWlsIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcy4gVGhpcyBwdXRzIGFuIGlucHV0IGZpZWxkIGluIHRoZSBmb3JtIGZvciB0aGUgdXNlciB0byBwb3B1bGF0ZSB3aXRoIGFuIGVtYWlsIGFkZHJlc3MuIFRoZSBmb3JtIHJlc3VsdHMgZ2V0IHNlbnQgdG8gdGhhdCBhZGRyZXNzLiBCZXdhcmUgb2YgU3BhbSBhYnVzZSEgQWN0aXZlIHRoZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzIGluIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHNjcmVlbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlLiBUaGlzIHdpbGwgc3RvcmUgdGhlIGZvcm0gY29udGVudHMgaW4gYW4gaW50ZXJuYWwgZGF0YWJhc2UuIFlvdSB3aWxsIGFsd2F5cyB1c2UgdGhpcyBkaXNwb3NpdGlvbiBpZiB5b3UgdXNlIHRoZSBmb3JtIHdpdGggRm9ybUJyb3dzZXIuPC9saT4NCjxsaT4qUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bi4gVGhpcyBhbGxvd3MgeW91IHRvIHJlZGlyZWN0IHRoZSBmb3JtIHRvIGEgZGlmZmVyZW50IHNpdGUgcGFnZSBkZXBlbmRpbmcgb24gaXRzIHZhbHVlLiBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBkaXNwb3NpdGlvbnMsIG1ha2Ugc3VyZSB0aGlzIGlzIHVzZWQgbGFzdC48L2xpPg0KPGxpPipWYWxpZGF0ZSB2aWEgRW1haWwuIFRoaXMgaXMgYSBzdHJhbmdlIGFuZCBwb3dlcmZ1bCBmaWVsZC4gSXQgcHJvdmlkZXMgdGhlIHVzZXIgYSBtYW5kYXRvcnkgaW5wdXQgZm9yIHRoZWlyIGVtYWlsIGFkZHJlc3MuIE9uY2UgdGhleSBzdWJtaXQgdGhlaXIgZm9ybSwgdGhlIHN0YW5kYXJkIGZvcm0gZGlzcG9zaXRpb25zIGFyZSBub3QgcGVyZm9ybWVkIC0tIHJhdGhlciwgaXQgc2VuZCB0aGUgdXNlciBhbiBlbWFpbCB3aXRoIGEgc3BlY2lhbCBjb2RlZCBsaW5rLiBJZiB0aGV5IGNsaWNrIG9uIHRoZSBsaW5rLCB0aGUgb3RoZXIgZm9ybSBpcyBjb25zaWRlcmVkICZxdW90O2FwcHJvdmVkLCZxdW90OyBhbmQgdGhlIG90aGVyIGRpc3Bvc2l0aW9ucyBhcmUgYWxsIHBlcmZvcm1lZC48L2xpPg0KPGxpPipXcml0ZSBSZXN1bHRzIHRvIEZsYXQgRmlsZS4gVGhpcyB0YWtlcyB0aGUgZm9ybSByZXN1bHRzIGFuZCB3cml0ZXMgdGhlbSBpbnRvIGEgdGV4dCBmaWxlLiBZb3UgbWF5DQpzZWxlY3QgdGhlIG5hbWUgb2YgdGhlIGZpbGUsIGFuZCBzZXQgaXRzIGZvcm1hdC4gVGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gdG8gdGhlICZxdW90O291dHB1dCZxdW90OyBkaXJlY3RvcnkgdW5kZXIgdGhlDQptb2R1bGUmIzAzOTtzIGluc3RhbGxhdGlvbiBkaXJlY3RvcnksIGFzc3VtaW5nIHRoZSB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9uIHRvIHdyaXRlIHRoZXJlLjwvbGk+DQo8bGk+KlNhdmUgUmVzdWx0cyB0byBGaWxlIEJhc2VkIG9uIFB1bGxkb3duLiBMaWtlIHRoZSBGbGF0IEZpbGUgZGlzcG9zaXRpb24sIGV4Y2VwdCB0aGUgdmFsdWUgb2YgYSBwdWxsLWRvd24gZGV0ZXJtaW5lcyB3aGljaCBmaWxlIHJlc3VsdHMgZ2V0IHdyaXR0ZW4gdG8uPC9saT4NCjxsaT4qU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucy4gTGlrZSB0aGUgRmxhdCBGaWxlIGRpc3Bvc2l0aW9uLCBleGNlcHQgdGhlIHZhbHVlKHMpIG9mIGNoZWNrYm94ZXMgIGRldGVybWluZXMgd2hpY2ggZmlsZShzKSByZXN1bHRzIGdldCB3cml0dGVuIHRvLjwvbGk+DQo8bGk+KkVtYWlsIHRvIENNUyBBZG1pbiBVc2VyLiBQcm92aWRlcyBhIHB1bGwtZG93biBvZiBDTVMgQWRtaW4gdXNlcnMsIGFuZCBkaXJlY3RzIHRoZSByZXN1bHRzIGFzIGFuIGVtYWlsIHRvIHRoZSBzZWxlY3RlZCBhZG1pbi48L2xpPg0KPGxpPipTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zLiBTdG9yZXMgdGhlIGZvcm0gcmVzdWx0cyBpbiBhbiBYTUwgc3RydWN0dXJlIGFzIGEgc2luZ2xlIGRhdGFiYXNlIHJlY29yZC4gVGhpcyB3aWxsIGJlY29tZSB0aGUgaW50ZXJmYWNlIHRvIEZvcm0gQnJvd3NlciBpbiB0aGUgbmV4dCByZWxlYXNlLjwvbGk+DQoNCjwvdWw+PC9saT48L2xpPjwvdWw+DQoNCg0KPGgzPlBhc3NpbmcgRGVmYXVsdCBWYWx1ZXMgdG8gRm9ybXM8L2gzPg0KPHA+Q2FsZ3V5IGFkZGVkIGEgbmljZSBmZWF0dXJlLCB3aGljaCBpcyB0aGF0IHlvdSBjYW4gcGFzcyBkZWZhdWx0IGZpZWxkIHZhbHVlcyB0byB5b3VyIGZvcm0gdmlhIHRoZSBtb2R1bGUgdGFnLiBUaGlzIGFsbG93cyB5b3UgdG8gaGF2ZQ0KdGhlIHNhbWUgZm9ybSBpbiBtdWx0aXBsZSBwbGFjZXMsIGJ1dCB3aXRoIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy4gSXQgbWF5IG5vdCB3b3JrIGZvciBtb3JlIGV4b3RpYyBmaWVsZCB0eXBlcywgYnV0IGZvciBmaWVsZHMgdGhhdCBoYXZlDQphIHNpbmdsZSB2YWx1ZSwgeW91IGNhbiBzcGVjaWZ5IGxpa2U6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV88aT5GSUVMRE5BTUU8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhpcyB3aWxsIHNldCB0aGUgZmllbGQgd2l0aCA8aT5GSUVMRE5BTUU8L2k+IHRvICYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTsuPC9wPg0KPHA+VGhpcyBjYW4gYmUgcHJvYmxlbWF0aWMsIGFzIHNvbWV0aW1lcyBmaWVsZCBuYW1lcyBhcmUgdW53ZWlsZHkgb3IgY29udGFpbiBjaGFyYWN0ZXJzIHRoYXQgZG9uJiMwMzk7dCB3b3JrIHdlbGwgd2l0aCBTbWFydHkuIFNvIHRoZXJlIGlzIGFuDQphbHRlcm5hdGl2ZSBsaWtlIHRoaXM6PC9wPg0KPHA+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O0Zvcm1CdWlsZGVyJiMwMzk7IGZvcm09JiMwMzk7bXlfZm9ybSYjMDM5OyB2YWx1ZV9mbGQ8aT5OVU1CRVI8L2k+PSYjMDM5O2RlZmF1bHRfdmFsdWUmIzAzOTt9PC9wPg0KPHA+VGhhdCB1c2VzIGZpZWxkIDxpPk5VTUJFUjwvaT4sIHdoZXJlIDxpPk5VTUJFUjwvaT4gaXMgdGhlIGludGVybmFsIEZvcm1CdWlsZGVyIGZpZWxkIGlkLiBZb3UgbWlnaHQgd29uZGVyIGhvdyB5b3Uga25vdyB3aGF0IHRoYXQgaWQgaXMuIFNpbXBseSBnbyBpbnRvIHRoZSBGb3JtQnVpbGRlciBjb25maWd1cmF0aW9uIHRhYiwNCmFuZCBjaGVjayAmcXVvdDtTaG93IEZpZWxkIElEcyZxdW90OzwvcD4NCg0KPGgzPkVtYWlsIGFuZCBGbGF0IEZpbGUgVGVtcGxhdGVzPC9oMz4NCjxwPk1hbnkgZGlzcG9zaXRpb24gdHlwZXMgYWxsb3cgeW91IHRvIGNyZWF0ZSBhIHRlbXBsYXRlIGZvciB0aGUgZW1haWwgdGhhdCBpcyBnZW5lcmF0ZWQsIG9yIGZvciB0aGUgd2F5IHRoZSByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGEgZmlsZS4gSWYgeW91IG9wdCBub3QgdG8gY3JlYXRlIGEgdGVtcGxhdGUsIHRoZSBGb3JtQnVpbGRlciB3aWxsIHVzZSBpdCYjMDM5O3Mgb3duIGJlc3QgZ3Vlc3MsIHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsgb3V0IHRvIHlvdXIgbGlraW5nLiBZb3UgY2FuIGFsd2F5cyBjbGljayBvbiB0aGUgJnF1b3Q7Q3JlYXRlIFNhbXBsZSBUZW1wbGF0ZSZxdW90OyBhbmQgdGhlbiBjdXN0b21pemUgdGhlIHJlc3VsdHMuPC9wPg0KPHA+VG8gdGhlIHJpZ2h0LCB5b3UmIzAzOTtsbCBmaW5kIGEgbGVnZW5kIHdoaWNoIGxpc3RzIGFsbCBvZiB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIGF2YWlsYWJsZSB0byB5b3UgdG8gdXNlIGluIHlvdXIgdGVtcGxhdGUuIEFzIG9mIHZlcnNpb24gMC4zLCB2YXJpYWJsZXMgaGF2ZSB0d28gbmFtZXMsIG9uZSBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZSwgdGhlIG90aGVyIGJhc2VkIG9uIHRoZSBmaWVsZCBJRC4gSWYgeW91IHVzZSBmaWVsZCBuYW1lcyB0aGF0IGhhdmUgY2hhcmFjdGVycyBvdXRzaWRlIG9mIHRoZSBBU0NJSSAzMi0xMjYgcmFuZ2UsIGl0IHdpbGwgYmUgc2FmZXIgdG8gdXNlIHRoZSBJRC1iYXNlZCB2YXJpYWJsZXMuPC9wPg0KPHA+PHN0cm9uZz5Ob3RlIHRoYXQgb25jZSB5b3UmIzAzOTt2ZSBjaGFuZ2VkIGEgdGVtcGxhdGUsIGl0IHdpbGwgbm8gbG9uZ2VyIGF1dG9tYXRpY2FsbHkgYWRkIG5ldyBmaWVsZHMuPC9zdHJvbmc+IEZvciB0aGlzIHJlYXNvbiwgaXQmIzAzOTtzIHVzdWFsbHkgYmVzdCB0byBjcmVhdGUgeW91ciB0ZW1wbGF0ZXMgYXMgdGhlIGxhc3Qgc3RlcCBvZiBjcmVhdGluZyB5b3VyIGZvcm0uPC9wPg0KPHA+QXMgb2YgdmVyc2lvbiAwLjIuNCwgeW91IGNhbiBvcHQgdG8gc2VuZCBhbnkgb2YgdGhlc2UgZW1haWxzIGFzIEhUTUwgZW1haWwuIFRoZXJlIHNob3VsZCBiZSBhIGNoZWNrYm94IGF0IHRoZSB0b3Agb2YgdGhlIHRlbXBsYXRlIHBhZ2UgZm9yIHRoaXMuIFRoZXJlIGlzIGFsc28gYSAmcXVvdDtDcmVhdGUgU2FtcGxlIEhUTUwgVGVtcGxhdGUmcXVvdDsgYnV0dG9uIG92ZXIgaW4gdGhlIGxlZ2VuZCBhcmVhLiBGb3IgSFRNTCBlbWFpbCwgdGhlIGVtYWlsIGJvZHkgd2lsbCBhbHNvIHByb3ZpZGUgdGhlIGRlZmF1bHQgdGV4dC1vbmx5IHZhbHVlcy48L3A+DQoNCjxoMz5Db25maWd1cmF0aW9uPC9oMz4NCjxwPlRoZXJlIGFyZSBzb21lIGdsb2JhbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEZvcm1CdWlsZGVyOjwvcD4NCjx1bD4NCjxsaT5FbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24uIFRoaXMgZW5hYmxlcyB0aGUgcHVsbGRvd24gb24gdGhlIEZvcm0gRWRpdCBwYWdlIHdoaWNoIHNhdmVzIGEgc3RlcCBpbiB0aGUgY3JlYXRpb24gb2YgbmV3IGZpZWxkcy48L2xpPg0KPGxpPkhpZGUgRXJyb3JzLiBUaGlzIGlzIHNldCBieSBkZWZhdWx0LiBVbmNoZWNraW5nIGl0IHdpbGwgY2F1c2UgbW9yZSBkZXRhaWxlZCBlcnJvcnMgdG8gYmUgZGlzcGxheWVkIGlmIHRoZXJlIGFyZSBwcm9ibGVtcyB3aGVuIHlvdSBzdWJtaXQgeW91ciBmb3JtLjwvbGk+DQo8bGk+UmVxdWlyZSBGaWVsZCBOYW1lcy4gVHlwaWNhbGx5LCB5b3Ugd2lsbCB3YW50IGZvcm0gZmllbGRzIHRvIGJlIG5hbWVkIHNvIHlvdSBjYW4gdGVsbCB3aGljaCBpcyB3aGljaC4gSG93ZXZlciwgaW4gc29tZSBjYXNlcywgeW91IG1pZ2h0IHdhbnQgdG8gaGF2ZSBuYW1lbGVzcyBmaWVsZHMuIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBuYW1lbGVzcyBmaWVsZHMuPC9saT4NCjxsaT5VbmlxdWUgRmllbGQgTmFtZXMuIFR5cGljYWxseSwgeW91IHdpbGwgd2FudCBmb3JtIGZpZWxkcyB0byBoYXZlIHVuaXF1ZSBuYW1lcyBzbyB5b3UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2guIFVuY2hlY2sgdGhpcyBpZiB5b3Ugd2FudCB0byBhbGxvdyBmaWVsZHMgdG8gc2hhcmUgbmFtZXMuPC9saT4NCjxsaT5Vc2UgcmVsYXhlZCBlbWFpbCB2YWxpZGF0aW9uLiBUaGlzIHVzZXMgYSBsZXNzIHJlc3RyaWN0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgdmFsaWRhdGluZyBlbWFpbDsgZS5nLiwgeEB5IHdpbGwgYmUgYWxsb3dlZCwgd2hlcmUgdHlwaWNhbGx5IHhAeS50bGQgaXMgcmVxdWlyZWQuPC9saT4NCjxsaT5TaG93IEZvcm0gQnVpbGRlciBWZXJzaW9uLiBEaXNwbGF5cyB0aGUgdmVyc2lvbiBvZiBGb3JtQnVpbGRlciB5b3UmIzAzOTtyZSB1c2luZyBpbiBhIGNvbW1lbnQgd2hlbiB0aGUgZm9ybSBpcyBnZW5lcmF0ZWQuIFR5cGljYWxseSBvbmx5IHVzZWZ1bCB3aGVuIGRlYnVnZ2luZy48L2xpPg0KPGxpPkVuYWJsZSBwcmltaXRpdmUgYW50aS1zcGFtIGZlYXR1cmVzLiBXaGVuIHR1cm5lZCBvbiwgdGhpcyBhbGxvd3MgYW55IGdpdmVuIElQIGFkZHJlc3MgdG8gb25seSBnZW5lcmF0ZSAxMCBlbWFpbHMgcGVyIGhvdXIuPC9saT4NCjxsaT5TaG93IEZpZWxkIElEcy4gV2hlbiB0dXJuZWQgb24sIEZvcm1CdWlsZGVyIHdpbGwgZGlzcGxheSBmaWVsZCBpZHMgd2hlbiBhZGRpbmcgb3IgZWRpdGluZyBhIGZvcm0uPC9saT4NCjwvdWw+DQo8aDM+U3R5bGluZyBhbmQgQ1NTPC9oMz4NCjxwPlBhdWwgTm9vbmUgZ3JhY2lvdXNseSBwcm92aWRlcyB1cyBhbGwgd2l0aCBhIHByZXR0eSBnb29kIHN0YW5kYXJkIENTUyB0aGF0IHlvdSBjYW4gdXNlIGZvciBmb3Jtczo8L3A+DQo8cHJlPg0KCS8qIFNhbXBsZSBGb3JtQnVpbGRlciBDU1MgYmFzZSAqLw0KCWZvcm0ge21hcmdpbi10b3A6MH0NCglmb3JtLCB0ZCwgdGgsIGxpIHsgZm9udC1zaXplOiAxMDAlfQ0KCWZvcm0gZGl2IHttYXJnaW4tYm90dG9tOjB9DQoJZmllbGRzZXQgZGl2IHsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtOw0KCX0NCglmaWVsZHNldCBkaXYgZGl2IHsNCgkJbWFyZ2luLXRvcDowLjVlbTsNCgkJbWFyZ2luLWxlZnQ6MWVtDQoJfQ0KCWZpZWxkc2V0IHsNCgkJbWFyZ2luLWJvdHRvbToxZW07DQoJCWJvcmRlcjoxcHggc29saWQgI0Y2MDsNCgkJcGFkZGluZzowLjVlbQ0KCX0NCglmaWVsZHNldCBsYWJlbCB7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCWxlZ2VuZCB7DQoJCWNvbG9yOiNGRkY7DQoJCWJhY2tncm91bmQ6I0Y2MDsNCgkJZm9udC1zdHlsZTppdGFsaWM7DQoJCWZvbnQtc2l6ZToxLjJlbTsNCgkJbWFyZ2luLWJvdHRvbTowLjVlbTsNCgkJcGFkZGluZzowLjJlbTsNCgkJd2lkdGg6YXV0bzsNCgkJYm9yZGVyOjFweCBzb2xpZCAjQ0NDDQoJfQ0KCXRleHRhcmVhIHsNCgkJbWFyZ2luOiAwLjVlbSAwOw0KCQl3aWR0aDo5OCU7DQoJCWhlaWdodDogNmVtDQoJfQ0KDQoJLyogQXBwbHkgdGhpcyBjbGFzcyB0byB0ZXh0L3NlbGVjdCBpbnB1dCBmaWVsZHMgd2l0aCBzaG9ydGVyIGxhYmVscw0KCQl0byBoZWxwIGFsaWdubWVudCAqLw0KCS5zaG9ydC1sYWJlbCBsYWJlbCB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTBlbX0NCgkuc2hvcnQtbGFiZWwgZmllbGRzZXQgZGl2IGlucHV0LA0KCS5zaG9ydC1sYWJlbCBmaWVsZHNldCBkaXYgc2VsZWN0IHt3aWR0aDoxNmVtfQ0KDQoJLyogUHJldHR5IHVwIHlvdXIgQ2FwdGNoYSBpbWFnZSBvdXRwdXQgKi8NCgkuY2FwdGNoYSB7DQoJCW1hcmdpbjowLjVlbSAwOw0KCQl3aWR0aDoyMDBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXINCgl9DQoJLmNhcHRjaGEgaW1nIHtib3JkZXI6MXB4IHNvbGlkICNGNjA7IG1hcmdpbi1ib3R0b206MC41ZW19DQoJLmNhcHRjaGEgaW5wdXQge3dpZHRoOjE5NnB4OyBtYXJnaW4tdG9wOjAuNWVtfQ0KDQoJLyogSnVzdCBhIGJpdCBtb3JlIHJvb20gZm9yIHRoZSBTdWJtaXQgYnV0dG9uICovDQoJLnN1Ym1pdCB7bWFyZ2luLXRvcDowLjVlbX0NCjwvcHJlPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KDQo8aDM+Rm9ybSBUZW1wbGF0ZSBWYXJpYWJsZXM8L2gzPg0KPHA+WW91IGNhbiBlZGl0IGl0IHRvIG1ha2UgeW91ciBmb3JtIGxheW91dCBsb29rIGFueSB3YXkgeW91JiMwMzk7ZCBsaWtlLg0KICAgVG8gbWFrZSB0aGUgZm9ybSB3b3JrLCB5b3UmIzAzOTtsbCBuZWVkIHRvIGFsd2F5cyBpbmNsdWRlIHRoZSAmYW1wOyMxMjM7JGZiX2hpZGRlbn0gYW5kICZhbXA7IzEyMzskc3VibWl0fQ0KICAgdGFncy48L3A+DQoNCjxwPllvdSBjYW4gYWNjZXNzIHlvdXIgZm9ybSBmaWVsZHMgZWl0aGVyIHVzaW5nIHRoZSAkZmllbGRzIGFycmF5IG9yIGJ5IGRpcmVjdGx5IGFjY2Vzc2luZyBmaWVsZHMgYnkgdGhlaXIgbmFtZXMgKGUuZy4sICZhbXA7IzEyMzskbXlmaWVsZC0+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+S25vd24gSXNzdWVzPC9oMz4NCjx1bD4NCjxsaT5Gb3JtQnVpbGRlciBpcyBub3QgeWV0IGludGVncmF0ZWQgd2l0aCBGcm9udEVuZCBVc2Vycy4gSXQgd2lsbCBiZS48L2xpPg0KPGxpPkZvcm1CdWlsZGVyIGRvZXMgbm90IHlldCBzdXBwb3J0IHByZXR0eSB1cmxzLCBhbHRob3VnaCB0aGF0IHNob3VsZG4mIzAzOTt0IG1hdHRlciBzaW5jZSB0aGUgdXNlciBzaWRlIGlzIHByZXR0eSBzaW1wbGUuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSZxdW90O2h0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmcmcXVvdDs+RGV2ZWxvcGVyIEZvcmdlPC9hPi48L2xpPg0KPGxpPlRvIG9idGFpbiBjb21tZXJjaWFsIHN1cHBvcnQsIHBsZWFzZSBzZW5kIGFuIGVtYWlsIHRvIHRoZSBhdXRob3IgYXQgPGEgaHJlZj0mcXVvdDttYWlsdG86c2pnQGNtc21vZHVsZXMuY29tJnF1b3Q7PiZhbXA7bHQ7c2pnQGNtc21vZHVsZXMuY29tJmFtcDtndDs8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyZxdW90Oz5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSZxdW90O2lyYzovL2lyYy5mcmVlbm9kZS5uZXQvI2NtcyZxdW90Oz5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciB3cml0ZSB5b3VyIHF1ZXN0aW9ucyBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjYXNoKS48L3A+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZhbXA7Y29weTsgMjAwOCwgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSZxdW90O21haWx0bzpzamdAY21zbW9kdWxlcy5jb20mcXVvdDs+JmFtcDtsdDtzamdAY21zbW9kdWxlcy5jb20mYW1wO2d0OzwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCZxdW90Oz5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPic7CiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcNCjx1bD4NCjxsaT5WZXJzaW9uIDAuNS4gMTkgQXByaWwgMDguIEJ1Z2ZpeGVzLCBzdXBwb3J0IGZvciBGb3JtQnJvd3NlciBmaXhlcyBhbmQgZmVhdHVyZXMsIGRpc3Bvc2l0aW9uIHR5cGUgZm9yIHVwY29taW5nIEZvcm1Ccm93c2VyIHZlcnNpb24uPC9saT4NCjxsaT5WZXJzaW9uIDAuNC40LiAyNiBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcmFkaW8gYnV0dG9uIGdyb3VwcywgZml4IGZvciB2YWxpZGF0aW9uIG9mIERpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4zLiAxOCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgcHVsbGRvd25zIHVzaW5nIG51bWJlcnMsIG9wdGlvbiB0byBpbmxpbmUgZm9ybSwgZml4ZXMgZm9yIHRhYmxlLWxheW91dHMgcHJvdmlkZWQgYnkgQXAgTXV0aHUsIGZpeCBmb3IgcmVxdWlyYWJpbGl0eSBvZiBEaXNwb3NpdGlvbnMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNC4yLiAxNCBTZXB0IDA3LiBCdWdmaXhlcyBmb3IgWE1MIGV4cG9ydCwgUmFkaW9CdXR0b24gR3JvdXAgc3VibWlzc2lvbiwgYW5kIEhUTUwgbGFiZWxzLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjQuMS4gQnVnZml4ZXMgZm9yIEZpbGUgRGlzcG9zaXRpb24gVHlwZXMuPC9saT4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7YW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My43MTk3NzU4MjQuMTIwODk1MjAxMS4xMjA5MjM1NDE4LjEyMDk0NjY1MDcuMTAnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjA5MjEzMDQ2LjcuMy51dG1jc3I9Y21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></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/sk_SK.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhYWN1dGU7cmUnOwokbGFuZ1snZmllbGRfdHlwZV8nXSA9ICdGaWVsZCBUeXBlIE5vdCBTZXQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnU2VsZWN0IG9uZSAob3IgbW9yZSkgY2F0YWxvZ2VyIGl0ZW1zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRFbmQnXSA9ICctRmllbGRzZXQgRW5kJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRmllbGRzZXRTdGFydCddID0gJy1GaWVsZHNldCBTdGFydCc7CiRsYW5nWydmaWVsZF90eXBlX1RleHRGaWVsZCddID0gJ1RleHQgSW5wdXQnOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnVGV4dCBJbnB1dCAoTXVsdGlwbGUpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHRvdiZlYWN1dGU7IHBvbGUnOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnQ2hlY2sgQm94JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnQ2hlY2sgQm94IEdyb3VwJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUHVsbGRvd25GaWVsZCddID0gJ1YmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWydmaWVsZF90eXBlX011bHRpc2VsZWN0RmllbGQnXSA9ICdNdWx0aXNlbGVjdCc7CiRsYW5nWydmaWVsZF90eXBlX1N0YXRlUGlja2VyRmllbGQnXSA9ICdVLlMuIFN0YXRlIFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX1Byb3ZpbmNlUGlja2VyRmllbGQnXSA9ICdDYW5hZGlhbiBQcm92aW5jZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9Db3VudHJ5UGlja2VyRmllbGQnXSA9ICdDb3VudHJ5IFBpY2tlcic7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdGUgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGltZSBQaWNrZXInOwokbGFuZ1snZmllbGRfdHlwZV9SYWRpb0dyb3VwRmllbGQnXSA9ICdSYWRpbyBCdXR0b24gR3JvdXAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkVtYWlsIFJlc3VsdHMgQmFzZWQgb24gUHVsbGRvd24nOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGVEaXJlY3RvciddID0gJypTYXZlIFJlc3VsdHMgdG8gRmlsZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uTXVsdGlzZWxlY3RGaWxlRGlyZWN0b3InXSA9ICcqU2F2ZSBSZXN1bHRzIHRvIEZpbGUocykgQmFzZWQgb24gTXVsdGlwbGUgU2VsZWN0aW9ucyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uUGFnZVJlZGlyZWN0b3InXSA9ICcqUmVkaXJlY3QgdG8gUGFnZSBCYXNlZCBvbiBQdWxsZG93bic7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRW1haWwgUmVzdWx0cyB0byBzZXQgQWRkcmVzcyhlcyknOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkVtYWlsQ29uZmlybWF0aW9uJ10gPSAnKlZhbGlkYXRlLXZpYS1FbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlJ10gPSAnKldyaXRlIFJlc3VsdHMgdG8gRmxhdCBGaWxlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTdG9yZSBSZXN1bHRzIGluIERhdGFiYXNlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Gb3JtQnJvd3NlciddID0gJypTdG9yZSBSZXN1bHRzIGZvciBGb3JtQnJvd3NlciBNb2R1bGUgdi4zJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25Vc2VyVGFnJ10gPSAnKkNhbGwgQSBVc2VyIERlZmluZWQgVGFnIFdpdGggdGhlIEZvcm0gUmVzdWx0cyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRW1haWwgdG8gVXNlci1TdXBwbGllZCBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbFNpdGVBZG1pbiddID0gJypFbWFpbCB0byBDTVMgQWRtaW4gVXNlcic7CiRsYW5nWydmaWVsZF90eXBlX1BhZ2VCcmVha0ZpZWxkJ10gPSAnLVBhZ2UgQnJlYWsnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWxlIFVwbG9hZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gQWRkcmVzcyZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0VtYWlsICZxdW90O0Zyb20gTmFtZSZxdW90OyBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0VtYWlsICZxdW90O1N1YmplY3QmcXVvdDsgRmllbGQnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGljIFRleHQnOwokbGFuZ1snZmllbGRfdHlwZV9TeXN0ZW1MaW5rRmllbGQnXSA9ICctU3RhdGljIExpbmsnOwokbGFuZ1snZmllbGRfdHlwZV9MaW5rRmllbGQnXSA9ICdMaW5rIChVc2VyLWVudGVyZWQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfSGlkZGVuRmllbGQnXSA9ICctSGlkZGVuIEZpZWxkJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ29tcHV0ZWRGaWVsZCddID0gJy1Db21wdXRlZCBGaWVsZCc7CiRsYW5nWydmaWVsZF90eXBlX1VuaXF1ZUludGVnZXJGaWVsZCddID0gJy1VbmlxdWUgSW50ZWdlciAoU2VyaWFsKSc7CiRsYW5nWyd2YWxpZGF0aW9uX25vbmUnXSA9ICdObyBWYWxpZGF0aW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaWMnOwokbGFuZ1sndmFsaWRhdGlvbl9pbnRlZ2VyJ10gPSAnSW50ZWdlcic7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3ZhbGlkYXRpb25fdXNwaG9uZSddID0gJ1Bob25lIE51bWJlciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ011c3QgQmUgQ2hlY2tlZCc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X21hdGNoJ10gPSAnTWF0Y2ggUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVnZXhfbm9tYXRjaCddID0gJ0RvZXNuJiMwMzk7dCBtYXRjaCBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sncmVxdWlyZWRfZmllbGRfbWlzc2luZyddID0gJ0EgdmFsdWUgd2FzIG5vdCBzdXBwbGllZCBmb3IgYSByZXF1aXJlZCBmaWVsZCc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV92YWx1ZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl92YWxpZCddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVudHJ5IGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5faW50ZWdlciddID0gJ1BsZWFzZSBlbnRlciBhbiBpbnRlZ2VyIHZhbHVlIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYW5fZW1haWwnXSA9ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzIGZvciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciBmb3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1snbm90X3ZhbGlkX2VtYWlsJ10gPSAnJnF1b3Q7JXMmcXVvdDsgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGEgdmFsaWQgZW1haWwgYWRkcmVzcyEnOwokbGFuZ1sncGxlYXNlX2VudGVyX25vX2xvbmdlciddID0gJ1BsZWFzZSBlbnRlciBhIHZhbHVlIHRoYXQgaXMgbm8gbG9uZ2VyIHRoYW4gJXMgY2hhcmFjdGVycyc7CiRsYW5nWyd0aXRsZV9saXN0X2RlbGltaXRlciddID0gJ0NoYXJhY3RlciB0byB1c2UgYXMgZGVsaW1pdGVyIGluIHJlc3VsdHMgdGhhdCByZXR1cm4gbW9yZSB0aGFuIG9uZSB2YWx1ZSc7CiRsYW5nWyd5b3VfbmVlZF9wZXJtaXNzaW9uJ10gPSAnWW91IG5lZWQgdGhlICZxdW90OyVzJnF1b3Q7IHBlcm1pc3Npb24gdG8gcGVyZm9ybSB0aGF0IG9wZXJhdGlvbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdTb3JyeSEgWW91IGRvbiYjMDM5O3QgaGF2ZSBhZGVxdWF0ZSBwcml2aWxlZ2VzIHRvIGFjY2VzcyB0aGlzIHNlY3Rpb24uJzsKJGxhbmdbJ2ZpZWxkX29yZGVyX3VwZGF0ZWQnXSA9ICdGaWVsZCBvcmRlciB1cGRhdGVkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtIGRlbGV0ZWQuJzsKJGxhbmdbJ2ZpZWxkX2RlbGV0ZWQnXSA9ICdGaWVsZCBkZWxldGVkLic7CiRsYW5nWydjb25maWd1cmF0aW9uX3VwZGF0ZWQnXSA9ICdDb25maWd1cmF0aW9uIFVwZGF0ZWQuJzsKJGxhbmdbJ3lvdV9tdXN0X2NoZWNrJ10gPSAnWW91IG11c3QgY2hlY2sgJnF1b3Q7JXMmcXVvdDsgaW4gb3JkZXIgdG8gY29udGludWUuJzsKJGxhbmdbJ211c3Rfc3BlY2lmeV9vbmVfZGVzdGluYXRpb24nXSA9ICdZb3UgbmVlZCB0byBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBkZXN0aW5hdGlvbiBhZGRyZXNzISc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2Zvcm0nXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoZSBmb3JtICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgZmllbGQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0FkdmFuY2VkIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdW50aWwgdGhlIGZpZWxkIHR5cGUgaGFzIGJlZW4gc2V0Lic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ1RoZSBmaWVsZCBuYW1lICZxdW90OyVzJnF1b3Q7IGlzIGFscmVhZHkgaW4gdXNlLiBQbGVhc2UgdXNlIHVuaXF1ZSBmaWVsZCBuYW1lcywgb3IgZGlzYWJsZSB1bmlxdWUgZmllbGQgbmFtZXMgaW4gdGhlIEZvcm0gQnVpbGRlciBjb25maWd1cmF0aW9uLic7CiRsYW5nWydmaWVsZF9ub19uYW1lJ10gPSAnRmllbGRzIG11c3QgYmUgbmFtZWQsIHVubGVzcyB5b3UgZGlzYWJsZSB0aGlzIGluIHRoZSBGb3JtIEJ1aWxkZXIgY29uZmlndXJhdGlvbi4nOwokbGFuZ1snYW5vbnltb3VzJ10gPSAnQW5vbnltb3VzJzsKJGxhbmdbJ2FiYnJldmlhdGlvbl9sZW5ndGgnXSA9ICdMZW46ICVzJzsKJGxhbmdbJ2JveGVzJ10gPSAnJXMgYm94ZXMnOwokbGFuZ1snb3B0aW9ucyddID0gJyVzIG9wdGlvbnMnOwokbGFuZ1sndGV4dF9sZW5ndGgnXSA9ICclcyBjaGFycy4nOwokbGFuZ1snb3JkZXInXSA9ICdPcmRlcic7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1t1bnNwZWNpZmllZF0nOwokbGFuZ1snYWRkZWQnXSA9ICdhZGRlZCc7CiRsYW5nWyd1cGRhdGVkJ10gPSAndXBkYXRlZCc7CiRsYW5nWydzb3J0X29wdGlvbnMnXSA9ICdTb3J0IG9wdGlvbnMgb24gb3V0cHV0JzsKJGxhbmdbJ3NlbGVjdF9vbmUnXSA9ICdWeWJyYcWlIGplZGVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnVnlicmHFpSB0eXAnOwokbGFuZ1sndG8nXSA9ICdEbyc7CiRsYW5nWyd5ZXMnXSA9ICcmQWFjdXRlO25vJzsKJGxhbmdbJ25vJ10gPSAnTmllJzsKJGxhbmdbJ3JlY2lwaWVudHMnXSA9ICdwciZpYWN1dGU7amltYXRlbGlhJzsKJGxhbmdbJ2ZpbGVfY291bnQnXSA9ICclcyBwb3NzaWJsZSBmaWxlcyc7CiRsYW5nWydkZXN0aW5hdGlvbl9jb3VudCddID0gJyVzIGRlc3RpbmF0aW9ucyc7CiRsYW5nWydzYXZlJ10gPSAnVWxvxb5pxaUnOwokbGFuZ1snYWRkJ10gPSAnUHJpZGHFpSc7CiRsYW5nWyd1cGRhdGUnXSA9ICdBa3R1YWxpem92YcWlJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnVWxvxb5pxaUgYSBwb2tyYcSNb3ZhxaUgdiAmdWFjdXRlO3ByYXYmYWFjdXRlO2NoJzsKJGxhbmdbJ2luZm9ybWF0aW9uJ10gPSAnSW5mb3JtJmFhY3V0ZTtjaWEnOwokbGFuZ1snYXV0b21hdGljJ10gPSAnQXV0b21hdGlja3knOwokbGFuZ1snZm9ybXMnXSA9ICdGb3JtdWwmYWFjdXRlO3JlJzsKJGxhbmdbJ2Zvcm0nXSA9ICdGb3JtdWwmYWFjdXRlO3IgJXMnOwokbGFuZ1snY29uZmlndXJhdGlvbiddID0gJ0tvbmZpZ3VyJmFhY3V0ZTtjaWEnOwokbGFuZ1snZmllbGRfcmVxdWlyZW1lbnRfdXBkYXRlZCddID0gJ1BvbGUgcyB2ecW+YWRub3ZhbiZpYWN1dGU7bSBha3R1YWxpem92YW4mZWFjdXRlOyc7CiRsYW5nWydtYXhpbXVtX3NpemUnXSA9ICdNYXguIHZlxL5rb3PFpSc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1JveiZzY2Fyb247JmlhY3V0ZTtyZW5pYSc7CiRsYW5nWydwZXJtaXR0ZWRfZmlsZXR5cGVzJ10gPSAnUG92b2xlbiZlYWN1dGU7IHR5cHkgcyZ1YWN1dGU7Ym9yb3YnOwokbGFuZ1snZmlsZV90b29fbGFyZ2UnXSA9ICdOYWhyJmFhY3V0ZTt2YW4meWFjdXRlOyBzJnVhY3V0ZTtib3IgamUgcHImaWFjdXRlO2xpJnNjYXJvbjsgdmXEvmsmeWFjdXRlOyEgUG92b2xlbiZhYWN1dGU7IGplIG1heGltJmFhY3V0ZTtsbmEgdmXEvmtvc8WlOic7CiRsYW5nWydpbGxlZ2FsX2ZpbGVfdHlwZSddID0gJ1RoaXMgdHlwZSBvZiBmaWxlIG1heSBub3QgYmUgdXBsb2FkZWQuIFBsZWFzZSBjaGVjayB0aGF0IHRoZSBleHRlbnNpb24gaXMgY29ycmVjdC4nOwokbGFuZ1sndXBsb2FkJ10gPSAnTmFocmHFpSc7CiRsYW5nWydmb3JtX2ltcG9ydGVkJ10gPSAnRm9ybXVsJmFhY3V0ZTtyIG5haW1wb3J0b3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydmb3JtX2ltcG9ydF9mYWlsZWQnXSA9ICdJbXBvcnQgZm9ybXVsJmFhY3V0ZTtyYSB6bHloYWxvISBQcm9ibCZlYWN1dGU7bSBzIHBhcnNvdmFuJmlhY3V0ZTttIFhNTC4nOwokbGFuZ1sncm93cyddID0gJyVzIHJpYWRrb3YnOwokbGFuZ1snY29scyddID0gJyVzIHN0xLpwY292JzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMiBob2Rpbm92JnlhY3V0ZTsgY2FzJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNCBob2Rpbm92JnlhY3V0ZTsgxI1hYyc7CiRsYW5nWydob3VyJ10gPSAnSG9kaW5hJzsKJGxhbmdbJ21pbiddID0gJ01pbiZ1YWN1dGU7dGEnOwokbGFuZ1snbWVyaWQnXSA9ICdNZXJpZGlhbic7CiRsYW5nWydkYXRlX3JhbmdlJ10gPSAnSG9kbm90ZW5pZTogJXMgLSAlcyc7CiRsYW5nWyd0aGFua3MnXSA9ICdUaGFua3MhIFlvdXIgc3VibWlzc2lvbnMgaGF2ZSBiZWVuIHJlY2VpdmVkLic7CiRsYW5nWydlZGl0J10gPSAnVXByYXZpxaUnOwokbGFuZ1snZGVsZXRlJ10gPSAnT2RzdHImYWFjdXRlO25pxaUnOwokbGFuZ1snZGF5J10gPSAnRGXFiCc7CiRsYW5nWydtb24nXSA9ICdNZXNpYWMnOwokbGFuZ1sneWVhciddID0gJ1Jvayc7CiRsYW5nWydub25lJ10gPSAnKMW+aWFkbnkpJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWwgb2RpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bCB2ZXJ6aWEgJXMgbmFpbiZzY2Fyb247dGFsb3ZhbiZ5YWN1dGU7Lic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsIGFrdHVhbGl6b3ZhbiZ5YWN1dGU7IG5hIHZlcnppdSAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnU3AmYXVtbDvFpSc7CiRsYW5nWydidXR0b25fc3VibWl0J10gPSAnU3VibWl0IEZvcm0nOwokbGFuZ1snYnV0dG9uX2NvbnRpbnVlJ10gPSAnQ29udGludWUuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0NoZWNrZWQnOwokbGFuZ1sndmFsdWVfdW5jaGVja2VkJ10gPSAnVW5jaGVja2VkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnTWFpbic7CiRsYW5nWyd0YWJfc3ltYm9sJ10gPSAnRm9ybSBEaXNwbGF5IFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9zdWJtaXQnXSA9ICdGb3JtIFN1Ym1pc3Npb24nOwokbGFuZ1sndGFiX2NhcHRjaGEnXSA9ICdDYXB0Y2hhIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0FkdmFuY2VkIFNldHRpbmdzJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0Zvcm0gVGVtcGxhdGUnOwokbGFuZ1sndGFiX3N1Ym1pc3Npb250ZW1wbGF0ZSddID0gJ1N1Ym1pc3Npb24gVGVtcGxhdGUnOwokbGFuZ1snY2FudXNlX3NtYXJ0eSddID0gJzxlbT5TbWFydHkgdmFyaWFibGVzIGFyZSB2YWxpZCBpbiB0aGlzIGZpZWxkLjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnQWRkIE1vcmUgT3B0aW9ucyc7CiRsYW5nWydkZWxldGVfb3B0aW9ucyddID0gJ0RlbGV0ZSBNYXJrZWQgT3B0aW9ucyc7CiRsYW5nWydhZGRfY2hlY2tib3hlcyddID0gJ0FkZCBNb3JlIENoZWNrYm94ZXMnOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdEZWxldGUgTWFya2VkIENoZWNrYm94ZXMnOwokbGFuZ1snYWRkX2FkZHJlc3MnXSA9ICdBZGQgQW5vdGhlciBBZGRyZXNzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnRGVsZXRlIE1hcmtlZCBBZGRyZXNzZXMnOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnQWRkIEFub3RoZXIgRGVzdGluYXRpb24nOwokbGFuZ1snZGVsZXRlX2Rlc3RpbmF0aW9uJ10gPSAnRGVsZXRlIE1hcmtlZCBEZXN0aW5hdGlvbnMnOwokbGFuZ1snc3VzcGVjdGVkX3NwYW0nXSA9ICdQciZpYWN1dGU7bGkmc2Nhcm9uOyB2ZcS+YSBlLW1haWxvdiBnZW5lcm92YW4meWFjdXRlO2NoIHogdmEmc2Nhcm9uO2VqIElQIGFkcmVzeS4gQW50aS1TcGFtIGsmb2FjdXRlO2QgbWEgemFiciZhYWN1dGU7bmnFpSBkb3J1xI1lbml1JzsKJGxhbmdbJ3N1c3BlY3RlZF9zcGFtX2xvZyddID0gJ1BvZG96cmVuaWUgbmEgc3BhbSB6IGEgSVAgJXMgemFzdGF2ZW4meWFjdXRlOy4nOwokbGFuZ1sncmVvcmRlciddID0gJ1ByZXJvemRlbGnFpSBwb2xpYSc7CiRsYW5nWydjYW5jZWwnXSA9ICdacnUmc2Nhcm9uO2nFpSc7CiRsYW5nWyd2YWx1ZV9zZXQnXSA9ICdTdGFub3ZpxaUgaG9kbm90dTogJXMnOwokbGFuZ1snaGVscF9jYXRhbG9nZXJfYXR0cmlidXRlX2ZpZWxkcyddID0gJ0JlbG93IGlzIGEgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZnJvbSB0aGUgQ2F0YWxvZ2VyIG1vZHVsZS48YnIvPllvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IHZhbGlkIHJhbmdlcywgdmFsdWVzLCBvciBudW1lcm91cyB2YWx1ZXMgdG8gYmUgdXNlZCBpbiBmaWx0ZXJpbmcgdGhlIGxpc3Qgb2YgaXRlbXMgdGhhdCBpcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPGJyLz4NCjxici8+DQo8c3Ryb25nPlJhbmdlczo8L3N0cm9uZz48YnIvPg0KUmFuZ2VzIGNhbiBiZSBzcGVjaWZpZWQgYnkgc2lnbmlmeWluZyBhIG1pbmltdW0gYW5kIG1heGltdW0gdmFsdWUgdXNpbmcgdGhpcyBzeW50YXg6ICZxdW90O3JhbmdlOiBtaW52YWx1ZSB0byBtYXh2YWx1ZSZxdW90Ozxici8+DQo8YnIvPg0KPHN0cm9uZz5NdWx0aXBsZSBWYWx1ZXM6PC9zdHJvbmc+PGJyLz4NClRvIHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUgdXNlIHRoZSBzeW50YXggJnF1b3Q7bXVsdGk6IHZhbHVlMXx2YWx1ZTJ8dmFsdWUzJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPlZhbHVlcyBmcm9tIGhpZGRlbiBmaWVsZHM8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBhIHZhbHVlIGZyb20gYSBoaWRkZW4gZmllbGQgdXNlIHRoZSBzeW50YXggeyRmbGRfaWR9PGJyLz4NCjxici8+JzsKJGxhbmdbJ2hlbHBfbmFtZV9yZWdleCddID0gJ0EgcmVndWxhciBleHByZXNzaW9uIHRvIGFsbG93IGZpbHRlcmluZyBjYXRhbG9nZXIgaXRlbXMgYnkgbmFtZSc7CiRsYW5nWydoZWxwX2ZpZWxkX2hlaWdodCddID0gJ1YmeWFjdXRlOyZzY2Fyb247a2EgdmlhY24mYWFjdXRlO3NvYm4mZWFjdXRlO2hvIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWyd0aXRsZV9uYW1lX3JlZ2V4J10gPSAnQ2F0YWxvZ2VyIEl0ZW0gTmFtZSBSZWd1bGFyIEV4cHJlc3Npb24nOwokbGFuZ1sndGl0bGVfZmllbGRfaGVpZ2h0J10gPSAnViZ5YWN1dGU7JnNjYXJvbjtrYSBwb8S+YSc7CiRsYW5nWyd0aXRsZV9maWxlX3BhdGgnXSA9ICdEZXN0aW5hdGlvbiBEaXJlY3RvcnkgZm9yIG91dHB1dCBmaWxlcyc7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ1XFviZpYWN1dGU7dmF0ZcS+c2vFiHkgdCZhYWN1dGU7Zyc7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2Rlc3RwYWdlJ10gPSAnU3RyJmFhY3V0ZTtua2EgcHJlIG4mYWFjdXRlO3ZyYXQgcyBvZGthem9tIHByZSBzJnVhY3V0ZTtib3InOwokbGFuZ1sndGl0bGVfdXBsb2FkbW9kdWxlX3N1bW1hcnknXSA9ICdTdWJtaXR0ZWQgd2l0aCBmb3JtYnVpbGRlcic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnS2F0ZWcmb2FjdXRlO3JpYSBVcGxvYWQgbW9kdWx1JzsKJGxhbmdbJ3RpdGxlX3NlbmR0b191cGxvYWRzJ10gPSAnUyZ1YWN1dGU7Ym9yIG9kb3NsYcWlIGRvIG1vZHVsdSBVcGxvYWRzJzsKJGxhbmdbJ3RpdGxlX2xlZ2VuZCddID0gJ0xlZ2VuZGEnOwokbGFuZ1sndGl0bGVfbWF4aW11bV9sZW5ndGgnXSA9ICdNYXhpbSZhYWN1dGU7bG5hIGTEusW+a2EnOwokbGFuZ1sndGl0bGVfY2hlY2tib3hfbGFiZWwnXSA9ICdMYWJlbCAocG9waXNvaykgemEmc2Nhcm9uO2tydCZhYWN1dGU7dmFjaWVobyBwb8S+YSc7CiRsYW5nWyd0aXRsZV9yYWRpb19sYWJlbCddID0gJ0xhYmVsIChwb3Bpc29rKSByJmFhY3V0ZTtkaW8gdGxhxI0maWFjdXRlO3RrYSc7CiRsYW5nWyd0aXRsZV9jaGVja2VkX3ZhbHVlJ10gPSAnSG9kbm90YSBwcmkgdiZ5YWN1dGU7YmVyZSc7CiRsYW5nWyd0aXRsZV91bmNoZWNrZWRfdmFsdWUnXSA9ICdIb2Rub3RhIGJleiB2JnlhY3V0ZTtiZXJ1JzsKJGxhbmdbJ3RpdGxlX2NoZWNrYm94X2RldGFpbHMnXSA9ICdOYXN0YXZlbmlhIHByZSBza3VwaW51IHphJnNjYXJvbjtydCZhYWN1dGU7dmFjJmlhY3V0ZTtjaCBwb2wmaWFjdXRlOyc7CiRsYW5nWyd0aXRsZV9kZWxldGUnXSA9ICdPZHN0ciZhYWN1dGU7bmnFpT8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnJnF1b3Q7VGV4dCBwcnYmZWFjdXRlO2hvIHBvxL5hJnF1b3Q7ICc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fdmFsdWUnXSA9ICdIb2Rub3RhIHYmeWFjdXRlO2JlcnUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX2Rpc3BsYXluYW1lJ10gPSAnTiZhYWN1dGU7em92IHYmeWFjdXRlO2JlcnUnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICdQcmVkbWV0IHByZSB2JnlhY3V0ZTtiZXInOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9zdGF0ZSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9zZWxlY3RfZGVmYXVsdF9wcm92aW5jZSddID0gJ1ByZWRuYXN0YXZlbiZ5YWN1dGU7IHYmeWFjdXRlO2Jlcic7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ04mYWFjdXRlO3pvdiB2b8S+YnknOwokbGFuZ1sndGl0bGVfb3B0aW9uX3ZhbHVlJ10gPSAnT2Rvc2xhbiZhYWN1dGU7IGhvZG5vdGEnOwokbGFuZ1sndGl0bGVfcHVsbGRvd25fZGV0YWlscyddID0gJ05hc3RhdmVuaWEgcHJlIHYmeWFjdXRlO2Jlcm92JmVhY3V0ZTsgcG9sZSc7CiRsYW5nWyd0aXRsZV9tdWx0aXNlbGVjdF9kZXRhaWxzJ10gPSAnTmFzdGF2ZW5pYSBwcmUgdmlhY24mYWFjdXRlO3Nvdm4mZWFjdXRlOyB2JnlhY3V0ZTtiZXJvdiZlYWN1dGU7IHBvbGUgJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdEZXN0aW5hdGlvbiBFbWFpbCBBZGRyZXNzJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2ZpbGVuYW1lJ10gPSAnRGVzdGluYXRpb24gRmlsZSBOYW1lJzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2Zyb21fbmFtZSddID0gJyZxdW90O0Zyb20gbmFtZSZxdW90OyBmb3IgZW1haWwnOwokbGFuZ1sndGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleCddID0gJ1BvdcW+aSBqZWRub2R1Y2gmdWFjdXRlOyBrb250cm9sdSBlLW1haWxvdmVqIGFkcmVzeSc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdQb3XFvmlqZSBqZWRub2R1Y2gmc2Nhcm9uO2l1IGtvbnRyb2x1IGUtbWFpbG92ZWogYWRyZXN5ICAobmFwci4gcG92b2wmaWFjdXRlOyBlLW1haWwgdiB0dmFyZSAgJnF1b3Q7eEB5JnF1b3Q7IG5hbWllc3RvIHBvxb5hZG92biZlYWN1dGU7aG8geEB5LnRsZCknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7WiBhZHJlc3kmcXVvdDsgcHJlIGUtbWFpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9lbmNvZGluZyddID0gJ1puYWtvdiZhYWN1dGU7IHNhZGEgcHJlIGUtbWFpbCc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUHVsbGRvd24tYmFzZWQgRW1haWxlciBEZXRhaWxzJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfbmFtZSddID0gJ04mYWFjdXRlO3pvdiBwb8S+YSc7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnUHJlZG1ldCBlLW1haWx1JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmFtZSddID0gJ04mYWFjdXRlO3pvdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3RhdHVzJ10gPSAnU3RhdiBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnUHJpcHJhdmVuJnlhY3V0ZTsgcHJlIG5hc2FkZW5pZSc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkxJ10gPSAnTmllIGplIHByaXByYXZlbiZ5YWN1dGU7JzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdQcmVzbWVyb3ZhxaUgbmEgc3RyJmFhY3V0ZTtua3UgcG8gb2Rvc2xhbiZpYWN1dGU7IGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MiddID0gJ1BsZWFzZSBhZGQgYSBmaWVsZCB0byB0aGUgZm9ybSBzbyB0aGF0IHRoZSB1c2VyJiMwMzk7cyBpbnB1dCBnZXRzIGhhbmRsZWQuIFlvdSBjYW4nOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5X2xpbmsnXSA9ICdwb3XFvmkgdCZ1YWN1dGU7dG8ga2wmYWFjdXRlO3Zlc292JnVhY3V0ZTsgc2tyYXRrdSc7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ1BvbGlhIGZvcm11bCZhYWN1dGU7cmEnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdJRCBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzJ10gPSAnVWsmYWFjdXRlO8W+IHBvbGUgYWxpYXN1JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRhbGlhc2VzX2xvbmcnXSA9ICdLbGlrbnV0JmlhY3V0ZTttIHpvYnJheiZpYWN1dGU7dGUgYWxpYXN5IHBvbCZpYWN1dGU7IHByaSBwcmlkJmFhY3V0ZTt2YW4maWFjdXRlOyBhbGVibyBlZGl0JmFhY3V0ZTtjaWkgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnTiZhYWN1dGU7em92IHBvxL5hJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2FsaWFzJ10gPSAnQWxpYXMgcG/EvmEnOwokbGFuZ1sndGl0bGVfcmFkaW9ncm91cF9kZXRhaWxzJ10gPSAnTmFzdGF2ZW5pYSBza3VwaW55IHImYWFjdXRlO2RpbyB0bGHEjSZpYWN1dGU7dG9rJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdUeXAgcG/EvmEnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ3ByZSB2eXR2b3JlbmllIGZvcm11bCZhYWN1dGU7cm92JmVhY3V0ZTtobyBwb8S+YSc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2Zvcm0nXSA9ICdQcmlkYcWlIG5vdiZ5YWN1dGU7IGZvcm11bCZhYWN1dGU7cic7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb24nXSA9ICdVayZhYWN1dGU7emHFpSB2ZXJzaXUgbW9kdWx1IHByZSBmb3JtdWwmYWFjdXRlO3JlPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ1RoaXMgd2lsbCBlbWJlZCB5b3VyIGluc3RhbGxlZCB2ZXJzaW9uIG51bWJlciBvZiBGb3JtIEJ1aWxkZXIgbW9kdWxlIGluIGEgY29tbWVudCwgdG8gYWlkIGluIGRlYnVnZ2luZyc7CiRsYW5nWyd0aXRsZV9hZGRfbmV3X2ZpZWxkJ10gPSAnUHJpZGHFpSBub3YmZWFjdXRlOyBwb2xlJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fc3VibWl0X2J1dHRvbiddID0gJ1RleHQgdGxhxI0maWFjdXRlO3RrYSBwcmUgb2Rvc2llbGFuaWUnOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHknXSA9ICdQcmlkYcWlIGphdmFzY3JpcHQgcHJpIG9kb3NpZWxhbiZpYWN1dGU7IG5hIG9jaHJhbnUgcHJlZCB2aWFjbiZhYWN1dGU7c29ibiZlYWN1dGU7bXUgb2RzbGFuaXUgZm9ybXVsJmFhY3V0ZTtyYT8nOwokbGFuZ1sndGl0bGVfc3VibWl0X2J1dHRvbl9zYWZldHlfaGVscCddID0gJ1ByaWRhxaUgYmV6cGXEjW5vc3RuJnlhY3V0ZTsgc2NyaXB0JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fbmV4dF9idXR0b24nXSA9ICdGb3JtICZxdW90O05leHQmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZm9ybV9wcmV2X2J1dHRvbiddID0gJ0Zvcm0gJnF1b3Q7UHJldmlvdXMmcXVvdDsgQnV0dG9uIFRleHQgKHVzZWQgZm9yIG11bHRpcGFnZSBmb3JtcyknOwokbGFuZ1sndGl0bGVfZmllbGRfdmFsaWRhdGlvbiddID0gJ0ZpZWxkIFZhbGlkYXRpb24nOwokbGFuZ1sndGl0bGVfZm9ybV9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9jc3NfY2xhc3MnXSA9ICdDU1MgQ2xhc3MgZm9yIHRoaXMgZmllbGQnOwokbGFuZ1sndGl0bGVfZm9ybV9yZXF1aXJlZF9zeW1ib2wnXSA9ICdTeW1ib2wgdG8gbWFyayByZXF1aXJlZCBGaWVsZHMnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWQnXSA9ICdSZXF1aXJlZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9sb25nJ10gPSAnUmVxdWlyZSBhIHJlc3BvbnNlIGZvciB0aGlzIEZpZWxkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdIaWRlIExhYmVsJzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0hpZGUgdGhpcyBmaWVsZCYjMDM5O3MgbmFtZSBvbiBGb3JtJzsKJGxhbmdbJ3RpdGxlX3RleHQnXSA9ICdTdGF0aWMgdGV4dCB0byBkaXNwbGF5JzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3JlZ2V4J10gPSAnVmFsaWRhdGlvbiBSZWdleCc7CiRsYW5nWyd0aXRsZV9saW5lc190b19zaG93J10gPSAnTnVtYmVyIG9mIExpbmVzIHRvIGRpc3BsYXknOwokbGFuZ1snbm9fZGVmYXVsdCddID0gJ05vIERlZmF1bHQnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdQYWdlIHRvIHJlZGlyZWN0IGFmdGVyIGFwcHJvdmFsJzsKJGxhbmdbJ3RpdGxlX3JlZ2V4X2hlbHAnXSA9ICdUaGlzIHJlZ3VsYXIgZXhwcmVzc2lvbiB3aWxsIG9ubHkgYmUgdXNlZCBpZiAmcXVvdDt2YWxpZGF0aW9uIHR5cGUmcXVvdDsgaXMgc2V0IHRvIGEgcmVnZXgtcmVsYXRlZCBvcHRpb24uIEluY2x1ZGUgYSBmdWxsIFBlcmwtc3R5bGUgcmVnZXgsIGluY2x1ZGluZyB0aGUgc3RhcnQvc3RvcCBzbGFzaGVzIGFuZCBmbGFncyAoZS5nLiwgJnF1b3Q7L2ltYWdlXC4oXGQrKS9pJnF1b3Q7KSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZF9hYmJyZXYnXSA9ICdSZXEmIzAzOTtkJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnSGlkZSBFcnJvcnMnOwokbGFuZ1sndGl0bGVfZm9ybV9kaXNwbGF5dHlwZSddID0gJ0Zvcm0gRGlzcGxheSBUeXBlJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzX2xvbmcnXSA9ICdQcmV2ZW50IGRlYnVnIC8gZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyBzZWVuIGJ5IHVzZXJzLic7CiRsYW5nWyd0aXRsZV9lbWFpbF90ZW1wbGF0ZSddID0gJ0VtYWlsIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltdW0gdXBsb2FkIGZpbGUgc2l6ZSAoa2lsb2J5dGVzKSc7CiRsYW5nWyd0aXRsZV9tYXhpbXVtX3NpemVfbG9uZyddID0gJ1RoaXMgbGltaXRhdGlvbiBpcyBpbiBhZGRpdGlvbiB0byBhbnkgbGltaXRzIHNldCBieSB0aGUgcGhwIG9yIHdlYiBzZXJ2ZXIgY29uZmlndXJhdGlvbic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ1Blcm1pdHRlZCBFeHRlbnNpb25zJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zX2xvbmcnXSA9ICdFbnRlciBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0LCBleGNsdWRpbmcgdGhlIGRvdCAoZS5nLiwgJnF1b3Q7anBnLGdpZixqcGVnJnF1b3Q7KS4gU3BhY2VzIHdpbGwgYmUgaWdub3JlZC4gTGVhdmluZyB0aGlzIGJsYW5rIG1lYW5zIHRoZXJlIHdpbGwgYmUgbm8gcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9zaG93X2xpbWl0YXRpb25zJ10gPSAnRGlzcGxheSByZXN0cmljdGlvbnM/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ0Rpc3BsYXkgYW55IHNpemUgYW5kIGV4dGVuc2lvbiByZXN0cmljdGlvbnMgd2l0aCB0aGUgdXBsb2FkIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV9mb3JtX3RlbXBsYXRlJ10gPSAnVGVtcGxhdGUgdG8gdXNlIHRvIERpc3BsYXkgRm9ybSc7CiRsYW5nWyd0aXRsZV9wYWdlX3hfb2ZfeSddID0gJ1BhZ2UgJXMgb2YgJXMnOwokbGFuZ1sndGl0bGVfbm9fYWR2YW5jZWRfb3B0aW9ucyddID0gJ0ZpZWxkIGhhcyBubyBhZHZhbmNlZCBvcHRpb25zLic7CiRsYW5nWyd0aXRsZV9mb3JtX3Vuc3BlY2lmaWVkJ10gPSAnVGV4dCB0byByZXR1cm4gZm9yIHVuc3BlY2lmaWVkIGZpZWxkIHZhbHVlcyc7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnRW5hYmxlIGZhc3QgZmllbGQgYWRkaW5nIHB1bGxkb3duIGZvciBmb3Jtcz8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdFbmFibGUgZmFzdCBmaWVsZCBhZGQgcHVsbGRvd24/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdGYXN0IGZpZWxkIGFkZGVyJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIG9ubHkgYWxsb3cgMTAgZW1haWxzIHRvIGJlIHRyaWdnZXJlZCBmcm9tIGEgZ2l2ZW4gSVAgYWRkcmVzcyAocGVyIGhvdXIpLic7CiRsYW5nWyd0aXRsZV9lbmFibGVfYW50aXNwYW0nXSA9ICdFbmFibGUgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcz8nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkcyddID0gJ1Nob3cgRmllbGQgSURzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHNfbG9uZyddID0gJ0NsaWNraW5nIHRoaXMgd2lsbCBhbGxvdyBkaXNwbGF5aW5nIGZpZWxkIGlkcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnVXBsb2FkIGZvcm0gZnJvbSBYTUwgZmlsZSc7CiRsYW5nWyd0aXRsZV94bWxfdXBsb2FkX2Zvcm1uYW1lJ10gPSAnVXNlIHRoaXMgZm9ybSBuYW1lJzsKJGxhbmdbJ3RpdGxlX2ltcG9ydF9sZWdlbmQnXSA9ICdYTUwgRm9ybSBJbXBvcnQnOwokbGFuZ1sndGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXMnXSA9ICdVc2UgdGhpcyBmb3JtIGFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmF0ZSBIVE1MIGVtYWlsPyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZSddID0gJ0F1dG9tYXRpY2FsbHkgcG9wdWxhdGU/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlX2hlbHAnXSA9ICdBdXRvbWF0aWNhbGx5IHBvcHVsYXRlIHdpdGggdGhlIFVSTCBvZiB0aGUgcGFnZSBjb250YWluaW5nIHRoZSBmb3JtPyAodGhpcyBvdmVycmlkZXMgc2l0ZSBwYWdlIGxpbmsgb3B0aW9uIGJlbG93KSc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X2xpbmsnXSA9ICdEZWZhdWx0IGxpbmsgVVJMJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ0RlZmF1bHQgbGluayB0ZXh0JzsKJGxhbmdbJ3RpdGxlX2xpbmtfdG9fc2l0ZXBhZ2UnXSA9ICdMaW5rIHRvIHNpdGUgcGFnZSc7CiRsYW5nWyd0aXRsZV9jYXB0Y2hhX25vdF9pbnN0YWxsZWQnXSA9ICdZb3UgY2FuIHVzZSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+IHRvIHByb3RlY3QgZm9ybSBzdWJtaXNzaW9ucyBpZiB5b3UgaW5zdGFsbCB0aGUgQ2FwdGNoYSBtb2R1bGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2NhcHRjaGEvIj5jaGVjayB0aGUgQ2FwdGNoYSBwcm9qZWN0PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlX2NhcHRjaGEnXSA9ICdVc2UgQ2FwdGNoYSB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnM/JzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhX2hlbHAnXSA9ICdDaGVjayBoZXJlIHRvIHByb3RlY3QgeW91ciBmb3JtIHdpdGggYSA8YSBocmVmPSJodHRwOi8vd3d3Lndpa2lwZWRpYS5vcmcvd2lraS9DYXB0Y2hhIiB0YXJnZXQ9Il9uZXciPiZxdW90O0NhcHRjaGEmcXVvdDs8L2E+Lic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGEnXSA9ICdQbGVhc2UgY29uZmlybSB0aGF0IHlvdSBhcmUgbm90IGEgc2NyaXB0IGJ5IGVudGVyaW5nIHRoZSBsZXR0ZXJzIGZyb20gdGhlIGltYWdlLic7CiRsYW5nWyd0aXRsZV91c2VyX2NhcHRjaGFfZXJyb3InXSA9ICdGYWlsZWQgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYSB3YXMgbm90IGNvcnJlY3QuJzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hlbHAgdGV4dCBmb3IgQ2FwdGNoYSc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWQnXSA9ICdEb24mIzAzOTt0IHN1Ym1pdCB2YWx1ZXMgZm9yIHVuY2hlY2tlZCBib3hlcyc7CiRsYW5nWyd0aXRsZV9kb250X3N1Ym1pdF91bmNoZWNrZWRfaGVscCddID0gJ0NoZWNrIHRoaXMgaWYgeW91IG9ubHkgd2FudCBjaGVja2VkIGJveGVzIHRvIHJldHVybiB2YWx1ZXMuJzsKJGxhbmdbJ2xpbmtfbGFiZWwnXSA9ICdMaW5rIExhYmVsJzsKJGxhbmdbJ2xpbmtfZGVzdGluYXRpb24nXSA9ICdMaW5rIERlc3RpbmF0aW9uIFVSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0NoZWNrZWQgYnkgRGVmYXVsdD8nOwokbGFuZ1sndGl0bGVfMjRfaG91ciddID0gJ1VzZSAyNC1ob3VyIGNsb2NrPyc7CiRsYW5nWyd0aXRsZV9iZWZvcmVfbm9vbiddID0gJ0FNJzsKJGxhbmdbJ3RpdGxlX2FmdGVyX25vb24nXSA9ICdQTSc7CiRsYW5nWyd0aXRsZV9zbWFydHlfZXZhbCddID0gJ1Byb2Nlc3Mgc21hcnR5IHRhZ3Mgd2l0aGluIGZpZWxkPyc7CiRsYW5nWyd0aXRsZV90ZXh0YXJlYV9yb3dzJ10gPSAnUm93cyAobm90ZTogdGhpcyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBDU1MpJzsKJGxhbmdbJ3RpdGxlX3RleHRhcmVhX2NvbHMnXSA9ICdDb2x1bW5zIChub3RlOiB0aGlzIG1heSBiZSBvdmVycmlkZGVuIGJ5IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnTWFpbiBGb3JtIERldGFpbHMnOwokbGFuZ1sndGl0bGVfc2hvd191c2VybmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbG9naW4gbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VyZmlyc3RuYW1lJ10gPSAnRGlzcGxheSBVc2VyJiMwMzk7cyBmaXJzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9zaG93X3VzZXJsYXN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgbGFzdCBuYW1lPyc7CiRsYW5nWyd0aXRsZV9yZXN0cmljdF90b19ncm91cCddID0gJ1Jlc3RyaWN0IHVzZXIgbGlzdCB0byB1c2VycyBpbiBzcGVjaWZpZWQgZ3JvdXAnOwokbGFuZ1sncmVzdHJpY3RlZF90b19ncm91cCddID0gJ09ubHkgaW4gZ3JvdXAgJXMnOwokbGFuZ1sndGl0bGVfc2hvd190b191c2VyJ10gPSAnRGlzcGxheSB0byB1c2VyPyc7CiRsYW5nWydoZWxwX2xlYXZlZW1wdHknXSA9ICdUaGlzIGZpZWxkIG1heSBiZSBsZWZ0IGVtcHR5JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlcyBGb3IgVGVtcGxhdGUnOwokbGFuZ1snaGVscF92YXJpYWJsZXNfZm9yX2NvbXB1dGF0aW9uJ10gPSAnVmFyaWFibGVzIEF2YWlsYWJsZSc7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQIHZhcmlhYmxlJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnRGF0ZSBvZiBTdWJtaXNzaW9uJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdZb3VyIHNlcnZlcic7CiRsYW5nWydoZWxwX3N1Yl9zb3VyY2VfaXAnXSA9ICdJUCBhZGRyZXNzIG9mIHBlcnNvbiB1c2luZyBmb3JtJzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBvZiBwYWdlIGNvbnRhaW5pbmcgZm9ybSc7CiRsYW5nWydoZWxwX2ZiX3ZlcnNpb24nXSA9ICdGb3JtQnVpbGRlciB2ZXJzaW9uJzsKJGxhbmdbJ2hlbHBfdGFiJ10gPSAnVGFiIENoYXJhY3Rlcic7CiRsYW5nWydoZWxwX290aGVyX2ZpZWxkcyddID0gJ0FsdGVybmF0ZSBmaWVsZCBuYW1lcyBjYW4gYmUgdXNlZCBpbnRlcmNoYW5nZWFibHkgKGVzcGVjaWFsbHkgdXNlZnVsIGlmIFNtYXJ0eSBpcyBjaG9raW5nIG9uIGNoYXJhY3RlcnMgb3V0c2lkZSBvZiBBU0NJSSAzMi0xMjYpLiA8YnIgLz5PdGhlciBmaWVsZHMgd2lsbCBiZSBhdmFpbGFibGUgYXMgeW91IGFkZCB0aGVtIHRvIHRoZSBmb3JtLic7CiRsYW5nWydoZWxwX2FycmF5X2ZpZWxkcyddID0gJ1lldCBhbm90aGVyIHdheSBvZiBhY2Nlc3NpbmcgZmllbGQgdmFsdWVzIGlzIHZpYSAkZmllbGRuYW1lX29iaiwgJGFsaWFzX29iaiwgb3IgJGZsZF8jX29iaiwgd2hlcmUgZWFjaCBmaWVsZCBpcyBhbiBvYmplY3QgY29udGFpbmdpbmc6PGJyIC8+PHRhYmxlPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+bmFtZTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5GaWVsZCBOYW1lPC90ZD48L3RyPg0KPHRyPjx0ZD50eXBlPC90ZD48dGQ+RmllbGQgVHlwZTwvdGQ+PC90cj4NCjx0cj48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PmlkPC90ZD48dGQgY2xhc3M9JnF1b3Q7b2RkJnF1b3Q7PkludGVybmFsIEZpZWxkIElEPC90ZD48L3RyPg0KPHRyPjx0ZD52YWx1ZTwvdGQ+PHRkPkh1bWFuLXJlYWRhYmxlIFZhbHVlPC90ZD48L3RyPg0KPHRyPjx0ZCBjbGFzcz0mcXVvdDtvZGQmcXVvdDs+dmFsdWVBcnJheTwvdGQ+PHRkIGNsYXNzPSZxdW90O29kZCZxdW90Oz5BcnJheSBvZiBmaWVsZCB2YWx1ZShzKTwvdGQ+PC90cj48L3RhYmxlPjxlbT5lLmcuPC9lbT4sIHlvdSBjb3VsZCB1c2UgJnF1b3Q7eyRmbGRfMV9vYmotPm5hbWV9ID0geyRmbGRfMV9vYmotPnZhbHVlfSc7CiRsYW5nWydoZWxwX2RhdGVfZm9ybWF0J10gPSAnU2VlIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiIHRhcmdldD1fTkVXPnRoZSBQSFAgTWFudWFsPC9hPiBmb3IgZm9ybWF0dGluZyBoZWxwLic7CiRsYW5nWydoZWxwX3ZhcmlhYmxlX25hbWUnXSA9ICdWYXJpYWJsZSc7CiRsYW5nWydoZWxwX2Zvcm1fZmllbGQnXSA9ICdGaWVsZCBSZXByZXNlbnRlZCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgQmFjayB0byBGb3JtJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdDcmVhdGUgU2FtcGxlIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaHRtbF90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSFRNTCBUZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2hlYWRlcl90ZW1wbGF0ZSddID0gJ0NyZWF0ZSBTYW1wbGUgSGVhZGVyIFRlbXBsYXRlJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXInOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnYSB0YWIgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfdGVtcGxhdGUnXSA9ICdUZW1wbGF0ZSBmb3Igb25lIGxpbmUgb2Ygb3V0cHV0IGZpbGUnOwokbGFuZ1sndGl0bGVfZmlsZV9oZWFkZXInXSA9ICdUZW1wbGF0ZSBmb3IgdGhlIGhlYWRlciBvZiBvdXRwdXQgZmlsZSc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIHRvIGNsaWNrIGZvciBmb3JtIGNvbmZpcm1hdGlvbic7CiRsYW5nWyd0aXRsZV92YWx1ZSddID0gJ1ZhbHVlIChzZWUgQWR2YW5jZWQgVGFiIGlmIHlvdSB1c2UgU21hcnR5IHRhZ3MpJzsKJGxhbmdbJ3RpdGxlX2RhdGVfZm9ybWF0J10gPSAnRGF0ZSBGb3JtYXQgKHN0YW5kYXJkIDxhIGhyZWY9Imh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZGF0ZS5waHAiPlBIUCBEYXRlIEZvcm1hdHM8L2E+KSc7CiRsYW5nWyd0aXRsZV91c2Vfd3lzaXd5ZyddID0gJ1VzZSBXWVNJV1lHIGVkaXRvciBmb3IgdGV4dCBBcmVhIChBZG1pbiBzaWRlIG9ubHkpPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYWN0aW9ucyddID0gJ0Zvcm0gU3VibWlzc2lvbiBCZWhhdmlvcic7CiRsYW5nWyd0aXRsZV9zdWJtaXRfbGFiZWxzJ10gPSAnU3VibWlzc2lvbiBCdXR0b24gTGFiZWxzJzsKJGxhbmdbJ3RpdGxlX3NvcnRhYmxlX2ZpZWxkJ10gPSAnU29ydGFibGUgRmllbGQgIyVzJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9oZWxwJ10gPSAnVGhpcyBwYWdlIGxldHMgeW91IGN1c3RvbWl6ZSBGb3JtIFN1Ym1pc3Npb24uIEl0IGRvZXNuJiMwMzk7dCBkZXRlcm1pbmUgd2hhdCB0aGUgRm9ybSBCdWlsZGVyIGRvZXMgd2l0aCB0aGUgc3VibWl0dGVkIGRhdGEuIFlvdSBjYW4gc2V0IHRoYXQgdXAgYnkgYWRkaW5nICZxdW90O0Rpc3Bvc2l0aW9uJnF1b3Q7IGZpZWxkcyB0byB5b3VyIGZvcm0uJzsKJGxhbmdbJ3RpdGxlX3N0YXJ0X3llYXInXSA9ICdZZWFyIHJhbmdlIHN0YXJ0JzsKJGxhbmdbJ3RpdGxlX2VuZF95ZWFyJ10gPSAnWWVhciByYW5nZSBlbmQnOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyJ10gPSAnRGVmYXVsdCBZZWFyJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfeWVhcl9oZWxwJ10gPSAnKFNldCB0byAtMSBmb3IgZGVmYXVsdCB5ZWFyIHRvIGJlIHRoZSBjdXJyZW50IHllYXIpJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb24nXSA9ICdBZnRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfcmVzcG9uc2UnXSA9ICdSZXNwb25zZSB0byBkaXNwbGF5JzsKJGxhbmdbJ2Rpc3BsYXlfdGV4dCddID0gJ0Rpc3BsYXkgJnF1b3Q7U3VibWlzc2lvbiBUZW1wbGF0ZSZxdW90Oyc7CiRsYW5nWydyZWRpcmVjdF90b19wYWdlJ10gPSAnUmVkaXJlY3QgdG8gc2l0ZSBwYWdlJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwJ10gPSAnVGhpcyB0ZW1wbGF0ZSBpcyBmb3IgZGlzcGxheSB0byB0aGUgdXNlciBhZnRlciB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuIFRoaXMgdGVtcGxhdGUgZG9lcyBub3QgZWZmZWN0IGVtYWlscyBnZW5lcmF0ZWQgb3Igb3RoZXIgZm9ybSBkaXNwb3NpdGlvbnMgLS0geW91IHNldCB0aG9zZSB0ZW1wbGF0ZXMgKHdoZXJlIGFwcHJvcHJpYXRlKSBpbiB0aGUgJnF1b3Q7YWR2YW5jZWQmcXVvdDsgdGFiIGZvciB0aG9zZSBkaXNwb3NpdGlvbiBmaWVsZHMuJzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX3BhZ2UnXSA9ICdEZXN0aW5hdGlvbiBQYWdlJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgYSBuYW1lPyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lcyddID0gJ1JlcXVpcmUgVW5pcXVlIEZpZWxkbmFtZXMnOwokbGFuZ1sndGl0bGVfdW5pcXVlX2ZpZWxkbmFtZXNfbG9uZyddID0gJ1JlcXVpcmUgZmllbGRzIHRvIGhhdmUgdW5pcXVlIG5hbWVzPyc7CiRsYW5nWyd0aXRsZV9yZW9yZGVyX2Zvcm0nXSA9ICdSZW9yZGVyIEZpZWxkcyc7CiRsYW5nWyd0aXRsZV9sb2FkX3RlbXBsYXRlJ10gPSAnTG9hZCB0ZW1wbGF0ZSc7CiRsYW5nWyd0aXRsZV9hZGRfYnV0dG9uX3RleHQnXSA9ICdBZGQgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfZGVsX2J1dHRvbl90ZXh0J10gPSAnRGVsZXRlIEJ1dHRvbiB0ZXh0JzsKJGxhbmdbJ3RpdGxlX3N0cmluZ19vcl9udW1iZXJfZXZhbCddID0gJ0ludGVycHJldCB2YXJpYWJsZXMgYXMgYmVpbmcgbnVtYmVycyBvciBzdHJpbmdzJzsKJGxhbmdbJ3RpdGxlX29yZGVyJ10gPSAnSW50ZXJwcmV0YXRpb24gT3JkZXInOwokbGFuZ1sndGl0bGVfb3JkZXJfaGVscCddID0gJ0lmIG1vcmUgdGhhbiBvbmUgQ29tcHV0ZWQgRmllbGQgZXhpc3RzLCB0aGV5IHdpbGwgYmUgY29tcHV0ZWQgZnJvbSBsb3dlc3Qgb3JkZXIgbnVtYmVyIHRvIGhpZ2hlc3Qgb3JkZXIgbnVtYmVyJzsKJGxhbmdbJ3RpdGxlX2NvbXB1dGVfdmFsdWUnXSA9ICdWYWx1ZSB0byBjb21wdXRlJzsKJGxhbmdbJ3RpdGxlX3N0cmluZyddID0gJ1N0cmluZyc7CiRsYW5nWyd0aXRsZV9udW1lcmljJ10gPSAnTnVtZXJpYyc7CiRsYW5nWyd0aXRsZV9pbmxpbmVfZm9ybSddID0gJ0Rpc3BsYXkgZm9ybSBpbmxpbmU/JzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtX2hlbHAnXSA9ICdJbmxpbmUgbWVhbnMgYW55IGZvcm0gZm9sbG93dXAgcmVwbGFjZXMgdGhlIHtjbXNfbW9kdWxlfSB0YWcsIG5vbi1pbmxpbmUgcmVwbGFjZXMgdGhlIHtjb250ZW50fSB0YWcuJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2RlZmF1bHRfdmFsdWUnXSA9ICdEZWZhdWx0IHZhbHVlIGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0J10gPSAnQ2xlYXIgZGVmYXVsdCBvbiBjbGljaz8nOwokbGFuZ1sndGl0bGVfY2xlYXJfZGVmYXVsdF9oZWxwJ10gPSAnQ2hlY2sgdGhpcyB0byBjbGVhciB0aGUgZGVmYXVsdCB2YWx1ZSB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0aGlzIGZpZWxkLiBTaW5jZSB0aGlzIHVzZXMgYSBqYXZhc2NyaXB0IHN0cmluZyBjb21wYXJlLCBpdCB3aWxsIGZhaWwgaWYgeW91IHB1dCBzaW5nbGUgcXVvdGVzIGluIHlvdXIgZGVmYXVsdCB0ZXh0LiBPdGhlciB1bi1qYXZhc2NyaXB0LWZyaWVuZGx5IGNoYXJhY3RlcnMgbWF5IGFsc28gY2F1c2UgaXQgdG8gZmFpbC4nOwokbGFuZ1sndGl0bGVfcmVtb3ZlX2ZpbGVfZnJvbV9zZXJ2ZXInXSA9ICdEZWxldGUgdXBsb2FkZWQgZmlsZSBmcm9tIHNlcnZlciBhZnRlciBwcm9jZXNzaW5nIChlbWFpbCBkaXNwb3NpdGlvbnMpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHQnXSA9ICdKYXZhc2NyaXB0IGZvciBmaWVsZCc7CiRsYW5nWyd0aXRsZV9maWVsZF9qYXZhc2NyaXB0X2xvbmcnXSA9ICdNYWtlIHRoaXMgdGhlIGNvbXBsZXRlIEphdmFzY3JpcHQgY2FsbCwgaW5jbHVkaW5nIHRoZSBldmVudCB5b3Ugd2FudCB0byB0cmFwLCBlLmcuLCBvbmNsaWNrPSZxdW90O3lvdXJmbigpJnF1b3Q7JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9qYXZhc2NyaXB0J10gPSAnRm9ybSBTdWJtaXNzaW9uIEphdmFzY3JpcHQnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsuPGJyIC8+VGhpcyB3aWxsIHByb2JhYmx5IG5vdCB3b3JrIHdlbGwgaWYgeW91IHVzZSB0aGUgJnF1b3Q7c2FmZXR5IHNjcmlwdCZxdW90OyBvcHRpb24gYWJvdmUuJzsKJGxhbmdbJ2VtYWlsX2Zyb21fYWRkcl9oZWxwJ10gPSAnRG8gbm90IGp1c3QgcGljayBhIHJhbmRvbSBhZGRyZXNzIGhlcmUgLS0gbWFueSBJU1BzIHdpbGw8YnIgLz5ub3QgZGVsaXZlciB0aGUgbWFpbCBpZiB5b3UgYXJlIHVzaW5nIGEgZGlmZmVyZW50IGRvbWFpbiBuYW1lIHRoYW4geW91ciBhY3R1YWw8YnIgLz5ob3N0IG5hbWUgKGkuZS4sIHVzZSBzb21ldGhpbmcgbGlrZSBuYW1lQCVzKSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWQnXSA9ICdOZWVkIG1vcmUgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWMnXSA9ICdUb28gbWFueSBjb25mdXNpbmcgZmllbGQgdHlwZXM/ICc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYWR2YW5jZWRfbGluayddID0gJ1N3aXRjaCB0byBBZHZhbmNlZCBNb2RlJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpY19saW5rJ10gPSAnU3dpdGNoIHRvIFNpbXBsZSBNb2RlJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfcm9vdCddID0gJ0RpcmVjdG9yeSB0byBzYXZlIGZpbGUgaW4nOwokbGFuZ1sndGl0bGVfZmlsZV9yb290X2hlbHAnXSA9ICdUaGlzIG5lZWRzIHRvIGJlIGEgZGlyZWN0b3J5IHRoYXQgeW91ciB3ZWIgc2VydmVyIGhhcyBwZXJtaXNzaW9ucyB0byB3cml0ZSBpbi48YnIgLz5DaG1vZCBpdCA3NzcgaWYgeW91IGhhdmUgcHJvYmxlbXMvZG91YnRzLjxiciAvPkFsc28sIGNoZWNrIHRvIHNlZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSBQSFAgZGlyZWN0b3J5IHJlc3RyaWN0aW9ucy4nOwokbGFuZ1snZXJyb3JfY2F0YWxvZ2VyX21vZHVsZV9ub3RfYXZhaWxhYmxlJ10gPSAnPHN0cm9uZz5DYXRhbG9nZXIgbW9kdWxlIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1dBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdEZWZhdWx0IFRlbXBsYXRlJzsKJGxhbmdbJ3RhYmxlX2xlZnRfdGVtcGxhdGUnXSA9ICdUYWJsZSBUZW1wbGF0ZSwgVGl0bGVzIG9uIGxlZnQnOwokbGFuZ1sndGFibGVfdG9wX3RlbXBsYXRlJ10gPSAnVGFibGUgVGVtcGxhdGUsIFRpdGxlIG9uIHRvcCc7CiRsYW5nWydmb3JtX3RlbXBsYXRlX25hbWUnXSA9ICdUZW1wbGF0ZSBmcm9tICVzJzsKJGxhbmdbJ3RlbXBsYXRlX2FyZV95b3Vfc3VyZSddID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBvdmVyd3JpdGUgeW91ciB0ZW1wbGF0ZSB3aXRoIHRoZSBzZWxlY3RlZCB0ZW1wbGF0ZT8gKEV2ZW4gaWYgeW91IHNheSBPSywgeW91IHdpbGwgc3RpbGwgbmVlZCB0byBzYXZlIHRoZSBjaGFuZ2UpJzsKJGxhbmdbJ3RpdGxlX2JhZF9mdW5jdGlvbiddID0gJ0Vycm9yIHdoZW4gY29tcHV0aW5nICZxdW90OyVzJnF1b3Q7Lic7CiRsYW5nWydub19yZWZlcnJlcl9pbmZvJ10gPSAnTm8gSFRUUF9SRUZFUkVSIGluZm8gYXZhaWxhYmxlIChwcm9iYWJseSBkdWUgdG8gdXNlIG9mIFVzZXIgRW1haWwgVmFsaWRhdGlvbiknOwokbGFuZ1sndmFsaWRhdGlvbl9wYXJhbV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUGFyYW1ldGVyIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9yZXNwb25zZV9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGNvcHkgdGhlIFVSTCBmcm9tIHlvdXIgZW1haWwgY29ycmVjdGx5ISc7CiRsYW5nWyd2YWxpZGF0aW9uX25vX2ZpZWxkX2Vycm9yJ10gPSAnVmFsaWRhdGlvbiBSZXBzb25zZSBFcnJvci4gTm8gZW1haWwgdmFsaWRhdGlvbiBmaWVsZCBpbiB0aGlzIGZvcm0hJzsKJGxhbmdbJ3VwZ3JhZGUwM3RvMDQnXSA9ICdGb3JtIFRlbXBsYXRlIHdhcyB1cGRhdGVkIGF1dG9tYXRpY2FsbHkgYXMgcGFydCBvZiB0aGUgdmVyc2lvbiAwLjMgdG8gdmVyc2lvbiAwLjQgdXBncmFkZS4gWW91IG1heSBuZWVkIHRvIG1ha2Ugc29tZSBmaXhlcy4gSWYgeW91JiMwMzk7cmUgdXNpbmcgdGhlIGRlZmF1bHQgZm9ybSwgc2ltcGx5IHJlcGxhY2UgdGhpcyB0ZW1wbGF0ZSB3aXRoICZxdW90O2RlZmF1bHQmcXVvdDsgdXNpbmcgdGhlIHB1bGxkb3duIGFib3ZlLic7CiRsYW5nWydhZG1pbmRlc2MnXSA9ICdBZGQsIGVkaXQgYW5kIG1hbmFnZSBpbnRlcmFjdGl2ZSBGb3Jtcyc7CiRsYW5nWydvcGVyYXRvcnNfaGVscCddID0gJ0lmIHlvdSB1c2UgU3RyaW5nIGV2YWx1YXRpb24sIHRoZSBvbmx5IG9wZXJhdGlvbiBhdmFpbGFibGUgaXMgY29uY2F0ZW5hdGlvbiAoKyksIHdoaWxlIGlmIHlvdSB1c2UgTnVtYmVyIGV2YWx1YXRpb24geW91IGhhdmUgYmFzaWMsIHZlcnkgc2ltcGxlIG1hdGggKCwgKywgLSwgKiwgLywgKS4nOwokbGFuZ1snZGF0ZV9qYW51YXJ5J10gPSAnSmFudSZhYWN1dGU7cic7CiRsYW5nWydkYXRlX2ZlYnJ1YXJ5J10gPSAnRmVicnUmYWFjdXRlO3InOwokbGFuZ1snZGF0ZV9tYXJjaCddID0gJ01hcmVjJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHImaWFjdXRlO2wnOwokbGFuZ1snZGF0ZV9tYXknXSA9ICdNJmFhY3V0ZTtqJzsKJGxhbmdbJ2RhdGVfanVuZSddID0gJ0omdWFjdXRlO24nOwokbGFuZ1snZGF0ZV9qdWx5J10gPSAnSiZ1YWN1dGU7bCc7CiRsYW5nWydkYXRlX2F1Z3VzdCddID0gJ0F1Z3VzdCc7CiRsYW5nWydkYXRlX3NlcHRlbWJlciddID0gJ1NlcHRlbWJlcic7CiRsYW5nWydkYXRlX29jdG9iZXInXSA9ICdPa3Qmb2FjdXRlO2Jlcic7CiRsYW5nWydkYXRlX25vdmVtYmVyJ10gPSAnTm92ZW1iZXInOwokbGFuZ1snZGF0ZV9kZWNlbWJlciddID0gJ0RlY2VtYmVyJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3InXSA9ICdQcmVwJmFhY3V0ZTvEjXRlISBOYXN0YWxhIGNoeWJhIHByaSBvZG9zaWVsYW4maWFjdXRlOyBmb3JtdWwmYWFjdXRlO3JhJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0NvdWxkIG5vdCBmaW5kIHRoZSB1cGxvYWRzIG1vZHVsZSc7CiRsYW5nWyd1cGxvYWRfYXR0YWNoX2Vycm9yJ10gPSAnVXBsb2FkL0F0dGFjaG1lbnQgZXJyb3Igb24gZmlsZSAlcyAodG1wX25hbWU6ICVzLCBvZiB0eXBlICVzKSc7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yX2ZpbGVfbG9jayddID0gJ0Vycm9yLiBVbmFibGUgdG8gb2J0YWluIGxvY2sgZm9yIGZpbGUuJzsKJGxhbmdbJ3VuY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnUHJlZG5hc3RhdmVuJmVhY3V0ZTs6IG5lemEmc2Nhcm9uO2tydG51dCZlYWN1dGU7JzsKJGxhbmdbJ2NoZWNrZWRfYnlfZGVmYXVsdCddID0gJ1ByZWRuYXN0YXZlbiZlYWN1dGU7OiB6YSZzY2Fyb247a3JhdG51dCZlYWN1dGU7JzsKJGxhbmdbJ2VtYWlsX2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdPZG9zbGllbGFuaWUgZm9ybXVsJmFhY3V0ZTtyYSc7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FLW1haWxvdiZhYWN1dGU7ICZzY2Fyb247YWJsJm9hY3V0ZTtuYSB6YXRpYcS+IG5lcG91xb5pdCZhYWN1dGU7JzsKJGxhbmdbJ21pc3NpbmdfY21zX21haWxlciddID0gJ0Zvcm1CdWlsZGVyOiBDYW5ub3QgZmluZCByZXF1aXJlZCBtb2R1bGUgQ01TTWFpbGVyISc7CiRsYW5nWyd1c2VyX2FwcHJvdmVkX3N1Ym1pc3Npb24nXSA9ICdVc2VyIGFwcHJvdmVkIHN1Ym1pc3Npb24gJXMgZnJvbSAlcyc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIHN1Ym1pdHRlZCc7CiRsYW5nWydldmVudF9pbmZvX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0RXJyb3InXSA9ICdFdmVudCB0cmlnZ2VyZWQgaWYgdGhlcmUgaXMgYW4gZXJyb3Igd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1EaXNwbGF5J10gPSAnRXZlbnQgdHJpZ2dlcmVkIHdoZW4gYSBGb3JtQnVpbGRlciBmb3JtIGlzIGRpc3BsYXllZCc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtU3VibWl0J10gPSAnPHA+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+SW5zdGFsbCBpdCwgYW5kIHBva2UgYXJvdW5kIHRoZSBtZW51cy4gUGxheSB3aXRoIGl0LiBUcnkgY3JlYXRpbmcgZm9ybXMsIGFuZCBhZGRpbmcgdGhlbSB0byB5b3VyIGNvbnRlbnQuDQpJZiB5b3UgZ2V0IHN0dWNrLCBjaGF0IHdpdGggbWUgb24gdGhlICNjbXMgSVJDIGNoYW5uZWwsIHBvc3QgdG8gdGhlIGZvcnVtLCBzZW5kIG1lIGVtYWlsLCBvciwgaWYgeW91JiMwMzk7cmUNCnJlYWxseSBkZXNwZXJhdGUsIHRyeSByZWFkaW5nIHRoZSBpbnN0cnVjdGlvbnMgb24gdGhlIHJlc3Qgb2YgdGhpcyBwYWdlLjwvUD4NCg0KPGgzPkhvdyBEbyBJIENyZWF0ZSBhIEZvcm08L2gzPg0KPHA+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+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+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+Rm9ybUJ1aWxkZXIgZG9lcyBub3QgeWV0IHN1cHBvcnQgcHJldHR5IHVybHMsIGFsdGhvdWdoIHRoYXQgc2hvdWxkbiYjMDM5O3QgbWF0dGVyIHNpbmNlIHRoZSB1c2VyIHNpZGUgaXMgcHJldHR5IHNpbXBsZS48L2xpPg0KPGxpPkZpbGVVcGxvYWQgRmllbGRzIG1heSBub3Qgd29yayBjb3JyZWN0bHkgd2l0aCBtdWx0aXBhZ2UgZm9ybXMuPC9saT4NCjwvdWw+DQoNCjxoMz5Ucm91Ymxlc2hvb3Rpbmc8L2gzPg0KPG9sPjxsaT4gRmlyc3Qgc3RlcCBpcyB0byBjaGVjayB5b3UmIzAzOTtyZSBydW5uaW5nIENNUyAxLjEgb3IgbGF0ZXIuPC9saT4NCjxsaT4gU2Vjb25kIHN0ZXAgaXMgdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgY2F2ZWF0IGFib3V0IFdZU0lXWUcgZWRpdG9ycyB1cCBpbiB0aGUNCnNlY3Rpb24gPGVtPkFkZGluZyBhIEZvcm0gdG8gYSBQYWdlPC9lbT4uPC9saT4NCjxsaT4gSWYgeW91JiMwMzk7cmUgbWlzc2luZyBmaWVsZHMgaW4gYW4gZW1haWwgdGhhdCBnZXRzIGdlbmVyYXRlZCwgY2hlY2sgdGhlIGRpc3Bvc2l0aW9uIGZpZWxkJiMwMzk7cyB0ZW1wbGF0ZSwgYW5kIG1ha2Ugc3VyZSB5b3UmIzAzOTtyZSBzcGVjaWZ5aW5nIHRoZSBtaXNzaW5nIGZpZWxkcy4gU2VlbXMgb2J2aW91cywgYnV0IGl0JiMwMzk7cyBhbiBlYXN5IG1pc3Rha2UgdG8gbWFrZS48L2xpPg0KPGxpPlVuY2hlY2sgdGhlICZxdW90O0hpZGUgRXJyb3JzJnF1b3Q7IGNoZWNrYm94IGluIHRoZSBnbG9iYWwgb3B0aW9ucywgYW5kIHNlZSB3aGF0IG1lc3NhZ2UgZ2V0cyBkaXNwbGF5ZWQgd2hlbiB5b3Ugc3VibWl0IHlvdXIgZm9ybS48L2xpPg0KPGxpPiBKdXN0IG1lc3MgYXJvdW5kIGFuZCB0cnkgY2xpY2tpbmcgb24gbGlua3MgYW5kIGljb25zIGFuZCBzdHVmZi4gU2VlIHdoYXQgaGFwcGVucy48L2xpPg0KPGxpPiBMYXN0IHJlc3BvcnQgaXMgdG8gZW1haWwgbWUgb3IgY2F0Y2ggbWUgb24gSVJDIGFuZCB3ZSBjYW4gZ28gZnJvbSB0aGVyZS48L2xpPg0KPC9vbD4gDQo8cD5UaGlzIGlzIG5vIGxvbmdlciBhIHBhcnRpY3VsYXJseSBlYXJseSB2ZXJzaW9uLCBidXQgaXQgaXMgcHJvYmFibHkgc3RpbGwgYnVnZ3kuIFdoaWxlIEkmIzAzOTt2ZSBkb25lIGFsbCBJIGNhbg0KdG8gbWFrZSBzdXJlIG5vIGVncmVnaW91cyBidWdzIGhhdmUgY3JlcHQgaW4sIEkgaGF2ZSB0byBhZG1pdCB0aGF0IGR1cmluZyBlYXJseSB0ZXN0aW5nLCB0aGlzIHByb2dyYW0NCnJldmVhbGVkIHNldmVuIGNvY2tyb2FjaGVzLCB0d28gZWFyd2lncywgYSBzbWFsbCBmYW1pbHkgb2YgYXBoaWRzLCBhbmQgYSB3YWxraW5nLXN0aWNrIGluc2VjdC4gSXQgYWxzbw0KYXRlIHRoZSBuZWlnaGJvciYjMDM5O3MgbmFzdHkgbGl0dGxlIHlhcCBkb2csIGZvciB3aGljaCBJIHdhcyBpbmFwcHJvcHJpYXRlbHkgZ3JhdGVmdWwuPC9wPg0KPHA+VGhlIGZpbmFsIHJlbGVhc2Ugd2lsbCBpbmNsdWRlIGJ1ZyBmaXhlcywgZG9jdW1lbnRhdGlvbiwgYW5kIHVuY29uZGl0aW9uYWwgbG92ZS48L3A+DQo8aDM+U3VwcG9ydDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSwgRkFRcywgb3IgdG8gZmlsZSBhIEJ1ZyBSZXBvcnQsIHBsZWFzZSB2aXNpdCB0aGUgQ01TIE1hZGUgU2ltcGxlICA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnIj5EZXZlbG9wZXIgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+VG8gb2J0YWluIGNvbW1lcmNpYWwgc3VwcG9ydCwgcGxlYXNlIHNlbmQgYW4gZW1haWwgdG8gdGhlIGF1dGhvciBhdCA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uPC9saT4NCjxsaT5BZGRpdGlvbmFsIGRpc2N1c3Npb24gb2YgdGhpcyBtb2R1bGUgbWF5IGFsc28gYmUgZm91bmQgaW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS5jbXNtYWRlc2ltcGxlLm9yZyI+Q01TIE1hZGUgU2ltcGxlIEZvcnVtczwvYT4uPC9saT4NCjxsaT5UaGUgYXV0aG9yIGNhbiBvZnRlbiBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaXJjOi8vaXJjLmZyZWVub2RlLm5ldC8jY21zIj5DTVMgSVJDIENoYW5uZWw8L2E+LjwvbGk+DQo8bGk+TGFzdGx5LCB5b3UgbWF5IGhhdmUgc29tZSBzdWNjZXNzIGVtYWlsaW5nIHRoZSBhdXRob3IgZGlyZWN0bHkgYW5kIGdyb3ZlbGxpbmcgZm9yIGZyZWUgc3VwcG9ydC48L2xpPg0KPC91bD4NCjxwPktlZXAgaW4gbWluZCB0aGF0IHRoZSBhdXRob3IgaGFzIHB1dCBodW5kcmVkcyBvZiBob3VycyBpbnRvIHRoZSBkZXZlbG9wbWVudCBvZiB0aGlzIG1vZHVsZS4gUGxlYXNlIHRha2UgdGhlIHRpbWUgdG8gcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBiZWZvcmUgc2VuZGluZyBxdWVzdGlvbnMuIEVpdGhlciB0aGF0LCBvciB3cml0ZSB5b3VyIHF1ZXN0aW9ucyBvbiBmaW5hbmNpYWxseSBuZWdvdGlhYmxlIGluc3RydW1lbnRzIChpLmUuLCBjYXNoKS48L3A+DQo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQNCm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4NCjxoMz5Db3B5cmlnaHQgYW5kIExpY2Vuc2U8L2gzPg0KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA4LCBTYW11ZWwgR29sZHN0ZWluIDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi4gQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnPHVsPg0KPGxpPlZlcnNpb24gMC41LjMuIDI2IE1heSAwOC4gQnVnZml4ZXMgdG8gcHJldmlvdXMgc2V0IG9mIGJ1Z2ZpeGVzLiBOb3cgcmVhZHkgZm9yIG1ham9yIHVwZ3JhZGVzIGZvciAwLjYuPC9saT4NCjxsaT5WZXJzaW9uIDAuNS4yLiAyNSBNYXkgMDguIEJ1Z2ZpeGVzLiBSZWxlYXNlIGluIHByZXBhcmF0aW9uIGZvciBzdWJzdGFudGlhbCByZXdvcmtpbmcgZm9yIDAuNjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuMS4gMzAgQXByaWwgMDguIEJ1Z2ZpeGVzLCByZXdyb3RlIHNvbWUgb2YgdGhlIEZpbGUgVXBsb2FkIGNvZGUgdG8gcHJldmVudCB3aGl0ZSBzY3JlZW4gb2YgYW5ub3lhbmNlLjwvbGk+DQo8bGk+VmVyc2lvbiAwLjUuIDE5IEFwcmlsIDA4LiBCdWdmaXhlcywgc3VwcG9ydCBmb3IgRm9ybUJyb3dzZXIgZml4ZXMgYW5kIGZlYXR1cmVzLCBkaXNwb3NpdGlvbiB0eXBlIGZvciB1cGNvbWluZyBGb3JtQnJvd3NlciB2ZXJzaW9uLjwvbGk+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+DQogICA8L3VsPg0KICAgPC9wPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMiAtIDE0IE5vdmVtYmVyIDIwMDYuIENhbGd1eSAmYW1wOyB0c3cmIzAzOTtzIGJ1ZyBmaXhlcyBmb3IgZmllbGQgcmUtb3JkZXJpbmcgYW5kIGN1c3RvbSB0ZW1wbGF0ZXMuIEFkZGl0aW9uYWwgYnVnIGZpeGVzIGZvciBmaWVsZCBsYWJlbHMuPC9saT4NCjxsaT5WZXJzaW9uIDAuMSAtIDggSnVseSAyMDA2LiBJbml0aWFsIFJlbGVhc2U8L2xpPg0KPC91bD4NCic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTU4NTQ4NjEuMzUyLjY0LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTM0NDQwOTA1My4xMTgwODAyNDk0LjEyMTcyNzk5MDAuMTIxNzM1NjI2NC4zOTAnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTIxNzM1NjI2NCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/sv_SE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0Zvcm11bCZhdW1sO3JieWdnYXJlbiAoRm9ybSBCdWlsZGVyKSc7CiRsYW5nWydmaWVsZF90eXBlXyddID0gJ0YmYXVtbDtsdHR5cCBpbnRlIHZhbGQnOwokbGFuZ1snZmllbGRfdHlwZV9DYXRhbG9nZXJJdGVtc0ZpZWxkJ10gPSAnViZhdW1sO2xqIGVuIChlbGxlciBmbGVyKSBrYXRhbG9nIG9iamVjdCc7CiRsYW5nWydmaWVsZF90eXBlX0ZpZWxkc2V0RW5kJ10gPSAnLVNsdXQgcCZhcmluZzsgZ3J1cHBydXRhIChmaWVsZHNldCknOwokbGFuZ1snZmllbGRfdHlwZV9GaWVsZHNldFN0YXJ0J10gPSAnLVN0YXJ0IHAmYXJpbmc7IGdydXBwcnV0YSAoZmllbGRzZXQpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEZpZWxkJ10gPSAnSW5tYXRuaW5nc2YmYXVtbDtsdCAodGV4dCBpbnB1dCknOwokbGFuZ1snZmllbGRfdHlwZV9UZXh0RmllbGRFeHBhbmRhYmxlJ10gPSAnSW5tYXRuaW5nc2YmYXVtbDtsdCAoZmxlcmEpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGV4dEFyZWFGaWVsZCddID0gJ1RleHRydXRhICh0ZXh0YXJlYSknOwokbGFuZ1snZmllbGRfdHlwZV9DaGVja2JveEZpZWxkJ10gPSAnS3J5c3NydXRhIChjaGVjayBib3gpJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ2hlY2tib3hHcm91cEZpZWxkJ10gPSAnS3J5c3NydXRlZ3J1cHAgKGNoZWNrIGJveCBncm91cCknOwokbGFuZ1snZmllbGRfdHlwZV9QdWxsZG93bkZpZWxkJ10gPSAnUnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTXVsdGlzZWxlY3RGaWVsZCddID0gJ011bHRpdiZhdW1sO2xqYXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3RhdGVQaWNrZXJGaWVsZCddID0gJ1YmYXVtbDtsamFyZSBmJm91bWw7ciBhbWVyaWthbnNrIHN0YXQnOwokbGFuZ1snZmllbGRfdHlwZV9Qcm92aW5jZVBpY2tlckZpZWxkJ10gPSAnQ2FuYWRpYW4gUHJvdmluY2UgUGlja2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfQ291bnRyeVBpY2tlckZpZWxkJ10gPSAnTGFuZHYmYXVtbDtsamFyZSc7CiRsYW5nWydmaWVsZF90eXBlX0RhdGVQaWNrZXJGaWVsZCddID0gJ0RhdHVtdiZhdW1sO2xqYXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVGltZVBpY2tlckZpZWxkJ10gPSAnVGlkdiZhdW1sO2xqYXJlJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUmFkaW9Hcm91cEZpZWxkJ10gPSAnQWx0ZXJuYXRpdmtuYXBwZ3J1cHAnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkRpcmVjdG9yJ10gPSAnKkUtcG9zdGEgcmVzdWx0YXQgYmFzZXJhZGUgcCZhcmluZzsgdmFsIGkgcnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25GaWxlRGlyZWN0b3InXSA9ICcqU3BhcmEgcmVzdWx0YXQgdGlsbCBmaWwgYmFzZXJhZGUgcCZhcmluZzsgdmFsIGkgcnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25NdWx0aXNlbGVjdEZpbGVEaXJlY3RvciddID0gJypTcGFyYSByZXN1bHRhdCB0aWxsIGZpbChlcikgYmFzZXJhZGUgcCZhcmluZzsgZmxlcmEgdmFsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25QYWdlUmVkaXJlY3RvciddID0gJypPbWRpcmlnZXJhIHRpbGwgc2lkYSBiYXNlcmF0IHAmYXJpbmc7IHZhbCBpIHJ1bGxnYXJkaW5zbWVueSc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWwnXSA9ICcqRS1wb3N0YSByZXN1bHRhdGV0IHRpbGwgYmVzdCZhdW1sO21kIGFkcmVzcy9iZXN0JmF1bWw7bWRhIGFkcmVzc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25FbWFpbENvbmZpcm1hdGlvbiddID0gJypBZHJlc3MgZiZvdW1sO3IgdmVyaWZpZXJhLXZpYS1lcG9zdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRnJvbUVtYWlsQWRkcmVzc0ZpZWxkJ10gPSAnRS1wb3N0ZiZhdW1sO2x0IGYmb3VtbDtyICZxdW90O0ZyJmFyaW5nO24tYWRyZXNzZW4mcXVvdDssIG9jaCBza2lja2EgZW4ga29waWEnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZpbGUnXSA9ICcqU2tyaXYgcmVzdWx0YXQgdGlsbCB2YW5saWcgZmlsJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRGlzcG9zaXRpb25EYXRhYmFzZSddID0gJypTcGFyYSByZXN1bHRhdCBpIGRhdGFiYXMnOwokbGFuZ1snZmllbGRfdHlwZV9EaXNwb3NpdGlvbkZvcm1Ccm93c2VyJ10gPSAnKlNwYXJhIHJlc3VsdGF0ZXQgZiZvdW1sO3IgRm9ybUJyb3dzZXIgTW9kdWxlIHYuMyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uVXNlclRhZyddID0gJypBbnJvcCB0aWxsIGVuIGFudiZhdW1sO25kYXJkZWZpbmllcmFkIHRhZ2cgbWVkIGZvcm11bCZhdW1sO3JyZXN1bHRhdCc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRGVsaXZlclRvRW1haWxBZGRyZXNzRmllbGQnXSA9ICcqRS1wb3N0YSB0aWxsIGVuIGF2IGFudiZhdW1sO25kYXJlbiBhbmdpdmVuIGUtcG9zdGFkcmVzcyc7CiRsYW5nWydmaWVsZF90eXBlX0Rpc3Bvc2l0aW9uRW1haWxTaXRlQWRtaW4nXSA9ICcqRS1wb3N0YSB0aWxsIENNUyBBZG1pbiBVc2VyJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfUGFnZUJyZWFrRmllbGQnXSA9ICctU2lkYnJ5dG5pbmcnOwokbGFuZ1snZmllbGRfdHlwZV9GaWxlVXBsb2FkRmllbGQnXSA9ICdGaWx1cHBsYWRkbmluZyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbEFkZHJlc3NGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLWFkcmVzc2VuJnF1b3Q7JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfRnJvbUVtYWlsQWRkcmVzc0FnYWluRmllbGQnXSA9ICdFLXBvc3RmJmF1bWw7bHQgZiZvdW1sO3IgJnF1b3Q7RnImYXJpbmc7bi1hZHJlc3NlbiZxdW90OyBpZ2VuIGYmYXVtbDtsdCc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbE5hbWVGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDtGciZhcmluZztuLW5hbW5ldCZxdW90Oyc7CiRsYW5nWydmaWVsZF90eXBlX0Zyb21FbWFpbFN1YmplY3RGaWVsZCddID0gJ0UtcG9zdGYmYXVtbDtsdCBmJm91bWw7ciAmcXVvdDsmQXVtbDttbmUmcXVvdDsnOwokbGFuZ1snZmllbGRfdHlwZV9TdGF0aWNUZXh0RmllbGQnXSA9ICctU3RhdGlzayB0ZXh0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfU3lzdGVtTGlua0ZpZWxkJ10gPSAnLVN0YXRpc2sgbCZhdW1sO25rJzsKJGxhbmdbJ2ZpZWxkX3R5cGVfTGlua0ZpZWxkJ10gPSAnTCZhdW1sO25rIChhbnYmYXVtbDtuZGFyY2VudHJlcmFkKSc7CiRsYW5nWydmaWVsZF90eXBlX0hpZGRlbkZpZWxkJ10gPSAnLWcmb3VtbDttdCBmJmF1bWw7bHQnOwokbGFuZ1snZmllbGRfdHlwZV9Db21wdXRlZEZpZWxkJ10gPSAnLWJlciZhdW1sO2tuYXQgZiZhdW1sO2x0JzsKJGxhbmdbJ2ZpZWxkX3R5cGVfVW5pcXVlSW50ZWdlckZpZWxkJ10gPSAnLVVuaXF1ZSBJbnRlZ2VyIChTZXJpYWwpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbm9uZSddID0gJ0luZ2VuIHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3ZhbGlkYXRpb25faW50ZWdlciddID0gJ0hlbHRhbCc7CiRsYW5nWyd2YWxpZGF0aW9uX2VtYWlsX2FkZHJlc3MnXSA9ICdFLXBvc3RhZHJlc3MnOwokbGFuZ1sndmFsaWRhdGlvbl91c3Bob25lJ10gPSAnVGVsZWZvbm51bW1lciAoVVMpJzsKJGxhbmdbJ3ZhbGlkYXRpb25fbXVzdF9jaGVjayddID0gJ00mYXJpbmc7c3RlIHZhcmEgaWtyeXNzYWQnOwokbGFuZ1sndmFsaWRhdGlvbl9yZWdleF9tYXRjaCddID0gJ01hdGNoYSByZWd1bGomYXVtbDtydXR0cnljayc7CiRsYW5nWyd2YWxpZGF0aW9uX3JlZ2V4X25vbWF0Y2gnXSA9ICdNYXRjaGEgaW50ZSByZWd1bGomYXVtbDtydXR0cnljayc7CiRsYW5nWydyZXF1aXJlZF9maWVsZF9taXNzaW5nJ10gPSAnSW5nZXQgdiZhdW1sO3JkZSBhbmdhdnMgZiZvdW1sO3IgZXR0IGYmYXVtbDtsdCBzb20gJmF1bWw7ciBvYmxpZ2F0b3Jpc2t0JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hX3ZhbHVlJ10gPSAnQW5nZSBldHQgdiZhdW1sO3JkZSBmJm91bWw7ciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9udW1iZXInXSA9ICdBbmdlIGV0dCB0YWwgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX3ZhbGlkJ10gPSAnQW5nZSBldHQgZ2lsdGlndCB2JmF1bWw7cmRlIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9hbl9pbnRlZ2VyJ10gPSAnQW5nZSBldHQgaGVsdGFsc3YmYXVtbDtyZGUgZiZvdW1sO3IgJnF1b3Q7JXMmcXVvdDsnOwokbGFuZ1sncGxlYXNlX2VudGVyX2FuX2VtYWlsJ10gPSAnQW5nZSBlbiBnaWx0aWcgZS1wb3N0YWRyZXNzIGYmb3VtbDtyICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2VtYWlsX2FkZHJlc3NfZG9lc19ub3RfbWF0Y2gnXSA9ICdFLXBvc3RhZHJlc3NlbiBtYXRjaGFyIGludGUgdiZhdW1sO3JkZXQgaSAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydwbGVhc2VfZW50ZXJfYV9waG9uZSddID0gJ1YmYXVtbDtubGlnZW4gZnlsbCBpIGV0dCBnb2RrJmF1bWw7bnQgdGVsZWZvbm51bW1lciAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydub3RfdmFsaWRfZW1haWwnXSA9ICcmcXVvdDslcyZxdW90OyB2ZXJrYXIgaW50ZSB2YXJhIGVuIGdpbHRpZyBlLXBvc3RhZHJlc3MhJzsKJGxhbmdbJ3BsZWFzZV9lbnRlcl9ub19sb25nZXInXSA9ICdBbmdlIGV0dCB2JmF1bWw7cmRlIHNvbSBpbnRlICZhdW1sO3IgbCZhdW1sO25ncmUgJmF1bWw7biAlcyB0ZWNrZW4nOwokbGFuZ1sndGl0bGVfbGlzdF9kZWxpbWl0ZXInXSA9ICdUZWNrZW4gYXR0IGFudiZhdW1sO25kYSBzb20gYXZnciZhdW1sO25zYXJlIGkgcmVzdWx0YXQgc29tIHJldHVybmVyYXIgbWVyICZhdW1sO24gZXR0IHYmYXVtbDtyZGUnOwokbGFuZ1sneW91X25lZWRfcGVybWlzc2lvbiddID0gJ0R1IGJlaCZvdW1sO3ZlciByJmF1bWw7dHRpZ2hldGVuICZxdW90OyVzJnF1b3Q7IGYmb3VtbDtyIGF0dCB1dGYmb3VtbDtyYSBkZW4gJmFyaW5nO3RnJmF1bWw7cmRlbi4nOwokbGFuZ1snbGFja3Blcm1pc3Npb24nXSA9ICdUeXYmYXVtbDtyciEgRHUgaGFyIGludGUgdGlsbHImYXVtbDtja2xpZ2EgciZhdW1sO3R0aWdoZXRlciBmJm91bWw7ciBhdHQga29tbWEgJmFyaW5nO3QgZGVuIGgmYXVtbDtyIHNla3Rpb25lbi4nOwokbGFuZ1snZmllbGRfb3JkZXJfdXBkYXRlZCddID0gJ0YmYXVtbDtsdG9yZG5pbmdlbiB1cHBkYXRlcmFkLic7CiRsYW5nWydmb3JtX2RlbGV0ZWQnXSA9ICdGb3JtdWwmYXVtbDtyIGJvcnR0YWdldC4nOwokbGFuZ1snZmllbGRfZGVsZXRlZCddID0gJ0YmYXVtbDtsdCBib3J0dGFnZXQuJzsKJGxhbmdbJ2NvbmZpZ3VyYXRpb25fdXBkYXRlZCddID0gJ0tvbmZpZ3VyYXRpb24gdXBwZGF0ZXJhZC4nOwokbGFuZ1sneW91X211c3RfY2hlY2snXSA9ICdEdSBtJmFyaW5nO3N0ZSBrcnlzc2EgaSAmcXVvdDslcyZxdW90OyBmJm91bWw7ciBhdHQgZm9ydHMmYXVtbDt0dGEnOwokbGFuZ1snbXVzdF9zcGVjaWZ5X29uZV9kZXN0aW5hdGlvbiddID0gJ0R1IG0mYXJpbmc7c3RlIGFuZ2UgJmFyaW5nO3RtaW5zdG9uZSBlbiBtb3R0YWdhcmFkcmVzcyEnOwokbGFuZ1snYXJlX3lvdV9zdXJlX2RlbGV0ZV9mb3JtJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2aWxsIHRhIGJvcnQgZm9ybXVsJmF1bWw7cmV0ICVzPyc7CiRsYW5nWydhcmVfeW91X3N1cmVfZGVsZXRlX2ZpZWxkJ10gPSAnJkF1bWw7ciBkdSBzJmF1bWw7a2VyIHAmYXJpbmc7IGF0dCBkdSB2aWxsIHRhIGJvcnQgZiZhdW1sO2x0ZXQgJXM/JzsKJGxhbmdbJ25vdGljZV9zZWxlY3RfdHlwZSddID0gJ0F2YW5jZXJhZGUgaW5zdCZhdW1sO2xsbmluZ2FyICZhdW1sO3IgaW50ZSB0aWxsZyZhdW1sO25nbGlnYSBmJm91bWw7cnImYXVtbDtuIGYmYXVtbDtsdHR5cGVuIGhhciBhbmdldHRzLic7CiRsYW5nWydmaWVsZF9uYW1lX2luX3VzZSddID0gJ0YmYXVtbDtsdG5hbW5ldCAmcXVvdDslcyZxdW90OyBhbnYmYXVtbDtuZHMgcmVkYW4uIFYmYXVtbDtubGlnZW4gYW52JmF1bWw7bmQgdW5pa2EgZiZhdW1sO2x0bmFtbiBlbGxlciBhdm1hcmtlcmEgdW5pa2EgZiZhdW1sO2x0bmFtbiBpIGtvbmZpZ3VyYXRpb25lbiBmJm91bWw7ciBGb3JtdWwmYXVtbDtyYnlnZ2FyZW4uJzsKJGxhbmdbJ2ZpZWxkX25vX25hbWUnXSA9ICdGJmF1bWw7bHQgbSZhcmluZztzdGUgaGEgZXR0IG5hbW4sIHMmYXJpbmc7dmlkYSBkdSBpbnRlIGF2bWFya2VyYXIgZGV0dGEgaSBGb3JtdWwmYXVtbDtyYnlnZ2FyZW5zIGtvbmZpZ3VyYXRpb24uJzsKJGxhbmdbJ2Fub255bW91cyddID0gJ0Fub255bSc7CiRsYW5nWydhYmJyZXZpYXRpb25fbGVuZ3RoJ10gPSAnTCZhdW1sO25nZDogJXMnOwokbGFuZ1snYm94ZXMnXSA9ICclcyBydXRvcic7CiRsYW5nWydvcHRpb25zJ10gPSAnJXMgdmFsJzsKJGxhbmdbJ3RleHRfbGVuZ3RoJ10gPSAnJSB0ZWNrZW4uJzsKJGxhbmdbJ29yZGVyJ10gPSAnT3JkbmluZyc7CiRsYW5nWyd1bnNwZWNpZmllZCddID0gJ1tvc3BlY2lmaWNlcmF0fSc7CiRsYW5nWydhZGRlZCddID0gJ3RpbGxhZ2QnOwokbGFuZ1sndXBkYXRlZCddID0gJ3VwcGRhdGVyYWQnOwokbGFuZ1snc29ydF9vcHRpb25zJ10gPSAnU29ydGVyaW5nc3ZhbCB2aWQgb3V0cHV0L3V0bWF0bmluZyc7CiRsYW5nWydzZWxlY3Rfb25lJ10gPSAnViZhdW1sO2xqIEVuJzsKJGxhbmdbJ3NlbGVjdF90eXBlJ10gPSAnViZhdW1sO2xqIFR5cCc7CiRsYW5nWyd0byddID0gJ1RpbGwnOwokbGFuZ1sneWVzJ10gPSAnSmEnOwokbGFuZ1snbm8nXSA9ICdOZWonOwokbGFuZ1sncmVjaXBpZW50cyddID0gJ21vdHRhZ2FyZSc7CiRsYW5nWydmaWxlX2NvdW50J10gPSAnJXMgbSZvdW1sO2psaWdhIGZpbGVyJzsKJGxhbmdbJ2Rlc3RpbmF0aW9uX2NvdW50J10gPSAnJXMgZGVzdGluYXRpb25lcic7CiRsYW5nWydzYXZlJ10gPSAnU3BhcmEnOwokbGFuZ1snYWRkJ10gPSAnTCZhdW1sO2dnIHRpbGwnOwokbGFuZ1sndXBkYXRlJ10gPSAnVXBwZGF0ZXJhJzsKJGxhbmdbJ3NhdmVfYW5kX2NvbnRpbnVlJ10gPSAnU3BhcmEgb2NoIGZvcnRzJmF1bWw7dHQgcmVkaWdlcmEnOwokbGFuZ1snaW5mb3JtYXRpb24nXSA9ICdJbmZvcm1hdGlvbic7CiRsYW5nWydhdXRvbWF0aWMnXSA9ICdBdXRvbWF0aXNrJzsKJGxhbmdbJ2Zvcm1zJ10gPSAnRm9ybXVsJmF1bWw7cic7CiRsYW5nWydmb3JtJ10gPSAnRm9ybXVsJmF1bWw7ciAlcyc7CiRsYW5nWydjb25maWd1cmF0aW9uJ10gPSAnS29uZmlndXJhdGlvbic7CiRsYW5nWydmaWVsZF9yZXF1aXJlbWVudF91cGRhdGVkJ10gPSAnU3RhdHVzIGYmb3VtbDtyIG9ibGlnYXRvcmlza3QgZiZhdW1sO2x0IHVwcGRhdGVyYWQnOwokbGFuZ1snbWF4aW11bV9zaXplJ10gPSAnTWF4c3Rvcmxlayc7CiRsYW5nWydwZXJtaXR0ZWRfZXh0ZW5zaW9ucyddID0gJ0ZpbCZhdW1sO25kZWxzZXInOwokbGFuZ1sncGVybWl0dGVkX2ZpbGV0eXBlcyddID0gJ1RpbGwmYXJpbmc7dG5hIGZpbHR5cGVyJzsKJGxhbmdbJ2ZpbGVfdG9vX2xhcmdlJ10gPSAnRGVuIHVwcGxhZGRhZGUgZmlsZW4gJm91bWw7ciBmJm91bWw7ciBzdG9yISBNYXhpbWFsIHN0b3JsZWsgJmF1bWw7cjonOwokbGFuZ1snaWxsZWdhbF9maWxlX3R5cGUnXSA9ICdEZW4gaCZhdW1sO3IgZmlsdHlwZW4ga2FuIGludGUgbGFkZGFzIHVwcC4gS29udHJvbGxlcmEgYXR0IGZpbCZhdW1sO25kZWxzZW4gJmF1bWw7ciBrb3JyZWt0Lic7CiRsYW5nWyd1cGxvYWQnXSA9ICdMYWRkYSB1cHAnOwokbGFuZ1snZm9ybV9pbXBvcnRlZCddID0gJ0Zvcm11bCZhdW1sO3IgaW1wb3J0ZXJhdC4nOwokbGFuZ1snZm9ybV9pbXBvcnRfZmFpbGVkJ10gPSAnSW1wb3J0IGF2IGZvcm11bCZhdW1sO3IgbWlzc2x5Y2thZGVzISBEZXQgdmFyIHByb2JsZW0gbWVkIFhNTC1maWxlbnMgZm9ybWF0Lic7CiRsYW5nWydyb3dzJ10gPSAnJXMgcmFkZXInOwokbGFuZ1snY29scyddID0gJyVzIGtvbHVtbmVyJzsKJGxhbmdbJzEyX2hvdXInXSA9ICcxMi10aW1tYXJza2xvY2thJzsKJGxhbmdbJzI0X2hvdXInXSA9ICcyNC10aW1tYXJza2xvY2thJzsKJGxhbmdbJ2hvdXInXSA9ICdUaW1tZSc7CiRsYW5nWydtaW4nXSA9ICdNaW51dCc7CiRsYW5nWydtZXJpZCddID0gJ01lcmlkaWFuJzsKJGxhbmdbJ2RhdGVfcmFuZ2UnXSA9ICdSJmF1bWw7Y2t2aWRkOiAlcyAtICVzJzsKJGxhbmdbJ3RoYW5rcyddID0gJ1RhY2shIERpdHQgZm9ybXVsJmF1bWw7ciBoYXIgc2tpY2thdHMuJzsKJGxhbmdbJ2VkaXQnXSA9ICdSZWRpZ2VyYSc7CiRsYW5nWydkZWxldGUnXSA9ICdUYSBib3J0JzsKJGxhbmdbJ2RheSddID0gJ0RhZyc7CiRsYW5nWydtb24nXSA9ICdNJmFyaW5nO25hZCc7CiRsYW5nWyd5ZWFyJ10gPSAnJkFyaW5nO3InOwokbGFuZ1snbm9uZSddID0gJyhpbmdlbiknOwokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGVuIGF2aW5zdGFsbGVyYWQuJzsKJGxhbmdbJ2luc3RhbGxlZCddID0gJ01vZHVsdmVyc2lvbiAlcyBpbnN0YWxsZXJhZC4nOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGVuIHVwcGdyYWRlcmFkIHRpbGwgdmVyc2lvbiAlcy4nOwokbGFuZ1snYnV0dG9uX3ByZXZpb3VzJ10gPSAnVGlsbGJha2EuLi4nOwokbGFuZ1snYnV0dG9uX3N1Ym1pdCddID0gJ1NraWNrYSBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ2J1dHRvbl9jb250aW51ZSddID0gJ0ZvcnRzJmF1bWw7dHQuLi4nOwokbGFuZ1sndmFsdWVfY2hlY2tlZCddID0gJ0lrcnlzc2FkJzsKJGxhbmdbJ3ZhbHVlX3VuY2hlY2tlZCddID0gJ0VqIGlrcnlzc2FkJzsKJGxhbmdbJ3RhYl9tYWluJ10gPSAnSHV2dWQtJzsKJGxhbmdbJ3RhYl9zeW1ib2wnXSA9ICdJbnN0JmF1bWw7bGxuaW5nYXIgZiZvdW1sO3IgZm9ybXVsJmF1bWw7cnZpc25pbmcnOwokbGFuZ1sndGFiX3N1Ym1pdCddID0gJ1NraWNrYXQgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0YWJfY2FwdGNoYSddID0gJ0luc3QmYXVtbDtsbG5pbmdhciBmJm91bWw7ciBDYXB0Y2hhJzsKJGxhbmdbJ3RhYl9hZHZhbmNlZCddID0gJ0F2YW5jZXJhZGUgaW5zdCZhdW1sO2xsbmluZ2FyJzsKJGxhbmdbJ3RhYl90ZW1wbGF0ZWxheW91dCddID0gJ0Zvcm11bCZhdW1sO3JtYWxsJzsKJGxhbmdbJ3RhYl9zdWJtaXNzaW9udGVtcGxhdGUnXSA9ICdTa2lja2EtbWFsbCc7CiRsYW5nWydjYW51c2Vfc21hcnR5J10gPSAnPGVtPlNtYXJ0eS12YXJpYWJsZXIgJmF1bWw7ciBpbnRlIHRpbGwmYXJpbmc7dG5hIGkgZGV0IGgmYXVtbDtyIGYmYXVtbDtsdGV0LjwvZW0+JzsKJGxhbmdbJ2FkZF9vcHRpb25zJ10gPSAnTCZhdW1sO2dnIHRpbGwgZmxlciB2YWwnOwokbGFuZ1snZGVsZXRlX29wdGlvbnMnXSA9ICdUYSBib3J0IG1hcmtlcmFkZSB2YWwnOwokbGFuZ1snYWRkX2NoZWNrYm94ZXMnXSA9ICdMJmF1bWw7Z2cgdGlsbCBmbGVyIGtyeXNzcnV0b3InOwokbGFuZ1snZGVsZXRlX2NoZWNrYm94ZXMnXSA9ICdUYSBib3J0IG1hcmtlcmFkZSBrcnlzc3J1dG9yJzsKJGxhbmdbJ2FkZF9hZGRyZXNzJ10gPSAnTCZhdW1sO2dnIHRpbGwgZW4gYWRyZXNzJzsKJGxhbmdbJ2RlbGV0ZV9hZGRyZXNzJ10gPSAnVGEgYm9ydCBtYXJrZXJhZGUgYWRyZXNzZXInOwokbGFuZ1snYWRkX2Rlc3RpbmF0aW9uJ10gPSAnTCZhdW1sO2dnIHRpbGwgbW90dGFnYXJlJzsKJGxhbmdbJ2RlbGV0ZV9kZXN0aW5hdGlvbiddID0gJ1RhIGJvcnQgbWFya2VyYWRlIG1vdHRhZ2FyZSc7CiRsYW5nWydzdXNwZWN0ZWRfc3BhbSddID0gJ0Ymb3VtbDtyIG0mYXJpbmc7bmdhIGUtcG9zdG1lZGRlbGFuZGVuIGdlbmVyZXJhZGVzIGZyJmFyaW5nO24gZGluIElQLWFkcmVzcy4gQW50aS1za3ImYXVtbDtwcG9zdC1rb2QgaGFyIGYmb3VtbDtyaGluZHJhdCBhdHQgZGUgbGV2ZXJlcmF0cy4nOwokbGFuZ1snc3VzcGVjdGVkX3NwYW1fbG9nJ10gPSAnTWlzc3QmYXVtbDtua3Qgc2tyJmF1bWw7cHBvc3QgZnImYXJpbmc7biBJUC1hZHJlc3NlbiAlcyBzdG9wcGFkZXMuJzsKJGxhbmdbJ3Jlb3JkZXInXSA9ICcmQXVtbDtuZHJhIGYmYXVtbDtsdG9yZG5pbmcnOwokbGFuZ1snY2FuY2VsJ10gPSAnJkFyaW5nO25ncmEnOwokbGFuZ1sndmFsdWVfc2V0J10gPSAnVmFsdWUgc2V0OiAlcyc7CiRsYW5nWydoZWxwX2NhdGFsb2dlcl9hdHRyaWJ1dGVfZmllbGRzJ10gPSAnQmVsb3cgaXMgYSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmcm9tIHRoZSBDYXRhbG9nZXIgbW9kdWxlLjxici8+WW91IGNhbiBvcHRpb25hbGx5IHNwZWNpZnkgdmFsaWQgcmFuZ2VzLCB2YWx1ZXMsIG9yIG51bWVyb3VzIHZhbHVlcyB0byBiZSB1c2VkIGluIGZpbHRlcmluZyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IGlzIGRpc3BsYXllZCB0byB0aGUgdXNlci48YnIvPg0KPGJyLz4NCjxzdHJvbmc+UmFuZ2VzOjwvc3Ryb25nPjxici8+DQpSYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBieSBzaWduaWZ5aW5nIGEgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSB1c2luZyB0aGlzIHN5bnRheDogJnF1b3Q7cmFuZ2U6IG1pbnZhbHVlIHRvIG1heHZhbHVlJnF1b3Q7PGJyLz4NCjxici8+DQo8c3Ryb25nPk11bHRpcGxlIFZhbHVlczo8L3N0cm9uZz48YnIvPg0KVG8gc3BlY2lmeSBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFuIGF0dHJpYnV0ZSB1c2UgdGhlIHN5bnRheCAmcXVvdDttdWx0aTogdmFsdWUxfHZhbHVlMnx2YWx1ZTMmcXVvdDs8YnIvPg0KPGJyLz4NCjxzdHJvbmc+VmFsdWVzIGZyb20gaGlkZGVuIGZpZWxkczwvc3Ryb25nPjxici8+DQpUbyBzcGVjaWZ5IGEgdmFsdWUgZnJvbSBhIGhpZGRlbiBmaWVsZCB1c2UgdGhlIHN5bnRheCB7JGZsZF9pZH08YnIvPg0KPGJyLz4nOwokbGFuZ1snaGVscF9uYW1lX3JlZ2V4J10gPSAnQSByZWd1bGFyIGV4cHJlc3Npb24gdG8gYWxsb3cgZmlsdGVyaW5nIGNhdGFsb2dlciBpdGVtcyBieSBuYW1lJzsKJGxhbmdbJ2hlbHBfZmllbGRfaGVpZ2h0J10gPSAnVGhlIGhlaWdodCBvZiB0aGUgbXVsdGlzZWxlY3QgZmllbGQnOwokbGFuZ1sndGl0bGVfbmFtZV9yZWdleCddID0gJ0NhdGFsb2dlciBJdGVtIE5hbWUgUmVndWxhciBFeHByZXNzaW9uJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2hlaWdodCddID0gJ0YmYXVtbDtsdGV0cyBoJm91bWw7amQnOwokbGFuZ1sndGl0bGVfZmlsZV9wYXRoJ10gPSAnTSZhcmluZztsbWFwcCBmJm91bWw7ciBmaWxlcic7CiRsYW5nWyd0aXRsZV91ZHRfbmFtZSddID0gJ0FudiZhdW1sO25kYXJkZWZpbmllcmFkIHRhZ2cnOwokbGFuZ1sndGl0bGVfdXBsb2Fkc19kZXN0cGFnZSddID0gJ1NpZGEgYXR0ICZhcmluZzt0ZXJ2JmF1bWw7bmRhIHRpbGwgbWVkIHVwcGxhZGRuaW5nc2wmYXVtbDtuayc7CiRsYW5nWyd0aXRsZV91cGxvYWRtb2R1bGVfc3VtbWFyeSddID0gJ1NraWNrYXQgbWVkIGZvcm11bCZhdW1sO3JieWdnYXJlbic7CiRsYW5nWyd0aXRsZV91cGxvYWRzX2NhdGVnb3J5J10gPSAnVXBwbGFkZG5pbmdza2F0ZWdvcmknOwokbGFuZ1sndGl0bGVfc2VuZHRvX3VwbG9hZHMnXSA9ICdTa2lja2EgZGVubmEgZmlsIHRpbGwgdXBwbGFkZG5pbmdzbW9kdWxlbi4nOwokbGFuZ1sndGl0bGVfbGVnZW5kJ10gPSAnRiZvdW1sO3JrbGFyaW5nJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fbGVuZ3RoJ10gPSAnTWF4bCZhdW1sO25nZCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9sYWJlbCddID0gJ0V0aWtldHQgZiZvdW1sO3Iga3J5c3NyeXRhJzsKJGxhbmdbJ3RpdGxlX3JhZGlvX2xhYmVsJ10gPSAnRXRpa2V0dCBmJm91bWw7ciBhbHRlcm5hdGl2a25hcHAnOwokbGFuZ1sndGl0bGVfY2hlY2tlZF92YWx1ZSddID0gJ1YmYXVtbDtyZGUgb20gaWtyeXNzYWQnOwokbGFuZ1sndGl0bGVfdW5jaGVja2VkX3ZhbHVlJ10gPSAnViZhdW1sO3JkZSBvbSBlaiBpa3J5c3NhZCc7CiRsYW5nWyd0aXRsZV9jaGVja2JveF9kZXRhaWxzJ10gPSAnRGV0YWxqZXIgZiZvdW1sO3Iga3J5c3NydXRlZ3J1cHAnOwokbGFuZ1sndGl0bGVfZGVsZXRlJ10gPSAnVGEgYm9ydD8nOwokbGFuZ1sndGl0bGVfc2VsZWN0X29uZV9tZXNzYWdlJ10gPSAnVGV4dCBmJm91bWw7ciAmcXVvdDtWJmF1bWw7bGogRW4mcXVvdDsnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3ZhbHVlJ10gPSAnViZhdW1sO3JkZSBmJm91bWw7ciB1cnZhbCc7CiRsYW5nWyd0aXRsZV9zZWxlY3Rpb25fZGlzcGxheW5hbWUnXSA9ICdOYW1uIGYmb3VtbDtyIHVydmFsc3Zpc25pbmcnOwokbGFuZ1sndGl0bGVfc2VsZWN0aW9uX3N1YmplY3QnXSA9ICcmQXVtbDttbmUgZiZvdW1sO3IgdXJ2YWwnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfY291bnRyeSddID0gJ1N0YW5kYXJkdXJ2YWwnOwokbGFuZ1sndGl0bGVfc2VsZWN0X2RlZmF1bHRfc3RhdGUnXSA9ICdTdGFuZGFyZHVydmFsJzsKJGxhbmdbJ3RpdGxlX3NlbGVjdF9kZWZhdWx0X3Byb3ZpbmNlJ10gPSAnU3RhbmRhcmR1cnZhbCc7CiRsYW5nWyd0aXRsZV9vcHRpb25fbmFtZSddID0gJ05hbW4gZiZvdW1sO3IgYWx0ZXJuYXRpdic7CiRsYW5nWyd0aXRsZV9vcHRpb25fdmFsdWUnXSA9ICdWJmF1bWw7cmRldCBza2lja2F0JzsKJGxhbmdbJ3RpdGxlX3B1bGxkb3duX2RldGFpbHMnXSA9ICdBbHRlcm5hdGl2IGkgcnVsbGdhcmRpbnNtZW55JzsKJGxhbmdbJ3RpdGxlX211bHRpc2VsZWN0X2RldGFpbHMnXSA9ICdNdWx0aXZhbC1hbHRlcm5hdGl2JzsKJGxhbmdbJ3RpdGxlX2Rlc3RpbmF0aW9uX2FkZHJlc3MnXSA9ICdNb3R0YWdhcmVucyBlLXBvc3RhZHJlc3MnOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fZmlsZW5hbWUnXSA9ICdOYW1uIHAmYXJpbmc7IG0mYXJpbmc7bGZpbCc7CiRsYW5nWyd0aXRsZV9lbWFpbF9mcm9tX25hbWUnXSA9ICcmcXVvdDtGciZhcmluZztuLW5hbW4mcXVvdDsgZiZvdW1sO3IgZS1wb3N0JzsKJGxhbmdbJ3RpdGxlX3JlbGF4ZWRfZW1haWxfcmVnZXgnXSA9ICdBbnYmYXVtbDtuZCBlbmtlbCBlLXBvc3R2ZXJpZmllcmluZyc7CiRsYW5nWyd0aXRsZV9yZWxheGVkX3JlZ2V4X2xvbmcnXSA9ICdBbnYmYXVtbDtuZCBlbmtlbCBlLXBvc3RhZHJlc3N2ZXJpZmllcmluZyAodC5leC4gdGlsbCZhcmluZzt0ICZxdW90O3hAeSZxdW90OyBpc3QmYXVtbDtsbGV0IGYmb3VtbDtyIGF0dCBrciZhdW1sO3ZhICZxdW90O3hAeS5zZSZxdW90OyknOwokbGFuZ1sndGl0bGVfZW1haWxfZnJvbV9hZGRyZXNzJ10gPSAnJnF1b3Q7RnImYXJpbmc7bi1hZHJlc3MmcXVvdDsgZiZvdW1sO3IgZS1wb3N0JzsKJGxhbmdbJ3RpdGxlX2VtYWlsX2VuY29kaW5nJ10gPSAnRS1wb3N0dGVja2Vua29kbmluZyc7CiRsYW5nWyd0aXRsZV9kaXJlY3Rvcl9kZXRhaWxzJ10gPSAnUnVsbGdhcmRpbnNtZW55YmFzZXJhZGUgZS1wb3N0ZGV0YWxqZXInOwokbGFuZ1sndGl0bGVfZmlsZV9uYW1lJ10gPSAnRmlsbmFtbic7CiRsYW5nWyd0aXRsZV9lbWFpbF9zdWJqZWN0J10gPSAnJkF1bWw7bW5lc3JhZCBmJm91bWw7ciBlLXBvc3QnOwokbGFuZ1sndGl0bGVfZm9ybV9uYW1lJ10gPSAnRm9ybXVsJmF1bWw7cm5hbW4nOwokbGFuZ1sndGl0bGVfZm9ybV9zdGF0dXMnXSA9ICdGb3JtdWwmYXVtbDtyc3RhdHVzJzsKJGxhbmdbJ3RpdGxlX3JlYWR5X2Zvcl9kZXBsb3ltZW50J10gPSAnRiZhdW1sO3JkaWcgYXR0IGFudiZhdW1sO25kYXMnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MSddID0gJ0VqIGYmYXVtbDtyZGlnJzsKJGxhbmdbJ3RpdGxlX3JlZGlyZWN0X3BhZ2UnXSA9ICdTaWRhIGF0dCBvbWRpcmlnZXJhIHRpbGwgZWZ0ZXIgYXR0IGZvcm11bCZhdW1sO3JldCBza2lja2F0cyc7CiRsYW5nWyd0aXRsZV9ub3RfcmVhZHkyJ10gPSAnViZhdW1sO25saWdhIGwmYXVtbDtnZyB0aWxsIGV0dCBmJmF1bWw7bHQgdGlsbCBmb3JtdWwmYXVtbDtyZXQgcyZhcmluZzsgYXR0IGFudiZhdW1sO25kYXJlbnMgaW5tYXRuaW5nIGthbiBoYW50ZXJhcy4gRHUga2FuJzsKJGxhbmdbJ3RpdGxlX25vdF9yZWFkeV9saW5rJ10gPSAnYW52JmF1bWw7bmQgZGVubmEgZ2VudiZhdW1sO2dlbic7CiRsYW5nWyd0aXRsZV9mb3JtX2FsaWFzJ10gPSAnQWxpYXMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV9mb3JtX2ZpZWxkcyddID0gJ0Zvcm11bCZhdW1sO3JmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfZmllbGRfaWQnXSA9ICdGJmF1bWw7bHQtSUQnOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGFsaWFzZXMnXSA9ICdWaXNhIGYmYXVtbDtsdGVucyBhbGlhcyc7CiRsYW5nWyd0aXRsZV9zaG93X2ZpZWxkYWxpYXNlc19sb25nJ10gPSAnQ2xpY2tpbmcgdGhpcyB3aWxsIGRpc3BsYXkgZmllbGQgYWxpYXNlcyB3aGVuIGFkZGluZyBvciBlZGl0aW5nIGEgZm9ybSc7CiRsYW5nWyd0aXRsZV9maWVsZF9uYW1lJ10gPSAnRiZhdW1sO2x0bmFtbic7CiRsYW5nWyd0aXRsZV9maWVsZF9hbGlhcyddID0gJ0YmYXVtbDtsdGFsaWFzJzsKJGxhbmdbJ3RpdGxlX3JhZGlvZ3JvdXBfZGV0YWlscyddID0gJ0RldGFsamVyIGYmb3VtbDtyIGFsdGVybmF0aXZrbmFwcGdydXBwJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3R5cGUnXSA9ICdGJmF1bWw7bHR0eXAnOwokbGFuZ1sndGl0bGVfbm90X3JlYWR5MyddID0gJ2Ymb3VtbDtyIGF0dCBza2FwYSBldHQgZm9ybXVsJmF1bWw7cmhhbnRlcmluZ3NmJmF1bWw7bHQnOwokbGFuZ1sndGl0bGVfYWRkX25ld19mb3JtJ10gPSAnTCZhdW1sO2dnIHRpbGwgbnl0dCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdmVyc2lvbiddID0gJ1Zpc2EgRm9ybXVsJmF1bWw7cmJ5Z2dhcmVucyB2ZXJzaW9uPyc7CiRsYW5nWyd0aXRsZV9zaG93X3ZlcnNpb25fbG9uZyddID0gJ0RldHRhIGtvbW1lciBhdHQgbCZhdW1sO2dnYSB0aWxsIHZlcnNpb25zbnVtcmV0IGYmb3VtbDtyIGRlbiB2ZXJzaW9uIGF2IEZvcm11bCZhdW1sO3JieWdnYXJtb2R1bGVuIHNvbSBkdSBoYXIgaW5zdGFsbGVyYWQgaSBlbiBrb21tZW50YXIsIGYmb3VtbDtyIGF0dCBoaiZhdW1sO2xwYSB0aWxsIG1lZCBmZWxzJm91bWw7a25pbmcuJzsKJGxhbmdbJ3RpdGxlX2FkZF9uZXdfZmllbGQnXSA9ICdMJmF1bWw7Z2cgdGlsbCBueXR0IGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3N1Ym1pdF9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyIGZvcm11bCZhdW1sO3JldHMgc2tpY2thLWtuYXBwJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5J10gPSAnTCZhdW1sO2dnYSB0aWxsIEphdmFzY3JpcHQgZiZvdW1sO3IgZGVuIHNpc3RhIHNraWNrYS1rbmFwcGVuIGYmb3VtbDtyIGF0dCBmJm91bWw7cmhpbmRyYSBhdHQgZm9ybXVsJmF1bWw7cmV0IHNraWNrYXMgZmxlcmEgZyZhcmluZztuZ2VyPyc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfYnV0dG9uX3NhZmV0eV9oZWxwJ10gPSAnTCZhdW1sO2dnIHRpbGwgcyZhdW1sO2tlcmhldHNzY3JpcHQnOwokbGFuZ1sndGl0bGVfZm9ybV9uZXh0X2J1dHRvbiddID0gJ1RleHQgZiZvdW1sO3IgJnF1b3Q7TiZhdW1sO3N0YS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fcHJldl9idXR0b24nXSA9ICdUZXh0IGYmb3VtbDtyICZxdW90O0Ymb3VtbDtyZWcmYXJpbmc7ZW5kZS1rbmFwcGVuJnF1b3Q7IGkgZm9ybXVsJmF1bWw7cmV0IChhbnYmYXVtbDtuZHMgZiZvdW1sO3IgZm9ybXVsJmF1bWw7ciBtZWQgZmxlcmEgc2lkb3IpJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX3ZhbGlkYXRpb24nXSA9ICdGJmF1bWw7bHR2ZXJpZmllcmluZyc7CiRsYW5nWyd0aXRsZV9maWVsZF90b192YWxpZGF0ZSddID0gJ0YmYXVtbDtsdCBmJm91bWw7ciB2YWxpZGVyaW5nJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzIGYmb3VtbDtyIGRldHRhIGZvcm11bCZhdW1sO3InOwokbGFuZ1sndGl0bGVfZmllbGRfY3NzX2NsYXNzJ10gPSAnQ1NTLWtsYXNzIGYmb3VtbDtyIGRldHRhIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbCddID0gJ1N5bWJvbCBmJm91bWw7ciBhdHQgbWFya2VyYSBvYmxpZ2F0b3Jpc2thIGYmYXVtbDtsdCc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZXF1aXJlZCddID0gJ09ibGlnYXRvcmlza3QnOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfbG9uZyddID0gJ0cmb3VtbDtyIGRldHRhIGYmYXVtbDtsdCBvYmxpZ2F0b3Jpc2t0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWwnXSA9ICdHJm91bWw7bSBldGlrZXR0JzsKJGxhbmdbJ3RpdGxlX2hpZGVfbGFiZWxfbG9uZyddID0gJ0cmb3VtbDttIGRldHRhIGYmYXVtbDtsdHMgbmFtbiBwJmFyaW5nOyBmb3JtdWwmYXVtbDtyZXQnOwokbGFuZ1sndGl0bGVfdGV4dCddID0gJ1N0YXRpc2sgdGV4dCBhdHQgdmlzYSc7CiRsYW5nWyd0aXRsZV9maWVsZF9yZWdleCddID0gJ1JlZ3VsaiZhdW1sO3J1dHRyeWNrIGYmb3VtbDtyIHZlcmlmaWVyaW5nJzsKJGxhbmdbJ3RpdGxlX2xpbmVzX3RvX3Nob3cnXSA9ICdBbnRhbCByYWRlciBhdHQgdmlzYSc7CiRsYW5nWydub19kZWZhdWx0J10gPSAnSW5nZXQgc3RhbmRhcmR2YWwnOwokbGFuZ1sncmVkaXJlY3RfYWZ0ZXJfYXBwcm92YWwnXSA9ICdTaWRhIGF0dCBvbWRpcmlnZXJhIHRpbGwgZWZ0ZXIgZ29kayZhdW1sO25uYW5kZSc7CiRsYW5nWyd0aXRsZV9yZWdleF9oZWxwJ10gPSAnRGV0dGEgcmVndWxqJmF1bWw7cnV0dHJ5Y2sgYW52JmF1bWw7bmRzIGJhcmEgb20gJnF1b3Q7dmVyaWZpZXJpbmdzdHlwZW4mcXVvdDsgJmF1bWw7ciBzYXR0IHRpbGwgZXR0IHJlZ3VsaiZhdW1sO3J1dHRyeWNrLXJlbGF0ZXJhdCBhbHRlcm5hdGl2LiBJbmtsdWRlcmEgZXR0IGZ1bGx0IHJlZ3VsaiZhdW1sO3J1dHRyeWNrIGkgUGVybC1zdGlsLCBpbmtsdXNpdmUgc3RhcnQvc3RvcC1zbmVkc3RyZWNrZW4gb2NoIC1mbGFnZ29ybmEgKHQuZXguICZxdW90Oy9pbWFnZVwuKFxkKykvaSZxdW90OyknOwokbGFuZ1sndGl0bGVfZmllbGRfcmVxdWlyZWRfYWJicmV2J10gPSAnT2JsaWcuJzsKJGxhbmdbJ3RpdGxlX2hpZGVfZXJyb3JzJ10gPSAnRyZvdW1sO20gZmVsJzsKJGxhbmdbJ3RpdGxlX2Zvcm1fZGlzcGxheXR5cGUnXSA9ICdGb3JtdWwmYXVtbDtydmlzbmluZ3N0eXAnOwokbGFuZ1sndGl0bGVfaGlkZV9lcnJvcnNfbG9uZyddID0gJ0Ymb3VtbDtyaGluZHJhIGZlbHMmb3VtbDtrbmluZ3MtIG9jaCBmZWxtZWRkZWxhbmRlbiBmciZhcmluZztuIGF0dCB2aXNhcyBmJm91bWw7ciBhbmRyYSBhbnYmYXVtbDtuZGFyZS4nOwokbGFuZ1sndGl0bGVfZW1haWxfdGVtcGxhdGUnXSA9ICdFLXBvc3RtYWxsJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZSddID0gJ01heGltYWwgZmlsc3RvcmxlayBmJm91bWw7ciB1cHBsYWRkbmluZyAoa2lsb2J5dGUpJzsKJGxhbmdbJ3RpdGxlX21heGltdW1fc2l6ZV9sb25nJ10gPSAnRGVubmEgYmVnciZhdW1sO25zbmluZyAmYXVtbDtyIHV0Jm91bWw7dmVyIGFuZHJhIGJlZ3ImYXVtbDtuc25pbmdhciBzb20gJmF1bWw7ciBzYXR0YSBhdiBwaHAtIGVsbGVyIHdlYmJzZXJ2ZXJpbnN0JmF1bWw7bGxuaW5nYXIuJzsKJGxhbmdbJ3RpdGxlX3Blcm1pdHRlZF9leHRlbnNpb25zJ10gPSAnVGlsbCZhcmluZzt0bmEgZmlsJmF1bWw7bmRlbHNlcic7CiRsYW5nWyd0aXRsZV9wZXJtaXR0ZWRfZXh0ZW5zaW9uc19sb25nJ10gPSAnU2tyaXYgZW4ga29tbWEtc2VwYXJhcmFkIGxpc3RhLCB1dGFuIHB1bmt0ICh0LmV4LiAmcXVvdDtqcGcsZ2lmLGpwZWcmcXVvdDspLiBNZWxsYW5zbGFnIGlnbm9yZXJhcy4gT20gZHUgbCZhdW1sO21uYXIgZGV0dGEgZiZhdW1sO2x0ZXQgYmxhbmt0IGlubmViJmF1bWw7ciBkZXQgYXR0IGRldCBpbnRlIGtvbW1lciBhdHQgZmlubmFzIG4mYXJpbmc7Z3JhIHJlc3RyaWt0aW9uZXIuJzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnMnXSA9ICdWaXNhIHJlc3RyaWt0aW9uZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfbGltaXRhdGlvbnNfbG9uZyddID0gJ1Zpc2EgYWxsYSBzdG9ybGVrcy0gb2NoIGZpbCZhdW1sO25kZWxzZXJlc3RyaWt0aW9uZXIgZiZvdW1sO3IgdXBwbGFkZG5pbmdzZiZhdW1sO2x0ZXQ/JzsKJGxhbmdbJ3RpdGxlX2Zvcm1fdGVtcGxhdGUnXSA9ICdNYWxsIGF0dCBhbnYmYXVtbDtuZGEgZiZvdW1sO3IgVmlzYSBGb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3BhZ2VfeF9vZl95J10gPSAnU2lkYSAlcyBhdiAlcyc7CiRsYW5nWyd0aXRsZV9ub19hZHZhbmNlZF9vcHRpb25zJ10gPSAnRiZhdW1sO2x0ZXQgaGFyIGluZ2EgYXZhbmNlcmFkZSBpbnN0JmF1bWw7bGxuaW5nYXInOwokbGFuZ1sndGl0bGVfZm9ybV91bnNwZWNpZmllZCddID0gJ1RleHQgYXR0IHJldHVybmVyYSBmJm91bWw7ciBvc3BlY2lmaWNlcmFkZSBmJmF1bWw7bHR2JmF1bWw7cmRlbic7CiRsYW5nWyd0aXRsZV9lbmFibGVfZmFzdGFkZF9sb25nJ10gPSAnTSZvdW1sO2psaWdnJm91bWw7ciBydWxsZ2FyZGluc21lbnkgZiZvdW1sO3Igc25hYmItdGlsbCZhdW1sO2dnIGF2bCBmJmF1bWw7bHQgZiZvdW1sO3IgZm9ybXVsJmF1bWw7cj8nOwokbGFuZ1sndGl0bGVfZW5hYmxlX2Zhc3RhZGQnXSA9ICdNJm91bWw7amxpZ2cmb3VtbDtyIHJ1bGxnYXJkaW5zbWVueSBmJm91bWw7ciBzbmFiYi10aWxsJmF1bWw7Z2c/JzsKJGxhbmdbJ3RpdGxlX2Zhc3RhZGQnXSA9ICdTbmFiYi10aWxsJmF1bWw7Z2cgYXYgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbV9sb25nJ10gPSAnTiZhdW1sO3IgZGVubmEga2xpY2thcyBwJmFyaW5nOyB0aWxsJmFyaW5nO3RzIGVuZGFzdCAxMCBlLXBvc3RtZWRkZWxhbmRlbiBhdHQgZ2VuZXJlcmFzIGZyJmFyaW5nO24gZW4gZ2l2ZW4gSVAtYWRyZXNzIChwZXIgdGltbWUpJzsKJGxhbmdbJ3RpdGxlX2VuYWJsZV9hbnRpc3BhbSddID0gJ1RpbGwmYXJpbmc7dCBwcmltaXRpdmEgYW50aS1za3ImYXVtbDtwcG9zdGVnZW5za2FwZXI/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfZmllbGRpZHMnXSA9ICdWaXNhIGYmYXVtbDtsdC1JRCYjMDM5O24nOwokbGFuZ1sndGl0bGVfc2hvd19maWVsZGlkc19sb25nJ10gPSAnTiZhdW1sO3IgZGVubmEga2xpY2thcyB0aWxsJmFyaW5nO3RzIGYmYXVtbDtsdC1JRCYjMDM5O24gYXR0IHZpc2FzIG4mYXVtbDtyIG1hbiBsJmF1bWw7Z2dlciB0aWxsIGVsbGVyIHJlZGlnZXJhciBldHQgZm9ybXVsJmF1bWw7cic7CiRsYW5nWyd0aXRsZV94bWxfdG9fdXBsb2FkJ10gPSAnTGFkZGEgdXBwIGZvcm11bCZhdW1sO3IgZnImYXJpbmc7biBYTUwtZmlsJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybW5hbWUnXSA9ICdBbnYmYXVtbDtuZCBkZXR0YSBmb3JtdWwmYXVtbDtybmFtbic7CiRsYW5nWyd0aXRsZV9pbXBvcnRfbGVnZW5kJ10gPSAnWE1MLWltcG9ydCBhdiBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3htbF91cGxvYWRfZm9ybWFsaWFzJ10gPSAnQW52JmF1bWw7bmQgZGV0dGEgZm9ybXVsJmF1bWw7cmFsaWFzJzsKJGxhbmdbJ3RpdGxlX2h0bWxfZW1haWwnXSA9ICdHZW5lcmVyYSBIVE1MLWVwb3N0bWVkZGVsYW5kZW4/JzsKJGxhbmdbJ3RpdGxlX2xpbmtfYXV0b3BvcHVsYXRlJ10gPSAnRnlsbCBpIGF1dG9tYXRpc2t0Pyc7CiRsYW5nWyd0aXRsZV9saW5rX2F1dG9wb3B1bGF0ZV9oZWxwJ10gPSAnRnlsbCBpIFVSTC1hZHJlc3MgZiZvdW1sO3Igc2lkYW4gZCZhdW1sO3IgZm9ybXVsJmF1bWw7cmV0IGZpbm5zIGF1dG9tYXRpc2t0PyAoZGV0dGEgJmFyaW5nO3NpZG9zJmF1bWw7dHRlciBhbHRlcm5hdGl2ZXQgc2FqdHNpZGVsJmF1bWw7bmsgbmVkYW4pJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGluayddID0gJ1N0YW5kYXJkLVVSTC1hZHJlc3MgZiZvdW1sO3IgbCZhdW1sO25rJzsKJGxhbmdbJ3RpdGxlX2RlZmF1bHRfbGlua190aXRsZSddID0gJ1N0YW5kYXJkdGV4dCBmJm91bWw7ciBsJmF1bWw7bmsnOwokbGFuZ1sndGl0bGVfbGlua190b19zaXRlcGFnZSddID0gJ0wmYXVtbDtuayB0aWxsIHNhanQtc2lkYW4nOwokbGFuZ1sndGl0bGVfY2FwdGNoYV9ub3RfaW5zdGFsbGVkJ10gPSAnWW91IGNhbiB1c2UgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPiB0byBwcm90ZWN0IGZvcm0gc3VibWlzc2lvbnMgaWYgeW91IGluc3RhbGwgdGhlIENhcHRjaGEgbW9kdWxlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9jYXB0Y2hhLyI+Y2hlY2sgdGhlIENhcHRjaGEgcHJvamVjdDwvYT4uJzsKJGxhbmdbJ3RpdGxlX3VzZV9jYXB0Y2hhJ10gPSAnQW52JmF1bWw7bmQgQ2FwdGNoYSBmJm91bWw7ciBhdHQgZiZvdW1sO3JlYnlnZ2EgbyZvdW1sO25za2F0IGZvcm11bCZhdW1sO3JkYXRhPyc7CiRsYW5nWyd0aXRsZV91c2VfY2FwdGNoYV9oZWxwJ10gPSAnQ2hlY2sgaGVyZSB0byBwcm90ZWN0IHlvdXIgZm9ybSB3aXRoIGEgPGEgaHJlZj0iaHR0cDovL3d3dy53aWtpcGVkaWEub3JnL3dpa2kvQ2FwdGNoYSIgdGFyZ2V0PSJfbmV3Ij4mcXVvdDtDYXB0Y2hhJnF1b3Q7PC9hPi4nOwokbGFuZ1sndGl0bGVfdXNlcl9jYXB0Y2hhJ10gPSAnQmVrciZhdW1sO2Z0YSBhdHQgZHUgaW50ZSAmYXVtbDtyIGV0dCBzY3JpcHQgZ2Vub20gYXR0IG1hdGEgaW4gdGV4dGVuIGkgYmlsZGVuJzsKJGxhbmdbJ3RpdGxlX3VzZXJfY2FwdGNoYV9lcnJvciddID0gJ0NhcHRjaGEtdGV4dGVuIG1pc3NseWNrYWRlcyc7CiRsYW5nWyd3cm9uZ19jYXB0Y2hhJ10gPSAnQ2FwdGNoYS10ZXh0ZW4gdmFyIGludGUgciZhdW1sO3R0JzsKJGxhbmdbJ3RpdGxlX3RpdGxlX3VzZXJfY2FwdGNoYSddID0gJ0hqJmF1bWw7bHB0ZXh0IGYmb3VtbDtyIENhcHRjaGEnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkJ10gPSAnRG9uJiMwMzk7dCBzdWJtaXQgdmFsdWVzIGZvciB1bmNoZWNrZWQgYm94ZXMnOwokbGFuZ1sndGl0bGVfZG9udF9zdWJtaXRfdW5jaGVja2VkX2hlbHAnXSA9ICdDaGVjayB0aGlzIGlmIHlvdSBvbmx5IHdhbnQgY2hlY2tlZCBib3hlcyB0byByZXR1cm4gdmFsdWVzLic7CiRsYW5nWydsaW5rX2xhYmVsJ10gPSAnTCZhdW1sO25rdGV0aWtldHQnOwokbGFuZ1snbGlua19kZXN0aW5hdGlvbiddID0gJ1VSTCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3NldCddID0gJ0tvbnRyb2xsZXJhcyBzb20gc3RhbmRhcmQ/JzsKJGxhbmdbJ3RpdGxlXzI0X2hvdXInXSA9ICdBbnYmYXVtbDtuZCAyNC10aW1tYXJzIHRpZHNhbmdpdmVsc2U/JzsKJGxhbmdbJ3RpdGxlX2JlZm9yZV9ub29uJ10gPSAnQU0nOwokbGFuZ1sndGl0bGVfYWZ0ZXJfbm9vbiddID0gJ1BNJzsKJGxhbmdbJ3RpdGxlX3NtYXJ0eV9ldmFsJ10gPSAnQmVoYW5kbGEgc21hcnR5LXRhZzphciBpIGYmYXVtbDtsdD8nOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfcm93cyddID0gJ1JhZGVyIChOb3RlcmEgYXR0IGRldHRhIGthbiAmb3VtbDt2ZXJza3JpZGFzIGF2IENTUyknOwokbGFuZ1sndGl0bGVfdGV4dGFyZWFfY29scyddID0gJ0tvbHVtbmVyIChOb3RlcmEgYXR0IGRldHRhIGthbiAmb3VtbDt2ZXJza3JpZGFzIGF2IENTUyknOwokbGFuZ1sndGl0bGVfZm9ybV9tYWluJ10gPSAnRGV0YWxqZXIgZiZvdW1sO3IgaHV2dWRmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcm5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxvZ2luIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3Nob3dfdXNlcmZpcnN0bmFtZSddID0gJ0Rpc3BsYXkgVXNlciYjMDM5O3MgZmlyc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfc2hvd191c2VybGFzdG5hbWUnXSA9ICdEaXNwbGF5IFVzZXImIzAzOTtzIGxhc3QgbmFtZT8nOwokbGFuZ1sndGl0bGVfcmVzdHJpY3RfdG9fZ3JvdXAnXSA9ICdSZXN0cmljdCB1c2VyIGxpc3QgdG8gdXNlcnMgaW4gc3BlY2lmaWVkIGdyb3VwJzsKJGxhbmdbJ3Jlc3RyaWN0ZWRfdG9fZ3JvdXAnXSA9ICdPbmx5IGluIGdyb3VwICVzJzsKJGxhbmdbJ3RpdGxlX3Nob3dfdG9fdXNlciddID0gJ0Rpc3BsYXkgdG8gdXNlcj8nOwokbGFuZ1snaGVscF9sZWF2ZWVtcHR5J10gPSAnRGV0IGgmYXVtbDtyIGYmYXVtbDtsdGV0IGthbiBsJmF1bWw7bW5hcyB0b210JzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl90ZW1wbGF0ZSddID0gJ1ZhcmlhYmxlciBmJm91bWw7ciBtYWxsJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVzX2Zvcl9jb21wdXRhdGlvbiddID0gJ1RpbGxnJmF1bWw7bmdsaWdhIHZhcmlhYmxlcic7CiRsYW5nWydoZWxwX3BocF92YXJpYWJsZV9uYW1lJ10gPSAnUEhQLXZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfc3VibWlzc2lvbl9kYXRlJ10gPSAnSW5za2lja2F0IGRhdHVtJzsKJGxhbmdbJ2hlbHBfc2VydmVyX25hbWUnXSA9ICdEaW4gc2VydmVyJzsKJGxhbmdbJ2hlbHBfc3ViX3NvdXJjZV9pcCddID0gJ0lQLWFkcmVzcyBmJm91bWw7ciBwZXJzb25lbiBzb20gYW52JmF1bWw7bnQgZm9ybXVsJmF1bWw7cmV0JzsKJGxhbmdbJ2hlbHBfc3ViX3VybCddID0gJ1VSTCBmJm91bWw7ciBzaWRhbiBzb20gaW5uZWgmYXJpbmc7bGxlciBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ2hlbHBfZmJfdmVyc2lvbiddID0gJ0Zvcm1CdWlsZGVyIHZlcnNpb24nOwokbGFuZ1snaGVscF90YWInXSA9ICdUYWIgQ2hhcmFjdGVyJzsKJGxhbmdbJ2hlbHBfb3RoZXJfZmllbGRzJ10gPSAnQWx0ZXJuYXRpdmEgZiZhdW1sO2x0bmFtbiBrYW4gYW52JmF1bWw7bmRhcyB1dGJ5dGJhcnQgKHMmYXVtbDtyc2tpbHQgYW52JmF1bWw7bmRiYXJ0IG9tIFNtYXJ0eSBpbnRlIGdpbGxhciB0ZWNrZW4gdXRhbmYmb3VtbDtyIEFTQ0lJIDMyLTEyNikgPGJyIC8+QW5kcmEgZiZhdW1sO2x0IGJsaXIgdGlsbGcmYXVtbDtuZ2xpZ2EgZWZ0ZXJoYW5kIHNvbSBkdSBsJmF1bWw7Z2dlciB0aWxsIGRlbSB0aWxsIGZvcm11bCZhdW1sO3JldC4nOwokbGFuZ1snaGVscF9hcnJheV9maWVsZHMnXSA9ICdGJmF1bWw7bHQgc29tIGhhciBmbGVyYSB2JmF1bWw7cmRlbiBrYW4gb2NrcyZhcmluZzsga29tbWFzICZhcmluZzt0IHZpYSBzbWFydHl2JmF1bWw7cmRlbmEgJGZpZWxkbmFtZV9hcnJheSBlbGxlciAkZmxkXyNfYXJyYXkuJzsKJGxhbmdbJ2hlbHBfZGF0ZV9mb3JtYXQnXSA9ICdTZSA8YSBocmVmPSJodHRwOi8vd3d3LnBocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLmRhdGUucGhwIiB0YXJnZXQ9X05FVz5waHAtbWFudWFsZW48L2E+IGYmb3VtbDtyIGhqJmF1bWw7bHAgbWVkIGZvcm1hdHRlcmluZy4uJzsKJGxhbmdbJ2hlbHBfdmFyaWFibGVfbmFtZSddID0gJ1ZhcmlhYmVsJzsKJGxhbmdbJ2hlbHBfZm9ybV9maWVsZCddID0gJ1JlcHJlc2VudGVyYWRlIGYmYXVtbDtsdCc7CiRsYW5nWydsaW5rX2JhY2tfdG9fZm9ybSddID0gJyZsYXF1bzsgVGlsbGJha2EgdGlsbCBmb3JtdWwmYXVtbDtyJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCc7CiRsYW5nWyd0aXRsZV9jcmVhdGVfc2FtcGxlX2h0bWxfdGVtcGxhdGUnXSA9ICdTa2FwYSBwcm92bWFsbCBmJm91bWw7ciBIVE1MJzsKJGxhbmdbJ3RpdGxlX2NyZWF0ZV9zYW1wbGVfaGVhZGVyX3RlbXBsYXRlJ10gPSAnQ3JlYXRlIFNhbXBsZSBIZWFkZXIgVGVtcGxhdGUnOwokbGFuZ1sndGl0bGVfY3JlYXRlX3NhbXBsZV9oZWFkZXInXSA9ICdTa2FwYSBydWJyaWsgKGhlYWRlciknOwokbGFuZ1snaGVscF90YWJfc3ltYm9sJ10gPSAnZXR0IHRhYnVsYXRvci10ZWNrZW4nOwokbGFuZ1sndGl0bGVfZmlsZV90ZW1wbGF0ZSddID0gJ01hbGwgZiZvdW1sO3IgZW4gcmFkIGkgdXRkYXRhZmlsJzsKJGxhbmdbJ3RpdGxlX2ZpbGVfaGVhZGVyJ10gPSAnTWFsbCBmJm91bWw7ciBodXZ1ZCBwJmFyaW5nOyB1dGZpbCc7CiRsYW5nWyd0aXRsZV9jb25maXJtYXRpb25fdXJsJ10gPSAnVVJMIGF0dCBrbGlja2EgZiZvdW1sO3IgZm9ybXVsJmF1bWw7cmJla3ImYXVtbDtmdGVsc2UnOwokbGFuZ1sndGl0bGVfdmFsdWUnXSA9ICdWJmF1bWw7cmRlIChzZSBmbGlrZW4gQXZhbmNlcmF0IG9tIGR1IGFudiZhdW1sO25kZXIgU21hcnR5LXRhZ2FyKSc7CiRsYW5nWyd0aXRsZV9kYXRlX2Zvcm1hdCddID0gJ0RhdHVtZm9ybWF0ICh2YW5saWdhPGEgaHJlZj0iaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5kYXRlLnBocCI+cGhwLWRhdHVtZm9ybWF0PC9hPiknOwokbGFuZ1sndGl0bGVfdXNlX3d5c2l3eWcnXSA9ICdBbnYmYXVtbDtuZCBXWVNJV1lHLXJlZGlnZXJhcmUgZiZvdW1sO3IgdGV4dHJ1dGFuIChlbmJhcnQgYWRtaW5zaWRhbik/JzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9hY3Rpb25zJ10gPSAnRm9ybSBTdWJtaXNzaW9uIEJlaGF2aW9yJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9sYWJlbHMnXSA9ICdTdWJtaXNzaW9uIEJ1dHRvbiBMYWJlbHMnOwokbGFuZ1sndGl0bGVfc29ydGFibGVfZmllbGQnXSA9ICdTb3J0YWJsZSBGaWVsZCAjJXMnOwokbGFuZ1sndGl0bGVfc3VibWl0X2hlbHAnXSA9ICdUaGlzIHBhZ2UgbGV0cyB5b3UgY3VzdG9taXplIEZvcm0gU3VibWlzc2lvbi4gSXQgZG9lc24mIzAzOTt0IGRldGVybWluZSB3aGF0IHRoZSBGb3JtIEJ1aWxkZXIgZG9lcyB3aXRoIHRoZSBzdWJtaXR0ZWQgZGF0YS4gWW91IGNhbiBzZXQgdGhhdCB1cCBieSBhZGRpbmcgJnF1b3Q7RGlzcG9zaXRpb24mcXVvdDsgZmllbGRzIHRvIHlvdXIgZm9ybS4nOwokbGFuZ1sndGl0bGVfc3RhcnRfeWVhciddID0gJ1llYXIgcmFuZ2Ugc3RhcnQnOwokbGFuZ1sndGl0bGVfZW5kX3llYXInXSA9ICdZZWFyIHJhbmdlIGVuZCc7CiRsYW5nWyd0aXRsZV9kZWZhdWx0X3llYXInXSA9ICdEZWZhdWx0IFllYXInOwokbGFuZ1sndGl0bGVfZGVmYXVsdF95ZWFyX2hlbHAnXSA9ICcoU2V0IHRvIC0xIGZvciBkZWZhdWx0IHllYXIgdG8gYmUgdGhlIGN1cnJlbnQgeWVhciknOwokbGFuZ1sndGl0bGVfc3VibWl0X2FjdGlvbiddID0gJ0FmdGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ3RpdGxlX3N1Ym1pdF9yZXNwb25zZSddID0gJ1Jlc3BvbnNlIHRvIGRpc3BsYXknOwokbGFuZ1snZGlzcGxheV90ZXh0J10gPSAnRGlzcGxheSAmcXVvdDtTdWJtaXNzaW9uIFRlbXBsYXRlJnF1b3Q7JzsKJGxhbmdbJ3JlZGlyZWN0X3RvX3BhZ2UnXSA9ICdSZWRpcmVjdCB0byBzaXRlIHBhZ2UnOwokbGFuZ1sndGl0bGVfc3VibWl0X3Jlc3BvbnNlX2hlbHAnXSA9ICdUaGlzIHRlbXBsYXRlIGlzIGZvciBkaXNwbGF5IHRvIHRoZSB1c2VyIGFmdGVyIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gVGhpcyB0ZW1wbGF0ZSBkb2VzIG5vdCBlZmZlY3QgZW1haWxzIGdlbmVyYXRlZCBvciBvdGhlciBmb3JtIGRpc3Bvc2l0aW9ucyAtLSB5b3Ugc2V0IHRob3NlIHRlbXBsYXRlcyAod2hlcmUgYXBwcm9wcmlhdGUpIGluIHRoZSAmcXVvdDthZHZhbmNlZCZxdW90OyB0YWIgZm9yIHRob3NlIGRpc3Bvc2l0aW9uIGZpZWxkcy4nOwokbGFuZ1sndGl0bGVfZGVzdGluYXRpb25fcGFnZSddID0gJ0Rlc3RpbmF0aW9uc3NpZGEnOwokbGFuZ1sndGl0bGVfcmVxdWlyZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBGaWVsZG5hbWVzJzsKJGxhbmdbJ3RpdGxlX3JlcXVpcmVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSBhIG5hbWU/JzsKJGxhbmdbJ3RpdGxlX3VuaXF1ZV9maWVsZG5hbWVzJ10gPSAnUmVxdWlyZSBVbmlxdWUgRmllbGRuYW1lcyc7CiRsYW5nWyd0aXRsZV91bmlxdWVfZmllbGRuYW1lc19sb25nJ10gPSAnUmVxdWlyZSBmaWVsZHMgdG8gaGF2ZSB1bmlxdWUgbmFtZXM/JzsKJGxhbmdbJ3RpdGxlX3Jlb3JkZXJfZm9ybSddID0gJ09tZ3J1cHBlcmEgZiZhdW1sO2x0JzsKJGxhbmdbJ3RpdGxlX2xvYWRfdGVtcGxhdGUnXSA9ICdMYWRkYSBtYWxsJzsKJGxhbmdbJ3RpdGxlX2FkZF9idXR0b25fdGV4dCddID0gJ0wmYXVtbDt0dCc7CiRsYW5nWyd0aXRsZV9kZWxfYnV0dG9uX3RleHQnXSA9ICdEZWxldGUgQnV0dG9uIHRleHQnOwokbGFuZ1sndGl0bGVfc3RyaW5nX29yX251bWJlcl9ldmFsJ10gPSAnSW50ZXJwcmV0IHZhcmlhYmxlcyBhcyBiZWluZyBudW1iZXJzIG9yIHN0cmluZ3MnOwokbGFuZ1sndGl0bGVfb3JkZXInXSA9ICdJbnRlcnByZXRhdGlvbiBPcmRlcic7CiRsYW5nWyd0aXRsZV9vcmRlcl9oZWxwJ10gPSAnSWYgbW9yZSB0aGFuIG9uZSBDb21wdXRlZCBGaWVsZCBleGlzdHMsIHRoZXkgd2lsbCBiZSBjb21wdXRlZCBmcm9tIGxvd2VzdCBvcmRlciBudW1iZXIgdG8gaGlnaGVzdCBvcmRlciBudW1iZXInOwokbGFuZ1sndGl0bGVfY29tcHV0ZV92YWx1ZSddID0gJ1ZhbHVlIHRvIGNvbXB1dGUnOwokbGFuZ1sndGl0bGVfc3RyaW5nJ10gPSAnU3RyJmF1bWw7bmcnOwokbGFuZ1sndGl0bGVfbnVtZXJpYyddID0gJ051bWVyaXNrJzsKJGxhbmdbJ3RpdGxlX2lubGluZV9mb3JtJ10gPSAnRGlzcGxheSBmb3JtIGlubGluZT8nOwokbGFuZ1sndGl0bGVfaW5saW5lX2Zvcm1faGVscCddID0gJ0lubGluZSBtZWFucyBhbnkgZm9ybSBmb2xsb3d1cCByZXBsYWNlcyB0aGUge2Ntc19tb2R1bGV9IHRhZywgbm9uLWlubGluZSByZXBsYWNlcyB0aGUge2NvbnRlbnR9IHRhZy4nOwokbGFuZ1sndGl0bGVfZmllbGRfZGVmYXVsdF92YWx1ZSddID0gJ0RlZmF1bHQgdmFsdWUgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2NsZWFyX2RlZmF1bHQnXSA9ICdDbGVhciBkZWZhdWx0IG9uIGNsaWNrPyc7CiRsYW5nWyd0aXRsZV9jbGVhcl9kZWZhdWx0X2hlbHAnXSA9ICdDaGVjayB0aGlzIHRvIGNsZWFyIHRoZSBkZWZhdWx0IHZhbHVlIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHRoaXMgZmllbGQuIFNpbmNlIHRoaXMgdXNlcyBhIGphdmFzY3JpcHQgc3RyaW5nIGNvbXBhcmUsIGl0IHdpbGwgZmFpbCBpZiB5b3UgcHV0IHNpbmdsZSBxdW90ZXMgaW4geW91ciBkZWZhdWx0IHRleHQuIE90aGVyIHVuLWphdmFzY3JpcHQtZnJpZW5kbHkgY2hhcmFjdGVycyBtYXkgYWxzbyBjYXVzZSBpdCB0byBmYWlsLic7CiRsYW5nWyd0aXRsZV9yZW1vdmVfZmlsZV9mcm9tX3NlcnZlciddID0gJ0RlbGV0ZSB1cGxvYWRlZCBmaWxlIGZyb20gc2VydmVyIGFmdGVyIHByb2Nlc3NpbmcgKGVtYWlsIGRpc3Bvc2l0aW9ucyknOwokbGFuZ1sndGl0bGVfZmllbGRfamF2YXNjcmlwdCddID0gJ0phdmFzY3JpcHQgZm9yIGZpZWxkJzsKJGxhbmdbJ3RpdGxlX2ZpZWxkX2phdmFzY3JpcHRfbG9uZyddID0gJ01ha2UgdGhpcyB0aGUgY29tcGxldGUgSmF2YXNjcmlwdCBjYWxsLCBpbmNsdWRpbmcgdGhlIGV2ZW50IHlvdSB3YW50IHRvIHRyYXAsIGUuZy4sIG9uY2xpY2s9JnF1b3Q7eW91cmZuKCkmcXVvdDsnOwokbGFuZ1sndGl0bGVfc3VibWl0X2phdmFzY3JpcHQnXSA9ICdGb3JtIFN1Ym1pc3Npb24gSmF2YXNjcmlwdCc7CiRsYW5nWyd0aXRsZV9zdWJtaXRfamF2YXNjcmlwdF9sb25nJ10gPSAnTWFrZSB0aGlzIHRoZSBjb21wbGV0ZSBKYXZhc2NyaXB0IGNhbGwsIGluY2x1ZGluZyB0aGUgZXZlbnQgeW91IHdhbnQgdG8gdHJhcCwgZS5nLiwgb25jbGljaz0mcXVvdDt5b3VyZm4oKSZxdW90Oy48YnIgLz5UaGlzIHdpbGwgcHJvYmFibHkgbm90IHdvcmsgd2VsbCBpZiB5b3UgdXNlIHRoZSAmcXVvdDtzYWZldHkgc2NyaXB0JnF1b3Q7IG9wdGlvbiBhYm92ZS4nOwokbGFuZ1snZW1haWxfZnJvbV9hZGRyX2hlbHAnXSA9ICdEbyBub3QganVzdCBwaWNrIGEgcmFuZG9tIGFkZHJlc3MgaGVyZSAtLSBtYW55IElTUHMgd2lsbDxiciAvPm5vdCBkZWxpdmVyIHRoZSBtYWlsIGlmIHlvdSBhcmUgdXNpbmcgYSBkaWZmZXJlbnQgZG9tYWluIG5hbWUgdGhhbiB5b3VyIGFjdHVhbDxiciAvPmhvc3QgbmFtZSAoaS5lLiwgdXNlIHNvbWV0aGluZyBsaWtlIG5hbWVAJXMpJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZCddID0gJ05lZWQgbW9yZSBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9iYXNpYyddID0gJ1RvbyBtYW55IGNvbmZ1c2luZyBmaWVsZCB0eXBlcz8gJzsKJGxhbmdbJ3RpdGxlX3N3aXRjaF9hZHZhbmNlZF9saW5rJ10gPSAnU2tpZnRhIHRpbGwgYXZhbmNlcmF0IGwmYXVtbDtnZSc7CiRsYW5nWyd0aXRsZV9zd2l0Y2hfYmFzaWNfbGluayddID0gJ1NraWZ0YSB0aWxsIGF2YW5jZXJhdCBsJmF1bWw7Z2UnOwokbGFuZ1sndGl0bGVfZmlsZV9yb290J10gPSAnRGlyZWN0b3J5IHRvIHNhdmUgZmlsZSBpbic7CiRsYW5nWyd0aXRsZV9maWxlX3Jvb3RfaGVscCddID0gJ1RoaXMgbmVlZHMgdG8gYmUgYSBkaXJlY3RvcnkgdGhhdCB5b3VyIHdlYiBzZXJ2ZXIgaGFzIHBlcm1pc3Npb25zIHRvIHdyaXRlIGluLjxiciAvPkNobW9kIGl0IDc3NyBpZiB5b3UgaGF2ZSBwcm9ibGVtcy9kb3VidHMuPGJyIC8+QWxzbywgY2hlY2sgdG8gc2VlIHRoYXQgeW91IGRvIG5vdCBoYXZlIFBIUCBkaXJlY3RvcnkgcmVzdHJpY3Rpb25zLic7CiRsYW5nWyd0aXRsZV9uZXdsaW5lX3JlcGxhY2VtZW50J10gPSAnTmV3bGluZS9DYXJyaWFnZSBSZXR1cm4gcmVwbGFjZW1lbnQgY2hhcmFjdGVyJzsKJGxhbmdbJ3RpdGxlX25ld2xpbmVfcmVwbGFjZW1lbnRfaGVscCddID0gJ0xlYXZlIGJsYW5rIHRvIGFsbG93IG5ld2xpbmVzIGFuZCBjYXJyaWFnZSByZXR1cm5zIGluIG91dHB1dCc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5J10gPSAnU2VuZCBVc2VyIGEgQ29weSBvZiBTdWJtaXNzaW9uPyc7CiRsYW5nWyd0aXRsZV9zZW5kX3VzZXJjb3B5X2xhYmVsJ10gPSAnTGFiZWwgZm9yIENoZWNrYm94IChpZiB1c2VyIGNob2ljZSknOwokbGFuZ1sndGl0bGVfc2VuZF9tZV9hX2NvcHknXSA9ICdTZW5kIG1lIGEgY29weSBvZiBmb3JtJzsKJGxhbmdbJ29wdGlvbl9uZXZlciddID0gJ0FsZHJpZyc7CiRsYW5nWydvcHRpb25fdXNlcl9jaG9pY2UnXSA9ICdHZSBiZXMmb3VtbDtrYXJlbiBldHQgdmFsIChjaGVja2JveCknOwokbGFuZ1snb3B0aW9uX2Fsd2F5cyddID0gJ0FsbHRpZCc7CiRsYW5nWydlcnJvcl9jYXRhbG9nZXJfbW9kdWxlX25vdF9hdmFpbGFibGUnXSA9ICc8c3Ryb25nPkNhdGFsb2dlciBtb2R1bGVuIGRvZXMgbm90IHNlZW0gdG8gYmUgaW5zdGFsbGVkL2FjdGl2ZS48L3N0cm9uZz4nOwokbGFuZ1snd2FybmluZyddID0gJ1ZBUk5JTkchJzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGUnXSA9ICdGJm91bWw7cnZhbGQgbWFsbCc7CiRsYW5nWyd0YWJsZV9sZWZ0X3RlbXBsYXRlJ10gPSAnVGFiZWxsbWFsbCwgdGl0bGFyIHRpbGwgdiZhdW1sO25zdGVyJzsKJGxhbmdbJ3RhYmxlX3RvcF90ZW1wbGF0ZSddID0gJ1RhYmVsbG1hbGwsIHRpdGxhciAmb3VtbDt2ZXIgZiZhdW1sO2x0JzsKJGxhbmdbJ2Zvcm1fdGVtcGxhdGVfbmFtZSddID0gJ01hbGwgZnImYXJpbmc7biAlcyc7CiRsYW5nWyd0ZW1wbGF0ZV9hcmVfeW91X3N1cmUnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gb3ZlcndyaXRlIHlvdXIgdGVtcGxhdGUgd2l0aCB0aGUgc2VsZWN0ZWQgdGVtcGxhdGU/IChFdmVuIGlmIHlvdSBzYXkgT0ssIHlvdSB3aWxsIHN0aWxsIG5lZWQgdG8gc2F2ZSB0aGUgY2hhbmdlKSc7CiRsYW5nWyd0aXRsZV9iYWRfZnVuY3Rpb24nXSA9ICdFcnJvciB3aGVuIGNvbXB1dGluZyAmcXVvdDslcyZxdW90Oy4nOwokbGFuZ1snbm9fcmVmZXJyZXJfaW5mbyddID0gJ05vIEhUVFBfUkVGRVJFUiBpbmZvIGF2YWlsYWJsZSAocHJvYmFibHkgZHVlIHRvIHVzZSBvZiBVc2VyIEVtYWlsIFZhbGlkYXRpb24pJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcGFyYW1fZXJyb3InXSA9ICdWYWxpZGF0aW9uIFBhcmFtZXRlciBFcnJvci4gUGxlYXNlIG1ha2Ugc3VyZSB5b3UgY29weSB0aGUgVVJMIGZyb20geW91ciBlbWFpbCBjb3JyZWN0bHkhJzsKJGxhbmdbJ3ZhbGlkYXRpb25fcmVzcG9uc2VfZXJyb3InXSA9ICdWYWxpZGF0aW9uIFJlcHNvbnNlIEVycm9yLiBQbGVhc2UgbWFrZSBzdXJlIHlvdSBjb3B5IHRoZSBVUkwgZnJvbSB5b3VyIGVtYWlsIGNvcnJlY3RseSEnOwokbGFuZ1sndmFsaWRhdGlvbl9ub19maWVsZF9lcnJvciddID0gJ1ZhbGlkYXRpb24gUmVwc29uc2UgRXJyb3IuIE5vIGVtYWlsIHZhbGlkYXRpb24gZmllbGQgaW4gdGhpcyBmb3JtISc7CiRsYW5nWyd1cGdyYWRlMDN0bzA0J10gPSAnRm9ybSBUZW1wbGF0ZSB3YXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgdGhlIHZlcnNpb24gMC4zIHRvIHZlcnNpb24gMC40IHVwZ3JhZGUuIFlvdSBtYXkgbmVlZCB0byBtYWtlIHNvbWUgZml4ZXMuIElmIHlvdSYjMDM5O3JlIHVzaW5nIHRoZSBkZWZhdWx0IGZvcm0sIHNpbXBseSByZXBsYWNlIHRoaXMgdGVtcGxhdGUgd2l0aCAmcXVvdDtkZWZhdWx0JnF1b3Q7IHVzaW5nIHRoZSBwdWxsZG93biBhYm92ZS4nOwokbGFuZ1snYWRtaW5kZXNjJ10gPSAnQWRkLCBlZGl0IGFuZCBtYW5hZ2UgaW50ZXJhY3RpdmUgRm9ybXMnOwokbGFuZ1snb3BlcmF0b3JzX2hlbHAnXSA9ICdJZiB5b3UgdXNlIFN0cmluZyBldmFsdWF0aW9uLCB0aGUgb25seSBvcGVyYXRpb24gYXZhaWxhYmxlIGlzIGNvbmNhdGVuYXRpb24gKCspLCB3aGlsZSBpZiB5b3UgdXNlIE51bWJlciBldmFsdWF0aW9uIHlvdSBoYXZlIGJhc2ljLCB2ZXJ5IHNpbXBsZSBtYXRoICgsICssIC0sICosIC8sICkuJzsKJGxhbmdbJ2RhdGVfamFudWFyeSddID0gJ0phbnVhcmknOwokbGFuZ1snZGF0ZV9mZWJydWFyeSddID0gJ0ZlYnJ1YXJpJzsKJGxhbmdbJ2RhdGVfbWFyY2gnXSA9ICdNYXJzJzsKJGxhbmdbJ2RhdGVfYXByaWwnXSA9ICdBcHJpbCc7CiRsYW5nWydkYXRlX21heSddID0gJ01haic7CiRsYW5nWydkYXRlX2p1bmUnXSA9ICdKdW5pJzsKJGxhbmdbJ2RhdGVfanVseSddID0gJ0p1bGknOwokbGFuZ1snZGF0ZV9hdWd1c3QnXSA9ICdBdWd1c3RpJzsKJGxhbmdbJ2RhdGVfc2VwdGVtYmVyJ10gPSAnU2VwdGVtYmVyJzsKJGxhbmdbJ2RhdGVfb2N0b2JlciddID0gJ09rdG9iZXInOwokbGFuZ1snZGF0ZV9ub3ZlbWJlciddID0gJ05vdmVtYmVyJzsKJGxhbmdbJ2RhdGVfZGVjZW1iZXInXSA9ICdEZWNlbWJlcic7CiRsYW5nWydzdWJtaXNzaW9uX2Vycm9yJ10gPSAnTGVkc2VuISBEZXQgdXBwc3RvZCBldHQgZmVsIGQmYXJpbmc7IGRpdHQgZm9ybXVsJmF1bWw7ciBoYW50ZXJhZGVzJzsKJGxhbmdbJ3N1Ym1pdF9lcnJvciddID0gJ0Zvcm1CdWlsZGVyIHN1Ym1pdCBlcnJvcjogJXMnOwokbGFuZ1sndXBsb2Fkc19lcnJvciddID0gJ0Vycm9yIGNvbW1pdHRpbmcgZmlsZSB0byB0aGUgdXBsb2FkcyBtb2R1bGU6ICVzJzsKJGxhbmdbJ25vdXBsb2Fkc19lcnJvciddID0gJ0t1bmRlIGludGUgaGl0dGEgbW9kdWxlbiBVcGxvYWRzJzsKJGxhbmdbJ3VwbG9hZF9hdHRhY2hfZXJyb3InXSA9ICdVcGxvYWQvQXR0YWNobWVudCBlcnJvciBvbiBmaWxlICVzICh0bXBfbmFtZTogJXMsIG9mIHR5cGUgJXMpJzsKJGxhbmdbJ3N1Ym1pc3Npb25fZXJyb3JfZmlsZV9sb2NrJ10gPSAnRXR0IGZlbCBoYXIgdXBwc3QmYXJpbmc7dHQhIEt1bmRlIGludGUgb3JkbmEgbCZhcmluZztzbmluZyBwJmFyaW5nOyBmaWxlbi4nOwokbGFuZ1sndW5jaGVja2VkX2J5X2RlZmF1bHQnXSA9ICdEZWZhdWx0OiB1bmNoZWNrZWQnOwokbGFuZ1snY2hlY2tlZF9ieV9kZWZhdWx0J10gPSAnRGVmYXVsdDogY2hlY2tlZCc7CiRsYW5nWydlbWFpbF9kZWZhdWx0X3RlbXBsYXRlJ10gPSAnRm9ybUJ1aWxkZXIgU3VibWlzc2lvbic7CiRsYW5nWydlbWFpbF90ZW1wbGF0ZV9ub3Rfc2V0J10gPSAnPGJyLz5FbWFpbCBUZW1wbGF0ZSBub3QgeWV0IHNldCEnOwokbGFuZ1snbWlzc2luZ19jbXNfbWFpbGVyJ10gPSAnRm9ybUJ1aWxkZXI6IENhbm5vdCBmaW5kIHJlcXVpcmVkIG1vZHVsZSBDTVNNYWlsZXIhJzsKJGxhbmdbJ3VzZXJfYXBwcm92ZWRfc3VibWlzc2lvbiddID0gJ1VzZXIgYXBwcm92ZWQgc3VibWlzc2lvbiAlcyBmcm9tICVzJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkJzsKJGxhbmdbJ2V2ZW50X2luZm9fT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJ0V2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQnOwokbGFuZ1snZXZlbnRfaW5mb19PbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknXSA9ICdFdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgZGlzcGxheWVkJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXQnXSA9ICc8cD5FdmVudCB0cmlnZ2VyZWQgd2hlbiBhIEZvcm1CdWlsZGVyIGZvcm0gaXMgc3VibWl0dGVkLjwvcD4NCjxoND5QYXJhbWV0ZXJzPC9oND4NCjx1bD4NCjxsaT48ZW0+Zm9ybV9uYW1lPC9lbT4gLSBUaGUgZm9ybSBuYW1lIChzdHJpbmcpPC9saT4NCjxsaT48ZW0+Zm9ybV9pZDwvZW0+IC0gVGhlIGludGVybmFsIGZvcm0gaWQgKGludCk8L2xpPg0KPGxpPjxlbT52YWx1ZV88bmFtZT48L2VtPiAtIFN1cHBseSBhIGRlZmF1bHQgdmFsdWUgdG8gYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L2xpPg0KPC91bD4gJzsKJGxhbmdbJ2V2ZW50X2hlbHBfT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvciddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCBpZiB0aGVyZSBpcyBhbiBlcnJvciB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBzdWJtaXR0ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjxsaT48ZW0+ZXJyb3I8L2VtPiAtIEEgbGlzdCBvZiBhbGwga25vd24gZXJyb3JzIChzdHJpbmcpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydldmVudF9oZWxwX09uRm9ybUJ1aWxkZXJGb3JtRGlzcGxheSddID0gJzxwPkV2ZW50IHRyaWdnZXJlZCB3aGVuIGEgRm9ybUJ1aWxkZXIgZm9ybSBpcyBkaXNwbGF5ZWQ8L3A+DQo8aDQ+UGFyYW1ldGVyczwvaDQ+DQo8dWw+DQo8bGk+PGVtPmZvcm1fbmFtZTwvZW0+IC0gVGhlIGZvcm0gbmFtZSAoc3RyaW5nKTwvbGk+DQo8bGk+PGVtPmZvcm1faWQ8L2VtPiAtIFRoZSBpbnRlcm5hbCBmb3JtIGlkIChpbnQpPC9saT4NCjwvdWw+ICc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcmVzcG9uc2VfaWQnXSA9ICdSZXNwb25zSUQuIEFudiZhdW1sO25kcyBhdiBGb3JtQnJvd3Nlcic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfcGFzc2VkX2Zyb21fdGFnJ10gPSAnRiZvdW1sO3J2YWxkYSBmJmF1bWw7bHR2JmF1bWw7cmRlbjsgc2UgaGomYXVtbDtscGVuIGYmb3VtbDtyIGRlbiBoJmF1bWw7ciBtb2R1bGVuJzsKJGxhbmdbJ2Zvcm1idWlsZGVyX3BhcmFtc19maWVsZF9pZCddID0gJ0YmYXVtbDtsdElEIGYmb3VtbDtyIGludGVybiBoYW50ZXJpbmcnOwokbGFuZ1snZm9ybWJ1aWxkZXJfcGFyYW1zX2Zvcm1fbmFtZSddID0gJ0Zvcm11bCZhdW1sO3JzbmFtbic7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZm9ybV9pZCddID0gJ0Zvcm11bCZhdW1sO3JzSUQgZiZvdW1sO3IgaW50ZXJuIGhhbnRlcmluZyc7CiRsYW5nWydmb3JtYnVpbGRlcl9wYXJhbXNfZ2VuZXJhbCddID0gJ0FsbG0mYXVtbDtuYSBwYXJhbWV0cmFyIGYmb3VtbDtyIGludGVybiBoYW50ZXJpbmcnOwokbGFuZ1sndGVtcGxhdGVfdmFyaWFibGVfaGVscCddID0gJzxoMz5Gb3JtIFRlbXBsYXRlIFZhcmlhYmxlczwvaDM+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+DQo8cD5UaGUgZmluYWwgcmVsZWFzZSB3aWxsIGluY2x1ZGUgYnVnIGZpeGVzLCBkb2N1bWVudGF0aW9uLCBhbmQgdW5jb25kaXRpb25hbCBsb3ZlLjwvcD4NCjxoMz5TdXBwb3J0PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4NCjx1bD4NCjxsaT5Gb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLCBGQVFzLCBvciB0byBmaWxlIGEgQnVnIFJlcG9ydCwgcGxlYXNlIHZpc2l0IHRoZSBDTVMgTWFkZSBTaW1wbGUgIDxhIGhyZWY9Imh0dHA6Ly9kZXYuY21zbWFkZXNpbXBsZS5vcmciPkRldmVsb3BlciBGb3JnZTwvYT4uPC9saT4NCjxsaT5UbyBvYnRhaW4gY29tbWVyY2lhbCBzdXBwb3J0LCBwbGVhc2Ugc2VuZCBhbiBlbWFpbCB0byB0aGUgYXV0aG9yIGF0IDxhIGhyZWY9Im1haWx0bzpzamdAY21zbW9kdWxlcy5jb20iPjxzamdAY21zbW9kdWxlcy5jb20+PC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPGxpPlRoZSBhdXRob3IgY2FuIG9mdGVuIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJpcmM6Ly9pcmMuZnJlZW5vZGUubmV0LyNjbXMiPkNNUyBJUkMgQ2hhbm5lbDwvYT4uPC9saT4NCjxsaT5MYXN0bHksIHlvdSBtYXkgaGF2ZSBzb21lIHN1Y2Nlc3MgZW1haWxpbmcgdGhlIGF1dGhvciBkaXJlY3RseSBhbmQgZ3JvdmVsbGluZyBmb3IgZnJlZSBzdXBwb3J0LjwvbGk+DQo8L3VsPg0KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0DQpvZiB0aGUgbGljZW5zZSBmb3IgdGhlIGZ1bGwgZGlzY2xhaW1lci48L3A+DQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwNywgU2FtdWVsIEdvbGRzdGVpbiA8YSBocmVmPSJtYWlsdG86c2pnQGNtc21vZHVsZXMuY29tIj48c2pnQGNtc21vZHVsZXMuY29tPjwvYT4uIEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4NCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+JzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJzx1bD4NCjxsaT5WZXJzaW9uIDAuNA0KCTx1bD4NCgkJPGxpPlVwcGVkIG1pbmltdW0gQ01TIHZlcnNpb24gdG8gMS4xPC9saT4NCgkJPGxpPk51bWVyb3VzIEJ1ZyBmaXhlczsgdG9vIG1hbnkgdG8gZW51bWVyYXRlIGhlcmU8L2xpPg0KCQk8bGk+TWFzc2l2ZSByZWppZ2dlcmluZyBvZiBjb2RlIHRvIHdvcmsgd2l0aCBDTVMgTVMgMS4xIHBhcmFtZXRlciBzYW5pdGl6aW5nIHJlZ2ltZTwvbGk+DQoJCTxsaT5BZGRlZCBmaWVsZCB0eXBlczogJnF1b3Q7VGV4dEZpZWxkIChNdWx0aXBsZSkmcXVvdDsgYW5kICZxdW90O0NvbXB1dGVkIEZpZWxkJnF1b3Q7PC9saT4NCgkJPGxpPkFkZGVkIGRpc3Bvc2l0aW9uczogJnF1b3Q7U2F2ZSBSZXN1bHRzIHRvIEZpbGUgQmFzZWQgb24gUHVsbGRvd24mcXVvdDsgYW5kICZxdW90O1NhdmUgUmVzdWx0cyB0byBGaWxlKHMpIEJhc2VkIG9uIE11bHRpcGxlIFNlbGVjdGlvbnMmcXVvdDsoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBuZWF0LW8gQUpBWC15IHRlbXBsYXRlLWNvcHlpbmcgZm9yIEZvcm0gVGVtcGxhdGVzLCBnYXZlIHZlcnNpb25zIG9mIG9sZCB0YWJsZS1iYXNlZCB0ZW1wbGF0ZXMgdG8gc29vdGhlIHRoZSByYWdpbmcgbWFzc2VzLjwvbGk+DQoJCTxsaT5BZGRlZCBhYmlsaXR5IHRvIHBhc3MgZGVmYXVsdCB2YWx1ZXMgdG8gZm9ybSBlbGVtZW50cyBmcm9tIG1vZHVsZSB0YWcgdXNpbmcgdmFsdWVfRklFTEROQU1FPSZxdW90O3ZhbHVlJnF1b3Q7IHN5bnRheCAoQ2FsZ3V5KTwvbGk+DQoJCTxsaT5BZGRlZCBvcHRpb24gdG8gZGlzcGxheSBmaWVsZCBpZHMgaW4gYWRtaW4gKENhbGd1eSk8L2xpPg0KCTwvdWw+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4zDQogICA8dWw+DQogICAgICA8bGk+QWRkZWQgQ2FwdGNoYSBtb2R1bGUgc3VwcG9ydC48L2xpPg0KICAgICAgPGxpPlJld29ya2VkIGxhYmVsaW5nIG9mIGZvcm0gZWxlbWVudHMgdG8gYmUgWEhUTUwgY29tcGxpYW50PC9saT4NCiAgICAgIDxsaT5BZGRlZCBQYXVsIE5vb25lJiMwMzk7cyBuZXcsIGltcHJvdmVkIGNvbnRhY3QgZm9ybSB0ZW1wbGF0ZXM8L2xpPg0KICAgICAgPGxpPkltcGxlbWVudGF0aW9uIG9mIEVtYWlsIFN1YmplY3QgRmllbGQ8L2xpPg0KICAgICAgPGxpPkFkZGVkIGFkbWluLXNwZWNpZmlhYmxlIHZhbHVlcyB0byBoaWRkZW4gZmllbGQgdHlwZSwgd2hpY2ggbWF5IGNvbnRhaW4gcGFyc2FibGUgc21hcnR5IHRhZ3M8L2xpPg0KICAgICAgPGxpPlRleHQgQXJlYSBGaWVsZCBub3cgYWxsb3dzIHNwZWNpZmljYXRpb24gb2Ygcm93cyBhbmQgY29scyBpbiB0aGUgYWRtaW4sIGluc3RlYWQgb2YgQ1NTPC9saT4NCiAgICAgIDxsaT5BZGRlZCBEcmFnJiMwMzk7biYjMDM5O0Ryb3AgcmVvcmRlcmluZyBvZiBmb3JtIGZpZWxkcy48L2xpPg0KICAgICAgPGxpPkFkZGVkIG5vbi1ibGFuayBmaWVsZCBuYW1lIGFuZCB1bmlxdWUgZmllbGQgbmFtZSBnbG9iYWwgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCB2YWxpZGF0aW9uPC9saT4NCiAgICAgIDxsaT5JbXBsZW1lbnRlZCB0ZW1wbGF0ZWQgZGlzcGxheSBvZiBmb3JtIHJlc3VsdHMgdXBvbiBzdWJtaXNzaW9uIGluIGFkZGl0aW9uIHRvIHBhZ2UgcmVkaXJlY3Rpbmc8L2xpPg0KICAgICAgPGxpPjwvbGk+DQogICA8L3VsPg0KPC9saT4NCjxsaT5WZXJzaW9uIDAuMi40IC0gMDkgTWF5IDIwMDcNCiAgIDxwPkJpZyByZWxlYXNlOjx1bD4NCiAgIDxsaT5BZGRlZCAmcXVvdDtFbWFpbCBGb3JtIHRvIFVzZXItU3VwcGxpZWQgQWRkcmVzcyZxdW90OyBkaXNwb3NpdGlvbi48L2xpPg0KICAgPGxpPkFkZGVkICZxdW90O1RpbWVQaWNrZXImcXVvdDsgZmllbGQgdHlwZS4gU3BsaXQgJnF1b3Q7TGluayZxdW90OyBmaWVsZCBpbnRvIGEgJnF1b3Q7VXNlci1zdXBwbGllZCBMaW5rJnF1b3Q7IGZpZWxkIGFuZCBhICZxdW90O1N0YXRpYyBMaW5rJnF1b3Q7IGZpZWxkLjwvbGk+DQogICA8bGk+QWRkZWQgSFRNTCBlbWFpbCBvcHRpb24gYW5kIGF1dG8tdGVtcGxhdGVzIGZvciBhbGwgZW1haWwgZGlzcG9zaXRpb25zLjwvbGk+DQogICA8bGk+QWRkZWQgcHJpbWl0aXZlIGFudGktc3BhbSBmZWF0dXJlcy48L2xpPg0KICAgPGxpPkFkZGVkIFhNTC1iYXNlZCBpbXBvcnQgYW5kIGV4cG9ydCBvZiBmb3Jtcy48L2xpPg0KICAgPC91bD4NCiAgIDwvcD4NCjwvbGk+DQo8bGk+VmVyc2lvbiAwLjIuMw0KICAgPHA+QWRkIHRoZSBhYmlsaXR5IHRvIGNhbGwgYSBzZWxlY3RhYmxlIHVzZXIgZGVmaW5lZCB0YWcgdXBvbiBkaXNwb3NpdGlvbiBvZiB0aGUgZm9ybS48L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yLjINCiAgIDxwPk1hbnkgdGhhbmtzIHRvIFV0dGVyIERlc2lnbiBmb3Igc3BvbnNvcmluZyBzb21lIGNoYW5nZXMgYW5kIGJ1Z2ZpeGVzLCB3aGljaCBpbmNsdWRlOg0KICAgPHVsPg0KICAgICAgPGxpPkFkZGVkIGZpbGUgdXBsb2FkIGNhcGFiaWxpdGllcyB0byB0aGUgZW1haWwgZGlzcG9zaXRpb248L2xpPg0KICAgICAgPGxpPkFkZCBQYWdlU2V0U3RhcnQgYW5kIFBhZ2VTZXRFbmQgZmllbGQgdHlwZXMNCiAgICAgIDxwPlRoZXNlIGZpZWxkIHR5cGVzIGFsbG93IHlvdSB0byBjcmVhdGUgZmllbGRzZXRzIGluIHlvdXIgZm9ybSwgYW5kIG9yZ2FuaXNlDQogICAgICB5b3VyIGZpZWxkcyBsb2dpY2FsbHkgZm9yIHRoZSB1c2VyLiAgWW91IGNhbiBldmVuIG5lc3QgZmllbGRzZXRzLCBhbmQNCiAgICAgIGFzc29jaWF0ZSBhIHN0eWxlIHdpdGggdGhlbSBhcHByb3ByaWF0ZWx5LiAgVGhlIGRlZmF1bHQgdGVtcGxhdGUgd2FzIGNoYW5nZWQNCiAgICAgIHRvIHByZXZlbnQgaXQgZnJvbSB3cmFwcGluZyBhIGRpdiBhcm91bmQgdGhlc2UgdHlwZXMgb2YgZmllbGRzLg0KICAgICAgPC9wPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT5GaXhlZCBhIHByb2JsZW0gd2l0aCBEQVRFVElNRSBmaWVsZHMgb24gaW5zdGFsbA0KICAgICAgPHA+VGhpcyBzb2x2ZXMgYSBwcm9ibGVtIHdoZW4gb24gaW5zdGFsbCB0aGUgcmVzcG9uc2UgdGFibGUgd291bGQgc29tZXRpbWVzIG5vdCBnZXQgY3JlYXRlZCB3aGVuIHVzaW5nIGFkb2RiIGxpdGU8L2xpPg0KICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8L3A+DQo8L2xpPg0KPGxpPlZlcnNpb24gMC4yIC0gMTQgTm92ZW1iZXIgMjAwNi4gQ2FsZ3V5ICZhbXA7IHRzdyYjMDM5O3MgYnVnIGZpeGVzIGZvciBmaWVsZCByZS1vcmRlcmluZyBhbmQgY3VzdG9tIHRlbXBsYXRlcy4gQWRkaXRpb25hbCBidWcgZml4ZXMgZm9yIGZpZWxkIGxhYmVscy48L2xpPg0KPGxpPlZlcnNpb24gMC4xIC0gOCBKdWx5IDIwMDYuIEluaXRpYWwgUmVsZWFzZTwvbGk+DQo8L3VsPg0KJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMTkxMTE4NDk3MjUxNzIyNjIwMC4xMjEzNDM4OTA4LjEyMjI4MzUyODUuMTIyMjgzNzcwNy40MTAnOwokbGFuZ1sndXRteiddID0gJzE1Njg2MTM1My4xMjIyODIwMzYzLjQwOC41Ny51dG1jc3I9ZGV2LmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9Lyc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTIyMjgzNzcwNyc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyogCiAgIEZvcm1CdWlsZGVyLiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTYW11ZWwgR29sZHN0ZWluIDxzamdAY21zbW9kdWxlcy5jb20+CiAgIE1vcmUgaW5mbyBhdCBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL2Zvcm1idWlsZGVyCiAgIAogICBBIE1vZHVsZSBmb3IgQ01TIE1hZGUgU2ltcGxlLCBDb3B5cmlnaHQgKGMpIDIwMDcgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQogIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiovCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7CgkJJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoJCSRmbGRzID0gIgoJCQlmb3JtX2lkIEkgS0VZLAoJCQluYW1lIEMoMjU1KSwKCQkJYWxpYXMgQygyNTUpCgkJIjsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fc2VxJyk7CgkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm0gKGFsaWFzKScpOwoJCQoJCSRmbGRzID0gIgoJCQlmb3JtX2F0dHJfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDM1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2Zvcm1fYXR0cicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfc2VxJyk7CgkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtX2F0dHJfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybV9hdHRyIChmb3JtX2lkKScpOwoKCQkkZmxkcyA9ICIKCQkJZmllbGRfaWQgSSBLRVksCgkJCWZvcm1faWQgSSwKCQkJbmFtZSBDKDI1NSksCgkJCXR5cGUgQyg1MCksCgkJCXZhbGlkYXRpb25fdHlwZSBDKDUwKSwKCQkJcmVxdWlyZWQgSTEsCgkJCWhpZGVfbGFiZWwgSTEsCgkJCW9yZGVyX2J5IEkKCQkiOwoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9zZXEnKTsKCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkIChmb3JtX2lkKScpOwoKCgkJJGZsZHMgPSAiCgkJCW9wdGlvbl9pZCBJIEtFWSwKCQkJZmllbGRfaWQgSSwKCQkJZm9ybV9pZCBJLAoJCQluYW1lIEMoMjU1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2ZpZWxkX29wdCcsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfc2VxJyk7CgkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9maWVsZF9vcHRfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmllbGRfb3B0IChmaWVsZF9pZCxmb3JtX2lkKScpOwoKCQkkZmxkcyA9ICIKCQkJZmxvY2tfaWQgSSBLRVksCgkJCWZsb2NrIFQKCQkiOwoKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZmxvY2snLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX2lkIEkgS0VZLAoJCQlmb3JtX2lkIEksCgkJCWZldXNlcl9pZCBJLAoJCQl1c2VyX2FwcHJvdmVkICIuQ01TX0FET0RCX0RULiIsCgkJCXNlY3JldF9jb2RlIEMoMzUpLAoJCQlhZG1pbl9hcHByb3ZlZCAiLkNNU19BRE9EQl9EVC4iLAoJCQlzdWJtaXR0ZWQgIi5DTVNfQURPREJfRFQ7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3AnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX2F0dHJfaWQgSSBLRVksCgkJCXJlc3BfaWQgSSwKCQkJbmFtZSBDKDM1KSwKCQkJdmFsdWUgWAoJCSI7CgkJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3BfYXR0cicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9yZXNwX2F0dHJfc2VxJyk7CgoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3Jlc3Bfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlyZXNwX3ZhbF9pZCBJIEtFWSwKCQkJcmVzcF9pZCBJLAoJCQlmaWVsZF9pZCBJLAoJCQl2YWx1ZSBYCgkJIjsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWwnLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgoJCSRkYi0+Q3JlYXRlU2VxdWVuY2UoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfcmVzcF92YWxfc2VxJyk7CgoJCSRmbGRzID0gIgoJCQlzZW50X2lkIEkgS0VZLAoJCQlzcmNfaXAgQygxNiksCgkJCXNlbnRfdGltZSAiLkNNU19BRE9EQl9EVDsKCQkkc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfaXBfbG9nJywgJGZsZHMsICR0YWJvcHRhcnJheSk7CgkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX2lwX2xvZ19zZXEnKTsKCgkJJGZsZHMgPSAiCgkJCQlmYnJfaWQgSSBLRVksCgkJCQlmb3JtX2lkIEksCgkJCQlpbmRleF9rZXlfMSBDKDgwKSwKCQkJCWluZGV4X2tleV8yIEMoODApLAoJCQkJaW5kZXhfa2V5XzMgQyg4MCksCgkJCQlpbmRleF9rZXlfNCBDKDgwKSwKCQkJCWluZGV4X2tleV81IEMoODApLAoJCQkJcmVzcG9uc2UgWCwKCQkJCXVzZXJfYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJCXNlY3JldF9jb2RlIEMoMzUpLAoJCQkJYWRtaW5fYXBwcm92ZWQgIi5DTVNfQURPREJfRFQuIiwKCQkJCXN1Ym1pdHRlZCAiLkNNU19BRE9EQl9EVDsKCQkJCQoJCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3NlcicsICRmbGRzLCAkdGFib3B0YXJyYXkpOwoJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3Nlcl9zZXEnKTsKCQkkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2ZiX3VuaXF1ZWZpZWxkX3NlcScpOwoJCSRkYi0+RXhlY3V0ZSgnY3JlYXRlIGluZGV4ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXJfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXIgKGZvcm1faWQsaW5kZXhfa2V5XzEsaW5kZXhfa2V5XzIsaW5kZXhfa2V5XzMsaW5kZXhfa2V5XzQsaW5kZXhfa2V5XzUpJyk7CgoKCQkkdGhpcy0+Q3JlYXRlUGVybWlzc2lvbignTW9kaWZ5IEZvcm1zJywgJ01vZGlmeSBGb3JtcycpOwoKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybVN1Ym1pdCcgKTsKCQkkdGhpcy0+Q3JlYXRlRXZlbnQoICdPbkZvcm1CdWlsZGVyRm9ybURpc3BsYXknICk7CgkJJHRoaXMtPkNyZWF0ZUV2ZW50KCAnT25Gb3JtQnVpbGRlckZvcm1TdWJtaXRFcnJvcicgKTsKCQkKCQkvL2luY2x1ZGUgJ2luY2x1ZGVzL0Zvcm1CdWlsZGVyU2FtcGxlRGF0YS5pbmMnOwkKCQkkcGF0aCA9IGRpcm5hbWUoX19GSUxFX18pLicvaW5jbHVkZXMnOwoJCSRkaXI9b3BlbmRpcigkcGF0aCk7CiAgIAkJd2hpbGUgKCRmaWxlc3BlYz1yZWFkZGlyKCRkaXIpKQogICAJCQl7CiAgIAkJCSRwYXJhbXMgPSBhcnJheSgpOwogICAJCQkkYWVmb3JtID0gJyc7CiAgICAgICAJCWlmIChwcmVnX21hdGNoKCcvLnhtbCQvJywkZmlsZXNwZWMpID4gMCkKICAgICAgIAkJCXsKICAgICAgIAkJCSRwYXJhbXNbJ2ZicnBfeG1sX2ZpbGUnXSA9ICRwYXRoLicvJy4kZmlsZXNwZWM7CiAgICAgICAJCQkkYWVmb3JtID0gbmV3IGZiRm9ybSgkdGhpcywgJHBhcmFtcywgdHJ1ZSk7CgkJCQkkcmVzID0gJGFlZm9ybS0+SW1wb3J0WE1MKCRwYXJhbXMpOwogICAgICAgCQkJfQogICAgICAgCQl9CgoJCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cj8+Cg==]]></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+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfZmJfZm9ybWJyb3dzZXInLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCQkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl91bmlxdWVmaWVsZF9zZXEnKTsKCQkJJGRiLT5DcmVhdGVTZXF1ZW5jZShjbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9mYl9mb3JtYnJvd3Nlcl9zZXEnKTsKCQkJCQoJCQl9CgkJY2FzZSAiMC41IjoKCQljYXNlICIwLjUuMSI6CgkJY2FzZSAiMC41LjIiOgoJCWNhc2UgIjAuNS4zIjoKCQkJewoJCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZm9ybV9pZHggb24gJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm0gKGFsaWFzKScpOwoJCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZm9ybV9hdHRyX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZm9ybV9hdHRyIChmb3JtX2lkKScpOwoJCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZmllbGRfb3B0X2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZmllbGRfb3B0IChmaWVsZF9pZCxmb3JtX2lkKScpOwoJCQkkZGItPkV4ZWN1dGUoJ2NyZWF0ZSBpbmRleCAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCSdtb2R1bGVfZmJfZmllbGRfaWR4IG9uICcuY21zX2RiX3ByZWZpeCgpLgoJCQkJJ21vZHVsZV9mYl9maWVsZCAoZm9ybV9pZCknKTsKCQkJJGRiLT5FeGVjdXRlKCdjcmVhdGUgaW5kZXggJy5jbXNfZGJfcHJlZml4KCkuCgkJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyX2lkeCBvbiAnLmNtc19kYl9wcmVmaXgoKS4KCQkJCQknbW9kdWxlX2ZiX2Zvcm1icm93c2VyIChmb3JtX2lkLGluZGV4X2tleV8xLGluZGV4X2tleV8yLGluZGV4X2tleV8zLGluZGV4X2tleV80LCBpbmRleF9rZXlfNSknKTsKCQkJfQoJCX0KCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgo/Pg==]]></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[PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0Ke2xpdGVyYWx9DQovKiA8IVtDREFUQVsgKi8NCmZ1bmN0aW9uIGdldFRlbXBsYXRlKCkNCgl7CQkNCgl2YXIgc2VsZWN0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmJfdGVtcGxhdGVfbG9hZCcpOw0KCWlmIChzZWxlY3RvcikNCgkJew0KCQl2YXIgdGVtcGwgPSBzZWxlY3RvcltzZWxlY3Rvci5zZWxlY3RlZEluZGV4XS52YWx1ZTsNCg0KCQlpZiAodGVtcGwubGVuZ3RoID4gMCAmJiBjb25maXJtKCd7L2xpdGVyYWx9eyR0ZW1wbGF0ZV9hcmVfeW91X3N1cmV9e2xpdGVyYWx9JykpDQoJCQl7DQoJCQl2YXIgdXJsID0gJ3svbGl0ZXJhbH17JG1vZF9wYXRofXtsaXRlcmFsfSc7DQoJCQl2YXIgcGFycyA9ICd7L2xpdGVyYWx9eyRtb2RfcGFyYW19e2xpdGVyYWx9Jm0xX2ZicnBfdGlkPScrdGVtcGw7DQoJCQ0KCQkJdmFyIG15QWpheCA9IG5ldyBBamF4LlJlcXVlc3QoDQoJCQkJdXJsLCANCgkJCQl7DQoJCQkJCW1ldGhvZDogJ2dldCcsIA0KCQkJCQlwYXJhbWV0ZXJzOiBwYXJzLA0KCQkJCQlvbkZhaWx1cmU6IHJlcG9ydEVycm9yLA0KCQkJCQlvbkNvbXBsZXRlOiByZXBsYWNlVGVtcGxhdGUNCgkJCQl9KTsJCQ0KCQkJfQ0KCQl9DQoJfQ0KZnVuY3Rpb24gcmVwb3J0RXJyb3IocmVxdWVzdCkNCgl7DQoJCWFsZXJ0KCdTb3JyeS4gVGhlcmUgd2FzIGFuIGVycm9yLicpOw0KCX0NCg0KZnVuY3Rpb24gcmVwbGFjZVRlbXBsYXRlKG9yaWdpbmFsUmVxdWVzdCkNCgl7DQoJCS8vcHV0IHJldHVybmVkIHRlbXBsYXRlIGluIHRoZSB0ZXh0YXJlYQ0KCQkkKCdmYl9mb3JtX3RlbXBsYXRlJykudmFsdWUgPSBvcmlnaW5hbFJlcXVlc3QucmVzcG9uc2VUZXh0Ow0KCX0NCi8qIF1dPiAqLw0Key9saXRlcmFsfQ0KPC9zY3JpcHQ+DQp7aWYgJG1lc3NhZ2UgIT0gJyd9PGg0PnskbWVzc2FnZX08L2g0PnsvaWZ9DQp7JGZvcm1zdGFydH17JGZvcm1pZH17JGZiX2hpZGRlbn17JHRhYl9zdGFydH17JG1haW50YWJfc3RhcnR9DQo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX2Zvcm1fbWFpbn08L2xlZ2VuZD4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uYW1lfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9uYW1lfTwvcD4NCgk8L2Rpdj4NCg0Ke2lmICRhZGRpbmcgPT0gMH0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9zdGF0dXN9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+e2lmICRoYXNkaXNwb3NpdGlvbiA9PSAxfXskdGV4dF9yZWFkeX17ZWxzZX17JGxpbmtfbm90cmVhZHl9ey9pZn08L3A+DQoJPC9kaXY+DQp7L2lmfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX2FsaWFzfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9hbGlhc308L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fY3NzX2NsYXNzfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9jc3NfY2xhc3N9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9pbmxpbmVfZm9ybX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2lubGluZV9mb3JtfTwvcD4NCgk8L2Rpdj4NCjwvZmllbGRzZXQ+DQp7aWYgJGFkZGluZz09MH0NCjxmaWVsZHNldD48bGVnZW5kPnskdGl0bGVfZm9ybV9maWVsZHN9PC9sZWdlbmQ+DQoJe2lmICRmYXN0YWRkPT0xfQ0KCQk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zhc3RhZGR9PC9wPg0KCQkJPGRpdiBjbGFzcz0icGFnZWlucHV0Ij4NCgkJCQl7JGlucHV0X2Zhc3RhZGR9DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJey9pZn0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9maWVsZHN9PC9wPg0KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPg0KCQkJPHRhYmxlIGNsYXNzPSJtb2R1bGVfZmJfdGFibGUiPg0KCQkJCTx0aGVhZD48dHI+DQoJICAgICAgIAl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2lkKX0NCiAgICAgICAgICAgICAgICA8dGg+eyR0aXRsZV9maWVsZF9pZH08L3RoPg0KCQl7L2lmfQ0KICAgIAkJCQk8dGg+eyR0aXRsZV9maWVsZF9uYW1lfTwvdGg+DQogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2ZpZWxkX3R5cGV9PC90aD4NCiAgICAgICAge2lmIGlzc2V0KCR0aXRsZV9maWVsZF9hbGlhcyl9DQogICAgCQkJCTx0aD57JHRpdGxlX2ZpZWxkX2FsaWFzfTwvdGg+DQoJCXsvaWZ9DQogICAgICAgICAgICAgICAgCTx0aD57JHRpdGxlX2ZpZWxkX3JlcXVpcmVkX2FiYnJldn08L3RoPg0KICAgICAgICAgICAgICAgIAk8dGg+eyR0aXRsZV9pbmZvcm1hdGlvbn08L3RoPg0KICAgICAgICAgICAgICAgICAgICA8dGggY29sc3Bhbj0iMiI+eyR0aXRsZV9vcmRlcn08L3RoPg0KICAgICAgICAgICAgICAgICAgICA8dGg+Jm5ic3A7PC90aD48dGg+Jm5ic3A7PC90aD48L3RyPg0KCQkJCTwvdGhlYWQ+DQoJCQkJPHRib2R5Pg0KCQkJCXtmb3JlYWNoIGZyb209JGZpZWxkcyBpdGVtPWVudHJ5fQ0KCQkJCQk8dHIgY2xhc3M9InskZW50cnktPnJvd2NsYXNzfSIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc31ob3Zlcic7IiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0neyRlbnRyeS0+cm93Y2xhc3N9JzsiPg0KCQkJCXtpZiBpc3NldCgkdGl0bGVfZmllbGRfaWQpfQ0KCQkJCQk8dGQ+eyRlbnRyeS0+aWR9PC90ZD4NCgkJCQl7L2lmfQ0KCQkJCQk8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPg0KCQkJCQk8dGQ+eyRlbnRyeS0+dHlwZX08L3RkPg0KCQkJCQl7aWYgaXNzZXQoJHRpdGxlX2ZpZWxkX2FsaWFzKX0NCgkJCQkJCTx0ZD57JGVudHJ5LT5hbGlhc308L3RkPg0KCQkJCQl7L2lmfQ0KCQkJCQk8dGQ+eyRlbnRyeS0+ZGlzcG9zaXRpb259PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPmZpZWxkX3N0YXR1c308L3RkPg0KCQkJCQk8dGQ+eyRlbnRyeS0+dXB9PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPmRvd259PC90ZD4NCgkJCQkJPHRkPnskZW50cnktPmVkaXRsaW5rfTwvdGQ+DQoJCQkJCTx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+DQoJCQkJCTwvdHI+DQoJCQkJey9mb3JlYWNofQ0KICAgICAgICAgICAgICAgCTx0cj48dGQgY29sc3Bhbj0iOCIgY2xhc3M9InJvdzIiPiZuYnNwOzwvdGQ+PC90cj4NCiAgICAgICAgICAgICAgIAk8dHI+PHRkIGNvbHNwYW49IjgiIGNsYXNzPSJyb3cxIj57JGFkZF9maWVsZF9saW5rfSAmbmJzcDsgeyRvcmRlcl9maWVsZF9saW5rfTwvdGQ+PC90cj4NCgkJCQk8L3Rib2R5Pg0KICAgICAgICAgICAgPC90YWJsZT4NCiAgICAgICAgPC9kaXY+DQogICAgIDwvZGl2Pg0KPC9maWVsZHNldD4NCnsvaWZ9DQp7JHRhYl9lbmR9eyRzdWJtaXR0YWJfc3RhcnR9DQoJPGZpZWxkc2V0Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfc3VibWl0X2hlbHB9PC9wPg0KCTwvZGl2Pg0KCTwvZmllbGRzZXQ+DQo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX3N1Ym1pdF9hY3Rpb25zfTwvbGVnZW5kPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zdWJtaXRfYWN0aW9ufTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VibWl0X2FjdGlvbn08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3JlZGlyZWN0X3BhZ2V9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9yZWRpcmVjdF9wYWdlfTwvcD4NCgk8L2Rpdj4NCjwvZmllbGRzZXQ+DQo8ZmllbGRzZXQgY2xhc3M9Im1vZHVsZV9mYl9maWVsZHNldCI+PGxlZ2VuZD57JHRpdGxlX3N1Ym1pdF9sYWJlbHN9PC9sZWdlbmQ+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3N1Ym1pdF9idXR0b25fc2FmZXR5fTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc3VibWl0X2J1dHRvbl9zYWZldHl9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zdWJtaXRfamF2YXNjcmlwdH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3N1Ym1pdF9qYXZhc2NyaXB0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9zdWJtaXRfYnV0dG9ufTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9zdWJtaXRfYnV0dG9ufTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV9uZXh0X2J1dHRvbn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fbmV4dF9idXR0b259PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3ByZXZfYnV0dG9ufTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZm9ybV9wcmV2X2J1dHRvbn08L3A+DQoJPC9kaXY+DQo8L2ZpZWxkc2V0Pg0KeyR0YWJfZW5kfXskc3ltYm9sdGFiX3N0YXJ0fQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9mb3JtX3JlcXVpcmVkX3N5bWJvbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fcmVxdWlyZWRfc3ltYm9sfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZm9ybV91bnNwZWNpZmllZH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Zvcm1fdW5zcGVjaWZpZWR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9saXN0X2RlbGltaXRlcn06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xpc3RfZGVsaW1pdGVyfTwvcD4NCgk8L2Rpdj4NCgkNCnskdGFiX2VuZH17JGNhcHRjaGF0YWJfc3RhcnR9DQp7aWYgJGNhcHRjaGFfaW5zdGFsbGVkfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV91c2VfY2FwdGNoYX06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VzZV9jYXB0Y2hhfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdGl0bGVfdXNlcl9jYXB0Y2hhfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdGl0bGVfdXNlcl9jYXB0Y2hhX2Vycm9yfTwvcD4NCgk8L2Rpdj4NCntlbHNlfQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdGl0bGVfaW5zdGFsbF9jYXB0Y2hhfTwvcD4NCgk8L2Rpdj4NCnsvaWZ9DQp7JHRhYl9lbmR9DQp7JHRlbXBsYXRldGFiX3N0YXJ0fQ0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9sb2FkX3RlbXBsYXRlfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbG9hZF90ZW1wbGF0ZX08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2Zvcm1fdGVtcGxhdGV9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9mb3JtX3RlbXBsYXRlfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8ZGl2IGNsYXNzPSJwYWdlaW5wdXQiPnskaGVscF90ZW1wbGF0ZV92YXJpYWJsZXN9PC9kaXY+DQoJPC9kaXY+DQp7JHRhYl9lbmR9DQp7JHN1Ym1pdHRlbXBsYXRldGFiX3N0YXJ0fQ0KCTxmaWVsZHNldD4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRpdGxlX3N1Ym1pdF9yZXNwb25zZV9oZWxwfTwvcD4NCgk8L2Rpdj4NCgk8L2ZpZWxkc2V0Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zdWJtaXRfcmVzcG9uc2V9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zdWJtaXRfcmVzcG9uc2V9PC9wPg0KCQl7JGhlbHBfc3VibWl0X3Jlc3BvbnNlfQ0KCTwvZGl2Pg0KeyR0YWJfZW5kfQ0KeyR0YWJzX2VuZH0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzYXZlX2J1dHRvbn17JHN1Ym1pdF9idXR0b259PC9wPg0KCTwvZGl2Pg0KeyRmb3JtX2VuZH0NCg==]]></data>
	</file>
	<file>
	  <filename>/templates/AdminMain.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmICRtZXNzYWdlICE9ICcnfSA8aDQ+eyRtZXNzYWdlfTwvaDQ+IHsvaWZ9DQoNCnskdGFiaGVhZGVyc30NCnskc3RhcnRfZm9ybXRhYn0NCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSIgd2lkdGg9IjgwJSI+DQo8dGhlYWQ+PHRyPg0KICAgIDx0aD57JHRpdGxlX2Zvcm1fbmFtZX08L3RoPg0KICAgIDx0aD57JHRpdGxlX2Zvcm1fYWxpYXN9PC90aD4NCiAgICA8dGg+Jm5ic3A7PC90aD48dGg+Jm5ic3A7PC90aD48dGg+Jm5ic3A7PC90aD4NCjwvdHI+DQo8L3RoZWFkPg0KDQp7Zm9yZWFjaCBmcm9tPSRmb3JtcyBpdGVtPWVudHJ5fQ0KCTx0ciBjbGFzcz0ieyRlbnRyeS0+cm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skZW50cnktPnJvd2NsYXNzfWhvdmVyJzsiIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSd7JGVudHJ5LT5yb3djbGFzc30nOyI+DQoJCTx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+DQoJCTx0ZD4mIzEyMztjbXNfbW9kdWxlIG1vZHVsZT0nRm9ybUJ1aWxkZXInIGZvcm09J3skZW50cnktPnVzYWdlfScmIzEyNTs8L3RkPg0KCQk8dGQ+eyRlbnRyeS0+eG1sfTwvdGQ+DQoJCTx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPg0KCQk8dGQ+eyRlbnRyeS0+ZGVsZXRlbGlua308L3RkPg0KCTwvdHI+DQp7L2ZvcmVhY2h9DQoNCjx0cj48dGQgY29sc3Bhbj0iNSI+Jm5ic3A7PC90ZD4NCjwvdHI+DQo8dHIgY2xhc3M9InJvdzEiPjx0ZCBjb2xzcGFuPSI1Ij4NCg0Ke2lmICRhZGRsaW5rICE9ICcnfXskYWRkbGlua317JGFkZGZvcm19ey9pZn0NCjwvdGQ+PC90cj4NCjwvdGFibGU+DQo8ZmllbGRzZXQ+DQo8bGVnZW5kPnskbGVnZW5kX3htbF9pbXBvcnR9PC9sZWdlbmQ+DQp7JHN0YXJ0X3htbGZvcm19DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfeG1sX3RvX3VwbG9hZH06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3htbF90b191cGxvYWR9PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfeG1sX3VwbG9hZF9mb3JtbmFtZX06PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3htbF91cGxvYWRfZm9ybW5hbWV9Jm5ic3A7PGVtPnskaW5mb19sZWF2ZWVtcHR5fTwvZW0+PC9wPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfeG1sX3VwbG9hZF9mb3JtYWxpYXN9OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF94bWxfdXBsb2FkX2Zvcm1hbGlhc30mbmJzcDs8ZW0+eyRpbmZvX2xlYXZlZW1wdHl9PC9lbT48L3A+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdHhtbH08L3A+DQo8L2Rpdj4NCnskZW5kX3htbGZvcm19DQo8L2ZpZWxkc2V0Pg0KeyRlbmRfdGFifQ0KeyRzdGFydF9jb25maWd0YWJ9DQp7aWYgJG1heV9jb25maWcgPT0gMX0NCnskc3RhcnRfY29uZmlnZm9ybX0NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfZW5hYmxlX2Zhc3RhZGR9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfZmFzdGFkZH08L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX2hpZGVfZXJyb3JzfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaGlkZV9lcnJvcnN9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9yZXF1aXJlX2ZpZWxkbmFtZXN9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9yZXF1aXJlX2ZpZWxkbmFtZXN9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV91bmlxdWVfZmllbGRuYW1lc306PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3VuaXF1ZV9maWVsZG5hbWVzfTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskdGl0bGVfcmVsYXhlZF9lbWFpbF9yZWdleH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3JlbGF4ZWRfZW1haWxfcmVnZXh9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zaG93X3ZlcnNpb259OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9zaG93X3ZlcnNpb259PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9lbmFibGVfYW50aXNwYW19OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9lbmFibGVfYW50aXNwYW19PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyR0aXRsZV9zaG93X2ZpZWxkaWRzfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd19maWVsZGlkc308L3A+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRpdGxlX3Nob3dfZmllbGRhbGlhc2VzfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2hvd19maWVsZGFsaWFzZXN9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHN1Ym1pdH08L3A+DQoJPC9kaXY+DQp7JGVuZF9jb25maWdmb3JtfQ0KDQp7ZWxzZX0NCgk8cD57JG5vX3Blcm1pc3Npb259PC9wPg0Key9pZn0NCnskZW5kX3RhYn0NCnskZW5kX3RhYnN9DQoNCg==]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormCSS.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CTxkaXZ7aWYgJGNzc19jbGFzcyAhPSAnJ30gY2xhc3M9InskY3NzX2NsYXNzfSJ7L2lmfT4KCXtpZiAkdG90YWxfcGFnZXMgZ3QgMX08c3Bhbj57JHRpdGxlX3BhZ2VfeF9vZl95fTwvc3Bhbj57L2lmfQoJe2ZvcmVhY2ggZnJvbT0kZmllbGRzIGl0ZW09ZW50cnl9CgkJe2lmICRlbnRyeS0+ZGlzcGxheSA9PSAxfQogICAgICAgIAl7c3RyaXB9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTxkaXYKICAgICAgICAgICAgCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgfHwgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJycgfHwgJGVudHJ5LT52YWxpZCA9PSAwfSBjbGFzcz0iCiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5yZXF1aXJlZCA9PSAxfQogICAgICAgICAgICAgICAgCQlyZXF1aXJlZAogICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDEgJiYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9IHsvaWZ9CiAgICAgICAgICAgICAgCQl7aWYgJGVudHJ5LT5jc3NfY2xhc3MgIT0gJyd9CiAgICAgICAgICAgICAgICAJCXskZW50cnktPmNzc19jbGFzc30KICAgICAgICAgICAgICAJCXsvaWZ9CgkJCQkJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0KCQkJCQkgCWZiX2ludmFsaWQKCQkJCQl7L2lmfQogICAgICAgICAgICAgIAkJIgogICAgICAgICAgICAJey9pZn0KICAgICAgICAgICAgCT4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5oaWRlX25hbWUgPT0gMH0KICAgICAgICAgICAgCTxsYWJlbHtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzICE9IDF9IGZvcj0ieyRlbnRyeS0+aW5wdXRfaWR9InsvaWZ9PnskZW50cnktPm5hbWV9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5yZXF1aXJlZF9zeW1ib2wgIT0gJyd9CiAgICAgICAgICAgICAgIAkJeyRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sfQogICAgICAgICAgICAJey9pZn0KICAgICAgICAgICAgCTwvbGFiZWw+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+bXVsdGlwbGVfcGFydHMgPT0gMX0KICAgICAgICAgICAgCXtzZWN0aW9uIG5hbWU9bnVtbG9vcCBsb29wPSRlbnRyeS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+bGFiZWxfcGFydHMgPT0gMX0KICAgICAgICAgICAgICAgCQkJPGRpdj57JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9Jm5ic3A7eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm5hbWV9PC9kaXY+CiAgICAgICAgICAgICAgIAkJe2Vsc2V9CiAgICAgICAgICAgICAgIAkJCXskZW50cnktPmlucHV0W251bWxvb3BdLT5pbnB1dH0KICAgICAgICAgICAgICAgCQl7L2lmfQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3B9ey9pZn0KICAgICAgICAgICAgCXsvc2VjdGlvbn0KICAgICAgICAgCXtlbHNlfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+c21hcnR5X2V2YWwgPT0gJzEnfXtldmFsIHZhcj0kZW50cnktPmlucHV0fXtlbHNlfXskZW50cnktPmlucHV0fXsvaWZ9CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+dmFsaWQgPT0gMH0gJmx0Oy0tLSB7JGVudHJ5LT5lcnJvcn17L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+bmVlZHNfZGl2ID09IDF9CiAgICAgICAgICAgIAk8L2Rpdj4KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7L3N0cmlwfQogICAgIAl7L2lmfQoJey9mb3JlYWNofQoJe2lmICRoYXNfY2FwdGNoYSA9PSAxfQoJCTxkaXYgY2xhc3M9ImNhcHRjaGEiPnskZ3JhcGhpY19jYXB0Y2hhfXskdGl0bGVfY2FwdGNoYX08YnIgLz57JGlucHV0X2NhcHRjaGF9PC9kaXY+Cgl7L2lmfQoJPGRpdiBjbGFzcz0ic3VibWl0Ij57JHByZXZ9eyRzdWJtaXR9PC9kaXY+Cgk8L2Rpdj4=]]></data>
	</file>
	<file>
	  <filename>/templates/RenderFormDefault.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogREVGQVVMVCBGT1JNIExBWU9VVCAvIHB1cmUgQ1NTICp9CnskZmJfZm9ybV9oZWFkZXJ9CntpZiAkZmJfZm9ybV9kb25lID09IDF9Cgl7KiBUaGlzIGZpcnN0IHNlY3Rpb24gaXMgZm9yIGRpc3BsYXlpbmcgc3VibWlzc2lvbiBlcnJvcnMgKn0KCXtpZiBpc3NldCgkZmJfc3VibWlzc2lvbl9lcnJvcikgJiYgJGZiX3N1Ym1pc3Npb25fZXJyb3J9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+eyRmYl9zdWJtaXNzaW9uX2Vycm9yfTwvZGl2PgoJCXtpZiBpc3NldCgkZmJfc2hvd19zdWJtaXNzaW9uX2Vycm9ycykgJiYgJGZiX3Nob3dfc3VibWlzc2lvbl9lcnJvcnN9CgkJCTxkaXYgY2xhc3M9ImVycm9yIj4KCQkJPHVsPgoJCQl7Zm9yZWFjaCBmcm9tPSRmYl9zdWJtaXNzaW9uX2Vycm9yX2xpc3QgaXRlbT10aGlzRXJyfQoJCQkJPGxpPnskdGhpc0Vycn08L2xpPgoJCQl7L2ZvcmVhY2h9CgkJCTwvdWw+CgkJPC9kaXY+CgkJey9pZn0KCXsvaWZ9CntlbHNlfQoJeyogdGhpcyBzZWN0aW9uIGlzIGZvciBkaXNwbGF5aW5nIHRoZSBmb3JtICp9Cgl7KiB3ZSBzdGFydCB3aXRoIHZhbGlkYXRpb24gZXJyb3JzICp9Cgl7aWYgaXNzZXQoJGZiX2Zvcm1faGFzX3ZhbGlkYXRpb25fZXJyb3JzKSAmJiAkZmJfZm9ybV9oYXNfdmFsaWRhdGlvbl9lcnJvcnN9CgkJPGRpdiBjbGFzcz0iZXJyb3JfbWVzc2FnZSI+CgkJPHVsPgoJCXtmb3JlYWNoIGZyb209JGZiX2Zvcm1fdmFsaWRhdGlvbl9lcnJvcnMgaXRlbT10aGlzRXJyfQoJCQk8bGk+eyR0aGlzRXJyfTwvbGk+CgkJey9mb3JlYWNofQoJCTwvdWw+CgkJPC9kaXY+Cgl7L2lmfQoJe2lmIGlzc2V0KCRjYXB0Y2hhX2Vycm9yKSAmJiAkY2FwdGNoYV9lcnJvcn0KCQk8ZGl2IGNsYXNzPSJlcnJvcl9tZXNzYWdlIj57JGNhcHRjaGFfZXJyb3J9PC9kaXY+Cgl7L2lmfQoKCXsqIGFuZCBub3cgdGhlIGZvcm0gaXRzZWxmICp9Cgl7JGZiX2Zvcm1fc3RhcnR9Cgk8ZGl2PnskZmJfaGlkZGVufTwvZGl2PgoJPGRpdntpZiAkY3NzX2NsYXNzICE9ICcnfSBjbGFzcz0ieyRjc3NfY2xhc3N9InsvaWZ9PgoJe2lmICR0b3RhbF9wYWdlcyBndCAxfTxzcGFuPnskdGl0bGVfcGFnZV94X29mX3l9PC9zcGFuPnsvaWZ9Cgl7Zm9yZWFjaCBmcm9tPSRmaWVsZHMgaXRlbT1lbnRyeX0KCQl7aWYgJGVudHJ5LT5kaXNwbGF5ID09IDF9CiAgICAgICAgCXtzdHJpcH0KICAgICAgICAgCXtpZiAkZW50cnktPm5lZWRzX2RpdiA9PSAxfQogICAgICAgICAgICAJPGRpdgogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWQgPT0gMSB8fCAkZW50cnktPmNzc19jbGFzcyAhPSAnJyB8fCAkZW50cnktPnZhbGlkID09IDB9IGNsYXNzPSIKICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPnJlcXVpcmVkID09IDF9cmVxdWlyZWR7L2lmfQogICAgICAgICAgICAgIAkJe2lmICRlbnRyeS0+Y3NzX2NsYXNzICE9ICcnfSB7JGVudHJ5LT5jc3NfY2xhc3N9ey9pZn0KICAgICAgICAgICAgICAgICAgICB7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSBmYl9pbnZhbGlkey9pZn0KICAgICAgICAgICAgICAJCSIKICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk+CiAgICAgICAgIAl7L2lmfQogICAgICAgICAJe2lmICRlbnRyeS0+aGlkZV9uYW1lID09IDB9CiAgICAgICAgICAgIAk8bGFiZWx7aWYgJGVudHJ5LT5tdWx0aXBsZV9wYXJ0cyAhPSAxfSBmb3I9InskZW50cnktPmlucHV0X2lkfSJ7L2lmfT57JGVudHJ5LT5uYW1lfQogICAgICAgICAgICAJe2lmICRlbnRyeS0+cmVxdWlyZWRfc3ltYm9sICE9ICcnfQogICAgICAgICAgICAgICAJCXskZW50cnktPnJlcXVpcmVkX3N5bWJvbH0KICAgICAgICAgICAgCXsvaWZ9CiAgICAgICAgICAgIAk8L2xhYmVsPgogICAgICAgICAJey9pZn0KICAgICAgICAgCXtpZiAkZW50cnktPm11bHRpcGxlX3BhcnRzID09IDF9CiAgICAgICAgICAgIAl7c2VjdGlvbiBuYW1lPW51bWxvb3AgbG9vcD0kZW50cnktPmlucHV0fQogICAgICAgICAgICAgICAJCXtpZiAkZW50cnktPmxhYmVsX3BhcnRzID09IDF9CiAgICAgICAgICAgICAgIAkJCTxkaXY+eyRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPmlucHV0fSZuYnNwO3skZW50cnktPmlucHV0W251bWxvb3BdLT5uYW1lfTwvZGl2PgogICAgICAgICAgICAgICAJCXtlbHNlfQogICAgICAgICAgICAgICAJCQl7JGVudHJ5LT5pbnB1dFtudW1sb29wXS0+aW5wdXR9CiAgICAgICAgICAgICAgIAkJey9pZn0KICAgICAgICAgICAgICAgCQl7aWYgaXNzZXQoJGVudHJ5LT5pbnB1dFtudW1sb29wXS0+b3ApICYmICRlbnRyeS0+aW5wdXRbbnVtbG9vcF0tPm9wfXskZW50cnktPmlucHV0W251bWxvb3BdLT5vcH17L2lmfQogICAgICAgICAgICAJey9zZWN0aW9ufQogICAgICAgICAJe2Vsc2V9CiAgICAgICAgICAgIAl7aWYgJGVudHJ5LT5zbWFydHlfZXZhbCA9PSAnMSd9e2V2YWwgdmFyPSRlbnRyeS0+aW5wdXR9e2Vsc2V9eyRlbnRyeS0+aW5wdXR9ey9pZn0KICAgICAgICAgCXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT52YWxpZCA9PSAwfSAmbHQ7LS0tIHskZW50cnktPmVycm9yfXsvaWZ9CiAgICAgICAgIAl7aWYgJGVudHJ5LT5uZWVkc19kaXYgPT0gMX0KICAgICAgICAgICAgCTwvZGl2PgogICAgICAgICAJey9pZn0KICAgICAgICAgCXsvc3RyaXB9CiAgICAgCXsvaWZ9Cgl7L2ZvcmVhY2h9Cgl7aWYgJGhhc19jYXB0Y2hhID09IDF9CgkJPGRpdiBjbGFzcz0iY2FwdGNoYSI+eyRncmFwaGljX2NhcHRjaGF9eyR0aXRsZV9jYXB0Y2hhfTxiciAvPnskaW5wdXRfY2FwdGNoYX08L2Rpdj4KCXsvaWZ9Cgk8ZGl2IGNsYXNzPSJzdWJtaXQiPnskcHJldn17JHN1Ym1pdH08L2Rpdj4KCTwvZGl2PgoJeyRmYl9mb3JtX2VuZH0Key9pZn0KeyRmYl9mb3JtX2Zvb3Rlcn0=]]></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>
